如何在 git-gui 中设置所需的语言?

我最近参与了一个项目。我发现 git gui 相当方便(在 OSX Snow Leopard 下) ,但我更希望它不是本地化的(在我的例子中是法语)。是否首选或黑客有 gitgui 显示在英语?

34131 次浏览
export LANG=en_US

should do. It will affect everything you run from this shell, though.

You could remove/rename the translation file from the install, french would be

... /share/git-gui/lib/msgs/fr.msg

Don't know about OS-X, but under windows (msysgit) that would normally be C:\Program Files\Git\share\git-gui\lib\msgs\, and on Linux (and others) /usr/share/git-gui/lib/msgs/ .

(and gitk ... /share/gitk/lib/msgs/ )

For Windows users the are two choices as well:

1) Set the LANG environment variable to en.

a) Overall for Windows: http://www.itechtalk.com/thread3595.html

b) For the git shell only:

If you don't want to affect anything else except git applications you might add the following line in the beginning of C:\Program Files\Git\cmd\git.cmd file:

@set LANG=en

Please note that this will only work when launching commands from the git shell - GIT GUI launched from the start menu will not be affected

2) Delete or rename relevant *.msg file in C:\Program Files\Git\share\git-gui\lib\msgs

You save on not modifying any setup shell (especially if you use cmd.exe shells) but you lose on international functionality.

Credits: These answers originated in the official issue raised in msysgit project which can be found here: http://code.google.com/p/msysgit/issues/detail?id=302

Note that setting @set LANG=en in cmd file helps, but only when you start GitGUI with that cmd file. This is not the case when you start it from the Start menu: it calls wish.exe directly. If you change the link to run cmd script, it shows text command window along with GUI, which is unwanted. That is why for me renaming .msg file is a way of choice.

For Linux you can use from a terminal:

LC_ALL=en_US.utf8 git gui

to start your git-gui for example temporary in english from your current terminal. This solution will affect only your current instance of git-gui and nothing else. Credit goes to Junio C Hamano

Update for use in *.desktop files (persistent solution):

To always start a program with the desired locale setting from your *.desktop file you have to modify it's Exec=... section to start in a modified environment.

From:

...
Exec="/usr/bin/your-program"
...

To:

...
Exec=env LC_ALL=en_US.utf8 "/usr/bin/your-program"
...

Update for missing locales:

Sometimes your system might complain with:

-bash: warning: setlocale: LC_ALL: cannot change locale (en_US)

In this case you most likely don't have the proper locale generated, yet. (If you see English text nevertheless it's probably your system that's using the C locale as a fallback)

Generating the missing locale:

  • How to in a Debian environment
  • How to in an Ubuntu environment