2012-02-18 4 views
4

組み込みの国際化メッセージファイルは非常にいいですが、私は2つの問題に気づいた:YesodのメッセージファイルにコメントやHTMLタグを追加することはできますか?イェソドため

  1. コメントを許可していないようですが。これらは、メッセージの文脈を翻訳者に(または思い出させるために)非常に役立ちます。私が見逃したコメント構文はありますか?
  2. <と>文字はHTMLエスケープされています。これにより、メッセージに<em>などのHTMLの単純なビットを追加することができなくなります。 .hsファイルでメッセージをコーディングする以外に、これには回避策がありますか?

ありがとうございました!

答えて

4
  1. コメントは、#で始まる行を作ることによって行われます。
  2. 翻訳者がHTMLタグを使い慣れていない場合は、翻訳者に対処することを強く推奨することはできません。また、<span class="foo">foo</span><em>foo</em>に置き換えたいと思うように、実装の詳細を後で変更したい場合はどうしますか?

    代わりに、Something that needs to be *emphasized*.というマークダウンのような構文を使用することをお勧めします。その後、HackageにさまざまなMarkdownライブラリを使って文字列を後処理することができます。

    mkMessage TemplateHaskell関数を使用してメッセージを生成せず、代わりにMarkdown構文プロセッサを使用する独自のRenderMessageクラスを実装すると、自動的に簡単に実行できます。私はmkMessageの呼び出しを維持しながらそれを行う方法は見当たりませんが、私はYesodの作成者である@ michael-snoymanがこれを可能にするAPIにフックを隠している可能性があることを知っています。あなたの質問。

+0

Hmm ...後処理を行うことは興味深い考えであり、Markdown構文を使用することは本当にいいです。これをリストにメールで送ることはできますか? –

+0

ありがとうございます、#私のためにうまく動作します。私はあなたが正しいと判断しました。私は任意のHTMLを許可したくなく、基本的にマークアップの後処理を元の形式に戻しています。しかし、個人的には、* MLのタグ構文はMarkdownよりも広く理解されています。 – svachalek

関連する問題