C#中的文化变化(语言变化)

时间:2012-12-08 02:56:49

标签: c#

我有一个字符串“星期日”,我想改变这个波兰语(波兰)。我怎么能改变。我尝试使用Iformatprovider

4 个答案:

答案 0 :(得分:2)

基本上,每种语言都需要不同的“资源”:

“英语”资源包含“星期日”一词,“波兰语”资源包含“niedziela”一词。

答案 1 :(得分:1)

你需要从你想要的文化中获得“IFormatProvider”。即

 new System.Globalization.CultureInfo("pl-pl").DateTimeFormat.DayNames[0]; // niedziela

或者将当前DateTime格式化为一周中的某一天:

var day = String.Format(
   new System.Globalization.CultureInfo("pl-pl"), 
   "Now:{0:dddd}", DateTime.Now);

答案 2 :(得分:1)

如果您有一些DateTimedateTime,则可以使用

dateTime.ToString("dddd")

生成当前文化中的星期名称,或

dateTime.ToString("dddd", new CultureInfo("da-DK"))

在另一种文化中生产它(丹麦语(丹麦))。

如果您想要这些日期名称的“来源”,请使用

string[] dayNamesPolish = (new CultureInfo("pl-PL")).DateTimeFormat.DayNames;
string[] dayNamesEnglish = CultureInfo.InvariantCulture.DateTimeFormat.DayNames;

要实际翻译字符串,请执行以下操作:

string stringToTranslate = "Sunday";
int idx = Array.IndexOf(dayNamesEnglish, stringToTranslate);
string stringResult = dayNamesPolish[idx];

即使FirstDayOfWeek在两种文化中不相同(波兰语周一作为第一天),这种方法也有效。

答案 3 :(得分:0)

请参阅此国家语言支持(NLS)API参考,http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx