.net - istringlocalizer - ¿Cómo funciona App_LocalResources con MVC?
ui culture (2)
He estado trabajando en mi primera aplicación MVC, y me gustaría localizarla. Sé cómo usar App_GlobalResources pero prefiero usar App_LocalResources.
En una aplicación típica de WebForms, coloca la carpeta App_LocalResources en el mismo directorio que el archivo ASPX ... ¿es esto lo mismo en MVC (IE: los coloco en las subcarpetas respectivas en el directorio de "vistas")?
Además, cuando accedes a App_GlobalResources en tu vista, puedes hacerlo así que <%=Html.Encode(Resources.Index.Title)%>
sin embargo, no puedo hacerlo con App_LocalResources. No quiero tener que hacer mi <label runat="server"
para aprovechar el meta:resourcekey
EDITAR:
Descubrí UN método para hacer esto, pero no estoy seguro si este es el mejor método. Aquí está la idea
-
App_LocalResources
carpetaApp_LocalResources
como una subcarpeta dentro de su respectiva carpeta Ver - Crea archivos resx que corresponden a sus Vistas ... IE:
Index.resx
oAbout.resx
- Establece las propiedades de los archivos Resx como "Public" (PublicResXFileCodeGenerator), "Recurso incrustado", "Vistas. Espacio de nombres [nombre de vista]"
- Cree un nuevo nombre de recurso llamado "Título" y ponga lo que quiera en el Valor.
Ahora puedo hacer referencia a los recursos locales usando algo como esto
<%= MyProj.Views.Home.Index.Title%>
El único problema que veo con esto es el hecho de que los recursos están integrados y no puedo agregar nuevas configuraciones regionales sin volver a compilar el proyecto.
No debe utilizar App_GlobalResources o App_LocalResources con MVC. Esto se debe a la forma en que funcionan estos recursos. Estos recursos no están integrados en su proyecto, sino que son compilados por el tiempo de ejecución de ASP.NET. Esto significa que sus recursos no estarán disponibles cuando no se estén ejecutando dentro del tiempo de ejecución de ASP.NET, lo que significa que perdería la capacidad de probar por unidad sus vistas y controladores si utiliza recursos en ellos.
Esta publicación da más detalles al respecto.
En su lugar, debes usar el enfoque que mencionas en tu pregunta. Coloque su recurso donde desee y configúrelo en ''Recurso incrustado'' y la herramienta personalizada debe ser ''PublicResXFileCodeGenerator''.
Sé que esto no responde directamente a la pregunta, pero lo que creo que realmente estás buscando es "¿Cómo hago la localización con ASP.NET MVC?".
Puede consultar las respuestas a esta pregunta de .com y ver si ayudan a resolver el problema que desea resolver: how-to-localize-asp-net-mvc-application