Re: FreeBSD locales



On Oct 26, 4:44 pm, Darko <darko.maksimo...@xxxxxxxxx> wrote:
Hi,

I have problems implementing i18n on my site hosted on a FreeBSD
server, using PHP. While it was hosted on a Linux server, there were
no problems,
but once I transferred it to FreeBSD, gettext() doesn't translate
anything. Here's my directory structure:

public_html
|-- index.php
`-- locale
|-- en_US.ISO8859-1
| `-- LC_MESSAGES
| |-- OOModelProvider.mo
| `-- OOModelProvider.po
`-- sr_YU.ISO8859-2
`-- LC_MESSAGES
|-- OOModelProvider.mo
`-- OOModelProvider.po

And here's the function that calls php locale-related functions:
/* domain is "OOModelProvider", language is "en_US.ISO8859-2"
*/
function setLocale( $language, $domain )
{
@bindtextdomain( $domain, "/home/darko/public_html/
locale/" );
@bind_textdomain_codeset( $domain, "utf-8" );

if ( ! @setlocale( LC_MESSAGES, $language ) )
throw new Exception( "setlocale" );
textdomain( $domain );
}

This worked perfectly on Linux, but it doesn't work with FreeBSD. I
read somewhere that libintl needs to be installed for LC_MESSAGES, but
1. it is installed 2. LC_ALL instead of LC_MESSAGES doesn't work
neither.

Another important note: LC_DATE works, i.e. sprintf and strftime
(which are locale-aware) work as expected, that is, they print the
strings in expected languages.

Also, after I do setlocale(LC_MESSAGES, $language), I call it with "0"
as the second argument and it returns the correct locale set.

Please, if you have any ideas, post them here.

Thanks.

Nobody answered, but I found the solution on some old forum. I know
how it feels when you find someone had already asked the same question
that troubles you, but no answers are given. For the moment you feel
happy, and then you get dissappointed.

Anyway, it seems that stupid FreeBSD doesn't care about what you say
with setlocale(), but instead you have to use the antique technique of
putenv( "LANG=en_US.ISO1859-1" );

So, I finished using setlocale for Linuces (since FreeBSD doesn't
report an error for it, though it doesn't work anything), and the next
line is putenv( ... ), and it works ok.

Bye,

Darko

.



Relevant Pages

  • Freebsd locales (gettext)
    ... I have problems implementing i18n on my site hosted on a FreeBSD ... While it was hosted on a Linux server, there were no problems, ... Also, after I do setlocale(LC_MESSAGES, $language), I call it with "0" ... as the second argument and it returns the correct locale set. ...
    (comp.lang.php)
  • Re: FreeBSD locales
    ... I have problems implementing i18n on my site hosted on a FreeBSD ... While it was hosted on a Linux server, ... And here's the function that calls php locale-related functions: ... as the second argument and it returns the correct locale set. ...
    (comp.unix.programmer)
  • FreeBSD locales
    ... I have problems implementing i18n on my site hosted on a FreeBSD ... While it was hosted on a Linux server, ... And here's the function that calls php locale-related functions: ... as the second argument and it returns the correct locale set. ...
    (comp.unix.programmer)
  • Unicode (was Re: Updating ncurses in base)
    ... I have some notes about Unicode support on FreeBSD here: ... I took this as an excuse to try fiddling with running ... turn off the 'locale' and on the 'utf8' resources ...
    (freebsd-current)
  • Re: linux locales to freebsd: symlink to make php setlocale() happy ?
    ... According to 'locale -a', it looks like that for de_DE: ... There's no standard for locale names (and it shouldn't be ... from the environment variables, ... Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd ...
    (freebsd-stable)