Aide:Comment mettre en ligne les résultats sportifs

Une nouvelle de Wikinews, la source d'informations que vous pouvez écrire.
Aller à : Navigation, rechercher

Sommaire

Avant-propos [modifier]

Tout contributeur sur les projets mediawiki connaissent les affres du code wiki qui certes est bien plus simple que le htmp, mais qui peut s'avérer fastidieux pour ceux qui veulent publier des résultats sportifs. Il faut d'abord créer un tableau de résultat, avec les scores, les noms de clubs, leurs liens vers Wikipédia, le cas échéant. Et puis vient le classement général, encore plus fastidieux en répétant les noms de clubs en autant de ligne qu'il y a de formations engagées dans la compétition. Pour le championnat de France de football, il faut répéter cela 38 fois dans l'année. Pour peu que vous vous passionniez au championnat de ligue 2, votre calvaire se multiplie par 2.

Et encore, le football, c'est de la franche rigolade si on le compare avec le rugby à 15. Il faut tenir compte, en plus, du bonus défensif et du bonus offensif. Pour peu que vous fassiez vous-même le classement, ce que je recommande, vous verrez que retranscrire le tableau en code wiki, relève du parcours du combattant. Aussi, les développeurs ont conçu des modèles avec des parseurs qui simplifient la tâche d'une manière singnificative. Mais ce n'est pas suffisant pour un tableau de classement ou de résultats. Pour peu que vous contribuiez sur les projets catalans ou portugais, votre calvaire ne fait que commencer.

Aussi, ce tutoriel préconise l'utilisation des scripts du logiciel vim, qui s'avérera très utile. Cet éditeur de texte en ligne de commande, est l'un des plus puissant en la matière, et recèle des richesses inexploitées.

La création des modèle [modifier]

Un bon wikinewsien sportif devra, à moins qu'il préfère les anti-dépresseurs, créer des modèles pour mettre en forme les résultats sportifs.

Le modèle club [modifier]

Ce modèle permet de wikifier un nom de club en fonction du paramètre inséré. Prenons un cas extrême, le rugby à XV, car il recèle une grande partie des cas de figure.

Dans un premier temps, on crée le modèle {{Club Top 14}}. Celui-ci contient la liste de tous les clubs du Top 14, et les différents paramétrage. Ce modèle devra être « substé » pour une raison bien simple, la liste change en fin de saison. Omettre une telle exigence modifierait les pages des saisons précédentes. Pour plus de commodité, on peut éditer un bouton dans la barre Mediawiki ce qui est plus que conseillé.

Ainsi, si on veut parle du Stade toulousain, on écrira {{subst:Club Top 14|14|}}, le second paramètre servant de mise en forme. Voir le mode d'emploi du modèle. Cela donnera Stade Toulousain.

Si vous voulez suivre d'autres championnats, on créera autant de modèles.


Le modèle tableau de résultat [modifier]

Cas général [modifier]

Le deuxième modèle qui est indispensable, est le modèle qui concerne les résultats. Il devra se remplir simplement et surtout rapidement. L'aide des parseurs s'avère indispensable. Il peut être utilisé pour plusieurs championnat,les parseurs vont simplifier la saisie. Ainsi, au lieu de recopier le nom du club en appelant à chaque fois le modèle associé, les parseurs vont permettre de sélectionner le championnat, et le club en question sans avoir à saisir tout à la fois.

Prenons le Top 14. Bien que le modèle {{Résultat top 14}} présente jusqu'à 8 lignes, mais nous ne saisirons que les 7 premières, la huitième est réservée pour la Pro D2.


{{subst:Résultat top 14
|1= 
|2= 
|match1= |bo1=|off1=|def1=
|match1a=|bo1a=|off1a=|def1a=
|horaire1=
|sc1=
|sc1a=
|match2= |bo2=|off2=|def2=
|match2a= |bo2a=|off2a=|def2a=
|horaire2=
|sc2=
|sc2a=
|match3= |bo3=|off3=|def3=
|match3a= |bo3a=|off3a=|def3a=
|horaire3=
|sc3=
|sc3a=
|match4= |bo4=|off4=|def4=
|match4a= |bo4a=|off4a=|def4a=
|horaire4=
|sc4=
|sc4a=
|match5= |bo5=|off5=|def5=
|match5a= |bo5a=|off5a=|def5a=
|horaire5=
|sc5=
|sc5a=
|match6= |bo6=|off6=|def6=
|match6a= |bo6a=|off6a=|def6a=
|horaire6=
|sc6=
|sc6a=
|match7= |bo7=|off7=|def7=
|match7a= |bo7a=|off7a=|def7a=
|horaire7=
|sc7=
|sc7a=
|match8= |bo8=|off8=|def8=
|match8a= |bo8a=|off8a=|def8a=
|horaire8=
|sc8=
|sc8a=
<!--bye= L'équipe du Super 15 dispensée de rencontre-->
<!--bye3= Les trois équipes du Super 15 dispensées de rencontre-->
}}


