我正在玩本地化bash脚本:
我用这个内容创建了文件/tmp/hello.sh:
#!/bin/bash
LANGUAGE=es_ES
TEXTDOMAINDIR=/home/adrian/tmp/locale
TEXTDOMAIN=hello
echo $"Hello, world"
生成hello.pot:
bash --dump-po-strings hello.sh
现在hello.pot
包含:
: hello:2
msgid "Hello, world"
msgstr "Hola ..."
如果我跑
sudo msgfmt -o /home/adrian/tmp/es/LC_MESSAGES/hello.mo hello.pot
LANGUAGE=es_ES ./hello
它不起作用。如果仅在将mo文件复制到/ usr / local / share / locale / es /.
时有效答案 0 :(得分:1)
以下命令需要匹配脚本中的变量(反之亦然):
sudo msgfmt -o /home/adrian/tmp/locale/es/LC_MESSAGES/hello.mo hello.pot
请注意添加locale
。
请参阅How to add localization support to your bash scripts和Internationalizing Those Bash Scripts。