Skip to Content
DocumentationConfigurez O3 à votre façonConfiguration des traductions

Configuration des traductions

O3 prend en charge plusieurs types de traductions, chacun servant des objectifs différents. Ce guide explique comment configurer les traductions pour votre implémentation.

Types de traductions

Il existe plusieurs catégories de traductions dans O3 :

Traductions de code

Nous utilisons Transifex  pour extraire automatiquement les chaînes codées en dur du code source (par exemple, “Cliquez ici”), les traduire dans l’interface Transifex, et contribuer ces traductions à la RefApp O3.

Quand l’utiliser : Pour traduire l’application entière dans une nouvelle langue ou mettre à jour les traductions existantes qui bénéficieront à toute la communauté.

Comment contribuer : Utilisez Transifex  pour ajouter ou mettre à jour les traductions pour la RefApp O3. Voir la section “Contribuer aux traductions” ci-dessous pour plus de détails.

Note : Les traductions de code sont différentes des remplacements de traduction. Les traductions de code sont contribuées via Transifex et font partie de l’application pour tous les utilisateurs. Les remplacements de traduction (couverts ci-dessous) sont spécifiques à la configuration et ne s’appliquent qu’à votre implémentation.

Traductions de terminologie

La terminologie clinique (concepts) peut avoir des traductions attachées. Par exemple, le concept CIEL 121375 pour l’asthme a plusieurs traductions (voir ici ).

Quand l’utiliser : Lorsque vous avez besoin de traductions pour des concepts cliniques (diagnostics, médicaments, etc.).

Comment ajouter : Ajoutez des traductions comme métadonnées sur le concept dans Open Concept Lab (OCL) ou via le module Initializer.

Traductions de formulaires

Si vous avez des traductions attachées aux concepts que vous utilisez dans les formulaires, ces traductions apparaîtront automatiquement dans vos formulaires. Il suffit de ne pas fournir d’étiquette dans le Form Builder, et le formulaire utilisera le nom du concept à la place.

Note : Le Form Builder peut afficher une question sans étiquette pendant l’édition s’il n’a pas encore résolu les métadonnées du concept. À l’exécution, le React Form Engine utilise l’affichage du concept résolu comme libellé de secours, et l’app Angular form-entry utilise la carte conceptReferences du schéma du formulaire pour le même type de repli.

Nouvelles locales : Si vous ajoutez une toute nouvelle locale qui n’était pas dans O3 auparavant, notez que le formulaire-entry-app s’attend à ce que les fichiers de traduction (par ex. ar.json) existent. Vous pouvez voir des problèmes avec le chargement des formulaires. Voir Problème O3-2492  pour une solution de contournement.

Remplacements de traduction

Vous pouvez utiliser le système de configuration pour remplacer les traductions pour des composants O3 spécifiques. C’est utile pour :

  • Changer les étiquettes de boutons
  • Renommer des liens ou éléments de menu
  • Personnaliser le texte pour votre implémentation

Important : Les remplacements de traduction ne doivent pas être utilisés pour traduire des composants dans une nouvelle langue. Pour des traductions complètes, veuillez contribuer à la RefApp en utilisant Transifex .

Les remplacements de traduction sont disponibles à deux niveaux de configuration :

  • Niveau module (s’applique à toutes les utilisations du module)
  • Niveau extension (s’applique à une extension spécifique dans un emplacement spécifique)

Remplacements au niveau module

Remplacez les traductions pour un module entier en configurant le module qui possède l’espace de noms de traduction :

{ "@openmrs/esm-patient-vitals-app": { "Translation overrides": { "en": { "Vitals & Biometrics": "Vitals and measurements" }, "fr": { "Vitals & Biometrics": "Signes vitaux et mesures" } } } }

Remplacements au niveau extension

Remplacez les traductions pour une extension spécifique dans un emplacement spécifique. Ces remplacements prennent la priorité sur les remplacements au niveau module pour cette extension.

Important : La configuration des extensions est spécifiée sous le module qui possède l’emplacement, pas le module de l’extension. Les clés de traduction viennent quand même de l’espace de noms de traduction du module de l’extension. Par exemple, le module patient chart possède patient-chart-dashboard-slot, tandis que results-summary-dashboard est fourni par le module vitals.

{ "@openmrs/esm-patient-chart-app": { "extensionSlots": { "patient-chart-dashboard-slot": { "configure": { "results-summary-dashboard": { "Translation overrides": { "en": { "Vitals & Biometrics": "Vitals" } } } } } } } }

Fonctionnement des remplacements de traduction

  1. Fusion et priorité : Les remplacements de traduction sont fusionnés dans cet ordre (les remplacements ultérieurs prennent la priorité) :

    • Traductions de base provenant des fichiers de traduction du module
    • Remplacements au niveau module
    • Remplacements au niveau extension

    Si la même clé de traduction est remplacée à plusieurs niveaux, le remplacement au niveau extension sera utilisé pour cette instance d’extension spécifique.

  2. Codes de langue : Les codes de langue doivent suivre le format : [a-z]{2,3}(-[A-Z]{2,3})?

    • Exemples valides : en, fr, en-US, fr-CA, swa
    • Exemples invalides : EN, en_us, english
  3. Clés de traduction : La clé de traduction (par ex. startVisit) doit correspondre à la clé que le composant lit à l’exécution.

    • Dans la plupart des cas, il s’agit d’une clé des fichiers de traduction du module. Ajouter une nouvelle clé qu’aucun composant ne lit n’aura aucun effet visible.
    • Les clés de traduction sont sensibles à la casse
    • Voir la section “Trouver les clés de traduction” ci-dessous pour obtenir de l’aide pour localiser les clés correctes
  4. Sensibilité à la casse : La chaîne "Translation overrides" doit être écrite exactement comme indiqué (T majuscule, r minuscule, etc.).

