Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   PHP: gettext übersetzt immer (https://www.delphipraxis.net/143173-php-gettext-uebersetzt-immer.html)

Hedge 11. Nov 2009 09:28


PHP: gettext übersetzt immer
 
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.

Hedge 11. Nov 2009 17:50

Re: PHP: gettext übersetzt immer
 
Habe rausgefunden, dass es ein Windows 7-spezifisches Problem ist.

Man kann keine Umgebungsvariablen ohne Weiteres setzen.

Ich kenne leider keinen Workaround dafür, aber solange es auf dem Server funktioniert ist alles ok.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz