OARepo的多语言支持

oarepo-multilingual的Python项目详细描述


OARepo多语言数据模型

imageimageimageimage

OARepo的多语言字符串数据模型。在

安装

    pip install oarepo-multilingual

使用

该库为json模式提供了多语言类型,包括棉花糖验证、反序列化和弹性搜索映射。 Multilingual是一种允许您以"en":"something, "en-us":"something else"格式在json模式中添加多语言字符串的类型。在

JSON架构

将这个包添加到依赖项中,并通过json模式中的$ref作为"[server]/schemas/multilingual-v2.0.0.json#/definitions/multilingual"使用。在

用法示例

^{pr2}$
{"type":"object","properties":{"title":{"en":"something","en-us":"something else"}}}

棉花糖

用于数据验证和反序列化。在

如果在应用程序上下文中执行棉花糖验证,则根据受支持的_languages config验证语言。 如果验证是在应用程序上下文之外执行的,则不会根据语言列表检查密钥 但是要执行通用验证-密钥必须是ISO 639-1或RFC 5646中的语言区域格式。在

用法示例

classMD(marshmallow.Schema):title=MultilingualStringSchemaV2()data={'title':{"en":"something","en-us":"something else",}}MD().load(data)

支持的语言验证

您可以在SUPPORTED_LANGUAGES中指定应用程序配置中支持的语言。那就只有这些了 语言允许作为多语言字符串。 必须以"en""en-us"格式指定语言。在

用法示例

app.config.update(SUPPORTED_LANGUAGES=["cs","en"])

弹性搜索映射

将多语言字符串的类型定义为multilingual 添加到ELASTICSEARCH_DEFAULT_LANGUAGE_TEMPLATE的配置定义中,该定义将用作受支持语言的默认映射模板。在

默认模板示例

ELASTICSEARCH_DEFAULT_LANGUAGE_TEMPLATE={"type":"text","fields":{"keywords":{"type":"keyword"}}}

您还可以使用ELASTICSEARCH_LANGUAGE_TEMPLATES为特定语言指定不同的模板。使用#id添加更多内容 一种特定语言的模板

语言模板示例

ELASTICSEARCH_LANGUAGE_TEMPLATES={"cs":{"type":"text","fields":{"keywords":{"type":"keyword"}}},"cs#plain":{"type":"text",},"en":{"type":"text","fields":{"keywords":{"type":"keyword"}}}}

用法示例

{"mappings":{"properties":{"title":{"type":"multilingual"}}}}

上下文

{"mappings":{"properties":{"title":{"type":"multilingual#plain"}}}}

分析仪配置

可以使用ELASTICSEARCH_LANGUAGE_ANALYSIS指定应用程序配置中的分析。使用#id添加更多内容 对一种特定语言的分析。在

语言分析示例

ELASTICSEARCH_LANGUAGE_ANALYSIS={"cs#title":{"czech#title":{"type":"custom","char_filter":["html_strip"],"tokenizer":"standard"}},"cs":{"czech":{"type":"custom","char_filter":["html_strip"],"tokenizer":"standard","filter":["lowercase","stop","snowball"]}}}

用法示例

{"settings":{"analysis":{"analyzer":{"oarepo:extends":"multilingual_analysis"}}},"mappings":{...}}
{"settings":{"analysis":{"analyzer":{"oarepo:extends":"multilingual_analysis#title"}}},"mappings":{...}}

变更

版本2.0.0(于2020年8月21日发布)

  • 首次公开发行。在

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

推荐PyPI第三方库


热门话题
javascript如何找到socket。同一局域网上的IO服务器?   将Java代码格式化为Word/RTF格式   java学习对象以及如何将分配的变量封装到私有变量   java Websocket客户端不在Tomcat中工作   java如何在点击按钮时打开本机表情键盘?   java使用哪个Maven GlassFish插件?   Eclipse Java构建路径不允许添加外部JAR   继承Java6集合。勾选适当的用法   JavaApacheDateUtils:使用多个模式解析日期   java hibernate如何生成查询?   具有id或链接的java Dropbox下载文件或文件夹   java模态对话框未在PrimeFaces 5上显示   java将类对象转换为人类可读的字符串   更新数据库中字段的java通用方法   java无法通过Apache Tomcat访问网络文件夹