Инструменты пользователя

Инструменты сайта


limb3_2007_3:ru:packages:i18n:lpsync

Работа со словарями, файлами translations.ts и утилитой lpsync.

Словари - это специальные объекты класса lmbDictionary, которые содержат пары вида: оригинальная фраза ⇒ перевод, причем оригинальные фразы хранятся в том или ином контексте, например, /СontrolPanel.

Словари хранятся в виде XML файлов с названием translations.ts в папках /i18n/translations/ пакетов, а также подпапках, например, /i18n/translations/ru. Вот пример такого файла:

<?xml version="1.0" encoding="utf-8"?>
<TS>
  <context>
    <name>/cp</name>
    <message>
      <source>Create</source>
      <translation>Создать</translation>
    </message>
    <message>
      <source>Delete</source>
      <translation>Удалить</translation>
    </message>
    <message>
      <source>Edit</source>
      <translation type="unfinished"/>
    </message>
  </context>
</TS>

Файлы translations.ts хранятся в UTF-8 кодировке.

Перевод таких файлов осуществляется при помощи достаточно удобной десктопной программы Qt Linguist от фирмы Trolltech. Подробнее о Qt Linguist. Скачать Qt Linguist можно здесь.

FIXME Указать, что есть базовый словарь, в котором обычно нет переводов. Есть словари для языков. Именно их мы и переводим при помощи Qt Linguist.

Работа со словарями в рамках Limb-based приложения. Использование скрипта lpsync

  1. Запускаем скрипт lpsync для проекта и вызываем команду для создания сначала базового словаря. То есть команда будет выглядеть следующим образом: limb lpsync -c4
  2. Затем вызываем команду для создания словаря нужного нам языка, например, для русского, то есть: limb lpsync -c4 -lru
  3. Далее создаем приложение, используя фильтр i18n в шаблонах и tr() функцию в php-коде для перевода контента, где необходимо.
  4. После этого запускаем команду для поиска всех новых строк, подлежащий переводу. Они новые строки будут автоматически добавлены в базовый translations.ts файл (базовый словарь) приложения. Команда: limb lpsync -c2
  5. Далее синхронизируем базовый словарь приложения с остальными словарями приложения. Команда: limb lpsync -c1.
  6. После этого при помощи программы Qt Linguist переводим словарь нужного нам языка.
  7. Далее отправляем изменения обратно в пакеты сначала для базовых словарей. Команда: limb lpsync -c3
  8. После этого отправляет изменения обратно в пакеты уже для словарей нужных нам языков, например, для русского Команда: limb lpsync -c3 -lru

Обратите внимание, что изменения обратно в пакеты вносятся только при наличие в словаре пакета соответствующего контекста. Если в словаре приложения есть контекст /cp и в словаре CP пакета есть тоже контекст /cp, следовательно, изменения будут полностью синхронизированы. Однако если в словаре приложения есть контекст /cp/user, а в словаре CP пакета только /cp, то изменения в словаре приложения обратно в пакет CP уже не попадут. Нужно вручную будет создать соответствующий контекст в пакете CP. В нашем случае нужно будет вручную создать в пакете CP контекст /cp/user.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
     __   ____   ____   ____   ___ 
 __ / /  /  _/  / __/  / __/  / _ \
/ // /  _/ /   / _/   / _/   / // /
\___/  /___/  /___/  /___/  /____/
 
limb3_2007_3/ru/packages/i18n/lpsync.txt · Последнее изменение: 2010/11/10 10:02 — 127.0.0.1