Laravel 本地化:可选占位符
Laravel localization: optional placeholders
在 Laravel 中,您可以在本地化文件中使用占位符,因此,如果您有一个 welcome.php
文件设置了以下规则:
'welcome' => 'Welcome, :name. Everything alright in :city?',
然后您使用它来打印一条消息:
echo trans('messages.welcome', ['name' => 'Dayle', 'city' => 'Boston']);
你会看到这个:
Hello, Dayle! Everything alright in Boston?
这里:name
是一个占位符。我的问题是:您能否使这些占位符成为可选的,即如果它们的值为 null
,将显示不同的文本?在上面的例子中,如果我们跳过 trans
函数中的 city
参数,我想看到这个:
Hello, Dayle!
我会做另一种逻辑,创建多个 trans。所以:
'welcome' => 'Welcome, :name. Everything alright in :city?',
'welcome2' => 'Welcome, :name',
if(is_null($city){
echo trans('messages.welcome2', ['name' => 'Dayle']);
}
else{
echo trans('messages.welcome', ['name' => 'Dayle', 'city' => 'Boston']);
}
如何使用 trans_choice
函数作为 switch 语句?
echo trans_choice('messages.welcome', intval(isset($city)))
然后您可以像这样使用翻译文件:
'welcome' => '{0} Welcome :name! | {1} Welcome :name ! Everything alright in :city?'
在 Laravel 中,您可以在本地化文件中使用占位符,因此,如果您有一个 welcome.php
文件设置了以下规则:
'welcome' => 'Welcome, :name. Everything alright in :city?',
然后您使用它来打印一条消息:
echo trans('messages.welcome', ['name' => 'Dayle', 'city' => 'Boston']);
你会看到这个:
Hello, Dayle! Everything alright in Boston?
这里:name
是一个占位符。我的问题是:您能否使这些占位符成为可选的,即如果它们的值为 null
,将显示不同的文本?在上面的例子中,如果我们跳过 trans
函数中的 city
参数,我想看到这个:
Hello, Dayle!
我会做另一种逻辑,创建多个 trans。所以:
'welcome' => 'Welcome, :name. Everything alright in :city?',
'welcome2' => 'Welcome, :name',
if(is_null($city){
echo trans('messages.welcome2', ['name' => 'Dayle']);
}
else{
echo trans('messages.welcome', ['name' => 'Dayle', 'city' => 'Boston']);
}
如何使用 trans_choice
函数作为 switch 语句?
echo trans_choice('messages.welcome', intval(isset($city)))
然后您可以像这样使用翻译文件:
'welcome' => '{0} Welcome :name! | {1} Welcome :name ! Everything alright in :city?'