| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Placement of objects
| 4.4.1 Comportement automatique | ||
| 4.4.2 Objets inclus dans la portée | ||
| 4.4.3 Objets hors de la portée |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Automatic behavior
Dans la notation musicale, il y a des objets qui appartiennent à la portée et d’autres qui sont placés à l’extérieur de la portée. On les appelle respectivement les « objets de la portée » (within-staff objects en anglais) et les « objets extérieurs à la portée » (outside-staff objects en anglais).
Les objets de la portée sont ceux qui sont placés sur la portée – les têtes de notes et les hampes, les altérations, etc. Leur position est généralement déterminée par la musique elle-même – ils sont placés verticalement sur des lignes spécifiques ou sont liés à d’autres objets placés de cette manière. Normalement, les collisions entre les têtes et queues de notes et les altérations dans des accords proches sont évitées automatiquement. Comme nous le verrons rapidement, il existe des commandes et des possibilités de retouche qui permettent de modifier ce comportement automatique.
Parmi les objets extérieurs à la portée, on compte des éléments comme
les marques de reprise, les indications de texte ou de nuance. Dans
LilyPond, la règle est de placer verticalement ces objets extérieurs à
la portée le plus près possible de la portée, tout en évitant la
collision avec d’autres objets. LilyPond utilise la propriété
outside-staff-priority pour déterminer l’ordre selon lequel
placer ces objets, de la manière suivante :
D’abord, LilyPond dresse la liste de tous les objets extérieurs à la
portée. Puis ceux-ci sont classés suivant leur
outside-staff-priority. Enfin, ils sont pris un par un, en
commençant par les objets avec la outside-staff-priority la plus
basse, et placés de façon à ne pas entrer en collision avec d’autres
objets déjà positionnés. Cela signifie que, si deux grobs
extérieurs à la portée doivent occuper la même place, c’est celui qui a
la outside-staff-priority la plus basse qui est placé le plus
près de la portée. Et si deux objets ont la même
outside-staff-priority, le premier rencontré sera placé au plus
près de la portée.
Dans l’exemple suivant, tous les markup ont la même priorité,
dans la mesure où rien n’est indiqué explicitement. Vous remarquerez
que Text3 est également positionné près de la portée, juste
en-dessous de Text2.
c''2^"Text1" c''2^"Text2" | c''2^"Text3" c''2^"Text4" |
Les portées aussi sont positionnées, par défaut, le plus près possible les unes des autres, en ménageant tout de même une certaine séparation. Si des notes se rapprochent nettement d’une portée adjacente, elles ne forceront les portées à s’écarter que s’il y a un risque de chevauchement.
<< \new Staff { \relative { c'4 a, } } \new Staff { \relative { c''''4 a, } } >>
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Within-staff objects
Nous avons vu que les commandes \voiceXXX jouent sur la
direction des liaisons, des doigtés et sur tout autre élément lié à
l’orientation des hampes. Ces commandes sont essentielles dans
la musique polyphonique pour distinguer des lignes mélodiques
entremêlées. Mais il arrive qu’on ait besoin de modifier ce
comportement automatique. On peut le faire pour toutes les parties de
la musique ou juste pour une note. La propriété qui contrôle ce
comportement est la propriété direction de chaque objet.
Expliquons d’abord ce qu’elle fait, puis nous présenterons un certain
nombre de commandes déjà prêtes qui évitent, pour les modifications les
plus courantes, d’avoir à encoder les retouches.
Certains objets comme les traits des liaisons se recourbent tantôt
vers le haut, tantôt vers le bas ; d’autres encore, comme les hampes et
les crochets, peuvent se décaler vers la gauche ou vers la droite selon
qu’ils pointent vers le haut ou vers le bas. Ce comportement est géré
automatiquement dès lors que direction est activé.
La propriété direction | ||
| Doigtés |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
direction@translationof The direction property
L’exemple ci-dessous montre dans la première mesure le positionnement par défaut des liaisons – celles des notes les plus hautes en surplomb des têtes et celles des notes les plus basses au-dessous ; viennent ensuite une mesure avec les liaisons forcées vers le bas, puis une mesure avec les liaisons forcées vers le haut, et pour finir une mesure où elles adoptent de nouveau le comportement par défaut.
a'4( g') c''( a') | \override Slur.direction = #DOWN a'4( g') c''( a') | \override Slur.direction = #UP a'4( g') c''( a') | \revert Slur.direction a'4( g') c''( a') |
Nous utilisons ici les directions DOWN et UP. Elles
correspondent respectivement aux valeurs -1 et +1,
que l’on peut utiliser à la place. La valeur 0 peut aussi être
utilisée dans certains cas. Elle est interprétée comme un UP
pour les liaisons, et comme un « centré » pour d’autres objets. Il
existe une direction, CENTER, qui correspond à la
valeur 0.
Quoi qu’il en soit, ces retouches manuelles sont rarement utilisées car il existe des équivalents sous forme de commandes prédéfinies. Voici un tableau des plus courantes. Lorsque ce n’est pas évident, leur signification est précisée.
| Bas/Gauche | Haut/Droite | Annulation | Effet |
|---|---|---|---|
\arpeggioArrowDown | \arpeggioArrowUp | \arpeggioNormal | Flèche en bas, en haut, ou pas de flèche |
\dotsDown | \dotsUp | \dotsNeutral | Déplacement des points pour éviter les lignes de portée |
\dynamicDown | \dynamicUp | \dynamicNeutral | |
\phrasingSlurDown | \phrasingSlurUp | \phrasingSlurNeutral | Attention : à distinguer des commandes de liaison ci-dessous |
\slurDown | \slurUp | \slurNeutral | |
\stemDown | \stemUp | \stemNeutral | |
\textSpannerDown | \textSpannerUp | \textSpannerNeutral | Le texte saisi en tant qu’extension est au-dessous/au-dessus de la portée |
\tieDown | \tieUp | \tieNeutral | |
\tupletDown | \tupletUp | \tupletNeutral | Les n-olets sont au-dessous/au-dessus des notes |
Les variantes \xxxNeutral et \xxxNormal de ces
commandes sont implémentées à l’aide de \revert ; elles
ne doivent pas être précédées de \once. Pour
limiter les effets des autres commandes prédéfinies (fonctionnant
à base de \override) à une seule note, il faut les faire
précéder d’un \once, comme pour toute dérogation.
Dans le cas où un seul objet de rendu doit déroger à la règle, LilyPond
dispose des indicateurs de positionnement ^ et _ :
a'4( g') c''( a') | a'4^( g') c''_( a') |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Fingering
Le placement des doigtés sur des notes simples peut aussi être contrôlé
par la propriété direction, mais le changement de
direction n’a pas d’effet sur les accords. Comme nous le
verrons, il existe des commandes qui permettent de contrôler le doigté
sur chaque note d’un accord, en plaçant l’indication de doigté
au-dessus, en dessous, à gauche ou à droite de chaque note.
Tout d’abord, voici l’effet de direction sur le doigté lié à une
note simple. La première mesure montre le comportement par défaut, et
les deux suivantes montrent l’effet lorsqu’on indique DOWN et
UP :
\relative { c''4-5 a-3 f-1 c'-5 | \override Fingering.direction = #DOWN c4-5 a-3 f-1 c'-5 | \override Fingering.direction = #UP c4-5 a-3 f-1 c'-5 | }
Le fait d’intervenir sur la propriété direction n’est sûrement
pas la façon la plus simple de placer manuellement les doigtés au-dessus
ou en dessous des notes ; mieux vaut utiliser _ ou ^
devant le chiffre de doigté plutôt que -. Voici ce que donne
l’exemple précédent avec cette méthode :
\relative { c''4-5 a-3 f-1 c'-5 | c4_5 a_3 f_1 c'_5 | c4^5 a^3 f^1 c'^5 | }
La propriété direction ne fonctionne pas pour les accords alors
que les préfixes de direction, _ et ^, fonctionnent. Par
défaut, le doigté est placé automatiquement à la fois au-dessus et
au-dessous des notes d’un accord, comme ceci :
\relative { <c''-5 g-3>4 <c-5 g-3 e-2>4 <c-5 g-3 e-2 c-1>4 }
mais il est possible de forcer manuellement vers le haut ou vers le bas le placement de tous ou certains chiffres de doigté, comme ceci :
\relative { <c''-5 g-3 e-2 c-1>4 <c^5 g_3 e_2 c_1>4 <c^5 g^3 e^2 c_1>4 }
On peut aller encore plus loin dans le positionnement des doigtés pour
chacune des notes d’un accord grâce à la commande
\set fingeringOrientations. La syntaxe de cette commande est :
\set fingeringOrientations = #'([up] [left/right] [down]) |
On utilise \set car fingeringOrientations est une
propriété du contexte Voice, créée et utilisée par le graveur
New_fingering_engraver.
On peut attribuer à cette propriété une liste composée de une à trois
valeurs. Celles-ci déterminent si l’indication de doigté doit être
placée au-dessus (lorsque up apparaît dans la liste), au-dessous
(lorsque down apparaît), à gauche (lorsque left apparaît)
ou à droite (lorsque right apparaît). En revanche, si une valeur
n’est pas dans la liste, aucun doigté n’ira à cet emplacement. LilyPond
garde ces contraintes en mémoire et recherche le meilleur emplacement
pour le doigté des notes des accords suivants. Vous remarquerez que
left et right s’excluent l’un l’autre – l’indication de
doigté ne peut être placée que d’un côté ou de l’autre, pas des deux.
Note : Pour contrôler à l’aide de cette commande le placement du doigté sur une note simple, il faut la saisir comme un accord composé d’une note unique, en l’encadrant de chevrons.
Voici quelques exemples :
\relative { \set fingeringOrientations = #'(left) <f'-2>4 <c-1 e-2 g-3 b-5>4 \set fingeringOrientations = #'(left) <f-2>4 <c-1 e-2 g-3 b-5>4 | \set fingeringOrientations = #'(up left down) <f-2>4 <c-1 e-2 g-3 b-5>4 \set fingeringOrientations = #'(up left) <f-2>4 <c-1 e-2 g-3 b-5>4 | \set fingeringOrientations = #'(right) <f-2>4 <c-1 e-2 g-3 b-5>4 }
Si les indications de doigtés paraissent un peu serrées, on peut
toujours réduire la taille de police (font-size). La valeur par
défaut donnée dans la RPI à la page de l’objet Fingering étant
-5, essayons -7 :
\relative { \override Fingering.font-size = #-7 \set fingeringOrientations = #'(left) <f'-2>4 <c-1 e-2 g-3 b-5>4 \set fingeringOrientations = #'(left) <f-2>4 <c-1 e-2 g-3 b-5>4 | \set fingeringOrientations = #'(up left down) <f-2>4 <c-1 e-2 g-3 b-5>4 \set fingeringOrientations = #'(up left) <f-2>4 <c-1 e-2 g-3 b-5>4 | \set fingeringOrientations = #'(right) <f-2>4 <c-1 e-2 g-3 b-5>4 }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Outside-staff objects
Les objets extérieurs à la portée sont placés automatiquement de façon à éviter les collisions. Il est toutefois possible, grâce à différentes méthodes, de rectifier un positionnement automatique qui se révèlerait ne pas être optimal.
La propriété outside-staff-priority | ||
La commande \textLengthOn | ||
| Positionnement des nuances | ||
| Dimensionnement des objets graphiques |
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
outside-staff-priority@translationof The outside-staff-priority property
Les objets avec la plus petite valeur de la propriété
outside-staff-priority sont placés au plus près de la
portée, tandis que les autres sont écartés autant qu’il faut pour
éviter les collisions. La outside-staff-priority est
définie dans la grob-interface ; elle est donc une
propriété commune à tous les objets de rendu. Par défaut, elle
est réglée sur #f pour tous les objets de la portée, et
porte une valeur numérique appropriée à chacun des objets
extérieurs à la portée, à mesure qu’ils sont créés. Le tableau
suivant montre la valeur numérique par défaut pour quelques-uns
des objets extérieurs à la portée les plus courant.
Vous noterez au passage certaines particularités quant au nom des
objets. En effet, des objets à extension sont automatiquement créés
dans le but de pouvoir contrôler le positionnement vertical des
extrémités d’un grob qui commencerait et se terminerait à des
instants musicaux différents. C’est la raison pour laquelle modifier le
outside-staff-priority du grob sous-jacent n’aura aucun
effet. C’est par exemple le cas lorsque vous modifiez l’alignement d’un
objet Hairpin à l’aide de outside-staff-priority ;
puisque le soufflet est associé à un objet DynamicLineSpanner,
c’est sur celui-ci que doit porter l’effet de
outside-staff-priority. L’instruction dérogatoire se place au
début du bandeau qui constitue une ligne de base susceptible de contenir
plusieurs soufflets ou indications de nuance.
| Objet de rendu | Priorité | Contrôle la position de |
|---|---|---|
RehearsalMark | 1500 | Repère |
MetronomeMark | 1000 | Indication métronomique |
SostenutoPedalLineSpanner | 1000 | Indication de pédale |
SustainPedalLineSpanner | 1000 | |
UnaCordaPedalLineSpanner | 1000 | |
MeasureCounter | 750 | Numéro de mesure |
VoltaBracketSpanner | 600 | Bandeau de répétition |
InstrumentSwitch | 500 | Texte de changement d’instrument |
TextScript | 450 | Texte des markups (ou étiquettes) |
MultiMeasureRestText | 450 | Texte sur les silences multimesures |
CombineTextScript | 450 | Texte de parties combinées |
OttavaBracket | 400 | Indication d’octaviation |
TextSpanner | 350 | Bandeau ou extension de texte |
DynamicLineSpanner | 250 | Toutes les marques de nuances |
BarNumber | 100 | Numéro de mesure |
TrillSpanner | 50 | Bandeau de trille |
AccidentalSuggestion | 0 | Altération suggérée |
Voici un exemple qui montre le placement par défaut de certains d’entre eux.
% Set details for later Text Spanner \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Start Ottava Bracket \ottava #1 c''4 \startTextSpan % Add Dynamic Text and hairpin c''4\pp\< c''4 % Add Text Script c''4^Text | c''4 c'' % Add Dynamic Text and terminate hairpin c''4\ff c'' \stopTextSpan | % Stop Ottava Bracket \ottava #0 c'4 c' c' c' |
Cet exemple montre comment créer des extensions de texte (Text
Spanners en anglais) – texte avec des longues lignes au-dessus d’un
passage musical. L’extension s’étend depuis la commande
\startTextSpan jusqu’à la commande \stopTextSpan et le
format de texte est défini par la commande \override TextSpanner.
Pour de plus amples détails, voir
(notation)Indication textuelle avec extension section ‘Indication textuelle avec extension’ dans Manuel de notation.
Il montre aussi comment créer des marques d’octaviation.
Si les valeurs de outside-staff-priority par défaut ne donnent
pas les résultats escomptés, il suffit de modifier la priorité
de l’un de ces objets. Supposons que vous vouliez placer l’indication
d’octaviation sous le bandeau de texte, dans l’exemple précédent. Tout
ce que nous devons faire, c’est regarder la priorité de
OttavaBracket dans la Référence des propriétés internes ou dans
le tableau plus haut, et la ramener à une valeur plus basse que celle de
TextSpanner, en gardant à l’esprit que OttavaBracket est
créé dans le contexte Staff :
% Set details for later Text Spanner \override TextSpanner.bound-details.left.text = \markup { \small \bold Slower } % Place dynamics above staff \dynamicUp % Place following Ottava Bracket below Text Spanners \once \override Staff.OttavaBracket.outside-staff-priority = #340 % Start Ottava Bracket \ottava #1 c''4 \startTextSpan % Add Dynamic Text c''4\pp % Add Dynamic Line Spanner c''4\< % Add Text Script c''4^Text | c''4 c'' % Add Dynamic Text c''4\ff c'' \stopTextSpan | % Stop Ottava Bracket \ottava #0 c'4 c' c' c' |
N’oublions pas que certains objets, tels les numéros de mesure,
indications métronomiques et marques-repères, sont par défaut attachés
au contexte Score.
Les liaisons sont intrinsèquement des objets membres de la portée
(within-staff objects) bien qu’elles la surplombent lorsque les
notes auxquelles elles se rattachent sont relativement hautes. Ceci
peut avoir pour conséquence de remonter d’autant les objets externes
(outside-staff objects) tels les articulations. La propriété
avoid-slur de l’articulation en question peut se voir déterminée
à 'inside dans le but de « ramener » cette articulation à
l’intérieur de la liaison. Cette propriété avoid-slur ne sera
toutefois effective que dans la mesure où la
outside-staff-priority est désactivée (valeur #f). Dans
le même esprit, il est possible d’affecter une valeur numérique
particulière à la propriété outside-staff-priority d’une
liaison dans le but de regrouper la liaison avec les objets externes.
L’exemple suivant illustre ces deux différentes méthodes.
\relative c'' { c4( c^\markup { \tiny \sharp } d4.) c8 | c4( \once \override TextScript.avoid-slur = #'inside \once \override TextScript.outside-staff-priority = ##f c4^\markup { \tiny \sharp } d4.) c8 | \once \override Slur.outside-staff-priority = #500 c4( c^\markup { \tiny \sharp } d4.) c8 | }
Le fait de changer la outside-staff-priority peut aussi servir à
contrôler le positionnement vertical des objets individuels, quoique le
résultat ne soit pas toujours formidable. Imaginons que nous voulions
placer « Text3 » au-dessus de « Text4 » dans l’exemple de la section
Comportement automatique, plus haut. Il nous suffit pour cela de
regarder dans la Référence des propriétés internes ou dans le tableau
plus haut la priorité de TextScript, et d’augmenter la priorité
de « Text3 » jusqu’à une valeur très haute :
c''2^"Text1" c''2^"Text2" | \once \override TextScript.outside-staff-priority = #500 c''2^"Text3" c''2^"Text4" |
S’il est vrai que cela place « Text3 » au-dessus de « Text4 », ça le
place aussi plus haut que « Text2 » tandis que « Text4 » dégringole.
Ce n’est peut-être pas si bien que ça. En fait, ce que nous aimerions
faire, c’est placer toutes les annotations à égale distance de la
portée. Pour cela, nous avons besoin d’espacer horizontalement les
notes pour laisser plus de place au texte. C’est possible grâce à la
commande textLengthOn.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
\textLengthOn@translationof The textLengthOn command
Par défaut, l’espacement horizontal d’un texte produit sous forme de
markup (ou d’étiquette) n’est pas pris en compte, dans la mesure
où ce qui est concerné n’entre pas dans la musique. La commande
\textLengthOn inverse ce comportement, faisant en sorte que les
notes soient espacées autant qu’il le faut pour s’adapter au texte :
\textLengthOn % Cause notes to space out to accommodate text c''2^"Text1" c''2^"Text2" | c''2^"Text3" c''2^"Text4" |
La commande qui permet de revenir au comportement par défaut est
\textLengthOff. Alternativement, lorsque l’instruction
\textLengthOn se limite à un seul instant musical, vous
pouvez la préfixer d’un \once.
LilyPond dispose de commandes équivalentes et dévolues au
traitement des repères et indications de tempo :
\markLengthOn et \markLengthOff.
Les textes des markup éviteront également les notes qui
s’échappent au-dessus de la portée. Si ce n’est pas notre souhait, il
est possible de supprimer ce déplacement automatique vers le haut en
attribuant à la priorité la valeur #f. Voici un exemple qui
montre comment les textes des markup interagissent avec ces types
de note.
\relative { % This markup is short enough to fit without collision c''2^"Tex" c'' | R1 | % This is too long to fit, so it is displaced upwards c,,2^"Text" c'' | R1 | % Turn off collision avoidance \once \override TextScript.outside-staff-priority = ##f c,,2^"Long Text " c'' | R1 | % Turn off collision avoidance \once \override TextScript.outside-staff-priority = ##f \textLengthOn % and turn on textLengthOn c,,2^"Long Text " % Spaces at end are honored c''2 | }
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Dynamics placement
Les indications de nuance se placent normalement sous la portée, mais on
peut les placer au-dessus avec la commande \dynamicUp. Elles se
positionnent verticalement par rapport à la note à laquelle elles sont
liées et se décalent vers le bas (ou le haut) en fonction des objets de
la portée comme les liaisons de phrasé ou les numéros de mesure. Cela
peut donner d’assez bons résultats, comme le montre cet exemple :
\relative { \clef "bass" \key aes \major \time 9/8 \dynamicUp bes4.~\f\< \( bes4 bes8 des4\ff\> c16 bes\! | ees,2.~\)\mf ees4 r8 | }
De toute façon, si les notes et les nuances qui leur sont liées sont trop proches, le positionnement automatique évitera les collisions en déplaçant davantage les nuances suivantes, mais le résultat peut ne pas être très satisfaisant, comme le montre cet exemple artificiel :
\dynamicUp \relative { a'4\f b\mf a\mp b\p }
Si une telle situation devait survenir dans de la musique « réelle »,
il serait préférable d’espacer un peu plus les notes, de façon que les
indications de nuance puissent toutes se situer à la même distance de la
portée. S’il est possible de faire cela pour les textes de
markup grâce à la commande \textLengthOn, il n’existe
pas d’équivalent pour les indications de nuance. Il nous faut donc
chercher à faire cela avec la commande \override.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Racine] | [Table des matières] | [Index] | [ ? ] |
@translationof Grob sizing
Tout d’abord, nous devons apprendre ce qui détermine la dimension des
grobs. Tous les grobs portent en eux un point de référence
qui est utilisé pour les positionner par rapport à leur objet parent. Ce
point du grob est placé à une distance horizontale,
X-offset, et à une distance verticale, Y-offset, de son
parent. L’étendue horizontale de l’objet est fixée par une paire de
nombres, X-extent, qui donnent la position du coin
gauche et du coin droit par rapport au point de référence. De
même, l’amplitude verticale est fixée par une paire de nombres,
Y-extent. Ce sont des propriétés communes à tous les
grobs et que gère la grob-interface.
Par défaut, la largeur des objets extérieurs à la portée est donnée
comme étant nulle, si bien qu’ils peuvent se chevaucher
horizontalement. Pour remédier à cela, on a ajouté l’infini à
l’extension gauche et moins l’infini à l’extension droite, en
attribuant à extra-spacing-width la valeur
'(+inf.0 . -inf.0). Pour être sûr que les objets ne se
chevaucheront pas horizontalement, nous devons donc corriger cette
valeur de extra-spacing-width pour leur attribuer un peu
d’espace supplémentaire. L’unité de base est ici la largeur
séparant deux lignes de portée ; décaler le bord gauche d’une
demie unité vers la gauche et le bord droit d’une demie unité vers
la droite devrait suffire :
\override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) |
Voyons si ça marche sur notre exemple précédent :
\dynamicUp % Extend width by 1 staff space \override DynamicText.extra-spacing-width = #'(-0.5 . 0.5) \relative { a'4\f b\mf a\mp b\p }
C’est mieux mais nous voulons peut-être aligner les indications de
nuance sur une même ligne plutôt que de les voir monter et
descendre avec les notes. La propriété qui gère cela est
staff-padding – voir Collisions d’objets.
| [ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] |
Ce document a été généré le le 13 juillet 2020 par gub en utilisant texi2html 1.82.
Autres langues : English, català, česky, deutsch, español, italiano, 日本語, nederlands.
À propos de la sélection automatique de la langue.