


Comment implémenter l'internationalisation à l'aide d'Angular (tutoriel détaillé)
Jun 13, 2018 am 10:06 AMCet article présente principalement la méthode d'internationalisation des projets Angular. Maintenant, je le partage avec vous et vous donne une référence.
Comme le dit le site officiel d'Angular, l'internationalisation d'un projet est une tâche difficile qui nécessite des efforts multiformes, un dévouement et une détermination durables.
Cet article présentera le plan d'internationalisation du projet angulaire, impliquant l'internationalisation de fichiers statiques (html) et la rédaction de fichiers ts.
Arrière-plan
Angulaire : 5.0
Cli angulaire : 1.6.1(1.5.x Également disponible)
NG-ZORRO : 0.6.8
Modèle angulaire i18n
Modèle i18n Le processus de traduction comporte quatre étapes :
Marquez les informations de texte statique qui doivent être traduites dans le modèle de composant (c'est-à-dire ajoutez la balise i18n).
L'outil i18n d'Angular extrait les informations balisées dans un fichier source de traduction standard de l'industrie (tel qu'un fichier .xlf, en utilisant ng xi18n).
Le traducteur édite le fichier, traduit les informations textuelles extraites dans la langue cible et vous renvoie le fichier (nécessite un accès traducteur, cet article utilise le fichier xlf pour la sortie du fichier au format json , et enfin reconvertir le fichier json au format xlf).
Le compilateur Angular importe le fichier traduit, remplace les informations d'origine par le texte traduit et génère une nouvelle version en langue cible de l'application.
Vous pouvez créer et déployer des versions de projet distinctes pour chaque langue prise en charge en remplaçant simplement les fichiers XLF traduits.
Comment l'utiliser dans un fichier modèle ?
i18n propose plusieurs façons de l'utiliser, et propose également des méthodes de traduction pour les nombres singuliers et pluriels (je ne l'ai pas utilisé personnellement, donc je trouve cela peu pratique). Ensuite, un fichier HTML distinct sera utilisé pour présenter plusieurs méthodes d'utilisation.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Le code ci-dessus montre plusieurs façons d'utiliser i18n :
1. Utilisez les balises d'attribut i18n (une copie explicative peut être ajoutée, au format : title|description@@id, title et la description peut aider les traducteurs à mieux comprendre la signification de la copie. Le fait de les ajouter dépend des circonstances du projet)
peut être directement étiqueté avec i18n sur la balise statique, comme
1 |
|
généré Le format du champ xlf (xml) est
1 2 3 4 5 6 7 |
|
2. Ajoutez des attributs i18n pour le titre
Pour les attributs de balise html, vous pouvez également ajouter i18n, tel que
1 |
|
Le format xlf (xml) généré est le même que ci-dessus
3. Traduire le texte sans créer d'éléments
Nous avons parfois plusieurs fragments de phrase dans une seule phrase If span. et l'étiquette sont ajoutés à chaque fois. Si l'élément est enveloppé, cela peut sérieusement affecter la mise en page. À ce stade, nous pouvons utiliser ng-container pour envelopper la copie qui doit être traduite.
1 2 3 |
|
s'affiche sur la page sous la forme
1 2 3 4 |
|
* ng-container devient un bloc de commentaires, ce qui n'affectera pas la mise en page (surtout lorsque le style est appliqué)
Après le balisage, il suffit d'exécuter ng xi18n pour créer automatiquement un fichier xlf, généralement message.xlf. Si vous avez besoin de le personnaliser, vous pouvez vous rendre sur le site officiel d'Angular CLI pour le visualiser.
Conversion XLF et JSON
Méthode xlf vers json
J'utilise personnellement la bibliothèque xml2js pour fonctionner, le code simple est le suivant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
Méthode json vers xlf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
|
De cette manière, l'extraction des informations de copie et la conversion du fichier traduit sont terminées. Ensuite, nous devons appliquer la copie traduite au projet. .
Déployer les fichiers de traduction
Créez un dossier de paramètres régionaux dans le répertoire src et enregistrez le fichier demo.en-US.xlf traduit dans le répertoire modifié
Créez un nouveau fichier i18n-providers.ts
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
|
main.ts dans le dossier de l'application et modifiez-le en
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
N'oubliez pas d'ajouter le répertoire de paramètres régionaux à .angular-cli.json Venez l'emballer séparément.
De cette façon, notre traduction de copie statique est pratiquement terminée, mais comment devrions-nous traduire une copie dynamique telle qu'une copie dans des fichiers ts ou des attributs de frame tiers ? Ce qui suit présentera la solution de traduction de copie dynamique pour les fichiers ts et le framework NG-ZORRO.
Rédaction de fichiers ts et traduction de rédaction du framework NG-ZORRO
Idées spécifiques
Appelez la méthode Service via Pipe et faites correspondre json en fonction de l'unique correspondant valeur id Les résultats de la traduction dans l'objet sont ensuite renvoyés au front-end pour le rendu, faisant référence au plan de mise en œuvre international du framework NG-ZORRO.
Nous définissons d'abord le format de l'objet de traduction json, qui est une structure à trois couches. Les variables dynamiques doivent être enveloppées par %%. La raison en est qu'elle est liée à la structure du projet et également. facilite l'unification du format avec i18n ultérieurement.
1 2 3 4 5 6 7 8 |
|
Le format a été décidé, nous continuons à définir la méthode de traitement du Service
La solution d'internationalisation de NG-ZORRO est réutilisée ici, ce qui peut simplifier notre développement Si vous êtes intéressé. , vous pouvez vous référer à son code source .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
De cette façon, il vous suffit d'appeler la méthode de traduction de Service dans Pipe
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
D'accord, maintenant que notre logique de traitement est complètement terminée, présentons comment utiliser it
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Le processus ci-dessus peut essentiellement répondre aux besoins d'internationalisation de la plupart des projets angulaires. Si une internationalisation plus complexe est nécessaire, la discussion est la bienvenue.
Résumé
L'internationalisation d'Angular vers 5.0 a été relativement simple. Il suffit de taguer i18n à l'endroit approprié pour extraire facilement et rapidement la copie à traduire. Comment faire. Est-ce spécifiquement ? Le traitement des fichiers traduits varie d'une personne à l'autre, et plusieurs méthodes peuvent nous aider à convertir (comme cet article via nodejs).
Ce qui est plus compliqué, c'est le texte qui ne peut pas être traduit en tapant les balises i18n. La solution d'internationalisation de NG-ZORRO compense cette lacune, et lorsqu'elle est combinée, elle peut facilement compléter l'internationalisation du projet. S'il n'y a pas de support d'équipe dédié à l'internationalisation, la traduction sera très difficile, et il y a beaucoup de choses à considérer, comme le chinois traditionnel, le chinois traditionnel de Macao, le chinois traditionnel de Taiwan, etc., et la grammaire est également différente.
Répertoire de référence
Exemple en ligne d'internationalisation d'Angular (i18n)
Internationalisation locale NG-ZORRO
Ce qui précède est ce que j'ai compilé pour tout le monde Oui, j'espère que cela sera utile à tout le monde à l'avenir.
Articles associés :
Comment définir plusieurs classes à l'aide de Vue
Exemple de sélection de case à cocher et de transmission de valeur dans jQuery+SpringMVC_jquery
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment installer Angular sur Ubuntu 24.04

Utiliser le framework Gin pour implémenter l'internationalisation et les fonctions de support multilingue

Composants angulaires et leurs propriétés d'affichage : comprendre les valeurs par défaut non bloquantes

Créez des applications Web internationales à l'aide du framework FastAPI

Bibliothèque d'internationalisation en PHP8.0

Un article expliquant en détail comment transférer des données entre les composants Angular parent et enfant

Authentification basée sur des jetons avec Angular et Node

Comment utiliser le framework Webman pour réaliser l'internationalisation et le support multilingue ?
