Note: depuis Git 2.3.1+ (T1/T2 2015), Git ajoutera l'en-tête Accept-Language si possible.
Voir commit f18604b par Yi EungJun (eungjun-yi
)
Ajoutez un en-tête Accept-Language
qui indique les langues préférées de l'utilisateur définies par $LANGUAGE
, $LC_ALL
, $LC_MESSAGES
et $LANG
.
Cela donne aux serveurs Git la possibilité d'afficher les messages d'erreur distants dans la langue préférée de l'utilisateur.
Vous avez locale pour git gui ou autres GUIs, mais pas pour la ligne de commande, considérant que c'était l'une des questions de GitSurvey 2010
localization of command-line messages (i18n) 258 3.6%
Bien sûr, depuis 2010, comme le décrit po/README
:
Avant que les chaînes puissent être traduites, elles doivent d'abord être marquées pour la traduction.
Git utilise une interface d'internationalisation qui enveloppe la bibliothèque gettext
du système, donc la plupart des conseils de votre documentation sur gettext (sur les systèmes GNU info gettext
dans un terminal) s'appliquent.
En place depuis git 1.7.9+ (janvier 2012) :
Git utilise gettext
pour traduire ses messages d'interface les plus courants dans la langue de l'utilisateur si des traductions sont disponibles et que la locale est correctement configurée.
Les distributeurs peuvent ajouter de nouveaux fichiers PO
dans po/
pour ajouter de nouvelles traductions.
Donc, si votre mise à jour a perturbé la traduction, vérifiez ce que gettext
utilise :
Voir, par exemple, "Variables d'environnement de localisation"
Une locale est composée de plusieurs catégories de locale, voir Aspects. Lorsqu'un programme cherche des valeurs dépendant de la locale, il le fait selon les variables d'environnement suivantes, par ordre de priorité :
LANGUAGE
LC_ALL
LC_xxx, selon la catégorie de locale sélectionnée : LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Les variables dont la valeur est définie mais vide sont ignorées dans cette recherche.
LANG
est la variable d'environnement normale pour spécifier une locale. En tant qu'utilisateur, vous définissez normalement cette variable (à moins que certaines des autres variables n'aient déjà été définies par le système, dans /etc/profile
ou des fichiers d'initialisation similaires).
LC_CTYPE
, LC_NUMERIC
, LC_TIME
, LC_COLLATE
, LC_MONETARY
, LC_MESSAGES
, et ainsi de suite, sont les variables d'environnement destinées à remplacer LANG
et n'affectant qu'une seule catégorie de locale.
Par exemple, supposons que vous êtes un utilisateur suédois en Espagne, et que vous voulez que vos programmes gèrent les nombres et les dates selon les conventions espagnoles, et que seuls les messages soient en suédois. Alors vous pourriez créer une locale nommée ‘sv_ES
’ ou ‘sv_ES.UTF-8
’ en utilisant le programme localedef
. Mais il est plus simple, et obtient le même effet, de définir la variable LANG
sur es_ES.UTF-8
et la variable LC_MESSAGES
sur sv_SE.UTF-8
; ces deux locales sont déjà préinstallées avec le système d'exploitation.
LC_ALL
est une variable d'environnement qui remplace toutes ces variables. Elle est généralement utilisée dans les scripts qui exécutent des programmes particuliers. Par exemple, les scripts de configuration générés par GNU autoconf
utilisent LC_ALL
pour s'assurer que les tests de configuration n'opèrent pas de manière dépendante de la locale.
Certains systèmes définissent malheureusement LC_ALL
dans /etc/profile
ou dans des fichiers d'initialisation similaires. En tant qu'utilisateur, vous devez donc désactiver cette variable si vous souhaitez définir LANG
et éventuellement certaines des autres variables LC_xxx
.
Auparavant, les clients de transport HTTP avaient appris à indiquer au serveur de quel local ils sont en envoyant l'en-tête HTTP Accept-Language
, mais cela était fait uniquement pour certaines requêtes et pas pour d'autres.
Cela est corrigé avec Git 2.38 (T3 2022) :
Voir commit b0c4adc (11 juillet 2022) par Li Linchao (Cactusinhand
).
(Fusionné par Junio C Hamano -- gitster
-- dans commit 4b8cdff, 19 juillet 2022)
remote-curl
: envoyer l'en-tête Accept-Language au serveur
Aidé par : Junio C Hamano
Approuvé par : Li Linchao
La capacité de l'extrémité du serveur Git à accepter l'en-tête Accept-Language
a été introduite dans f18604b ("http
: ajouter un en-tête Accept-Language si possible", 2015-01-28, Git v2.4.0-rc0 -- fusion), mais cela n'est utilisé que par la phase très précoce du transfert, qui est la requête HTTP GET
pour découvrir les références.
Pour d'autres phases, comme la requête POST
dans le smart HTTP, le serveur ne sait pas dans quelle langue le client parle.
Enseigner au client Git la langue préférée des utilisateurs finaux et envoyer l'en-tête accept-language
du côté serveur.
Une fois que le serveur reçoit cet en-tête, il a la capacité de parler à l'utilisateur final dans la langue qu'il comprend.
Cela serait très utile pour de nombreux locuteurs non anglophones.
2 votes
Vous cherchez à changer de langue. Je reposterais cette question sur superuser, je pense.