国际化 Bash 脚本

Cor*_*fco 6 bash shell ubuntu internationalization

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

toby@toby-laptop:~/Desktop/i18n$ gettext -s "Greeting"
Greeting
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*ce. 5

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

export TEXTDOMAIN=rand.sh
Run Code Online (Sandbox Code Playgroud)

当显示的步骤完成时应执行该操作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
Run Code Online (Sandbox Code Playgroud)

请注意,Bash 手册说某些系统可能会以不同的方式使用变量$LC_MESSAGES, 。$TEXTDOMAIN$TEXTDOMAINDIR