2012-01-19 74 views
2

我不知道是否有可能通過簡單地創建資源文件爲每個需要的語言

ASP.NET中的國際化如何工作?

Resource.resx for English  //string abc(name)=xyz(value) 
Resource.zh.resx for Chinese //string abc(name)=zh(value) 

,只需將一個字符串在您的視圖(單一視圖只支持多種語言) ,使您的應用程序多語言字符串如

@appName.Resource.abc 

<globalization culture="en-GB" uiCulture="auto:en-GB" />

Web.Config中

現在的問題是

這是否足以開始使用多語種網站

即如果我在瀏覽器更改首選語言對中國網頁的內容正在發生變化?但這是如何工作的?

我知道什麼是

  • 瀏覽器返回首選區域性列表

要知道 - 如何映射到特定的資源文件發生。我的意思是我的例子中的兩個資源文件(Resource.resx和Resource.zh.resx)都有一個具有不同值的'abc'屬性。 asp.net如何確定要呈現哪個值?是否有任何命名約定?

回答

4

在運行時,ASP.NET使用爲 CurrentUICulture屬性的設置最匹配的資源文件。 線程的UI文化根據頁面的UI文化進行設置。例如,如果 當前UI文化是西班牙語,則ASP.NET使用WebResources.es.resx文件的編譯版本 。如果沒有匹配當前的UI文化,則ASP.NET使用資源回退。它首先搜索特定文化的 資源。如果這些都不可用,它會搜索中性文化的資源。如果發現這些不是 ,ASP.NET將加載默認資源文件。在此示例中, 默認資源文件是WebResource.resx。

編號:ASP.NET Web Page Resources Overview

Microsoft .NET Internationalization

+0

這意味着想,如果是的UICulture 「ES」,然後resource.es.resx文件(編譯)首先搜索通過ResourceManager? – RollerCosta

+0

是的,這是正確的。 –

+0

好的,謝謝米奇。還有一件事,現在我想讓用戶爲整個應用選擇一種首選語言。建議我最簡單的步驟 – RollerCosta