React Native и i18n-js: добавление компонента в переведенную строку - PullRequest
0 голосов
/ 09 ноября 2019

Я использую i18n-js, как рекомендовано Expo . Допустим, я хочу экран с <Text>, который выглядит следующим образом:

<Text>Click on <Text style={bold}>this link</Text> now.</Text>

Вот что я хотел бы сделать:

const en = {
  click_link: "Click on {{link}} now.",
  link: "this link"
};

<Text>
  {i18n.t('click_link, {
    link: <Text style={bold}>{i18n.t('link')}</Text>
  })}
</Text>

Но он не работает, он показывает <Text>Click on [object Object] now.</Text>

Итак, единственная идея, которая у меня сейчас есть, это:

const en = {
  click_link_1: "Click on",
  click_link_2: "this link"
  click_link_3: "now."
}

<Text>
  {i18n.t('click_link_1')}
  <Text style={bold}>{i18n.t('click_link_2')}</Text>
  {i18n.t('click_link_3')}
</Text>

Но, похоже, она совсем не изящна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...