【问题标题】:Custom Culture info in ASP.NETASP.NET 中的自定义文化信息
【发布时间】:2009-07-30 04:53:41
【问题描述】:

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

这是我的代码:

public class CustomCulture : CultureInfo   

{
私有字符串 _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

【问题讨论】:

  • 您想对自定义文化做什么?为什么你认为你需要一个?
  • 你能把你的代码贴出来吗......
  • 只是出于好奇,您发现/发明了哪些文化无法用现有文化类型之一恰当地代表?
  • 我可以通过 CultureAndRegionInfoBuilder 创建自定义文化,问题是它会注册它,这需要完全访问本地计算机。如果我的程序没有完全访问权限怎么办,这意味着我无法安装我的新自定义文化并且我无法使用它。这就是我这样做的原因。类似于这个stackoverflow.com/questions/1059677/…

标签: asp.net cultureinfo


【解决方案1】:

尝试安装自定义文化。请参阅Microsoft Locale Builder 创建一个 .msi 并运行它来安装您的自定义语言环境(需要 Vista 或更高版本)。我能够使用 App_GlobalResources 在 Vista 上运行它。

顺便说一句,带有私人使用扩展的自定义语言环境需要 -x-,例如, zh-AU-x-abc。见Constructing language tags

【讨论】:

  • 这条评论很有帮助,我没有遇到过这个 w3c 语言环境指南。我以前一直在考虑将澳大利亚地区分解为州的想法,例如 ISO-3166-2 标准 en-AU-VIC、en-AU-WA 等,但我知道我实际上想要自定义细分,例如 en -AU-WEST 和 en-AU-EAST。很高兴知道这些应该作为私有标签实现,并添加 -x- 部分。
【解决方案2】:

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

【讨论】:

  • 我必须同意你的说法。 CultureInfo 分为语言和地区,但有些文化是特定地区的,比如日语是 ja。当您要查看语言(日语)和地区(美国)的内容时会发生什么...
猜你喜欢
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 2013-12-18
相关资源
最近更新 更多