Как переводить sh-сценарии

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Ссылки)
 
(2 промежуточные версии не показаны)
Строка 1: Строка 1:
-
[[Категория:Devel]]
 
-
[[Категория:Локализация]]
 
-
 
== Пометка локализуемых строк и получение .pot ==
== Пометка локализуемых строк и получение .pot ==
Строка 10: Строка 7:
  $ xgettext -o program.pot program.sh
  $ xgettext -o program.pot program.sh
-
=== Небезопасный способ, к тому же работающий только в bash ===
+
=== Небезопасный<ref>http://www.gnu.org/software/gettext/manual/html_node/bash.htm</ref> способ, к тому же работающий только в bash ===
Только для справки!
Только для справки!
Строка 34: Строка 31:
== Ссылки ==
== Ссылки ==
 +
<references/>
 +
* <tt>info gettext</tt>
* <tt>info gettext</tt>
* примеры в <tt>/usr/share/doc/gettext*</tt>
* примеры в <tt>/usr/share/doc/gettext*</tt>
* [http://www.gnu.org/software/gawk/manual/gawk.html#Internationalization локализация gawk-сценариев]
* [http://www.gnu.org/software/gawk/manual/gawk.html#Internationalization локализация gawk-сценариев]
 +
* [http://wiki.puppyrus.org/programming/intern# Интернационализация скриптов (перевод)]
 +
 +
{{Category navigation|title=Localization|category=Localization}}

Текущая версия на 06:36, 21 июня 2015

Содержание

Пометка локализуемых строк и получение .pot

Правильный способ

gettext "An example"; echo
eval_gettext "An example: \$VAR"; echo

Далее

$ xgettext -o program.pot program.sh

Небезопасный[1] способ, к тому же работающий только в bash

Только для справки!

Предварить локализуемые строки в скрипте символом $:

echo $"An example: $PATH"

Далее

$ bash --dump-po-strings program.sh > program.pot

Установка переводов

Компилируем переведённый файл сообщений

$ msgfmt -o program.mo program-<lang>.po

И копируем его в /usr/share/locale/<lang>/LC_MESSAGES

Использование переводов

В начале скрипта:

. gettext.sh


TEXTDOMAIN=program
export TEXTDOMAIN

Ссылки

  1. http://www.gnu.org/software/gettext/manual/html_node/bash.htm
 
Личные инструменты