ローカリゼーション機能でlaravel(5.1)ブレードテンプレートエンジンを使用しています。
言語ファイルがありますmessages.php
以内 /resources/lang/en/
フォルダー:
return [
'welcome' => 'welcome',
ブレードテンプレートでは、trans
メソッドを使用してウェルカムメッセージが呼び出されます。
{{ trans('messages.welcome') }}
場合によっては、同じメッセージを最初の文字を大文字にして表示する必要があります(「ようこそ」)。翻訳ファイルで重複したレコードを使用したくありません。
どうすればこれにアプローチできますか?
PHPのネイティブ ucfirst
関数を使用します。
{{ ucfirst(trans('messages.welcome')) }}
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'):)
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 -->