Frage

Ich habe eine mehrsprachige ASP.NET-Website; einer der Sprachen ist Arabisch (ar-SA). Zum Umschalten zwischen den Kulturen, ich diesen Code verwenden:

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

Wenn Sie das Datum eines Artikels angezeigt wird, zum Beispiel, ich dies nur tun, und die Lokalisierung API kümmert sich um alles:

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

Das Problem ist, dass diese Termine zeigt die Hijiri (islamischen) Kalender (z.B. 2008 das Jahr als 1429 gemacht wird). Der Kunde möchte die Termine (immer noch die Monatsnamen und alles andere in Arabisch Rendering, natürlich) mit dem gregorianischen Kalender anzuzeigen. Wie kann ich das tun?

War es hilfreich?

Lösung

Antwort:

Es stellte sich heraus die ar-SA Kultur die einzige ist, die Hijiri Kalender zu verwenden; alle anderen arabischen Kulturen verwenden Gregorian. Hier sind die verschiedenen Datumsformate in Arabisch (etwas vermasselt, weil WMD nicht zu unterstützen RTL Text unterstützt scheinen).

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 

Und für was es wert ist hier die quick & dirty Code, den ich verwenden, um diese Liste zu erzeugen:

    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()

Weitere Kulturen unter http: // www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx

Andere Tipps

Sie können einfach ein anderes arabisches Gebietsschema verwenden, Der einzige Unterschied zwischen ihnen ist das Datumsformat ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top