The K Desktop Environment

   

Как правильно перевести *.pot файл?

Если вы скачали себе cvs-копию пакетов, как рекомендовано на предыдущей страничке, и сохранили их в каталоге, скажем, ~/kdecvs/, то у вас образовалась следующая структура каталогов:

~/kdecvs/kde-i18n/

Всю эту структуру в одном дереве отображает менеджер каталогов KBabel. Настроив его, вы уже не будете думать о том, куда выкладывать переведенный файл - он сам поместится на нужное место и под правильным названием.

Допустим, координатор прислал вам на перевод файл appletproxy.pot по почте. Вот что с ним надо сделать.

Настройки KBabel

В меню KBabel выбираем Settings->Configure KBabel... и попадаем в главный диалог настройки. Заполняем поля:

На вкладке Identity:

На вкладке Save:

На вкладке Catalog Manager:

С остальными полями легко разобраться самому.

Заголовок

В *.pot файле видим:

Переводим это так (большинство полей правильно проставляет KBabel, но часть надо поправить вручную):

Если это *.pot файл документации, то можем для солидности написать первую строчку в виде:

Но это уже несущественно.

Основная часть

Тело *.pot файла состоит из комментариев, начинающихся с #, и из сообщений msgid вида:

Что это за сообщения и откуда они берутся? Их ежедневно, примерно в 10:30 по московскому времени, создает скрипт, продирая исходники cvs-копии пакетов. Он находит в исходниках функцию i18n() (или I18N_NOOP), аргументом которой и служит переводимое сообщение. При запуске программы на другом языке вместо английского сообщения подставляется его перевод, который и отображается на экране.

Если вы работаете в KBabel, то все ясно - переводите сообщения и следите, чтобы не было ошибок. Если, например, не проставить акселератор, то KBabel отобразит это сообщение красным цветом (как содержащее ошибку). При работе в обычном текстовом редакторе нужно за этим следить самому.

Важно: Работая в KBabel, нужно следить, чтобы в конце переносимых строчек был пробел. Версии KBabel свежее 0.9.4 сами отслеживают это и при нажатии Enter вставляют пробел перед переносом строки, но вы можете его и обмануть (чего делать не надо :).

С-формат

Это строки с аргументами, в которые программа, например, подставляет числа. Переводим, сохраняя аргументы, отмеченные знаком %:

Особые сообщения

Это сообщения, начинающиеся с поясняющей строки "_: Нужно просто знать, что с ними делать.

Комментарии


   #: thumbnails/thumbtoplevel.cpp:397
   msgid ""
   "_: width x height if preview is on\n"  -- комментарий, который начинается с "_: и заканчивается \n". Его не переводим!
   " %1x%2,"
   msgstr ""
   " %1x%2,"                         -- переводим только содержательную часть

Множественное число

Это сообщения, для которых библиотека выбирает правильную форму множественного числа ("один файл", "два файла", "десять файлов") по числу, передаваемому в качестве параметра функции i18n (подробности см. в kdelibs/kdecore/klocale.cpp):

В русском языке три формы множественного числа, поэтому надо писать три формы перевода.




Присылайте замечания по этому документу Григорию Мохину.
Последнее изменение: 17 января 2002