Reactjs 盖茨比语言本地化(使用一个按钮更改语言)

Reactjs 盖茨比语言本地化(使用一个按钮更改语言),reactjs,localization,gatsby,Reactjs,Localization,Gatsby,我有这段代码,它可以使用两个单独的按钮和锚标记在英语和德语之间切换语言。 问题是我只能用一个按钮来启动这个开关,但我就是不能把我的头绕在它周围 以下是language.js组件: import { IntlContextConsumer, changeLocale } from "gatsby-plugin-intl" const languageName = { en: "English", de: "Deutsch", } const Language = () => {

我有这段代码,它可以使用两个单独的按钮和锚标记在英语和德语之间切换语言。 问题是我只能用一个按钮来启动这个开关,但我就是不能把我的头绕在它周围

以下是language.js组件:

import { IntlContextConsumer, changeLocale } from "gatsby-plugin-intl"

const languageName = {
  en: "English",
  de: "Deutsch",
}

const Language = () => {
  return (
    <div>
      <IntlContextConsumer>
        {({ languages, language: currentLocale }) =>
          languages.map(language => (
            <a
              key={language}
              onClick={() => changeLocale(language)}
              style={{
                color: currentLocale === language ? `yellow` : `white`,
                margin: 10,
                textDecoration: `underline`,
                cursor: `pointer`,
              }}
            >
              {languageName[language]}
            </a>
          ))
        }
      </IntlContextConsumer>
    </div>
  )
}

export default Language
如果您需要任何其他组件,请让我知道

提前感谢您的回复:

附言。
本地化是在没有i18实现的情况下完成的。

下面的简单示例在只使用两种语言(如代码段中的语言)时应该会产生预期的结果。如果将语言添加到配置中,则它将始终显示除当前语言环境之外的所有语言

import React from "react"
import { IntlContextConsumer, changeLocale } from "gatsby-plugin-intl"

const languageName = {
  en: "EN",
  de: "DE",
}

const LanguageToggle = () => {
  return (
    <div>
      <IntlContextConsumer>
        {({ languages, language: currentLocale }) =>
          languages.map(language => {
            if (language != currentLocale) {
              return (
                <a key={language} onClick={() => changeLocale(language)}>
                  {languageName[language]}
                </a>
              )
            }
          })
        }
      </IntlContextConsumer>
    </div>
  )
}

export default LanguageToggle


你想创建一个语言选择器吗?一个简单可行的例子会很有帮助,同时也能说明你想要达到的目标。不,不是语言选择者。主要思想是:1默认语言为英语2有一个按钮,上面有DE文本3单击时,网站应翻译为德语,按钮的文本应更改为英语。下面的演示使用三个按钮锚定标记进行操作:来源:问题是我只需要一个按钮来处理英语-德语的翻译,而不需要韩语。在这种情况下,是什么阻止您使用文本依赖于其他可用区域设置的单个按钮?