Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the language for Subversion error messages

For some reason, subversion is returning me error messages in what I think is German:

# svn up . 
svn: Zielpfad existiert nicht

Unfortunately, I don't know that language... Before I resort to using a online translation engine to work with this, I figured I'd try to fix it. I figure I'm just doing something very simple wrong. I'm running subversion 1.6.4 installed via yum on centos (upgraded from 1.4.something that was having the same problem). This is on a VPS admined with CPanel.

From what I can tell, it's trying to load english messages and failing. I see this in the strace output:

open("/usr/share/locale/en_US/LC_MESSAGES/subversion.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/subversion.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
brk(0x4106d000)                         = 0x4106d000
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)

Normal SVN commands are in english (svn help, svn help up, etc), just the error messages are in german. For all I know, it's been this way the whole time I've used the machine and I've just never gotten an error message from Subversion...

:: locale
LANG=en_US
LC_CTYPE="en_US"
LC_NUMERIC="en_US"
LC_TIME="en_US"
LC_COLLATE="en_US"
LC_MONETARY="en_US"
LC_MESSAGES=en_US
LC_PAPER="en_US"
LC_NAME="en_US"
LC_ADDRESS="en_US"
LC_TELEPHONE="en_US"
LC_MEASUREMENT="en_US"
LC_IDENTIFICATION="en_US"
LC_ALL=

I've also run:

export LC_MESSAGES=en_US
export LANG=en_US

Any ideas what I should be looking at next?

Update: Based on Phil's suggestion, I've run

export LANG=C
export LC_MESSAGES=C

and now locale outputs:

LANG=C
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES=C
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=

And it still is giving german messages... I'm beginning to think the version of subversion I have was compiled with German messages, and since it's not finding any language-specific message files, I'm getting the built-in German messages. Now to figure out how that happened....

like image 706
Jonathan Rupp Avatar asked Aug 22 '09 10:08

Jonathan Rupp


3 Answers

If you are having this issue in Windows, it's likely that your system code page is set to a language other than english. In windows, the subversion.mo files are stored at: "c:\Program Files\Subversion\share\locale" possibly "c:\Program Files (x86)" if you're on a 64 bit system. If you rename the language it's displaying it now, subversion should default back to english.

like image 78
Steve Avatar answered Sep 30 '22 07:09

Steve


Try setting those locale variables to "C". That means that nothing should be passed through any translation engine.

export LANG=C
export LC_MESSAGES=C

that should be enough. If it's still throwing German at you, I think maybe I'd start questioning how you installed Subversion.

like image 26
Philip Reynolds Avatar answered Sep 30 '22 05:09

Philip Reynolds


We had the same problem. We put on the .bashrc

export LANG=en_US

and it worked.

like image 31
Rafael Avatar answered Sep 30 '22 06:09

Rafael