mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-03 13:58:55 +08:00
removed ascii method and use the new TransliteratorHelper::process at its place
This commit is contained in:
@ -215,61 +215,6 @@ class BaseInflector
|
|||||||
'wildebeest' => 'wildebeest',
|
'wildebeest' => 'wildebeest',
|
||||||
'Yengeese' => 'Yengeese',
|
'Yengeese' => 'Yengeese',
|
||||||
];
|
];
|
||||||
/**
|
|
||||||
* @var array map of special chars and its translation. This is used by [[slug()]].
|
|
||||||
*/
|
|
||||||
public static $transliteration = [
|
|
||||||
'/ä|æ|ǽ/' => 'ae',
|
|
||||||
'/ö|œ/' => 'oe',
|
|
||||||
'/ü/' => 'ue',
|
|
||||||
'/Ä/' => 'Ae',
|
|
||||||
'/Ü/' => 'Ue',
|
|
||||||
'/Ö/' => 'Oe',
|
|
||||||
'/À|Á|Â|Ã|Å|Ǻ|Ā|Ă|Ą|Ǎ/' => 'A',
|
|
||||||
'/à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª/' => 'a',
|
|
||||||
'/Ç|Ć|Ĉ|Ċ|Č/' => 'C',
|
|
||||||
'/ç|ć|ĉ|ċ|č/' => 'c',
|
|
||||||
'/Ð|Ď|Đ/' => 'D',
|
|
||||||
'/ð|ď|đ/' => 'd',
|
|
||||||
'/È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě/' => 'E',
|
|
||||||
'/è|é|ê|ë|ē|ĕ|ė|ę|ě/' => 'e',
|
|
||||||
'/Ĝ|Ğ|Ġ|Ģ/' => 'G',
|
|
||||||
'/ĝ|ğ|ġ|ģ/' => 'g',
|
|
||||||
'/Ĥ|Ħ/' => 'H',
|
|
||||||
'/ĥ|ħ/' => 'h',
|
|
||||||
'/Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ/' => 'I',
|
|
||||||
'/ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı/' => 'i',
|
|
||||||
'/Ĵ/' => 'J',
|
|
||||||
'/ĵ/' => 'j',
|
|
||||||
'/Ķ/' => 'K',
|
|
||||||
'/ķ/' => 'k',
|
|
||||||
'/Ĺ|Ļ|Ľ|Ŀ|Ł/' => 'L',
|
|
||||||
'/ĺ|ļ|ľ|ŀ|ł/' => 'l',
|
|
||||||
'/Ñ|Ń|Ņ|Ň/' => 'N',
|
|
||||||
'/ñ|ń|ņ|ň|ʼn/' => 'n',
|
|
||||||
'/Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ/' => 'O',
|
|
||||||
'/ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º/' => 'o',
|
|
||||||
'/Ŕ|Ŗ|Ř/' => 'R',
|
|
||||||
'/ŕ|ŗ|ř/' => 'r',
|
|
||||||
'/Ś|Ŝ|Ş|Ș|Š/' => 'S',
|
|
||||||
'/ś|ŝ|ş|ș|š|ſ/' => 's',
|
|
||||||
'/Ţ|Ț|Ť|Ŧ/' => 'T',
|
|
||||||
'/ţ|ț|ť|ŧ/' => 't',
|
|
||||||
'/Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ/' => 'U',
|
|
||||||
'/ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ/' => 'u',
|
|
||||||
'/Ý|Ÿ|Ŷ/' => 'Y',
|
|
||||||
'/ý|ÿ|ŷ/' => 'y',
|
|
||||||
'/Ŵ/' => 'W',
|
|
||||||
'/ŵ/' => 'w',
|
|
||||||
'/Ź|Ż|Ž/' => 'Z',
|
|
||||||
'/ź|ż|ž/' => 'z',
|
|
||||||
'/Æ|Ǽ/' => 'AE',
|
|
||||||
'/ß/' => 'ss',
|
|
||||||
'/IJ/' => 'IJ',
|
|
||||||
'/ij/' => 'ij',
|
|
||||||
'/Œ/' => 'OE',
|
|
||||||
'/ƒ/' => 'f'
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts a word to its plural form.
|
* Converts a word to its plural form.
|
||||||
@ -434,20 +379,20 @@ class BaseInflector
|
|||||||
/**
|
/**
|
||||||
* Returns a string with all spaces converted to given replacement and
|
* Returns a string with all spaces converted to given replacement and
|
||||||
* non word characters removed. Maps special characters to ASCII using
|
* non word characters removed. Maps special characters to ASCII using
|
||||||
* `Inflector::$transliteration`
|
* [[TransliteratorHelper::process()]]
|
||||||
* @param string $string An arbitrary string to convert
|
* @param string $string An arbitrary string to convert
|
||||||
* @param string $replacement The replacement to use for spaces
|
* @param string $replacement The replacement to use for spaces
|
||||||
* @return string The converted string.
|
* @return string The converted string.
|
||||||
*/
|
*/
|
||||||
public static function slug($string, $replacement = '-')
|
public static function slug($string, $replacement = '-')
|
||||||
{
|
{
|
||||||
$map = static::$transliteration + [
|
$map = array(
|
||||||
'/[^\w\s]/' => ' ',
|
'/[^\w\s]/' => ' ',
|
||||||
'/\\s+/' => $replacement,
|
'/\\s+/' => $replacement,
|
||||||
'/(?<=[a-z])([A-Z])/' => $replacement . '\\1',
|
'/(?<=[a-z])([A-Z])/' => $replacement . '\\1',
|
||||||
str_replace(':rep', preg_quote($replacement, '/'), '/^[:rep]+|[:rep]+$/') => ''
|
str_replace(':rep', preg_quote($replacement, '/'), '/^[:rep]+|[:rep]+$/') => ''
|
||||||
];
|
);
|
||||||
return preg_replace(array_keys($map), array_values($map), $string);
|
return preg_replace(array_keys($map), array_values($map), TransliteratorHelper::process($string, '', 'en'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user