Pergunta

Eu tenho um site ASP.NET multilingue; uma das línguas é o árabe (AR-SA). Para alternar entre as culturas, eu uso este código:

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

Ao exibir a data de um artigo, por exemplo, eu só faço isso, e a API de localização cuida de tudo:

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

O problema é que isto exibe datas usando o calendário Hijiri (islâmica) (por exemplo, o ano de 2008 é apresentado como 1429). O cliente quer exibir as datas usando o calendário gregoriano (ainda prestar os nomes dos meses e tudo o mais em árabe, é claro). Como posso fazer isso?

Foi útil?

Solução

Resposta:

Acontece que a cultura AR-SA é o único a usar o calendário Hijiri; todas as outras culturas árabe usar gregoriano. Aqui estão os diferentes formatos de data em árabe (um pouco desarrumada porque WMD não suporta parecem apoiar texto 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 por que vale a pena aqui está o código rápida e suja I utilizado para gerar esta 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()

Mais culturas em http: // www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx

Outras dicas

Você pode apenas usar outra localidade árabe, a única diferença entre eles é o formato de data ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top