是否有可能创建国际永久链接?

时间:2008-09-24 13:33:20

标签: internationalization permalinks

我想知道你如何处理国际网站上的永久链接。永久链接我指的是一些独特且人类可读的链接。

E.g。对于英语短语,没有问题,例如的 /产品/一些标题/

但如果产品标题是例如中文,你会怎么做? 你怎么处理这个问题?

我正在实施一个国际网站,其中一个要求是拥有人类可读的网址。 感谢您的每一条评论

6 个答案:

答案 0 :(得分:2)

根据this spec,网址中不允许使用ISO Latin-1集合以外的字符,因此中文字符串会立即显示。

如果可以对产品名称进行本地化,则可以使用<DOMAIN>/<LANGUAGE>/DIR/<PRODUCT_TRANSLATED>之类的网址,例如:

http://www.example.com/en/products/cat/
http://www.example.com/fr/products/chat/

伴随着mod_rewrite规则的效果:

RewriteRule ^([a-z]+)/product/([a-z]+)? product_lookup.php?lang=$1&product=$2

对于上面的第一个示例,此规则将调用product_lookup.php?lang=en&product=cat。在此脚本中,您可以访问内部翻译引擎(来自lang参数,在这种情况下为 en ),以执行与面向用户相同的翻译一面翻译,比如法语页面上的“聊天”,英语上的“猫”等等。

使用外部翻译API会是一个好主意,但要获得一个在您的业务领域正常运行的可靠的API会很棘手。谷歌开放了translation API,但它目前只支持有限数量的语言。

  
      
  • 英文&lt; =&gt;阿拉伯
  •   
  • 英文&lt; =&gt;中国
  •   
  • 英文&lt; =&gt;俄
  •   

答案 1 :(得分:2)

我通常会音译非ascii字符。例如,“täst”将成为“taest”。 GNU iconv可以为你做这个(我确定还有其他库):

$ echo täst | iconv -t 'ascii//translit'
taest
唉,这些音译都依赖于语言环境:例如,在德语以外的语言中,'ä'可以简单地转换为'a'。但另一方面,应该将每个(常用的)字符集音译为ASCII。

答案 2 :(得分:2)

看看Wikipedia。 他们在网址中使用国家字符。

例如,俄语主页网址为:http://ru.wikipedia.org/wiki/Заглавная_страница。浏览器透明地编码所有非ASCII字符,并在将URL发送到服务器时将其替换为代码。 但是在网页上,所有网址都是人类可读的。

因此,您无需执行任何特殊操作 - 只需将产品名称放入URL即可。 网络服务器应该能够自动为您的应用程序解码它们。

答案 3 :(得分:1)

某些方案怎么样/ productid / {product-id-number} / some-title / 网站查看{number}并完全忽略'some-title'部分。你可以把它放到你喜欢的任何语言或编码中,因为它没有被使用。

答案 4 :(得分:0)

如果内存有效,您只能在网址中使用英文字母。有一个讨论要改变这一点,但我相当肯定它还没有实现。

说,你需要有一个查找表,你可以将产品/标题的翻译分配到他们将使用另一种语言的任何单词。例如:

foo.com/cat需要翻译查找“cat”“gato”“neko”等。

然后,将您的人类阅读对象解析为精确网址的HTTP模块将根据翻译知道要投放的页面。

答案 5 :(得分:0)

创建一个查找这样的东西似乎是我的溢出。我无法为所有语言中的所有不同单词创建查找。也许访问翻译API会是一个好主意。

因此我认为不可能在固定链接中使用外来字符,因为URL的sepecs不允许它。

您如何看待编码特色字符?那些是Google认可的网址吗?