[How-to] Disable translated Language in Admin panel :: Force englsih

found a dirt workaround:

phpList version 3.4.1
Edit the file /admin/languages.php
Lines 61 & 69 add $setlanguage = 'en';
Line 146 add $detectlan = 'en';

Code extract starting line 56

@session_start();

if (isset($_POST['setlanguage']) && !empty($_POST['setlanguage']) && is_array($LANGUAGES[$_POST['setlanguage']])) {
    //# just in case
    $setlanguage = preg_replace('/[^\w_-]+/', '', $_POST['setlanguage']);
//CMAK
    $setlanguage =  'en';
    $_SESSION['adminlanguage'] = array(
        'info'    => $setlanguage,
        'iso'     => $setlanguage,
        'charset' => $LANGUAGES[$setlanguage][1],
        'dir'     => $LANGUAGES[$setlanguage][4],
    );
    SetCookie ( 'preferredLanguage', $setlanguage,time()+31536000);
} elseif (empty($_SESSION['adminlanguage']) && isset($_COOKIE['preferredLanguage'])) {
    $setlanguage = preg_replace('/[^\w_-]+/', '', $_COOKIE['preferredLanguage']);
//CMAK
    $setlanguage =  'en';
    $_SESSION['adminlanguage'] = array(
        'info'    => $setlanguage,
        'iso'     => $setlanguage,
        'charset' => $LANGUAGES[$setlanguage][1],
        'dir'     => $LANGUAGES[$setlanguage][4],
    );
}

Next, the detectlan
Starting line 112

if (!isset($_SESSION['adminlanguage']) || !is_array($_SESSION['adminlanguage'])) {
    if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
        $accept_lan = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    } else {
	$accept_lan = array($GLOBALS['default_system_language']);
    }
    $detectlan = '';

    /* @@@TODO
     * we need a mapping from Accept-Language to gettext, see below
     *
     * eg nl-be becomes nl_BE
     *
     * currently "nl-be" will become "nl" and not "nl_BE";
     */

    foreach ($accept_lan as $lan) {
        if (!$detectlan) {
            if (preg_match('/^([\w-]+)/', $lan, $regs)) {
                $code = $regs[1];
                if (isset($LANGUAGES[$code])) {
                    $detectlan = $code;
                } elseif (strpos($code, '-') !== false) {
                    list($language, $country) = explode('-', $code);
                    if (isset($LANGUAGES[$language])) {
                        $detectlan = $language;
                    }
                }
            }
	}
    }
    if (!$detectlan) {
        $detectlan = $GLOBALS['default_system_language'];
    }
// CMAK
    $detectlan = 'en';

    $_SESSION['adminlanguage'] = array(
        'info'    => $detectlan,
        'iso'     => $detectlan,
        'charset' => $LANGUAGES[$detectlan][1],
        'dir'     => $LANGUAGES[$detectlan][4],
    );
}
1 Like