Как переводить sh-сценарии
Материал из ALT Linux Wiki
(Различия между версиями)
(wikification) |
(→Ссылки) |
||
(5 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | + | == Пометка локализуемых строк и получение .pot == | |
- | + | ||
- | == | + | === Правильный способ === |
+ | gettext "An example"; echo | ||
+ | eval_gettext "An example: \$VAR"; echo | ||
+ | Далее | ||
+ | $ xgettext -o program.pot program.sh | ||
- | + | === Небезопасный<ref>http://www.gnu.org/software/gettext/manual/html_node/bash.htm</ref> способ, к тому же работающий только в bash === | |
+ | Только для справки! | ||
- | < | + | Предварить локализуемые строки в скрипте символом <tt>$</tt>: |
- | + | echo $"An example: $PATH" | |
- | Далее | + | Далее |
- | + | $ bash --dump-po-strings program.sh > program.pot | |
- | + | ||
- | + | == Установка переводов == | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
Компилируем переведённый файл сообщений | Компилируем переведённый файл сообщений | ||
- | + | $ msgfmt -o program.mo program-<lang>.po | |
+ | И копируем его в <tt>/usr/share/locale/<lang>/LC_MESSAGES</tt> | ||
- | + | == Использование переводов == | |
- | + | В начале скрипта: | |
- | + | . gettext.sh | |
+ | |||
+ | |||
+ | TEXTDOMAIN=program | ||
+ | export TEXTDOMAIN | ||
- | + | == Ссылки == | |
- | + | <references/> | |
- | + | ||
- | + | ||
- | + | * <tt>info gettext</tt> | |
- | * info gettext | + | |
* примеры в <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
Ссылки
- info gettext
- примеры в /usr/share/doc/gettext*
- локализация gawk-сценариев
- Интернационализация скриптов (перевод)