【发布时间】:2019-01-02 11:02:40
【问题描述】:
在 Drupal 8 中,有没有办法为新安装自动设置安装语言?我将基于 URL,我已经有逻辑确定应该选择哪种语言,但不确定如何在全新安装 Drupal 时将其设为默认选择。
【问题讨论】:
在 Drupal 8 中,有没有办法为新安装自动设置安装语言?我将基于 URL,我已经有逻辑确定应该选择哪种语言,但不确定如何在全新安装 Drupal 时将其设为默认选择。
【问题讨论】:
首先,您可以通过一些 URL 查询来填充安装状态参数。添加?langcode=en 将默认为英文。
否则,您将不得不使用自定义配置文件来确保做出正确的默认选择。相关代码在core/includes/install.core.inc。 install_drupal 函数执行 Drupal 的安装。 langcode 在install_begin_request 中通过install_state_defaults 填充的安装状态确定。
您需要填充语言代码
if (!empty($install_state['parameters']['langcode'])) {
$install_state['parameters']['langcode'] = preg_replace('/[^a-zA-Z_0-9\-]/', '', $install_state['parameters']['langcode']);
}
查看代码,这只能通过查询参数实现
// Add any installation parameters passed in via the URL.
if ($install_state['interactive']) {
$install_state['parameters'] += $request->query->all();
}
除非您有一个自定义安装配置文件,该配置文件调用 hook_install_tasks 在安装过程开始时添加一个任务以设置默认语言代码。
【讨论】: