Skip to content

Instantly share code, notes, and snippets.

@reinis-kinkeris
Last active February 8, 2024 11:40
Show Gist options
  • Save reinis-kinkeris/929e7862d25e14332b821d9ce592090a to your computer and use it in GitHub Desktop.
Save reinis-kinkeris/929e7862d25e14332b821d9ce592090a to your computer and use it in GitHub Desktop.
Drupal 8 - Example of adding dynamic js libraries which require locale
/**
* Implements hook_library_info_build().
*
* @return array
*/
function hook_library_info_build() {
$libraries = [];
/** @var \Drupal\Core\Language\LanguageManager $language_manager */
$language_manager = \Drupal::languageManager();
/** @var \Drupal\Core\Language\LanguageInterface[] $languages */
$languages = $language_manager->getLanguages();
foreach ($languages as $language) {
$language_id = strtolower($language->getId());
$libraries['mymodule.moment_with_locale_' . $language_id] = [
'js' => [
// assuming locale file names are defined same as Drupal langcodes
'js/vendor/moment/locale/' . $language_id . '.js' => [],
],
'dependencies' => [
'mymodule/moment',
],
];
}
return $libraries;
}
$build['#attached']['library'][] = 'mymodule/moment_with_locale_' . strtolower(\Drupal::languageManager()->getCurrentLanguage()->getId());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment