2011-12-05 78 views
2

我想有一個像這樣的一些資源文件:定位在asp.net web表單與一個全球資源

Mui.resx 
Mui.fr.resx 
Mui.es.resx 
... 

,我希望能夠在我的代碼隱藏是這樣做的:

Label1.Text = Mui.Hello; 

在我的aspx是這樣的:

<%=Mui.Hello %> 

任何人知道如何做到這一點?可能嗎 ?

回答

5

是的,它是可能的。您可以從File-New- Resource File添加您的資源文件,並在那裏,你可以根據需要添加自己的資源鍵和值英文或其他語言,

檢查這些 How to: Retrieve Resource Values ProgrammaticallyASP.NET Web Page Resources Overview

檢索使用強類型的全球資源

  • 使用獲取資源的以下語法:

    Resources.Class.Resource

例子:

String welcome; 
welcome = Resources.WebResources.WelcomeText; 

但是,如果你使用本地化 你有沒有檢查這個MSDN種源:
Walkthrough: Using Resources for Localization with ASP.NET

查看上面鏈接中的部分Explicit Localization with ASP.NET

例子:

標籤的文本屬性現在有一個明確的表達,說明要從中獲取資源,並選擇關鍵的基礎文件。

<asp:Label ID="Label2" Runat="server" Text="<%$ Resources:LocalizedText, Msg1 %>"> 

並在您的頁面上: 簡單的調用資源鍵的完整路徑。

查看這篇了不起的文章 - Resources and Localization這將解釋你更多關於此。

編輯網絡。配置文化設置:如果你想讓它在一些網頁上,然後使用<@Page>指令的CultureUICulture屬性在web.config中
添加此
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true"/><system.web>

+0

我這樣做了,但由於某些原因,只有英文單詞出現,在瀏覽器中更改語言不會影響任何內容 – Omu

+0

演練:使用ASP.NET資源進行本地化 - 在答案中檢查此鏈接。名爲langText和engText的鍵然後將langText設置爲一些已翻譯的engText值另一種語言..一些符號值將被存儲在資源鍵的值中...現在手動檢查使用CultureInfo類的瀏覽器是什麼文化..並手動設置重視您的控制文字。 –

+0

是的,我做了所有這些,但它只給我英語 – Omu

2

添加Resourcesnamespace

Label1.Text = Resources.Mui.Hello; 

<%=Resources.Mui.Hello %> 
+0

'<%= Resources.Mui.Hello%>'給我只有英文你好(我有多個文件Mui.fr.resx,Mui.es.resx,我改變了瀏覽器lang) – Omu

1

我有同樣的問題,最後發現解決方案

在瀏覽器中,如果您選擇瀏覽器語言法語[fr] ASP加載資源。 FR的.resx

但是,如果你選擇的瀏覽器語言法語(法國)[FR-FR] ASP加載資源。 fr-FR .resx

+0

這很奇怪,之後當我回到設置瀏覽器語言爲法語(法國) [fr-FR] ASP加載「resource.fr.resx」文件。我認爲這可能是瀏覽器中的問題。任何方式,爲了確保應用程序運行良好,最好對資源文件「resource.fr.resx」和「resource.fr-FR.resx」進行復制。 –