I18n¶
Langues¶
DHIS2 prend en charge les traductions à la fois pour l'interface utilisateur et pour le contenu de la base de données.
Langues de l'interface utilisateur¶
Vous pouvez récupérer les langues disponibles pour l'interface utilisateur par le biais de la ressource suivante avec une requête GET. Les représentations XML et JSON sont prises en charge.
/api/33/locales/ui
An example of the response in JSON format:
[
{
"locale": "ar",
"languageTag": "ar",
"name": "العربية",
"displayName": "Arabic"
},
{
"locale": "ar_EG",
"languageTag": "ar-EG",
"name": "العربية (مصر)",
"displayName": "Arabic (Egypt)"
},
{
"locale": "uz_UZ_Cyrl",
"languageTag": "uz-Cyrl-UZ",
"name": "ўзбекча (Кирил, Ўзбекистон)",
"displayName": "Uzbek (Cyrillic, Uzbekistan)"
}
]
The locale property is an internal DHIS2 representation of the locale, and consists of the language code, country code and script code (if applicable) separated by underscores. It should not be confused with the languageTag property, which is the standard IETF BCP 47 language tag representation of the locale, with components separated by hyphens. The name property is the name of the locale in its own language, while the displayName property is the name of the locale in the users's preferred language.
Langues du contenu de la base de données¶
You can retrieve and create locales for the database content with GET and POST requests through the dbLocales resource. XML and JSON resource representations are supported. To POST data, there is one required parameter: country. This should correspond to a valid ISO 3166-1 alpha-2 country code. An optional parameter is language, which should correspond to a valid ISO 639-1 language code. A third option paramater script can also be provided, corresponding to a valid ISO 15924 script code. Do take note that if the script parameter is provided, the language parameter must also be provided.
Example request to get database locales for US English:
/api/locales/dbLocales?country=US&language=en
Example request to create a new database locale for Canadian French: POST /api/locales/dbLocales?country=CA&language=fr
Les traductions¶
DHIS2 permet de traduire le contenu de la base de données. Si une métadonnée est traduisible, elle aura une propriété traductions.
Cela signifie que vous pouvez récupérer et mettre à jour les traductions en utilisant les ressources des classes de métadonnées telles que api/dataElements, api/organisationUnits, api/dataSets, etc.
Obtenir des traductions¶
Vous pouvez obtenir des traductions pour un objet de métadonnées tel que l'élément de données en envoyant une requête GET à api/dataElements/{dataElementUID}
La réponse contient tous les détails de l'élément de données qui comprend également la propriété traductions comme suit
{
"id": "fbfJHSPpUQD",
"href": "https://play.dhis2.org/dev/api/29/dataElements/fbfJHSPpUQD",
"created": "2010-02-05T10:58:43.646",
"name": "ANC 1st visit",
"shortName": "ANC 1st visit",
"translations":
[
{
"property": "SHORT_NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
},
{
"property": "NAME",
"locale": "fr",
"value": "Soin prénatal 1"
},
{
"property": "NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
}
]
}
traductions d'un objet en envoyant une requête GET à api/dataElements/{dataElementUID}/translations {
"translations":
[
{
"property": "SHORT_NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
},
{
"property": "NAME",
"locale": "fr",
"value": "Soin prénatal 1"
},
{
"property": "NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
}
]
}
Traduire/mettre à jour des traductions¶
Vous pouvez faire des traductions en envoyant une requête PUT avec le même format JSON à api/dataElements/{dataElementUID}/translations
{
"translations":
[
{
"property": "SHORT_NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
},
{
"property": "NAME",
"locale": "fr",
"value": "Soin prénatal 1"
},
{
"property": "DESCRIPTION",
"locale": "fr",
"value": "description in french"
},
{
"property": "FORM_NAME",
"locale": "fr",
"value": "name in french"
}
]
}
Il est également possible de mettre à jour l'objet avec la charge, y compris la propriété traductions.
Envoyez une requête PUT à api/dataElements/{dataElementUID} avec l'objet complet comme ci-dessous :
{
"id": "fbfJHSPpUQD",
"created": "2010-02-05T10:58:43.646",
"name": "ANC 1st visit",
"shortName": "ANC 1st visit",
"translations":
[
{
"property": "SHORT_NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
},
{
"property": "NAME",
"locale": "fr",
"value": "Soin prénatal 1"
},
{
"property": "NAME",
"locale": "en_GB",
"value": "ANC 1st visit"
}
]
}
Le code de statut sera 204 No Content si la valeur de données a été sauvegardée ou mise à jour avec succès, ou 409 Conflit si une erreur de validation s'est produite (par exemple, plus d'un NOM_COURT pour la même langue).
Les propriétés communes qui prennent en charge les traductions sont listées dans le tableau ci-dessous.
Tableau : Noms des propriétés
| Nom de la propriété | Description |
|---|---|
| name | Nom de l'objet |
| Nom court | Nom court de l'objet |
| description | Description de l'objet |
Les classes qui prennent en charge les traductions sont listées dans le tableau ci-dessous.
Tableau : Noms des classes
| Nom de la classe | Description | Autres propriétés traduisibles |
|---|---|---|
| Option de Catégorie d'Élément de Données | Option de catégorie | |
| Categorie d'Eléments de Données | Catégorie | |
| Combinaison de Catégorie d'Eléments de Données | Combinaison de catégories | |
| DataElement | Élément de données | |
| Groupe d'Eléments de Données | Groupe d'éléments de données | |
| Ensemble de Groupe d'Eléménts de Données | Ensemble de groupes d'éléments de donnée | |
| Indicateur | Indicateur | description du numérateur, description du dénominateur |
| Type d'indicateur | Type d'indicateur | |
| Groupe d'indicateurs | Groupe d’indicateurs | |
| Ensemble de Groupe d'Indicateur | Ensemble de groupes d'indicateurs | |
| Unité d'organisation | Unité d’organisation | |
| Groupe d'Unité d'Organisation | Groupe d'unités d'organisation | |
| Ensemble de Groupe d'Unité d'Organisation | Ensemble de groupes d'unités d'organisation | |
| Ensemble de données | Ensemble de données | |
| Section | Section de l'ensemble des données | |
| Règle de validation | Règle de validation | instruction |
| Groupes de règles de validation | Groupe de règles de validation | |
| Programme | Programme | étiquette de date d'inscription, étiquette de date d'incident |
| Étape de programme | Étape du programme | étiquette de la date d'exécution, étiquette de la date d'échéance |
| Attribut d'entité suivie | Attribut d’entité suivie | |
| Entité suivie | Entité suivie | |
| Type de relation | Type de relation pour les instances d'entités suivies | fromToName, toFromName |
| Ensemble d'options | Ensemble d'options | |
| Option | Option | |
| Attribut | Attribut des métadonnées | |
| Modèle de notification de programme | Modèle de notification de programme | modèle de sujet, modèle de message |
| Modèle de notification de validation | Modèle de notification de validation | modèle de sujet, modèle de message |
| Modèle de notification de l'ensemble de données | Modèle de notification de l'ensemble de données | modèle de sujet, modèle de message |
| Visualisation | Visualisation | titre, sous-titre, étiquette d'axe de plage, étiquette de ligne de base, étiquette de ligne cible, étiquette d'axe de domaine |
| Action de règle de programme | Action de règle de programme | contenu |
| Prédicteur | Prédicteur | Nom, nom court, description, description du générateur |
| Règle de validation | Règle de validation | Nom, Description, Instruction, Expression du côté gauche, Expression du côté droit |
Internationalisation¶
Pour récupérer les paires clé-valeur des chaînes traduites, vous pouvez utiliser la ressource i18n.
/api/33/i18n
Le point d'accès est situé à /api/i18n et le format de la requête est un simple tableau de paires de valeurs clés :
[
"access_denied",
"uploading_data_notification"
]
La requête doit être de type POST et utiliser l' application/json comme type de contenu. Un exemple utilisant curl, en supposant que les données de la requête sont sauvegardées dans le fichier keys.json :
curl -d @keys.json "play.dhis2.org/demo/api/33/i18n" -X POST
-H "Content-Type: application/json" -u admin:district
Le résultat ressemblera à ceci :
{
"access_denied":"Access denied",
"uploading_data_notification":"Uploading locally stored data to the server"
}