Umbraco 5 Локализация текста в контроллере поверхности - PullRequest
1 голос
/ 07 марта 2012

Я создал форму подписки на новостную рассылку в Umbraco 5, используя Surface Controller. Контроллер отображает форму с полями ввода для пользователя. Когда я перевожу текст в виде все работает нормально. Я могу использовать:

Umbraco.GetDictionaryItem("newslettertitle")

или

@("newslettertitle".Localize())

Когда я обрабатываю форму, мне нужно отправить локализованное электронное письмо. Но локализация текста не работает: Пример:

            var mail = new MailMessage();
        mail.From = new MailAddress(settings.Smtp.From);
        mail.To.Add(aSubscriber.Email);
        mail.Subject = "newslettersucces".Localize();

Тема письма = (Umbraco.Cms.Web.newslettersucces). Нет локализации. То же самое происходит, когда я использую GetDictionaryItem ("newslettersuccess"). Любые советы будут с благодарностью.

1 Ответ

0 голосов
/ 27 марта 2012

Вы можете нажать Umbraco Helper в представлении, где вам нужен Umbraco.GetDictionaryItem. Создан BaseSurfaceController, например:

public class BaseSurfaceController : SurfaceController    {
    public UmbracoHelper Umbraco{
        get {
           IRenderModelFactory modelFactory = DependencyResolver.Current.GetService<IRenderModelFactory>();
            return new UmbracoHelper(this.ControllerContext, this.RoutableRequestContext, modelFactory);
        }
    }
} 

А также базовая ViewModel:

    public class BaseViewModel
    {
        public UmbracoHelper Umbraco { get; set; }
    }

Пример:

    [ChildActionOnly]
    public PartialViewResult ContactForm()

    {
        var model = new ContactViewModel();
        model.Umbraco = this.Umbraco;

        return PartialView(model);

    }

Источник: http://our.umbraco.org/forum/core/umbraco-5-general-discussion/29601-MVC-form-localization-ViewModel-plus-Umbraco-DictionaryItem

...