views:

443

answers:

2

I feel dumb asking this, but here it goes. I use gcc/g++ on Linux and since my install is in spanish (my native language), gcc prints warnings and errors in spanish. I rather read them in english for two reasons:

  1. English messages are far easier to google.
  2. Spanish translations are more or less horrible.

Any help? I've googled for this but every "language" topic about gcc and g++ refers to programming language, not human language.

+4  A: 

Try to change the LANG environment variable: http://gcc.gnu.org/onlinedocs/gcc-4.4.0/gcc/Environment-Variables.html#Environment-Variables.

Bastien Léonard
+5  A: 

The end of the GCC manpage contains an overview of its locale environment variables:

  • LANG
  • LC_CTYPE
  • LC_MESSAGES
  • LC_ALL

These environment variables control the way that GCC uses localization information that allow GCC to work with different national conventions. GCC inspects the locale categories LC_CTYPE and LC_MESSAGES if it has been configured to do so. These locale categories can be set to any value supported by your installation. A typical value is en_GB.UTF-8 for English in the United Kingdom encoded in UTF-8.

The LC_CTYPE environment variable specifies character classification. GCC uses it to determine the character boundaries in a string; this is needed for some multibyte encodings that contain quote and escape characters that would otherwise be interpreted as a string end or escape.

The LC_MESSAGES environment variable specifies the language to use in diagnostic messages.

If the LC_ALL environment variable is set, it overrides the value of LC_CTYPE and LC_MESSAGES; otherwise, LC_CTYPE and LC_MESSAGES default to the value of the LANG environment variable. If none of these variables are set, GCC defaults to traditional C English behavior.

I do this:

LC_MESSAGES=C gcc-command-here
Johannes Schaub - litb
Weird LC_MESSAGES=C had no effect on the error being reported in UTF-8 while LC_ALL=C definitely did the trick, thanks!
dolzenko