提供单独转换实体字段的方法。

cubicweb-i18nfield的Python项目详细描述


摘要

此多维数据集提供了一种管理和显示实体字段(属性)的方法。 翻译,存储在应用程序数据库中。

要为您的特定实体类型实现这一点,您必须:

  • 添加“i18nfield”关系定义,从“i18nfield”链接 实体类型到可翻译实体类型
  • 添加“ref_lang”关系定义,从实体类型链接 “I18nLang”实体类型
  • < >使您的业务实体类型继承“代理”和 在其“i18nfields”属性中列出其可翻译字段
  • 创建一个简单的适配器,该适配器继承“_translatableentityadapter”,并且 可用于可翻译实体类型

代码部分就到此为止。只需在您的 数据库并将可翻译实体链接到其引用语言。

默认的web用户界面将显示一个新的“翻译”操作菜单 可以修改可翻译实体并显示可翻译实体的用户 默认情况下,web请求语言中的实体

示例

如果要转换卡实体类型的所有字段(从“卡”中 在schema.py文件中需要:

from yams.buildobjs import RelationDefinition


class i18nfield_of(RelationDefinition):
    subject = 'I18nField'
    object = 'Card'
    cardinality = '1*'
    composite = 'object'


class ref_lang(RelationDefinition):
    subject = 'Card'
    object = 'I18nLang'
    cardinality = '1*'
    inlined = True

在entities.py文件中:

from cubicweb.selectors import is_instance

from cubes.card.entities import Card as OrigCard
from cubes.i18nfield.entities import (TranslatableEntityMixin,
                                      _TranslatableEntityAdapter)


class Card(TranslatableEntityMixin, OrigCard):
    i18nfields = (u'title', u'synopsis', u'content')

    def dc_title(self):
        return self.printable_value('title', format='text/plain')


class MyTranslatableEntityAdapter(_TranslatableEntityAdapter):
    __select__ = _TranslatableEntityAdapter.__select__ & is_instance('Card')

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

推荐PyPI第三方库


热门话题
字节Java是否在InputStream中保存读取位置?   使用jxlapi的java保存excel格式   java使用JSON和AJAX发送和检索数据   在swagger注释中具有参数化类的java   java AWS签名的URL在除Android之外的任何地方都可以使用   java类不是抽象的,并且不会覆盖KeyListener中的抽象方法keyReleased(KeyEvent)   java在导入数据期间解析日期格式的最佳方法   Java中为集合分配不可变实例的最佳方法   java JavaFX移动投射物   java应用程序在新设备(棒棒糖)上显示错误,但在我的旧设备(kitkat)上运行良好   java如何在同一个itemListener函数中处理2个不同的组合框itemListener?   java kotlin是否有返回迭代器的映射函数?   检测javassistjava。lang.NoClassDefFoundError   MongoDB的java Immutables自动生成存储库抛出“找不到接口的编解码器”CodeConfigurationException   spring boot如何在Groovy类中模拟Java可选类,该类扩展了Spock规范