使用GraphQL支持多语言

使用GraphQL支持多语言,graphql,gatsby,Graphql,Gatsby,我正在尝试使用GatsbyJS静态站点生成器重写我的站点。 用户可以通过UI更改语言。 具有本地化文本数据的文件夹很少: -src -资料 -嗯 -text1.json -text2.json ... -德 -text1.json -text2.json ... -es -text1.json -text2.json … 如何根据当前语言获取数据? GraphQL查询应该是什么样子 您可以使用社区 您可以使用markdownRemark配置找到一个示例: // Add to gatsby-con

我正在尝试使用GatsbyJS静态站点生成器重写我的站点。 用户可以通过UI更改语言。 具有本地化文本数据的文件夹很少:

-src
-资料
-嗯
-text1.json
-text2.json
...
-德
-text1.json
-text2.json
...
-es
-text1.json
-text2.json
…

如何根据当前语言获取数据? GraphQL查询应该是什么样子

您可以使用社区

您可以使用markdownRemark配置找到一个示例:

// Add to gatsby-config.js
plugins: [
  {
      resolve: 'gatsby-plugin-i18n',
      options: {        
        langKeyDefault: 'en',
        useLangKeyLayout: false,
        markdownRemark: {
          postPage: 'src/templates/blog-post.js',
          query: `
          {
            allMarkdownRemark {
                edges {
                  node {
                    fields {
                      slug,
                      langKey,
                    }
                  }
                }
             }
          }
          `
        }
      }
    }
]
您可能需要根据
langKey
值过滤graphql查询:

allMarkdownRemark(filter: { fields: { langKey: { eq: "en" } } }) {
  edges {
    node {
      fields {
        slug,
        langKey,
        #your data
      }
    }
  }
}
查看来源也可以帮助您