是一个允许从浏览器渲染的HTML中翻译django模板的django应用程序
项目描述
简介
Inlinetrans是一个django应用程序,允许从浏览器渲染的HTML中翻译django模板。一旦您使用inlinetrans将模板国际化,您就可以单击相应网页中的未翻译消息来添加它们的翻译。这对翻译人员来说非常有帮助,因为他们将能够在他们希望的环境中直接翻译这些消息。
特性
一个模板标签,inline_trans(或itrans),旨在替代django的trans。
一个管理命令,inline_makemessage,旨在替代django的makemessages。
一个显示可翻译消息的翻译栏,默认情况下仅对员工成员可见(您可以通过变量USER_CAN_TRANSLATE更改此行为,在设置中添加它)
要在浏览器中渲染的网页中翻译消息,您首先通过翻译栏找出哪些消息已经被翻译(标记为浅绿色)以及哪些消息缺少翻译(标记为浅红色)。
然后,您点击一个标记的消息,并提示其翻译;输入文本并点击“确定”后,新的翻译将发送到服务器并保存在正确的.pot文件中。
一旦您翻译了页面中的所有消息,您可以在翻译栏上点击“应用更改”。这将强制服务器重启,并重新加载应用了翻译的页面。
要求
要使用inlinetrans,您需要
演示(此视频使用非常旧的django-inlinetrans版本)
视频演示,django-inlinetrans,django-inplaceedit和django-inplaceedit-extra-fields(设置为全屏模式以正确查看)
使用inlinetrans
请确保您在所有要国际化的模板中加载inlinetrans,通过添加以下代码
>>> {% load inlinetrans %} {% inlinetrans_static %} <div id="inlinetrans-toolbar">place holder for inlinetrans toolbar</div> {% inlinetrans_toolbar "inlinetrans-toolbar" %}
然后,您可以使用
>>> {% inline_trans "translate this" %}
或者
>>> {% itrans "translate this" %}
而不是
>>> {% trans "translate this" %}
此外,您还可以使用以下方式自定义工具栏和其他参数
{% load i18n inlinetrans %} {% inlinetrans_media %} <script language="javascript"> (function ($) { $(document).ready(function () { var messages_dict = { givetranslationfor: 'Give a new translation for {0} to {{ language }}', emptytranslation: "You're sending an empty translation ¿Are you sure? ", reloading: "Reloading", apply_changes: "Apply changes", applying_changes: "Applying changes", error_cant_send: "Can't send translation", error_cant_restart: "Can't restart server" }; var new_translation_url = "{% url inlinetrans.views.set_new_translation %}"; var restart_url = "{% url inlinetrans.views.do_restart %}"; var toolbar_tpl = '\ <div class="inlinetransContainer">\ <img id="changes-loading" src="{{ INLINETRANS_MEDIA_URL }}img/ajax-loader-transparent.gif"/>\ <span class="inlinetransActions">\ <span class="inlinetransAction hightlightTrans">See translatable items</span>\ <span class="inlinetransAction hightlightNotrans">See non translated items</span>\ <span class="inlinetransAction restartServer">Apply changes</span>\ </span>\ </div>'; // init inlinetrans toolbar $('#{{ node_id }}').inlinetranstoolbar(toolbar_tpl, new_translation_url, restart_url, messages_dict); }); })(jQuery); </script>
Inlinetrans为每个翻译添加HTML代码,因此请确保您不要在HTML属性中使用inline_trans标签,例如这样
>>> <a href="#" alt="{% inline_trans "translate this" %}"></a>
在这些情况下,您必须使用常规的trans标签。
一旦您的模板实现了国际化,您运行以下命令
>>> $ ./manage.py inline_makemessages
这将从模板中提取所有inline_trans(itrans)和trans消息,并将它们合并到gettext目录中,就像makemessages为trans消息所做的那样。
之后,您可以启动服务器,导航到渲染的页面(默认情况下,作为员工成员),然后,如上所述,通过网页翻译消息。
贡献者
Antonio Pérez-Aranda Alcaide,ant30
Emilio Sánchez,emilio.sanchez
Manuel Saelices,lin
Pablo Martín,goinnn
变更历史
0.6.0 (2013-10-04)
支持python2.6(django-inlinetrans==0.5.X不支持)
示例项目的改进
0.5.1 (2013-09-13)
元信息改进(readme文件和贡献者文件)
0.5.0 (2013-09-13)
Django 1.5(1.4、1.3和1.2)兼容,之前的版本不工作,因为csrf令牌保护
Python 3兼容
使用静态文件,django-inlinetrans仍然使用媒体文件
删除polib冻结,现在这是一个依赖项
删除inline_makemessages代码,现在修复了猴子补丁问题
现在我们可以使用一个设置来自定义用户可以内联翻译
添加示例项目
添加元信息
0.4.12 (2011-05-23)
从inlinetrans模板中删除换行符
0.4.11 (2011-05-17)
如果日志文件不存在,不要尝试记录服务器重启
修复了模板节点缓存时的双重翻译问题
0.4.10 (2011-04-18)
Django 1.3兼容性
0.4.9 (2011-04-13)
转义msgid,以便DOM解析器不替换HTML实体。这解决了包含实体如©的字符串的翻译问题。
0.4.8 (2011-04-13)
发送一些数据以避免代理/网关/防火墙阻止没有主体的POST请求。
0.4.7 (2011-03-22)
设置区域路径,如果django服务器已从项目目录外启动,则需要此路径。
0.4.6 (2011-03-18)
当标签在两个或多个目录中找到时,修复了翻译。优先级计算不当。
0.4.5 (2011-03-17)
在某些环境中修复了命令执行问题。
0.4.4 (2011-03-17)
支持具有参数的自定义重启命令。
0.4.3 (2011-03-14)
西班牙语翻译。
0.4.2 (2011-03-09)
inline_makemessages命令找不到任何itrans模板标签。
0.4.1 (2011-02-27)
修复了0.4.0版本中为匿名用户创建的bug。
使inlinetrans使用的媒体基本目录可定制。
0.4.0 (2011-02-24)
兼容Django 1.2和1.3。
允许使用inline_trans标签的过滤器。
0.3.2 (2011-02-22)
当msgid在任何目录中找不到时,允许创建/更新po文件。
0.3.1 (2011-02-08)
将请求传递到上下文,因为可能需要外部应用程序自定义模板。
0.3 (2011-02-07)
重构代码以提高可重用性和可定制性,使其更像jQuery插件。
0.2 (2011-01-28)
创建了itrans模板标签,是inline_trans的别名。
0.1 (2010-12-21)
适应使用基于basic_package skel的egg。
下载
项目详情
django-inlinetrans-0.6.0.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a5a5b641ee6c23af182c41f667a7ba1a81b8586b9cf5c4b6f5b1d6a9eb33fe8f |
|
MD5 | f729527eedc067f6b29c822505f0a3bf |
|
BLAKE2b-256 | 80eda09a73255792740059405a03b065187240bb39f4f3479ac8593aa46260f2 |