【问题标题】:Laravel 5.5 Blade Directive and Localization Not Working TogetherLaravel 5.5 Blade 指令和本地化不能一起工作
【发布时间】:2018-07-31 13:13:10
【问题描述】:

我正在尝试创建一个刀片指令,该指令将采用参数和

  1. 查翻译
  2. 将结果大写

我已经制作了这个指令的多个版本,但所有版本都不会导致错误,我通常只看到我传递的文本的大写版本。

第 1 版(尝试使用和不使用 {})

    Blade::directive('up', function ($expression) {
        $x = trans($expression);
        $y = strtoupper($x);
        return "<?php $y; ?>";
    });

另一个版本

    Blade::directive('up', function ($expression) {
        $x = trans($expression);
        return "<?php strtoupper({$x}); ?>";
    });

目前,我在刀片文件中插入了一个 php 块,以验证我的 trans() 查找是否正确。

【问题讨论】:

    标签: php laravel localization laravel-blade


    【解决方案1】:

    为什么你不使用__('messages.welcome')(下划线-下划线-函数)?

    也许这应该可行:

    Blade::directive('up', function ($expression) {
        return echo strtoupper(__($expression));
    });
    

    或者在前端这样做:

    {{ @up(__('translation.string')) }}
    

    并且有这个指令:

    Blade::directive('up', function ($expression) {
        return echo strtoupper($expression);
    });
    

    在我看来,这在刀片中也很好:

    {{ strtoupper(__('translation.string')) }}
    

    【讨论】:

    • 我尝试了上述所有选项,只有一个有效。 {{ strtoupper(__('translation.string')) }} 谢谢。但我仍然对为什么最初的尝试(使用 Laravel 文档中描述的 trans() )等不起作用感到困惑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-21
    相关资源
    最近更新 更多