Asp.net mvc 2 翻译asp.net mvc 2应用程序?

Asp.net mvc 2 翻译asp.net mvc 2应用程序?,asp.net-mvc-2,routing,translation,Asp.net Mvc 2,Routing,Translation,我希望这是一个相当简单的问题,但我对MVC还很陌生,不清楚应该怎么做。我有一个网站,我需要翻译成另一种语言。我试着搜索这个,但我发现的只是关于如何处理resx文件中的字符串等非常复杂的翻译。这可能是以后的事情,但现在我所希望的是能够让用户切换语言(通过我可以在母版页中放置的链接),然后根据选择以不同的语言显示不同的页面 从我的搜索看来,这似乎可以通过某种方式实现。正如另一篇文章所建议的: routes.MapRoute( "Default", "{language}/{controller}/

我希望这是一个相当简单的问题,但我对MVC还很陌生,不清楚应该怎么做。我有一个网站,我需要翻译成另一种语言。我试着搜索这个,但我发现的只是关于如何处理resx文件中的字符串等非常复杂的翻译。这可能是以后的事情,但现在我所希望的是能够让用户切换语言(通过我可以在母版页中放置的链接),然后根据选择以不同的语言显示不同的页面

从我的搜索看来,这似乎可以通过某种方式实现。正如另一篇文章所建议的:

routes.MapRoute(
"Default", 
"{language}/{controller}/{action}/{id}", 
new { language = "en", controller = "Home", action = "Index", id = "" }
);
和母版页切换链接:

<li><%= Html.ActionLink(
    "Spanish", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "es" })%></li>
<li><%= Html.ActionLink(
    "French", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "fr" })%></li>
<li><%= Html.ActionLink(
    "English", 
    ViewContext.RouteData.Values["action"].ToString(), 
    new { language = "en" })%></li>

  • 我可以试试,但我不明白的是,这会产生什么类型的路线?是“语言/控制器名称/动作名称”吗?如果是这样的话,它会导致什么?我的意思是,通常,只有一个控制器和一个动作,我只有一个控制器和一个视图,只要这个视图存在,它就会工作。但这里面的语言是什么?它只是一个文件夹,所以如果我有一个文件夹,比如说en-GB/Home,这样的路由可以工作吗?那没有道理,所以我想没有。那么我该如何让这些路线通向某个地方呢?翻译后的视图放在哪里?

    我认为从长远来看,使用资源文件会更容易,而且不难处理

    查看此以了解更多信息

    这里有一个简单的例子


    以下是在.Net MVC中使用资源的一些窍门。

    我认为从长远来看,使用资源文件会更容易,而且不会太难

    查看此以了解更多信息

    这里有一个简单的例子


    下面是使用.Net MVC中的资源时需要注意的一些问题。

    关于url,正如您所说/它的内容是-language/controllername/actionname

    re what’s calls—要理解它,您需要关注的是路线定义的这一部分:

    new { language = "en", controller = "Home", action = "Index", id = "" }
    
    {controller}/{action},与前面一样匹配相应的控制器和操作。语言和id与您定义的操作方法中的参数匹配。这些也可能是(视图)模型的属性,如果这是方法中的参数的话

    我认为mvc中没有任何语言自动连接,因此您必须明确决定如何处理它。一种方法是操作方法返回每种语言的子文件夹中的视图,或者将该语言添加为文件名的一部分


    另一种方法是在路由中定义一个处理程序,就像在经典asp.net中一样设置线程ui区域性。从那时起,您将使用asp.net mvc资源,如klabranche链接中的内容。

    关于url,就像您所说的那样/就像它读的那样-language/controllername/actionname

    re what’s calls—要理解它,您需要关注的是路线定义的这一部分:

    new { language = "en", controller = "Home", action = "Index", id = "" }
    
    {controller}/{action},与前面一样匹配相应的控制器和操作。语言和id与您定义的操作方法中的参数匹配。这些也可能是(视图)模型的属性,如果这是方法中的参数的话

    我认为mvc中没有任何语言自动连接,因此您必须明确决定如何处理它。一种方法是操作方法返回每种语言的子文件夹中的视图,或者将该语言添加为文件名的一部分


    另一种方法是在路由中定义一个处理程序,就像在经典asp.net中一样设置线程ui区域性。从那时起,您将使用asp.net mvc资源,如klabranche链接。

    好的,但据我所知,它们是关于翻译登录文本字段等内容的字符串。我想要的是简单地翻译页面(视图)本身,即主要信息页面中的简单正文,而不是使用mvc应用程序更高级的动态功能的页面。例如,我仍然会制作这些资源并将它们加载到标签中。我认为这将减轻您对AppklaBranch的长期可维护性是正确的,,,您最不想做的事情是为每种语言创建不同的网页。我在一个多语言网站的界面上工作过。该网站有两个界面阿拉伯语(RTL)和英语(LTR),我们使用了资源文件和主题,一切都很好。是的,我认为你是对的,eglasius也将此作为替代,但现在这是一个非常简单的要求,我有一个相当简单的网站。该网站的国际客户很少,所以它只需要一些基本的英文页面(主要语言是瑞典语)。我肯定会把熟悉这项技术作为一个长期目标,但现在我需要一个简单的方法来快速修复基本需求。英文页面不需要完全同步,它们只需要能够提供一些基本信息。好的,但据我所知,它们是关于翻译登录文本字段等内容的字符串。我想要的是简单地翻译页面(视图)本身,即主要信息页面中的简单正文,而不是使用mvc应用程序更高级的动态功能的页面。例如,我仍然会制作这些资源并将它们加载到标签中。我认为这将减轻您对AppklaBranch的长期可维护性是正确的,,,您最不想做的事情是为每种语言创建不同的网页。我在一个多语言网站的界面上工作过。该网站有两个界面阿拉伯语(RTL)和英语(LTR),我们使用了资源文件和主题,一切都很好。是的,我认为你是对的,eglasius也将此作为替代,但现在这是一个非常简单的要求,我有一个相当简单的网站。