Hedge Posted November 11, 2009 Share Posted November 11, 2009 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 <?php error_reporting(E_ALL); include("config.inc.php"); echo $locale; setlocale(LC_ALL, "eng_USA"); echo '<br>'.gettext('Which data is transferred by the client ?'); ?> localization.php <?php $locale = ''; $parameter=explode ( '/' , $_SERVER['REQUEST_URI']); $locale_change = $parameter[1]; 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 Link to comment https://forums.phpfreaks.com/topic/181097-gettext-translates-always/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.