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