diff --git a/libraries/joomla/language/language.php b/libraries/joomla/language/language.php index 9c98ad9ad6e66..16dfcbcbb1802 100644 --- a/libraries/joomla/language/language.php +++ b/libraries/joomla/language/language.php @@ -251,6 +251,7 @@ public function __construct($lang = null, $debug = false) * -a getUpperLimitSearchWord method * -a getSearchDisplayCharactersNumber method */ + if (method_exists($class, 'transliterate')) { $this->transliterator = array($class, 'transliterate'); @@ -394,15 +395,20 @@ public function _($string, $jsSafe = false, $interpretBackSlashes = true) */ public function transliterate($string) { + // Override custom and core transliterate method with native php function if enabled + if (function_exists('transliterator_transliterate') && function_exists('iconv')) + { + return iconv("UTF-8", "ASCII//TRANSLIT//IGNORE", transliterator_transliterate('Any-Latin; Latin-ASCII; Lower()', $string)); + } + if ($this->transliterator !== null) { return call_user_func($this->transliterator, $string); } $string = JLanguageTransliterate::utf8_latin_to_ascii($string); - $string = StringHelper::strtolower($string); - return $string; + return StringHelper::strtolower($string); } /**