2016-12-02 77 views
0

我一直在閱讀如何使用本地或全局的resx文件來翻譯網站。雖然這對於一般的按鈕和小塊文本非常有用,但是當我面對大塊文本的翻譯時,對於我必須在resx文件中存儲長字符串以及將文本放在小鍵中使我無法重新閱讀我剛剛寫的內容。有沒有辦法翻譯resx文件以外的網站?

例如:

<p> <%$ Resources:MyResources, Welcome %> <%$ Resources:MyResources, to %> <%$ Resources:MyResources, my %> <%$ Resources:MyResources, wonderful %> <%$ Resources:MyResources, Website %> , <%$ Resources:MyResources, Where %> <%$ Resources:MyResources, you %> <%$ Resources:MyResources, can %> <%$ Resources:MyResources, Find %> <%$ Resources:MyResources, amazing %> <%$ Resources:MyResources, information %> <%$ Resources:MyResources, about %> <%$ Resources:MyResources, this %><%$ Resources:MyResources, and %><%$ Resources:MyResources, that %> <p> 

或者:

<%$ Resources:MyResources, WelcomeToMyWonderfulWebsiteWhereYouCanFindAmazingInformationAboutThisAndThat %> 

有沒有更好的方式來處理多語言支持? 謝謝,

(忘了補充一點,我使用VS2013,這是一個C#的WebForms網站與ASPX和ASCX)

+1

檢查此項目[https://github.com/turquoiseowl/i18n](https://github.com/turquoiseowl/i18n)。有了它,你可以製作更易讀的模板。 –

+0

謝謝@VitaliySmolyakov!我一直在看這個項目,並且肯定會使用[[[歡迎來到我的精彩網站,你可以找到關於這個和那個的驚人信息]]]而不是WelcomeToMyWonderfulWebsiteWhereYouCanFindAmazingInformationAboutThisAndThat作爲關鍵。你有使用它的經驗嗎?乍一看,設置它看起來很複雜! – malarres

+1

只需安裝,添加配置方法,翻譯一些頁面進行測試並運行:)。如果您的路徑中包含2個或3個字符部分,則可能不存在明顯問題,如zzz.com/api/call。 Url定位器認爲API是未知的語言標記,並將其從網址中移除。請求來到zzz.com/call。在上一個版本中,/ api /被添加到過濾器以排除處理。 –

回答

1

您可以從Resources直接呈現,你沒有使用<%$語法。您可以使用<%=(或自動編碼<%:版本代替):

在你的情況,我想有一個單一的Resources.resx文件在我的項目,與歡迎的Blurb的短鍵的條目:

Key: WelcomeMessage 
Value (in `Resources.resx`): "Welcome to my website where..." 
Value (in `Resources.de-DE.resx`): "Willkommen auf meiner Website..." 

在我.aspx文件中使用<%:

<p><%: Resources.WelcomeMessage %> 

或者使用<%=如果你想呈現原始的HTML:

<p><%= Resources.WelcomeMessage %> 

剃刀語法:

<p>@Resources.WelcomeMessage</p> 

還是爲了可讀性:

<p>@(Resources.WelcomeMessage)</p> 

Resources是一個static class存在,並自動檢索根據當前的主題文化價值正確的資源價值(所以確保你的代碼能夠正確地改變線程的文化),如果翻譯不適用,返回你的後備價值。

通過將鼠標懸停在每個屬性值上,您可以在Visual Studio中查看原始值,因爲Resx設計器生成的XML註釋包括資源字符串中前100個左右的字符。

+0

感謝您的回覆。但是:(使用<%:notation和<%= notation)我收到此錯誤:編譯器錯誤消息:CS0234:名稱空間'Resources'中不存在類型或名稱空間名稱'WelcomeMessage'(缺少程序集參考?) – malarres

+0

使用Razor語法,我只能看到@Resources.WelcomeMessage而不是它的值 – malarres

+0

@malarres Razor語法只能在'.cshtml'文件中使用 – Dai

0

最後,我使用了Dai的一個建議(縮短了所有對「WelcomeMessage」示例的建議),但無法使用它們的符號工作。無論如何,我所做的就是創建一對代碼片段來緩解打字任務。 但是肯定下次我會去嘗試Vitaliy指出的項目! 感謝

相關問題