我正在尝试使用GatsbyJS静态站点生成器来重写我的站点。用户可以通过UI更改语言。有几个文件夹包含本地化的文本数据:
- src - data - en - text1.json - text2.json ... - de - text1.json - text2.json ... - es - text1.json - text2.json ...
如何根据当前语言获取数据?GraphQL查询应该是什么样子的?
发布于 2018-03-15 17:15:02
您可以使用社区gatsby-plugin-i18n。
您可以找到一个使用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
}
}
}
}
查看showcase源代码也会对您有所帮助。
https://stackoverflow.com/questions/49294243
复制相似问题