突出显示已翻译字符串的国际化帮助程序
django-i18n-helper的Python项目详细描述
提供一种在django模板中可视化已翻译字符串的简单方法 通过使用自定义HTML和CSS包装翻译的内容。因此 最重要的是,它还可以帮助您可视化未扭曲的字符串。
它是如何工作的
django i18n helper是一个通用的django应用程序,它重写django核心函数 加载以提供所需的行为。
应用程序将自动检测何时运行测试,何时不运行 在这种情况下重写任何方法以保持测试的完整性。
安装
得到它
pip install django-i18n-helper
之后,您只需将“i18n_helper”添加到已安装的应用程序中,然后 激活国际化调试。在settings.py中,确保有:
- INSTALLED_APPS = (
- …, ‘i18n_helper’ )
以及
I18N_HELPER_DEBUG = True
django-i18n-helper提供了一个默认行为,包括包装 具有以下属性的HTML div的翻译内容:
<div class=’i18n-helper’ style=’display: inline; background-color: #FAF9A7;’>Translated text</div>
这为转换的字符串提供了一个软高亮显示,但是此行为可以是 在settings.py中修改。
定制
提供了一些配置变量,以便自定义转换字符串的包装方式。
####i18n_helper_html
定义用于包装翻译的整个HTML块。这个字符串将是 使用格式化(http://docs.python.org/library/stdtypes.html#str.format) 翻译文本。因此,{0}的每次出现都将替换为 翻译
I18N_HELPER_HTML = “<span class=’highlight’>{0}</span>”
如果未设置i18n_helper_html,则使用的代码将是
<div class=’i18n-helper’ style=’display: inline; background-color: #FAF9A7;’>{0}</div>
####i18n_helper_类
定义不使用i18n_helper_html时用于html div的类。默认为“i18n helper”。
I18N_HELPER_CLASS = “my-custom-class”
####i18n_helper_样式
如果没有i18n_helper_html或 i18n_helper_类已设置(在这种情况下,假定css 为类提供所需的样式)。默认为“display:inline;background color:faf9a7;”。
I18N_HELPER_CLASS = “font-weight: bold; background-color: yellow;”
屏幕截图
图形化的例子有时是更好的方式来理解一些东西是如何工作或看起来像。这里有两个例子说明完全翻译的模板是什么样子的,还有两个例子说明部分翻译的模板是什么样子的。
完全翻译的模板
<;img src='http://pictat.com/i/2012/8/27/16220screenshot.png’/>;
<;img src='http://pictat.com/i/2012/8/22/11913traslated2.png’/>;
部分翻译的模板。请注意,从管理站点还可以看到哪些模型字段没有设置用于转换字段名的“详细名称”属性。
<;img src='http://pictat.com/i/2012/8/22/23861untraslate.png’/>;
<;img src='http://pictat.com/i/2012/8/22/21074untraslate.png’/>;
免责声明
当“调试”代码翻译时,应用程序应该只使用,因为它重写默认的django html scaping机制,从而输出未转义(可能是不需要的)代码。 此外,还有一些警告您应该注意:
- 如果您有像&;lt;input type=“text”value={%trans“search”%}这样的东西,您将在按钮或输入中看到奇怪的HTML,然后您翻译的包装HTML将显示在输入或按钮中。这在管理站点中肯定会发生。
- 在同步数据库之前,请将i18n_helper_debug设置为false,否则可能会看到诸如“值太长,无法更改类型字符(50)”之类的错误。
- 在运行迁移之前,请将i18n_helper_debug设置为false,否则可能会看到诸如“值太长,无法更改类型字符(50)”之类的错误。
- 从版本0.1.1中,只有在运行runserver命令时才会启用此帮助程序,因此您不必担心在执行syncdb、迁移或任何操作时将其关闭。
- 一些大写字母可能会丢失
用
测试- Django 1.3/1.4
- python 2.6.1/2.7.2