Reactjs. Получить данные с сервера и подключить их к i18n - PullRequest
2 голосов
/ 29 января 2020

Я не могу понять, как интегрировать динамическое c содержимое в массиве в i18n.

Допустим, сервер возвращает некоторые данные, массив объектов todo:

const todos = [
  {
    id: 1,
    isChecked: true,
    i18n: [
      { id: 1, languageId: 1, title: "Take a nap" },
      { id: 2, languageId: 2, title: "Zdrzemnąć się" }
    ]
  },
  {
    id: 2,
    isChecked: false,
    i18n: [
      { id: 3, languageId: 1, title: "Make dinner" },
      { id: 4, languageId: 2, title: "Zrobić obiad" }
    ]
  }
]

Каждое todo объект уже имеет все данные перевода, поэтому он не в JSON файле.

Теперь в моей функции render() я рендерирую свои задачи и хочу показать title каждого todo с помощью i18next framework.

Возможно ли достичь этого с помощью силы i18n? (реакция-i18следующая) Может быть, есть несколько примеров в официальной документации? Я не уверен, что смогу понять это самостоятельно.

1 Ответ

0 голосов
/ 31 января 2020

В моей ситуации и благодаря @technophyle я буду использовать свою собственную утилиту.

Вот пример быстрого кода:

const template = { title: '' };

get text() {
    const text = todos.find(t =>
        t.languageId === App.Lang.id;

    if (!text)
        return template;
    return { ...template, ...text };
 }

Предлагаемое использование i18next.addResourceBundle кажется немного для меня это ошеломило, так как требовалось много разборов с массивами.

Но в целом, я думаю, что это не тот способ, который следует делать, если проект уже использует i18n для управления данными *. 1013 * транзакций. У i18n есть несколько интересных функций, таких как обнаружение языка по умолчанию, в моем случае я не смог бы его использовать, и мне нужно было бы поддерживать две разные системы перевода в моем проекте: i18n и мой собственный утилита для обработка Dynami c перевод.

...