Question

J'ai un site ASP.NET multilingue; l'une des langues est l'arabe (ar-SA). Pour basculer entre les cultures, j'utilise ce code:

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

Lors de l'affichage de la date d'un article, par exemple, je fais juste cela, et l'API de localisation prend soin de tout:

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

Le problème est que cette affiche les dates à l'aide du calendrier Hijri (islamique) (par exemple l'année 2008 est rendue 1429). Le client veut afficher les dates à l'aide du calendrier grégorien (rendu encore les noms de mois et tout le reste en arabe, bien sûr). Comment puis-je faire?

Était-ce utile?

La solution

Réponse:

Transforme la culture ar-SA est le seul à utiliser le calendrier Hijri; toutes les autres cultures arabes utilisent grégorien. Voici les différents formats de date en arabe (un peu foiré parce que ADM ne supporte semble pas soutenir le texte 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 

Et pour ce que ça vaut la peine ici est le code rapide et sale j'ai utilisé pour générer cette liste:

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

Plus de cultures à http: // www.massimilianobianchi.info/max/articles/22/UI-culture-list-and-codes.aspx

Autres conseils

Vous pouvez simplement utiliser une autre locale arabe, la seule différence entre eux est le format de date ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top