我正在设计一个REST API,其中HTML格式的内容将发布到端点。我在HTML中使用lang属性来指定文档的语言或其部分。这很好用。
但是,内容可以发布到“默认”伪资源,其自动生成用户可见名称,因此需要进行本地化。我需要一种方法来指定在动态创建此名称时使用哪种语言作为第一个POST到默认部分的副作用。不幸的是,我无法从他们的登录配置文件中获取用户的首选语言。
使用Content-Language标头指定此内容似乎是否合理?可能存在与实际HTML内容的语言的冲突,并且它不是严格意义上被POST的实体的语言。
将副作用视为一种“反应”并因此使用Accept-Language会更有意义吗?
答案 0 :(得分:1)
内容语言是内容协商的主题,也是内容类型的主题。浏览器会根据用户的设置自动生成Accept-Language值。例如
接受语言:en-US,en; q = 0.8,cs; q = 0.6
因此,您只能获得用户的语言偏好。
您还可以使用内容语言(请注意,支持多种语言,例如content-language:en,de)来表示内容的语言。
我会阻止你让用户有能力影响最终的网址,但我猜你是因为搜索引擎优化而做的,对吧?如果是,通常的做法是使用类似mod_rewrite的东西去除动态生成的“漂亮的URL”,例如
http://example.org/some really nice name to be indexed/232323
至
http://example.org/?id=232323
添加您的问题:可能只会与内置浏览器翻译器冲突,因为我不知道任何其他使用内容语言的组件。