diff --git a/core/lib/Drupal/Core/Language/Language.php b/core/lib/Drupal/Core/Language/Language.php index b003f1c..5a79fa9 100644 --- a/core/lib/Drupal/Core/Language/Language.php +++ b/core/lib/Drupal/Core/Language/Language.php @@ -222,12 +222,18 @@ public function isLocked() { /** * Sort language objects. * - * @param array $languages + * @param \Drupal\Core\Language\Language[] $languages * The array of language objects keyed by langcode. */ public static function sort(&$languages) { - uasort($languages, function ($a, $b) { - return SortArray::sortByWeightAndTitleKey($a, $b, 'weight', 'name'); + uasort($languages, function (Language $a, Language $b) { + + if ($a->getWeight() == $b->getWeight()) { + return strnatcasecmp($a->getName(), $b->getName()); + } + + return ($a->getWeight() < $b->getWeight()) ? -1 : 1; + //return SortArray::sortByWeightAndTitleGetter($a, $b, 'getWeight', 'getName'); }); }