2015-06-12 7 views
23

Ich versuche Laravels Lokalisierungsfunktion zu nutzen, aber ich muss in der Lage sein, Betonung oder Bolden einen Teil einer Phrase zu setzen. Wenn Sie ein HTML-Tag in die Sprachdatei einfügen, wird es bei der Ausgabe an eine Blade-Datei ausgeblendet.Wie kann ich HTML-Tags in einer Laravel-Lokalisierungsdatei verwenden?

Zum Beispiel, hier ist meine Sprache Dateieintrag:

return [ 
    'nav' => [ 
     'find' => '<strong>Find</strong> Your Home', 
    ] 
]; 

Wenn ich es aus einer Klinge nennen: (. Ich habe auch triple Klammern versucht mit)

{{ trans('base.nav.find') }} 

Es gibt:

&lt;strong&gt;Find&lt;/strong&gt; Your Home 

Ich könnte möglicherweise die Formulierung aufgespalten wie:

return [ 
    'nav' => [ 
     'fyh' => [ 
      'find' => 'Find', 
      'yh' => 'Your Home', 
     ] 
    ] 
] 

Und dann Ausgabe:

<strong>{{ trans('base.nav.fyh.find') }}</strong>{{ trans('base.nav.fyh.yh') }} 

Aber das scheint übertrieben. Irgendwelche besseren Lösungen?

+0

Die zweite Option ist nicht nur übertrieben, es kaputt ist. Was soll ein Übersetzer tun, wenn in seiner Sprache das Verb am Ende des Satzes steht? Sie können übersetzte Zeichenfolgen auf einer Seite nebeneinander platzieren, Sie möchten sie jedoch im Allgemeinen nicht zu Sätzen oder Absätzen verketten. – bdsl

Antwort

62

Verwenden {!! !!} statt {{ }} Flucht zu verhindern:

{!! trans('nav.find') !!} 
+0

Ahh, verdammt! Ich bin mir nicht sicher, wie ich das übersehen habe. Vielen Dank. Ich werde die Antwort akzeptieren, wenn SO es mir erlaubt. –

+3

@MichaelIrigoyen Sie erwähnten dreifache Klammern, also wollte ich nur erwähnen, dass dies einer der Wechsel zwischen L4 und L5 ist. In L4 war '{{}}' unleserlich und '{{{}}}' wurde geflüchtet. In L5, '{!! !!} 'ist unlescaped und' {{}} 'ist escaped. – patricus

+0

Danke, mein letzter Stint mit Laravel war Version 4, also vermisste ich diese Änderung jetzt, da ich mit einer sauberen Installation von 5.1 –

Verwandte Themen