使用资源文件进行mvc 3本地化全球化

时间:2014-10-31 14:16:27

标签: jquery html css asp.net-mvc asp.net-mvc-3

我需要帮助创建一个mvc3网站。我需要2种语言俄语和英语。通过单击标记图像,可以更改网站语言:

国旗:

<a id="rus" href="@Url.Content("~/Home/Index_en")" title=" english language"><small> english language </small></a> <a id="eng" href="#" title=" russian language"><small>russian language</small></a>

例如: 更改菜单=&gt;

<ul id="mainMenu" >
        <nav class="dark">
            <li style="margin-left:1px; margin-bottom:5px;"><a href="@Url.Content("~/Home")">home</a></li>
            <li><a href="@Url.Content("~/About_us")">about us</a></li>
            <li><a href="#">ofers</a></li>

            <li><a href="@Url.Content("~/Apply")">Apply</a></li>
            <li><a href="#">contact</a></li>
</nav></ul>

3 个答案:

答案 0 :(得分:0)

这不是一项微不足道的任务。您需要自定义路由,控制器挂钩(例如在OnActionExecuting中)和一些服务器端文化更改的技巧。此外,您的所有字符串都必须位于特定于语言环境的资源文件中。

以下是一些可以提供帮助的链接:

http://geekswithblogs.net/shaunxu/archive/2010/05/06/localization-in-asp.net-mvc-ndash-3-days-investigation-1-day.aspx

http://download1.parallels.com/SiteBuilder/Windows/docs/3.2/en_US/sitebulder-3.2-win-sdk-localization-pack-creation-guide/30801.htm

我使用这些作为我的参考,为我的MVC应用程序构建通用本地化库。

第1部分自定义路由

我的自定义路线如下所示。它需要2个字母或2-2字母语言代码(ISO格式),例如enen-EN等:

//Special localisation route mapping - expects specific language/culture code as first param
routes.MapRoute(
    name: "Localisation",
    url: "{lang}/{controller}/{action}/{id}",
    defaults: new { lang = "en", controller = "Home", action = "List", id = UrlParameter.Optional },
    constraints: new { lang = @"[a-z]{2}|[a-z]{2}-[a-zA-Z]{2}" }
);

所以改变语言的链接看起来就像这样(简化版):

<a href="en">English language</a>
<a href="ru">Russian language</a>

答案 1 :(得分:0)

例如,我创建了一个类似的网站:http://www.asp.net/mvc/overview/older-versions/mvc-music-store/mvc-music-store-part-1 mvc3音乐商店我想添加语言。

感谢您的帮助。

答案 2 :(得分:0)

您可以在https://stackoverflow.com/a/30610862/1239344

找到基于jquery的资源位置的答案