Documentación / React Native and Expo
Localización de React Native y Expo, automatizada
Traduce una aplicación React Native o Expo: el texto, los marcadores de posición y las etiquetas de accesibilidad se convierten en llamadas t() con react-i18next, configuradas sin API exclusivas del navegador.
Cómo funciona
La copia en <Text>, placeholder, accessibilityLabel y accessibilityHint se traduce, para que los lectores de pantalla también hablen el idioma del usuario.
La configuración generada lee el idioma del dispositivo con Intl en lugar de las API del navegador, y funciona con Expo Router (app/_layout) o una entrada App clásica.
Antes y después
La salida real del motor para este archivo. En una ejecución real, el modelo alojado nombra las claves a partir del contexto.
import { Pressable, Text, View } from 'react-native';
export function OrderStatus({ onTrack }) {
return (
<View>
<Text>Your order is on its way</Text>
<Pressable onPress={onTrack} accessibilityLabel="Track your package">
<Text>Track package</Text>
</Pressable>
</View>
);
}import { Pressable, Text, View } from 'react-native';
import { useTranslation } from 'react-i18next';
export function OrderStatus({ onTrack }) {
const { t } = useTranslation();
return (
<View>
<Text>{t('order_status.your_order_is_on_its')}</Text>
<Pressable onPress={onTrack} accessibilityLabel="Track your package">
<Text>{t('order_status.track_package')}</Text>
</Pressable>
</View>
);
}{
"order_status": {
"your_order_is_on_its": "Your order is on its way",
"track_package": "Track package"
}
}Lo que añade la configuración
La primera ejecución configura react-i18next si el proyecto aún no lo tiene:
i18nextyreact-i18nextsrc/i18n.ts, importado desdeapp/_layout,Appoindex
Ejecutarlo
La CLI necesita Node.js 22 o posterior.
npm install --save-dev localize-dev
npx localize-dev login
# Preview, then write the changes
npx localize-dev run --dry-run -l es,fr,de
npx localize-dev run -l es,fr,de
# Or open a pull request instead
npx localize-dev pr -l es,fr,deO añade la GitHub Action y obtén una pull request en cada push. Pruébalo primero en tu propio código en el playground.