如果你希望在畫面中有某一個 Label 控制項,當瀏覽器切換到中文時,讓控制項顯示中文,切換到英文時顯示英文,切換到日文時顯示日文... 這時候你可以有兩種做法。第一種,是從 VS2005 選擇「工具」、「建立本機資源」以產生一個 Local Resource 檔案,你再複製這個 .resx 檔案去產生其它種語言的相關檔案...
如果你希望在畫面中有某一個 Label 控制項,當瀏覽器切換到中文時,讓控制項顯示中文,切換到英文時顯示英文,切換到日文時顯示日文... 這時候你可以有兩種做法。第一種,是從 VS2005 選擇「工具」、「建立本機資源」以產生一個 Local Resource 檔案,你再複製這個 .resx 檔案去產生其它種語言的相關檔案(請參考「[Globalization] 多語系網站建置計畫」)。
第二種方法,則是從 App_GlobalResources 資料夾產生各個相關的 Global Resource 檔案,例如:
-
App.resx (預設的檔案;當找不到指定語系的檔案時,會自動使用此檔)
-
App.zh-CHT.resx (中文正體)
- App.zh-CHS.resx (中文簡體)
- App.en.resx (英文)
- App.ja (日文)
- ... (依此類推)
這幾個檔案的 Key 應該維持一致。例如每一個檔案都有一個叫做 Wait 的 Key,它的值在 App.zh-CHT.resx 中為「網頁處理中,請稍候...」,在 App.en.resx 中為「Please wait while your request is in progress...」等等。
接著,你就可以在任何網頁中使用以下的 Label 控制項:
<asp:Label ID="lbProgressing" runat="server" Text="<%$ Resources:App, Wait %>" />
請注意這裡的「App」和 App.*.resx 檔名對應,「Wait」與各 .resx 檔中的 Key 名稱對應。
使用這種做法,這個 Label 控制項(不管在哪一個畫面中)就會隨網頁的語系而顯示不同的文字了。
如果你使用 Local Resource(如第一種做法),你所建立的資源檔只能使用於指定的網頁。如果你使用 Global Resource(如第二種做法),你所建立的資源檔可以使用在任何一個網頁。因此,如果你有什麼文字是經常會跨網頁出現的,才需要使用第二種做法;在平常的狀況中,還是應該採用第一種做法。