Introducció
L'internacionalització (i18n) és el procés de dissenyar aplicacions de manera que puguin ser adaptades fàcilment a diferents idiomes i regions sense necessitat de canvis en el codi font. Angular proporciona un conjunt d'eines i funcionalitats per facilitar aquest procés.
Conceptes Clau
- Localització (l10n): Adaptació de l'aplicació a un idioma i regió específics.
- Traduccions: Textos que es mostren a l'usuari en diferents idiomes.
- Format de dades: Adaptació de formats de data, hora, números, monedes, etc., segons la regió.
Configuració de l'Internacionalització a Angular
Pas 1: Instal·lació del paquet d'i18n
Primer, cal instal·lar el paquet d'i18n d'Angular:
Pas 2: Marcar els textos per a la traducció
Utilitza el marcador i18n
per indicar els textos que necessiten ser traduïts. Per exemple:
Pas 3: Extraure els missatges
Utilitza l'eina d'Angular per extreure els missatges a un fitxer de traducció:
Això generarà un fitxer messages.xlf
a la carpeta src/
.
Pas 4: Traduir els missatges
Crea fitxers de traducció per a cada idioma que vulguis suportar. Per exemple, per a l'anglès, crea un fitxer messages.en.xlf
i tradueix els textos:
<trans-unit id="header" datatype="html"> <source>Benvingut a la nostra aplicació!</source> <target>Welcome to our application!</target> </trans-unit>
Pas 5: Configurar l'aplicació per a múltiples idiomes
Actualitza el fitxer angular.json
per incloure les configuracions d'i18n:
"projects": { "your-project-name": { "i18n": { "sourceLocale": "ca", "locales": { "en": "src/locale/messages.en.xlf" } } } }
Pas 6: Construir l'aplicació per a cada idioma
Construeix l'aplicació per a cada idioma utilitzant el següent comandament:
Això generarà una versió de l'aplicació per a cada idioma configurat.
Exemple Pràctic
Fitxer HTML
<div> <h1 i18n="header|An introduction header">Benvingut a la nostra aplicació!</h1> <p i18n="description|A brief description">Aquesta és una aplicació d'exemple per demostrar la internacionalització.</p> </div>
Fitxer de Traducció (messages.en.xlf)
<xliff version="1.2"> <file source-language="ca" target-language="en" datatype="plaintext"> <body> <trans-unit id="header" datatype="html"> <source>Benvingut a la nostra aplicació!</source> <target>Welcome to our application!</target> </trans-unit> <trans-unit id="description" datatype="html"> <source>Aquesta és una aplicació d'exemple per demostrar la internacionalització.</source> <target>This is a sample application to demonstrate internationalization.</target> </trans-unit> </body> </file> </xliff>
Configuració a angular.json
"projects": { "your-project-name": { "i18n": { "sourceLocale": "ca", "locales": { "en": "src/locale/messages.en.xlf" } } } }
Construcció de l'aplicació
Exercicis Pràctics
Exercici 1: Afegir un nou idioma
- Objectiu: Afegir suport per a l'idioma francès a l'aplicació.
- Passos:
- Crea un fitxer
messages.fr.xlf
. - Traduïu els textos al francès.
- Actualitza el fitxer
angular.json
per incloure el nou idioma. - Construeix l'aplicació per a l'idioma francès.
- Crea un fitxer
Exercici 2: Format de dades
- Objectiu: Adaptar el format de data i hora segons la regió.
- Passos:
- Utilitza el pipe
date
d'Angular per mostrar una data. - Configura l'aplicació per mostrar la data en diferents formats segons l'idioma seleccionat.
- Utilitza el pipe
Resum
En aquesta secció, hem après com configurar l'internacionalització a Angular, marcar textos per a la traducció, extreure i traduir missatges, i construir l'aplicació per a múltiples idiomes. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. La internacionalització és una part crucial per fer que les aplicacions siguin accessibles a una audiència global.
Curs d'Angular
Mòdul 1: Introducció a Angular
- Què és Angular?
- Configuració de l'entorn de desenvolupament
- Arquitectura d'Angular
- Primera aplicació Angular
Mòdul 2: Components d'Angular
- Comprendre els components
- Crear components
- Plantilles de components
- Estils de components
- Interacció de components
Mòdul 3: Enllaç de dades i directives
- Interpolació i enllaç de propietats
- Enllaç d'esdeveniments
- Enllaç de dades bidireccional
- Directives integrades
- Directives personalitzades
Mòdul 4: Serveis i injecció de dependències
Mòdul 5: Enrutament i navegació
Mòdul 6: Formularis a Angular
Mòdul 7: Client HTTP i observables
- Introducció al client HTTP
- Fer sol·licituds HTTP
- Gestionar respostes HTTP
- Utilitzar observables
- Gestió d'errors
Mòdul 8: Gestió d'estat
- Introducció a la gestió d'estat
- Utilitzar serveis per a la gestió d'estat
- NgRx Store
- NgRx Effects
- NgRx Entity
Mòdul 9: Proves a Angular
- Proves unitàries
- Proves de components
- Proves de serveis
- Proves de cap a cap
- Simulació de dependències
Mòdul 10: Conceptes avançats d'Angular
- Angular Universal
- Optimització del rendiment
- Internacionalització (i18n)
- Tubs personalitzats
- Animacions d'Angular