On Wednesday, January 15, 2003, at 04:26 AM, Jens-Christoph Brendel wrote:

..... The problem remains that with this method only the "C" locale can be set correctly. Files for certain parts of a complete locale definition (e.g. LC_COLLATE) are missing. Perl looks for LC_COLLATE and shows the cited error message just because this can't be found. It's therefore impossible to use other language specific locales than "C" (for example "de_DE" as I tried).
Assuming that the errors you mention are the same as your original post, you don't need to compile locales. On OSX the locales are stored in /usr/share/locale, this is what I get when I type 'ls /usr/share/locale':

C en_GB.ISO8859-15 hr_HR.ISO8859-2 no
be en_GB.US-ASCII hu_HU.ISO8859-2 no_NO
bg_BG.CP1251 en_US is_IS no_NO.ISO8859-1
cs en_US.ISO8859-1 is_IS.ISO8859-1 no_NO.ISO8859-15
cs_CZ.ISO8859-2 en_US.ISO8859-15 is_IS.ISO8859-15 pl
da en_US.US-ASCII it pl_PL.ISO8859-2
da_DK eo it_CH pt
da_DK.ISO8859-1 es it_CH.ISO8859-1 pt_PT
da_DK.ISO8859-15 es_ES it_CH.ISO8859-15 pt_PT.ISO8859-1
de es_ES.ISO8859-1 it_IT pt_PT.ISO8859-15
de_AT es_ES.ISO8859-15 it_IT.ISO8859-1 ru
de_AT.ISO8859-1 fi it_IT.ISO8859-15 ru_RU.CP866
de_AT.ISO8859-15 fi_FI ja ru_RU.ISO8859-5
de_CH fi_FI.ISO8859-1 ja_JP.EUC ru_RU.KOI8-R
de_CH.ISO8859-1 fi_FI.ISO8859-15 ja_JP.SJIS ru_RU.cp1251
de_CH.ISO8859-15 fr ko ru_RU.koi8r
de_DE fr_BE ko_KR.EUC sl
de_DE.ISO8859-1 fr_BE.ISO8859-1 la_LN.ISO8859-1 sl_SI.ISO8859-2
de_DE.ISO8859-15 fr_BE.ISO8859-15 la_LN.ISO8859-15 sv
en fr_CA la_LN.ISO8859-2 sv_SE
en_AU fr_CA.ISO8859-1 la_LN.ISO8859-4 sv_SE.ISO8859-1
en_AU.ISO8859-1 fr_CA.ISO8859-15 la_LN.US-ASCII sv_SE.ISO8859-15
en_AU.ISO8859-15 fr_CH lt_LT.ISO8859-4 uk
en_AU.US-ASCII fr_CH.ISO8859-1 nl uk_UA.KOI8-U
en_CA fr_CH.ISO8859-15 nl_BE uk_UA.cp1251
en_CA.ISO8859-1 fr_FR nl_BE.ISO8859-1 zh_CN
en_CA.ISO8859-15 fr_FR.ISO8859-1 nl_BE.ISO8859-15 zh_CN.EUC
en_CA.US-ASCII fr_FR.ISO8859-15 nl_NL zh_TW
en_GB he nl_NL.ISO8859-1 zh_TW.Big5
en_GB.ISO8859-1 hr nl_NL.ISO8859-15


<from Perllocale - numbers added by me>
[1] By default, Perl ignores the current locale. The `use locale' pragma tells Perl to use the current locale for some operations:
...
[2] In the scope of `use locale', Perl looks to the `LC_COLLATE' environment variable to determine the application's notions on collation (ordering) of characters.
</from Perllocale>

so in [1] it's saying reguardless of what locale you use outside perl, unless you tell perl otherwise, it uses the LC_ALL='C' locale.
[2] when you try to 'use locale ', perl looks for an Environment variable called LC_COLLATE

So the solution is to set any Environment variables perl complains about, and their values, into the system.plist (which is global, unlike the alternative of setting them in a terminal startup file), by hand, with the Dev Tools Plist Editor or the perl script (duly modified to match your needs ) from the post at http:[EMAIL PROTECTED]/msg03130.html, as you prefer.

It wouldn't hurt to read through perllocale too :-)


HTH

Robin

Reply via email to