Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Hallo zusammen,
ich versuche nun seit tagen PHP gettext zu laufen zu bringen. entsprechend PHPinfo ist alles richtig installiert.
gettext GetText Support enabled
root@quicky-3000-N200:~# php5 -v PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 19:00:43) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
root@quicky-3000-N200:~# sudo apt-get install php-gettext Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Statusinformationen werden eingelesen... Fertig php-gettext ist schon die neueste Version. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Verwunderlich ist nur, das keine PHP gettext.so (andere schon) auf dem Rechner zu finden ist. In php.ini eingetragen extension=gettext.so
/var/log/apache2/error.log: 58 2013 [notice] caught SIGTERM, shutting down PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/gettext.so' - /usr/lib/php5/20090626+lfs/gettext.so: undefined symbol: PL_thr_key in Unknown on line 0 59 2013 [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.4 with Suhosin-Patch configured -- resuming normal operations Wenn ich mit meinem Testprogramm versuche gettext zu verwenden passiert folgender Fehler.
Lauf 1 (bindtextdomain($domain, "./locale/"); Es fehlt das schliessende '/' hinter locale und bindtextdomain setup isn't working.
de ,a-t-c_de , ISO-8859-15
Gettext setup isn't working
/var/www/htdocs/locale bindtextdomain setup isn't working
ISO-8859-15 bind_textdomain_codeset setup isn't working
a-t-c_de textdomain setup isn't working
We translated it correctly
Lauf 2 (bindtextdomain($domain, "./localen/"); Nachdem ich nun aus lokale lokalen gemacht habe ist ergebnist "We translated it correctly" aber der Inhalt von bindtextdomain "/var/www/htdocs/localen/" fehlt.
Wer kann mir da helfen ? Auf einen anderem Linux Server läuft die Applikation ohne Probleme (siehe http://a-t-c.ch/phpinfo.php )
Vielen Dank für eure Hilfe.
Gruss gert
Testprogramm <?php // Melde alle PHP Fehler (siehe Changelog) error_reporting(E_ALL);
//var_dump($_SESSION);
$lang1 = 'de_DE'; $_SESSION['LANG'] = 'de'; // Set language to Lang putenv("LANG=$lang1"); // teilt gettext die Sprache mit setlocale(LC_ALL, $lang1);
$locale = $_SESSION['LANG']; // setzt die Sprache $domain = 'a-t-c_'.$_SESSION['LANG'] ; $encoding = 'ISO-8859-15'; // setzt die Zeichenkodierung
// teilt gettext die Sprache mit setlocale(LC_MESSAGES, $locale);
// teilt gettext mit, wo es die ?bersetzungen suchen soll bindtextdomain($domain, './locale');
// teilt gettext die zu verwendene Zeichenkodierung mit bind_textdomain_codeset($domain, $encoding);
// weist gettext an, die definierte Dom?ne zu verwenden textdomain($domain);
// gettext erwartet die ?bersetzung nun in //./de/LC_MESSAGES/A-T-C.mo echo " $locale ,$domain , $encoding <br>";
if( gettext("Hello World!") === "Hola a todos!" ) { print "We translated it correctly"; } else { print "Gettext setup isn't working<br>"; }
$bindtextdomain_set = bindtextdomain($domain, "./locale/"); if (empty($bindtextdomain_set)) { print $bindtextdomain_set." We translated it correctly<br>"; } else { print $bindtextdomain_set." bindtextdomain setup isn't working<br>"; }
$bind_textdomain_codeset = bind_textdomain_codeset($domain, $encoding); if (empty($bind_textdomain_codeset)) { print $bind_textdomain_codeset." We translated it correctly"; } else { print $bind_textdomain_codeset." bind_textdomain_codeset setup isn't working<br>"; }
$textdomain = textdomain($domain); if (empty($textdomain)) { print $textdomain." We translated it correctly"; } else { print $textdomain." textdomain setup isn't working<br>"; }
$setlocale = setlocale(LC_MESSAGES, $locale); if (empty($setlocale)) { print $setlocale." We translated it correctly"; } else { print $setlocale." bind_textdomain_codeset setup isn't working<br>"; }
?>

