- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您有本地化的应用程序 pt-br
和 pt-pt
, 如果系统只报告 pt
应该选择什么语言代码(通用葡萄牙语)?
这个问题与应用程序的性质、桌面、移动或基于浏览器无关。让我们假设您无法获取区域信息 来自另一个来源,您必须选择一种语言作为默认语言。
该问题也适用于更多案例,包括:
pt-pt
和 pt-br
en-us
和 en-gb
fr-fr
和 fr-CA
zh-cn
, zh-tw
, .... - 实际上在这种情况下我知道 zh
可用作简体中文的主要语言,其中完整代码为 zh-hans
.对于繁体中文,代码如 zh-tw
, zh-hant-tw
, zh-hk
, zh-mo
正确的代码(规范)应该是 zh-hant
. zh-cn
) 作为用户的首选语言,而我只有英文和繁体中文 (
en,zh-tw
) 的翻译
我应该从两个选项中选择什么:en
或 zh-tw
?
最佳答案
一般来说,您应该将“猜测缺少的参数”问题与“匹配我想要的语言环境列表与我拥有的语言环境列表”问题分开。它们是不同的。
猜测缺失的部分
这些都是棘手的领域,甚至(可能)带有政治色彩。
但除了极少数异常(exception),规则是选择语言的“原始国家”。
异常(exception)情况主要基于人口。
所以 fr-FR 代表 fr、es-ES 等。
一些异常(exception):用 pt-BR 代替 pt-PT,用 en-US 代替 en-GB。
zh 映射到 zh-CN 也被普遍接受(并为中国标准所要求)。
您可能还需要查看国家/地区来确定脚本,或者反过来。
例如 az => az-AZ 但 az-Arab => az-Arab-IR 和 az_IR => az_Arab_IR
匹配“想要”与“拥有”
这涉及匹配想要的列表与拥有语言的列表。
处理列表变得更加困难。如果可能的话,结果也应该以一种智能的方式排序。 (例如,如果 want = [ fr ro ]
和 have = [ en fr_CA fr_FR ro_RO ]
那么你可能想要 [ fr_FR fr_CA ro_RO ]
作为结果。
不同脚本的语言之间不应该有匹配。所以 zh-TW 不应该回退到 zh-CN,而 mn-Mong 不应该回退到 mn-Cyrl。
棘手的地方:理论上 sr-Cyrl 不应该回退到 sr-Latn,但它可能会被用户理解。 ro-Cyrl 可能会退回到 ro-Latn,但反之则不然。
一些引用资料
uloc_addLikelySubtags
(和 uloc_minimizeSubtags
)在 uloc.h
.实现 http://www.unicode.org/reports/tr35/#Likely_Subtags uloc.h
有uloc_acceptLanguageFromHTTP
和 uloc_acceptLanguage
处理想要与拥有。但是它们有点无用,因为它们将 UEnumeration* 作为输入,并且没有公共(public) API 来构建 UEnumeration。 flash.globalization
命名空间同时进行标签猜测和语言匹配( http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/globalization/package-detail.html )。它适用于 TR-35,可以超越 @ 并考虑操作。例如,如果 have = [ ja ja@collation=radical ja@calendar=japanese ]
和 want = [ ja@calendar=japanese;collation=radical ]
那么最佳匹配取决于您想要的操作。对于日期格式 ja@calendar=japanese 是更好的匹配,但对于排序规则,您需要 ja@collation=radical 关于localization - 如果您有一个应用程序本地化为 pt-br 和 pt-pt,如果系统只报告 "pt"代码,您应该选择哪种语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2500066/
我们的 CMS 将换行符输出为 (愚蠢,我知道,但在语法上是正确的(?)) 这转换为 在 chrome 和 IE10 中到 在火狐中。 所有浏览器都将其显示为两个换行符。 为什么不是翻译成或者只是
我正在尝试将一堆 HTML 文档转换为 XML 合规性(通过 java 方法),并且有很多 (1) 未封闭或 (2) 包含属性的标签。由于某种原因,我使用的正则表达式无法处理包含属性的标签。这是代码
如何转换字符串 "" to "" using java's String.replaceAll(String, String) method? 我都试过了: str.replaceAll("+
这个问题的答案是 community effort 。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。 我试过检查 other answers ,但我仍然感到困惑——尤其是在看到 W3scho
问题是我无法通过生产者脚本将消息发送到集群内的任何代理。 该设置是一个单一的 Zookeeper 服务器,使用默认设置在 IP (192.168.10.2:2181) 上运行。 此外,还有 3 个代理
我正在尝试使用 python 和 Beautiful Soup 4 用新行替换某些 html 中的每个中断标记。 该文档有 , 和标签,但由于 Beautiful Soup 处理标签的方式,每当它找到
我正在使用带有模板工具包的 perl 生成网页,我在 HTML 文件上更改了一些 JS 代码,编辑后有 显示在 UI 上,我不知道如何,奇怪的是没有 源码中,只有在Inspect element On
这是 HTML 页面的完整源代码: one two three four 谁能解释一下为什么我在IE8或chrome浏览页面时,“三”和“四”之间多了一个空行? 我认为标准应该让所有
我正在使用 并且它按预期在 chrome 和 IE 中正常工作,但在 firefox 中结果很奇怪。当我在 firefox 中看到代码时,它替换了 与 . 我还在某处读到替代语法 XML 允许在许
我有将 BBCode 替换为 html 的代码,当我想替换标签时出现问题 或 [br /]在 [pre=html] code [/pre] 内. Regex exp; string str; str
这个问题不太可能对任何 future 的访客有帮助;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于互联网的全局受众。如需帮助使这个问题更广泛适用,visit the h
我正在使用这个(jQuery)来替换所有 与清除验证错误: $("").replaceAll(""); 但它不会减少任何验证错误。验证器是否检查原始来源? 最佳答案 JQuery 仅在文档呈现后才
我想获取 break html 中的文本,但这不是用段落换行,只是break内的文本。 Division 是我唯一的标识符,它是“Msg”。我怎样才能获得每个元素之一? H
Hood switch - (automatic transmission only).<br><br>Hood Switch (2013 CX-5 - not requir
我想选择 br 后面没有跟另一个 br 的元素。 例如。 sometextadsf 我想选择这两个元素。 sometextadsf 我只想选择 2 个 br 元素,而不是 4 个。 我看过这个问题,但
这个问题在这里已经有了答案: HTML 5: Is it , , or ? (18 个答案) 关闭 9 年前。 当我开始从 w3schools 学习 HTML 时,他们正在使用这个 .当我开始学习
我是 nagios 新手,我已经在我的 Linux 机器上安装了 nagios 3。 我想安装 nagios check_procs 插件。有人可以建议我吗。谢谢 最佳答案 您可以从依赖于您使用的 L
我有一个段落有一些单一的 和双 . 我想添加所有单个 , 但不是双 . 这怎么可能? 如果我用 p br {display:none} 它隐藏了所有的 br 标签。但是,当我有两个 br 时,我希
之间的主要区别是什么?和 在 html 标记中?有人可以解释两者的主要区别,因为这让我感到困惑。预先感谢您的所有评论。 :) 最佳答案 在实践中,不存在。就或 . 但是,区别在于位置,并且对所有
我如何使用JavaScript来检测 成为一个 ? 我试过: jQuery('body').html().replace(/(\\r\n){3, }/g,"\n"); 但这对我不起作用。 最佳
我是一名优秀的程序员,十分优秀!