Einzelnen Beitrag anzeigen

Hedge

Registriert seit: 30. Jun 2007
278 Beiträge
 
Delphi 2009 Professional
 
#1

PHP: gettext übersetzt immer

  Alt 11. Nov 2009, 09:28
Ich benutze gettext mit der neuesten Version von Xampp (also PHP 5.3.0).
Der Support dafür ist enabled.

Bevor ich Xampp aktualisiert habe funktionierte es perfekt, aber jetzt übersetzt es IMMER alles auf Deutsch obwohl standardmäßig alles auf Englisch drinsteht.

Ich hab zum Testen 2 Dateien:

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
Code:
<?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");
?>
Die Ausgabe ist immer:

en_US
Welche Daten sendet die Client-Software ?

setlocale liefert übrigens false zurück. Wenn ich dagegen die Windows-typischere Notation ("eng_USA") verwende, dann liefert es English_United States.1252 zurück, aber der Text wird trotzdem auf Deutsch übersetzt.
٩๏̯͡๏)۶
  Mit Zitat antworten Zitat