2011-08-09 17 views
2

我正在建設企業C#.net應用程序,要求是會有阿拉伯語和英語版本。客戶提供了2個選項,可以將英語和阿拉伯文一起寫入標籤和說明,或者將組合框放在開始時用英語和阿拉伯語選擇並繼續使用該語言。 我想節省我的時間,並希望我可以創建一個英文版本,阿拉伯語必須自動翻譯。阿拉伯語本地化英文桌面C#.net應用程序

在此先感謝。

+0

您正在詢問一匹小馬。那麼,機械特克。本地化在.NET中得到了很好的支持,但您不會提供任何提示您使用的GUI。 Silverlight,ASP.NET,Winforms,WPF,它很重要。你也不能忽視阿拉伯語是從右向左渲染的。 –

+0

桌面上你的意思是標準的WinForms,對不對? –

+0

是的Windows窗體 –

回答

4

您可以使用2個資源文件,一個使用英文,一個使用阿拉伯語,當您選擇語言時,應用程序將選擇使用哪個資源文件。

+0

如何使用,我可以下載它? – bilal

+0

你可以添加資源文件並對其進行編輯(visual studio有模板) –

+0

它有任何選項可以自動轉換所有標籤並將其轉換爲阿拉伯文? –

6

首先,你不需要選擇任何東西,如果有人在他/她的操作系統中設置了阿拉伯語語言環境,就已經選擇了它。要檢測使用哪種語言(如果您需要此信息,通常您不會),您只需閱讀System.Globalization.CultureInfo.CurrentUICulture屬性。

但是,在WinForms中,您實際上可以使用內置的本地化支持。要做到這一點,您需要將表格Localizable屬性切換爲true。假設您提供了阿拉伯語字符串,您需要在之後將Form的Language屬性從(默認)切換到阿拉伯語,然後完成英文版式並將翻譯放在適當的位置。這是最簡單的方法。在使用阿拉伯語時,您還需要將表格的RightToLeft屬性切換爲是,RightToLeftLayout爲真。
如果您正確地做到這一點,您會看到該表單是鏡像的。這是理想的情況,不要驚慌。

最糟糕的部分是,你偶爾會需要顯示消息框。這裏的問題是,這取決於你使用的是什麼語言類型,你實際上需要做它以不同的方式,爲阿拉伯語(和其他RTL語言)要求RTLReading不斷被使用:

if (CultureInfo.CurrentUICulture.TextInfo.IsRightToLeft) 
{ 
    MessageBox.Show(text, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading); 
} 
else 
{ 
    MessageBox.Show(text, caption, MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); 
} 

這它在高水平...

相關問題