Le but de l’internationalisation et de la régionalisation est de permettre à une seule application Web de présenter son contenu dans des langues et des formats adaptés à ses visiteurs.
Django prend pleinement en charge la traduction de texte, la mise en forme de dates, d’heures et de nombres, et les fuseaux horaires.
Essentiellement, Django effectue deux choses :
Évidemment, la traduction dépend de la langue cible et la mise en forme dépend généralement du pays cible. Ces informations sont données par les navigateurs dans l’en-tête Accept-Language
. Cependant, le fuseau horaire n’est pas accessible de manière évidente.
Les mots « internationalisation » et « régionalisation » sont souvent sources de confusion. En voici une définition simplifiée :
Vous pouvez trouver de plus amples détails dans la FAQ W3C Web Internationalization, l”article Wikipédia ou la documentation de GNU gettext.
Avertissement
La traduction et la mise en forme sont contrôlés par les réglages respectifs USE_I18N
et USE_L10N
. Mais les deux fonctionnalités concernent l’internationalisation et la régionalisation. Les noms de ces réglages dans Django ont une malencontreuse origine historique.
Voici quelques autres termes qui vont nous aider à gérer une même langue :
ll
ou une combinaison de code langue et pays sous la forme ll_PP
. Exemples : it
, de_AT
, es
, pt_BR
. Le code de langue est toujours en minuscules et le code pays en majuscules. Le séparateur est un caractère soulignement.Accept-Language
avec ce format. Exemples : it
, de-at
, es
, pt-br
. Les codes de langue sont généralement représentés en minuscules, mais l’en-tête HTTP Accept-Language
n’est pas sensible à la casse. Le séparateur est un tiret..po
.mars 30, 2019