如何在 Laravel 本地化文件中使用 HTML 标签?
How can I use HTML tags in a Laravel localization file?
我正在尝试使用 Laravel 的本地化功能,但我需要能够强调或加粗短语的一部分。在语言文件中插入 HTML 标签会导致它在输出到 blade.
时被转义
例如,这是我的语言文件条目:
return [
'nav' => [
'find' => '<strong>Find</strong> Your Home',
]
];
当我从 blade 中调用它时:(我也尝试过使用三重括号。)
{{ trans('base.nav.find') }}
它输出:
<strong>Find</strong> Your Home
我可能会将措辞拆分为:
return [
'nav' => [
'fyh' => [
'find' => 'Find',
'yh' => 'Your Home',
]
]
]
然后输出:
<strong>{{ trans('base.nav.fyh.find') }}</strong>{{ trans('base.nav.fyh.yh') }}
但这似乎有点矫枉过正。有更好的解决方案吗?
使用{!! !!}
而不是{{ }}
来防止转义:
{!! trans('nav.find') !!}
使用 Laravel 5.6 及更高版本,可以使用 __
帮助程序以及 blade 语法:
{!! __('pagination.next') !!}
必须为分页 blade 模板执行这些操作。
使用 @lang
指令:
@lang('nav.find')
我正在尝试使用 Laravel 的本地化功能,但我需要能够强调或加粗短语的一部分。在语言文件中插入 HTML 标签会导致它在输出到 blade.
时被转义例如,这是我的语言文件条目:
return [
'nav' => [
'find' => '<strong>Find</strong> Your Home',
]
];
当我从 blade 中调用它时:(我也尝试过使用三重括号。)
{{ trans('base.nav.find') }}
它输出:
<strong>Find</strong> Your Home
我可能会将措辞拆分为:
return [
'nav' => [
'fyh' => [
'find' => 'Find',
'yh' => 'Your Home',
]
]
]
然后输出:
<strong>{{ trans('base.nav.fyh.find') }}</strong>{{ trans('base.nav.fyh.yh') }}
但这似乎有点矫枉过正。有更好的解决方案吗?
使用{!! !!}
而不是{{ }}
来防止转义:
{!! trans('nav.find') !!}
使用 Laravel 5.6 及更高版本,可以使用 __
帮助程序以及 blade 语法:
{!! __('pagination.next') !!}
必须为分页 blade 模板执行这些操作。
使用 @lang
指令:
@lang('nav.find')