views:

98

answers:

2

Complete C++ i18n gettext() “hello world” example. sets the LANG environment variable using export before executing the program (Linux):

export LANG=es_MX.utf8
./hellogt

Is there a way to set the language just while executing hellogt, like a command line argument? This would be handy for testing programs.

+3  A: 

You mean something like:

LANG=es_MX.utf8 ./hellogt

? Or maybe you mean you want to parse the commandline (argv), find the language passed in, and pass it to setlocale?

Tanktalus
For testing programs so without modifying the code.
C.W.Holeman II
So, the first one.
Tanktalus
+1  A: 

In ksh, bash, and similar shells,

LANG=es_MX.utf8 ./hellogt

will set LANG=es_MX.utf8 only for the invocation of ./hellogt.

More portably, there is a program called env

env LANG=es_MX.utf8 ./hellogt

which will set environment variables and run the program specified. This works in all shells, including csh and traditional sh (which do not support the first method).

ephemient