пятница, 21 января 2011 г.

Локализация админки в С1

Админка С1 - на английском языке. Но ее можно локализовать. Официально есть локализация на русском, украинском и голландском. Сообщество сделало локализацию на датском и китайском.

Если нет локализации на вашем языке, ее можно сделать самому. На английском языке есть статья о том, как локализовать админку на свой родной язык. Разберемся.

Немного теории

Строки, использующиеся в пользовательском интерфейсе админки, хранятся в XML файлах по такому пути:

(путь к корневой папке сайта C1)\Composite\localization\*.xml

Однако файлы локализации должны находиться в папке с кодовым названием языка здесь:

(путь к корневой папке сайта C1)\App_Data\Composite\LanguagePacks\(код языка)\*.xml

Например, \App_Data\Composite\LanguagePacks\ru-RU\*.xml

Чтобы локализовать админку, нужно:
  1. создать копии этих файлов, заменяя буквенный код английского языка США "en-us" в их названии на код родного языка, например, русского "ru-ru",
  2. и переместить эти копии в соответствующую подпапку языка в  \App_Data\Composite\LanguagePacks
  3. перевести строки в таких файлах на родной,
  4. и обязательно зарегистрировать каждый такой новый файл в файле конфигурации C1 ((путь к корневой папке сайта C1)\App_Data\Comosite\Composite.config)
Но это не наш метод.

Есть специальная программа от создателей этой CMS - C1 Localization Tool, которая:
  • предоставляет доступ к строкам в этих файлах локализации для перевода, 
  • автоматически загружает перевод для строки, используя Google Translate, 
  • создает нужный файл локализации для родного языка
  •  и регистрирует его в файле конфигурации C1.
Именно ею и стоит воспользоваться для того, чтобы перевести все строки.

Переводим админку при помощи программы локализации
  1. Загружаем и распаковываем программу LocalizationTool.zip. Но не запускаем!
  2. Редактируем параметры в файле конфигурации программы LocalizationTool.exe.config (см. ниже) и сохраняем файл.
Допустим, ваш веб-сайт С1 находится на локальном диске по такому пути: D:\Websites\CompositeC1. И вы хотите перевести админку на русский. Вот что вам нужно указать в файле конфигурации:


<configuration> 
  <appSettings> 
    <add key="websitePath" value="D:\WebSite\CompositeC1" /> 
    <add key="sourceCultureName" value="en-US" /> 
    <add key="targetCultureName" value="ru-RU" /> 
  </appSettings> 
</configuration>

А теперь переводим.
  1. Запускаем программу.
  2. Все отмеченные опции (внизу) оставляем отмеченными.
  3. В списке Files выбираем файл локализации для перевода, а в списке String Keys, строку локализации.
  4. При включенной опции Get translation from Google Translate, программа автоматически загрузит вариант перевода от Google Translate (иногда в точку, иногда криво, иногда очень смешно даже :))
  5. Если нужно исправляем перевод и нажимаем клавишу Enter. При нажатии Enter будет загружена следующая непереведенная строка (при включенной опции Pressing Enter will save and move to next)
  6. Как только хоть одна строка переведена, программа создает файл локализации на родном языке и регистрирует его в Composite.config (при включенной опции Automatically register updates in Composite.config)
То есть если вас вдруг устраивает не всегда правильный перевод от Google Translate, достаточно нажимать и нажимать Enter, пока не будет переведена последняя строка :)

Кнопка Find first missing позволяет найти еще не переведенные строки.

(Отмечу, что программа "вылетает" с ошибкой, если ей попадается исходный файл локализации без строк. Просто перезапустите программу и не выбирайте такой файл для перевода.)

Переключаем язык админки
  1. В админке в главном меню нажимаем Tools и выбираем пункт Regional Settings.
  2. В окне с тем же названием выбираем наш язык в ниспадающем списке и нажимаем ОК.
  3. В появившемся диалоговом окне нажимаем ОК тоже.
Админка перезапустится (и также сам сайт) и пользовательский интерфейс будет на вашем родном языке.

Экспортируем локализацию в модуль расширения

Если вы сделали локализацию админки, возможно вам захочется поделиться ею с другими. Для этого ее можно и нужно экспортировать в модуль расширения при помощи Package Creator'a.
  1. Устанавливаем Package Creator.
  2. Переключаем админку на язык локализации, которую мы хотим экспортировать (как описано выше).
  3. В разделе Package Creator, выбираем узел Packages, вызываем контекстное меню и выбираем пункт Create <имя языка> package.
  4. В появившемся окне, заполняем поля, сохраняем и закачиваем получившийся модуль на локальный диск (Download package) - т.е. так же, как мы это делаем при создании любого другого модуля расширения (см. Создание модуля расширения (4)), только на этот раз в модуль-заготовку ничего добавлять не нужно.
Теперь сохраненный таким образом Zip файл (фактически локализация админки на ваш родной язык в виде модуля) можно установить на любом другом C1 (System; Packages | Installed packages | Local packages; Install Local Package).

Важно! Не путайте локализацию админки (пользовательский интерфейс административной консоли в С1) и локализацию веб-сайта, созданного при помощи C1. О локализации веб-сайтов  я расскажу в другом сообщении.

Комментариев нет:

Отправить комментарий