Introducció
L'internacionalització (i18n) és el procés de dissenyar una aplicació de manera que pugui ser adaptada a diferents idiomes i regions sense necessitat de canvis d'enginyeria. 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.
- Fitxers de traducció: Fitxers que contenen les cadenes de text traduïdes a diferents idiomes.
- Marcadors de traducció: Etiquetes especials en el codi que indiquen quines cadenes de text han de ser traduïdes.
Configuració de l'Internacionalització en Angular
Pas 1: Instal·lació de les dependències necessàries
Primer, assegura't de tenir instal·lades les dependències necessàries per a l'internacionalització:
Pas 2: Marcar el text per a la traducció
Utilitza el marcador i18n
per indicar quines cadenes de text han de ser traduïdes. Per exemple:
Pas 3: Extracció de missatges
Extrau els missatges de text a un fitxer de traducció utilitzant la següent comanda:
Aquesta comanda generarà un fitxer messages.xlf
a la carpeta src/locale
.
Pas 4: Traducció dels missatges
Crea còpies del fitxer messages.xlf
per a cada idioma que vulguis suportar i tradueix les cadenes de text. Per exemple, per a l'anglès, crea un fitxer messages.en.xlf
i tradueix les cadenes.
Pas 5: Configuració de l'aplicació per a múltiples idiomes
Actualitza el fitxer angular.json
per incloure les configuracions de compilació per a cada idioma:
"projects": { "your-app-name": { "architect": { "build": { "configurations": { "en": { "localize": ["en"] }, "es": { "localize": ["es"] } } } } } }
Pas 6: Construcció de l'aplicació per a un idioma específic
Construeix l'aplicació per a un idioma específic utilitzant la següent comanda:
Aquesta comanda generarà versions de l'aplicació per a cada idioma configurat.
Exemple Pràctic
Fitxer HTML amb marcadors de traducció
<div> <h1 i18n="@@homeTitle">Benvingut a la nostra aplicació!</h1> <p i18n="@@homeDescription">Aquesta és una aplicació d'exemple per demostrar la internacionalització en Angular.</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="homeTitle" datatype="html"> <source>Benvingut a la nostra aplicació!</source> <target>Welcome to our application!</target> </trans-unit> <trans-unit id="homeDescription" datatype="html"> <source>Aquesta és una aplicació d'exemple per demostrar la internacionalització en Angular.</source> <target>This is a sample application to demonstrate internationalization in Angular.</target> </trans-unit> </body> </file> </xliff>
Configuració en angular.json
"projects": { "your-app-name": { "architect": { "build": { "configurations": { "en": { "localize": ["en"] }, "ca": { "localize": ["ca"] } } } } } }
Exercici Pràctic
Exercici
- Marca les cadenes de text del teu component principal per a la traducció.
- Extrau els missatges de text a un fitxer de traducció.
- Traduïu les cadenes de text a un altre idioma (per exemple, anglès).
- Configura l'aplicació per suportar múltiples idiomes.
- Construeix l'aplicació per a cada idioma i verifica que les traduccions es mostren correctament.
Solució
- Marcar les cadenes de text:
<h1 i18n="@@mainTitle">Hola, món!</h1> <p i18n="@@mainDescription">Aquesta és una aplicació d'exemple.</p>
- Extracció de missatges:
- Traducció dels missatges (messages.en.xlf):
<xliff version="1.2"> <file source-language="ca" target-language="en" datatype="plaintext"> <body> <trans-unit id="mainTitle" datatype="html"> <source>Hola, món!</source> <target>Hello, world!</target> </trans-unit> <trans-unit id="mainDescription" datatype="html"> <source>Aquesta és una aplicació d'exemple.</source> <target>This is a sample application.</target> </trans-unit> </body> </file> </xliff>
- Configuració en angular.json:
"projects": { "your-app-name": { "architect": { "build": { "configurations": { "en": { "localize": ["en"] }, "ca": { "localize": ["ca"] } } } } } }
- Construcció de l'aplicació:
Conclusió
L'internacionalització és una part crucial del desenvolupament d'aplicacions modernes que necessiten suportar múltiples idiomes i regions. Angular proporciona eines potents per facilitar aquest procés, permetent als desenvolupadors crear aplicacions globalment accessibles amb facilitat. Amb els passos descrits en aquesta secció, hauràs après a configurar i utilitzar l'internacionalització en les teves aplicacions Angular.
Curs d'Angular 2+
Mòdul 1: Introducció a Angular
- Què és Angular?
- Configuració de l'entorn de desenvolupament
- La teva primera aplicació Angular
- Arquitectura d'Angular
Mòdul 2: Conceptes bàsics de TypeScript
- Introducció a TypeScript
- Variables i tipus de dades en TypeScript
- Funcions i funcions fletxa
- Classes i interfícies
Mòdul 3: Components i plantilles
Mòdul 4: Directives i pipes
Mòdul 5: Serveis i injecció de dependències
Mòdul 6: Enrutament i navegació
Mòdul 7: Formularis en Angular
Mòdul 8: Client HTTP i observables
- Introducció al client HTTP
- Realització de sol·licituds HTTP
- Gestió de respostes HTTP
- Ús d'observables