Как отобразить арабские даты в григорианском календаре?
-
21-08-2019 - |
Вопрос
У меня есть многоязычный сайт ASP.NET;один из языков — арабский (ар-СА).Для переключения между культурами я использую этот код:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Name)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(Name)
Например, при отображении даты статьи я просто делаю это, а API локализации обо всем позаботится:
<%#Eval("DatelineDate","{0:d MMMM yyyy}")%>
Проблема в том, что даты отображаются с использованием календаря Хиджири (исламского) (например,2008 год отображается как 1429).Клиент хочет отображать даты с использованием григорианского календаря (разумеется, названия месяцев и все остальное отображаются на арабском языке).Как я могу это сделать?
Решение
Отвечать:
Оказывается, культура АР-СА — единственная, использующая календарь Хиджири;все остальные арабские культуры используют григорианский язык.Вот различные форматы дат на арабском языке (немного запутанно, потому что WMD не поддерживает текст с письмом справа налево).
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-cultural-list-and-codes.aspx
Другие советы
Вы можете просто использовать другую арабскую локаль. Единственная разница между ними — формат даты...