React Native ed Expo
Integra i1n con React Native ed Expo utilizzando l'SDK i1n o la modalità Bridge con i18n-js.
Configurazione
Esegui i1n init nel tuo progetto React Native. La CLI rileva automaticamente expo-localization, se presente, e configura il formato JSON nella directory locales/.
Puoi usare l'SDK di i1n in modalità standalone o collegarlo a i18n-js tramite Bridge Mode.
Modalità Autonoma
Utilizza l'SDK di i1n direttamente con expo-localization per il rilevamento della localizzazione del dispositivo. Inizializza con init(), carica le tue risorse e usa t() nei tuoi componenti.
Il pattern del provider React funziona in modo identico ai progetti web React. Usa l'hook useI1n() per traduzioni type-safe e per cambiare locale a runtime.
Modalità Bridge con i18n-js
Se il tuo progetto utilizza i18n-js, collegalo con: registerI1n((key, params) => i18n.t(key, params)). La funzione t() di i1n delega a i18n-js fornendo al contempo un controllo rigoroso dei tipi e l'autocompletamento.
i1n gestisce i file di traduzione e la generazione dei tipi. i18n-js continua a gestire la pluralizzazione e l'interpolazione in fase di runtime. Funziona sia con i flussi di lavoro React Native gestiti da Expo che con quelli bare.
Distribuzione
Esegui i1n pull prima di compilare la tua app. Le traduzioni sono incluse nel binario dell'applicazione.
Per aggiornamenti di traduzione over-the-air, combina i1n pull con la tua strategia di aggiornamento OTA (es. Expo Updates o 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))