Ébauche de modèle:indication de langue : Différence entre versions

De Ekopedia
Aller à : navigation, rechercher
(MediaWiki)
(catégorie)
 
(Une révision intermédiaire par un autre utilisateur non affichée)
Ligne 2 : Ligne 2 :
 
==Évaluation des modèles existants et des modèles WP==
 
==Évaluation des modèles existants et des modèles WP==
 
===[http://commons.wikimedia.org/wiki/Template:Language Template:Language de commons]===
 
===[http://commons.wikimedia.org/wiki/Template:Language Template:Language de commons]===
====MediaWiki====
 
=====Names.php=====
 
Le logiciel '''MediaWiki''', qui fait fonctionner Ékopédia, comporte un fichier [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/Names.php?view=markup names.php] qui établit une liste de codes de langues.<br> À chacun de ces codes correspond sa dénomination dans la langue du code, suivie d'une note donnant sa dénomination en anglais et quelques commentaires.<br>
 
* Exemple : 'bg' => 'Български',    # Bulgarian
 
Ce fichier est utilisé pour les interwikis, les sélecteurs de langue, etc.<br>
 
La modification des codes de ce fichier ne semble pas poser de problème (cf. [http://svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/languages/Names.php?view=markup ligne 4 : <small>Safe to change without running scripts on the respective sites.</small>]) (Leur modification éventuelle via la commande ''$wgExtraLanguageNames'' semblerait être l'outil indiqué. Le problème serait que le renommage entrainerait une classification dans ''Other languages'', mais c'est à vérifier).<br>
 
Pourquoi modifier les codes ?<br>
 
D'une part, la qualité des codes de ''Names.php'' se revèle médiocre :
 
* certains d'entre eux sont erronés (''als'' utilisé pour alémanique alors qu'il s'agit de l'albanais tosque)
 
* d'autres sont obsolètes (''bat-smg'' devenu ''sgs'' (639-3) puis ''zmai'' (639-6)
 
* certaines dénominations sont erronées (''kongo'' à la place de ''kikongo'')
 
* les variantes utilisent un code obsolète (''pt-br'' pour portugais du Brésil (devenu ''brsl'' avec le 639-6)
 
* beaucoup de langues et de dialectes sont manquants
 
D'autre part, le passage à la norme 639-6 est inéluctable pour des raisons pratiques (plus de 450 000 langues, dialectes et variantes couverts ; pour mémoire, le nombre de langues actuelles est de plus de 17 000, auxquelles il faut ajouter les langues mortes, les dialectes et les différentes variantes de type belgicisme).
 
=====Implications pour Ékopédia=====
 
* Nouvelles versions linguistiques d'Ékopédia<br>Ce fichier sert entre autres à installer de nouvelles versions linguistiques. Dans une telle perspective, le passage au 639-6 permet de démarrer ces installations avec des codes immuables.<br>
 
* Codification exacte de toutes les variantes linguistiques
 
* mise en place aisée, car le passage au multilinguisme est somme toute assez récent sur Ékopédia
 
La modification du fichier Names.php fait donc partie du [[Projet:Babel#Modification du fichier Names.php du logiciel MediaWiki]]
 
 
 
==== Utilisation ====
 
==== Utilisation ====
 
Donne le nom de la langue selon le code langue de MediaWiki
 
Donne le nom de la langue selon le code langue de MediaWiki
Ligne 79 : Ligne 59 :
  
 
===[http://fr.wikipedia.org/wiki/Mod%C3%A8le:Langue-local modèle langue local])===
 
===[http://fr.wikipedia.org/wiki/Mod%C3%A8le:Langue-local modèle langue local])===
 +
 +
[[Catégorie:Modèles]]

Version actuelle en date du 2 avril 2011 à 15:27

Cette page est une page de construction de modèle. Toute contribution est la bienvenue. Modéliste en charge : -- Amiteusement Saint amand | d 19 février 2011 à 14:03 (CET)

Évaluation des modèles existants et des modèles WP[modifier]

Template:Language de commons[modifier]

Utilisation[modifier]

Donne le nom de la langue selon le code langue de MediaWiki

  • ne correspond pas toujours à la norme ISO 639
  • la doc renvoie à une page de code de langues avec leurs noms en anglais, mais le modèle n'est pas valable. Il n'est d'ailleurs pas utilisé dans le Template:Language.

Source[modifier]

{{Language/{{Fallback|Language|{{{2|}}}}}|1={{{1|}}}}}<noinclude> {{documentation}} [[Category:Internationalization templates|{{PAGENAME}}]] </noinclude>

Sous-modèle Fallback[modifier]

{{#ifexist: Template:{{{1|}}}/{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}} | {{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}} | {{#ifexist: Template:{{{1|}}}/{{GetFallback|{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}}}} | {{GetFallback|{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}}}} | {{#ifexist: Template:{{{1|}}}/{{GetFallback2|{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}}}} | {{GetFallback2|{{#if: {{{2|}}} |{{{2}}}|{{int:Lang}}}}}} | {{CONTENTLANGUAGE}} }} }} }}<noinclude>

  • utilisé pour déterminer la langue appropriée (de repli) d'un modèle losqu'il s'organise autour de sous-pages linguistiques. La langue de repli choisi
  • paramètre 1 : vide par défaut, mais doit être renseigné avec le nom du modèle concerné par la langue de repli
  • paramètre 2 : valeur de {{int:Lang}}, renseignement optionnel
  • la valeur de {{int:Lang}}= est celle de l'interface utilisateur.

Rendu[modifier]

Exemple de langue : arabe

  • code choisi : ar
  • à rendre dans les langues suivantes (code choisi entre parenthèses) : allemand (de), anglais (en), français (fr)

{{language|ar|de}} → Arabisch
{{language|ar|en}} → Arabic
{{language|ar|fr}} → arabe

Si l'interface utilisateur est en anglais (en), la variable {{int:Lang}}= donne le code langue. cela revient au modèle suivant :

  • {{language/{{Fallback|Language|{{int:Lang}}}}|ar}} → Arabic

Si l'interface utilisateur était en français, {{int:Lang}}= aurait donné fr et affiché "arabe.
Si l'interface utilisateur donne une valeur {{int:Lang}}= imprévue, disons cy (gallois), la langue de repli (fallback language) doit être définie :

Le modèle Fallback comporte deux sous-modèles (GetFallback et Getfallback2) à cet effet.

  • GetFallback comporte une liste de codes {{int:Lang}}= qui renvoient vers une langue de repli.
    • Quand il n'existe pas de renvoi, la langue de repli choisie est ici l'anglais (en) : #default = {{#if: {{{default|}}} | {{{default|}}} | en }}
    • Exemples :
      • l'afrikaans (af) et le néerlandais informel ne sont pas pris en charge, ils sont renvoyés vers le néerlandais (af | nl-informal = nl)
      • les différents dialectes et écritures du chinois sont tous renvoyés vers une seule prise en charge : zh-cn | zh-hans | zh-hant | zh-hk | zh-mo | zh-my | zh-sg | zh-tw = zh
      • le bas-allemand (nds) est renvoyé vers le bas-saxon (nds-nl)
      • le bas-saxon (nds-nl) et le plautdietsch (pdt) sont renvoyés vers le bas-allemand (nds)
        C'est le serpent qui se mord la queue. C'est pour cela qu'il existe le modèle GetFallback2
  • GetFallback2 est une liste complémentaire de codes pour briser la redirection entre langues de repli :
    • le nds est cette fois renvoyé vers l'allemand (de)
    • le nds-nl vers le néerlandais (nl)
    • le pdt vers l'allemand (de)

Dans la pratique, le modèle Fallback prévoit voit ses deux sous-modèles, deux langues de repli pour nds, nds-nl et pdt.

Template:Language/..[modifier]

Dans la première partie du code se trouve le modèle donnant les noms de langues dans une langue donnée.
{{Language/{{Fallback|Language|{{{2|}}}}}|1={{{1|}}}}}<noinclude>
Quand le modèle Fallback a déterminé la langue, disons le français (fr), on obtiendrait le code suivant :
{{Language/fr}}<noinclude>
Ce modèle donne les noms des langues en français (p.ex. haw=hawaiien).
Certains noms qui figurent dans la liste ne sont pas définis dans le fichier Names.php du logiciel MediaWiki utilisé par Ékopédia. Ces langues sont indentées par rapport à la liste afin de les différencier (ce n'est pas nécessaire, mais cela donne l'information).

Implications pour Ékopédia[modifier]

Le passage à la norme ISO 639-6 entrainera une modification à terme de ce fichier names.php du logiciel MediaWiki, surtout que des codes sont obsolètes ou erronés. Le code langue des versions linguistiques actuelles d'Ékopédia pourrait devoir être modifié :

Pour les prochaines versions linguistiques, il faudrait pouvoir prendre en compte l'ISO 639-6, mais ce n'est pas une obligation. Les habitudes actuelles vont dans le sens des codes à 2 lettres (3 lettres pour des langues moins parlées), mais cela pourrait changer.

  • exemple : Ékopédia en russe rus.ekopedia.org (code de 3 lettres en l'occurence) à la place de ru.ekopedia.org

En l'état,

modèle langue local)[modifier]