#reactjs #react-redux #internationalization
Вопрос:
Есть ли в структуре приложений что-то, что поддерживает прямую трансляцию данных (ПРИМЕЧАНИЕ: я не хочу, чтобы Intl React, так как он предназначен для локализации данных до их визуализации). Мне нужно локализовать данные, присутствующие в состоянии, и обновить состояние переведенными данными.
Intl React предназначен для использования с компонентами, и мне требуется перевод данных, присутствующих вне компонентов. Я не хочу использовать модуль createIntl, так как для этого требуется ручное предоставление локали и сообщений.
Это код, с которым я имею дело. Он присутствует вне компонента.
export function func () {
client.get (url, {}).then (
response => {
// handle error
}).then(data => {
// This is where i want to translate the data based on the locale i am in
// so that the data this translated data is present in the state
}
// error-handling, more code ...
}
Ответ №1:
Вы можете использовать i18next для перевода данных в обычный js.
Основной Пример:
import i18next from 'i18next';
i18next.init({
lng: 'en', // if you're using a language detector, do not define the lng option
debug: true,
resources: {
en: {
translation: {
"key": "hello world"
}
}
}
});
// initialized and ready to go!
// i18next is already initialized, because the translation resources where passed via init function
document.getElementById('output').innerHTML = i18next.t('key');
Кстати, почему бы не перевести данные на стороне сервера? Вы можете столкнуться с некоторыми подобными случаями export excel
, которые также могут потребовать перевода.