Re: [PHP] gettext() troubles

[email protected] (Jochem Maas)
Newsgroups php.general,php.i18n
Message-ID <[email protected]>
Aaron Gould wrote:
> Denis Gerasimov wrote:
> 
>> <?php
>> putenv("LANG=ru_RU");
>> setlocale (LC_ALL,"ru");
>> $domain = 'messages';
>> echo bindtextdomain ($domain, 'D:\intranet\wwwroot\lng');
>> echo textdomain ($domain);
>> echo bind_textdomain_codeset($domain, 'UTF-8');
>> echo gettext("string");
>> ?>
> 

anyone who has worked with locales on different machines/platforms
will probably run into the problem that locales are different and/or
differently named on alot of systems...

for this reason (I believe) set_locale() allows you to pass
an array of locale names as the second arg - the first one found will be used...

e.g. (I use dutch locales alot):

setlocale( LC_ALL,
	   array('nl_NL@euro',
		 'nl_NL',
		 'nld_nld',
		 'Dutch',
		 'Dutch_Netherlands.1252',
  		 'nl_NL.ISO8859-1',
		 'nl') );

maybe that helps a bit.

> 
> Here's what I use to set my language (to French in this case). It works 
> 100% of the time for me:
> 
>   // Set locale to preferred language
>   setlocale(LC_ALL, 'fr_FR');
>   bindtextdomain('messages', $_SERVER['DOCUMENT_ROOT'].'/locale');
>   textdomain('messages');
> 
> I don't do the "putenv" line that you have, so I'm not sure if it's 
> necessary...

it sometimes is I believe - depends on your setup (e.g. if your using CGI version)
- don't hold me to that I could be completely wrong.

>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.