我有多种语言ASP.NET站点;其中一种语言是阿拉伯语(AR-SA)。到培养物之间进行切换,我使用此代码:

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Name)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(Name)

当显示文章的日期,例如,我只是这样做,和定位API完成所有的操作:

<%#Eval("DatelineDate","{0:d MMMM yyyy}")%>

的问题是,此显示使用Hijiri(伊斯兰)日历(例如2008年被渲染为1429)的日期。客户希望使用显示公历日期(仍呈现在阿拉伯语月份名称和其他一切,当然)。我怎样才能做到这一点?

有帮助吗?

解决方案

答案:

原来,AR-SA培养是使用Hijiri日历唯一的一个;所有其他阿拉伯文化公历使用。以下是阿拉伯语不同的日期格式(有点搞砸了,因为大规模杀伤性武器不支持似乎支持RTL文本)。

ar-AE 11 ديسمبر 2008 
ar-BH 11 ديسمبر 2008 
ar-DZ 11 ديسمبر 2008 
ar-EG 11 ديسمبر 2008 
ar-IQ 11 كانون الأول 2008 
ar-JO 11 كانون الأول 2008 
ar-KW 11 ديسمبر 2008 
ar-LB 11 كانون الأول 2008 
ar-LY 11 ديسمبر 2008 
ar-MA 11 دجنبر 2008 
ar-OM 11 ديسمبر 2008 
ar-QA 11 ديسمبر 2008 
ar-SA 13 ذو الحجة 1429 
ar-SY 11 كانون الأول 2008 
ar-TN 11 ديسمبر 2008 
ar-YE 11 ديسمبر 2008 

而对于什么是值得这里是我用来生成该列表中的快速和肮脏的代码:

    Response.Write("<table width=300px>")
    For Each ci As CultureInfo In (From c As CultureInfo In CultureInfo.GetCultures(CultureTypes.AllCultures) Order By c.Name Where c.Name.StartsWith("ar-"))
        Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(ci.Name)
        Thread.CurrentThread.CurrentUICulture = New CultureInfo(ci.Name)
        Response.Write(String.Format("<tr><td>{0}</td> <td style='direction:rtl;font-size:20px;'>{1:d MMMM yyyy}</td></tr>", ci.Name, Today))

    Next
    Response.Write("</table>")
    Response.End()

HTTP更多培养:// www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx

其他提示

您可以只使用另一阿拉伯语语言环境,他们之间的唯一区别是日期格式...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top