На моей веб-странице настроено react-intl
, и я подтвердил, что моя intl
опора содержит следующее:
{
locale: 'it',
messages: {
it: {
app.homepage.title: 'Casa'
}
}
}
Да. Я получаю сообщение об ошибке:
[React Intl] Missing message: "app.homepage.title" for locale: "it", using default message as fallback.
Я не уверен, что делаю не так.Я использую intl
следующим образом:
const title = intl.formatMessage({
id: "app.homepage.title",
defaultMessage: "Home"
});
Импорт сообщений
Я загружаю сообщения из локально json
файла, например, так:
import Italian from "app/translations/it.json";
import locale_en from "react-intl/locale-data/en";
import locale_it from "react-intl/locale-data/it";
addLocaleData([...locale_en, ...locale_it]);
const loadTranslation = () => {
const urlParams = new URLSearchParams(window.location.search);
const locale = urlParams.has("locale")
? urlParams.get("locale")
: navigator.language;
const messages = {
it: Italian,
en: null
};
return { locale, messages };
};
const { locale, messages } = loadTranslation();
...
<IntlProvider locale={locale} messages={messages}>
<Provider store={store}>
<App />
</Provider>
</IntlProvider>
Мой файл перевода содержит следующее:
{
"app.signup": "Iscriviti",
"app.login": "Accesso",
"app.homepage.title": "Casa"
}