La internacionalización (i18n) es el proceso de diseñar una aplicación de manera que pueda ser adaptada fácilmente a diferentes idiomas y regiones sin cambios en el código fuente. Angular proporciona un conjunto de herramientas y técnicas para facilitar este proceso.
Conceptos Clave
- Internacionalización (i18n): Proceso de preparar la aplicación para soportar múltiples idiomas.
- Localización (l10n): Proceso de adaptar la aplicación a un idioma y región específicos.
- Mensajes de Traducción: Textos que se traducen a diferentes idiomas.
- Marcadores de Traducción: Etiquetas en el código que indican qué textos deben ser traducidos.
Configuración de i18n en Angular
Paso 1: Añadir Marcadores de Traducción
Para marcar los textos que deben ser traducidos, Angular utiliza el atributo i18n. Este atributo se añade a los elementos HTML que contienen texto.
Paso 2: Extraer Mensajes de Traducción
Angular CLI proporciona un comando para extraer los mensajes de traducción a un archivo de mensajes.
Este comando genera un archivo messages.xlf en el directorio src/locale. Este archivo contiene todos los textos marcados para traducción.
Paso 3: Traducir Mensajes
El archivo messages.xlf debe ser traducido a los idiomas deseados. Por ejemplo, para traducir al español, se crea un archivo messages.es.xlf.
<trans-unit id="welcomeMessage" datatype="html"> <source>Welcome to our application!</source> <target>¡Bienvenido a nuestra aplicación!</target> </trans-unit>
Paso 4: Configurar Angular para Usar Traducciones
Se debe configurar Angular para utilizar los archivos de traducción. Esto se hace en el archivo angular.json.
"projects": {
"your-project-name": {
"i18n": {
"sourceLocale": "en",
"locales": {
"es": "src/locale/messages.es.xlf"
}
}
}
}Paso 5: Construir la Aplicación para Diferentes Idiomas
Finalmente, se construye la aplicación para los diferentes idiomas utilizando el comando ng build.
Este comando genera una versión de la aplicación para cada idioma configurado.
Ejemplo Práctico
Paso 1: Añadir Marcadores de Traducción
Paso 2: Extraer Mensajes de Traducción
Paso 3: Traducir Mensajes
Archivo messages.es.xlf:
<trans-unit id="greeting" datatype="html"> <source>Hello, world!</source> <target>¡Hola, mundo!</target> </trans-unit>
Paso 4: Configurar Angular para Usar Traducciones
Archivo angular.json:
"projects": {
"your-project-name": {
"i18n": {
"sourceLocale": "en",
"locales": {
"es": "src/locale/messages.es.xlf"
}
}
}
}Paso 5: Construir la Aplicación para Diferentes Idiomas
Ejercicio Práctico
Ejercicio
- Añade un marcador de traducción a un texto en tu aplicación Angular.
- Extrae los mensajes de traducción.
- Traduce los mensajes a un idioma de tu elección.
- Configura Angular para usar las traducciones.
- Construye la aplicación para el idioma traducido.
Solución
- Añadir marcador de traducción:
- Extraer mensajes de traducción:
- Traducir mensajes (archivo
messages.fr.xlfpara francés):
<trans-unit id="farewell" datatype="html"> <source>Goodbye!</source> <target>Au revoir!</target> </trans-unit>
- Configurar Angular (archivo
angular.json):
"projects": {
"your-project-name": {
"i18n": {
"sourceLocale": "en",
"locales": {
"fr": "src/locale/messages.fr.xlf"
}
}
}
}- Construir la aplicación:
Conclusión
La internacionalización en Angular es un proceso sistemático que implica marcar textos para traducción, extraer mensajes, traducirlos y configurar la aplicación para usar estas traducciones. Siguiendo estos pasos, puedes preparar tu aplicación para soportar múltiples idiomas y regiones, mejorando así su accesibilidad y alcance global.
Curso de Angular
Módulo 1: Introducción a Angular
- ¿Qué es Angular?
- Configuración del Entorno de Desarrollo
- Arquitectura de Angular
- Primera Aplicación Angular
Módulo 2: Componentes de Angular
- Entendiendo los Componentes
- Creación de Componentes
- Plantillas de Componentes
- Estilos de Componentes
- Interacción entre Componentes
Módulo 3: Enlace de Datos y Directivas
- Interpolación y Enlace de Propiedades
- Enlace de Eventos
- Enlace de Datos Bidireccional
- Directivas Incorporadas
- Directivas Personalizadas
Módulo 4: Servicios e Inyección de Dependencias
- Introducción a los Servicios
- Creación y Uso de Servicios
- Inyección de Dependencias
- Inyectores Jerárquicos
Módulo 5: Enrutamiento y Navegación
Módulo 6: Formularios en Angular
- Formularios Basados en Plantillas
- Formularios Reactivos
- Validación de Formularios
- Formularios Dinámicos
Módulo 7: Cliente HTTP y Observables
- Introducción al Cliente HTTP
- Realizando Solicitudes HTTP
- Manejo de Respuestas HTTP
- Uso de Observables
- Manejo de Errores
Módulo 8: Gestión de Estado
- Introducción a la Gestión de Estado
- Uso de Servicios para la Gestión de Estado
- NgRx Store
- NgRx Effects
- NgRx Entity
Módulo 9: Pruebas en Angular
- Pruebas Unitarias
- Pruebas de Componentes
- Pruebas de Servicios
- Pruebas de Extremo a Extremo
- Simulación de Dependencias
Módulo 10: Conceptos Avanzados de Angular
- Angular Universal
- Optimización del Rendimiento
- Internacionalización (i18n)
- Pipes Personalizados
- Animaciones en Angular
