I'm trying to utilize Laravel's localization feature, but I need to be able to put emphasis or bolden a portion of a phrase. Inserting a HTML tag into the language file causes it to be escaped when outputted to a blade.
For example, here is my language file entry:
return [ 'nav' => [ 'find' => '<strong>Find</strong> Your Home', ] ];
When I call it from within a blade: (I've tried using triple braces as well.)
{{ trans('base.nav.find') }}
It outputs:
<strong>Find</strong> Your Home
I could potentially split the phrasing up like:
return [ 'nav' => [ 'fyh' => [ 'find' => 'Find', 'yh' => 'Your Home', ] ] ]
And then output:
<strong>{{ trans('base.nav.fyh.find') }}</strong>{{ trans('base.nav.fyh.yh') }}
But that seems like overkill. Any better solutions?
Use {!! !!}
instead of {{ }}
to prevent escaping:
{!! trans('nav.find') !!}
Using @lang
directive:
@lang('nav.find')
Source: Retrieving Translation Strings
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With