tag repositorio example crear cambiar git localization environment-variables locale .bash-profile

repositorio - git push example



¿Cómo se puede cambiar el idioma de la interfaz de línea de comando de Git? (4)

Me gustaría cambiar el idioma de git (en inglés) en mi instalación de Linux y no pude encontrar la configuración. ¿Cómo hacerlo?


GIT se establece de forma predeterminada en inglés si no puede encontrar el idioma de configuración regional.

Entonces, si quieres que GIT esté en inglés, sabotea el archivo de idioma con el que se está ejecutando. En mi caso, siempre funcionaba con alemán (es decir, de.msg ).

Si lo eliminé o lo renombré, entonces de manera predeterminada en inglés.

Aquí renombré el archivo


Nota: desde Git 2.3.1+ (Q1 / Q2 2015), Git agregará el encabezado Aceptar idioma si es posible.
Ver commit f18604b por Yi EungJun ( npcode )

Agregue un encabezado Accept-Language que indique los idiomas preferidos del usuario definidos por $LANGUAGE , $LC_ALL , $LC_MESSAGES y $LANG .

Esto le da a los servidores de git la oportunidad de mostrar mensajes de error remotos en el idioma preferido del usuario.

Tiene configuración regional para git gui u otras GUI , pero no para la línea de comando, considerando que fue una de las preguntas de GitSurvey 2010

localization of command-line messages (i18n) 258 3.6%

Por supuesto, desde 2010, como po/README describe:

Antes de traducir las cadenas, primero deben marcarse para la traducción.

Git usa una interfaz de internacionalización que envuelve la biblioteca gettext del sistema , por lo que la mayoría de los consejos en su documentación de gettext (en info gettext sistemas GNU info gettext en un terminal) se aplica.

En su lugar desde git 1.7.9+ (enero de 2012):

Git usa gettext para traducir sus mensajes de interfaz más comunes al idioma del usuario si las traducciones están disponibles y la configuración regional está configurada adecuadamente .
Los distribuidores pueden colocar nuevos archivos PO en po/ para agregar nuevas traducciones.

Entonces, si su actualización ha estropeado la traducción, verifique qué usa gettext :
Ver, por ejemplo, " Variables del entorno local "

Una configuración regional se compone de varias categorías locales, vea Aspectos. Cuando un programa busca valores dependientes de la configuración regional, lo hace de acuerdo con las siguientes variables de entorno, en orden de prioridad:

LANGUAGE LC_ALL LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ... LANG

Las variables cuyo valor está establecido pero está vacío se ignoran en esta búsqueda.

LANG es la variable de entorno normal para especificar una configuración regional. Como usuario, normalmente configura esta variable (a menos que algunas de las otras variables ya las haya configurado el sistema, en /etc/profile o archivos de inicialización similares).

LC_CTYPE , LC_NUMERIC , LC_TIME , LC_COLLATE , LC_MONETARY , LC_MESSAGES , y así sucesivamente, son las variables de entorno destinadas a anular LANG y afectar solo a una categoría de configuración regional única.
Por ejemplo, supongamos que es un usuario sueco en España y desea que sus programas manejen números y fechas de acuerdo con las convenciones españolas, y solo los mensajes deben estar en sueco. Luego, podría crear una configuración regional denominada '' sv_ES '' o '' sv_ES.UTF-8 '' mediante el uso del programa localedef . Pero es más simple, y logra el mismo efecto, establecer la variable LANG a es_ES.UTF-8 y la variable sv_SE.UTF-8 a sv_SE.UTF-8 ; estos dos locales ya vienen preinstalados con el sistema operativo.

LC_ALL es una variable de entorno que anula todos estos. Normalmente se usa en scripts que ejecutan programas particulares. Por ejemplo, configure scripts generados por autoconf GNU, use LC_ALL para asegurarse de que las pruebas de configuración no operen en formas dependientes de la configuración regional.

Desafortunadamente, algunos sistemas configuran LC_ALL en /etc/profile o en archivos de inicialización similares. Como usuario, por lo tanto, debe desarmar esta variable si desea configurar LANG y opcionalmente algunas de las otras variables LC_xxx .


Si solo quieres tener un comando en inglés, puedes escribir LC_ALL=C antes del comando, por ejemplo:

LC_ALL=C git status

resultará en

# On branch master nothing to commit, working directory clean

La configuración regional utilizada en C es inglés y siempre está disponible sin instalar paquetes de idioma adicionales
(ver https://askubuntu.com/a/142814/34298 )

Para cambiarlo por toda la sesión de bash actual simplemente ingrese

LANG=C

Para cambiarlo, por ejemplo, a alemán enter

LANG=de_DE.UTF-8


Agregue estas líneas a su ~/.bashrc o ~/.bash_profile para forzar que git muestre todos los mensajes en inglés:

# Set Git language to English #alias git=''LANG=en_US git'' alias git=''LANG=en_GB git''

El alias debe sobrescribir LC_ALL en algunos sistemas, cuando se establece la variable de entorno LC_ALL , que tiene prioridad sobre LANG . Consulte la Especificación de UNIX - Variables de entorno para obtener una explicación más detallada.

# Set Git language to English #alias git=''LC_ALL=en_US git'' alias git=''LC_ALL=en_GB git''

En caso de que agregue estas líneas a ~/.bashrc el alias se definirá cuando comience un nuevo caparazón interactivo. En caso de que lo hayas agregado a ~/.bash_profile el alias se aplicará al iniciar sesión.