


Frontend Internationalisation (I18N) meilleures pratiques
Quatre étapes sont nécessaires pour réaliser l'internationalisation de la fin frontale: premièrement, utiliser JSON structuré pour gérer le contenu de traduction de manière centralisée pour éviter le codage dur; Deuxièmement, utilisez des bibliothèques i18n matures telles que React-I18Next, Vue-I18N ou FormatJS pour prendre en charge les règles de langue complexes; Troisièmement, concevez à l'avance pour s'adapter à différentes longueurs de langage et mises en page RTL, réserver l'espace et utiliser des dispositions élastiques; Quatrièmement, ajoutez des annotations de traduction pour clarifier le contexte, faciliter la collaboration. Ces quatre points peuvent réduire les coûts de maintenance et améliorer la précision d'adaptation multilingue et l'efficacité de développement.
L'internationalisation frontale (I18N) n'est pas un nouveau sujet, mais il n'y a en fait pas beaucoup de projets qui sont vraiment réalisés. Le noyau réside dans: la planification précoce, la gestion unifiée et l'adaptation flexible . Si vous développez une application frontale pour les utilisateurs multilingues, ces pratiques peuvent vous aider à éviter de nombreux pièges.

Contenu de traduction structurée
De nombreuses personnes écrivent initialement le contenu de traduction dans le code, comme l'écriture <h1 id="欢迎">欢迎</h1>
directement, mais plus tard, ils constatent qu'ils doivent modifier des dizaines de fichiers. L'approche correcte consiste à utiliser des fichiers JSON structurés pour stocker au centre du contenu traduit.
Par exemple:

// en.json { "Bienvenue": "Bienvenue", "bouton": { "Soumettre": "Soumettre" } }
Cela facilite non seulement l'entretien, mais facilite également l'accès ultérieur aux outils de traduction automatisés ou permet aux traducteurs de collaborer dans l'édition. Vous pouvez également charger dynamiquement le fichier JSON correspondant en fonction du code linguistique pour éviter le chargement redondant.
Utilisez la bibliothèque i18n mature au lieu de faire vos propres roues
Bien que vous puissiez implémenter un remplacement de texte simple manuellement, la véritable internationalisation est plus que de changer de texte. Le format de date, le format numérique, la forme plurielle, les différences de genre, etc. doivent être pris en compte. Pour le moment, il est recommandé d'utiliser des bibliothèques matures, telles que:

- React Project: React-I18Next
- Projet Vue: Vue-I18n
- Solution générale: formatjs (formatjs.io, maintenant appelé @formatjs)
Les règles linguistiques qu'ils prennent en charge sont plus complètes et peuvent être profondément intégrées au cadre, comme détecter automatiquement le langage du navigateur, mettre à jour l'état des composants lors de la commutation des langues, etc.
Concevez l'interface utilisateur à l'avance pour s'adapter à différentes longueurs de langue
Court anglais, long allemand et arabe de droite à gauche ... ceux-ci affecteront la mise en page. Ces situations doivent être prises en compte pendant la phase de conception de l'interface utilisateur:
- Réserver l'espace par le caractère le plus long, tel que "Annuler" peut être "Zurücksetzen" en allemand
- Évitez les largeurs à code dur et essayez d'utiliser des dispositions élastiques
- Pour les langues RTL (de droite à gauche), comme l'arabe, la superposition de style peut être effectuée en CSS par
dir="rtl"
ouhtml[lang="ar"]
Il est recommandé d'ajouter des tests de «pseudo-langage» pendant le processus de développement, comme le remplacement de tous les anglais par faux mots signés (tels que [!!!Welcome!!!]
) pour voir si la disposition est mauvaise.
Laisser des commentaires de contexte au contenu de traduction
La traduction n'est pas un simple remplacement de texte, il doit parfois être combiné avec le contexte. Par exemple, "Home" peut être "à la maison" ou "à la maison", selon la scène. C'est donc une bonne habitude d'ajouter des commentaires au fichier de traduction:
{ "maison": { "Traduction": "Home", "Commentaire": "Utilisé à la barre de navigation, reportez-vous à la page d'accueil du site Web" } }
Ceci est très amical pour le personnel non technique (comme les traducteurs) et peut également réduire les coûts de communication. Certains outils I18N prennent en charge l'exportation de fichiers Xliff annotés à utiliser par des équipes de traduction professionnelle.
Fondamentalement, c'est tout. L'internationalisation semble simple, mais cela doit vraiment être bien fait et il y a beaucoup de détails. Ce n'est qu'en planifiant les outils et le travail d'équipe à l'avance que vos produits peuvent être vraiment «mondiaux».
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

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)

