Format des fichiers de localisation

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Localisation file format and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎Türkçe • ‎français • ‎português do Brasil • ‎日本語

Tous les messages utilisés dans MediaWiki sont définis dans un fichier de messages.

Il existe deux formats de fichiers de messages dans MediaWiki: JSON et PHP. Depuis avril 2014, le noyau de MediaWiki et la plupart des extensions maintenues ont migré au format JSON. Pour plus d'information sur la migration en JSON, voir Requests for comment/Localisation format. Les deux formats sont pris en charge, mais vous devez utiliser JSON pour tous vos nouveaux développements. La prise en charge de PHP sera supprimée à l'avenir; ceci sera annoncé séparément.

JSON

Depuis la fin 2013 un nouveau format de fichier de messages a été introduit : JSON. C'est le JSON à plat, familier en tant que format commun générique de stockage des données. Chacune de ses clés est une clé de message, et la valeur est le texte du message. En plus, la clé spéciale @metadata est utilisée pour stocker les informations concernant la traduction telles que les auteurs de la traduction.

L'utilisation de JSON rend les fichiers de localisation plus sécurisés car il n'est pas exécutable. Il est aussi compatible avec jquery.i18n, une bibliothèque JavaScript développée comme partie du Projet Milkshake, qui fournit des possibilités de localisation similaires à MediaWiki pour l'IHM et qui est utilisée par quelques extensions qui se veulent plus indépendantes de MediaWiki, telles que l'Editeur visuel (VisualEditor) et SUL(UniversalLanguageSelector).

Parce que la suite étendue d'outils d'internationalisation et de localisation a été appelée « Project Milkshake », certaines personnes nomment ce format banane.

Emplacement des fichiers

Dans le noyau MediaWiki, les fichiers de localisation se trouvent dans le répertoire languages/i18n. Les extensions MediaWiki mettent habituellement ces fichiers dans un répertoire i18n/. Si vous avez un grand nombre de messages à l'intérieur d'un projet, vous serez amené à les classer par sujet en deux sous-répertoires ou plus pour des raisons de maintenabilité. Dans le contexte de MediaWiki, la clé de configuration $wgMessagesDirs est utilisée pour lister ces sous-répertoires. Voici un exemple de l'extension VisualEditor pour MediaWiki :

{
  "MessagesDirs": {
    "VisualEditor": [
      "lib/ve/modules/ve/i18n",
      "modules/ve-mw/i18n",
      "modules/ve-wmf/i18n",
      "lib/ve/lib/oojs-ui/i18n"
    ]
  }
}

Vous ajoutez les nouveaux messages au fichier de messages « en » en anglais en.json, et vous les documentez dans le fichier de documentation des messages qqq.json qui a « qqq » pour peudocode de langue. Voir aussi l'Ajout de nouveaux messages.

Métadonnées

Actuellement les champs de métadonnées suivants sont utilisés dans les fichiers :

authors
Liste JSON des auteurs des messages. Pour l'anglais (en) et la documentation des messages documentation (qqq) ceux-ci sont ajoutés manuellement lorsque le fichier des messages est modifié. Pour toutes les autres langues ceci est inséré automatiquement lorsque le fichier des messages est exporté de translatewiki.net. La documentation des messages peut être modifiée sur translatewiki.net, et les éditeurs de la documentation sont insérés dans le fichier qqq.json automatiquement.
message-documentation
C'est le code de la pseudo langue pour stocker la documentation des messages. Pour MediaWiki c'est toujours : qqq. (Cela apparaît dans certaines extensions, mais n'est plus analysé actuellement de toute manière. N'est pas obligatoire).

Conventions

Les caractères spéciaux tels les retours à la ligne sont échappés ("\n").

Les caractères Unicode qui représentent les lettres dans différents alphabets sont stockés comme des caractères réels et non comme des codes de caractère, parce que ces fichiers sont quelques fois lus par des humains et parce que cela diminue leur taille ("誼" et non pas "\u8ABC"). En général, il n'y a pas de raison pour que des développeurs aillent modifier les messages dans une langue donnée - à part l'anglais -, car ces messages sont habituellement mis à jour dans translatewiki.net.

Le code HTML n'est pas non plus échappé, on aura donc "<strong>Warning</strong>" et non pas "\u003cstrong\u003eWarning\u003c/strong\u003e".

L'indentation à l'intérieur des fichiers JSON se fait à l'aide des caractères de tabulation.

PHP

L'ancien format du fichier de localisation était : PHP. C'est essentiellement un tableau PHP avec tous les messages. Dans le noyau MediaWiki chaque langue a son propre fichier dans le répertoire langue/message du code source MediaWiki. Dans les extensions toutes les langues et la documentation des messages (qqq) sont dans le même fichier : ExtensionName.i18n.php, habituellement dans le répertoire principal de l'extension.

Pour migrer de PHP en JSON utilisez le script generateJsonI18n.php. Il va déplacer les messages vers des fichiers JSON et remplacer le texte des fichiers PHP par une entrée qui pointera vers les fichiers JSON. Ce canevas (boilerplate code) est nécessaire pour assurer la compatibilité arrière avec MediaWiki 1.19. Il n'est pas utilisé dans les nouvelles extensions qui ne demandent pas la compatibilité avec MediaWiki 1.19 .