React Native e Expo
Integre o i1n com React Native e Expo usando o SDK do i1n ou o Modo Bridge com i18n-js.
Configuração
Execute o i1n init no seu projeto React Native. A CLI detecta automaticamente o expo-localization, se presente, e configura o formato JSON no diretório locales/.
Você pode usar o SDK do i1n no modo standalone ou conectá-lo ao i18n-js via Bridge Mode.
Modo Independente
Use o SDK i1n diretamente com expo-localization para detecção de local do dispositivo. Inicialize com init(), carregue seus recursos e use t() em seus componentes.
O padrão de provider do React funciona de forma idêntica aos projetos web do React. Use o hook useI1n() para traduções type-safe e troca de locale em tempo de execução.
Modo Bridge com i18n-js
Se o seu projeto usa i18n-js, conecte-o com: registerI1n((key, params) => i18n.t(key, params)). A função t() do i1n delega para o i18n-js enquanto fornece verificação de tipo rigorosa e autocompletar.
O i1n gerencia os arquivos de tradução e a geração de tipos. O i18n-js continua a lidar com a pluralização e interpolação em tempo de execução. Funciona com fluxos de trabalho React Native gerenciados pelo Expo e também com os fluxos de trabalho bare.
Implantação
Execute o i1n pull antes de compilar seu aplicativo. As traduções são empacotadas com o binário do aplicativo.
Para atualizações de tradução over-the-air, combine o i1n pull com sua estratégia de atualização OTA (ex. Expo Updates ou CodePush).
import * as Localization from 'expo-localization'
import { I18n } from 'i18n-js'
const i18n = new I18n(translations)
i18n.locale = Localization.locale
<Text>{i18n.t('welcome')}</Text> import { registerI1n } from 'i1n'
import { I18n } from 'i18n-js'
const i18n = new I18n(translations)
registerI1n((key, params) => i18n.t(key, params))