Как переводить sh-сценарии
Материал из ALT Linux Wiki
(Различия между версиями)
(Import from freesource.info) |
(wikification) |
||
Строка 1: | Строка 1: | ||
- | [[ | + | [[Категория:Devel]] |
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/КакПереводитьСценарииBash}} | {{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/КакПереводитьСценарииBash}} | ||
Строка 23: | Строка 23: | ||
<pre>$ msgfmt -o program.mo program.po</pre> | <pre>$ msgfmt -o program.mo program.po</pre> | ||
- | Файл program.mo должен быть скопирован в <tt>/usr/share/locale/ru/LC_MESSAGES</tt> ( | + | Файл program.mo должен быть скопирован в <tt>/usr/share/locale/ru/LC_MESSAGES</tt> (ru — в зависимости от языка) |
Сценарий должен начинаться со строк | Сценарий должен начинаться со строк | ||
Строка 31: | Строка 31: | ||
TEXTDOMAINDIR='/usr/share/locale' | TEXTDOMAINDIR='/usr/share/locale' | ||
export TEXTDOMAINDIR TEXTDOMAIN</pre> | export TEXTDOMAINDIR TEXTDOMAIN</pre> | ||
- | TEXTDOMAINDIR и так по умолчанию /usr/share/locale , так что его можно и опустить | + | TEXTDOMAINDIR и так по умолчанию /usr/share/locale, так что его можно и опустить |
=== Смотри также === | === Смотри также === |
Версия 08:37, 5 августа 2008
Как переводить сценарии bash
Консольные скрипты, выводящие локализованные тексты в консоль, должны быть локализованы с помощью gettext.
Небезопасный способ:
строки в скрипте должны быть в двойных кавычках, предварённых знаком '$', то есть выполнены так:
echo $"An example: $PATH"
Далее выполняем
$ bash --dump-po-strings program.sh >program.po
Переводим нужные строки.
Правильный способ:
gettext "An example"; echo
или если требуется вычисление переменных.
eval_gettext "An example: \$PATH"; echo
Далее выполняем
$ xgettext -o program.po program.sh
Переводим нужные строки.
Компилируем переведённый файл сообщений
$ msgfmt -o program.mo program.po
Файл program.mo должен быть скопирован в /usr/share/locale/ru/LC_MESSAGES (ru — в зависимости от языка)
Сценарий должен начинаться со строк
. gettext.sh TEXTDOMAIN=program TEXTDOMAINDIR='/usr/share/locale' export TEXTDOMAINDIR TEXTDOMAIN
TEXTDOMAINDIR и так по умолчанию /usr/share/locale, так что его можно и опустить
Смотри также
- info gettext
- примеры в /usr/share/doc/gettext*
- локализация gawk-сценариев