如何在bash脚本中使用gettext?
我仅找到此页面,但我不理解。
Localization
我的脚本是这样写的:
#!/bin/bash
. lang_file.sh
echo $LANG_HELLO_WORLD
lang_file.sh看起来像这样:
#!/bin/bash
LANG_HELLO_WORLD="Hello World"
我想将lang_file.sh更改为使用gettext的内容,如下所示:
#!/bin/bash
LANG_HELLO_WORLD=`some gettext command to get string in user language`
我想使用Launchpad中的代码,以便其他用户可以翻译它(.po,.pot文件)
对不起,英语不好,有什么建议吗?
最佳答案
您需要执行以下步骤:
我们称之为
PRJ.sh
:#!/bin/sh
alias GETTEXT='gettext "PRJ"'
## Use GETTEXT to mark the string you want to translate
HELLO_WORLD=$(GETTEXT "Hello world")
echo "$HELLO_WORLD"
运行以下命令,它将仅查找实际要翻译的GETTEXT。
xgettext -o PRJ.pot -L Shell --keyword --keyword=GETTEXT PRJ.sh
对于您要覆盖的每个语言环境。
msginit -i PRJ.pot -l fr.UTF-8
请注意,建议使用“UTF-8”,否则
msginit
可能会错误地为您选择一些过时的编码。 msgfmt -v fr.po -o fr.mo
sudo install fr.mo /usr/share/locale/fr/LC_MESSAGES/PRJ.mo
现在您可以尝试结果:
LANGUAGE=fr ./PRJ.sh
并且您应该会看到Hello world的法语翻译。
关于bash - 在bash中使用gettext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2221562/