web-dev-qa-db-ja.com

Laravel Bladeの最初の文字を大文字にする方法

ローカリゼーション機能でlaravel(5.1)ブレードテンプレートエンジンを使用しています。

言語ファイルがありますmessages.php 以内 /resources/lang/en/フォルダー:

return [
    'welcome' => 'welcome',

ブレードテンプレートでは、transメソッドを使用してウェルカムメッセージが呼び出されます。

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

場合によっては、同じメッセージを最初の文字を大文字にして表示する必要があります(「ようこそ」)。翻訳ファイルで重複したレコードを使用したくありません。

どうすればこれにアプローチできますか?

26
user947668

PHPのネイティブ ucfirst 関数を使用します。

{{ ucfirst(trans('messages.welcome')) }}
73
Joseph Silber

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'):)

2
Pim

PHPとbladeを使用して最初の文字を大文字にする別の方法。

コントローラ

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

見る

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

最適なオプションは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 -->

または、私にとって最適なオプションは、ブートストラップを使用することです

<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 -->
0
Zahit Rios