Server-sideredering (ssr) innext.jsgenerateshtmlONTheServerForEachRequest, ImpromingPerformanceAndSeo.1.SSRISIDEALFORDYNYMICCONTENTTHATCHANGESSFREQUENDEM

WebAssembly (WASM) isagame-changerforfront-enddeveloperseeekinghigh-performancewebapplications.1.wasmisabinaryinstructionFormatThatrunsatNear-Nativespeed, AmatingLanguagesLikerUst, C, etgotoexeteinthebrowser.2

La délégation d'événements est une technique qui utilise le mécanisme de bulles d'événements pour remettre le traitement d'événements des éléments enfants à l'élément parent. Il réduit la consommation de mémoire et prend en charge la gestion dynamique du contenu en liant les auditeurs sur les éléments parents. Les étapes spécifiques sont: 1. Les auditeurs d'événements de liaison au conteneur parent; 2. Utilisez event.target pour déterminer les éléments enfants qui déclenchent l'événement dans la fonction de rappel; 3. Exécutez la logique correspondante en fonction des éléments enfants. Ses avantages incluent l'amélioration des performances, la simplification de la maintenance du code et l'adaptation aux éléments ajoutés dynamiquement. Lorsque vous l'utilisez, vous devez prêter attention aux restrictions des bulles d'événements, éviter une surveillance centralisée excessive et sélectionner raisonnablement les éléments parents.

Zustandisalightweight, PerformantStateManAgmentSolutionForRECTAppsthatavoidSredux’sboilerplate; 1.UseselectaStaTingTopreventunneceSaryre-RederselectingonlyTheneedStateProperty; 2.Apply CreateWithEam

rel = "Stylesheet" linkSsssFilesForSTylingThepage; 2.rel = "Preload" HintstopreloadCriticalResourcesForPerformance; 3.rel = "icon" setthewebsite’sfaviCon; 4.rel = "alternate" fournit la réversion desstiètes; 5.rel = & Qu

ThetargetAttributeinanhtmlanchortagspecifieswheretoopenthelinkedDocument.1._setropensthelinkinthesametab (par défaut) .2._blankopensthelinkinanewtaborwindow.3._parentopensthelinkintheparentframe.

Le cœur de l'optimisation du temps de construction frontal consiste à réduire les travaux redondants, à améliorer l'efficacité du traitement, à utiliser les caches et à sélectionner des outils efficaces. 1. Utilisez raisonnablement le treehaking et la segmentation du code pour vous assurer qu'il est introduit à la demande et que l'importation dynamique réduit le volume d'emballage; 2. Réduire le traitement inutile du chargeur, exclure Node_modules, mettre à niveau les chargeurs et détendre la portée de la traduction de Babel; 3. Utilisez le mécanisme de mise en cache pour accélérer la construction répétée, activer le cache Webpack, le cache CI et utiliser une installation hors ligne; 4. Amélioration de la chaîne d'outils, comme l'utilisation de Vite, Esbuild ou Rollup pour améliorer la vitesse de construction, bien qu'il y ait un coût de migration, il a un effet significatif.

Lorsque vous utilisez OAuth 2.0, le processus de code d'autorisation PKCE doit être adopté à la place du processus implicite, évitez de stocker des jetons dans LocalStorage à l'avant, la priorité est donnée au traitement des jetons de rafraîchissement à travers le dos et une intégration sécurisée est obtenue à l'aide d'une bibliothèque d'authentification de confiance pour garantir la sécurité des applications frontales.
