временно изменить язык мерзавца - PullRequest
1 голос
/ 02 мая 2019

Я написал довольно длинный скрипт на Python, который в нескольких местах вызывает git с подпроцессом Python и сопоставляет вещи, которые возвращает git, например:

nothing to commit, working tree clean
fast-forwardable
up to date

Коллега пошел использовать сценарий, и он не вел себя так, как ожидалось, поскольку его мерзавец использовал местную немецкую локаль с сообщениями вроде:

nichts zu committen, Arbeitsverzeichnis unverändert

Я не думал об этом в то время. Вы можете увидеть здесь и здесь некоторые идеи для постоянного изменения языка.

Конечно, я не хочу изменять настройки на ПК, на которых выполняется мой скрипт, возможно ли сказать git вернуться в en_US только для одной команды?

На самом деле, когда я писал скрипт, у меня была установлена ​​система на en_GB и я удивлялся, использовал ли мой git en_GB или en_US и есть ли какая-либо разница. Можно ли попросить git сказать, на каком языке он работает? Однако это второстепенная проблема, если бы можно было сказать git о временном использовании en_US, этого было бы достаточно.

Ответы [ 4 ]

3 голосов
/ 02 мая 2019

На самом деле вы можете добавить к любой команде в командной консоли любую переменную, которая будет применяться только для этой команды, будь то git или любая другая. Просто введите его, затем отделите его от вашей команды пробелом:

$ LANG=fr_FR sh -c 'echo $LANG'
fr_FR
$ echo $LANG
en_us.UTF-8

Возможно, вы захотите использовать C, однако, чтобы убедиться, что вы используете язык по умолчанию для команды, которую вы запускаете:

$ LANG=C git

Имейте в виду, однако, что выбранный язык может быть недоступен, если он не был скомпилирован. Обычный английский, тем не менее, должен присутствовать почти всегда, поскольку в общем случае это тот, на котором написаны строки программного обеспечения.

2 голосов
/ 02 мая 2019

Установить LANG где-нибудь в начале сценария:

#!/bin/sh

LANG=en_US
export LANG

Настройка работает для текущей оболочки (то есть сценария) и подпроцессов, порожденных из нее, включая git.

2 голосов
/ 02 мая 2019

Добавьте к команде git требуемый язык, чтобы применить изменения только для этой команды.

, например

По умолчанию (en_US.UTF-8)

$ git status
fatal: Not a git repository (or any of the parent directories): .git

На немецком,

$ LANG=de_DE.UTF8 git status
fatal: Kein Git-Repository (oder irgendein Elternverzeichnis): .git

LANG Формат:

<LANGUAGE>_<TERRITORY>.<CODESET>[@<MODIFIERS>]
2 голосов
/ 02 мая 2019

попробуйте для одной строки:

LANG=en_US git ...your command...

или для этого сеанса bash:

export LANG=en_US
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...