Как переводить sh-сценарии: различия между версиями
(wikification) |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
[[Категория:Devel]] | [[Категория:Devel]] | ||
[[Категория:Локализация]] | |||
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/КакПереводитьСценарииBash}} | {{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/КакПереводитьСценарииBash}} | ||
Версия от 11:38, 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-сценариев