sails js建议中的多语言模型属性

时间:2015-01-09 09:37:03

标签: internationalization sails.js sails-mongo

我即将启动一个项目,该项目需要翻译模型的某些属性,而不确定最佳方法是什么。

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

1 个答案:

答案 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个翻译与多个记录一起使用,那么它就足够了。然后,您可以根据需要为翻译和参考记录创建单独的集合。