在BashFAQ of Gregs's Wiki中,写着以下内容:
不要标记包含变量或其他替换的字符串。
和
Bash(至少达到4.0)在其他替换之前执行语言环境扩展。因此,在这种情况下:
echo "The answer is $answer"
文字字符串$ answer将成为标记字符串的一部分。
现在我可以理解,在标记为可翻译的字符串中使用变量是安全方面的危险,如http://www.gnu.org/software/gettext/manual/html_node/bash.html中所述。 然而,既不删除变量也不拆分字符串是可行的,因为这使翻译变得困难/不可能(因为例如俄语,法语,德语和英语中的句子结构不同)。
所以我的问题是:是否存在任何理智且安全的bash本地化方式,或者在本地化方面是否使用更具表现力的编程语言(如Python,Ruby或Perl)?
答案 0 :(得分:1)
http://www.linuxtopia.org/online_books/advanced_bash_scripting_guide/localization.html看起来像是使用gettext进行Bash本地化的好教程,但我还没有使用它。