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.xlf
para 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