Я хотів би змінити мову 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запускатиметься кожного разу, коли ви відкриєте термінал
Сподіваюся, це допоможе