2010-10-03 90 views
4

我一直在關注Linux Journal的最新版tutorial,它教導瞭如何國際化Bash腳本。但是,我在使用我的系統(Ubuntu 10.04)時遇到了問題。在設置環境變量TEXTDOMAINDIR後,當我到達應該調用「gettext」的部分時,得到:國際化Bash腳本

[email protected]:~/Desktop/i18n$ gettext -s "Greeting" 
Greeting 

但它應該會打印一條消息,指出「您好,我可以在您提供的兩個數字之間生成一個隨機數」而不是「問候」。任何人都可以複製這個問題嗎?任何想法我做錯了什麼?謝謝!

回答

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以不同的方式。

+0

這些文件最好的地方是什麼? – 2010-10-03 21:46:17

+0

我會考慮並行類似的系統定義的目錄,所以可能的選擇可能是'/ usr/local/locale','/ usr/local/lib/locale'或'/ usr/local/share/locale'或類似。 – 2010-10-03 23:32:17

+0

簡單的Bash i18n例子:https://github.com/meonkeys/bash-i18n-example/ – 2013-07-10 17:37:55