This is the my solution to generate Global Areas for each language section, for 5.7.

Create application/src/Area/GlobalArea.php as below

?php
namespace Application\Src\Area;

use Concrete\Core\Area\GlobalArea as CoreGlobalArea;
use Concrete\Core\Multilingual\Page\Section\Section as MultilingualSection;
use Localization;
use Punic\Language;
use Punic\Data;

class GlobalArea extends CoreGlobalArea
{
   public function __construct($arHandle)
    {
        $ms = MultilingualSection::getCurrentSection();
        if (is_object($ms)) {
            $locale = $ms->getLocale();
        } else {
            $locale = Localization::activeLocale();
        }
        $fallbackLocale = Data::getFallbackLocale();
        if ($locale != $fallbackLocale) {
            $locName = Language::getName($locale, $fallbackLocale);
            $arHandle = $arHandle . ' ' . $locName;
        }
        $this->arHandle = $arHandle;
    }
}

Then modify your application/config/app.php

?php
return array(
    'aliases' => array(
        'GlobalArea' => 'Application\Src\Area\GlobalArea'
    )
);
Loading Conversation