是否使用适当的内容语言标头来本地化 HTTP POST 的副作用



我正在设计一个REST API,其中HTML形式的内容被发布到端点。 我在 HTML 中使用 lang 属性来指定文档或其部分的语言。 这运作良好。

但是,内容可以发布到"默认"伪资源,其用户可见名称是自动生成的,因此需要本地化。 我需要一种方法来指定在动态创建此名称时使用哪种语言,作为默认部分的第一个 POST 的副作用。 很遗憾,我无法从用户的登录配置文件中获取用户的首选语言。

使用内容语言标头来指定这一点似乎是否合理? 可能会与实际 HTML 内容的语言发生冲突,并且严格来说它不是被发布实体的语言。

副作用视为一种"响应"并因此使用接受语言是否有意义?

内容语言是内容协商的主题,也是内容类型的主题。浏览器会根据用户的设置自动生成接受语言值。例如

Accept-Language: en-US,en;q=0.8,cs;q=0.6

因此,您只会获得用户的语言首选项,仅此而已。

您还可以使用内容语言(请注意,支持多种语言,例如内容语言:en,de)来表示内容的语言。

我不鼓励你让用户能够影响最终网址,但我想你这样做是因为SEO,对吧?如果是,通常的做法是使用类似mod_rewrite的东西来剥离动态生成的"好URL",例如

http://example.org/some really nice name to be indexed/232323 http://example.org/?id=232323

添加您的问题:可能只会与内置浏览器翻译器发生冲突,因为我不知道任何其他组件使用内容语言。

最新更新