最终,对于这个问题,你将不得不放弃"正确"的想法.无论你如何操作,翻译字符串都会破坏兼容性和可读性名称的准确性.所有三个选项都同样兼容,但#1和#2在可读性方面受到影响.因此,只需运行它,然后选择最佳效果 - 选项#3.
是的,德语的翻译是错误的,但除非你开始要求你的用户指定他们的标题所用的语言(并将它们限制为只有一种语言),否则你不会在不费力的情况下解决这个问题.(例如,通过每个已知语言的字典运行标题中的每个单词,并根据其语言规则翻译该单词的变音符号将起作用,但它过多.)
或者,如果德语比其他语言更受关注,那么当翻译时,您的翻译总是使用德语版本:ä
→ ae
,ë
→ e
,ï
→ i
,ö
→ oe
,ü
→ ue
.
编辑:
哦,至于实际的方法,我会翻译特殊情况,如果有的话,通过str_replace
,然后iconv
用于其余的:
$text = str_replace(array("ä", "ö", "ü", "ß"), array("ae", "oe", "ue", "ss"), $text); $text = iconv('UTF-8', 'US-ASCII//TRANSLIT', $text);