Я хотів би змінити мову git (на англійську) у моїй установці Linux без зміни мови для інших програм і не зміг знайти налаштування. Як це зробити?
Я хотів би змінити мову git (на англійську) у моїй установці Linux без зміни мови для інших програм і не зміг знайти налаштування. Як це зробити?
Відповіді:
Додайте ці рядки до свого ~/.bashrc
чи ~/.bash_profile
змушуйте git відображати всі повідомлення англійською мовою:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
Псевдонім потрібно перекрити LC_ALL
в деяких системах, коли встановлена змінна середовище LC_ALL
, яка має перевагу над LANG
. Для подальшого пояснення див. Специфікацію UNIX - Змінні середовища .
# Set Git language to English
#alias git='LC_ALL=en_US git'
alias git='LC_ALL=en_GB git'
У випадку, якщо ви додали ці рядки до ~/.bashrc
псевдоніму, буде визначено, коли запуститься нова інтерактивна оболонка. У випадку, якщо ви додали його до ~/.bash_profile
псевдоніму, буде застосовано під час входу.
.bash.rc
замість .bashrc
) була написана помилка друку . Вам також потрібно закрити і запустити оболонку заново для .bashrc
виконання. Я також додав до цього записку.
.bashrc
навіть при перезапуску. Псевдоніми працюють. Це мова не змінюється.
.bashrc
виконується успішно, ви можете додати тест, як echo "This is .bashrc"
у кінці файлу. Ви також можете його виконати на вимогу без перезавантаження терміналу або всієї системи . .bashrc
. Нарешті, я б запропонував спробувати встановити LC_ALL
змінну середовища замість LANG
, оскільки перша має перевагу.
.bashrc
, справді, все добре . Якщо LC_ALL
буде пріоритет, то це буде проблема, вона встановлена на моїй мові. Але тоді я не хочу змінювати загальні параметри мови ... Не можу я замінити його для однієї програми?
$ LC_ALL="en_US" man
а потім$ man
Якщо ви хочете мати одну команду англійською мовою, ви можете просто написати LC_ALL=C
перед командою, наприклад:
LC_ALL=C git status
призведе до
# On branch master
nothing to commit, working directory clean
Використовувана C
мова англійською мовою та завжди доступна без встановлення додаткових мовних пакетів
(див. Https://askubuntu.com/a/142814/34298 )
Щоб змінити це протягом усього поточного сеансу bash, просто введіть
LANG=C
Щоб змінити його, наприклад, на німецький enter
LANG=de_DE.UTF-8
LC_ALL=C
пропозицію, оскільки у мене є деякі проблеми з локальною LC_ALL="en_US"
функцією, останнім часом я не працював.
Додавання цього рядка вирішило проблему для мене:
$ more ~/.bash_profile
export LANG=en_US
Примітка: оскільки Git 2.3.1+ (Q1 / Q2 2015), Git додасть заголовок Accept-Language, якщо це можливо.
Див. Комісію f18604b від Yi EungJun ( eungjun-yi
)
Додайте
Accept-Language
заголовок , який вказує на кращі мови в користувача визначається$LANGUAGE
,$LC_ALL
,$LC_MESSAGES
і$LANG
.Це дає серверам git можливість відображати віддалені повідомлення про помилки на бажаній мові користувача.
Ви маєте місце для git gui чи інших графічних інтерфейсів ,але не для командного рядка, вважаючи, що це було одним із питань GitSurvey 2010
localization of command-line messages (i18n) 258 3.6%
Звичайно, з 2010 року, як po/README
описано:
Перш ніж рядки можуть бути перекладені, їх спочатку потрібно позначити для перекладу.
Git використовує інтернаціоналізаційний інтерфейс, який охоплює
gettext
бібліотеку системи , тому більшість порад у вашій документації gettext (щодо систем GNUinfo gettext
в терміналі) застосовується.
Діє з git 1.7.9+ (січень 2012):
Git використовує
gettext
для перекладу своїх найпоширеніших повідомлень інтерфейсу на мову користувача, якщо доступні переклади та розміщена мова належним чином .
Дистриб'ютори можуть скидати новіPO
файли,po/
щоб додати нові переклади.
Отже, якщо ваше оновлення зіпсувало переклад, перевірте, що gettext
використовує:
Див., Наприклад, " Змінні середовища локальної локації "
Локал складається з декількох категорій локалів, див. Аспекти. Коли програма шукає значення, залежні від локальних даних, це робить це відповідно до таких змінних середовищ, у порядку пріоритетності:
LANGUAGE
LC_ALL
LC_xxx, according to selected locale category: LC_CTYPE, LC_NUMERIC, LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES, ...
LANG
Змінні, значення яких встановлено, але порожніми, ігноруються в цьому пошуку.
LANG
- це звичайна змінна середовище для визначення локальної точки. Як користувач, ви зазвичай встановлюєте цю змінну (за винятком випадків, коли деякі інші змінні вже встановлені системою, у/etc/profile
подібних файлах ініціалізації).
LC_CTYPE
,LC_NUMERIC
,LC_TIME
,LC_COLLATE
,LC_MONETARY
,LC_MESSAGES
, І так далі, змінні оточення , призначені для перевизначенняLANG
і зачіпають тільки одну категорію локалі.
Наприклад, припустимо, що ви шведський користувач в Іспанії, і ви хочете, щоб ваші програми обробляли цифри та дати відповідно до іспанських конвенцій, і лише повідомлення повинні бути шведською мовою. Тоді ви можете створити локаль з назвою "sv_ES
" або "sv_ES.UTF-8
" за допомогоюlocaledef
програми. Але простіше і досягає того ж ефекту, щоб встановитиLANG
змінну доes_ES.UTF-8
таLC_MESSAGES
змінну доsv_SE.UTF-8
; ці два локали вже встановлені з операційною системою.
LC_ALL
- це змінна середовище, яка переосмислює все це. Зазвичай він використовується в сценаріях, які виконують певні програми. Наприклад, конфігуруйте сценарії, створені приautoconf
використанні GNULC_ALL
, щоб переконатися , що тести конфігурації не працюють в локалі залежні шляху.Деякі системи, на жаль, встановити
LC_ALL
в/etc/profile
або в аналогічних файлах ініціалізації. Таким чином, як користувач, вам доведеться скинути цю змінну, якщо ви хочете встановитиLANG
і необов'язково деякі іншіLC_xxx
змінні.
LANG
сеанс bash / shell / DOS, який ви використовуєте git
(або запускаєте git-gui
з нього), лише git
(або git-gui
) буде використовувати це певне налаштування. Усі інші програми будуть успадковані від змінних систем / середовища користувача.
GIT за замовчуванням англійською мовою, якщо він не може знайти мову мови.
Тож якщо ви хочете, щоб GIT був англійською мовою, просто саботуйте мовний файл, на якому він працює. У моєму випадку він завжди працював з німецькою мовою (тобто: de.msg ).
Якщо я видалив його або перейменував його, то він за замовчуванням перейшов на англійську мову.
Тут я перейменував файл
C:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.mo
.
/usr/local/Cellar/git/2.21.0/share/locale/
.
Як запропонував Бенгт: додайте ці рядки до свого ~/.bashrc
або ~/.bash_profile
змушуйте git відображати всі повідомлення англійською мовою:
vim ~/.bashrc
- для цього профілю (якщо ви користувач ubuntu
і ви редагуєте це, це буде лише для цього користувача); додати ці рядки:
# Set Git language to English
#alias git='LANG=en_US git'
alias git='LANG=en_GB git'
#you can add also
LANG=en_GB
і після закриття файлу потрібно записати в оболонку:
source ~/.bashrc
перезавантажити нові налаштування або вийти з терміналу та підключитися знову :)
LANG=en_GB
в ~/.bashrc
повинен робити? Чи це не просто визначає локальну змінну LANG
?
Ось моє рішення змінити мову git наступного відповіді на це і це
1) nano ~/.bashrc
2) додати alias git='LANG=en_GB git'
у файл
2) зберегти файл
4)source ~/.bashrc
Тепер ваш git вже міняє мову. Однак якщо після перезавантаження терміналу він більше не працює, вам потрібно
4.1) nano ~/.profile
4.2) додати source ~/.bashrc
4.3) зберегти файл
вона source ~/.bashrc
запускатиметься кожного разу, коли ви відкриєте термінал
Сподіваюся, це допоможе