|  | Posted by Darko on 10/26/07 14:54 
Hi,
 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:
 
 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.
  Navigation: [Reply to this message] |