2012-01-11 3 views
1

Я прочитал различные композитные дискуссии о разработке веб-сайтов не только для многоязычных сценариев, но и для поддержки локализации вулканов и грамматики для определенного сообщества; например, технических и общих общественных сообществ.Локализация и диалекты

Я нашел эти обсуждения убедительными, однако они не объяснили, как реализовать эти сценарии в контексте C1 для добавления разных «диалектов».

Я предполагаю, что эти диалекты должны быть добавлены вручную в следующий файл источника данных и обработаны как язык: «Composite.Cultures.en-us».

Просьба пояснить, существует ли наилучшая практика для обработки описанного выше сценария, а также для менее ручного метода ее достижения.

ответ

1

Если вы хотите показать другой содержание в той же структуре страницы для разных «диалектов», затем да - трактовка их как языков имеет смысл. Список языков выбирается системой из реестра Windows, поэтому, если вы хотите добавить диалект в качестве языка, вы можете зарегистрировать его с помощью кода (http://msdn.microsoft.com/en-us/library/ms172469.aspx). Я бы не рекомендовал его, так как связанный процесс ASP.NET должен был иметь доступ к реестру Windows, и может потребоваться дополнительная работа каждый раз, когда вам нужно переместить сайт в новую среду.
Вы также можете использовать существующий код культуры, который вы не собираетесь использовать в качестве диалектного переключателя F.e. en-US/en-GB/en-AU.

Другой альтернативой может быть наличие отдельных заполнителей для контента на каждой странице, один для технических пользователей и еще один для нетехнических. Тот или иной будет отображаться в зависимости от url/cookie. В этом подходе вы также должны решить, хотите ли вы сохранить их под тем же URL-адресом для сканеров или под разными, если страницы имеют одинаковые комментарии или отдельные и т. Д.

Если диалектные сайты не поддерживают одинаковые структура страницы, вы также можете принять их как разные деревья страниц и использовать какое-то поле метаданных для связывания связанных страниц друг с другом, когда вам нужно.

+0

Проголосовал за этот ответ, потому что Дмитрий работает над композитом A/S – Kevin

+0

эх, это не имеет смысла ... вы должны принять правильный ответ! –

+0

Я ищу официальное руководство от Composite A/S - они предполагают контролировать тег [Composite C1]. Если у них нет правильного ответа, у нас все проблемы. – Kevin

1

Я не уверен, если я понимаю вопрос. Это потому, что вы хотите иметь определенную строку на своем веб-сайте, чтобы говорить разные вещи в зависимости от того, кто вошел в систему, а не на каком языке отображается сайт?

Файлы локализации по умолчанию в C1 расположены в ~/Composite/localization в формате Some.Namespace.language.xml. Это означает, что если ваш сайт находится в американском английском, но вы хотите, чтобы показать различные варианты определенных строк для Techs или других, вы можете создать следующие XML-файлы

  • My.Component.General.en-нас .xml
  • My.Component.Technical.en-us.xml

И когда вам нужно получить строки, чтобы показать, вы бы иметь следующую логику

var ns = "My.Component"; 
var mode = is_tech ? "Technical" : "General"; 

return StringResourceSystemFacade.GetString(ns +"."+ mode, "title"); 
Смежные вопросы