【问题标题】:Internationalizing Bash scripts国际化 Bash 脚本
【发布时间】:2010-10-03 01:08:15
【问题描述】:

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

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

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

【问题讨论】:

    标签: bash ubuntu internationalization shell


    【解决方案1】:

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

    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

    【讨论】:

    • 存放这些文件的最佳位置是什么?
    • 我会考虑并行类似的系统定义目录,所以可能的选择可能是 /usr/local/locale/usr/local/lib/locale/usr/local/share/locale 或类似的。
    猜你喜欢
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2011-02-07
    • 2018-01-02
    相关资源
    最近更新 更多