diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 537d78ba59..4f368d154a 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -220,6 +220,7 @@ Yii Framework 2 Change Log - Enh #5117: Added `beforeFilter` and `afterFilter` JS events to `GridView` (kartik-v) - Enh #5124: Added support to prevent duplicated form submission when using `ActiveForm` (qiangxue) - Enh #5131: Added `$autoRenew` parameter to `yii\web\User::getIdentity()` (qiangxue) +- Enh #5164: Added `Inlfector::$transliterator` that can be used to customize intl transliteration (zinzinday) - Enh: Added support for using sub-queries when building a DB query with `IN` condition (qiangxue) - Enh: Supported adding a new response formatter without the need to reconfigure existing formatters (qiangxue) - Enh: Added `yii\web\UrlManager::addRules()` to simplify adding new URL rules (qiangxue) diff --git a/framework/helpers/BaseInflector.php b/framework/helpers/BaseInflector.php index 6c5ed02976..def691a5dc 100644 --- a/framework/helpers/BaseInflector.php +++ b/framework/helpers/BaseInflector.php @@ -231,7 +231,12 @@ class BaseInflector 'ø' => 'o', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', 'ű' => 'u', 'ý' => 'y', 'þ' => 'th', 'ÿ' => 'y', ]; - + /** + * @var mixed Either a [[Transliterator]] or a string from which a [[Transliterator]] + * can be built for transliteration used by [[slug()]] when intl is available. + * @see http://php.net/manual/en/transliterator.transliterate.php + */ + public static $transliterator = 'Any-Latin; NFKD'; /** * Converts a word to its plural form. @@ -437,7 +442,7 @@ class BaseInflector protected static function transliterate($string) { if (static::hasIntl()) { - return transliterator_transliterate('Any-Latin; NFKD', $string); + return transliterator_transliterate(static::$transliterator, $string); } else { return str_replace(array_keys(static::$transliteration), static::$transliteration, $string); }