function AbstractUnicodeString::getLocaleTransliterator
3 calls to AbstractUnicodeString::getLocaleTransliterator()
- AbstractUnicodeString::localeLower in vendor/
symfony/ string/ AbstractUnicodeString.php - AbstractUnicodeString::localeTitle in vendor/
symfony/ string/ AbstractUnicodeString.php - AbstractUnicodeString::localeUpper in vendor/
symfony/ string/ AbstractUnicodeString.php
File
-
vendor/
symfony/ string/ AbstractUnicodeString.php, line 636
Class
- AbstractUnicodeString
- Represents a string of abstract Unicode characters.
Namespace
Symfony\Component\StringCode
private function getLocaleTransliterator(string $locale, string $id) : ?\Transliterator {
$rule = $locale . '-' . $id;
if (\array_key_exists($rule, self::$transliterators)) {
return self::$transliterators[$rule];
}
if (null !== ($transliterator = self::$transliterators[$rule] = \Transliterator::create($rule))) {
return $transliterator;
}
// Try to find a parent locale (nl_BE -> nl)
if (false === ($i = strpos($locale, '_'))) {
return null;
}
$parentRule = substr_replace($locale, '-' . $id, $i);
// Parent locale was already cached, return and store as current locale
if (\array_key_exists($parentRule, self::$transliterators)) {
return self::$transliterators[$rule] = self::$transliterators[$parentRule];
}
// Create transliterator based on parent locale and cache the result on both initial and parent locale values
$transliterator = \Transliterator::create($parentRule);
return self::$transliterators[$rule] = self::$transliterators[$parentRule] = $transliterator;
}