L'astuce consiste à inscrire la journée dans le paramètre 1, et le code championnat dans le n° 2. Ainsi, il suffira de saisir uniquement le nombre associé au club, en y indiquant les différents points de bonus. le parseur appellera le modèle {{Club Top 14}}, si le code 1 est insérant dans le paramètre 2. Il appellera le {{Club Pro D2}} pour le code 2, {{Club Super 15}} pour le code 5.

Exemple [modifier]

Ainsi, prenons une journée fictive :

Code source [modifier]
{{subst:Résultat top 14
|1= 5
|2= 8
|match1=1 |bo1=|off1=|def1=
|match1a=2|bo1a=|off1a=|def1a=
|horaire1=
|sc1=18
|sc1a=16
|match2=3 |bo2=|off2=|def2=y
|match2a=4 |bo2a=|off2a=|def2a=y
|horaire2=
|sc2=31
|sc2a=27
|match3=5 |bo3=|off3=|def3=y
|match3a=6 |bo3a=|off3a=|def3a=y
|horaire3=
|sc3=15
|sc3a=16
|match4=7 |bo4=y|off4=|def4=y
|match4a=8 |bo4a=|off4a=|def4a=y
|horaire4=
|sc4=41
|sc4a=12
|match5=9 |bo5=|off5=y|def5=y
|match5a=10 |bo5a=|off5a=y|def5a=y
|horaire5=
|sc5=
|sc5a=
|match6=11 |bo6=|off6=y|def6=y
|match6a=12 |bo6a=|off6a=y|def6a=y
|horaire6=
|sc6=21
|sc6a=3
|match7=13 |bo7=o|off7=y|def7=y
|match7a=14 |bo7a=|off7a=y|def7a=y
|horaire7=
|sc7=14
|sc7a=19
|match8= |bo8=|off8=|def8= <!--Inutile pour le Top 14-->
|match8a= |bo8a=|off8a=|def8a= <!--Inutile pour le Top 14-->
|horaire8= <!--Inutile pour le Top 14-->
|sc8= <!--Inutile pour le Top 14-->
|sc8a= <!--Inutile pour le Top 14-->
<!--bye= L'équipe du Super 15 dispensée de rencontre-->
<!--bye3= Les trois équipes du Super 15 dispensées de rencontre-->
}}
rendu [modifier]
Résultats complets de la 8ème journée du Top 14
SU Agen 18 – 16 Aviron Bayonnais[1]
Biarritz Olympique 31 – 27 US Bordeaux Bègles[1]
CA Brive-Corrèze 16 – 16 Castres Olympique
Clermont Auvergne[2] 41 – 12 Lyon OL U
Montpellier HRC 16 – 31 USA Perpignan[2]
Racing Métro 92 21 – 3 Stade Français
Rugby club toulonnais[1][2] 14 – 19 Stade Toulousain


Notes

Le fait d'inscrire le code du club et le score permet de calculer le point du bonus défensif automatiquement. Pour le bonus offensif, il faut le mentionner (voir l'aide pour ce modèle).

La rédaction d'un tableau de résultat s'en trouve simplifiée à condition de maîtriser les outils wikis à la perfection.

Le classement général [modifier]

Le classement général est plus délicat, il nécessite l'utilisation d'applications externe pour sa mise en forme. L'une des voies consiste à créer soi-même un classement sur tableur, sur Openoffice par exemple. Si le classement d'un championnat de football peut se faire rapidement, il est un tantinet plus compliqué pour le rugby. Déjà, l'addition des scores dans le goal average nécessite un peu de calcul mental, à ceci il faut inclure les différents points de bonus. Le tableau de résultat créé ci-dessous permettra de les repérer plus facilement. Prenons le classement général du Top 14 à l'issue de la neuvième journée de la saison 2011-2012. Voici ce que donne sur OpenOffice :

La difficulté est de l'inclure dans un tableau préformaté mais vide. C'est là que vim intervient.

Tableur sur LibreOffice [modifier]

Capture d'écran

Voici ce que donne le tableau au sujet du classement général :

Une colonne retiendra notre attention, c'est celle intitulée code. Il s'agit du paramètre 1 du modèle {{Club Top 14}} qui servira à la mise en forme du classement général dans mediawiki.

