Les templates sont des fichiers textes encodés en UTF8 portant l'extension tpl. Chaque template peut contenir plusieurs pages wiktionnary et permet la création de toutes les flexions en une seule fois. Le module d'importation de Fenkysbot ne fait que créer des nouvelles pages dans le wiktionnaires, il ne modifie pas les pages déjà existantes. Un template ne peut donc pas se cantonner à une catégorie grammaticale mais il doit contenir toutes les formes possible du mot traité. Par exemple, un certain nombre de participe passé (flexions de verbes) sont également des adjectifs, il faut donc prévoir un template verbe, un template adjectif mais aussi un template combiné adjectif + verbes pour les cas mixtes.
Une page dans le template est de la forme :
{{--start--}} '''MOT''' Contenu de la page {{--stop--}}
Les balises start et stop repèrent le début et la fin de la page. Tout ce qui n'est pas entre ces balises ne sera pas integré au wiktionnaire. Il peut y avoir plusieurs balises start/stop dans un template, chacune aboutissant à la création d'une page.
La balise start est suivit du nom de la page encadré de trois simples quotes. Ce mot ne sera pas intégré non plus au wiktionnaire, mais il donnera son nom à la page qui sera crée. Attention, si ce nom est oublié, le premier texte entre trois quote de la page sera pris comme nom de la page et sera supprimé du texte final.
Le contenu de la page est le contenu tel que vous le rentreriez à la main, en syntaxe wiki.
Les variables sont les parties du template qui seront remplacé par le mot lors du fonctionnement du bot. Elles sont de la forme %NOM%, NOM étant le nom de la variable.
Par exemple : Soit le template :
ns=%R% - np=%R%uri - as=%R%ul - ap=%R%urile
Si lors de l'execution du bot on définit R=cort, on obtiendra
ns=cort - np=corturi - as=cortul - ap=corturile
Avec R=lac, il donnera
ns=lac - np=lacuri - as=lacul - ap=lacurile
On peut mettre plusieurs variables dans un seul template.
ms=%R% - mp=%RI%i - fs=%R%ă - fp=%R%a
Avec R=ascult et RI=asculț On obtiendra :
ms=ascult - mp=asculți - fs=ascultă - fp=asculta
Un template complet est constitué d'une série de page encadrées par des balises start et stop, chacune correspondant à une flexion différente de la famille de mot géré par le template.
exemple :
{{-start-}} '''%R%''' == {{=ro=}} == {{-flex-nom-|ro}} '''%R%''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' singulier de'' ]. {{clé de tri|%RD%ul}} {{-stop-}} {{-start-}} '''%R%ul''' == {{=ro=}} == {{-flex-nom-|ro}} '''%R%ul''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' articulé singulier de'' ]. {{clé de tri|%RD%ul}} {{-stop-}} {{-start-}} '''%RI%i''' == {{=ro=}} == {{-flex-nom-|ro}} '''%RI%i''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' pluriel de'' ]. {{clé de tri|%RID%i}} {{-stop-}} {{-start-}} '''%RI%ii''' == {{=ro=}} == {{-flex-nom-|ro}} '''%RI%ii''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' articulé pluriel de'' ]. {{clé de tri|%RID%ii}} {{-stop-}}
En définissant R, RD et RID à cumnat RI à cumnaț, on obtient après conversion le fichier suivant qui après import dans le wiktionnaire donnera 4 pages : cumnat, cumnatul, cumnați et cumnații.
{{-start-}} '''cumnat''' == {{=ro=}} == {{-flex-nom-|ro}} '''cumnat''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' singulier de'' ]. {{clé de tri|%RD%ul}} {{-stop-}} {{-start-}} '''cumnatul''' == {{=ro=}} == {{-flex-nom-|ro}} '''cumnatul''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' articulé singulier de'' ]. {{clé de tri|%RD%ul}} {{-stop-}} {{-start-}} '''cumnați''' == {{=ro=}} == {{-flex-nom-|ro}} '''cumnați''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' pluriel de'' ]. {{clé de tri|%RID%i}} {{-stop-}} {{-start-}} '''cumnații''' == {{=ro=}} == {{-flex-nom-|ro}} '''cumnații''' {{pron||ro}} {{m}} {{s}} # ''Cas ''{{nominatif|ro}}'' et ''{{accusatif|ro}}'' articulé pluriel de'' ]. {{clé de tri|%RID%ii}} {{-stop-}}