首页 > 解决方案 > 为全新 Drupal 8 安装设置默认语言

问题描述

在 Drupal 8 中,有没有办法为新安装自动设置安装语言?我将基于 URL,我已经有逻辑来确定应该选择哪种语言,但不确定如何在全新安装 Drupal 时使其成为默认选择。

标签: drupaldrupal-8

解决方案


首先,您可以通过一些 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以添加任务以设置默认语言代码。


推荐阅读