如何使Text :: slug()正确转换德语变音符号?

时间:2018-05-18 13:09:19

标签: cakephp diacritics slug cakephp-3.x

我正在使用CakePHP 3.6,当我使用德语变音符号的单词时:

Text::slug('Grundstücke')

我会得到:

  

Grundstucke(其中ü= u)

但这不正确,我应该得到:

  

Grundstuecke(其中ü= ue)

是否有设置选项以便按照我希望的方式转换变音符号?

1 个答案:

答案 0 :(得分:2)

更改音译

Text::slug()在内部使用transliterator_transliterate(请参阅php doc)。

因此您需要更改正在使用的默认音译器。

经过一番研究后,我发现了一个适合你的方法。

在bootstrap.php文件的末尾添加:

\Cake\Utility\Text::setTransliteratorId( 'de-ASCII; Any-Latin; Latin-ASCII; [\u0080-\u7fff] remove ');

然后您的文字将按预期转换。

注释

资源我以前找到了这个答案: