如何在早期阶段获取默认语言环境

时间:2017-11-10 12:31:52

标签: php concrete5 concrete5-8.x

在c5.7上,配置变量concrete.multilingual.default_locale存储了concrete5安装的默认语言环境。 在c5-8,我们不能再访问这个变量了。如何在新的c5-8安装中获得此值?

1 个答案:

答案 0 :(得分:0)

由于concrete5在同一安装中提供多个站点,因此每个站点都需要特定的默认语言。因此,默认的locale配置变量不再具有意义,默认语言环境存储在db表sites中。

访问所有已定义网站的默认区域设置:

$defaultLocales = [];
$sl = new \Concrete\Core\Site\SiteList();
$sites = $sl->get();
foreach ($sites as $site) {
    $defaultLocales[$site->getSiteID()] = $site->getDefaultLocale();
}

以下将显示如何为第一个找到的具有c5.7向后兼容性的网站获取此值。

$defaultLocale = Config::get('concrete.multilingual.default_locale');
if (!$defaultLocale) {
    if (class_exists('\Concrete\Core\Site\SiteList')) {
        $sl = new \Concrete\Core\Site\SiteList();
        $sites = $sl->get();
        foreach ($sites as $site) {
            $defaultLocale = $site->getDefaultLocale();
            break;
        }
    }
}

Src:concrete/src/Entity/Site/Site