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

Материал из ALT Linux Wiki
Версия от 19:06, 28 июля 2008; ArtemZolochevskiy (обсуждение | вклад) (Import from freesource.info)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Как переводить сценарии 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 , так что его можно и опустить

Смотри также