草庐IT

Python:gettext 不会在 Windows 上加载翻译

这段特殊的代码在Linux上运行良好,但在Windows上运行不佳:locale.setlocale(locale.LC_ALL,'')gettext.bindtextdomain('exposong',LOCALE_PATH)gettext.textdomain('exposong')代码来自here即使我在locale.setlocale中指定了语言环境(我尝试了不同的格式)它也不起作用。一个问题可能是环境变量中没有设置语言环境(但我使用的是德语Windows版本;在XP和Vista上测试过)。如果我在命令行上执行"SetLang=de_DE",一切都会按预期进行。有什么想法吗?

python - 无法使用 gettext 将已翻译的字符串附加到自己身上

以下代码无效fromdjango.utils.translationimportgettext_lazyas_stringtest=_("Firststring")stringtest=stringtest+_("Secondstring")printstringtest我得到以下异常:cannotconcatenate'str'and'__proxy__'objects真的不可能给自己附加一个“翻译”的字符串吗? 最佳答案 你不能连接你的两个字符串,而是创建一个新字符串(这已经是你的+操作的情况,因为字符串是不可变的):fromd

python - django:gettext 和强制转换为 unicode

我的Django应用程序中有以下代码。classStatus(object):def__init__(self,id,desc):self.id=idself.desc=descdef__unicode__(self):returnself.descSTATUS=Status(0,_(u"Sometext"))当我尝试显示某些状态(或什至将其强制转换为unicode)时,我得到:TypeError:coercingtoUnicode:needstringorbuffer,__proxy__found谁能解释一下,我做错了什么? 最佳答案

python gettext 错误 : Can't convert '__proxy__' object to str implicitly

我突然在之前运行的代码中遇到了一个奇怪的错误。我最近从1.9.4升级到Django1.9.6。在我的一个观点中,我有:fromdjango.contribimportmessagesfromdjango.utils.translationimportugettext_lazyas_messages.success(request,str(_('Astringwitha')+''+_('link!')+'.'),extra_tags="safehtml")这现在在倒数第二行给出了一个TypeError:Can'tconvert'__proxy__'objecttostrimplicitl

python - 通过 Babel 国际化 Python 2.6 应用程序

我们正在Windows下评估Babel0.9.5[1]与Python2.6一起使用,并且有以下问题我们无法通过阅读文档或谷歌搜索来回答。1)我想对ungettext使用类似_的缩写。对于是否应该为此使用n_或N_是否存在争议?n_似乎不起作用。Babel不会提取文本。N_似乎部分起作用。Babel像提取gettext一样提取文本,但不会为ngettext格式化(缺少复数参数和msgstr[n].)2)有没有办法在创建POT文件时像下面这样设置初始msgstr字段?我怀疑可能有一种方法可以通过Babelcfg文件来执行此操作,但我一直无法找到有关Babelcfg文件格式的文档。“项目ID

python - "from MODULE import _"在 python 中做什么?

在Gettingthingsgnome代码库中,我偶然发现了这个import语句fromGTGimport_不知道这是什么意思,在文档中从未见过这个,所以/谷歌快速搜索没有找到任何东西。 最佳答案 fromGTGimport_将_函数从GTG模块导入“当前”命名空间。通常,_函数是gettext.gettext()的别名。,一个显示给定消息的本地化版本的函数。该文档给出了一个很远很远的模块中其他地方通常发生的事情的图片:importgettextgettext.bindtextdomain('myapplication','/pat

python - 用python解析gettext `.po`文件

我需要从.po文件中提取消息。有没有Python模块可以做到这一点?我写了一个解析器,但它取决于平台(\r\n与\n)。有更好的方法吗? 最佳答案 在大多数情况下,您不需要自己解析.po文件。开发人员给翻译人员一个.pot模板文件,他们将其重命名为xx_XX.po并翻译字符串。然后,作为开发人员,您只需使用GNU的gettext工具(或其Python实现,pygettext)将它们“编译”为.mo文件但是,如果你想/需要自己解析po文件,而不是编译它们,我强烈建议你使用polib,一个著名的python库来处理po文件。它被多个大型

python - 如何在 python 中为多种语言编写文档字符串

我想为自己创建一个新模块,但我也希望一些同事能够使用它。我开始用英语编写我的文档字符串,但后来我意识到,对于那些不太了解这种语言的人来说,这会使该模块变得无用。我的第一个想法是在同一个文档字符串上同时输入英语和西类牙语。但这似乎不太对,如果我想让一些俄罗斯friend也用它怎么办?如果我的friend在世界各地都有friend,但他们没有任何共同语言来阅读文档怎么办?用多种语言编写和阅读文档字符串的最简单方法是什么? 最佳答案 我遇到了同样的问题;有点:cmd模块使用docstrings向最终用户打印帮助,我真的需要一种方法来使用多

python - 如何创建国际化的 Google App Engine 应用程序

我想以用户自己的语言提供我的PythonGAE网站,只使用AppEngine中直接可用的工具。为此,我想使用GNUgettext文件(.po和.mo文件)。有人成功地结合了PythonGoogleAppEngine和gettext文件吗?如果是这样,您能否提供您使用的步骤?我已经启动了adiscussioninGAE'sGooglegroup,但无法从中提取出我想如何做:我不想添加外部依赖项,如Babel(在讨论中建议)。我想使用普通的GoogleAppEngine,因此无需手动更新Django或此类东西。首先,我将开始使用浏览器发送的语言,因此无需使用cookie等手动强制使用该语言

python - 从 Javascript 和 HTML 文件(模板)中提取 gettext 字符串

我知道至少有两种方法可以从.js文件中提取gettext字符串——使用python模式下的gettext解析器(我听说它有一些缺点)和用python编写的Babel。有没有办法从HTML文件中提取gettext字符串——或者更准确地说——Javascript模板(下划线、mustache等)。据我所知,Babel或gettext也不会这样做。我的一个friend试图改编Babel来做这件事,但是它有一些严重的问题,比如缺少一些翻译等......更新:一位friend指导了我一点,所以现在看来​​我可以按照我想要的方式提取所有字符串。我唯一缺少的是“译者评论”。我使用的命令是这样的:fi