2015-10-13 35 views
1

我正在使用ASP.NET和MVC 5構建多語言網站。在名爲Resources的單獨項目中,我有一個Resources.resx,其中保存了所有字符串。從單獨的項目訪問本地化資源

根據我曾工作過的項目的經驗,我認爲只需在Resources.resx中添加諸如「en」,「es」,「fr」等語言後綴就行。所以最後,我會有幾個資源文件,稱爲Resources.en.resx,Resources.es.resx等等。

到目前爲止,我一直只使用一種Resources.resx文件在一種語言,我沒有問題。但是現在是時候開始添加不同語言的字符串,並且當我用語言後綴重命名文件(並且除此之外別無其他),我無法從單獨的項目訪問資源。我注意到的一件事是,在爲名稱添加後綴後,Resources.Designer.cs是完全空白的,我認爲這可能是我的問題的根源。

this question的回答沒有幫助,因爲我已經將資源的訪問修飾符設置爲Public

我錯過了什麼?

回答

1

當您準備好爲其他語言生成資源或需要重命名時,請使用這些步驟https://msdn.microsoft.com/en-us/library/ms247246.aspx。只是重命名資源文件不會更新資源的設計器文件

+0

正如您所說,您確實需要爲每種語言使用不同的文件,以便在查看文化信息時知道要使用哪個文件。這正是我的問題,我**不能**將語言後綴添加到我的資源文件而不打破它。 – Antrim

+0

什麼會打破?你現在的資源文件的名稱是什麼?如果英文的當前名稱是Resources.resx,則使用Resources.es.resx添加另一個名稱。對不起,如果我在這裏不理解 – Shetty

+0

也許我沒有足夠好地解釋自己。我在一個單獨的項目中有一個名爲'Resources.resx'的文件,我一直在使用我的項目,沒有任何問題。當我將名稱更改爲'Resources.en.resx'時,整個代碼中的所有引用都被標記爲紅色,並且說'由於其保護級別'''資源'無法訪問「。 – Antrim