【发布时间】:2021-02-01 04:50:36
【问题描述】:
我想使用react intl 来支持多种语言。我确定我已经设置了文件,但它没有正确加载并且没有显示我在 yaml 中设置的文本。
我收到一条错误消息,指出加载失败。怎么了?
错误:
错误:[@formatjs/intl Error MISSING_TRANSLATION] 缺少消息:区域设置“en-US”的“Top.Title”,使用 id 作为后备。
index.tsx
import { IntlProvider } from 'react-intl'
import { chooseLocale } from './locales'
const lang = navigator.language
ReactDOM.render(
<React.StrictMode>
<IntlProvider locale={lang} messages={chooseLocale(lang)}>
<App />
</IntlProvider>
</React.StrictMode>,
document.getElementById('root'),
)
locales/index.ts
import yaml from 'js-yaml'
const en = yaml.load(`
Top:
Title: Sample Title
Message: Hello! { name }!
`)
const translationMessages = {
en,
}
export const chooseLocale = (locale: string) => {
console.log('Your locale :', locale)
switch (locale) {
case 'en-GB':
return translationMessages.en
default:
return translationMessages.en
}
}
hello.js
import { FormattedMessage } from 'react-intl'
<FormattedMessage id="Top.Title" />
【问题讨论】:
标签: reactjs typescript react-intl