Module:TNT/Documentation

Aller à la navigation Aller à la recherche

La documentation pour ce module peut être créée à Module:TNT/Documentation/doc

Erreur de script : Erreur Lua à la ligne 1 : unexpected symbol near '<'.

<includeonly>{{Shared Template Warning|Module:TNT|Module:TNT}}</includeonly>

== Présentation ==
Ce module permet une '''traduction''' simple du '''texte des modèles et modules''' entre les différentes '''versions linguistiques de Wikipédia''' dans le cadre du projet de [[mw:Multilingual Templates and Modules|modèles et modules multilingues]]. Le module TNT (abréviation de {{Anglais|Template Namespace Translation}}, {{litt.}} « Traduction de l'espace de nom Modèle ») permet aux modules d'être conçus indépendamment de la langue et de stocker du texte pour chaque langue dans les pages de [[mw:Help:Tabular Data/fr|données tabulaires]] sur Commons. Lorsqu'un texte n'a pas encore été traduit, l'anglais est utilisé par défaut. Lorsque la table de traduction est mise à jour, les modèles et modules utilisant ces textes sont automatiquement mis à jour (une [[Aide:Purge du cache|purge du cache]] peut être nécessaire) et aucune modification du modèle ou du module n'est nécessaire sur aucun des wikis. Ce processus est très similaire à l'[[mw:Localisation/fr|internationalisation]] de MediaWiki et prend en charge toutes les conventions d'internationalisation standard telles que <nowiki>{{plural:...}}</nowiki>.

Ce module peut être invoqué à partir de modèles en utilisant <code>#invoke</code> et être importé à partir d'autres modules. Pour un exemple simple, voir [[commons:Data:I18n/Template:Graphs.tab|Data:I18n/Template:Graphs.tab]] - une table avec deux messages, chaque message ayant un seul paramètre. Par convention, toutes les tables de traduction doivent avoir le préfixe <code>Data:I18n/...</code> pour les séparer des autres types de données.

== Utilisation dans un modèle ==
{| class="wikitable"
|+
! scope="col" | Code
! scope="col" | Utilisation
|-
|<pre>
{{#invoke:TNT | msg
| I18n/Template:Graphs.tab
| table_source
}}
</pre>
| Dans un modèle, ce code appelle la fonction <code>msg</code> du module TNT pour obtenir la traduction du texte <code>table_source</code> depuis la table de traductions [[commons:Data:I18n/Template:Graphs.tab|Data:I18n/Template:Graphs.tab]].
|-
|<pre>
{{#invoke:TNT | msg
| I18n/Template:My Template.tab
| id-message
| param1
| param2
}}
</pre>
| Les éventuels paramètres sont spécifiés après l'id du message.
|}

=== Traduction des templatedata des modèles ===
Les paramètres d'un modèle sont généralement stockés sous la forme d'un bloc '''templatedata''' [[JavaScript Object Notation|JSON]] à l'intérieur de la sous-page de documentation du modèle. Cela facilite la traduction, mais lorsqu'un nouveau paramètre est ajouté à un modèle global, les pages de documentation doivent être mises à jour dans chaque langue. TNT facilite la traduction en générant automatiquement le bloc templatedata à partir d'une table stockée sur Commons. Placer le code ci-dessous ligne dans une sous-page de documentation utilisera le tableau [[Commons:Data:Templatedata/Graph:Lines.tab|Data:Templatedata/Graph:Lines.tab]] pour générer les templatedata dans chaque langue. Même si la communauté locale n'a pas traduit la documentation complète du modèle, elle pourra voir tous les paramètres du modèle, mis à jour de manière centralisée.
<pre>
{{#invoke:TNT | doc | Graph:Lines }}
</pre>

=== Utilisation dans un Module ===
De même que les modèles, les modules peuvent utiliser le module TNT pour la traduction dans la langue locale (c'est-à-dire en français) des textes affichés :
<syntaxhighlight lang="lua">
local TNT = require('Module:TNT')

-- format <idMessage> chaîne de caractères avec deux paramètres utilisant une table de traduction
local texte = TNT.format('I18n/Messages_de_mon_module', 'idMessage', 'param1', 'param2', ...)

-- Même chose, mais en précisant la langue pour la traduction
local texte = TNT.formatInLanguage('en', 'I18n/Messages_de_mon_module', 'idMessage', 'param1', 'param2', ...)
</syntaxhighlight>

== Fonctions exportables ==
* <code>[[Module:TNT#L-42|msg(frame)]]</code> – Pour un frame contenant les [[Aide:Créer un modèle#Nom de paramètre implicite : les paramètres positionnels|paramètres non nommés]] : <code>dataset</code> (exemple : pour [[commons:Data:I18n/Template:Graphs.tab]], le paramètre dataset vaut <code>I18n/Template:Graphs.tab</code>), <code>id</code> (l'identifiant dans le dataset), et d'éventuels paramètres supplémentaires <code>params</code> au format des [[mw:Extension:Scribunto/Lua reference manual/fr#mw.message:params|paramètres de mw.param]], et le [[Aide:Créer un modèle#Nom de paramètre explicite : les paramètres nommés|paramètre nommé]] <code>lang</code> (code langue, fr par défaut), et renvoie le wikitexte du message issu du dataset avec cet id dans la langue indiquée, les éventuels paramètres ayant été évalués.

* <code>[[Module:TNT#L-63|format(dataset, key, ...)]]</code> – Équivalent de <code>msg(frame)</code> sans le paramètre <code>lang</code> pour un usage depuis un module.

* <code>[[Module:TNT#L-74|formatInLanguage(lang, dataset, key, ...)]]</code> – Équivalent de <code>msg(frame)</code> avec le paramètre <code>lang</code> pour un usage depuis un module.

* <code>[[Module:TNT#L-88|doc(frame)]]</code> – Prend en argument un frame contenant pour unique paramètre non nommé <code>dataset</code> (au même format que pour <code>msg(frame)</code>) et renvoie le wikitexte des [[Aide:TemplateData|TemplateData]] associées à ce dataset.

* <code>[[Module:TNT#L-94|getTemplateData(dataset)]]</code> – Prend en argument une chaîne de caractères <code>dataset</code> et renvoie le JSON (encodé comme chaîne de caractères) des TemplateData associées à ce dataset.

== Modules externes et autres éléments dont ce module a besoin pour fonctionner ==
* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.text.trim|mw.text.trim]]</code> – Enlève les espaces au début et à la fin d'une chaine de caractères ;
* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.text.jsonEncode|mw.text.jsonEncode]]</code> – Transforme la valeur en chaine [[JavaScript Object Notation|JSON]] ;
* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#frame:extensionTag|frame:extensionTag()]]</code> – Permet l'utilisation d'équivalents lua aux [[mw:Help:Extension:ParserFunctions/fr|fonctions d'analyse syntaxique]], appelées via le [[Aide:Mot magique|mot magique]] <code><nowiki>{{#tag:}}</nowiki></code> ;
* <code>[[mw:Help:Tabular Data/fr#Utilisation|mw.ext.data.get]]</code> – Permet la récupération des données tabulaires sur commons ;
* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.message.newRawMessage|mw.message.newRawMessage]]</code> – Crée un nouvel objet ''message'' en utilisant le texte donné en paramètre ;
* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#mw.message:plain|mw.message:plain()]]</code> – Convertit un objet message en wikitexte ;

* <code>[[mw:Extension:Scribunto/Lua reference manual/fr#Bibliothèque libraryUtil|libraryUtil]]</code> – Bibliothèque de fonctions pour retourner une erreur lorsque le type d'un objet n'est pas celui attendu.

{{Projet Scribunto}}

<includeonly>
[[Catégorie:Module utilisant des données tabulaires]]
[[Catégorie:Module appelé directement par un modèle]]
[[Catégorie:Module appelé par un autre module]]
</includeonly>