グレゴリオ暦のアラビア語の日付を表示する方法?
-
21-08-2019 - |
質問
私は、多言語ASP.NETサイトを持っています。言語のひとつは、アラビア語(AR-SA)です。文化を切り替えるには、私はこのコードを使用します:
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Name)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(Name)
記事の日付を表示する場合、例えば、私はこれを行う、およびローカリゼーションのAPIは、すべての面倒を見る:
<%#Eval("DatelineDate","{0:d MMMM yyyy}")%>
問題は、これが(例えば、2008年が1429として表示される)聖(イスラム)カレンダを使用して日付を表示することです。クライアントは、(もちろん、まだアラビア語の月名および他のすべてのレンダリング、)グレゴリオ暦を使用して日付を表示したいと考えています。私はこれを行うことができますどのように?
解決
回答:
は、AR-SA培養は、聖カレンダーを使用する唯一のものであるが判明します。他のすべてのアラビア語の文化は、グレゴリオ暦を使用しています。ここではアラビア語で異なる日付形式は(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("<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する
他のヒント
あなただけの別のアラビア語のロケールを使用することができ、それらの間の唯一の違いは、日付形式です...
所属していません StackOverflow