javascript - 来自多语言 API 的 JSON 响应的最佳实践是什么

标签 javascript json api translation

我想将语言添加到当前的英语 API 响应中。当前的 API 响应如下所示:

{
   status : "success",
   data : {
    query: "contains search query",
    queryType: "search"

    results: [
        {
            title: "Marvel Captain America T-shirt",
            price: 624,
            category: "t-shirt",
            gender: "men",                  
        },
        .....
    ],
    language: "english",
    currency: "rupee",    
   }
}

我可以通过两种方式开发 API,一种是使用不同的内核进行 API 响应,并根据应用程序中的语言偏好进行调用,但我的应用程序还需要保留某些英文元素。另一种方法是将所有语言放入具有特定结构的响应中以区分每一种语言。无论哪种情况,我都希望保留英文元素。

如果 gender: 'men',但语言是法语,那么我想要一个额外的字段,例如 gender_display: 'hommes' 或 gender_fr: 'hommes'

补充:搜索结果来自Solr

最佳答案

谈到:[国际化 | 全局化 | 本地化 ] 最流行的标准之一是 i18n .从编码的 Angular 来看,就是创建一个“资源字典”。

不同的图书馆已经实现了这个标准,他们的原则涵盖了从翻译到转换,当涉及到货币、日期和数字时。

例如i18n-js建议这种结构:

I18n.translations = {
            en: {
                hello: "Hello World!"               
            },
            "pt-BR": {
                hello: "Olá Mundo!"
            },
            "de": {
                hello: "Hallo Welt!"
            },
            "nb": {
                hello: "Hei Verden!"
            }
        };

   I18n.t("hello", {locale: "en"});    //returns  "Hello World!"
   I18n.t("hello", {locale: "pt-BR"}); //returns "Olá Mundo!"

有一个JQuery plug-in这也可能有帮助:

$.i18n.load({ a_key: 'translated string %2$s - %1$s' });
$.i18n._('a_key', ['order', 'in'])); //returns 'translated string in - order'

结论

要定义 JSON 的结构,建议首先选择更适合您需求的框架,并遵循社区的最佳实践。这将使决策过程在社区经验中得到更多指导和支持。

关于javascript - 来自多语言 API 的 JSON 响应的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755753/

相关文章:

javascript - 从 ruby​​ 应用程序的数据库中获取数据

ios - SBJson 与 Facebook sdk iOS 冲突

javascript - 如何在下拉列表中设置默认值 javascript

api - 带有 OLTP 和 OLAP 数据库的 CQRS 有意义吗?

iphone - 识别 iPhone 上的移动网络状态

javascript - 单击按钮时 Angular 2/Typescript 删除对象

javascript - 如何获取距离根元素5层远的所有DOM元素

javascript - 部署网络应用程序

javascript - 选择自动完成选项后如何更新另一个输入字段?

c# - 将 XML 转换为列表