gettext not working under local xampp

Discussion in 'PHP' started by thosecars82, Apr 13, 2010.

  1. #1
    I have a problem with this code
    
    <?
    Header( "HTTP/1.1 301 Moved Permanently" ); 
    Header( "Location: http://www.example.com" ); 
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Untitled Document</title>
    </head>
    
    <body>
    <?php
    $language="fr_FR";
    putenv("LC_ALL=$language");
    setlocale(LC_ALL, $language);
    bindtextdomain("messages", "./locale");
    textdomain("messages");
    print "<p>"._("hi! This website is written in English.")."</p>\n";
    ?>
    </body>
    </html>
    
    Code (markup):
    No matter what string I set the variable $language with that gettext will always look for a translation in the folder locale\es_ES\LC_MESSAGES whether the language is Spanish (es_ES) or not. For example, in the above code, gettext will not look for the French translation as it should in
    locale\fr_FR\LC_MESSAGES but it will look for the translation into the folder corresponding to Spanish language, that is to say, locale\es_ES\LC_MESSAGES.

    Moreover, if gettext does not find the folder locale\es_ES\LC_MESSAGES then
    it will display the string in the original language(English) even if $language equals "fr_FR" and at the same time there is a locale\fr_FR\LC_MESSAGES folder created and the corresponding messages.mo and messages.po files created in this folder.

    I made sure that I re-run Apache and MySql under Xampp whenever I change anything in the code but it keeps having this undesired behaviour anyways.

    Do you have any idea about why only translations in .po files in the Spanish folder locale\es_ES\LC_MESSAGES are considered and not those translations corresponding to other languages and their corresponding folders?

    Thanks in advance.
     
    thosecars82, Apr 13, 2010 IP
  2. paipiski

    paipiski Peon

    Messages:
    37
    Likes Received:
    0
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Did you try showing errors ?
    
    
     error_reporting(E_ALL);
     ini_set("display_errors", 1); 
     
    Code (markup):
     
    paipiski, Apr 21, 2010 IP