Я надеюсь, что это довольно простой вопрос, но я довольно новичок в 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, такой маршрут будет работать? Это не имеет смысла, так что я думаю, нет. Так как же на самом деле заставить эти маршруты вести куда-то? Где разместить переведенные виды?