2016-01-25 2 views
2

На моем веб-сайте каждый элемент существует на английском языке. Теперь, если пользователь с Content Language ='Danish' хочет получить доступ к элементу, который не существует на языке «Danish». Пользователи фактически ничего не видят, что я хочу сделать, так это то, что если элемент не существует на нужном языке, тогда получите его английскую версию.Sitecore лучший способ получить товар на английском языке, если его нет в данном языке

Я делаю это, чтобы достичь своей цели:

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"; 
} 

ли это правильный путь, чтобы достичь того, чего я хочу? потому что я обеспокоен тем, что тогда я должен использовать этот код для доступа к каждому элементу. Есть ли какие-либо глобальные настройки или что-то вроде этого, чтобы я мог получить элемент в 'English', если он не существует в языке desired.

ответ

3

Вы можете использовать языковой модуль Fallback для своего случая.

https://marketplace.sitecore.net/en/modules/language_fallback.aspx

http://www.sitecore.net/Learn/Blogs/Technical-Blogs/Elizabeth-Spranzani/Posts/2014/10/Fallback-followup.aspx

http://www.sitecore.net/Learn/Blogs/Technical-Blogs/Elizabeth-Spranzani/Posts/2014/03/Fallback-Series-Post-2.aspx

Со второй блоге выглядит как работает на Sitecore 7.2.

Теперь, когда Sitecore 7 является нормой и предстоящим Sitecore 8 на горизонте, я решил, что пришло время провести некоторые тесты и убедиться, что все это по-прежнему работает над последней публично выпущенной версией: Sitecore 7.2 Update 2 (редакция 140526).

+0

Всегда полезно узнать что-то новое :) Я думаю, что Алекс Шыба уже забыл об этом модуле и не будет обновлять описание на Marketplace. Во всяком случае, +1 –

+0

Языковой запас теперь (наконец) родной в Sitecore 8.1. –

0

Вы должны проверить что-то под названием Язык Отказ в Sitecore.

Есть много блоге об этом, например .:

http://jonathandeveloper.com/2014/07/sitecore-7-language-fallback-revisited-and-glass/

Существует также Language Fallback Sitecore module на рынке (но работает только с Sitecore 6 из того, что описано).

+0

Спасибо, Имеет ли смысл использовать 'Glass.Mapper' только для языкового резерва. Я имею в виду, что я никогда не использовал его раньше, чем на моем сайте. – Kamran

+0

Нет, не вводите GM только для восстановления языка. Используйте модуль языкового отказа от Sitecore Marketplace. См. Ответ @SitecoreClimber для получения более подробной информации. –

Смежные вопросы