I'm using gettext with the new version of XAMPP (5.3.0) on Windows Seven RTM (build 7600) gettext-support is enabled. It used to work perfectly a few weeks ago. I'm not quite sure what changed this. Be it source changes or the new PHP version. Now it's translating all the time to Germany although the default-language is English.
To test this, I got 2 files:
gettext.php
Code: <?php error_reporting(E_ALL); include("config.inc.php"); echo $locale; setlocale(LC_ALL, "eng_USA"); echo ' '.gettext('Which data is transferred by the client ?'); ?> localization.php
if ($locale_change!=false) { if ($locale_change=="de") { $locale = "de_DE"; setcookie("locale", $locale, time()+60*60*24*30, "/");// save a cookie } else if ($locale_change=="en") { $locale = "en_US"; setcookie("locale", $locale, time()+60*60*24*30, "/");// save a cookie } } if (!$locale && isSet($_COOKIE["locale"])) { $locale = $_COOKIE["locale"]; } $locale="en_US"; putenv("LC_ALL=$locale");//needed on some systems putenv("LANG=$locale");//needed on some systems putenv("LANGUAGE=$locale");//needed on some systems
bindtextdomain("messages", "./locale/"); bind_textdomain_codeset("messages", 'UTF-8'); textdomain("messages"); ?> The output is always:
en_US Welche Daten sendet die Client-Software ?
setlocale return false for en_US. If I use the Windows-typical notation "eng_USA" then it returns English_United States.1252 but the text will be translated to German anyways :/
I have really no clue what's going wrong.
I've put together these test-file and the local files if you want to see yourself what is going wrong. You can download it via www.ali.dj/gettext.zip