2010-04-12 53 views
2

我正在進行本地化項目,當我更改語言時,由於某些翻譯很大,UI會受到干擾。例如說有按鈕,文字爲「全選」。但是,當它在法國本地化時,它被解讀爲「Sélectionnertout」。這比Select All大,因此gui會受到影響。是否有任何方法來本地化gui。UI的本地化

+0

你需要說這是什麼樣的項目 - WinForms,WPF,網絡等 – 2010-04-12 05:24:59

+0

其網站和基本上的變化是在aspx頁面 – 2010-04-12 05:44:10

回答

1

因爲「Select All」的最終文本可以轉換爲任意長度的文本,在這種特定情況下,「Select All」將更改爲「Sélectionnertout」,並且您不希望UI受到干擾,您可以調整寬度以%計,並希望您的最終文本有足夠的空間。

我不知道是否有任何方法來處理寬度在運行時間取決於長度,因爲在你可以計算長度和給像素寬度它不會是一個好主意。所以有更少的文字和寬度的百分比。

1

我建議你創建一個僞文化來處理它。

僞文化將包含所有文件夾中指定字符串的最大轉換。

例如,如果您有一個名爲strings.resx的Resx文件,另一個基於文化的文件可能在法語strings.fr.resx中,另一個在荷蘭語中稱爲strings.nl.resx。

然後創建一個名爲string.pseudocult.resx另一個文件,pseudocult應該與你將不會被支持,例如任何文化所取代string.az.resx

strings.resx

< data name="Select_All" xml:space="preserve"> 
    < value>Select All</value> 
< /data> 

串.fr.resx

< data name="Select_All" xml:space="preserve"> 
    < value>Sélectionner tout</value> 
< /data> 

strings.nl.resx

< data name="Select_All" xml:space="preserve"> 
    < value>Alles selecteren</value> 
< /data> 

strings.az.resx

< data name="Select_All" xml:space="preserve"> 
    < value>Sélectionner tout</value> 
< /data> 

在AZ的值應通過發現使用翻譯支持的培養基於GUI的最長的字符串,在此情況下基於GUI的最長翻譯爲法語來測量文化。 這將基本上爲您提供應用程序中每個控件的最小大小,並且還可以幫助您瞭解是否應該更改翻譯。

否則,如果你想忽略它,你應該保持包含長度小於原始尺寸的5到300%,大於等於原始尺寸的5到大約170%的控件的尺寸。

0

只需在Visual Studio Designer中打開您的用戶界面,並將您的FormUserControl的屬性Localizable設置爲true。通過該步驟自動將一個新的.resx文件添加到包含所有屬性值的UI元素中。這個值將在第一步中應用,並且如果現在找到匹配當前文化的值,將會採取行動。

接下來只需將Language屬性切換爲您想要支持的語言,即它自己的一組文本和佈局。如果您現在對UI進行了任何更改,則會設置另一個.resx將被添加到您的組件,並且您所做的任何更改都將被寫入此文件。

所以,簡單地創建你的控制,只要你喜歡,在Localizable屬性設置爲true,該Language屬性切換到新支持的語言,並根據需要調整GUI。

關於本地化的更深入的文章也可以在at MSDN找到。