如果给定语言不存在,Sitecore 获取英文项目的最佳方式
Sitecore best possible way to get Item in English if its not present in the given language
在我的网站上,每个项目都有英文版本。现在,如果 Content Language ='Danish'
的用户想要访问“Danish
”语言中不存在的项目。用户实际上什么也看不到,我想做的是,如果该项目不存在所需的语言,然后获取它的英文版本。
我这样做是为了实现我的目标:
string itemId = "{05B1C498-39D1-40D6-B454-2A3277A6DDF9}";
Item versionItem = Sitecore.Context.Database.GetItem(itemId);
if (versionItem.Versions.Count > 0)
lblOutput.Text = "Item does not exist in desired language";
else
{
versionItem = contextDatabase.GetItem(itemId, Sitecore.Data.Managers.LanguageManager.GetLanguage("en"));
lblOutput.Text = "Here is the item in default English language";
}
这是实现我想要的正确方法吗?因为我担心的是我必须使用此代码来访问每个项目。是否有任何全局设置或类似的东西,以便我可以在 desired
语言中不存在的情况下以 'English
' 语言获取该项目。
您可以为您的案例使用后备语言模块。
https://marketplace.sitecore.net/en/modules/language_fallback.aspx
来自第二篇博客 post 看起来正在使用 Sitecore 7.2。
随着 Sitecore 7 成为标准,Sitecore 8 即将面世,我认为是时候 运行 进行一些测试并确保所有这些仍然有效最新公开发布的版本:Sitecore 7.2 Update 2(修订版 140526)。
您应该检查 Sitecore 中名为 Language Fallback 的东西。
有很多关于它的博客 post,例如:
http://jonathandeveloper.com/2014/07/sitecore-7-language-fallback-revisited-and-glass/
市场上还有一个 Language Fallback Sitecore module(但根据描述只能与 Sitecore 6 一起使用)。
在我的网站上,每个项目都有英文版本。现在,如果 Content Language ='Danish'
的用户想要访问“Danish
”语言中不存在的项目。用户实际上什么也看不到,我想做的是,如果该项目不存在所需的语言,然后获取它的英文版本。
我这样做是为了实现我的目标:
string itemId = "{05B1C498-39D1-40D6-B454-2A3277A6DDF9}";
Item versionItem = Sitecore.Context.Database.GetItem(itemId);
if (versionItem.Versions.Count > 0)
lblOutput.Text = "Item does not exist in desired language";
else
{
versionItem = contextDatabase.GetItem(itemId, Sitecore.Data.Managers.LanguageManager.GetLanguage("en"));
lblOutput.Text = "Here is the item in default English language";
}
这是实现我想要的正确方法吗?因为我担心的是我必须使用此代码来访问每个项目。是否有任何全局设置或类似的东西,以便我可以在 desired
语言中不存在的情况下以 'English
' 语言获取该项目。
您可以为您的案例使用后备语言模块。
https://marketplace.sitecore.net/en/modules/language_fallback.aspx
来自第二篇博客 post 看起来正在使用 Sitecore 7.2。
随着 Sitecore 7 成为标准,Sitecore 8 即将面世,我认为是时候 运行 进行一些测试并确保所有这些仍然有效最新公开发布的版本:Sitecore 7.2 Update 2(修订版 140526)。
您应该检查 Sitecore 中名为 Language Fallback 的东西。
有很多关于它的博客 post,例如:
http://jonathandeveloper.com/2014/07/sitecore-7-language-fallback-revisited-and-glass/
市场上还有一个 Language Fallback Sitecore module(但根据描述只能与 Sitecore 6 一起使用)。