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

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

Смотри также

 
Личные инструменты