Как переводить sh-сценарии: различия между версиями

Материал из ALT Linux Wiki
(wikification)
Нет описания правки
Строка 1: Строка 1:
[[Категория:Devel]]
[[Категория:Devel]]
[[Категория:Локализация]]
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/КакПереводитьСценарииBash}}
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/devel/КакПереводитьСценарииBash}}



Версия от 11:38, 5 августа 2008

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

Смотри также