Domanda

Ho un sito ASP.NET multilingue; una delle lingue è l'arabo (ar-SA). Per passare tra le culture, io uso questo codice:

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

Quando si visualizza la data di un articolo, per esempio, io faccio solo questo, e l'API di localizzazione si occupa di tutto:

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

Il problema è che questa mostra le date utilizzando il calendario Hijiri (islamica) (ad esempio, l'anno 2008 è reso come 1429). Il cliente vuole visualizzare le date usando il calendario gregoriano (ancora rendendo i nomi dei mesi e tutto il resto in arabo, ovviamente). Come posso fare questo?

È stato utile?

Soluzione

Risposta:

Si scopre la cultura ar-SA è l'unico ad utilizzare il calendario Hijiri; tutte le altre culture arabe usano gregoriano. Qui ci sono i diversi formati di data in arabo (un po 'incasinato perché ADM non supporta sembra sostenere il testo 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 

E per quello che vale ecco il codice quick & dirty ho usato per generare questa lista:

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

Più culture a http: // www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx

Altri suggerimenti

Si può semplicemente utilizzare un altro locale arabo, L'unica differenza tra loro è il formato di data ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top