Default Store Language

I have an issue with the latest update.

In 4.11, I was able to change the default store language by modifying

        fn_define('CART_LANGUAGE', $_lc);

This function does not seem to appear in 4.12. How can I change my default store language in the latest version?


Check the fn_init_language function (app/functions/fn.init.php)

Closest think I could find in fn_init was

$session_display_language = fn_get_session_data('cart_language' . $area);

I changed it to

$session_display_language = fn_get_session_data('cart_language' . 'el')

but it doesn't seem to work. Store does not initialize in Greek, as it used to. Any ideas?


As I said, languages are initiated in the fn_init_language function

Do you see any mistekes in this modification (see red text)? I have changed $area to 'el' but still, store does not initiate in Greek.


function fn_init_language($params, $area = AREA)
$default_language = Registry::get('settings.Appearance.' . fn_get_area_name($area) . '_default_language');
$session_display_language = fn_get_session_data('cart_language' . 'el');
$session_description_language = fn_get_session_data('descr_sl');

$languages_search_params = [
'area' => $area,
'include_hidden' => $area !== 'C',

$avail_languages = Registry::getOrSetCache(
['init_language', 'init_language_' . $area],
['languages', 'storefronts_languages'],
['static', 'storefront'],
static function () use ($languages_search_params) {
return Languages::getAvailable($languages_search_params);

Set up default language in the settings to Greek

To disable language detection by browser, please replace

    } elseif ($browser_language = fn_get_browser_language($avail_languages)) {
        $display_language = $browser_language;
//    } elseif ($browser_language = fn_get_browser_language($avail_languages)) {
//        $display_language = $browser_language;

Thank you eCOM. Most helpful as always!!