1

我即将开始一个项目,该项目需要翻译模型上的某些属性,但不确定最好的方法是什么。

一种选择是创建一个 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'
     }
  }
}
4

1 回答 1

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 个翻译来处理多条记录,那就不够了。然后您可以根据需要为翻译和参考记录创建单独的集合。

于 2015-01-10T12:58:36.667 回答