2016-06-23 27 views
2

我必須爲我的rails應用程序做一些翻譯,在我的應用程序中有部分呈現在特定部分中的名爲dashboard.tmpl的模板文件。如何翻譯我的部分jquery-template文件中的標籤內容

<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

當您在這裏發表評論是問題。您的模板需要在請求頁面時「實時」生成。它們無法從文件加載,因爲您需要先對它們進行預編譯,以便rails引擎可以執行本地化。

簡而言之,將腳本標記內的模板作爲html的一部分而不是單獨的文件。

裏面你.html.erb文件嘗試添加以下代碼:

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

然後,當你想使用它不會加載tmp文件,而不是引用它裏面的html使用以下

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

在以正確的翻譯加載模板之後,您可以使用它來渲染

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

因此,在您的模板中,您不是使用文件獲取模板,而是使用在客戶端使用的腳本標記從HTML頁面加載。

你也可以檢查這個寶石https://github.com/jimmycuadra/jquery-tmpl-rails - 我還沒有嘗試過,但也許他們解決了這個問題。

希望它有幫助

相關問題