Gettext funktioniert lokal, auf dem Webserver nicht

Trash

Erfahrenes Mitglied
Hallo,
ich habe ein Projekt bei dem ich Gettext für die Übersetzung einsetzen möchte. Nun funktioniert meine Implementierung lokal wunderbar (PHP 5.6.2), auf dem Webserver funktioniert es nicht. Wenn ich auf "EN" klicke, passiert nichts. Auf dem Webserver ist PHP 5.4.35 und Linux installiert.

Ich liste hier einmal meinen Code auf und hänge diesen Test als .zip File an. Hat jemand von Euch eine Idee warum es bei mir lokal funktioniert, auf dem Webserver nicht?

Ich wäre über Lösungen sehr dankbar.

PHP:
<?php            
            // get language preference
            if (isset($_GET['lang'])) {
               $language = $_GET['lang'];
            } else {
               $language = "de_DE";
            }      
            
            echo '<b>$lang - var_dump:</b> ';
            var_dump($language);            

            putenv("LANG=" . $language);
            setlocale(LC_ALL, $language);  
          
            // Set the text domain as "s5m"
            $domain = "s5m";
            bindtextdomain($domain, "languages");
            bind_textdomain_codeset($domain, 'UTF-8');  
            textdomain($domain);          
        ?>
        <br/><br/>
        <a href="index.php?lang=en_EN">EN</a> | <a href="index.php">DE</a>
        <br/><br/>      
        <?php echo _('Dies ist ein Test'); ?>

Die Sprachdateien s5m.mo / s5m.po liegen in /languages/en_EN/LC_MESSAGES/
 

Anhänge

  • gettext_test.zip
    4,5 KB · Aufrufe: 2
Hallo,
ich habe es herausgefunden. Auf dem Webserver gibt es kein en_EN, sondern nur en_US. Daher musste ich den Aufruf im Code und in der Ordnerstruktur anpassen.
Evtl ist das hilfreich für jemanden in Zukunft...
 
Zurück