function install_download_additional_translations_operations in Drupal 9
Same name and namespace in other branches
- 8 core/includes/install.core.inc \install_download_additional_translations_operations()
Prepares the system for import and downloads additional translations.
Parameters
$install_state: An array of information about the current installation state.
Return value
The batch definition, if there are language files to download.
1 call to install_download_additional_translations_operations()
- install_import_translations in core/
includes/ install.core.inc - Imports languages via a batch process during installation.
File
- core/
includes/ install.core.inc, line 1673 - API functions for installing Drupal.
Code
function install_download_additional_translations_operations(&$install_state) {
\Drupal::moduleHandler()
->loadInclude('locale', 'bulk.inc');
$langcode = $install_state['parameters']['langcode'];
if (!($language = ConfigurableLanguage::load($langcode))) {
// Create the language if not already shipped with a profile.
$language = ConfigurableLanguage::createFromLangcode($langcode);
}
$language
->save();
// If a non-English language was selected, change the default language and
// remove English.
if ($langcode != 'en') {
\Drupal::configFactory()
->getEditable('system.site')
->set('langcode', $langcode)
->set('default_langcode', $langcode)
->save();
\Drupal::service('language.default')
->set($language);
if (empty($install_state['profile_info']['keep_english'])) {
if ($lang = ConfigurableLanguage::load('en')) {
$lang
->delete();
}
}
}
// If there is more than one language or the single one is not English, we
// should download/import translations.
$languages = \Drupal::languageManager()
->getLanguages();
$operations = [];
foreach ($languages as $langcode => $language) {
// The installer language was already downloaded. Available translations are
// stored in $install_state. Check downloads for the other languages if any.
// Ignore any download errors here, since we are in the middle of an install
// process and there is no way back. We will not import what we cannot
// download.
if (!isset($install_state['translations'][$langcode])) {
$operations[] = [
'install_check_translations',
[
$langcode,
$install_state['server_pattern'],
],
];
}
}
return $operations;
}