2016-06-23 6 views
2

私のアプリケーションでは、いくつかの翻訳を行う必要があります。私のアプリケーションでは、部分的に部分的にレンダリングされたdashboard.tmplというテンプレートファイルがあります。部分的なjqueryテンプレートファイルのラベル内容を翻訳するには

<div> 
    <span>Latest News</span> 
    {{if my_recommendations[0]}} 
     {{each(i, my_rec) my_recommendations}} 
     {{/each}} 
    {{else}} 
    <p>No News yet.</p> 
    {{/if}} 
</div> 

私は最新ニュースを翻訳してみます。ですので、代わりに<%= t( 'latest_news')>を入力してください。しかし、それは動作しません。どのように私はそれを翻訳することができますか?私を助けてください。

+0

あなたは何を翻訳しようとしていますか?このブロックはここに最新ニュース?動作しないコードを表示できますか? <%= t:latest_news%>? –

+0

は 'config/locales/*。yml'で定義された' latest_news'ラベルですか? – retgoat

+0

ロケールファイルで定義されています。私のerbファイルでは動作しますが、tmplファイルでは動作しません。 –

答えて

0

ここにあなたのコメントが問題です。ページをリクエストするときに、テンプレートを「オンザフライで」生成する必要があります。レールエンジンがローカライゼーションできるように、まずプリコンパイルする必要があるため、ファイルからロードすることはできません。

短くても、別のファイルではなく、HTMLの一部としてスクリプトタグ内にテンプレートを配置します。あなたの.html.erbファイル内の

は、次のコードを追加してみてください:

<script type="text/template" id='news-template'> 
    <span><%=t :latest_news %></span> 
</script> 

を使用したいときにそれが

var newsTemplate = $('#news-template').html(); 

次使用してHTML内でそれを参照する代わりにTMPファイルをロードしません。正しい翻訳をテンプレートにロードした後、レンダリングに使用できます

$.template("newsTemplate", newsTemplate); 
$.tmpl("newsTemplate", news).appendTo("#news-list"); 

テンプレート内で、ファイルを使用してテンプレートを取得するのではなく、クライアント側で使用するスクリプトタグを使用してHTMLページから読み込みます。

この宝石も確認できますhttps://github.com/jimmycuadra/jquery-tmpl-rails - 私はそれを試していないが、多分彼らはこの問題を解決しました。

希望します。

関連する問題