質問

私は、多言語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する

他のヒント

あなただけの別のアラビア語のロケールを使用することができ、それらの間の唯一の違いは、日付形式です...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top