Verified Commit 570710ad authored by Lauri Timmanee's avatar Lauri Timmanee
Browse files

Issue #2662330 by Utkarsh_33, lauriii, hooroomoo, bnjmnm, tim.plunkett, Alan...

Issue #2662330 by Utkarsh_33, lauriii, hooroomoo, bnjmnm, tim.plunkett, Alan D., smustgrave, catch, mrweiner: Machine name generation is way too slow
parent b7c4aaf2
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -24,7 +24,8 @@
    "Sortable": true,
    "once": true,
    "CKEditor5": true,
    "tabbable": true
    "tabbable": true,
    "slugify": true
  },
  "rules": {
    "prettier/prettier": "error",
+2 −0

File added.

Preview size limit exceeded, changes collapsed.

+1 −0

File added.

Preview size limit exceeded, changes collapsed.

+11 −0
Original line number Diff line number Diff line
@@ -626,6 +626,7 @@ drupal.machine-name:
    - core/drupal
    - core/drupalSettings
    - core/drupal.form
    - core/transliteration

drupal.message:
  version: VERSION
@@ -874,6 +875,16 @@ tabbable:
  js:
    assets/vendor/tabbable/index.umd.min.js: { weight: -1, minified: true }

transliteration:
  remote: https://github.com/dzcpy/transliteration
  version: "2.3.5"
  license:
    name: MIT
    url: https://raw.githubusercontent.com/dzcpy/transliteration/1.6.5/LICENSE.txt
    gpl-compatible: true
  js:
    assets/vendor/transliteration/bundle.umd.min.js: { minified: true }

tabbable.jquery.shim:
  version: VERSION
  js:
+29 −0
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@ public static function processMachineName(&$element, FormStateInterface $form_st

    $element['#attached']['drupalSettings']['machineName']['#' . $source['#id']] = array_intersect_key($element['#machine_name'], array_flip($options));
    $element['#attached']['drupalSettings']['langcode'] = $language->getId();
    $element['#attached']['drupalSettings']['transliteration_language_overrides'] = static::getTransliterationLanguageOverrides($language);

    return $element;
  }
@@ -278,4 +279,32 @@ public static function validateMachineName(&$element, FormStateInterface $form_s
    }
  }

  /**
   * Gets transliteration language overrides for a language.
   *
   * This is duplicating
   * \Drupal\Core\Transliteration\PhpTransliteration::readLanguageOverrides().
   *
   * @see \Drupal\Core\Transliteration\PhpTransliteration::readLanguageOverrides()
   */
  private static function getTransliterationLanguageOverrides(LanguageInterface $language) {
    $overrides = &drupal_static(__CLASS__ . '_' . __METHOD__, []);
    $langcode = $language->getId();

    if (isset($overrides[$langcode])) {
      return $overrides[$langcode];
    }

    $file = dirname(__DIR__, 3) . '/Component/Transliteration/data' . '/' . preg_replace('/[^a-zA-Z\-]/', '', $langcode) . '.php';

    $overrides[$langcode] = [];
    if (is_file($file)) {
      include $file;
    }

    \Drupal::moduleHandler()->alter('transliteration_overrides', $overrides[$langcode], $langcode);

    return [$langcode => $overrides[$langcode]];
  }

}
Loading