Вступление

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

По убеждению самого Джо Одетта, для полноценной поддержки проектом разных языков необходимо создавать под каждый язык свой сайт — со своими авторами для наполнения контентом и отдельными администраторами для управления всем этим. При желании разместить у себя ссылку на сайт со специфическим языком можно это просто настроить в секции, отвечающей за графический интерфейс (layout.Master file), используемый на сайте. К примеру, можно разместить свой основной сайт на www.somedomain.com, а при необходимости заиметь еще и его французскую версию можно использовать www.fr.somedomain.com.

Конфигурация языка/культуры в mojoPortal

Первичная конфигурация культуры установлена в файле Web.config в корневом каталоге сайта.

<globalization
            culture="auto:en-US"
            uiCulture="auto:en"
            requestEncoding="utf-8"
            responseEncoding="utf-8"
            fileEncoding="iso-8859-15" />

Элемент globablization является стандартной настройкой ASP.NET. Больше информации по данному вопросу можно найти здесь.

Важно: Обратите внимание, что не рекомендуется изменять элемент globalization в файле Web.config (за исключением, пожалуй, fileEncoding). Это связано с тем, что, если Вы поставите языком по умолчанию любой отличный от английского, а перевод на него выполнен не полностью и отсутствуют некоторые ключи, ссылки могут не создаться. Существует лучший способ принудительного определения языка, описаный в статье. Этим способом вы назначаете язык по умолчанию, но при отсутствии определённых ключей идёт возврат к английской версии. Английский - единственный из языков, в котором гарантируется присутствие всех ключей.

В приведенном выше примере, который взят из стандартного для mojoPortal файла Web.config, "auto:en-US" означает попытку использовать параметр Resources для определения языка, выбранного пользователем в браузере. Однако, если не может быть найдено корректное значение Resources, тогда идет возврат к настройкам языка/культуры, выбранным по умолчанию. В данном случае это en-US ("американизированный" английский язык). Существует возможность определить любую культуру как значение по умолчанию. При необходимости использования определенной культуры и нежелании применения Resource Fallback можно просто удалить "auto:" из настроек и использовать en-US или какой-нибудь другой язык или культуру.

Стоит особо обратить внимание, что под термином Resources, использованном разработчиком выше, подразумевается прежде всего текст, который используется в mojoPortal в стандартном статическом тексте и кнопках. Ресурсы для mojoPortal сохраняются в папке App_GlobalResouces. Для большей информации о создании или редактировании файла Resource стоит посмотреть страницу Перевод mojoPortal. С mojoPortal ситуация обстоит следующим образом: поскольку основной разработчик (Джо Одетт) проживает в США и говорит по-английски, а сам проект находится в стадии активного развития, то самыми проработанными являются файлы Resource для английского языка. При использовании вместо en-US других настроек по умолчанию надо убедиться, что в ресурсном файле не отсутствуют какие-либо значения клавиш по сравнению с английским ресурсным файлом. Если вы доработаете его дополнительными клавишами в собственных целях, разработчик просит выслать ему копию этого обновления на его адрес электронной почты ( joe dot audette [at] gmail dotcom ).

Более детально о культуре типа en-US можно прочитать на странице National Language Support API Reference.

Поддерживаемые языки

На февраль 2012 года mojoPortal частично или полностью поддерживал перевод для следующих языков:

Язык (Расположение) Обозначение культуры
Арабский ar
Каталонский ca
Китайский (Китай) zh-CN
Китайский (Традиционный) zh-CHT
Хорватский hr
Чешский cs
Датский da
Голандский nl
Английский en
Фарерский fo
Французкий fr
Французкий (Канада) fr-CA
Немецкий de
Греческий el
Иврит he
Венгерский hu
Итальянский it
Японский jp
Норвежский no
Персидский fa
Польский pl
Португальский pt
Португальский (Бразилия) pt-BR
Русский ru
Русский (Россия) ru-RU
Словацкий sk
Словенский sl
Испанский es
Испанский (Мексика) es-MX
Шведский sv
Тамильский ta
Турецкий tr
Вьетнамский vi

Присланные разработчику другие версии перевода будут включены в последующие релизы.

Resource Fallback в ASP.NET 2.0

Чтобы понять, как работает Resource Fallback, необходимо установить языковые настройки браузера на один из вышеупомянутых языков, но не английский, сохранить настройки и обновить веб-страницу. Например, если установить предпочтения на персидский язык, то ссылки наверху страницы и кнопка поиска будут выглядеть следующим образом.
поддержка cms mojoPortal использования восточных языков

Разумеется, содержимое в этой контент-системе идет из базы данных, и оно по-прежнему остается на том языке, на котором было написано. Именно поэтому разработчик и говорил о полноценной поддержке языков — в виде параллельно созданных веб-сайтов с собственными контент-авторами и системными администраторами, занимающимися только своим языком.

В ASP.NET основная функция CultureInfo в обработке информации заключается прежде всего в том, как именно выбраны ресурсы и как обработаны вещи, подобные валюте и датам. Таким образом, в глобальных настройках свойства CultureInfo отображаются в соответствии с настройками браузера. Поэтому кнопки на сайте разработчика для нас отображаются на русском языке, хотя все остальное содержимое идет на английском. Это происходит независимо от того, есть ли ресурсные файлы для языка, выставленного в настройках предпочтений. Например, если в языковых настройках браузера выставить в предпочтениях основным языком Chinese — Singapore (притом что mojoPortal его не поддерживает), календарь в блоге приспосабливается к использованию встроенных ресурсов ASP.NET, как это отображено на рисунке.

Использование функции CultureInfo

Многим пользователям знаком грегорианский календарь. Однако в мире существует множество различных народов, в силу своих исторических традиций использующих другие виды календарей, о которых нам не всегда известно. ASP.NET старается делать подобные вопросы для разработчиков прозрачными, благодаря чему им не надо много думать о поддержке различных календарных систем. К сожалению, не все календари в ASP.NET сделаны полностью и корректно. К примеру, персидский календарь был плохо проработан в ASP.NET версии 2.0, а в ASP.NET версии 1.х он и вовсе отсутствовал.

Размещение справа налево

 В настоящее время CMS mojoPortal имеет в наличии всего один графический интерфейс, называющийся RightToLeft, который иллюстрирует размещение справа налево для языков, подобных персидскому.

Оригинал на английском.

Частичный перевод взят здесь.

Вверх