Python gettext - 不翻译
示例 python 程序:[CGI 脚本,因此它需要选择自己的语言,而不是使用主机操作系统设置的任何语言]
import gettext
gettext.install('test', "./locale")
_ = gettext.gettext
t = gettext.translation('test', "./locale", languages=['fr'])
t.install()
print _("Hello world")
./locale/fr/LC_messages/test.mo 包含翻译(作为二进制文件,通过运行 msgfmt 生成)在 .po 文件上)。
程序打印“Hello world”而不是翻译版本。可能是什么问题?
Sample python program: [CGI script, so it needs to select its own language rather than using whatever the host OS is set to]
import gettext
gettext.install('test', "./locale")
_ = gettext.gettext
t = gettext.translation('test', "./locale", languages=['fr'])
t.install()
print _("Hello world")
./locale/fr/LC_messages/test.mo contains the translation (as binary file, generated by running msgfmt on a .po file).
Program prints "Hello world" instead of the translated version. What could be the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许这个答案太晚了,但我刚刚发现这个,我认为它可以帮助你。
在我自己的程序中,我是这样做的:
注意:
我的程序上有一个 lang 目录。
对于每种语言,都会使用 lang 创建一个目录:*XX_xx* (
en_US
)目录
en_US
里面有LC_MESSAGES
,里面有TOOLNAME.mo
但这就是我的跨语言方式。
Maybe this answer is WAY too late, but I just found this and I think it can help you.
In my own programm, I did it this way:
NOTE:
My program has a lang directory on it.
For every language a directory is made in lang : *XX_xx* (
en_US
)Inside the directory
en_US
there isLC_MESSAGES
, and inside there isTOOLNAME.mo
But that's my way for cross-language.