La colonne Pén. concerne les pénalités en points de terrains, et match indique le classement préférentiel en cas d'égalité de points de terrain. Mais, pour le profane, cela n'a guère d'intérêt.

Tableau vide [modifier]

La deuxième étape consiste à utiliser un tableau vide de classement général. Les modèles préexistent, il faut appeler le modèle selon la syntaxe suivante {{subst:Classement top 14|je mets n'importe quoi}}. Le paramètre 1 doit comporter n'importe quel caractère. ce qui donne en code source :

{| border="1px" align="center" cellpadding="5px" cellspacing="0" 
|-align="center" bgcolor="#cccccc"
!colspan="11" width="70%" border="1px"| Classement général du top 14
|-
! Class.!! Club!! Pts!! J!! G!! N!! P!! B!! pp!! pc!! +-
|- style="background-color:#F0F0FF;"
| 1. 
|- style="background-color:#F0F0FF;"
| 2.
|- style="background-color:#FFF0E0;"
| 3.
|- style="background-color:#FFF0E0;"
| 4.
|- style="background-color:#FFF0E0;"
| 5.
|- style="background-color:#FFF0E0;"
| 6.
|- {{ligne grise}}
| 7.
|-
| 8.
|-{{ligne grise}}
| 9.
|-
| 10.
|-{{ligne grise}}
| 11.
|-
| 12.
|- style="background-color:#FFE0E0;"
| 13.
|- style="background-color:#FFE0E0;"
| 14.
|+ <div align="center" style="font-size:0.8em; color:#2233FF; padding:1em;">  Source : Wikinews</div>
|}

Pour une utilisation optimale de ce patron, je conseille vivement de le saugarder comme fichier texte sur le disque dur. Ainsi, on donnera le nom de « t14 ».

Utilisation de Vim [modifier]

Les Commandes [modifier]

Plage à copier sur LibreOffice.

Ceci est une solution parmi tant d'autres. Ouvrez une fenêtre vierge Vim, ou GVim. Il suffit d'inclure, en premier, le tableau vierge. Soit on le copie depuis Wikinews ou mieux, il est déjà sauvegarder sur votre disque dur. S'il se nomme « t14 », nous lanceront la commande suivante : :r [chemin]/t14 pour les utilisateurs de Linux. On supprimera la première ligne qui est vierge en s'y positionnant et en tapant dd. On se positionnera par la suite à la fin du fichier (G) et on créera une ligne vierge le cas échéant (o).

On copiera le tableau depuis LibreOffice et on le collera à la fin du fichier par la commande "+gP. On ne copiera qu'à partir de la colonne « code » jusqu'à la colonne « diff ».

Voici ce que cela donne dans Vim :

Aperçu dans Vim

À l'aide d'un script vim, on insère la copie du classement dans le tableau vierge. Sélectionnez d'abord les 14 lignes en question (voir l'aide concernant vim.). Puis on lance la fonction de classement général par :

  • call Classement
  • Sélectionner la langue (1 : le français).
  • Sélectionner le championnat : Top 14
  • Sélectionner l'emplacement du premier au classement. Il s'agit soit de la ligne 7, soit de la ligne 8 dans vim.

Le formatage est terminé. Il s'agit de le recopier. On se positionnera en début de fichier par la commande gg. Ensuite on sélectionne le fichier ainsi mis en forme : VG"+y. On le colle dans la fenêtre Mediawiki.

Code source du script Vim [modifier]

Pour les utilisateurs de Linux, on créera un fichier ~/.vim/plugin/nom_de_ficher.vim avec le code source suivant :

"********************************************
"Classements sportifs du Football et du Rugby
"********************************************
 
function Classement() range 
let langue = inputlist(['Choisissez le projet : ', '1. Français', '2. Catalan', '3. Portuguais'])
let rouge = {'1' : 'Rouge', '2' : 'Vermell', '3' : 'Vermelho'}
if str2nr(langue) <1
        return
elseif str2nr(langue) > 3
        return
endif 
if langue == 1
let choix  = inputlist(['Choisissez la compétition : ', '1. Club foot ligue 1', '2. Club foot ligue 2', '3. Club Top 14', '4. Club Pro D2', '5. Club du Super 15 de l’hémisphère sud', '6. Club du Premiership d’Angleterre', '7. Club de la Ligue celtique', '8. Pays du Tournoi des VI Nations', '9. Pays du Tournois des Quatre Nations', '10. Club foot Espagne'])
let sport = {'1' : 'Club Foot L1', '2' : 'Club Foot L2', '3' : 'Club Top 14', '4' : 'Club Pro D2', '5' : 'Club Super 15', '6' : 'Club Premiership', '7' : 'Club Ligue celtique', '8' : 'Pays 6 Nations', '9' : 'Pays Quatre Nations', '10' : 'Club Foot Espagne'}
let finoption = 10
let drapeau = choix
elseif langue == 2
let choix  = inputlist(['Choisissez la compétition : ', '1. Club Top 14', '2. Club Pro D2', '3. Club du Super 15 de l’hémisphère sud', '4. Club du Premiership d’Angleterre', '5. Club de la Ligue celtique', '6. Tournoi des 6 Nations', '7. Tournoi des Quatre Nations', '8. Club foot Espagne', '9. Club foot France L1', '10. Club foot France L2'])
let sport = {'1' : 'Club Top 14', '2' : 'Club Pro D2', '3' : 'Club Super 15', '4' : 'Club Premiership', '5' : 'Club Lliga cèltica', '6' : 'País Sis Nacions', '7' : 'País Quatre Nacions', '8' : 'Club Futbol Espanya', '9' : 'Club Futbol L1', '10' : 'Club Futbol L2'}
let finoption = 10
let drapeau = choix + 2
elseif langue == 3
let choix  = inputlist(['Choisissez la compétition : ', '1. Club Top 14', '2. Club Pro D2', '3. Club du Super 15 de l’hémisphère sud', '4. Club du Premiership d’Angleterre', '5. Club de la Ligue celtique', '6. Pays 6 Nations', '7. Tournoi Quatre Nations', '8. Championnat football Ligue 1', '9. Championnat football Ligue 2', '10. Championnat Espagne football'])
let sport = {'1' : 'Club Top 14', '2' : 'Club Pro D2', '3' : 'Club Super 15', '4' : 'Club Premiership', '5' : 'Club Celtic League', '6' : 'País Seis Nações', '7' : 'País Quatro Nações', '8' : 'Clube Futebol L1', '9' : 'Clube Futebol L2', '10' : 'Clube Futebol Espanha' }
let finoption = 10
let drapeau = choix + 2
endif
if str2nr(choix) < 1 
return
elseif  str2nr(choix)> finoption
return
endif
if drapeau == 5
let param = 4
elseif drapeau == 8
let param = 4
elseif drapeau == 9
let param = 4
elseif drapeau == 7
let param = 4
else
let param = 1
endif
let lnum = a:firstline
while lnum <= a:lastline
let line = getline(lnum) 
let remp = substitute (line, '\(.*[0-9]\)','|\1',"ge")
let remp = substitute  (remp, '\t', '||',"ge")
let remp = substitute (remp, '\(-..[0-9^|]\)||','{{'.rouge[langue].'|\1}}||',"ge")
let remp = substitute (remp, '\(-.[0-9^|]\)||','{{'.rouge[langue].'|\1}}||',"ge")
let remp = substitute (remp, '\(-[0-9^|]\)||','{{'.rouge[langue].'|\1}}||',"ge")
let remp = substitute (remp, '||\(-.*[0-9]\)','||{{'.rouge[langue].'|\1}}',"ge")
let remp = substitute (remp, '|\(\_[^|]*\)','|{{subst:'.sport[choix].'|\1|'.param.'}}', "")
call setline (lnum, remp)
let lnum = lnum + 1
endwhile
let lnum = a:firstline
let lfin = a:lastline
let tab = input("Ligne du tableau : ")
while lnum <= lfin
let line = getline(lnum)
call append(tab, line)
let tab = tab + 3
let lnum = lnum +2
let lfin = lfin +1
endwhile
let dl = a:lastline + 1
let fl = 2 * a:lastline - a:firstline + 1
call SupLignes(dl , fl)
endfunction
 
"***************************************************"
"SUPPRESSION DES LIGNES POUR LES UTILITAIRES EN COURS
"***************************************************"
 
function SupLignes (dl, fl)
let lnum = a:dl
let lfin = a:fl
call setpos('.',[0, lnum , 1, lnum])
while lnum <= lfin
:delete
let lnum +=1
endwhile
endfunction

Internationalisation du code [modifier]

Traduction des tableaux de résultats et de classement [modifier]

Si vous voulez utiliser le code dans d'autres langues, il suffit d'adapter le tout grâce à un script vim. Prenez le classement du rugby en catalan et en portugais. Pour les résultats, on copiera le patron du modèle en question dans vim et on lancera la commande pour la traduction en catalan.

Exemple : :Call Tab_result_ca

On traduira, par la suite du catalan en portugais : :Call Tab_result_pt

code source à inclure dans Vim

" Remplacement des données
 
function Tab_result_ca()
:%s/Texte/Text/ge
:%s/Lundi à \(.*[0-9]\) h /Dilluns a les \1:/ge
:%s/Mardi à \(.*[0-9]\) h /Dimars a les \1:/ge
:%s/Mercredi à \(.*[0-9]\) h /Dimecres a les \1:/ge
:%s/Jeudi à \(.*[0-9]\) h /Dijous a les \1:/ge
:%s/Vendredi à \(.*[0-9]\) h /Divendres a les \1:/ge
:%s/Samedi à \(.*[0-9]\) h /Dissabte a les \1:/ge
:%s/Dimanche à \(.*[0-9]\) h /Diumenge a les \1:/ge
:%s/horaire/hora/ge
:%s/Résultat/Resultat/ge
:%s/phase/fase/ge
:%s/Pays 6 Nations/País Sis Nacions/ge
:%s/Pays Quatre Nations/País Quatre Nacions/ge
endfunction
 
function Tab_result_pt()
:%s/Text/Texto/ge
:%s/Dilluns a les/Segunda-feira ás/ge
:%s/Dimars a les/Terça-feira ás/ge
:%s/Dimecres a les/Quarta-feira ás/ge
:%s/Dijous a les/Quinta-feira ás/ge
:%s/Divendres a les/Sexta-feira ás/ge
:%s/Dissabte a les/Sábado ás/ge
:%s/Diumenge a les/Domingo ás/ge
:%s/Resultat/Resultado/ge
:%s/País Sis Nacions/País Seis Nações/ge
:%s/País Quatre Nacions/País Quatro Nações/ge
endfunction
 
function Score_ca()
:%s/Pénalité/Càstig/ge
:%s/Essai/Assaig/ge
:%s/Carton jaune/Targeta groga/ge
:%s/Carton rouge/Targeta vermella/ge
:%s/but/gol/ge
:%s/Résultat-sport/Resultat-esport/ge
:%s/date/data/ge
:%s/équipe/equip/ge
:%s/résultat/resultat/ge
:%s/rapport/crònica/ge
:%s/stade/estadi/ge
:%s/affluence/assistència/ge
:%s/arbitre/àrbitre/ge
:%s/drapeau/bandera/ge
:%s/Groupe/Grup/ge
:%s/M\. /Sr. /ge
:%s/Coup de poing/Cop du puny/ge
:%s/Faute volontaire/Falta voluntària/ge
:%s/Obstruction/Obstrucció/ge
:%s/non joué/no jugat/ge
:%s/Club Foot/Club Futbol/ge
:%s/But/Gol/ge
:%s/largeur/amplada/ge
:%s/Stade/Estadi/ge
:%s/Titulaires/Titulars/ge
:%s/Remplaçants/Substituts/ge
:%s/[N|n]oir/Negre/ge
call Pays_rugby_ca()
call Date_ca()
endfunction
 
function Score_pt()
:%s/Assaig/Ensaio/ge
:%s/Càstig/Penalidade/ge
:%s/Drop/Ressalto/ge
:%s/Targeta groga/Cartão amarelo/ge
:%s/Targeta vermella/Cartão vermelho/ge
:%s/Resultat-esport/Partida de Rugby/ge
:%s/bandera/bandeira/ge
:%s/resultat/resultado/ge
:%s/crònica/crónica/ge
:%s/estadi/estádio/ge
:%s/assistència/espectador/ge
:%s/àrbitre/árbitros/ge
:%s/Grup/Grupo/ge
:%s/{{Clr}}/{{Clear}}/ge
:%s/Cop du puny/Soco/ge
:%s/Falta voluntària/Falta voluntária/ge
:%s/Obstrucció/Obstrução/ge
:%s/no jugat/não jugada/ge
:%s/Club Futbol/Clube Futebol/ge
:%s/amplada/largura/ge
:%s/Estadi/Estádio/ge
call Pays_rugby_pt()
call Date_pt()
endfunction
 
function Pays_rugby_ca()
:%s/France/França/ge
:%s/Angleterre/Anglaterra/ge
:%s/Pays de Galles/Gal·les/ge
:%s/Écosse/Escòcia/ge
:%s/Italie/Itàlia/ge
:%s/Nouvelle-Zélande/Nova Zelanda/ge
:%s/Australie/Austràlia/ge
:%s/Afrique du Sud/Sud-àfrica/ge
:%s/Japon/Japó/ge
:%s/Irlande du Nord/Irlanda del Nord/ge
:%s/{{Irlande/{{Irlanda del Sud/ge
:%s/Argentine/Argentina/ge
:%s/Géorgie/Geòrgia/ge
:%s/Fidji/Fiji/ge
:%s/Irlande/Irlanda/ge
:%s/Canada/Canadà/ge
:%s/Espagne/Espanya/ge
:%s/bandera\([1-2]\)=França/bandera\1=France/ge
endfunction
 
function Pays_rugby_pt()
:%s/Anglaterra/Inglaterra/ge
:%s/Gal·les/País de Gales/ge
:%s/Escòcia/Escócia/ge
:%s/Itàlia/Itália/ge
:%s/Nova Zelanda/Nova Zelândia/ge
:%s/Austràlia/Austrália/ge
:%s/Sud-àfrica/África do Sul/ge
:%s/Japó/Japão/ge
:%s/Irlanda del Nord/Irlanda do Norte/ge
:%s/Irlanda del Sud/República da Irlanda/ge
:%s/Geòrgia/Geórgia/ge
:%s/Canadà/Canadá/ge
:%s/Espanya/Espanha/ge
endfunction
 
function Date_ca()
:%s/ janvier / de gener del /ge
:%s/ février / de febrer del /ge
:%s/ mars / de març del /ge
:%s/ avril / d'abril del /ge
:%s/ mai / de maig del /ge
:%s/ juin / de juny del /ge
:%s/ juillet / de juliol del /ge
:%s/ août / d'agost del /ge
:%s/ septembre / de setembre del /ge
:%s/ octobre / d'octubre del /ge
:%s/ novembre / de novembre del /ge
:%s/ décembre / de desembre del /ge
endfunction
 
function Date_pt()
:%s/de gener del/de janeiro de/ge
:%s/de febrer del/de fevereiro de/ge
:%s/de març del/de março de/ge
:%s/d'abril del/de abril de/ge
:%s/de maig del/de maio de/ge
:%s/de juny del/de junho de/ge
:%s/de juliol del/de julho de/ge
:%s/d'agost del/de agosto de/ge
:%s/de setembre del/de setembro de/ge
:%s/d'octubre del/de outubro de/ge
:%s/de novembre del/de novembro de/ge
:%s/de desembre del/de dezembre de/ge
endfunction

Les résultats sportifs [modifier]

Présentation [modifier]

Il s'agit des résultats par rencontre retranscrit dans le modèle {{Résultat-sport}}. Prenons un match international fictif de rugby à 15 :

15 septembre 2011
Nouvelle-Zélande Nouvelle-Zélande 33 – 16 Angleterre Angleterre Eden Park, Auckland
Affluence : 52 174 spectateurs
Arbitre : M. Romain Poite Flag of France.svg
Pénalité marquée après 3 minutes 3' Carter

 Essai inscrit après 15 minutes 15' Nonu
Pénalité marquée après 16 minutes 16' (Transf.)
Pénalité marquée après 28 minutes 28' Carter
 Drop inscrit après 34 minutes 34' Cruden
 Essai inscrit après 48 minutes 48' Dagg
Pénalité marquée après 49 minutes 49' (Transf.)
Pénalité marquée après 68 minutes 68' Carter
 Essai inscrit après 78 minutes 78' Thorn
Pénalité marquée après 79 minutes 79' (Transf.)

Pénalité marquée après 10 minutes 10' Wilkinson

 Drop inscrit après 18 minutes 18' Wilkinson
 Essai inscrit après 48 minutes 48' Tuilagi
Pénalité marquée après 49 minutes 49' (Transf.) Wilkinson
Pénalité marquée après 71 minutes 71' Wilkinson

Le code source est le suivant :

{{Résultat-sport
|date=15 septembre 2011
|équipe1=Nouvelle-Zélande
|drapeau1=New Zealand
|résultat=33 – 16
|équipe2=Angleterre
|drapeau2=England
|rapport=http://irb.com
|buts1={{Pénalité|3|}} Carter<br/>
{{Essai|15|}} Nonu<br/>
{{Pénalité|16|Transf.}} <br/>
{{Pénalité|28|}} Carter<br/>
{{Drop|34|}} Cruden<br/>
{{Essai|48|}} Dagg<br/>
{{Pénalité|49|Transf.}} <br/>
{{Pénalité|68|}} Carter<br/>
{{Essai|78|}} Thorn<br/>
{{Pénalité|79|Transf.}} <br/>
|buts2={{Pénalité|10|}} Wilkinson<br/>
{{Drop|18|}} Wilkinson<br/>
{{Essai|48|}} Tuilagi<br/>
{{Pénalité|49|Transf.}} Wilkinson<br/>
{{Pénalité|71|}} Wilkinson<br/>
|stade=Eden Park, Auckland
|affluence=52174
|arbitre=M. Romain Poite {{France|2}}
}}

Le calvaire commence quand il faut traduire cela en catalan et puis en portugais. Les scripts vim seront là pour simplifier la tâche.

Les scripts vim [modifier]

La méthode la plus simple consiste donc à traduire du français vers le catalan, et du catalan vers le portugais. on ajoutera dans un fichier avec l'extension .vim comme par exemple ~/.vim/plugin/rugby.vim pour les utilisateurs de Linux.

function Tab_result_ca()
:%s/Texte/Text/ge
:%s/Lundi à \(.*[0-9]\) h /Dilluns a les \1:/ge
:%s/Mardi à \(.*[0-9]\) h /Dimars a les \1:/ge
:%s/Mercredi à \(.*[0-9]\) h /Dimecres a les \1:/ge
:%s/Jeudi à \(.*[0-9]\) h /Dijous a les \1:/ge
:%s/Vendredi à \(.*[0-9]\) h /Divendres a les \1:/ge
:%s/Samedi à \(.*[0-9]\) h /Dissabte a les \1:/ge
:%s/Dimanche à \(.*[0-9]\) h /Diumenge a les \1:/ge
:%s/horaire/hora/ge
:%s/Résultat top 14/Resultat Top 14/ge
endfunction
 
function Tab_result_pt()
:%s/Text/Texto/ge
:%s/Dilluns a les/Segunda-feira ás/ge
:%s/Dimars a les/Terça-feira ás/ge
:%s/Dimecres a les/Quarta-feira ás/ge
:%s/Dijous a les/Quinta-feira ás/ge
:%s/Divendres a les/Sexta-feira ás/ge
:%s/Dissabte a les/Sábado ás/ge
:%s/Diumenge a les/Domingo ás/ge
:%s/Resultat Top 14/Resultado Top 14/ge
endfunction
 
function Score_ca()
:%s/Pénalité/Càstig/ge
:%s/Essai/Assaig/ge
:%s/Carton jaune/Targeta groga/ge
:%s/Carton rouge/Targeta vermella/ge
:%s/but/gol/ge
:%s/Résultat-sport/Resultat-esport/ge
:%s/date/data/ge
:%s/équipe/equip/ge
:%s/résultat/resultat/ge
:%s/rapport/crònica/ge
:%s/stade/estadi/ge
:%s/affluence/assistència/ge
:%s/arbitre/àrbitre/ge
:%s/drapeau/bandera/ge
:%s/Groupe/Grup/ge
:%s/M\. /Sr. /ge
:%s/Coup de poing/Cop du puny/ge
:%s/Faute volontaire/Falta voluntària/ge
:%s/non joué/no jugat/ge
call Pays_rugby_ca()
call Date_ca()
endfunction
 
function Score_pt()
:%s/Assaig/Ensaio/ge
:%s/Càstig/Penalidade/ge
:%s/Drop/Ressalto/ge
:%s/Targeta groga/Cartão amarelo/ge
:%s/Targeta vermella/Cartão vermelho/ge
:%s/Resultat-esport/Partida de Rugby/ge
:%s/bandera/bandeira/ge
:%s/resultat/resultado/ge
:%s/crònica/crónica/ge
:%s/estadi/estádio/ge
:%s/assistència/espectador/ge
:%s/àrbitre/árbitros/ge
:%s/Grup/Grupo/ge
:%s/{{Clr}}/{{Clear}}/ge
:%s/Cop du puny/Soco/ge
:%s/Falta voluntària/Falta voluntária/ge
:%s/no jugat/na jugada/ge
call Pays_rugby_pt()
call Date_pt()
endfunction
 
function Pays_rugby_ca()
:%s/France/França/ge
:%s/Angleterre/Anglaterra/ge
:%s/Pays de Galles/Gal·les/ge
:%s/Écosse/Escòcia/ge
:%s/Italie/Itàlia/ge
:%s/Nouvelle-Zélande/Nova Zelanda/ge
:%s/Australie/Austràlia/ge
:%s/Afrique du Sud/Sud-àfrica/ge
:%s/Japon/Japó/ge
:%s/Irlande du Nord/Irlanda del Nord/ge
:%s/{{Irlande/{{Irlanda del Sud/ge
:%s/Argentine/Argentina/ge
:%s/Géorgie/Geòrgia/ge
:%s/Fidji/Fiji/ge
:%s/Irlande/Irlanda/ge
:%s/Canada/Canadà/ge
endfunction
 
function Pays_rugby_pt()
:%s/Anglaterra/Inglaterra/ge
:%s/Gal·les/País de Gales/ge
:%s/Escòcia/Escócia/ge
:%s/Itàlia/Itália/ge
:%s/Nova Zelanda/Nova Zelândia/ge
:%s/Austràlia/Austrália/ge
:%s/Sud-àfrica/África do Sul/ge
:%s/Japó/Japão/ge
:%s/Irlanda del Nord/Irlanda do Norte/ge
:%s/Irlanda del Sud/República da Irlanda/ge
:%s/Geòrgia/Geórgia/ge
:%s/Canadà/Canadá/ge
endfunction
 
function Date_ca()
:%s/ janvier / de gener del /ge
:%s/ février / de febrer del /ge
:%s/ mars / de març del /ge
:%s/ avril / d'abril del /ge
:%s/ mai / de maig del /ge
:%s/ juin / de juny del /ge
:%s/ juillet / de juliol del /ge
:%s/ août / d'agost del /ge
:%s/ septembre / de setembre del /ge
:%s/ octobre / d'octubre del /ge
:%s/ novembre / de novembre del /ge
:%s/ décembre / de desembre del /ge
endfunction
 
function Date_pt()
:%s/de gener del/de janeiro de/ge
:%s/de febrer de/lde fevereiro de/ge
:%s/de març del/de março de/ge
:%s/d'abril del/de abril de/ge
:%s/de maig del/de maio de/ge
:%s/de juny del/de junho de/ge
:%s/de juliol del/de julho de/ge
:%s/d'agost del/de agosto de/ge
:%s/de setembre del/de setembro de/ge
:%s/d'octubre del/de outubro de/ge
:%s/de novembre del/de novembro de/ge
:%s/de desembre del/de dezembre de/ge
endfunction

Utilisation [modifier]

Une fois le modèle {{Résultat-sport}} renseigné, on copie le code dans une fenêtre vim.

On lance la commande :call Score_ca(). On corrige les différentes erreurs liées à la traduction (France sera traduit par Français dans le paramètre drapeau[1 ou 2]. Cela donnera le code suivant pour le projet catalan :

{{Resultat-esport
|data=15 de setembre del 2011
|equip1=Nova Zelanda
|bandera1=New Zealand
|resultat=33 – 16
|equip2=Anglaterra
|bandera2=England
|crònica=http://irb.com
|gols1={{Càstig|3|}} Carter<br/>
{{Assaig|15|}} Nonu<br/>
{{Càstig|16|Transf.}} <br/>
{{Càstig|28|}} Carter<br/>
{{Drop|34|}} Cruden<br/>
{{Assaig|48|}} Dagg<br/>
{{Càstig|49|Transf.}} <br/>
{{Càstig|68|}} Carter<br/>
{{Assaig|78|}} Thorn<br/>
{{Càstig|79|Transf.}} <br/>
|gols2={{Càstig|10|}} Wilkinson<br/>
{{Drop|18|}} Wilkinson<br/>
{{Assaig|48|}} Tuilagi<br/>
{{Càstig|49|Transf.}} Wilkinson<br/>
{{Càstig|71|}} Wilkinson<br/>
|estadi=Eden Park, Auckland
|assistència=52174
|àrbitre=Sr. Romain Poite {{França|2}}
}}

Pour le projet portugais, on reprend le code en catalan ci-dessus et on lance :call Score_pt() et on corrige les éventuelles erreurs.

{{Partida de Rugby
|data=15 de setembro de 2011
|equip1=Nova Zelândia
|bandeira1=New Zealand
|resultado=33 – 16
|equip2=Inglaterra
|bandeira2=England
|crónica=http://irb.com
|gols1={{Penalidade|3|}} Carter<br/>
{{Ensaio|15|}} Nonu<br/>
{{Penalidade|16|Transf.}} <br/>
{{Penalidade|28|}} Carter<br/>
{{Ressalto|34|}} Cruden<br/>
{{Ensaio|48|}} Dagg<br/>
{{Penalidade|49|Transf.}} <br/>
{{Penalidade|68|}} Carter<br/>
{{Ensaio|78|}} Thorn<br/>
{{Penalidade|79|Transf.}} <br/>
|gols2={{Penalidade|10|}} Wilkinson<br/>
{{Ressalto|18|}} Wilkinson<br/>
{{Ensaio|48|}} Tuilagi<br/>
{{Penalidade|49|Transf.}} Wilkinson<br/>
{{Penalidade|71|}} Wilkinson<br/>
|estádio=Eden Park, Auckland
|espectador=52174
|árbitros=Sr. Romain Poite {{França|2}}
}}

Les codes ainsi convertis seront copiés dans les projets respectifs.