2013-04-24 96 views
0

我想在支持的Umbraco中将日期时间格式从英文更改为波斯语。 我在web.config.中应用此设置,但没有奏效。 如何将默认日期时间格式从英文更改为波斯语?

<globalization enableClientBasedCulture="true" requestEncoding="UTF-8" responseEncoding="UTF-8" uiCulture="fa" culture="fa"/> 

我怎样才能做到这一点(日期选择器(在属性选项卡&删除)发布)?

+0

你知道关于全球化的任何事情在Asp.net如果你想要更多的信息让我现在为你创建一个职位 – saeed 2013-04-24 12:46:58

+0

我使用的是Umbraco版本4.11.6 – Jahan 2013-04-24 12:47:46

+0

当你想改变日期时间显示格式在设计时还是在运行时? – saeed 2013-04-24 14:35:40

回答

1

Umbraco后端的语言由用户登录确定。截至目前,一把umbraco仅支持以下语言开箱:

  • 丹麦
  • 德国
  • 英语(英国)
  • 英语(美国)
  • 西班牙
  • 法国
  • 希伯来语(以色列)
  • 意大利语
  • 日本
  • 韩国选择了哪个语言
  • 荷兰
  • 挪威
  • 波兰
  • 葡萄牙巴西
  • 俄罗斯
  • 瑞典
  • 中国(简单)

根据为了特定用户,日期将以适合该文化的格式显示。

该论坛的帖子,Farsi and rtl support....,给出了如何添加一个新的翻译,如果您有兴趣在所有的一些信息。

+0

我的问题没有解决。 – Jahan 2013-04-24 20:59:55

0

,仿佛在寻找,不幸的是一把umbraco不支持Persian日期时间备考,但你可以学习FormatDateTime和改变外观来格式化像yyyy/mm/dd但对于像个月的全名应该创建自己的控制,或使用其他工作人员一样PersianDate® (PD) 在代码开发自定义的控制情况下,你可以学习PersianCalendar Class 这微小的解决方案:^)

如果你的日期是公历日期,那么首先必须将其转换为贾拉利日期是这样的:

PersianCalendar jc = new PersianCalendar(); 
    DateTime date = new DateTime(jc.GetYear(d), jc.GetMonth(d), jc.GetDayOfMonth(d)); 
    string print = string.Format("{0:0000}/{1:00}/{2:00}", date.Year, date.Month, date.Day); 

但如果你的日期是贾拉利日期已就用:

string print = string.Format("{0:0000}/{1:00}/{2:00}", date.Year, date.Month, date.Day); 
现在

,如果你有一个字符串包含贾拉利日期,如“一三九○年十二月一十日”和你想获得它的一天说它会有点棘手。

public static string GetDayOfWeekName(this DateTime date) 
    { 
     PersianCalendar jc = new PersianCalendar(); 
     DateTime d = jc.ToDateTime(date.Year, date.Month, date.Day, 0, 0, 0, 0, PersianCalendar.PersianEra); 

     switch (d.DayOfWeek) 
     { 
      case DayOfWeek.Saturday: return "شنبه"; 
      case DayOfWeek.Sunday: return "يکشنبه"; 
      case DayOfWeek.Monday: return "دوشنبه"; 
      case DayOfWeek.Tuesday: return "سه‏ شنبه"; 
      case DayOfWeek.Wednesday: return "چهارشنبه"; 
      case DayOfWeek.Thursday: return "پنجشنبه"; 
      case DayOfWeek.Friday: return "جمعه"; 
      default: return ""; 
     } 

首先,您应该将其转换为公历日期,然后获取日期名称。 而不是几个月名称:

public static string GetMonthName(this DateTime date) 
    { 
     switch (date.Month) 
     { 
      case 1: return "فررودين"; 
      case 2: return "ارديبهشت"; 
      case 3: return "خرداد"; 
      case 4: return "تير‏"; 
      case 5: return "مرداد"; 
      case 6: return "شهريور"; 
      case 7: return "مهر"; 
      case 8: return "آبان"; 
      case 9: return "آذر"; 
      case 10: return "دي"; 
      case 11: return "بهمن"; 
      case 12: return "اسفند"; 
      default: return ""; 
     } 
    } 

我将不胜感激,如果我能为您提供更多有用的帖子,并请让我知道了吧!

2

的日期格式没有更改基于为我使用的语言。

我看到根据需要再更新客户端依赖性日期格式硬编码在umbraco_client \的DateTimePicker \ umbDateTimePicker.js 变化:

  1. 的App_Data \ TEMP \ ClientDependency - 或者转储的确切一个是CDJs或查找被用于umbDateTimePicker.js相应的XML文件中为您的服务器“{服务器名称} - {} IDString -map.xml”,然后删除该文件CDJ是编译的JS包括umbDateTimePicker.js
  2. 重新启动应用程序/应用程序池,以用您的新设置触发生成新的ClientDependency文件。

我还在umbraco.controls中看到硬编码的日期时间格式字符串:umbraco.uicontrols.DatePicker.DateTimePicker.DateTime setter。

完成各种一把umbraco 4.x的版本。