我有一个多语言的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日历的文化; 所有其他阿拉伯文化都使用格里高利.以下是阿拉伯语中不同的日期格式(由于WMD不支持似乎支持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("
{0} | {1:d MMMM yyyy} | ", ci.Name, Today)) Next Response.Write("
http://www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx上的更多文化