我将开始讨论,以收集有关API本地化实践的更多信息。HTTP似乎没有提供足够的指导,甚至实践状态还不够。
基本问题是,API可能需要提供依赖于用户文化,国家/地区,语言和时区的内容。例如,一个德国用户想用德语,带有欧洲公制日期,数字,单位,使用欧元货币和中欧时区的消息来阅读。
仔细阅读RFC 7231第5.3.5节“接受语言”以及进一步阅读RFC 4647,可能会认为Accept-Language
它已经足够复杂了,应该采取的措施。但是有几个明显的缺点:
我看到微软已经考虑过ASP.Net中的#2,并引入了Culture和UICulture的概念来将消息语言的选择与格式化分开。
在Java世界中,Spring已将TimeZoneAwareLocaleContext引入地址3
W3c发布了用于语言环境设置的接受语言指南。这或多或少表明Accept-Language
还不够
那你在想什么?
Accept-Language
使用吗?好,朋友们,
这是我如何回答我的问题的摘要。我希望这对将来的API作者有所帮助。
基于API的UI的基本要求(不包括货币表示)似乎是:
在REST HTTP标头上,我建议使用3个标头
accept-language
-用于选择翻译并遵循RFC 7231 https://tools.ietf.org/html/rfc7231#section-5.3.5的准则format-locale
-用于选择与翻译语言首选项不同的数据格式样式。再次列出语言范围元素。accept-language
如果省略,则默认为。timezone
-用于选择时区以呈现日期和时间值。这应该是来自IANA TZDB https://www.iana.org/time-zones的有效时区ID。在实现方面,Java 8和更高版本似乎具有实现全球化应用程序的全部功能。其他语言和较旧的Java版本似乎存在不同程度的问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句