他のプログラムの言語を変更せずにLinuxインストールでgitの言語を英語に変更したいのですが、設定が見つかりませんでした。どうやってするの?
他のプログラムの言語を変更せずにLinuxインストールでgitの言語を英語に変更したいのですが、設定が見つかりませんでした。どうやってするの?
回答:
次の行をに追加する~/.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"
は、ファイルの最後にlikeなどのテストを追加します。また、端末やシステム全体を再起動することなく、オンデマンドで実行させることもできます. .bashrc
。最後に、最初のLC_ALL
環境変数LANG
が優先されるため、ではなく環境変数を設定することをお勧めします。
.bashrc
本当に、すべてが問題ありません。場合はLC_ALL
優先度を持ち、これは問題になり、それが私の言語に設定されています。しかし、その後、一般的な言語設定を変更したくありません... 1つのプログラムで上書きできませんか?
$ LC_ALL="en_US" man
からお試しください$ man
代わりに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"
。ロケールに問題があるため、最近は機能しません。
この行を追加すると、問題が解決しました:
$ more ~/.bash_profile
export LANG=en_US
注: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_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
。これら2つのロケールは、オペレーティングシステムにあらかじめインストールされています。
LC_ALL
これらすべてをオーバーライドする環境変数です。通常、特定のプログラムを実行するスクリプトで使用されます。たとえば、GNUによって生成されたスクリプトを構成しautoconf
ます。LC_ALL
の構成テストは、ロケールに依存した方法で動作していないことを確認します。一部のシステムは、残念ながら、同様の初期化ファイルに設定さ
LC_ALL
れてい/etc/profile
ます。したがって、ユーザーは、LANG
必要に応じて他のLC_xxx
変数を設定したい場合は、この変数を設定解除する必要があります。
LANG
使用git
している(または起動git-gui
している)bash / shell / DOSセッションで設定している限り、git
(またはgit-gui
)のみがその特定の設定を使用します。他のすべてのプログラムは、システム/ユーザー環境変数を継承します。
ロケール言語が見つからない場合、GITはデフォルトで英語に設定されます。
したがって、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/
。
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
か?