c# - net - Menú en la capa de traducción que desaparece en los sitios de módulos personalizados
iviewlocalizer (1)
Actualmente estoy usando Orchard 1.9
con diferentes Main Menus
en Culture Layers
(en / de). Para contenido regular (traducido) está funcionando.
Pero para Módulos / Páginas personalizadas como Usuario / Cuenta o Mi Lista / Lista, el menú no aparece en absoluto.
¿Cómo puedo solucionar este problema?
No tengo conocimiento de ningún filtro que establezca el atributo, pero definitivamente puede escribir un filtro de acción para hacer lo mismo.
Si la cultura se está resolviendo a través del enrutamiento, use el siguiente código:
using System.Globalization;
using System.Threading;
using System.Web.Mvc;
public class CultureAttribute : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
string language = (string)filterContext.RouteData.Values["language"] ?? "en";
string culture = (string)filterContext.RouteData.Values["culture"] ?? "US";
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
}
}
Si tiene información de cultura establecida en las variables de su sesión, use este código:
using System.Globalization;
using System.Threading;
using System.Web.Mvc;
public class CultureAttribute : ActionFilterAttribute {
public override void OnActionExecuting(ActionExecutingContext filterContext) {
string language = (string)filterContext.HttpContext.Session.Contents["language"] ?? "en";
string culture = (string)filterContext.HttpContext.Session.Contents["culture"] ?? "US";
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(string.Format("{0}-{1}", language, culture));
}
}