[luatex] i18n with LuaTeX

Taco Hoekwater taco at elvenkind.com
Mon Jul 11 15:20:54 CEST 2011


On 07/11/2011 01:57 PM, Patrick Gundlach wrote:
> Hi,
>
> I am thinking of using GNU gettext together with LuaTeX. Two questions:
>
> 1) (off topic) which environment variable should I check for the current language? LANG? Or is this a "it depends" answer?

It depends on what do you want to know / do. The IEEE specification 
basically has this to say:

The values of locale categories shall be determined by a precedence 
order; the first condition met below determines the value:

*    If the LC_ALL environment variable is defined and is not null, the 
value of LC_ALL shall be used.

*    If the LC_* environment variable ( LC_COLLATE , LC_CTYPE , 
LC_MESSAGES , LC_MONETARY , LC_NUMERIC , LC_TIME ) is defined and is not 
null, the value of the environment variable shall be used to initialize 
the category that corresponds to the environment variable.

*    If the LANG environment variable is defined and is not null, the 
value of the LANG environment variable shall be used.

*    If the LANG environment variable is not set or is set to the empty 
string, the implementation-defined default locale shall be used.



> 2) can I safely assume that this variable from question 1 is not cleared by LuaTeX? The following section in the LuaTeX documentation makes me a bit nervous:

Current luatex does exactly what is documented below. If (when) luatex
switches to luatex 5.2, some of these will likely go away (LC_NUMERIC
may have to stay, depending on the exact details of luatex 5.2).

It is highly unlikely (but I dare not say 'impossible') that any new
environment variables will need to be altered to counteract odd lua
behaviour.


> "In stock Lua, many things depend on the current locale. In LuaTEX, we can't do that, because it makes documents unportable. While LuaTEX is running if forces the following locale settings:
> LC_CTYPE=C
> LC_COLLATE=C
> LC_NUMERIC=C
> "

Best wishes,
Taco


More information about the luatex mailing list