- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我们有一个较旧的 webforms 应用程序,并且我们没有使用我所知道的任何自定义语言/全局化代码。我们将 resx 文件用于特定于文化的资源。对于中文,我们目前有 4 个 resx 文件:zh、zh-cn、zh-hans 和 zh-hant。为简单起见,我希望仅配对 2:zh-hans 和 zh-hant。我们不打算支持任何特定于语言环境的变体;只是通用的简体中文和通用的繁体中文。
问题
我的主要问题是:在任何情况下我需要拥有超过 zh-hans 或 zh-hant 文件的中文文件? *除了需要支持任何特定于语言环境的变体之外。
基本上,我需要保证如果用户使用zh、zh-cn、zh-sg 语言代码浏览我们的网站,他们将从 zh-hans 文件获取资源,如果他们使用 zh-tw、zh-hk 或 zh-mo 浏览,他们从zh-hant文件中获取资源。这些是我所知道的唯一中文代码,但如果还有其他代码,它们也应该包括在这里 - 基本上是说中文的用户,他们的浏览器设置为任何中文,应该看到适当的简体中文或繁体中文 - 绝对不会见英文。
到目前为止,我的测试似乎表明是的,.NET 正确解析了它们,但我想确保没有遗漏任何隐藏或罕见的场景。
我知道 zh-hans 和 zh-hant 代码更新一些 - 并且被认为是“母”文化。我还知道旧的通用父代码是 zh-chs 和 zh-cht。 是否有旧浏览器允许选择这些 zh-chs/zh-cht 代码,如果是这样,.NET 是否仍会正确解析它们?
我不完全确定 .NET 如何解析正确的资源文件,所以如果有人能给我指出正确的方向,例如涉及哪些类/命名空间,那也很棒。
资源
Language codes for simplified Chinese and traditional Chinese?
IETF Language Tags
最佳答案
答案是否定的 - 你不能只有 zh-hans/zh-hant。因为,如果您这样做,并且您通过浏览器传递基本 zh 代码,它不会自动解析为 zh-hans 或 zh-hant resx 文件。
原因是由于某种叫做“Resource Fallback Process ”。
基本上,.NET 通过层次结构解析资源。它将从请求的文化代码开始,如果不存在该特定文化代码的 resx,它将开始向上移动层次结构,搜索下一个确实具有resx.但是,它永远不会向下移动,只会向上移动。
以下是 zh-sg [新加坡] 的层次结构示例:
所以它首先寻找 zh-sg。如果没有 zh-sg 的资源文件,它会寻找 zh-chs。如果没有 zh-chs 的资源文件,它会寻找 zh-Hans。等等。
只有 zh-Hans 和 zh-Hant 将适用于所有特定于语言环境的代码,例如 zh-sg、zh-tw 等。一些浏览器允许您选择通用简体 (zh-Hans) 或通用传统(zh-Hant),显然它也适用于那些场景。它不会 工作的唯一情况是选择基本中文 zh 并将其传递到请求中。在这种情况下,如果 zh 不存在,它会查找的下一个地方是不变区域性 - 在这种情况下,返回英文文本 - 这显然不是我们想要的。
然后,我的解决方案是将基础 zh 和 zh-Hant 配对,作为我的 2 个代码。 Base zh 是我的包含简体文本的文件,而 zh-Hant 当然是我的包含繁体文本的文件。我本可以用另一种方式来完成它(让 zh 包含繁体文本并使用 zh-Hans 表示简体)但实际上,我找不到关于基本 zh 应该代表什么的指导方针。应该简体还是繁体?我怀疑这在很大程度上是一个偏好问题。对几个流行网站的快速搜索显示,在大多数情况下,对 base zh 的请求会生成谷歌翻译识别为简体的文本。在少数情况下,它确实产生了传统。但是,我接受了大多数人似乎正在做的事情。
关于c# - 如果我不需要支持特定于语言环境的变体,我可以只使用 zh-Hans/zh-Hant resx 文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36406640/
我发现zh-CN和zh-CHS都可以用作语言代码,但为什么微软只告诉我只能使用zh-CHS:http://msdn.microsoft.com/en-us/library/hh456380.aspx。
背景 我们有一个较旧的 webforms 应用程序,并且我们没有使用我所知道的任何自定义语言/全局化代码。我们将 resx 文件用于特定于文化的资源。对于中文,我们目前有 4 个 resx 文件:zh
我的应用程序在升级到 iOS 12 后出现此问题。每当调用 native 中文键盘或第三方中文键盘时,应用程序都会崩溃。中文手写键盘不会导致崩溃。 该应用程序已本地化为英语和中文,因此 UserDef
首先确保安装zh-autoconvert,这个包是debian的deb包,转换成rpm包后安装。不过安装这包依赖libhz0这个包,都是debian的。 如果确实不需要使用zh-tw的话,就确实没
通过应用程序的REST API,我收到以下形式的语言代码:ll-Xxxx。 两种小写字母语言(看起来像ISO 639-1), 破折号 最多四个字母的代码,以大写字母开头(看起来像ISO 639-3 m
我知道有简体中文 ( zh-Hans ) 和繁体中文 ( zh-Hant )。 但是 Xcode 允许本地化中文( zh )。 从本地化后备概念我理解它是简体中文和繁体中文的后备。因此,它在技术上可用
我正在使用 .NET 3.5 并运行以下代码: var culture = new CultureInfo("zh"); // Throws ArgumentException 我从 xml:lang
我要匹配港语的字符串我有以下香港语言的月份和年份 二零一六年六月份 ===>June 2016 二零一五年六月份 ===>June 2015 我已经使用文化信息(zh-HK)来获得月份 但是如何获
在 Android 市场控制台中,Google 仅提供两种中文语言:zh-CN 和 zh-TW。 那么,除了准备values-zh-rCN和values-zh-rTW外,是否需要准备values-zh
我浏览了 Internet,但似乎无法找到解决我遇到的问题的方法。我正在尝试使用 Zend_Currency 来获取中国的货币,如下所示: $currency = new Zend_Currency(
我想用 NumberFormatter生成 zh 本地化百分比如下,以取代我自己的代码如下: let locale = Locale(identifier: lang) let for
en_GB是否可以使用1 Default.png(@ 2x),其他所有国家/地区可以使用1。 我今天早上尝试这样做: 1 /添加了文件/然后进行了分组,并选择了“英语-英国”作为其本地化版本 2 /添
我正在从我的 Angular 应用程序中的 CDN 中提取 momentJS 库: 默认语言环境应该是英语 ('en')。但出于某种原因,我的应用程序中的默认语言环境是“zh-tw”。我看到这曾经是
我将语言设置更改为简体中文,然后检查了[[NSLocale currentLocale] localeIdentifier]。是“zh-Hans_US”。我知道zh表示中文,Hans表示简体中文,US
我正在尝试将语言环境设置为 zh-Hans 并将占位符更改为简体中文文本。 我使用的示例来自: https://github.com/anishparajuli555/SMSLocalization
一个应用程序支持 3 种语言: 英语 简体中文 繁体中文 资源分别位于目录中: 资源/值(value) res/values-zh-rCN res/values-zh-rTW 在牛轧糖之前的版本中,所
我在本地主机上的.htaccess有问题,它的工作在语言上停止,并将Good重定向到Controler:。如果我尝试在线直播服务器,我得到了404,因为没有进入语言条件。我尝试像这样在路径后添加语言:
按钮中 ( 之后的符号表现不同。 我在对话框中有 2 个按钮,即 Save 和 Cancel。 我在资源文件中也有一个名称和值对,其中给出了不同语言的值。 在我的问题中,我的资源文件中有 ZH-CN(
当我尝试创建 CultureInfo 时对于使用 Windows Phone 7 RTM SDK 的 zh-HK,我得到了 System.ArgumentException带有“值不在预期范围内。”。
我正在决定如何组织URL并将语言环境放入其中。我有两个选择: example.com/en/page example.com/page?locale=zh-CN-Google方式 en.example
我是一名优秀的程序员,十分优秀!