node.js - 多语言 NodeJs API

标签 node.js mongodb multilingual

我正在使用 swagger 和 mongoDB 在 Nodejs 中开发 REST API。

我正在寻找一个模块或一个好的实践来帮助我获得多语言支持。 集合中的每个对象都应该有自己的翻译,我不确定执行此操作的最佳方法。

我查看了几个模块,但我发现的所有内容都是静态数据。

翻译由用户决定,可以随时以任何语言发布。我需要确保用户可以用他发布的每种语言检索他的数据。

这是我想做的一个例子,但我不确定这是推荐的做法。

系列:公寓

英文数据:

var apartment = {
        "id": "1x213"
        "name": "Flat 1",
        "price": 100000,
        "rooms": 2,
        "city": "paris",
        "country": "france",
        "zipcode": 75016,
        "address": "11 avenue du general de Gaulles",
        "description": "A wonderful apartment at 2 minutes from the eiffel tower"
        }

法语数据:

var apartment = {
        "id": "1x214"
        "name": "Appartement 1",
        "price": 100000,
        "rooms": 2,
        "city": "paris",
        "country": "france",
        "zipcode": 75016,
        "address": "11 avenue du general de Gaulles",
        "description": "Un magnifique appartement, à 2 minutes de la tour eiffel"
        }

集合:多语言

var multilanguage = {
        "id": "1y679"
        "language": [{'en': '1x213' },
                  { 'fr': '1x214'}]
        }

我读到了一些其他实践 here但我不确定这是否适合大目的。我觉得有点乱。

谢谢

最佳答案

我最终选择了下面的方法。 我认为这是最简单且更具可扩展性的方法。 我从 Ruby on Rails 良好实践中汲取了灵感。

英文数据:

var apartment = {
    "id": "1x213",
    "group_id": "c3por2d2",
    "language": "en",
    "name": "Flat 1",
    "price": 100000,
    "rooms": 2,
    "city": "paris",
    "country": "france",
    "zipcode": 75016,
    "address": "11 avenue du general de Gaulles",
    "description": "A wonderful apartment at 2 minutes from the eiffel tower"
    }

法语数据:

var apartment = {
    "id": "1x214",
    "group_id": "c3por2d2",
    "language": "fr",
    "name": "apartment 1",
    "price": 100000,
    "rooms": 2,
    "city": "paris",
    "country": "france",
    "zipcode": 75016,
    "address": "11 avenue du general de Gaulles",
    "description": "Un magnifique appartement, à 2 minutes de la tour eiffel"
    }

我现在有了一个通用的 group_id,我可以查询它以获取用户发布的每种语言的数据,我还可以查询特定语言的数据。

关于node.js - 多语言 NodeJs API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34853800/

相关文章:

javascript - NodeJS 中处理错误响应并再次尝试相同的调用同时避免回调汤的好模式是什么?

node.js - 无法使用 node.js 和 Mongodb 包查询 MongoDB 数据库

PHP:iterator_to_array() 可以在 MongoCursor 上抛出异常吗

Solr 不自动检测语言

angular - 哪个性能更好? ngx-translate 指令还是管道?

node.js - http 服务器 : how to set the root directory of my server?

node.js - 对 git 存储库中的包运行 'npm install' 时出错

user-interface - 在同一控件中同时显示 RTL 和 LTR 语言

javascript - 了解 .each() 发起的所有异步调用何时完成执行

mongodb - mongodb 中的 $eq 如果是数组