我正在使用具有本地化功能的laravel(5.1)刀片模板引擎。
messages.php
文件夹中有一个语言文件/resources/lang/en/
:
return [
'welcome' => 'welcome',
在我的刀片模板中,使用trans
方法调用欢迎消息:
{{ trans('messages.welcome') }}
在某些情况下,我需要显示相同的消息,但首字母大写(“欢迎”)。我不想在翻译文件中使用重复记录。
我怎么处理这个?
使用PHP的本机ucfirst
函数:
{{ ucfirst(trans('messages.welcome')) }}
另一种使用PHP和刀片使首字母大写的方法。
调节器
return view('stock.uk-lse', ['name' => 'djan']);
视图
<h1>{{ ucfirst($name) }}</h1>
将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'):)
我认为最好的选择是使用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 -->