【问题标题】:Using gatsby-source-graphcms with gatsby-plugin-react-i18next: GraphCMS_Locale variable type issue将 gatsby-source-graphcms 与 gatsby-plugin-react-i18next 一起使用:GraphCMS_Locale 变量类型问题
【发布时间】:2021-10-12 12:07:31
【问题描述】:

我在 gatsby-source-graphcms 和 gatsby-plugin-react-i18next 之间遇到了挑战/可能不兼容,网上似乎几乎没有任何信息,我想知道是否还有其他人遇到过这个问题请。

我正在为使用 gatsby-source-graphcms 和 Gatsby 文件系统路由 API 动态构建页面的站点添加本地化。一切都很顺利,直到我尝试使用 gatsby-plugin-react-i18next 提供的 $language GraphQL 查询变量和 GraphCMS 中的 locale 过滤器字段,这产生了以下错误消息:

Variable "$language" of type "String!" used in position expecting type "GraphCMS_Locale"

我能找到的唯一一个类似问题的参考资料是在 GraphCMS 的公开 Slack 上,有人提到放弃 gatsby-source-graphcms,因此我赞成 gatsby-source-graphql。但是我很犹豫要不要这样做,因为这基本上意味着为我重写整个网站! ????

我一直在尝试找到某种方法来为页面查询提供第二个变量,该变量与 gatsby-plugin-react-i18next 中的值 $language 变量重复,但被声明为 GraphCMS 的正确数据类型,或者可能以某种方式将字符串转换为GraphCMS_locale,但到目前为止还没有运气。

有没有人找到一种方法让 gatsby-source-graphcms 与 gatsby-plugin-react-i18next 很好地配合?

可在此处查看 WIP 代码:https://github.com/binghamchris/paddelbuch/blob/feature-i18n/src/pages/index.js

如果代码在某处有点糟糕,我们深表歉意。我不是网络开发人员(这是我自愿参与的社区项目,没有专业的网络开发人员),我真的只是在复制和粘贴代码????

提前感谢任何人都可以提供的任何帮助

【问题讨论】:

    标签: reactjs gatsby i18next react-i18next


    【解决方案1】:

    我发现了一个超级 hacky 的解决方法,灵感来自 @notrab 的好心帮助,以防它帮助其他人: 我在 gatsby-node.js 中添加了以下内容:

    exports.createSchemaCustomization = ({
      actions: { createTypes, printTypeDefinitions }
    }) => {
      createTypes(`
      type Locale implements Node {
        language: GraphCMS_Locale
      }
      `);
    };
    

    这会将 i18next 翻译数据中 language 字段上的 GraphQL 数据类型更改为 GraphCMS_Locale,这意味着 gatsby-plugin-react-i18nextgatsby-source-graphcms 所需的两种数据类型都匹配......到目前为止似乎在开发模式下工作!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 2019-04-02
      • 2020-12-18
      • 2019-10-19
      • 2022-10-04
      • 2020-05-18
      相关资源
      最近更新 更多