Django的额外gettext关键字处理
项目描述
© 2014-2015 Thomas Khyn
已在Django 1.4至1.8和所有支持的Python版本上测试。
关于
django的makemessage管理命令解析应用程序的代码以生成.pot和.po文件,前提是字符串是通过类似gettext的函数(gettext、ugettext、ngettext、ugettext_lazy等)或_别名调用的。
然而,使用除了_之外的其他别名相当常见,例如对于懒加载翻译,可以使用_l。
在版本1.7之前,Django没有提供指定可能用于翻译字符串的其他别名的途径。此插件填补了这一空白,而无需修改django代码本身。
从版本1.7开始,可以在自定义makemessages命令中使用xgettext_options。使用此应用程序可节省编写自定义命令的麻烦。
安装
使用pip尽可能简单
pip install django-extra_keywords
然后您需要将 'extra_keywords' 添加到您的 INSTALLED_APPS 中。请注意,在生产环境中安装此应用程序没有意义,并且它可能仅在开发设置模块中使用。
用法
安装完成后,您可以
在您的 settings 模块中定义 GETTEXT_EXTRA_KEYWORDS,作为一个包含您要添加的关键字的元组或列表
GETTEXT_EXTRA_KEYWORDS = ('_l', '_n:1,2')
或从命令行使用,使用 --extra-keyword 选项(没有 s,要添加多个关键字您必须重复此选项)
manage.py makemessages [...] --extra-keyword=_l [...]
关键字格式
当使用单参数函数的别名(ugettext、ugettext_lazy 等)时,只需使用别名作为关键字。当使用多参数函数的别名时,您需要根据以下表格指定它们
函数类型 |
关键字格式 |
---|---|
gettext* |
X |
ngettext* |
X:1,2 |
pgettext* |
X:1c,2 |
npgettext* |
X:1c,2,3 |
示例:如果 _n 是 ungettext 的别名,则在 GETTEXT_EXTRA_KEYWORDS 或 makemessages 命令中使用的关键字是 '_n:1,2'。
项目详情
django-extra_keywords-1.1.2.zip 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 9ff99ee6118de1a79e20dba3c8f04f32dbbb5e13ac45d85b64051e5d557b316a |
|
MD5 | 1c1784861f8a3e1711e0339b086d33b2 |
|
BLAKE2b-256 | e078aa87a2c1baa5355a65bab311ce609045e9c148bf82bd6421c296ea8f7029 |