2012-03-07 13 views
1

サーフェスコントローラを使用してUmbraco 5でニュースレター契約フォームを作成しました。コントローラは、ユーザの入力フィールドを含むフォームをレンダリングします。ビュー内のテキストを翻訳すると、すべて正常に動作します。私が使用することができます。Umbraco 5サーフェスコントローラのテキストをローカライズ

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")を使用しても同じことが起こります。アドバイスをいただければ幸いです。

答えて

0

UmbracoGetDictionaryItemが必要なビューでUmbracoヘルパーを押すことができます。 よう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

+0

私はあなたの質問を読んでいないと思います右。もう一度お読みください。 Umbraco Helperクラスにアクセスすることではありません。 GetDictionaryItemまたは.Localize()のような変換を使用すると、コントローラでは表示されません。あなたの答えは、私がumbracoフォーラムに入れた私の投稿のコピーです –

+0

申し訳ありません。私はオーナーの名前をチェックしなかった。私はそれを実際に動作させましたが、コントローラークラスのInit関数だけで動作させました。私はまだ同じコントローラクラスのポストフォームハンドル関数についてはテストしていません。まもなくあなたと同じ問題が発生し、ローカライズされたメールを送信する必要があります。私は、私のモデルプロパティ属性のローカリゼーションに関連する他の問題も感じました:[Display(Name = ""、[Required(ErrorMessage = ""など...私はUmbraco辞書でそれらを発行することはできません...どうしましたあなたはそれを管理していますか?ありがとう – user1288337

+0

大丈夫ですUmbracoヘルパーをサービスやhttpリクエストに依存しているので、モデル属性に直接使用することはできないと思います。リソースファイルを使用するか、Umbracoローカリゼーションフレームワークを使用してください(LocalizationEntries.xmlファイルを使用してください)。http://kuhnel.wordpress.com/2012/03/11/an-101-on-the-localization-framework-in-umbraco -5/ 今のところ私は自分の見解で直接翻訳しています –

関連する問題