C# 将.NET语言环境转换为jQuery语言环境-当本地资源中不存在国家变体(例如“US”或“MX”)时
我注意到C# 将.NET语言环境转换为jQuery语言环境-当本地资源中不存在国家变体(例如“US”或“MX”)时,c#,jquery,.net,locale,globalization,C#,Jquery,.net,Locale,Globalization,我注意到jQuery有一个Spanish语言环境,即es。当您将浏览器更改为西班牙语区域设置时,它可以是es、es-US、es-MX等,因为只有一个jQuery西班牙语文件,所以它仅在区域设置为es时加载该文件。有没有一种方法可以将.NET使用CultureInfo对象返回给您的区域设置转换为jQuery所需的区域设置 下面是一个更好地解释我的情况的场景。如果我将浏览器语言更改为es,CultureInfo.CurrentCulture返回es,但是,jQuery不包含区域设置es,它只包含es
jQuery
有一个Spanish
语言环境,即es
。当您将浏览器更改为西班牙语区域设置
时,它可以是es、es-US、es-MX等
,因为只有一个jQuery西班牙语文件,所以它仅在区域设置为es
时加载该文件。有没有一种方法可以将.NET使用CultureInfo
对象返回给您的区域设置转换为jQuery所需的区域设置
下面是一个更好地解释我的情况的场景。如果我将浏览器语言更改为
es
,CultureInfo.CurrentCulture
返回es
,但是,jQuery不包含区域设置es
,它只包含es
,但在某些情况下它确实有类似en US
和en GB
的内容,那么最好的方法是什么呢。我应该重命名语言环境文件还是进行某种转换?生活在比利时,我们在法语、荷兰语、英语以及这些文化的组合方面也有类似的问题
对于我的datepicker设置,我想到了使用html
标记作为区域占位符,从CultureInfo.CurrentCulture
或服务器端馈送
<html lang="nl-BE" />
在我掌握了糟糕的实施技巧之后,客户要求更改fr BE
的日期,我最终在jqueryui:s中创建了一个自定义区域性文件
这是最简单的解决办法
我相信这一切都取决于你的文化习惯的设置。如果jQuery UI提供的数据/翻译足以满足要求,我就不会创建自定义区域性。如果请求了
es US
但不存在,jQuery不会自动加载es
区域设置吗?@Dirk-我尝试过,但它似乎没有这样做。我将浏览器语言设置为es
,并且CurrentCulture
返回了es-es
,因此使其工作的唯一方法是使用es-es
jquery脚本。
// var cfg.options -> $.extend to this.settings
options: {
...
defaultCulture: 'en-GB',
validCultures: ['en-GB', 'fr', 'fr-BE', 'nl-BE', 'nl'],
...
},
getCulture: function () {
var settings = this.settings,
cache = settings.cache,
dynamicProp = settings.dynamicProp,
options = settings.options,
culture = $(cache.currentCulture).prop(dynamicProp.culture), // $('html').prop('lang')
language;
if ($.inArray(culture, options.validCultures) === -1) {
language = culture.split('-')[0];
culture = $.inArray(language, options.validCultures) === -1 ? options.defaultCulture : language;
}
return culture;
},