我即将启动一个项目,该项目需要翻译模型的某些属性,而不确定最佳方法是什么。
一种选择是创建JSON类型属性并将翻译存储为
{
title: [{ "en": "cheese" }, {"de": "Käse"}, {"es": "queso"}, etc... ]
}
但我也想知道将这些值存储在单独的集合中并创建关联会更好,然后在获取父模型时,我可以使用适当的语言填充。像
这样的东西产品型号
module.exports = {
attributes: {
sku: 'string',
values:{
collection: 'productValues',
via: 'product'
}
}
}
产品价值模型
module.exports = {
attributes: {
title: 'string',
body: 'string',
language: 'string',
product:{
model: 'product'
}
}
}
答案 0 :(得分:1)
我只想为模型添加一个JSON来翻译。
module.exports = {
attributes: {
defaultValue: 'string',
translations: 'json'
}
}
然后您可以简单地使用翻译对象。删除翻译,添加新翻译等。
Model.findById(id).then(function(record){
var translations = record.translations;
translations.en = 'Hello';
delete translations.fr;
Model.update({id: id},{translations: translations}, function(){});
});
(只是一个示例代码,没有测试它) 但是,如果您希望1个翻译与多个记录一起使用,那么它就足够了。然后,您可以根据需要为翻译和参考记录创建单独的集合。