我想知道你如何处理与永久性国际的网站。通过一篇我的意思是有些链接是独特的和人类的可读性。

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

但你做什么,如果该产品的标题是在电子.克汉语??你怎么处理这个问题?

我执行一个国际网址和一个要求是要有人阅读的网址。感谢每一个评论

有帮助吗?

解决方案

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

其他提示

人物以外的ISO拉-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=.在这个脚本是在那里你会访问内部翻译引擎(从 lang 参数, en 在这种情况下)做同样的翻译你在用户面临的一侧翻译,说,"聊天"上的法语网页,"猫"的英语,等等。

使用外部翻译API将是一个好主意,但是棘手的,获得一个可靠的工作正在商业领域。谷歌已经打开了 翻译API, 但它目前只支持有限数量的语言。

  • 英语 <=>阿拉伯语
  • 英语 <=>中国
  • 英语 <=>俄罗斯

查看维基百科。 他们在网址中使用国家字符。

例如,俄罗斯主页网址为: http://ru.wikipedia.org/wiki/ <!>#1047; <!>#1072; <!>#1075; <!>#1083; <!>#1072; <!> #1074;#1085 <!>;#1072 <!>;#1103 <!>; _#1089 <!>;#1090 <!>;#1088 <!>;#1072 <!>; <!># 1085;#1080 <!>;#1094 <!>; <!> 1072#; 。浏览器透明地编码所有非ASCII字符,并在将URL发送到服务器时将其替换为代码。 但是在网页上,所有网址都是人类可读的。

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

我通常会音译非ascii字符。例如<!>“; t <!>#228; st <!> quot;会变成<!>“taest <!>”; GNU iconv可以为你做这个(我确定还有其他库):

$ echo täst | iconv -t 'ascii//translit'
taest

唉,这些音译都依赖于语言环境:在德语以外的语言中,'<!>#228;'例如,可以简单地将其简化为'a'。但另一方面,应该将每个(常用的)字符集音译为ASCII。

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

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

foo.com/cat需要翻译查找<!>“cat <!>”; QUOT <!>; <!>加托QUOT; <!> QUOT;ネQUOT <!>;等。

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top