.net错误不支持文化名称'az-az'。参数名称:名称

时间:2009-12-26 13:23:26

标签: .net globalization

我正在尝试为我的网站实现不同的语言,到目前为止我的设置没有问题。

我创建了Language.en.resx,Language.nl.resx等,并将它们放在App_GlobalResources文件夹中。 然后使用代码blewlo我允许用户设置他们喜欢的语言

protected override void InitializeCulture()
{

    if (string.IsNullOrEmpty(site_language))
    {
        System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-GB");
        System.Threading.Thread.CurrentThread.CurrentCulture = ci;
        System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
    }
    else
    {
        this.UICulture = site_language;
        this.Culture = site_language;
        base.InitializeCulture();
    }


}

但这不适用于Azerbeycani语言。当我创建Language.az.resx并通过az-AZ设置时,我得到错误说

System.ArgumentException

不支持文化名称'az-az'。参数名称:名称 System.ArgumentException:不支持文化名称'az-az'。 参数名称:名称 在System.Globalization.CultureTableRecord..ctor(String cultureName,Boolean useUserOverride) 在System.Globalization.CultureTableRecord.GetCultureTableRecord(String name,Boolean useUserOverride) 在System.Globalization.CultureInfo..ctor(String name,Boolean useUserOverride) 在System.Web.HttpServerUtility.CreateReadOnlyCultureInfo(String name) 在System.Web.UI.Page.set_UICulture(String value) 在SiteBasePage.InitializeCulture() 在ASP.mobile_default_aspx .__ BuildControlTree(mobile_default_aspx __ctrl) 在ASP.mobile_default_aspx.FrameworkInitialize() 在System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint) 在System.Web.UI.Page.ProcessRequest() 在System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 在System.Web.UI.Page.ProcessRequest(HttpContext上下文) at ASP.mobile_default_aspx.ProcessRequest(HttpContext context) 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)

我检查了http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(VS.71).aspx并注意到没有az-Az而是az-AZ-Latn。问题是,当我使用az-AZ-Latn设置语言时,我得到同样的错误。

我见过并试过http://support.microsoft.com/kb/939949,但它不适用/工作

有人有微笑问题吗?

1 个答案:

答案 0 :(得分:4)

您是否按照KB article

中的说明尝试了新的文化名称az-Latn-AZ

您的应用是否有可能截断文化名称?

我只是因为我的控制台应用程序使用这种文化没有问题:

var name = "az-Latn-AZ";

var sc = CultureInfo.CreateSpecificCulture(name);

Console.WriteLine(sc.NativeName);
Console.WriteLine(42.ToString("C", sc));

打印:

Az?rbaycan-ili (Az?rbaycanca)
42,00 man.