Documentos React Native e Expo

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).

App.tsx
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>
Bridge Mode — src/i18n.ts
import { registerI1n } from 'i1n'
import { I18n } from 'i18n-js'

const i18n = new I18n(translations)
registerI1n((key, params) => i18n.t(key, params))

Relacionado