2015-11-25 40 views
5

我需要從我的視圖中的資源文件給出一些字符串。在Startup.cs:ASP.Net 5視圖中的rc1本地化

services.AddMvc() 
.AddViewLocalization(options => options.ResourcesPath = "Resources"); 

和:

app.UseRequestLocalization(new RequestCulture("ru-RU")); 

查看:

@using Microsoft.AspNet.Mvc.Localization 
@inject IViewLocalizer loc 

我在MSDN博客閱讀以下內容:

IViewLocalizerIHtmlLocalizer服務,尋找基於當前視圖名稱的資源。

那麼我應該如何命名.resx文件以便我的本地化字符串出現在我的視圖中?如果我有Views/Manager/Index.cshtml,那麼Resources/Manager/Index.cshtml.ru-RU.resx是正確的?但是找不到資源...

回答

4

這是在文檔中相當混亂,因爲資源名稱不是基於當前視圖名稱,但目前看來路徑:
https://github.com/aspnet/Mvc/blob/dev/src/Microsoft.AspNet.Mvc.Localization/ViewLocalizer.cs
(線101)

這意味着資源的名稱應被命名爲這樣的:

Views.{ControllerName}.{ViewName}.cshtml.{culture code}.resx 
e.g. Views.Home.About.cshtml.de-DE.resx 

我已經報這種行爲在一個月前:
https://github.com/aspnet/Mvc/issues/3376

+0

非常感謝!你的回答幫助我找到了工作。我同意,它的工作方式還不是很方便。希望他們能解決它。 – Slip

0

您應該有一個簡單地稱爲resources.resx的基本資源文件,這將成爲您的「後退」資源,以防止所選語言沒有翻譯。

每種語言資源文件應然後在下面的格式命名:

資源 - 文化代碼的.resx

的文化代碼可以是中性的語言,或區域具體語言。

例如

  • 西班牙語:資源es.resx
  • 美國英語:資源烯US.resx

當您設置的UI區域性線程,文化的正確資源將被自動使用。

0

本地化(我的意思是從Culturex postfix的resx文件中獲得本地化的字符串)從Visual Studio啓動應用程序不可用。需要從命令行啓動應用程序(例如dnx web)。

Related issue on GitHub,rc1的外用