跳转到主要内容

是一个允许从浏览器渲染的HTML中翻译django模板的django应用程序

项目描述

简介

https://badge.fury.io/py/django-inlinetrans.png https://pypip.in/d/django-inlinetrans/badge.png

Inlinetrans是一个django应用程序,允许从浏览器渲染的HTML中翻译django模板。一旦您使用inlinetrans将模板国际化,您就可以单击相应网页中的未翻译消息来添加它们的翻译。这对翻译人员来说非常有帮助,因为他们将能够在他们希望的环境中直接翻译这些消息。

特性

  • 一个模板标签,inline_trans(或itrans),旨在替代django的trans

  • 一个管理命令,inline_makemessage,旨在替代django的makemessages

  • 一个显示可翻译消息的翻译栏,默认情况下仅对员工成员可见(您可以通过变量USER_CAN_TRANSLATE更改此行为,在设置中添加它)

要在浏览器中渲染的网页中翻译消息,您首先通过翻译栏找出哪些消息已经被翻译(标记为浅绿色)以及哪些消息缺少翻译(标记为浅红色)。

然后,您点击一个标记的消息,并提示其翻译;输入文本并点击“确定”后,新的翻译将发送到服务器并保存在正确的.pot文件中。

一旦您翻译了页面中的所有消息,您可以在翻译栏上点击“应用更改”。这将强制服务器重启,并重新加载应用了翻译的页面。

要求

要使用inlinetrans,您需要

演示(此视频使用非常旧的django-inlinetrans版本)

视频演示,django-inlinetrans,django-inplaceeditdjango-inplaceedit-extra-fields(设置为全屏模式以正确查看)

https://github.com/Yaco-Sistemas/django-inplaceedit/raw/master/video-frame.png

使用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 (19.1 kB 查看哈希)

上传时间

支持