Javascript 使用阵列对Intl:I18n进行反应

Javascript 使用阵列对Intl:I18n进行反应,javascript,reactjs,react-intl,Javascript,Reactjs,React Intl,我目前正在一个网站上工作,该网站从两个json文件(de.json和en.json)中读取数据。 现在还有一个页面,根据选择的语言,我需要从英语数组或德语数组中读取数据(每个数组当前是一个简单的js文件,其中只有数组,它只是导入到我需要读取其数据的文件中)。它现在的工作方式是我检查区域设置是否为英语,然后使用该数组,但是该解决方案并不干净 const ResourcesMedia = [ { title: 'sometitle', description:

我目前正在一个网站上工作,该网站从两个json文件(de.json和en.json)中读取数据。 现在还有一个页面,根据选择的语言,我需要从英语数组或德语数组中读取数据(每个数组当前是一个简单的js文件,其中只有数组,它只是导入到我需要读取其数据的文件中)。它现在的工作方式是我检查区域设置是否为英语,然后使用该数组,但是该解决方案并不干净

const ResourcesMedia = [
    {
        title: 'sometitle',
        description: 'somedescription',
        href: 'somelink'
    },
    {
        title: 'sometitle',
        description: 'somedescription',
        href: 'somelink'
    }
  ]

export default ResourcesMedia;
还有另一个类似的阵列,只适用于德语版本。现在,根据选择的语言,我将通过数组映射并创建组件。但是,目前我正在检查区域设置是什么样的:

const mediaArray = locale === 'en' ? ResourcesMediaEn : ResourcesMedia

这不是最好的方法,相反,我希望将数组同时存储在en.json和de.json文件(或两个新文件)中,并让IntlProvider决定应该使用哪个。使用React Intl是否有一种很好的方法,或者我是否需要实现它?

您可以创建一个数组,其中数组中的值是键而不是实际的字符串,在渲染它们时,您可以实际转换这些值

const ResourcesMedia = [
    {
        title: 'sometitleKey',
        description: 'somedescriptionKey',
        href: 'somelink'
    },
    {
        title: 'sometitleKey1',
        description: 'somedescriptionKey',
        href: 'somelink'
    }
  ]


render() {
   const {intl: {formatMessage: t}} = this.props;
   return ResourcesMedia.map(item => (
       <div>
          <div>{t(item.title)</div>
          <div>{t(item.description)</div>
       <div>

   ))
}
const ResourcesMedia=[
{
标题:“sometitleKey”,
描述:“somedescriptionKey”,
href:'somelink'
},
{
标题:“sometitleKey1”,
描述:“somedescriptionKey”,
href:'somelink'
}
]
render(){
const{intl:{formatMessage:t}}=this.props;
返回ResourcesMedia.map(项目=>(
{t(项目名称)
{t(项目说明)
))
}

非常感谢您的回答,但您在渲染时进行翻译到底是什么意思?我应该将两种语言存储在一个文件中吗?我的意思是,在您的数据文件中,只存储字符串的键,并将这些键添加到传递给Intlprovider的任何顶级文件中。非常感谢