OARepo的多语言支持
oarepo-multilingual的Python项目详细描述
OARepo多语言数据模型
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日发布)
- 首次公开发行。在
- 项目
标签: