在 blade 个翻译文件中换行
Break lines in blade translation files
在我看来我有
<p>{{ trans('mission-vision-page.mission-description') }}</p>
我在我的语言文件中放入了一段文本,但我想保留新行。我试过:
1.
return ['mission-description' => 'line 1 <br /> line 2']
2.
return ['mission-description' => 'line 1 \n line 2']
3.
$newLine = '<br />';
return ['mission-description' => 'line 1 ' . $newLine . ' line 2']
我知道可能有更好的方法来完成此操作,但我可以在我的 en.php 文件中添加新行吗?
在您的消息
中使用 {!! !!}
而不是 {{ }}
和 <br/>
标签
<p>{!! trans('mission-vision-page.mission-description') !!}</p>
如果您碰巧使用了 @lang
blade 指令,您可以使用以下代码自行覆盖帮助程序:
Blade::directive('lang', function ($expression) {
// @see Illuminate\View\Compilers\Concerns\CompilesTranslations.php::compileLang()
if (is_null($expression)) {
return '<?php $__env->startTranslation(); ?>';
} elseif ($expression[1] === '[') {
return "<?php $__env->startTranslation{$expression}; ?>";
}
return "<?php echo nl2br(app('translator')->getFromJson({$expression})); ?>";
});
这基本上是 vendor
目录 (Illuminate\View\Compilers\Concerns\CompilesTranslations.php::compileLang()
) 中的帮助程序代码的副本,输出包含 nl2br
。这会将任何换行符转换为 <br />
标签。
添加自定义blade指令,在App\Providers\AppServiceProvider.php
中添加:
\Blade::directive('lang2br', function ($expression) {
return "<?php echo nl2br(app('translator')->getFromJson({$expression})); ?>";
});
然后你可以使用类似lang
的指令:
@lang2br('something');
在我看来我有
<p>{{ trans('mission-vision-page.mission-description') }}</p>
我在我的语言文件中放入了一段文本,但我想保留新行。我试过:
1.
return ['mission-description' => 'line 1 <br /> line 2']
2.
return ['mission-description' => 'line 1 \n line 2']
3.
$newLine = '<br />';
return ['mission-description' => 'line 1 ' . $newLine . ' line 2']
我知道可能有更好的方法来完成此操作,但我可以在我的 en.php 文件中添加新行吗?
在您的消息
中使用{!! !!}
而不是 {{ }}
和 <br/>
标签
<p>{!! trans('mission-vision-page.mission-description') !!}</p>
如果您碰巧使用了 @lang
blade 指令,您可以使用以下代码自行覆盖帮助程序:
Blade::directive('lang', function ($expression) {
// @see Illuminate\View\Compilers\Concerns\CompilesTranslations.php::compileLang()
if (is_null($expression)) {
return '<?php $__env->startTranslation(); ?>';
} elseif ($expression[1] === '[') {
return "<?php $__env->startTranslation{$expression}; ?>";
}
return "<?php echo nl2br(app('translator')->getFromJson({$expression})); ?>";
});
这基本上是 vendor
目录 (Illuminate\View\Compilers\Concerns\CompilesTranslations.php::compileLang()
) 中的帮助程序代码的副本,输出包含 nl2br
。这会将任何换行符转换为 <br />
标签。
添加自定义blade指令,在App\Providers\AppServiceProvider.php
中添加:
\Blade::directive('lang2br', function ($expression) {
return "<?php echo nl2br(app('translator')->getFromJson({$expression})); ?>";
});
然后你可以使用类似lang
的指令:
@lang2br('something');