【发布时间】:2013-02-07 00:35:59
【问题描述】:
我想创建一个 SEO 友好的 url,所以经过一些研究,我想出了创建 slug 并使用路由器做一些事情。但是,似乎互联网上的 slug 创建者只支持英文字母字符。所以,我的越南语字母表需要一个更好的 slug 创造者。
任何人有插件,或对我的建议?
提前致谢
【问题讨论】:
标签: zend-framework slug
我想创建一个 SEO 友好的 url,所以经过一些研究,我想出了创建 slug 并使用路由器做一些事情。但是,似乎互联网上的 slug 创建者只支持英文字母字符。所以,我的越南语字母表需要一个更好的 slug 创造者。
任何人有插件,或对我的建议?
提前致谢
【问题讨论】:
标签: zend-framework slug
您可以扩展现有的 Slugifier 以规范越南语字符。
来自similar post in the Django context:
您的情况的一个简单版本是:
vietnamese_map = { ord(u'ư'): 'u', ord(u'ơ'): 'o', ord(u'á'): 'a', ord(u'n'): 'n', ord(u'h'): 'h', ord(u'ữ'): 'u', ord(u'n'): 'n', ord(u'g'): 'g', ord(u'v'): 'v', ord(u'i'): 'i', ord(u'ê'): 'e', ord(u'n'): 'n', ord(u'k'): 'k', ord(u'ẹ'): 'e', ord(u'o'): 'o', }然后你可以调用:
print u"những-viên-kẹo".translate(vietnamese_map) To get: u"nhung-vien-keo"
当然,你需要用 PHP 编写。
如果您不想扩展内置的 slugifier,Boris Guery 的 Bgy_Filter_Slugify 对我来说效果很好:
https://github.com/borisguery/bgylibrary/blob/master/library/Bgy/Filter/Slugify.php
您还可以提取 WordPress 使用的 slugification 代码,如果这对您来说仍然不够健壮。
编辑:
WordPress 代码 may already handle 将重音字符转换为对应的拉丁文。
Here 例如是他们的remove_accents 函数。
【讨论】: