我想知道是否存在从 Microsoft CultureInfo(可以在此处查找MS-LCID (Windows Language Code ID))到 Unicode cldr 语言代码的定义映射。
我目前正在使用 jQuery 和 globalize.js 来验证我们的 asp.net-core 站点的用户输入。我们的实现看起来类似于这个示例validationScript.cshtml(asp.net-core 代码)
我们只需要像这样更改脚本部分:
<script type="text/javascript">
var culture = "@System.Globalization.CultureInfo.CurrentUICulture";
$.when(
$.get("/lib/newTestLocalization/cldr-core/supplemental/likelySubtags.json"),
$.get("/lib/newTestLocalization/cldr-numbers-modern/main/" + culture + "/numbers.json"),
$.get("/lib/newTestLocalization/cldr-core/supplemental/numberingSystems.json"),
$.get("/lib/newTestLocalization/cldr-core/supplemental/timeData.json"),
$.get("/lib/newTestLocalization/cldr-core/supplemental/weekData.json")
).then(function() {
console.log("sucessfully loaded cldr data");
// Normalize $.get results, we only need the JSON, not the request statuses.
return [].slice.apply(arguments, [0]).map(function(result) {
return result[0];
});
},
function() { console.log("Error loading cldr data!"); }
).then(Globalize.load, function ()
{ console.log("Error loading cldr data!"); }
).then(function () {
Globalize.locale(culture);
console.log("finished Globalize.locale !");
});
</script>
如果我将网站切换到以下之一:
- CultureInfo("zh-CHS")
- CultureInfo("zh-CHT")
- CultureInfo("de-DE")
- CultureInfo("ja-JP")
- CultureInfo("zh-CN")
globalize.js 无法正常工作,因为上述任何语言 ID 都没有 cldr 文件夹。
我在这里查找了cldr-numbers-full/main/(CLDR 33 版本的 JSON 数据),但找不到上面的任何 ID。
所以我的问题是:“是否存在从 MS-LCID 到 cldr-ID 的定义映射,如果这是一个正确的问题吗?
我的第二个问题是:当前使用的标准/最佳实践是什么?