【问题标题】:How to use translation string with parameter in blade? (Laravel 5.8)如何在刀片中使用带有参数的翻译字符串? (Laravel 5.8)
【发布时间】:2021-03-12 09:16:01
【问题描述】:

我在 lang/tr/setting 中有一个翻译字符串,如下所示:

'permits' => [
    'halfdaynote' => 'Çalışmış sayılacağı süreler toplam :hours saat olmalıdır.',
],

我知道我可以像在控制器中那样在后端代码中使用这个字符串,这很好:

__('setting.permits.halfdaynote', ['hours', '7,5'])

说到刀片,我尝试了以下所有方法,但都失败了:

@lang('setting.permits.halfdaynote', ['hours', '7,5'])

{{ __('setting.permits.halfdaynote', ['hours', '7,5']) }}

{!! __('setting.permits.halfdaynote', ['hours', '7,5']) !!}

<?= __('setting.permits.halfdaynote', ['hours', '7,5']) ?>

<?php echo __('setting.permits.halfdaynote', ['hours', '7,5']) ?>

结果如下:

不是:Çalışmış sayılacağı süreler toplam :hours saat olmalıdır。

一定是这样的:

不是:Çalışmış sayılacağı süreler toplam 7,5 saat olmalıdır。

有什么办法可以做到吗?

【问题讨论】:

  • 您是否尝试将您的翻译放入 json 文件中? “资源/语言/en.json”
  • 您不能在翻译字符串中使用点。点代表数组。尝试将点更改为 -、# 或其他内容
  • @mchev 我为什么要这样做? Laravel 已经有一个本地化系统,我想使用它。
  • @Ts8060 你可以。
  • @AdemTepe 阅读我上面的回复将, 更改为=&gt; 文档:laravel.com/docs/8.x/…

标签: laravel localization laravel-blade laravel-5.8


【解决方案1】:

要解决您的问题,您需要将参数指定为 key =&gt; value 对:

{{ __('setting.permits.halfdaynote', ['hours' => '7,5']) }}

Docs

【讨论】:

  • 我希望他们把这个功能也放在@lang 指令中。
  • @AdemTepe 确实有效。 (至少应该尝试一下)
  • 哇,真的!为了确定,我清除了所有内容(缓存、视图、Ctrl + F5)。非常感谢。我没想到是 PhpStorm 的原因表明 @lang() 方法签名只有一个参数。
猜你喜欢
  • 2020-02-06
  • 1970-01-01
  • 2021-03-14
  • 2017-11-08
  • 2015-09-04
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2019-09-25
相关资源
最近更新 更多