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

Материал из ALT Linux Wiki
(Import from freesource.info)
 
(wikification)
Строка 1: Строка 1:
[[Category:Devel]]
[[Категория: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> (ru - в зависимости от языка)
Файл 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, так что его можно и опустить


=== Смотри также ===
=== Смотри также ===

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

Смотри также