문제

다국어 ASP.NET 사이트가 있습니다. 언어 중 하나는 아랍어 (AR-SA)입니다. 문화간에 전환하려면이 코드를 사용합니다.

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

예를 들어 기사의 날짜를 표시 할 때, 나는 이것을 수행하고 현지화 API는 모든 것을 처리합니다.

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

문제는 이것이 Hijiri (이슬람) 달력을 사용하여 날짜를 표시한다는 것입니다 (예 : 2008 년은 1429로 렌더링). 고객은 Gregorian 달력을 사용하여 날짜를 표시하려고합니다 (물론 월 이름과 다른 모든 것을 아랍어로 렌더링합니다). 어떻게 할 수 있습니까?

도움이 되었습니까?

해결책

대답:

AR-SA 문화는 Hijiri 달력을 사용하는 유일한 사람입니다. 다른 모든 아랍어 문화는 그레고리안을 사용합니다. 아랍어의 다른 날짜 형식은 다음과 같습니다 (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