我想本地化VirtualKey for Control。 目前有這樣的代碼:本地化VirtualKey.Control(WinRT)
using Windows.System;
var message = "Press " + VirtualKey.Control.ToString() + " + D for deletion!";
是否有可用於有以下內容的API?
- 按Control + D刪除! (在英語系統上)
- 按Steuerung + D刪除! (在德國的系統)
我想本地化VirtualKey for Control。 目前有這樣的代碼:本地化VirtualKey.Control(WinRT)
using Windows.System;
var message = "Press " + VirtualKey.Control.ToString() + " + D for deletion!";
是否有可用於有以下內容的API?
由於VirtualKey是一個枚舉,你不能直接轉換枚舉的成員,但你可以使用它作爲資源文件的關鍵,建立一個定位系統:
我遵循this教程在Windows 8.1應用程序上構建了一個簡單的本地化系統;這些都是我跟(總結時)的步驟
VirtualKey.xxx.ToString()
,我強烈建議你使用的相同的標識符列舉;例如:如果要翻譯控制字符,請調用新資源「控制」 - (這是我所做的):在代碼,請參閱各翻譯字符串
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
loader.GetString(VirtualKey.xxx.ToString());
這就是我所做的在MainPage.xaml中一個TextBlock:
var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
this.txbCtrl.Text = String.Format("Press {0}-Z to undo", loader.GetString(VirtualKey.Control.ToString()));
要測試它的其他語言,我跟着教程,即使我不喜歡它:
注意:如果您的計算機上沒有這三種語言,請通過單擊添加語言並將其添加到列表中來添加缺少的語言。
在我來說,我對第一和英語(英國)作爲第二個意大利上市,但如果我換他們:
注意,我調用了英語Ctrl鍵 「控制」 和意大利一個 「Ctrl」 鍵;它完美的作品
我希望這有助於。
如果您還有其他問題,請詢問!
LuxGiammi
編輯:這是一個解決方案,儘管我承認,這不是一個很好的(反正這是我能想到的最好的)。無論如何,正如here針對WinForm應用程序所述,沒有必要這樣做,因爲如果您使用鍵的默認名稱(即枚舉中的名稱,就像您現在所做的那樣),evrybody會理解您。
EDIT2:然而,這個解決方案爲您的應用程序的未來「全面」本地化設置了一切。這種方式的一半是在開發過程的開始階段完成的。
這是正確的做法。 –
對「按」和「刪除」等單詞進行硬編碼沒有任何意義,並希望它能被本地化。使用VirtualKey.Control也沒有任何意義,它始終是世界上任何地方的Ctrl鍵,即使鍵標題可能讀取不同。嘗試發佈一個更現實的例子,通過翻譯*整個*字符串不僅可以本地化。 –