Python gettext无法加载翻译文件

chill0r

问题:

在python gettext中加载已编译的翻译文件时,它将引发异常

 Traceback (most recent call last):
  File "xxxx.py", line 6, in <module>
    lang_en = gettext.translation(__appname__,LanguageDirectory,languages=['en'])
  File "C:\Python33\lib\gettext.py", line 410, in translation
    t = _translations.setdefault(key, class_(fp))
  File "C:\Python33\lib\gettext.py", line 160, in __init__
    self._parse(fp)
  File "C:\Python33\lib\gettext.py", line 265, in _parse
    item = b_item.decode().strip()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe4 in position xxx: invalid continuation byte
chill0r

目前,gettext.py库无法解析翻译文件标题中的iso-8859字符。

带有该问题的示例标题(在编译之前):

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR ORGANIZATION
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2013-12-06 11:22\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE+Mitteleuropäische Zeit\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
"Generated-By: pygettext.py 1.5\n"

在这个例子中Mitteleuropäische Zeit会引起问题。

如何解决
目前,避免此问题的最简单方法是不在标题内使用iso-8859字符。
为了避免pygettext.py将当前语言的时区添加到标题中,您可以更改

第447行-pygettext.py

timestamp = time.strftime('%Y-%m-%d %H:%M-%Z')

timestamp = time.strftime('%Y-%m-%d %H:%M', time.gmtime())

通过此修改,pygettext不会将时区添加到标头中。相反,它将使用当前的格林威治标准时间

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python django 翻译 .po 和 .mo 文件不翻译文件

来自分类Dev

按需加载翻译文件

来自分类Dev

为什么我的应用程序无法加载lib的翻译文件

来自分类Dev

i18next未加载翻译文件

来自分类Dev

加载时覆盖WordPress插件翻译文件

来自分类Dev

加载时覆盖WordPress插件翻译文件

来自分类Dev

Django javascript翻译目录文件无法加载,显示错误-ReferenceError:未定义gettext

来自分类Dev

Symfony2如何从翻译文件夹加载翻译

来自分类Dev

维护yml翻译文件

来自分类Dev

我的插件的翻译文件没有被加载或工作不正确

来自分类Dev

Symfony 3 - 无法加载翻译“消息”文件

来自分类Dev

在pygtk中添加翻译文件

来自分类Dev

在pygtk中添加翻译文件

来自分类Dev

正确的Django翻译文件树结构

来自分类Dev

捆绑翻译文件还是不捆绑?

来自分类Dev

如何通过python通过shell编译文件列表

来自分类Dev

为什么我无法在python中加载此json文件?

来自分类Dev

如何从../加载python文件

来自分类Dev

在Django中翻译文件时的Git命令

来自分类Dev

在Node / Express中重用大型翻译文件的最佳方法

来自分类Dev

JsonLocalisation-TFS中的链接翻译文件

来自分类Dev

整理本地化翻译文件的最佳方法

来自分类Dev

Laravel以数组的形式获取翻译文件的内容

来自分类Dev

django翻译文件的正确位置是什么?

来自分类Dev

在Node / Express中重用大型翻译文件的最佳方法

来自分类Dev

Symfony2:如何创建自己的翻译文件?

来自分类Dev

如何访问与当前语言环境不同的翻译文件?

来自分类Dev

GHCi从不加载编译文件

来自分类Dev

加载.pkl文件后出现Python错误“ ValueError:无法识别加载的数组布局”

Related 相关文章

热门标签

归档