我在Visual Studio中使用AdminLTE MVC。我想实现多语言系统,这样做的一种方法似乎是使用RESX文件。
我网站的默认语言是法语(fr)。 所以,我创建了2个文件并将它们保存在我的" / Resources /"文件夹:
我指定了" PublicResXFileCodeGenerator"每个RESX文件的属性。
然后,在我的 RouteConfig.cs 文件中,我添加了一个新的 routes.MapRoutes 来使用像www.mywebsite.com/fr/MyController这样的语言来执行网址:< / p>
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
/* routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);*/
routes.MapRoute(
name: "ML",
url: "{lang}/{controller}/{action}/{id}",
defaults: new { lang = "fr", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
对于一个简单的测试,我只在RESX文件中添加了1个变量。对于法语版:
然后,在我看来Index.cshtml中,我只是显示&#34; Valeur&#34;的内容。价值:
@using Resources;
@{
ViewBag.Title = "Index";
ViewBag.Description = "Home Page";
}
<div>
The current Value is : <b>@Resources.CDV.Valeur</b>
</div>
当我调用/ en / page时,未加载CDV.en.resx:
你知道我做错了什么吗?
感谢。