Вход:  Пароль:  
FreeSource: AltLinux/Sisyphus/Alterator/module/l10n ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Локализация

В alterator встроена система автоматического перевода текстовых сообщений на язык пользователя. Для того чтобы её задействовать необходимо отметить эти сообщения в описании интерфейса специальным образом и указать название используемого словаря.

Описание интерфейса

Если адрес описания интерфейса /<модуль>/foo/bar, то по умолчанию этому интерфейсу сопоставляется словарь alterator-<модуль> и соответственно имя его специально указывать не надо.


Вы можете явно указать другой словарь с помощью команды po-domain. Кроме того другой словарь можно задавать явно для каждого сообщения.


Пример для qt:

Инструкцией po-domain можно задать основной словарь, если он не должно вычисляться автоматически из адреса модуля.
Функция _ используется для получения перевода, принимает необязательный второй параметр, указывающий словарь.


Пример для html:

Необязательным атрибутом po-domain можно задать основной словарь, если он не должно вычисляться автоматически.


Атрибут translate применяется к span и input типа reset и submit. Наличие атрибута означает, что содержимое данного span или value данного input надо перевести используя указанный словарь, “_" — означает основной словарь. Для обратной совместимости с предыдущими модулями если у input атрибут translate отсутствует, то value всё-равно переводится и используется словарь по умолчанию.

Бакенды


Команды, приходящие к бакенду, содержат информацию о языке используемом для переводов (параметр language). Перевод сообщений в бакендах устроен по тому же принципу что и в описаниях интерфейсов:

Бакенд на shell



Переменная po_domain содержит имя основного словаря. Функция _ используется для получения перевода, принимает необязательный второй параметр, указывающий словарь.
Предпочтительно использовать обратные кавычки '`' вместо конструкции $() ибо последняя не подхватывается утилитой xgettext.

Бакенд на perl


Единая база переводов


Для переводов стоит пользоваться единой базой переводов alterator-l10n. Данный пакет содержит переводы для всех модулей альтераторов. Тем самым достигается единый стиль названий (например перевод “Apply” и “Reset”). Чтобы подключить модуль к единой базе необходимо выполнить следующие действия:

  1. сказать make update-po и получить файл-заготовку
  2. связаться с мантейнером пакета alterator-l10n (inger@, cas@) и переслать свой .pot файл.
  3. Дождитесь когда ваш пакет будет включён в alterator-l10n
  4. Добавить пакет alterator-l10n в сборочные зависимости модуля (buildprereq)

После этого при каждой сборке пакета автоматически будут создаваться и размещаться в результирующем rpm-пакете) переводы для всех поддерживаемых языков. Если в вашем модуле уже были свои варианты переводов (файлы po/<language>.po), то их надо удалить.


 
Файлы [Скрыть файлы/форму]
Комментариев нет. [Показать комментарии/форму]