Как работать с po-файлами

Материал из База знаний проекта Russian Fedora

Перейти к: навигация, поиск

Содержание

Что такое po-файл?

Специфичный файл с переводом чего бы то ни было - интерфейса программы, встроенной справки программы, текста документации и т.д.

По своей сути файл представляет из себя набор строк вида "оригинальный текст" (msgid) - "переведенный текст" (msgstr) плюс немного служебной информации. "Текстом" может быть как одно слово, так и целый абзац.

Зачем нужен po-файл?

Это позволяет иметь текст перевода отдельно от его формы. Простой пример - вся документация Fedora / Red Hat в ее разных формах (html, pdf) генерируется из одних xml-файлов. В этих файлах на месте текста стоят те самые msgid. При создании русской документации на их место подставляются msgstr из русских po-файлов. В итоге сделанный однажды перевод текста используется для создании документации в html и pdf. В случае смены формы (дизайна) достаточно поменять структуру/схему xml и не надо ничего делать с содержанием - оно подставится автоматически. Плюс, когда придет время обновлять документацию, можно будет повторно использовать уже переведенные части текста - в тех местах, где msgid останутся прежними, нужные msgstr будут вставлены автоматически.

Как работать с po-файлом?

Теоретически можно редактировать po-файл вручную. Но лучше так не делать, благо есть удобные программы для этого. Как варианты по умолчанию можно порекомендовать для GNOME gtranslator, а для KDE - kbabel (для KDE 4.X используйте Lokalize из пакета kdesdk). И тот, и другой, разумеется, есть в репозитариях Fedora.

Краткая инструкция по работе с gTranslator

Внимание! Крайне рекомендуется при переводе документации иметь перед глазами не только po-файл, но и оригинальный текст на английском, чтобы не потерять смысл и контекст того, что Вы переводите.

Заполнение служебной информации

Перед тем, как приступить к переводу, заполните несколько служебных полей - как Вас зовут, на какой язык переводим, в какой кодировке писать переводы.

Для этого в меню выберите "Правка" - "Параметры" и перейдите на вкладку "Заголовок". Вы увидите ряд полей, которые надо заполнить:

Изображение:Gtranslator-5-header.png

Пожалуйста, заполните все поля.

Обязательно проверьте, что кодировка выставлена в "UTF-8". Поле "Э-почта команды" заполните на свое усмотрение (по умолчанию можно использовать fedora-documentation [ГАВ] www.russianfedora [ТОЧКА] ru или fedora-localization [ГАВ] www.russianfedora [ТОЧКА] ru).


Общие принципы

Откройте в gTranslator po-фaйл. Вы увидите примерно такое окно:

Общий интерфейс gTranslator

Из наиболее ценного - группы строк "Непереведенные", "Неточные" и "Переведенные" в левом верхнем углу экрана. Это ровно то, с чем нам предстоит работать дальше.

Раскрываем список "Неточные" и видим примерно следующее:

Неточные переводы в gTranslator

В левой колонке видны части текста, через которые нам предстоит последовательно пройти. Выделяем любую из них. После этого в центральном поле сверху видим оригинальный английский текст, а снизу - русский перевод, признанный неточным. Неточности могут быть самые разные - от откровенных ошибок до указания "Fedora" вместо "Fedora 10" или некорректного форматирования. Наша задача - понять, что не так в русской версии, и исправить это.

Раскрываем список "Непереведенные".

Непереведенные части текста в gTranslator

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

Из всего остального обязательно обратите внимание на 2 кнопки на верхней панели - "Сохранить" и "Компилировать".

Значение кнопки "Сохранить" достаточно интуитивно и в дальнейших комментариях не нуждается.

По нажатию же кнопки "Компилировать" gTranslator скомпилирует po-файл средстваим msgfmt. Что принципильно для нас - при этом он проверит его корректность. После компиляции Вы должны получить сообщение примерно следующего вида.

Изображение:Gtranslator-4-compile.png

Если сообщение такое есть - все нормально. Если в сообщении говорится о неких ошибках - скорее всего, на каком-то этапе была повреждена структура файла. В этом случае стоит разобраться, что менялось с прошлой компиляции, и устранить ошибки.