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

How to make Text::slug() convert german umlauts properly?

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

Text::slug('Grundstücke')

我会得到:

Grundstucke (where ü = u)

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

Grundstuecke (where ü = ue)

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

更改音译器

Text::slug()内部使用transliterator_transliterate(参见php doc)。

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

经过一些研究,我找到了一个适合你的。

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

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

然后您的文本将按照您的预期进行转换。

备注

我用来找到这个答案的资源: