Documentation Index Fetch the complete documentation index at: https://wiki.vivla.com/llms.txt
Use this file to discover all available pages before exploring further.
Internacionalización (i18n)
La aplicación soporta múltiples idiomas mediante i18next y react-i18next .
Stack
Librería Versión Propósito i18next24.2.3 Core de internacionalización react-i18next15.4.1 Bindings para React / React Native
Idiomas soportados
Idioma Código Estado Español esCompleto Inglés enCompleto (fallback)
Si el idioma del dispositivo no es español ni inglés, la app utiliza inglés como idioma por
defecto.
Detección de idioma
La detección del idioma se realiza automáticamente al iniciar la app:
Se busca la preferencia guardada en AsyncStorage (clave userLanguage)
Si no hay preferencia guardada, se detecta el idioma del dispositivo (iOS y Android)
Si el idioma detectado no está soportado, se usa inglés como fallback
Archivos de traducción
Archivo Ubicación Inglés src/core/i18n/languages/en.tsEspañol src/core/i18n/languages/es.ts
Secciones de traducción
Cada archivo de traducción contiene las siguientes secciones:
Sección Contenido appTextos generales de la aplicación commonPalabras y frases comunes (botones, labels) profilePantallas de perfil y configuración authLogin, registro, recuperación de contraseña onboardingPantallas de bienvenida bookingFlujo de reservas staysGestión de estancias propertiesPropiedades y listings issuesReporte de incidencias chatMensajería notificationsNotificaciones financialWallet y transacciones
Localización de calendarios
Los calendarios (react-native-calendars) están configurados con nombres de meses y días en español e inglés. La localización se aplica automáticamente según el idioma seleccionado.
Inicialización
initializeI18n() se invoca durante el hook useAppInitialization. No es necesario llamarla manualmente.
Uso en componentes
Uso básico
Con interpolación
Cambio de idioma
import { useTranslation } from 'react-i18next' ;
const MyComponent = () => {
const { t } = useTranslation ();
return < Text > { t ( 'booking.createTitle' ) } </ Text > ;
};
Agregar una nueva cadena de texto
Agrega la nueva key en ambos archivos de traducción: // src/core/i18n/languages/en.ts
export default {
// ...
booking: {
// ...
newFeatureTitle: "New Feature" ,
} ,
} ;
// src/core/i18n/languages/es.ts
export default {
// ...
booking: {
// ...
newFeatureTitle: "Nueva Funcionalidad" ,
} ,
} ;
const { t } = useTranslation ();
< Text > { t ( 'booking.newFeatureTitle' ) } </ Text >
Siempre agrega la traducción en ambos idiomas (en.ts y es.ts). Si solo agregas en uno, el usuario
verá la key sin traducir en el otro idioma.
API de funciones
Función Descripción initializeI18n()Inicializa i18next con la configuración de la app setLanguage(lang)Cambia el idioma en runtime y persiste la preferencia getCurrentLanguage()Retorna el código del idioma actual ('es' o 'en')