多語言 asp.net mvc 3 的最佳方式
我正在嘗試為一個學術項目創建一個 asp.net mvc3 項目,其中一個要求是它必須能夠在不同的語言之間進行更改。目前我擁有的是以下內容:
我有一個作為語言儲存庫的外部項目,對於每個視圖,我都有一個定義所有“佔位符”的視圖的界面,確實定義了所有可更改的文本。在任何操作開始時,我獲取 uri 中的語言(類似於 /{lng}/{command}/{action})並使用 ViewBag 將其傳遞給視圖,一旦進入視圖,我將使用儲存庫以所選語言獲取該視圖的介面的目前實現。
我在這個問題上找不到任何好的話題。如果有更好的方法可以做到這一點並且更有效,我只是好奇。以及通常如何在專業水平上完成。我對 asp.net 不是很有經驗,大約一個月前才開始學習它。
此外,如果重要的是我正在使用 razor 引擎來查看視圖,並且在項目的這個階段我們不能使用任何 JavaScript。
您可以閱讀以下指南。
我正在處理一個名為 Griffin.MvcContrib 的項目,該項目具有一些本地化功能。
首先,我使用查詢字元串和 cookie 來切換語言。(只需在您的佈局中創建一個帶有標誌的連結
<a href="@Url.Action("Index")?lang=en-us">English</a>)並用我的屬性標記你的控制器:
[LocalizedAttribute] public class YourController : Controller { }接下來是獲取視圖、模型和驗證消息的本地化。此處描述了模型和驗證的本地化。至於視圖,你只需要使用
@T()來獲取翻譯文本:@Model.Title <div>@T("This text will get translated")</div>(您需要將 Views\Web.config 中的 pageBaseType 更改為
Griffin.MvcContrib.GriffinWebViewPage)我幾乎完成了一個管理區域,任何非技術使用者都可以使用它來管理所有翻譯。在此處查看
Griffin.MvcContrib.Admin項目:https ://github.com/jgauffin/griffin.mvccontrib/tree/localization/source/Griffin.MvcContrib.Admin