每个语言翻译使用一个单独的模型实例并同步非语言特定字段的可翻译模型。

django-t10e的Python项目详细描述


django-t10e

pypi-badgebuild-status

django-t10e是一种允许您翻译 你的模特。django-t10e代表django translatable

django-t10e背后的概念是,每个 语言。这意味着一个对象被翻译成两种不同的语言 将由模型数据库表中的两行表示。每一个可翻译的 模型有一个language字段和一个translation_set字段。

language显然定义了每个翻译的语言和 translation_set将一个实体的翻译组合在一起。全部 具有相同translation_set的实例被认为是不同的 同一实体的翻译。一个实体可能是一篇新闻文章 翻译成多种语言。

translation_set字段是一个models.ForeignKey('self')字段,因此 始终指向同一模型的实例。第一个保存的实例 翻译将把这个外键设置为它自己的主键。实例到 一个实体的所有翻译都指向(第一个翻译)的 基本翻译。

一个例子。假设以下页面实例:

  • Article(id=13, title='I18N is hard', language='en', translation_set=13)
  • Article(id=14, title='Internationalisierung ist schwer', language='de', translation_set=13)
  • Article(id=15, title='La internacionalización es dura', language='es', translation_set=13)

带有id=13的项目被视为基本翻译。id=14id=13的德语翻译。id=15id=13。这三个组成了“i18n很难”的一个翻译集 文章。

可能还有一些字段不需要翻译,如日期字段等。 它们在翻译集中同步。例如:项目模型可能 有一个pub_date字段。所以一个翻译集中的所有翻译都有 相同的pub_date赋值。当一个翻译被更改时,你需要 调用update_translations()方法。将更新所有其他实例 在相应的翻译集中。

发展

使用以下命令安装依赖项(包括测试依赖项):

pip install -r requirements.txt

然后您可以使用以下命令运行所有测试:

tox

更改日志

0.1.0

  • 初始释放。

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

推荐PyPI第三方库


热门话题
java在Android中维护应用程序状态   javajavacc:如何指定在特定上下文中需要哪些令牌?   java为什么改型会在重新加载数据时设置以前的响应?   java如何将键转换为字符串,反之亦然   java JDOM解析器插入#固定手动属性   java按元素对XML数据排序?   java Android中有哪些哈希算法?   java为什么使用可选返回类型进行单元测试失败?   Gson和argonauts使用Gson将javascript数组转换为json字符串并转换为javapojo时遇到的问题。试图让我的结构正确   java中的空格   java SQLite高分,草率IndexOutofBounds Android   使用Spring OAUTH2的java Make客户端   netbeans如何在java中创建一个JPopupMenu,其中包含一个要复制文本的项