擅长:python、mysql、java
<p>install()所做的只是将函数定义为可以翻译文本的东西。在第一个示例中,您在ro.install()调用之前执行<code>x = card.Rank()</code>,因此只有在调用<code>j = _('Jack')</code>时,才会将其转换为默认英语。随后,_u()被重新定义为罗马尼亚语-但它再也不会被调用,因此再也不会被重传。</p>
<p>我希望这能奏效:</p>
<pre><code>#! /usr/bin/env python2.7
import gettext
gettext.install('messages', '../i18n', unicode=True)
import card
if __name__ == '__main__':
x = card.Rank()
print x.j, x.a, x.q, x.k
ro = gettext.translation('messages', localedir='../i18n', languages=['ro'])
ro.install()
x = card.Rank()
print x.j, x.a, x.q, x.k
en = gettext.translation('messages', localedir='../i18n', languages=['en'])
en.install()
x = card.Rank()
print x.j, x.a, x.q, x.k
</code></pre>