Функция `Gettext` предназначена для обеспечения перевода всей операционной системы GNU / Linux. Именно по этой причине она является 100% совместим с большим количеством языков программирования и языков сценариев: C, C + +, C #, Bash, Python, GNU clsip, Emacs Lisp, GNU Smalltalk, Java, GNU AWK, Pascal, WxWidgets, YCP , Tcl, PHP, щука и другие.

Прежде всего, давайте посмотрим, как использовать `` Gettext в исходном коде. Правила реализации варьироваться в зависимости от используемого языка программирования для вашего проекта, но синтаксис почти всегда то же самое, по крайней мере для популярных языков программирования: функция просто содержит строку сообщения для перевода. Следует отметить, что почти всегда использует краткую форму, которая просто соответствует подчеркивания. Таким образом, следующий код в C:

printf(gettext("My name is %s\n"), mio_nome);

будет выглядеть так:

printf(_("My name is %s\n"), mio_nome);

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

#: include/myname.php:36
msgid "My name is %s\n"
msgstr ""

Чтобы начать перевод используется в программе `` msginit. Перемещение файлов. Маленькая `на` msginit можно создать новый файл, содержащий каркас нового. Бит в целевом языке. Например, чтобы преобразовать файл в итальянском en_EN.po просто выполните следующую команду:

язык = ru-msginit ввода = en_EN.po

В рамках программы будет создан файл it_IT.po, содержание которого будет похож на следующий:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "My name is %s\n"

На данный момент, переводчик не должны сделать перевод строки после msgstr. Перевод можно сделать в любом редакторе прямо из командной строки или с помощью специальных программ, как POedit . Результат будет выглядеть следующим образом:

#: include/myname.php:36
msgid "My name is %s\n"
msgstr "Mi chiamo %s\n"

. После перевода файлы Po должны быть скомпилированы в двоичный файл через Mo `msgfmt`.:

msgfmt it_IT.po

Отправить эту содержания:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter