使用Graphql解决本地化问题

时间:2017-08-22 17:16:53

标签: localization graphql

在json文件中,我有一些字段包含带有语言环境和翻译文本的字典列表:

description_localized: [
  {
      locale: "en-UK",
      value: "Read along"
   },
 {
       locale: "de-DE",
       value: "Lesen und"
   },
 {
        locale: "fr-FR",
        value: "Lis avec"
    },
]

还有其他字段,值键中有两个键:

path_localized: [
    {
        locale: "de-DE",
        value: "{"identifier"=>"", "value"=>"http://path_6987.path"}"
    },
    {
        locale: "es-ES",
        value: "{"identifier"=>"", "value"=>"http://path_4685.path"}"
    },

我已经创建了一个抓取这些字段的模式,但是在Graphql上我不需要拉动整个字典,而是需要能够进行查询,我只指定我想要的语言区域(例如fr-FR)这只会获取该语言的翻译值(fr-FR)。我不想获得所有本地化语言的数组,因为这将非常繁琐,并且每个查询加载时间会更长。

有没有人对如何做到这一点有任何想法?也许通过一个解析器,我将语言作为参数传递?但语言定义在哪里?我可能需要清理它,但我们有各种各样的语言环境定义:en_UK,en-UK,UK,en_UK_CO ...另外,如果找不到查询语言,我该如何定义回退?

任何指导都将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

你在做什么筹码,Node.js?如果是这样,您可以在此处找到本地化示例:https://github.com/kriasoft/nodejs-api-starter ..使用" i18next"模块检测用户的语言,回退到默认语言等,然后你可以通过" lng" string作为一个上下文变量,并在你的" resolve()"中使用它。方法。请参阅src/app.jssrc/Context.js