No puede haber varios nombres para la misma acción. Serán diferentes acciones. Esta es la forma en que funciona mvc. Mabe es mejor implementar el comportamiento descrito con el enrutamiento.
routes.MapRoute("Lang1RouteToController1Action1",
"Lang1Controller/Lang1Action/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute("Lang2RouteToController1Action1",
"Lang2Controller/Lang2Action/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Por supuesto que tendrá que crear muchas rutas, pero se puede hacer el archivo de configuración o almacén de datos en la base de datos de enrutamiento, y acaba de crear en bucle al iniciar la aplicación. De todos modos, creo que es mejor que crear una variedad de métodos, porque si quieres agregar un idioma más necesitarás encontrar acciones en todos tus controladores y volver a compilar el código. Pero en el caso de las rutas y el archivo de configuración, no se vuelve tan difícil. Lo segundo es la extensión Html.ActionLink ("Inicio", "Índice", "Inicio"): deberá implementar la suya para devolver el enlace de acción localizado.
¿No pudo establecer Thread.CurrentThread.CurrentCulture, Thread.CurrentThread.CurrentUICulture en su lugar? http://msdn.microsoft.com/en-us/library/bz9tc508.aspx –