如何在Laravel Blade中首字母大写

问题描述 投票:25回答:4

我正在使用具有本地化功能的laravel(5.1)刀片模板引擎。

messages.php文件夹中有一个语言文件/resources/lang/en/

return [
    'welcome' => 'welcome',

在我的刀片模板中,使用trans方法调用欢迎消息:

{{ trans('messages.welcome') }}

在某些情况下,我需要显示相同的消息,但首字母大写(“欢迎”)。我不想在翻译文件中使用重复记录。

我怎么处理这个?

php laravel blade laravel-5.1
4个回答
67
投票

使用PHP的本机ucfirst函数:

{{ ucfirst(trans('messages.welcome')) }}

2
投票

另一种使用PHP和刀片使首字母大写的方法。

调节器

return view('stock.uk-lse', ['name' => 'djan']);

视图

<h1>{{ ucfirst($name) }}</h1>

1
投票

将blade指令添加到app / Providers / AppServiceProvider的boot()函数:

public function boot() {

    Blade::directive('lang_u', function ($s) {
        return "<?php echo ucfirst(trans($s)); ?>";
    });

}

这样,您可以在刀片文件中使用以下内容:

@lang_u('messages.welcome')

哪个输出:欢迎

你是@lang_u('messages.welcome'):)


0
投票

我认为最好的选择是使用CSS text-transform属性

在您的CSS文件中:

.lowercase {
    text-transform: lowercase;
}
.uppercase {
    text-transform: uppercase;
}
.capitalize {
    text-transform: capitalize;
}

你的刀片(html)文件:

<p class="lowercase">{{ trans('messages.welcome') }}</p> <!-- This will display welcome -->
<p class="uppercase">{{ trans('messages.welcome') }}</p> <!-- This will display WELCOME -->
<p class="capitalize">{{ trans('messages.welcome') }}</p><!-- This will display Welcome -->

或者,对我来说最好的选择,使用bootstrap

<p class="text-lowercase">{{ trans('messages.welcome') }}</p><!-- This will display welcome -->
<p class="text-uppercase">{{ trans('messages.welcome') }}</p><!-- This will display WELCOME -->
<p class="text-capitalize">{{ trans('messages.welcome') }}</p><!-- This will display Welcome -->
© www.soinside.com 2019 - 2024. All rights reserved.