No project description provided
Project description
OARepo Model Builder Multilingual
plugin for the oarepo-model-builder module that adds support for multilingual data types
Usage
Within this plugin, two data types are added: multilingual and i18nstr. They can be added to the data model
using type: multilingual
or type: i18nstr
.
Values containing language tags must be in IETF format.
The structure of both data types can be changed using the multilingual
field
i18nStr
An object that contains the language of the item and the actual value of the item.
Example
Model
"abstract": {"type": "i18nStr"}
Generated JsonSchema
"abstract": {
"type": "object",
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
Multilingual
Array of i18nStr objects.
Example
Model
"abstract": {"type": "multilingual"}
Generated Schema
"abstract": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
}
}
}
Usage of i18nStr within another object
i18nstr can be added to another object using "use": "i18n"
.
Example
Supported languages:
Supported languages are defined in the object in the structure: "supported language tag": {object containing additional information}
within the field supported-langs
in model settings.
Supported languages definition is used to specify the languages to be indexed in elasticsearch and opensearch,
respectively. All supplied data for the supported language will be inserted into the mapping definition.
Example
Model
"model": {"properties": {"a": {"type": "multilingual"}}
"settings": {"supported-langs": {
"cs": {
"text": {
"analyzer": "czech",
},
"sort": {
"type": "icu_collation_keyword"
},
"keyword": {
"test": "test"
}
},
"en": {
"text": {
"analyzer": "en"
},
"sort": {
"type": "icu_collation_keyword"
}
}}}}
Generated Schema
"mappings": {
"properties": {
"a": {
"type": "object",
"properties": {
"lang": {
"type": "keyword"
},
"value": {
"type": "text"
}
}
},
"a_cs": {
"type": "text",
"analyzer": "czech",
"sort": {
"type": "icu_collation_keyword",
"index": false,
"language": "cs"
},
"fields": {
"keyword": {
"test": "test",
"type": "keyword"
}
}
},
"a_en": {
"type": "text",
"analyzer": "en",
"sort": {
"type": "icu_collation_keyword",
"index": false,
"language": "en"
},
"fields": {
"keyword": {
"type": "keyword"
}
}
}
}
The change of the name of a language or value field
The name of the field for the language value and the name of the field for the value of the item itself can be changed
using the multilingual
field and the value-field
and lang-field
fields. It is not required to rename both fields.
Example:
Model
"b":{"type": "i18nStr", "multilingual":{"lang-field": "language", "value-field": "val"}}
Generated Schema
class BSchema(ma.Schema, ):
"""BSchema schema."""
language = ma_fields.String()
val = ma_fields.String()
class TestSchema(ma.Schema, ):
"""TestSchema schema."""
b = ma_fields.Nested(lambda: BSchema())
Indexing another data type using supported languages
If supported languages are defined, indexing for these languages can be added to data types other than multilingual and
i18nStr. For this purpose you need to add to the field: 'multilingual': {'i18n': True}
Example:
Model:
"model": {"properties": {"a": {"type": "fulltext", "multilingual": {"i18n": true}}}
"settings": {"supported-langs": {"cs": {}, "en": {}}}}
Schema:
{"mappings":
{"properties":{
"a":{"type":"text"},
"a_cs":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":50}}},
"a_en":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":50}}}}}}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for oarepo-model-builder-multilingual-3.0.10.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5e53077fae456b8ec2f73d9724d48c0382bbeccf905bb1e1b75b47df0f0430f3 |
|
MD5 | cdf9aad86b782963326ee103ac0720ce |
|
BLAKE2b-256 | 379ae51a1ade0f048b8fd67d9caf6998e0bd54bd86ef77b3abe9225593f945a2 |
Hashes for oarepo_model_builder_multilingual-3.0.10-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | abcb1c8dc8aeca6e5cf2ff63f1d5c4b6c2abc3b1f4ac4b8e7af00760ab1a423b |
|
MD5 | d9e2af78b76dac6eecb1004c062117fa |
|
BLAKE2b-256 | 3e5aa84af6fd80f92a308db9971a5ef909486c957cd8dcfc12a721a80d968a05 |