突出显示已翻译字符串的国际化帮助程序

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_htmli18n_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

联系人

作者:圣地亚哥加布里埃尔·罗梅罗

联系人:sromero@machinalis.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OpenShift的齿轮特性   java如何在Liferay站点的每个页面上放置公司地址和电话?   java确定整数数组中是否存在一个子集,在两个条件下求和到给定的目标值   序列化为什么java中的serialVersionUID必须是静态的、最终的、长类型的?   java响应返回null   java注入接口实现Quarkus   java我不明白为什么第二次排序的运行时间比第一次慢?   (Java)显示图像的最佳方式?   java Android应用程序因添加布局而崩溃   java如何在运行时获取泛型变量的类   java Selenium web驱动程序:无效的选择器:*:WebKitFullScreenSentor   Spring中的java注入值始终为空   Eclipse中带有TestNG插件的@BeforeSuite和@AfterSuite的java问题   使用trycatch块、filewriter和printwriter在java中创建自定义类   如何在Java 安卓上绘制相交的两条线