是一个允许从浏览器渲染的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 |