Интернет магазин китайских планшетных компьютеров



Компьютеры - Gettext

22 апреля 2011


Оглавление:
1. Gettext
2. Использование



Описание

Основным отличием от других подобных инструментов является то, что в gettext для обозначения переводимых строк в тексте программы используются их английские оригиналы, а не специальные идентификаторы. Таким образом получается, что для отображения интерфейса на английском языке, программе не нужны файлы перевода. Это как правило удобно, потому что большинство разрабатываемых приложений и так пишутся на английском.

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

Библиотека gettext предполагает хранение перевода в файлах с расширениями .mo, или .gmo .po и .pot.. Кроме самих строк перевода, .po файлы могут содержать комментарии переводчика и различные служебные пометки.

Для формирования и обновления этих файлов при изменении программы предполагается использование ряда утилит.

Первоначально, строки из исходного текста программы собираются с помощью программы xgettext в .pot-файл. Обновление этого файла и файлов переводов с использованием новых и изменившихся строк, появившихся в исходном коде, осуществляется программой msgmerge. При этом сохраняются все уже переведённые строки, а те, которые изменились, помечаются как неточные. По умолчанию, такие строки не будут использоваться программой. Они нужны для удобства переводчика: часто проще базироваться на существующем, пусть и устаревшем, переводе, чем переводить всю фразу заново.

Для начала перевода программы на конкретный язык, переводчик создаёт .po-файл: копирует .pot-файл в нужное место и меняет в нём заголовок. Для этого можно использовать программу msginit. Готовый файл перевода конвертируется в .mo-файлы утилитой msgfmt..

Также существуют утилиты для переводчиков, облегчающие редактирование перевода, например:

  • Poedit кросплатформенный использует wxWidgets.
  • Lokalize для KDE.
  • Gtranslator для GNOME.
  • Pootle машинный перевод в он-лайн и инструмент управления переводами.
  • gted плагин для Eclipse IDE.
  • В крайнем случае можно использовать простой текстовый редактор.

Кроме базовой реализации gettext для стандартного Си, существуют реализации аналогичного подхода для языков C++, Objective-C, сценарии sh/bash, Python, Perl, PHP, GNU CLISP, Emacs Lisp, librep, GNU Smalltalk, Java, GNU awk, Паскаль, wxWidgets, YCP, Tcl, Pike и R. Часть этих языков поддерживаются непосредственно упомянутыми выше утилитами..

Использование в большинстве языков схоже с использованием в Си.



Просмотров: 2553


<<< Deja Vu