Freebsd locales (gettext)

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!


I have problems implementing i18n on my site hosted on a FreeBSD
server. 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:

|-- index.php
`-- locale
     |-- en_US.ISO8859-1
     |   `-- LC_MESSAGES
     |       |--
     |       `-- OOModelProvider.po
     `-- sr_YU.ISO8859-2
         `-- LC_MESSAGES
             `-- 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

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.


Site Timeline