Trouver les clés de traduction

Pour trouver les clés de traduction correctes à remplacer :

  1. Inspecter le code : Regardez dans le dépôt du module pour les fichiers de traduction. Les modules O3 actuels gardent généralement les fichiers JSON dans un répertoire translations/ au niveau du package, par exemple translations/en.json. Le nom du module correspond généralement au nom du package (par ex. @openmrs/esm-patient-chart-app).

  2. DevTools du navigateur : Utilisez la console du navigateur pour inspecter les espaces de noms i18n. L’espace de noms de base est le nom complet du package du module. Les remplacements au niveau extension utilisent un espace de noms dérivé au format moduleName___slotName___extensionId, mais la plupart des recherches de clés commencent avec l’espace de noms de base du module :

    // Obtenir toutes les traductions pour un module window.i18next.getResourceBundle('en', '@openmrs/esm-patient-chart-app') // Ou lister tous les espaces de noms disponibles window.i18next.store.data
  3. Documentation du module : Certains modules documentent leurs clés de traduction dans leur README ou fichiers de documentation.

  4. Outils de mise en œuvre : Si le module est chargé, l’interface de configuration peut confirmer que “Translation overrides” est disponible pour ce module. Elle n’énumère pas toutes les clés de traduction, donc utilisez les fichiers source ou les ressources i18next ci-dessus pour trouver les clés.

Exemple complet

Voici un exemple complet montrant les deux niveaux de remplacement :

{ "@openmrs/esm-patient-vitals-app": { "Translation overrides": { "en": { "Vitals & Biometrics": "Vitals and measurements" } } }, "@openmrs/esm-patient-chart-app": { "extensionSlots": { "patient-chart-dashboard-slot": { "configure": { "results-summary-dashboard": { "Translation overrides": { "en": { "Vitals & Biometrics": "Vitals" } } } } } } } }

Cette configuration démontre :

  • Niveau module : Vitals & Biometrics est remplacé pour tout le module vitals.
  • Niveau extension : Vitals & Biometrics est remplacé uniquement pour l’extension results-summary-dashboard lorsqu’elle est rendue dans patient-chart-dashboard-slot. Dans cet emplacement, la valeur au niveau extension prend la priorité sur la valeur au niveau module vitals.

Note : O3 ne prend actuellement pas en charge un bloc "Translation overrides" au niveau d’un emplacement qui s’appliquerait automatiquement à toutes les extensions de cet emplacement. Configurez chaque ID d’extension qui a besoin d’un libellé spécifique à son emplacement.

Dépannage

Le remplacement de traduction ne fonctionne pas ?

  • Vérifiez que la clé de traduction correspond à une clé que le composant lit à l’exécution
  • Vérifiez que "Translation overrides" est orthographié exactement comme indiqué (sensible à la casse)
  • Assurez-vous que le code de langue suit le format correct (par ex. en, pas EN ou en-US pas en_us)
  • Vérifiez que le module est chargé (voir le guide Aperçu pour les détails sur le chargement des modules)
  • Pour les remplacements au niveau extension, assurez-vous que vous configurez sous le module qui possède l’emplacement, pas le module de l’extension

Impossible de trouver les clés de traduction ?

  • Utilisez les DevTools du navigateur pour inspecter les traductions chargées (voir “Trouver les clés de traduction” ci-dessus)
  • Vérifiez le dépôt GitHub du module pour les fichiers de traduction
  • Certains modules peuvent utiliser des clés de traduction d’autres modules (vérifiez les dépendances du module)

Contribuer aux traductions

Si vous souhaitez contribuer aux traductions de la RefApp O3 (plutôt que de simplement les remplacer pour votre implémentation), vous pouvez aider la communauté en ajoutant des traductions via Transifex.

Pour commencer :

  1. Visitez om.rs/translate  pour le guide de traduction complet
  2. Rejoignez l’équipe de traduction OpenMRS sur Transifex 
  3. Sélectionnez votre langue et commencez à traduire les chaînes

Support communautaire :

Note : Contribuer aux traductions via Transifex aide toute la communauté OpenMRS. Si vous avez besoin de traductions pour une nouvelle langue ou souhaitez améliorer les traductions existantes, veuillez envisager de contribuer plutôt que d’utiliser uniquement des remplacements pour votre implémentation.

Documentation connexe

  • Le Système de Configuration - Apprenez-en plus sur le système de configuration, y compris comment “Translation overrides” est une clé réservée dans le schéma de chaque module
  • Système d’Extensions - Apprenez-en plus sur la configuration des extensions et des emplacements d’extensions
Dernière mise à jour le