web-dev-qa-db-ja.com

Laravel=ローカライズファイルでHTMLタグを使用するにはどうすればよいですか?

Laravelのローカライズ機能を利用しようとしていますが、フレーズの一部を強調したり太字にしたりする必要があります。 HTMLファイルを言語ファイルに挿入すると、ブレードに出力されるときにエスケープされます。

たとえば、ここに私の言語ファイルのエントリがあります:

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

ブレード内から呼び出す場合:(トリプルブレースも使用しようとしました。)

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

以下を出力します:

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

私は潜在的にフレージングを次のように分割できます:

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

そして出力:

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

しかし、それはやり過ぎのようです。より良い解決策はありますか?

39

つかいます {!! !!} の代わりに {{ }}エスケープを防ぐため:

{!! trans('nav.find') !!}
95
Limon Monte

@langディレクティブを使用:

@lang('nav.find')

ソース: 翻訳文字列の取得

4
Sand Of Vega

Laravel 5.6以降を使用すると、ブレード構文とともに____ヘルパーを使用できます。

{!! __('pagination.next') !!}

ページネーションブレードテンプレートに対してこれらを行う必要がありました。

1
builtbylarry