0

我有一个字符串“Sunday”,我想更改这个 Polish(Poland) 。我该如何改变。我尝试使用 Iformateprovider

4

4 回答 4

2

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

“English”资源将包含单词“Sunday”,“Polish”资源包含单词“niedziela”。

于 2012-12-08T03:03:34.140 回答
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);
于 2012-12-08T04:45:11.683 回答
1

如果你有一些DateTime价值dateTime,那么你可以使用

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在两种文化中不一样(波兰语将星期一作为第一天),这仍然有效。

于 2012-12-08T11:13:35.290 回答
0

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

于 2012-12-08T03:05:59.447 回答