<templatestyles src="Méta documentation de modèle/styles.css" />{{#if:{{#ifeq: documentation|documentation|oui}}{{#ifeq:10|10||non}}| {{#invoque:Bandeau|bandeau |style = {{#if:|{{{style}}}|margin:0.8em 10%;}} |icône = [[Fichier:OOjs UI icon book-ltr.svg{{#ifeq:yes|yes||class=skin-invert}}|{{#ifeq:|yes|25px|45px}}|alt=|link=]] |texte = {{#if:Ceci est la page de documentation de Modèle:Langue [modifier] [purger].|Ceci est la page de documentation de Modèle:Langue [modifier] [purger].}}
Cette sous-page {{#if:||contient les instructions et les catégories de son modèle d'origine et elle}} n'est pas destinée à être visualisée directement. }}{{#ifeq:10|2||{{#if:||}}}} }} {{#invoque:Bandeau|bandeau |style = {{#if:|{{{style}}}|margin:0.8em 10%;}} |icône = [[Fichier:Lua-logo-nolabel.svg{{#ifeq:|yes||class=skin-invert}}|{{#ifeq:|yes|25px|45px}}|alt=|link=]] |texte = {{#if:|{{{titre}}}}}
{{#if: Module:Langue
| {{#if:
| Ce modèle utilise les modules {{#invoke:Multiparamètres|brut}}, des scripts écrits dans le langage de programmation Lua. Toute expérimentation devrait être conduite d'abord via des sous-pages bac à sable.
| Ce modèle utilise le module [[{{#ifeq: | Module | Module:Langue | Module:Module:Langue }}|{{#ifeq: | Module | Module:Langue | Module:Langue }}]], un script écrit dans le langage de programmation Lua. Toute expérimentation devrait être conduite d'abord via {{#ifexist: {{#ifeq: | Module | Module:Langue | Module:Module:Langue }}/Bac à sable | [[{{#ifeq: | Module | Module:Langue | Module:Module:Langue }}/Bac à sable|sa sous-page bac à sable]] | une sous-page bac à sable }}.
}}
| Ce modèle utilise le langage de programmation Lua. Toute expérimentation devrait être conduite d'abord via une sous-page bac à sable.
}} Voir le projet Scribunto si vous voulez en savoir plus.
}}{{#if:||{{#ifeq:Modèle|Modèle|{{#if:{{#ifexpr: {{#switch: Modèle | Modèle | Modèle:Ns:Module = 1 | 0 }}
and {{#ifeq: Langue/Documentation | Documentation | 0 | 1 }}
and {{#switch: Documentation | Documentation | Test | Bac à sable = 1 | 0 }}
| 1
}}||}}}}}}
Ce modèle sert à indiquer la langue d’un texte, notamment pour les synthétiseurs vocaux, l’indexation des inclusions de mots en langues différentes par les moteurs de recherche, et l'affichage de certains caractères variant selon la langue<ref group="note">Par exemple les sinogrammes : voir ce tableau ou {{#invoke:Biblio|lienWeb}}.</ref>. Il permet aussi la personnalisation de la présentation des textes, en permettant aux utilisateurs de paramétrer les polices de caractères pour chaque écriture.
La mention d’un changement de langue est une information essentielle pour l’accessibilité du contenu. Elle est également utile aux outils de traduction automatique.
Les normes internationales d’accessibilité imposent de signaler un changement de langue, excepté {{#if:{{#invoke:fix|necessiteCadre|pour un nom propre, pour un terme technique, pour un mot dont la langue est indéterminée ou pour un mot ou une expression faisant partie du langage courant}}
|« {{safesubst:#if:1|pour un nom propre, pour un terme technique, pour un mot dont la langue est indéterminée ou pour un mot ou une expression faisant partie du langage courant}} »{{#switch:10
|0|10|14=
|#default=
}}
|« {{safesubst:#if:1|pour un nom propre, pour un terme technique, pour un mot dont la langue est indéterminée ou pour un mot ou une expression faisant partie du langage courant}} »
}}<ref>{{#invoke:Langue|indicationDeLangue}} {{#invoke:Langue|langue}}, {{#invoke:Langue|langue}}.</ref>, pour lesquels cela n’a pas de caractère obligatoire. Le groupe de travail sur les directives d'accessibilité du contenu Web du W3C souligne que des mots pris individuellement peuvent « faire partie » de la langue qui les accueille ; il n’y a donc pas lieu de signaler dans ces situations un changement de langue ; un critère pour décider de la stratégie à employer dans ces situations peut être de vérifier si {{#if:{{#invoke:fix|necessiteCadre|le mot se prononcerait de la même façon dans la langue du texte qui l’entoure (en dehors de simples problèmes d’accent ou d’intonation)}}
|« {{safesubst:#if:1|le mot se prononcerait de la même façon dans la langue du texte qui l’entoure (en dehors de simples problèmes d’accent ou d’intonation)}} »{{#switch:10
|0|10|14=
|#default=
}}
|« {{safesubst:#if:1|le mot se prononcerait de la même façon dans la langue du texte qui l’entoure (en dehors de simples problèmes d’accent ou d’intonation)}} »
}}<ref>{{#invoke:Langue|indicationDeLangue}} {{#invoke:Langue|langue}}, {{#invoke:Langue|langue}}. Cette page recommande ainsi de ne pas signaler par un attribut spécifique une utilisation du mot {{#if:{{#invoke:fix|necessiteCadre|rendezvous}}
|« {{safesubst:#if:1|rendezvous}} »{{#switch:10
|0|10|14=
|#default=
}}
|« {{safesubst:#if:1|rendezvous}} »
}} au sein d’un texte en anglais, ou du mot {{#if:{{#invoke:fix|necessiteCadre|podcast}}
|« {{safesubst:#if:1|podcast}} »{{#switch:10
|0|10|14=
|#default=
}}
|« {{safesubst:#if:1|podcast}} »
}} au sein d’un texte en français.</ref>.
Syntaxe
[modifier]{{Langue|code de langue|texte=texte}}{{Langue|code de langue|texte=texte|trans=trans|dir=direction-langue}}
Syntaxe simplifiée :
{{Langue|code de langue|texte}}{{Langue|code de langue|texte|trans=trans|dir=direction-langue}}
Dans le cas de la syntaxe simplifiée, il faut utiliser le code « [[:{{#if:|=|Modèle:=}}|{{{{#if:|subst:|}}={{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}}}]] » pour faire apparaître le signe « = », car le texte n'apparaît pas si un simple « = » est utilisé dans le code.
Paramètres
[modifier]<templatedata> { "description": "Ce modèle indique la langue d’un texte, notamment pour les synthétiseurs vocaux, l’indexation correcte des inclusions de mots en langues différentes par les moteurs de recherche, et l'affichage de certains caractères variant selon la langue. Dans le cas d'une citation, utilisez Modèle:Citation étrangère à la place.", "params": { "1": { "label": "Code de langue", "description": "Étiquette d’identification IETF ou nom français de la langue du texte inclus.", "type": "string", "required": true, "default": "en",
"example": "« en », « it », « anglais », « italien », etc."
}, "2": { "aliases": [ "texte" ], "label": "Texte", "description": "Texte en langue étrangère. À mettre en italique si nécessaire, sauf si ce sont des caractères non latins.", "type": "string", "required": true, "autovalue": "" }, "3": { "label": "Texte (obsolète)", "description": "Texte en langue étrangère utilisé uniquement si le paramètre 1 contient la direction de la langue rtl ou ltr et le paramètre 2 le code de la langue.", "type": "string", "autovalue": "", "deprecated": true }, "trans": { "label": "Translittération", "description": "Translittération du texte. Attention, ce n’est pas une traduction, mais une conversion lettre à lettre la plus proche possible de l’orthographe originale.", "type": "string" }, "dir": { "label": "Direction", "description": "Direction de la langue : rtl (de droite à gauche) ou ltr (de gauche à droite) ; normalement inutile car le modèle détermine la direction en fonction du code de langue.", "type": "string", "default": "Dépend du code de langue", "example": "« rtl », « ltr »" }, "class": { "description": "Classes CSS supplémentaire. Fonctionnalité avancée à n'utiliser qu'en cas de besoin.", "type": "line", "label": "Classes CSS additionnelles" } }, "paramOrder": [ "1", "2", "3", "trans", "dir", "class" ] } </templatedata>
Exemples
[modifier]Les effets sont {{#invoke:Langue|langue}} non visibles à l’écran (la police utilisée dépend du logiciel configuré par l’utilisateur), sauf ceux concernant la position (à droite ou à gauche) des ponctuations en début ou fin de textes écrits de droite à gauche et pour les langues qui utilisent des sinogrammes comme le chinois ou le japonais.
{{Langue|de|texte=Die {{II}}. Republik}}
{{#invoke:Langue|langue}}{{Langue|ar|texte=العربية…|dir=rtl}}
{{#invoke:Langue|langue}}{{Langue|allemand|Die ewige Wiederkehr des Gleichen}}
{{#invoke:Langue|langue}}{{Langue|es|¿Qué tal güey?}}
{{#invoke:Langue|langue}}{{Langue|arabe|العربية|trans=al-ʻarabīyah|dir=rtl}}
{{#invoke:Langue|langue}}{{Langue|grc|texte=ἡμέρα|trans=hēméra}}
{{#invoke:Langue|langue}}{{Langue|ja|クレヨンしんちゃん|trans=Kureyon Shin-chan}}
{{#invoke:Langue|langue}}{{Langue|ja|今}}
{{#invoke:Langue|langue}}{{Langue|zh|今}}
{{#invoke:Langue|langue}}
Dans les deux derniers exemples, notez la différence des glyphes suivant la langue.
Liens internes
[modifier]Pour créer un lien non redirigé, la syntaxe à utiliser est la suivante : ''{{Langue|en|[[New York Stories]]}}''.
Dans le cas d'un lien redirigé, la syntaxe à privilégier est celle-ci : ''[[Deep Impact (film)|{{Langue|en|Deep Impact}}]]'' (voir cette discussion).
Codes de langue
[modifier]{{#invoke:Bandeau|bandeauSection}}
Codes principaux
[modifier]| Langue | Code | Notes |
|---|---|---|
| allemand | de | |
| anglais | en | |
| arabe | ar | écriture avec l’alphabet perso-arabe |
| catalan | ca | |
| espagnol | es | |
| grec ancien | grc | avant 1453 |
| grec moderne | el | depuis 1453 |
| italien | it | |
| latin | la | alphabet de base normalement réduit (sans j, u, w, y) mais diacritiques possibles (usage principalement didactique) pour différencier les voyelles brèves ou longues |
| occitan ; provençal | oc |
Tous les codes
[modifier]La liste complète des langues prises en charge se trouve sur la page Module:Langue/Liste des langues.
Si le code de langue dont vous avez besoin manque, demander sur le projet modèle. Les codes de langue compatibles sont ceux qui suivent la recommandation BCP 47 de l’IETF. La liste des composants utilisables issus notamment des normes ISO 639, ISO 15924, ISO 3166-1, M.49 est publiée à l’adresse suivante : http://www.iana.org/assignments/language-subtag-registry. Pour rechercher un code de langue, ce lien (en anglais) est recommandé.
Certaines erreurs courantes sont automatiquement détectées et signalées dans la catégorie:Page avec code de langue invalide.
Système d'écriture
[modifier]La plupart des langues ont un système d’écriture par défaut. Lorsque la langue est écrite avec un autre système d’écriture, il est utile de le préciser, le modèle ou le navigateur pourra alors adapter le sens d'écriture ou la fonte utilisée. Le système d’écriture est précisé, le cas échéant, en un code à quatre lettres suivant le code langue principal, séparé par un trait d’union (-).
Par exemple, l'arabe (ar) est considéré comme écrit avec des caractères arabes, de droite à gauche. Si le texte est une translittération de l'arabe en alphabet latin, écrit de gauche à droite, il faut utiliser le code de langue ar-Latn.
Cas spécifique pour le mongol, il vaut mieux utiliser mn-Mong pour le mongol bitchig (mongol dit traditionnel, six millions de personnes en Chine et une partie de la population de Mongolie (trois millions d'habitants). Tandis que mn-Cyrl, unique écriture officielle du Pays mongol entre 1941 et 1991 (le bitchig est de nouveau officiel depuis 1991). Cas particulier encore, mn-Cyrl mongol cyrillique est affiché comme mn dans le cas des liens web.
Exemples de code système d’écriture :
- latin :
Latn; - arabe :
Arab; - cyrillique :
Cyrl; - grec :
Grek; - hébreu :
Hebr; - mongol :
Mong; - sinogrammes traditionnels :
Hant; - sinogrammes simplifiés :
Hans; - sinogrammes dans le coréen (hanja), japonais (kanji) et vietnamien (Nôm) (norme {{#invoke:Lien interwiki|main}}) :
Hani; - tifinagh :
Tfng.
Pour la liste complète et pour tester si un code est valide, voir ce lien (en anglais) ; dans la boîte de dialogue {{#invoke:Langue|langue}}, sélectionner {{#invoke:Langue|langue}} puis cliquer sur {{#invoke:Langue|langue}}.
Variété géographique
[modifier]Pour prendre en compte les variétés géographiques, un code pays ISO 3166-1 à deux lettres peut être ajouté, séparé par un trait d’union (-). Le code pays est toujours écrit en capitales (au contraire du code langue qui est toujours en minuscules).
Exemple : fr-CA pour le français canadien.
Pour les dialectes d'une région n'ayant pas de code de langue propre, il faut utiliser le code de langue le plus proche.
Exemple : oc pour le gascon et le provençal, qui sont des dialectes de l'occitan (ou langue d’oc).
Changer l’apparence d’une langue
[modifier]Afin de changer le style des caractères d’une langue en particulier, on peut se servir de la syntaxe CSS dédiée <syntaxhighlight lang="css" inline>:lang(code-langue)</syntaxhighlight> dans son common.css.
Exemples :
<syntaxhighlight lang="css"> /* personnalisation de l’écriture latine étendue, pour la langue : vietnamien ;
ou pour l’API */
- lang(vi) {font-family: Segoe UI, Tahoma, Verdana, FreeSans, sans-serif}
/* personnalisation de l’écriture grecque, pour les langues : grec moderne (monotonique), grec ancien (polytonique) */
- lang(el), :lang(grc) {font-family: Athena, Segoe UI, Lucida Sans Unicode, Arial Unicode MS, Tahoma, FreeSans, sans-serif}
/* personnalisation de l’écriture cyrillique, pour les langues : russe, bulgare, serbe, macédonien, mongol moderne... */
- lang(ru), :lang(bg), :lang(sr), :lang(mk), :lang(mn) ou mieux :lang(mn-Cyrl) {font-family: Segoe UI, Tahoma, sans-serif}
/* personnalisation de l’écriture arabe, pour les langues : arabe, persan, ourdou ;
taille augmentée mais interlignage par défaut conservé */
- lang(ar), :lang(fa), :lang(ur) {font-family: Segoe UI, Tahoma; font-size: 1.25em;}
/* personnalisation de l’écriture thaïe, pour la langue : thaï ;
taille réduite mais interlignage par défaut augmenté */
- lang(th) {font-family: Segoe UI, Tahoma, FreeSans; font-size: 0.87em; line-height: 1.4;}
</syntaxhighlight>
Il est aussi possible de simplement faire apparaître qu'un mot ou expression sont dans une autre langue, en changeant la police d'affichage par l'ajout de cette ligne dans son CSS personnalisé : <syntaxhighlight lang="css"> /* Utiliser la police « serif » pour les éléments HTML de tout type (« span », « div », « td », etc.)
qui ont un attribut « lang="code-de-langue" » de valeur quelconque */
[lang] { font-family: serif; }
/* Utiliser la police « serif » seulement pour les éléments HTML de tout type
qui ont un attribut « lang="el" » pour indiquer la langue grecque moderne */
[lang=el] { font-family: serif; }
/* Utiliser la police « serif » seulement pour les éléments HTML de tout type
qui ont un attribut « lang="zh" », avec un éventuel suffixe comme « lang="zh-Hant" » */
[lang|=zh] { font-family: serif; }
/* Utiliser la police « serif » seulement pour les éléments HTML de type « span »
ayant un attribut « lang="code-de-langue" » de valeur quelconque */
span[lang] { font-family: serif; } </syntaxhighlight>
Un sélecteur CSS sur le nom de l'attribut entre crochets droits [lang=code] ou [lang|=code] est cependant moins puissant que le pseudo-sélecteur :lang(code), lequel permet aussi de trouver les correspondances par code d'écriture indépendamment des langues qui utilisent cette écriture, en plaçant dans son paramètre un joker * à la place du code langue de base, suivi d'un tiret et d'un code d'écriture ; l'utilisation d'un joker requiert cependant d'échapper ce joker, ou de placer l'identificateur de langue entre guillemets droits :
<syntaxhighlight lang="css"> /* Utiliser la police « serif » seulement pour les éléments HTML de tout type
et dont le contenu est dans une langue utilisant l'écriture grecque. */
- lang(\*-Grek) { font-family: serif; } /* joker avec un échappement */
- lang("*-Grek") { font-family: serif; } /* code complet entre guillemets droits */
</syntaxhighlight>
Notes et références
[modifier]Notes
[modifier]{{#ifeq:Modèle|Utilisateur||{{#invoke:Correction syntaxique|verifierLesArguments
|groupe= |group= |références= |refs= |taille= |colonnes= |pasdecol= |_catégorie=Catégorie:Page utilisant le modèle Références avec un paramètre inconnu}}}}
Références
[modifier]{{#ifeq:Modèle|Utilisateur||{{#invoke:Correction syntaxique|verifierLesArguments
|groupe= |group= |références= |refs= |taille= |colonnes= |pasdecol= |_catégorie=Catégorie:Page utilisant le modèle Références avec un paramètre inconnu}}}}
Voir aussi
[modifier]- [[:{{#if:|Citation étrangère|Modèle:Citation étrangère}}|{{{{#if:|subst:|}}Citation étrangère{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}}}]]
- [[:{{#if:|Code langue|Modèle:Code langue}}|{{{{#if:|subst:|}}Code langue{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}}}]]
- [[:{{#if:|Langue du titre|Modèle:Langue du titre}}|{{{{#if:|subst:|}}Langue du titre{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}}}]]
- [[:{{#if:|Transl|Modèle:Transl}}|{{{{#if:|subst:|}}Transl{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}}}]] – translittération avec schéma (comme Hepburn ou DIN)
- [[:{{#if:|Lien|Modèle:Lien}}|{{{{#if:|subst:|}}Lien{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}{{#if:||}}}}]] - avec le paramètre
langue=