多元文化中的 Sitecore 空白领域
本文关键字:空白 Sitecore 文化中 | 更新日期: 2023-09-27 17:56:51
以下是对我的场景的简要了解,
- 创建包含 2 个未版本化字段的模板
Sport
和Animal
- 基于此模板以 2 种语言创建项目 英语 &阿拉伯语
- 对于英语版本,在两个字段中填写"我是英语"
- 对于
Arabian
,将Animal
字段留空,Sport
->设置Arabian value
结果:
当一个页面请求包含Context
、language = Arabian
、Animal
字段时,I am English
,而Sport
Arabian value
嗨尼古拉·米蒂科夫, 我有两个字段,其中未标记未版本化,如上图所示。你们其余的理解是100%正确的。此外,我没有实现任何自定义逻辑,也没有使用任何可能解决此问题的扩展。对于阿拉伯语和英语文化,我只是通过sc_lang查询字符串或URL中的"AR"来使用不同的URL,该URL设置了上下文语言。下面是我的语言切换器简单代码:
public string ItemEnglishURL
{
get
{
return string.Concat(Helper.GetItemUrlByCulture(Sitecore.Context.Item, "en"), CurrentQueryString);
}
}
public string ItemArabicURL
{
get
{
return string.Concat(Helper.GetItemUrlByCulture(Sitecore.Context.Item, "ar"), CurrentQueryString);
}
}
public static string GetItemUrlByCulture(Item item, string culture)
{
string itemUrl = string.Empty;
if (item != null)
{
using (new Sitecore.Globalization.LanguageSwitcher(culture))
{
itemUrl = LinkManager.GetItemUrl(item, new UrlOptions() { LanguageEmbedding = LanguageEmbedding.Always });
}
}
return itemUrl;
}
再解释一个,当我渲染时基本上在相同的解决方案/场景中
<li runat="server" id="navAncharLi">
<a runat="server" id="navAnchar">
<sc:Text ID="TextTitle" Field="Title" runat="server" Item="<%# Item %>" DisableWebEditing="true" />
<strong runat="server" id="TagSubTitle">
<sc:Text ID="TextSubTitle" Field="SubTitle" runat="server" Item="<%# Item %>" DisableWebEditing="true" />
</strong> </a>
<em runat="server" id="navAncharHead"></em>
</li>
但是当我使用函数从代码隐藏渲染时,它不会创建问题并完美运行,如下面的代码所示:
<li runat="server" id="navAncharLi">
<a runat="server" id="navAnchar">
<%# GetFieldValue(Item,"Title") %>
<strong runat="server" id="TagSubTitle">
<%# GetFieldValue(Item,"SubTitle") %>
</strong>
</a>
<em runat="server" id="navAncharHead"></em>
</li>
public string GetFieldValue(Item itemObj, string fieldName)
{
return itemObj.Fields[fieldName].Value;
}
但这似乎不是好的解决方案:)
Syed,
看起来您的情况正在发生语言回退,因为英语是 Sitecore 中设置的默认语言。每当您使用getItem函数时,都会传递当前的上下文lang,也可以进行空点检查。
例如:
.GetItem(home.ID, language)
希望这会起作用!!
干杯!!
尼桑特
感谢大家, 最后,在分析了Sitecore支持之后,得出的结论是,这是因为WFFM错误已在新版本中解决。
Sitecore 支持的回复如下
我已经调查了文件,似乎可能是由 WFFM 模块中的以下错误: https://sdn.sitecore.net/SDN5/Products/Web%20Forms%20for%20Marketers/Web%20Forms%20for%20Marketers%202,-d-,4/Release%20Notes/Release%20History.aspx 工作时"标题"字段中错误复制值的问题 已修复不同内容语言(426013)问题是 在面向营销人员的 Web 窗体 2.4 修订版150619模块版本中修复。 尝试注释掉以下处理器 Sitecore.Forms.Mvc.config:
<renderField>
<processor type="Sitecore.Forms.Mvc.Pipelines.Fields.AddFallbackValue,
Sitecore.Forms.Mvc"
patch:before="*[@type='Sitecore.Pipelines.RenderField.AddBeforeAndAfterValues,
Sitecore.Kernel']" />
</renderField>
请让我知道这是否有帮助
上述解决方案对我有用,Sitecore 支持也证实了这一点。
您可以评论此处理器,而不会对您的处理器产生任何副作用 溶液。或者,您可以将 WFFM 模块升级到 Web 营销人员表单 2.4 修订版 150619 版本: https://sdn.sitecore.net/Products/Web%20Forms%20for%20Marketers/Web%20Forms%20for%20Marketers%202,-d-,4/Module_Upgrades.aspx