我正在设计一个包含存储在数据库中的内容的Web服务,我想确保该设计符合RFC2616。但是,我对于匹配内容的正确方法有点不清楚。
如果我将行为指定为用户故事:
Given I request content in 'en_GB'
When the server has content in 'en_US'
and the server has content in 'en_CA'
and the server does not have content in 'en'
Then the server should return content in '???'
问题:服务器应该使用哪种语言返回内容?
更新:基于pawel-dyda的answer,我相信这些故事应该是这样的:
Given I request content in 'en_GB'
When the server has content in 'en_US'
and the server has content in 'en_CA'
and the server has content in 'en'
Then the server should return content in 'en'
Given I request content in 'en_GB'
When the server has content in 'en_US'
and the server has content in 'en_CA'
and the server does not have content in 'en'
Then the server should return content in the server default language
答案 0 :(得分:2)
你想要的是Locale后备。对于HTTP Accept-Language标头,I18n最佳实践规则是:
例如,假设您的应用程序包含德语翻译(de),HTTP Accept-Language标题如下所示:
接受语言:fr-FR,de-AT; q = 0.7
返回的语言应为德语(de)。
回到你的问题,你应该返回的是你的默认语言环境。显然,为给定的语言提供公共资源是很好的(在本例中为en)。