新時尚Windows8開發(6) 資源 本地化

2021-09-30 15:21:30 字數 2058 閱讀 6782

老周的部落格專欄:

在實際開發中,也許我們需要做這樣的介面,可分為兩種情況:

1、應用程式具備多語言版本(如中文簡體,中文繁體,英文等),使用者介面上顯示的文字會根據系統的情況自動套用資源,比如我的系統是簡體中文版的,那就使用簡體中文的資源檔案中的內容。

2、使用者可以選擇語言如簡體中文、正體中文。根據使用者選擇的語言,動態載入資源檔案中的字串。

就像我為本文做的這個例子,執行後,預設選中「簡體中文」,即頁面中的文字顯示為簡體中文。

然後,選擇「正體中文」,這時候,介面上的文字也相應地進行變化。

嗯,大致效果就是這樣了。

接下來,我們一起來做一做這個例項,通過例項來理解其中的奧妙吧。

1、啟動vs 2012,新建乙個空頁面的應用程式專案(此處省略47個字)。

2、在專案中新建乙個資料夾,名為「strings」,再在這個新資料夾下再建兩個資料夾,分別名為「zh-hans」和「zh-hant」,注意,語言限定名不要輸錯,前者是簡體中文,後者是正體中文。

3、分別在上面建的兩個資料夾中各建乙個資源檔案,檔名按預設即可,resources.resw。這方便在**中引用。(操作方法是在資料夾上右擊,從選單中選擇「新建項」,找到「資源檔案」)。

如果您的操作無誤,現在您的專案資源目錄結構就像下圖那樣。

記住,不管你用的是法語,日語,中文還是鳥語,資源檔案的名字必須一樣,只是放在不同資料夾下,而資料夾以語言標記命名(如zh-cn),就這麼簡單, 不要弄錯就行了。

4、先開啟簡體中文zh-hans下面的資源檔案,輸入三個項,再開啟zh-hant下面的資源檔案,也輸入三個項,記著,鍵名必須相同,只是值不同罷了,該用什麼語言就用什麼,牛語言的資源就輸入牛語,用作鳥語的資源就輸入鳥語,就像翻譯一樣。

如下圖所示。

5、開啟mainpage.xaml,布局**我直接貼,也不解釋了。

正體中文

上面的xaml我相信你能看懂的,如果看不懂,說明你很有必要複習一下wpf。

6、開啟**檢視(mainpage.xaml.cs),在建構函式中為combobox繫結乙個事件處理程式。

public mainpage()

7、cbselectlang_selectionchanged方法的**如下:

void cbselectlang_selectionchanged(object sender, selectionchangedeventargs e)

//更改語言

resourcecontext rscontext = resourcemanager.current.defaultcontext;

//載入資源

resourceloader loader = new resourceloader();

this.txtbtext1.text = loader.getstring("item1");

this.txtbtext2.text = loader.getstring("item2");

this.txtbtext3.text = loader.getstring("item3");}}

設定應用程式的語言可以用上面**中的

一是設定resourcecontext的languages屬性;

二是resourcecontext的qualifiervalues是乙個字典集合,我們修改其中鍵為language的值也能達到同樣效果。

那麼,應用程式的資源的uri和結構以及引用資源的識別符號是如何分布的呢?且聽下回分解。88

新時尚Windows8開發(5) 訊息框

在windows 8 modern介面應用程式中 已然沒有了我們過去很熟悉的messagebox,那麼,如果我們需要彈出提示框怎麼辦呢?因此,我們先來認識乙個類 messagedialog 位於windows.ui.popups命名空間 對的,看名字估計也能猜個七八成了,我們正是要使用該類來顯示彈出...

Windows 8 應用開發 磁貼

原文 我們開發的應用在win8 介面中會以磁貼形式展現,預設情況下磁貼會顯示應用圖示,即專案工程中的logo.png檔案。開發人員可按應用的需要使用通知的方式將文字或資訊推送到磁貼,從而對磁貼中顯示的內容進行更換。對於磁貼通知推送主要用到api 是windows.ui.notifications,a...

Windows 8 應用開發 磁貼

我們開發的應用在win8 介面中會以磁貼形式展現,預設情況下磁貼會顯示應用圖示,即專案工程中的logo.png檔案。開發人員可按應用的需要使用通知的方式將文字或資訊推送到磁貼,從而對磁貼中顯示的內容進行更換。對於磁貼通知推送主要用到api 是windows.ui.notifications,api ...