gettext putenv()

südpol

Erfahrenes Mitglied
Hi,

ich erstelle gerade eine neue Webseite und will diese mit Hilfe von gettext mehrsprachig zur Verfügung stellen. Das ganze läuft auf diesem Server in einem anderen Projekt auch ganz gut. In meinem aktuellen Projekt schaffe ich es aber nicht die Umgebungsvarialbe LANG mit Hilfe von putenv() richtig zu setzen.

Ich habe mir dafür einen Part meiner login Klasse geschrieben der wie folgt aussieht:

PHP:
 ...klassen zeugs...
  function set_lang($lang = false) {
    if($lang == false) {
      $lang = $this->user_lang; 
    }
    putenv("LANG=".$lang);
    setlocal(LC_ALL, $lang);
    $domain = "index";
    bindtextdomain($domain, LOCALE_PATH);
    textdomain($domain);
  }
... klassen zeugs ....
Die Konstante LOCALE_PATH ist gesetzt und auch richtig. Die interne Varialbe user_lang ist auch richtig gesetzt. Alle notwenigen Verzeichnisse sind vorhanden und mit richitgen namen versehen ein po und ein mo file ist auch mit dem namen von $domain vorhanden.

Wenn ich jedoch die funktion aufrufe und danach getenv("LANG"); mir ausgeben lasse ist diese Variable leer. Hat jemand eine Idee woran das liegen kann? Wenn ich putenv() direkt ohne die Klasse aufrufe dann geht es. Wie kann das sein?

Gruß
 
Versuchs mal mit
Code:
setlocale(LC_ALL, $lang);
...sonst hast du einen "Fatal error", womit deine Funktion für die Katz ist(stell mal dein error_reporting während der Entwicklungsphase auf E_ALL, das erleichtert die Fehlerdiagnose ungemein ;))
 
Hi,

öhm ok das war ein abtippfehler. Ich entwickle remote von einer Windows Maschine auf einem Linux System und kann daher den code nicht so einfach kopieren und extra scp zu starten war mir zu blöd wegen den 2 Zeilen :-). Das error reporting ist auf E_ALL. Wenn ich innerhalb der klasse ein getenv("lang") mache und den output in mein logfile schreibe dann stimmt das Ergebnis...

Gruß
 
Zurück