ASP.NET中的自定义文化信息

时间:2009-07-30 04:53:42

标签: asp.net cultureinfo

我创建了一个CustomCulture类表单CultureInfo。

这是我的代码:

public class CustomCulture : CultureInfo   

{
       private string _parent;
       私有字符串_name;
       私有字符串_description;

   public CustomCulture(string parentCulture, string myCultureName) : base(parentCulture)   
   {   
       _parent = parentCulture;   
       _name = myCultureName;   
       _description = String.Format("custom culture({0})", _name);   
   }   
   public override string Name   
   {   
       get  
       {   
           return _parent + "-" + _name;   
       }   
   }   
   public override CultureInfo Parent   
   {   
       get  
       {   
           return new CultureInfo(_parent);   
       }   
   }   
   public override string EnglishName   
   {   
       get  
       {   
           return _description;   
       }   
   }   
   public override string NativeName   
   {   
       get  
       {   
           return _description;   
       }   
   }   

}

public partial class _Default : System.Web.UI.Page 

{     private DefCulture.CustomCulture abc = new DefCulture.CustomCulture(“en-AU”,“abc”);

protected override void InitializeCulture()
{
    Thread.CurrentThread.CurrentUICulture = abc;
}

...

我想要实现的是,例如,如果我创建自定义文化en-AU-abc, 当前页面可以使用本地资源文件Default.aspx.en-AU-abc.resx,

但我无法正常工作,当前页面总是加载Default.aspx.resx

2 个答案:

答案 0 :(得分:2)

尝试安装自定义文化。请参阅Microsoft Locale Builder创建.msi并运行它以安装自定义区域设置(需要Vista或更高版本)。我能够通过App_GlobalResources在Vista上运行它。

顺便说一句,具有私有用户扩展的自定义区域设置需要 -x - ,例如, 的烯AU-X-ABC 即可。见Constructing language tags

答案 1 :(得分:1)

pb,Rex M:.NET不支持的两种常常需要的文化:en-ID,es-US。我喜欢这一点,因为你没有遇到这种限制的.NET,你选择采取居高临下的态度 - 因为很明显,一个人提出一个你没有答案的问题,一定不知道他们在做什么。为什么您认为Microsoft在.NET 2.0中引入了CultureAndRegionInfoBuilder类?