Словари - это специальные объекты класса 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 можно здесь.
Указать, что есть базовый словарь, в котором обычно нет переводов. Есть словари для языков. Именно их мы и переводим при помощи Qt Linguist.
Обратите внимание, что изменения обратно в пакеты вносятся только при наличие в словаре пакета соответствующего контекста. Если в словаре приложения есть контекст /cp и в словаре CP пакета есть тоже контекст /cp, следовательно, изменения будут полностью синхронизированы. Однако если в словаре приложения есть контекст /cp/user, а в словаре CP пакета только /cp, то изменения в словаре приложения обратно в пакет CP уже не попадут. Нужно вручную будет создать соответствующий контекст в пакете CP. В нашем случае нужно будет вручную создать в пакете CP контекст /cp/user.