我正在寻找MongoEngine的多语言StringField的任何开源实现。
我可以自己做,但如果有,我认为最好使用它并为此做出贡献。
我想要的是能够了解多种语言中相同属性的各种值的字段,例如
class MyDoc(Document):
name = MultilingualString()
my_doc = MyDoc.objects.first()
# storing value
my_doc.name.en = 'My Document'
# outputs stored value 'Mein Dokument'
print(my_doc.name.de)
我认为在内部使用DictField实现这样的字段非常容易。
P.S。:是的,它与MongoKit的方式非常相似。
答案 0 :(得分:1)
目前还没有我知道的实现,但是,在快速浏览一下MongoKit之后 - 数据存储为字典,设置当前语言就是语法糖。
处接受拉取请求答案 1 :(得分:1)
现在就是这样。
"mongoengine-multilingual-field" project
用法:
from mongoengine import Document
from multilingual_field.fields import MultilingualStringField
class MyDoc(Document):
name = MultilingualStringField()
doc = MyDoc(name={'en': 'Hermitage', 'ru': u'Эрмитаж'})
doc.translate('en')
doc.name # 'Hermitage'
doc.translate('ru')
doc.name # u'Эрмитаж'
doc.translate('en')
doc.name = 'The Hermitage'
doc.name.translations # {'en_US.ISO8859-1': 'The Hermitage', 'ru_RU.UTF-8': u'Эрмитаж'}
以下是MongoDB中的内容:
{
"_cls" : "MyDoc",
"_id" : ObjectId("5053ad4e3116b063001f6980"),
"_types" : [
"MyDoc"
],
"name" : [
{
"lang" : "ru_RU.UTF-8",
"value" : "Эрмитаж"
},
{
"lang" : "en_US.ISO8859-1",
"value" : "The Hermitage"
}
]
}
它允许通过(value, lang)
定义有效索引以进行快速值搜索,并使用规范化区域设置名称作为lang代码。