Viele kennen es: FreePBX wurde frisch installiert, die gettext Extension von PHP aktiviert und trotzdem ändert sich nach der Auswahl einer anderen Sprache oben rechts nichts an der Oberfläche und das obwohl sogar der Cookie richtig gesetzt wurde.
Die Lösung für dieses Problem ist ganz einfach:
Die Datei FREEPBX_INSTALL_PATH/admin/header.php öffnen und folgenden Code suchen:
function set_language() { if (extension_loaded('gettext')) { if (isset($_COOKIE['lang'])) { setlocale(LC_ALL, $_COOKIE['lang']); putenv("LANGUAGE=".$_COOKIE['lang']); } else {
Dieser muss zu
function set_language() { if (extension_loaded('gettext')) { if (isset($_COOKIE['lang'])) { setlocale(LC_ALL, $_COOKIE['lang'].".UTF-8"); putenv("LANGUAGE=".$_COOKIE['lang'].".UTF-8"); } else {
geändert werden.
Um auch die Oberfläche des Anrufbeantworters zu ändern (Recordings) muss die Datei FREEPBX_INSTALL_PATH/recordings/includes/lang.php geändert werden. Folgender Code muss gesucht werden
$language = isset($_COOKIE['ari_lang']) ? $_COOKIE['ari_lang'] : $locale; putenv("LANG=$language"); putenv("LANGUAGE=$language"); setlocale(LC_MESSAGES,$language"); bindtextdomain('ari','./locale'); bind_textdomain_codeset('ari', 'UTF-8'); textdomain('ari');
und zu
$language = isset($_COOKIE['ari_lang']) ? $_COOKIE['ari_lang'] : $locale; putenv("LANG=$language"); putenv("LANGUAGE=$language"); setlocale(LC_MESSAGES,$language.".UTF-8"); bindtextdomain('ari','./locale'); bind_textdomain_codeset('ari', 'UTF-8'); textdomain('ari');
geändert werden.