我已经看到将语言环境作为路径变量添加到 URI:
/en-US/blah/
或者
/blah/en-US
我将其视为请求参数:
/blah?lang=en-US
有没有我应该做的标准方式?如果不是,每种方法的优缺点是什么?
我有点喜欢请求参数方法,因为它不需要您通过每个 URI 传递语言环境(除非您使用第二种方法并将语言环境添加到路径的末尾)。有什么额外的想法吗?
我已经看到将语言环境作为路径变量添加到 URI:
/en-US/blah/
或者
/blah/en-US
我将其视为请求参数:
/blah?lang=en-US
有没有我应该做的标准方式?如果不是,每种方法的优缺点是什么?
我有点喜欢请求参数方法,因为它不需要您通过每个 URI 传递语言环境(除非您使用第二种方法并将语言环境添加到路径的末尾)。有什么额外的想法吗?
我相信“标准方式”是使用HTTP“接受语言”标头。除此之外,如果您认为它应该是一个参数(因为它是系统系统调用,或者您可能请求浏览器区域设置以外的语言),那么它只是一个与其他参数相同的参数,您应该在类似的时尚。
有趣的事实:即使使用这种符号“/blah/en-US”,它仍然可以是请求参数。mod_rewrite 和朋友的魔法。
如果您需要它作为请求参数或 url 的一部分,取决于您想要实现的目标。如果你想提供静态内容,你应该让它成为路径的一部分。如果您想对所选语言环境进行动态操作,则应将其用作请求参数,因为您不希望脚本通过不同的路径多次复制以添加不同的语言环境。