如果客户端请求“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”,但我只有特定国家/地区的语言环境,我该如何解决要使用的语言环境?的主要内容,如果未能解决你的问题,请参考以下文章

如何显示/隐藏来自特定国家/地区的内容 [关闭]

如何指定仅适用于特定国家/地区的地图? [复制]

从 IP 获取国家和语言信息 [重复]

如何使选择器视图从 swift 3 中的特定行显示?

Apple 推送通知服务是针对特定国家/地区的吗?

为特定国家/地区编写应用商店描述