AEM fournit une console pour gérer les traductions des textes utilisés dans l’interface utilisateur du composant. Cette console est disponible à l’adresse
https://<hostname>:<port-number>/libs/cq/i18n/translator.html
Utilisez l’outil Traducteur pour gérer les chaînes de caractères anglaises, ainsi que leurs traductions. Les dictionnaires sont créés dans le référentiel ; par exemple /apps/myproject/i18n.
Notez que l’outil Traducteur et les dictionnaires que vous gérez servent à présenter l’interface utilisateur du composant dans différentes langues. Si vous souhaitez traduire une page ou du contenu généré par l’utilisateur, reportez-vous aux sections Traduction de contenu pour des sites multilingues et Traduction de contenu généré par l’utilisateur.
Ne modifiez que les dictionnaires qui sont créés pour votre projet et qui résident sous /apps
.
Les dictionnaires système AEM sont également disponibles dans cet outil. Ne modifiez pas les dictionnaires système AEM, car cela risque de poser des problèmes avec l’interface utilisateur AEM. De plus, vous risquez de perdre les modifications au cours d’une mise à niveau. Les dictionnaires système AEM sont situés sous /libs
.
Bien que l’outil Traducteur possède une interface utilisateur classique, il est utilisé pour traduire des expressions, quelle que soit l’interface où se trouvent celles-ci.
Le traducteur répertorie les textes utilisés dans AEM avec les diverses traductions correspondantes :
Vous pouvez rechercher, filtrer et modifier des textes anglais et traduits. Vous pouvez également exporter des dictionnaires au format XLIFF en vue de la traduction, puis réimporter les traductions dans les dictionnaires.
Il est également possible d’ajouter les dictionnaires i18n à un projet de traduction à partir de cette console. Vous pouvez soit en créer un nouveau ou l’ajouter à un projet existant.
Cliquez sur Traduire le dictionnaire.
Sélectionnez l’option Créer ou Ajouter suivant vos besoins. Une boîte de dialogue s’ouvre.
Renseignez les champs suivant les besoins et cliquez ensuite sur OK.
Vous pouvez à présent cliquer sur OK ou consulter le dictionnaire cible.
Pour plus d’informations sur les projets de traduction, voir Gestion des projets de traduction.
Créez un dictionnaire pour gérer vos chaînes d’IU localisées. Après avoir créé un dictionnaire, vous pouvez utiliser l’outil de traduction pour le gérer.
À l’aide de CRXDE Lite, ajoutez le nœud racine (sling:Folder
) de votre nouveau dictionnaire comme structure de stockage des définitions de langue :
/apps/<projectName>/i18n
Par exemple, /apps/myProject/i18n
Ajoutez la structure de langues requise sous ce nœud : Par exemple :
/apps/myProject/i18n [sling:Folder]
- de.json [nt:file] [mix:language]
+ jcr:language = de
- fr.json [nt:file] [mix:language]
+ jcr:language = fr
Il s’agit de la structure du module Sling i18n.
Rechargez le traducteur. Le chemin d’accès au dictionnaire (/apps/myProject/i18n
) devient disponible dans le sélecteur déroulant de la barre d’outils. Sélectionnez-le pour commencer à ajouter des chaînes et leurs traductions.
Le traducteur enregistre uniquement les traductions pour les langues présentes dans le chemin d’accès (/apps/myProject/i18n
, par exemple).
Vérifiez que ces langues correspondent à celles affichées dans la grille.
Utilisez l’outil de traduction pour gérer les chaînes de caractères de vos dictionnaires. Vous pouvez ajouter, modifier et supprimer des chaînes de caractères anglaises et également fournir des chaînes traduites.
Ne modifiez que les dictionnaires qui sont créés pour votre projet et qui résident sous /apps
.
Ne modifiez pas les dictionnaires système AEM, car cela risque de poser des problèmes avec l’interface utilisateur AEM. De plus, vous risquez de perdre les modifications au cours d’une mise à niveau. Les dictionnaires système AEM sont situés sous /libs
.
Ajoutez des chaînes anglaises à un dictionnaire que votre composant a internationalisées. Ajoutez uniquement des chaînes qui sont internationalisées afin de ne pas gaspiller des ressources en traduisant des chaînes qui ne sont pas utilisées.
Les chaînes que vous ajoutez à un dictionnaire doivent correspondre exactement à celle qui est spécifiée dans le code. Si la chaîne anglaise par défaut qui est utilisée dans le code ne correspond pas à la chaîne anglaise figurant dans un dictionnaire, la chaîne traduite n’apparaît pas dans l’interface utilisateur lorsque cela s’avère nécessaire. Les chaînes sont sensibles à la casse.
Fournir des indications pour la traduction
Utilisez la propriété Comment de la chaîne du dictionnaire pour fournir au traducteur des informations sur la signification de la chaîne. En règle générale, l’IU aide les utilisateurs à déterminer la signification des mots ambigus. Cependant, le traducteur ne voit pas la chaîne dans le contexte de l’interface utilisateur. L’indice de traduction permet de lever toute ambiguïté. Par exemple, un commentaire aide le traducteur à comprendre que le terme anglais « Request » est utilisé comme substantif et non comme verbe.
Les indices de traduction permettent également de différencier les chaînes qui sont identiques, mais qui ont des significations différentes. Par exemple, le terme « Search » peut être un substantif ou un verbe ; deux entrées « Search » sont donc requises dans le dictionnaire avec deux indices de traduction différents. Le code qui demande la chaîne contient également l’indice de traduction, de sorte que la chaîne correcte soit utilisée dans l’interface utilisateur.
Insertion de variables indexées
Insérez des variables dans la chaîne localisée pour renforcer la signification contextuelle dans une phrase. Par exemple, après vous être connecté à une application web, la page d’accueil affiche le message « Bienvenue à l’administrateur. Vous avez 2 messages dans votre boîte de réception. » Le contexte de page détermine le nom d’utilisateur et le nombre de messages.
Pour inclure des variables dans la chaîne localisée, placez des index entre accolades à l’emplacement des variables dans le premier argument de la méthode get. Utilisez l’indice de localisation pour décrire les valeurs. Le traducteur doit comprendre la signification des variables car les structures de phrase varient en fonction de la langue.
Notez que le code qui demande la chaîne traduite fournit des valeurs pour les variables indexées en fonction du contexte.
Par exemple, la chaîne suivante s’affiche lorsqu’un utilisateur se connecte à un site web, et est incluse dans le dictionnaire :
Welcome back {0}. You have {1} messages.
Le commentaire suivant décrit les variables :
{0} = the user name, {1} = the number of items in the user's inbox
Modification de chaînes
Vous pouvez modifier ou supprimer des chaînes anglaises à mesure qu’elles sont modifiées ou supprimées dans le code. Lorsque vous modifiez une chaîne, la chaîne d’origine est conservée et une nouvelle chaîne est créée pour tenir compte de la modification. Avant de supprimer une chaîne, assurez-vous qu’aucun code ne l’utilise.
Procédez comme suit pour ajouter une chaîne.
Dans le menu déroulant Dictionnaires, sélectionnez le dictionnaire auquel vous ajoutez une chaîne. Dans le menu déroulant, les dictionnaires sont représentés par leur chemin d’accès dans le référentiel.
Au-dessus du tableau Chaînes et traductions, cliquez sur Ajouter.
Dans la zone Chaîne de la boîte de dialogue Ajouter une chaîne, saisissez la chaîne anglaise. Dans la zone Commentaire, saisissez un indice de traduction à l’intention du traducteur, si nécessaire.
Cliquez sur OK.
Cliquez sur Enregistrer.
Procédez comme suit pour modifier une chaîne dans un dictionnaire.
Dans le menu déroulant Dictionnaires, sélectionnez le dictionnaire qui contient la chaîne à modifier.
Double-cliquez sur la chaîne à modifier.
Dans la boîte de dialogue Modifier la chaîne, sélectionnez Modifier la chaîne ou le commentaire (Crée une copie).
Modifiez la chaîne ou le commentaire, puis cliquez sur OK.
Cliquez sur Enregistrer.
Procédez comme suit pour supprimer une chaîne d’un dictionnaire.
Dans le menu déroulant Dictionnaires, sélectionnez le dictionnaire duquel vous souhaitez supprimer une chaîne.
Cliquez sur Supprimer.
Cliquez sur Enregistrer.
La barre de recherche située au bas de l’outil Traducteur fournit des options de sélection de chaînes :
Filtre par texte : motif à faire correspondre à la chaîne, au commentaire ou aux traductions de langue anglaise. Seuls les éléments qui correspondent à l’ensemble ou à une partie du schéma s’affichent dans le tableau.
Modifications : Tous, Modifié, Nouveau, Supprimé : affiche les éléments qui ont été modifiés, mais pas enregistrés.
Avec commentaire : affiche les éléments qui comportent des commentaires à l’intention des traducteurs.
Traductions manquantes : affiche les éléments pour lesquels il n’existe pas de traduction pour au moins une langue.
Une fois que vous avez ajouté la chaîne anglaise à un dictionnaire, vous pouvez ajouter les traductions de cette chaîne. Vous pouvez également exporter le dictionnaire pour qu’il soit traduit par un tiers.
Sélectionnez le dictionnaire propre à votre projet, car il spécifie le chemin d’accès dans le référentiel qui contient les traductions. Sélectionnez, par exemple, Dictionaries (Dictionnaires) en tant que :
/apps/myProject/i18n
Ne modifiez que les dictionnaires qui sont créés pour votre projet et qui résident sous /apps
.
Les dictionnaires système AEM sont également disponibles dans cet outil. Ne modifiez pas les dictionnaires système AEM, car cela risque de poser des problèmes avec l’interface utilisateur AEM. De plus, vous risquez de perdre les modifications au cours d’une mise à niveau. Les dictionnaires système AEM sont situés sous /libs
.
Pour modifier les textes traduits pour l’une des chaînes, vous pouvez effectuer l’une des opérations suivantes :
Cliquez sur Enregistrer pour valider vos modifications.
Si vous cliquez sur Réinitialiser et Actualiser (au lieu d’Enregistrer), les textes précédents sont rétablis.
Pour prendre en charge l’utilisation de services de traduction tiers, l’outil de traduction vous permet d’exporter et d’importer des dictionnaires.
Exportez un dictionnaire sous la forme d’un fichier XLIFF afin qu’un service tiers puisse traduire les chaînes qu’il contient.
Lorsque vous exportez un fichier XLIFF et insérez une langue, la structure des nœuds du dictionnaire dans le référentiel doit inclure cette langue. Si la langue n’est pas incluse, des erreurs se produisent. Par exemple, pour exporter le fichier XLIFF français, le dossier de dictionnaire doit inclure le nœud enfant mix:language
nommé fr
(Voir Création d’un dictionnaire).
Procédez comme suit pour exporter un fichier XLIFF pour une langue donnée.
Ouvrez l’outil de traduction http://<host>:<port>/libs/cq/i18n/translator.html
.
Dans le menu déroulant Dictionnaires, sélectionnez le dictionnaire à exporter.
Cliquez sur Exporter > Exporter les options Xliff XX complètes, où XX correspond au code de langue en deux lettres, tel que DE ou FR.
Le fichier XLIFF s’ouvre dans un nouvel onglet ou une nouvelle fenêtre.
Utilisez les commandes du navigateur web pour enregistrer la page en tant que fichier sur votre système de fichiers ; Fichier > Enregistrer sous, par exemple.
Procédez comme suit pour exporter une partie ou l’ensemble des chaînes anglaises.
http://<host>:<port>/libs/cq/i18n/translator.html
.Importez un fichier XLIFF dans un dictionnaire pour remplir ce dernier. Si le dictionnaire contient une traduction pour une chaîne anglaise et que le fichier XLIFF contient une traduction différente pour la même chaîne, la traduction du dictionnaire est remplacée.
http://<host>:<port>/libs/cq/i18n/translator.html
.Ajoutez ou supprimez des langues prises en charge par l’outil de traduction et fournies aux utilisateurs de vos pages web.
Les langues suivantes sont reprises dans le tableau de dictionnaire de l’outil Traducteur :
Procédez comme suit pour ajouter ou supprimer des langues.
À l’aide de CRXDE Lite, créez un nœud :
/etc/languages
Sur ce nœud, créez une propriété :
Nom : languages
Type : Multi-String
Value : liste des langues à afficher. Par exemple :
Les codes de langue doivent être en minuscules.
Cliquez sur Enregistrer tout dans CRXDE Lite, puis rechargez le traducteur. La grille est mise à jour pour afficher les langues définies.
Le traducteur enregistre uniquement les traductions pour les langues qui sont présentes dans le dictionnaire (c’est-à-dire, dans le chemin d’accès au dictionnaire, comme /apps/myProject/i18n
).
Vérifiez que ces langues correspondent à celles affichées dans la grille.
Une fois que vous avez défini un dictionnaire pour une nouvelle langue de l’instance AEM, vous devez la rendre disponible pour les auteurs (par exemple, dans les Préférences) :
Pour modifier la liste des langues disponibles dans l’option Préférences de la console Sécurité :
Créez un recouvrement dans le code de votre application pour :
/libs/cq/security/widgets/source/widgets/security/Preferences.js
and update as required.
Pour que la langue soit disponible dans les Préférences de la console Sites web, vous devez apporter les modifications suivantes à votre application :
Créez un recouvrement pour la structure sous :
/libs/cq/security/content/tools/userProperties
Dans le recouvrement, mettez à jour la liste des langues sous :
items/common/items /lang/options
Enregistrez toutes les modifications et rechargez la console adéquate.
Plusieurs pays peuvent utiliser une même langue. Par exemple, les États-Unis, le Royaume-Uni et l’Australie utilisent l’anglais. Cette indication est portée par un code qui est composé de la langue et du pays, par exemple en_GB
, en_US
et en_AU
.
Les pays par défaut sont utilisés lors de l’affichage de drapeaux (dans la boîte de dialogue de copie des langues, par exemple). Ils sont utilisés pour résoudre le pays pour un code de langue.
Pour les localisations, telles qu’elles sont gérées par le traducteur ci-dessus, seule la langue exacte fonctionne. Si la liste déroulante des préférences linguistiques utilise en_uk
, un dictionnaire en_uk
doit figurer dans le référentiel.
Pour modifier les définitions par défaut, procédez comme suit :
Une liste des langues est stockée sous :
/libs/wcm/core/resources/languages
Recouvrez-la en la copiant dans :
/apps/wcm/core/resources/languages
Modifiez ou étendez ensuite la liste. La propriété defaultCountry
dans un nœud de langue (ja
, par exemple) doit contenir le code complet (ja_jp
) qui définit jp
comme le pays par défaut pour la langue ja
.
Mettez à jour le gestionnaire de langues WCM CQ.
Liste des langues :
chemin d’accès à la liste des langues dans le référentiel. Définissez-la sur l’emplacement utilisé pour le recouvrement :
/apps/wcm/core/resources/languages
Vous pouvez effectuer cette opération à l’aide de la console web OSGi :
https://<hostname>:<port-number>/system/console/configMgr/com.day.cq.wcm.core.impl.LanguageManagerImpl
Incorporez vos dictionnaires dans le processus de gestion des versions de vos applications AEM. Vous pouvez, par exemple, inclure le dictionnaire dans le module de contenu de votre application en vue d’un déploiement sur l’instance de publication. Cette stratégie offre les avantages suivants :
De même, le test des chaînes du dictionnaire doit être effectué dans le cadre du cycle de développement habituel du logiciel.
La fonctionnalité de publication régulière, ou réplication, ne doit pas être utilisée pour les dictionnaires. Au lieu de cela, les dictionnaires doivent être traités de la même manière que le code et la configuration. Cela inclut l’utilisation du contrôle de code source pour suivre les modifications et l’utilisation de modules de contenu pour appliquer les modifications à l’auteur et à la publication.
Lors de l’utilisation du Dispatcher, vous devez invalider les pages mises en cache afin d’inclure les nouvelles chaînes de dictionnaire dans les chaînes de composant rendues.