2016-06-23 7 views
2

Ich muss eine Übersetzung für meine Rails-Anwendung machen, in meiner Anwendung habe Template-Datei namens dashboard.tmpl teilweise in bestimmten Teil gerendert.Wie übersetzt man den Etiketteninhalt in meiner partiellen jquery-template Datei

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

ich versuche, die Latest News zu übersetzen. Versuchen Sie stattdessen <% = t ('latest_news')> dies zu setzen. Aber es kann nicht funktionieren. Wie kann ich das übersetzen? Bitte hilf mir.

+0

Was möchten Sie übersetzen? Dieser Block hier Neueste Nachrichten? Können Sie den Code anzeigen, der nicht funktioniert? <% = t: letzte_news%>? –

+0

ist das Label "next_news" in Ihrer Datei "config/locales/*. Yml" definiert? – retgoat

+0

ja in der Länderdatei definiert. In meiner Datei funktioniert es, aber in der tmpl-Datei funktioniert es nicht. –

Antwort

0

Nach Ihrem Kommentar hier ist das Problem. Ihre Vorlagen müssen "on the fly" generiert werden, wenn Sie eine Seite anfordern. Sie können nicht aus Datei geladen werden, da Sie sie zuerst vorkompilieren müssen, damit Rails Engine die Lokalisierung durchführen kann.

Kurz gesagt, legen Sie Ihre Vorlagen in Skript-Tag als Teil von HTML anstelle von separaten Datei.

In Ihrem .html.erb Datei versuchen folgenden Code hinzuzufügen:

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

Dann, wenn Sie es nicht geladen tmp-Datei verwenden möchten, anstatt es in HTML-Referenz mit folgenden

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

Nachdem Sie die Vorlage mit der richtigen Übersetzung geladen haben, können Sie sie zum Rendern verwenden

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

In Ihrer Vorlage wird also nicht die Vorlage mit der Datei abgerufen, sondern Sie laden die HTML-Seite mit dem Skript-Tag, das Sie auf der Client-Seite verwenden.

Sie können dieses Juwel auch überprüfen https://github.com/jimmycuadra/jquery-tmpl-rails - Ich habe es nicht versucht, aber vielleicht haben sie dieses Problem gelöst.

Ich hoffe, es hilft

Verwandte Themen