如果客户端请求“en”,但我只有特定国家/地区的语言环境,我该如何解决要使用的语言环境?
Posted
技术标签:
【中文标题】如果客户端请求“en”,但我只有特定国家/地区的语言环境,我该如何解决要使用的语言环境?【英文标题】:How do I resolve which locale to use if the client requests "en", but I only have country specific locales? 【发布时间】:2012-12-12 22:06:21 【问题描述】:我正在使用包含本地化词汇文件的 SOAP 集成标准。基本上,任何文本字段都可以包含语言/国家/地区代码。
<RoleName>
<lang>en</lang>
<text>Administrator</text>
</RoleName>
我们的一个合作伙伴只向我们发送“en”,但随标准分发的默认词汇文件仅包括“en-US”、“en-CA”和“en-GB”。
我的直觉是我应该拒绝他们的请求,因为他们没有发送规范定义的可接受的语言代码,但他们坚持认为我们应该能够解析“en”,因为它是有效的代码并且我们有可用的英语词汇。
我是否基于此?最佳做法是什么?如果我们通过使用我们自己的默认值或其他方式拥有它,是否期望给定一个通用语言代码,我们应该自动解析为更具体的国家代码?
【问题讨论】:
【参考方案1】:平台通常有一个默认的特定文化映射到每个中性文化。例如,如果您使用的是 .NET,则有 CultureInfo.CreateSpecificCulture,如果您将其传递给“en”,它将为您提供“en-US”的 CultureInfo。换句话说,“en-US”是平台为“en”建立的默认值(“fr-FR”是“fr”,“es-ES”是“es”等)。
我相信,在大多数情况下,如果您获得中性文化,让系统选择默认的特定文化是可以接受的。但是,如果文化对您的组件至关重要并且您更喜欢严格,那么您也可以按照您的建议,要求您的文化标识符不能是中性文化。
【讨论】:
酷,感谢您的信息。我将研究设置默认值。以上是关于如果客户端请求“en”,但我只有特定国家/地区的语言环境,我该如何解决要使用的语言环境?的主要内容,如果未能解决你的问题,请参考以下文章