function LocaleThemeAlterHooks::jsAlter
Same name and namespace in other branches
- main core/modules/locale/src/Hook/LocaleThemeAlterHooks.php \Drupal\locale\Hook\LocaleThemeAlterHooks::jsAlter()
Implements hook_js_alter().
Attributes
#[Hook('js_alter')]
File
-
core/
modules/ locale/ src/ Hook/ LocaleThemeAlterHooks.php, line 27
Class
- LocaleThemeAlterHooks
- Hook theme alter implementations for locale.
Namespace
Drupal\locale\HookCode
public function jsAlter(array &$javascript, AttachedAssetsInterface $assets, LanguageInterface $language) : void {
$files = [];
foreach ($javascript as $item) {
if (isset($item['type']) && $item['type'] == 'file') {
// Ignore the JS translation placeholder file.
if ($item['data'] === 'core/modules/locale/locale.translation.js') {
continue;
}
$files[] = $item['data'];
}
}
// Replace the placeholder file with the actual JS translation file.
$placeholderFile = 'core/modules/locale/locale.translation.js';
if (isset($javascript[$placeholderFile])) {
if ($translationFile = ($this->localeJs)()
->jsTranslate($files, $language)) {
$jsTranslationAsset =& $javascript[$placeholderFile];
$jsTranslationAsset['data'] = $translationFile;
}
else {
// If no translation file exists, then remove the placeholder JS asset.
unset($javascript[$placeholderFile]);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.