国际化Bash脚本

时间:2010-10-03 01:08:15

标签: bash ubuntu internationalization shell

我一直在关注最新版本的 Linux Journal 中的tutorial,该版本教授如何国际化Bash脚本。但是,我无法让它在我的系统上工作(Ubuntu 10.04。)当我在设置环境变量TEXTDOMAINDIR之后到达我应该调用“gettext”的部分时,我得到:

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

但它应该打印一条消息,上面写着“你好,我可以在你提供的2个号码之间生成一个随机数”,而不仅仅是“问候”。任何人都可以复制这个问题吗?我有什么想法我做错了吗?谢谢!

1 个答案:

答案 0 :(得分:3)

该教程的作者忘记了以下步骤:

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 manual表示某些系统可能以不同方式使用变量$LC_MESSAGES$TEXTDOMAIN$TEXTDOMAINDIR