Интернационализация Bash-скриптов - PullRequest
4 голосов
/ 03 октября 2010

Я следовал учебнику из недавнего издания Linux Journal , в котором рассказывается, как интернационализировать скрипты Bash. Однако у меня возникают проблемы с тем, чтобы заставить его работать в моей системе (Ubuntu 10.04.) Когда я добираюсь до части, где я должен вызывать «gettext», после установки переменной окружения TEXTDOMAINDIR, я получаю:

toby@toby-laptop:~/Desktop/i18n$ gettext -s "Greeting"
Greeting

Но это должна быть печать сообщения с надписью «Здравствуйте, я могу сгенерировать случайное число между двумя цифрами, которые вы предоставляете», а не просто «Приветствие». Кто-нибудь может повторить эту проблему? Есть идеи, что я делаю не так? Спасибо!

1 Ответ

3 голосов
/ 03 октября 2010

Автор этого урока забыл следующий шаг:

export TEXTDOMAIN=rand.sh

, которое должно быть выполнено после выполнения шага, показанного как export TEXTDOMAINDIR=/home/lji/locale (с заменой соответствующего имени каталога).

Вы можете использовать $"" вместо gettext:

$ cat rand.sh
#!/bin/bash
TEXTDOMAINDIR=$HOME/locale   # probably not the best place for these files, but OK for testing
TEXTDOMAIN=rand.sh
gettext -s "Greeting"
echo $"Greeting"
$ ./rand.sh
Hello, I can generate a random number between 2 numbers that you provide
Hello, I can generate a random number between 2 numbers that you provide

Обратите внимание, что в руководстве Bash говорится, что некоторые системы могут использовать переменные $LC_MESSAGES, $TEXTDOMAIN и $TEXTDOMAINDIR по-разному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...