Gitのコマンドラインインターフェイスの言語を変更するにはどうすればよいですか?


103

他のプログラムの言語を変更せずにLinuxインストールでgitの言語を英語に変更したいのですが、設定が見つかりませんでした。どうやってするの?


1
ロケールを変更しようとしています。その質問をスーパーユーザーに再投稿します。
JosefAssad 2012年

回答:


145

次の行をに追加する~/.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実行するには、シェルを閉じてから再起動する必要もあります。これについてもメモを追加しました。
Bengt

.bashrc再起動しても自分で試してみました。エイリアスは機能します。言語が変わらないだけです。
user905686

.bashrcが正常に実行されたことを確認するにecho "This is .bashrc"は、ファイルの最後にlikeなどのテストを追加します。また、端末やシステム全体を再起動することなく、オンデマンドで実行させることもできます. .bashrc。最後に、最初のLC_ALL環境変数LANGが優先されるため、ではなく環境変数を設定することをお勧めします。
Bengt

.bashrc本当に、すべてが問題ありません。場合はLC_ALL優先度を持ち、これは問題になり、それが私の言語に設定されています。しかし、その後、一般的な言語設定を変更したくありません... 1つのプログラムで上書きできませんか?
user905686

1
これらの変数は、コマンドが終了するまでの間のみ有効であるため、推奨される方法を使用して副作用なしで言語を設定できます。実行して$ LC_ALL="en_US" manからお試しください$ man
Bengt

20

代わりに1つのコマンドを英語で使用したい場合は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

たとえばドイツ語に変更するには

LANG=de_DE.UTF-8

LC_ALL=C提案に感謝しますLC_ALL="en_US"。ロケールに問題があるため、最近は機能しません。
user905686 2014

11

この行を追加すると、問題が解決しました:

$ more ~/.bash_profile
export LANG=en_US

2
問題は、gitのみの言語を変更する方法です。わかりやすくするために更新しました。
user905686

6

注:Git 2.3.1以降(2015年第1四半期および第2四半期)以降、Gitは可能であればAccept-Languageヘッダーを追加します。Yi EungJun(によるコミットf18604bを
参照してくださいeungjun-yi

追加Accept-Languageによって定義されたユーザの好みの言語を示すヘッダを$LANGUAGE$LC_ALL$LC_MESSAGESおよび$LANG

これにより、gitサーバーはユーザーの優先言語でリモートエラーメッセージを表示できます。


あなたが持っているgitのGUIのロケールまたはその他のGUIのコマンドラインではなく、GitSurvey 2010の質問の1つであると考えて

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

もちろん、2010年以降、次のようにpo/README説明しています。

文字列を翻訳する前に、まず翻訳のマークを付ける必要があります。

Gitは、システムのgettextライブラリーをラップする国際化インターフェースを使用する ため、(info gettext端末のGNUシステムでの)gettext文書のほとんどのアドバイスが適用されます。

git 1.7.9以降(2012年1月)以降:

gettext翻訳が利用可能で、ロケールが適切に設定されている場合、Gitは最も一般的なインターフェースメッセージをユーザーの言語に翻訳するために使用します
ディストリビューターは新しい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_CTYPELC_NUMERICLC_TIMELC_COLLATELC_MONETARYLC_MESSAGES、というように、上書きするもので、環境変数でありLANG、唯一つのロケールカテゴリに影響を与えます。
たとえば、スペインのスウェーデンのユーザーであり、プログラムでスペインの規則に従って数値と日付を処理し、メッセージのみがスウェーデンである必要があるとします。次に、プログラムを使用して、' sv_ES'または ' sv_ES.UTF-8' という名前のロケールを作成できますlocaledef。しかし、それは単純であり、および設定するには、同じ効果を達成LANGする変数es_ES.UTF-8LC_MESSAGES変数にしますsv_SE.UTF-8。これら2つのロケールは、オペレーティングシステムにあらかじめインストールされています。

LC_ALLこれらすべてをオーバーライドする環境変数です。通常、特定のプログラムを実行するスクリプトで使用されます。たとえば、GNUによって生成されたスクリプトを構成しautoconfます。LC_ALLの構成テストは、ロケールに依存した方法で動作していないことを確認します。

一部のシステムは、残念ながら、同様の初期化ファイルに設定さLC_ALLれてい/etc/profileます。したがって、ユーザーは、LANG必要に応じて他のLC_xxx変数を設定したい場合は、この変数を設定解除する必要があります。


それでは、翻訳はどこから来るのでしょうか?私が尋ねた理由は、更新の前後に英語でgitがあったので、私の言語に変更されましたが、私はこれが好きではありません。
user905686 '19年

@ user905686すみません、私の間違い。Gitはgettextでロケールをサポートします。したがって、環境変数を確認してください。編集した回答でチェックするものを詳しく説明します。
VonC、2012年

他のプログラムではなくgitの言語のみを変更したい場合はどうなりますか?つまり、翻訳ではいくつかの問題が発生するため、gitに(どのプログラムがそれを呼び出すかに関係なく)LANG = Cとその他すべてを私の母国語で常に使用できるようにしたいと考えています。何か案は?
Droggl 2012年

@DrogglでLANG使用gitしている(または起動git-guiしている)bash / shell / DOSセッションで設定している限り、git(またはgit-gui)のみがその特定の設定を使用します。他のすべてのプログラムは、システム/ユーザー環境変数を継承します。
VonC、2012年

4

LC_MESSAGES=C gitLC_ALL = CまたはLANG = Cではなく、を実行します。ファイルを削除したり、ファイル名を変更したりする必要はありません。

このコマンドは、出力Gitメッセージを英語に変更します。


2

ロケール言語が見つからない場合、GITはデフォルトで英語に設定されます。

したがって、GITを英語にしたい場合は、GITを実行している言語ファイルを妨害してください。私の場合、それは常にドイツ語で実行されていました(つまり:de.msg)。

削除したり名前を変更したりすると、デフォルトで英語になりました。

ここに画像の説明を入力してください

ここでファイルの名前を変更しました

ここに画像の説明を入力してください


Git for Windows 2.x(64ビット)では、これはに含まれC:\Program Files\Git\mingw64\share\locale\$LANG\LC_MESSAGES\git.moます。
Koraktor、2015年

このアプローチの利点は、gitの更新後に翻訳が戻る(そしておそらく改善される)ことです。そのため、それを使用するか、もう一度削除するかを再度決定できます。
user905686

ソースコードを確認しましたが、gitは英語をサポートしていないようです:github.com/git-l10n/git-po/tree/master/po 中国語とスウェーデン語(en_GB:en: zh_HK:zh_CN:zh:sv_SE:sv)、gitは中国語を表示します。
Michael Tsang

Homebrewを介してGitがインストールされているMac OSxでは、でロケールが見つかりました/usr/local/Cellar/git/2.21.0/share/locale/
Magnus W

0

Bengtが提案したように:これらの行をに追加する~/.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か?
user905686

0

これが git言語を変更する私の解決策ですこれに答えてくださいこれこれ

1)nano ~/.bashrc
2)alias git='LANG=en_GB git'ファイルに 追加
2)ファイルを保存
4)source ~/.bashrc

これでgitはすでに言語を変更しています。ただし、IFあなたの再起動端子の後に、それはもう機能していない、あなたがする必要があります

4.1)nano ~/.profile
4.2)追加source ~/.bashrc
4.3)ファイルを保存

それは作ります source ~/.bashrcあなたは、端末を開くたびに実行を

それが役に立てば幸い

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.