我知道如何使用语言文件:
/resources/lang/en/account/login.php
return [
'text_login' => 'Login',
'text_register' => 'Register',
'error_login' => 'These credentials do not match our records.',
];
/resources/lang/zh-tw/account/login.php
return [
'text_login' => '登入',
'text_register' => '註冊',
'error_login' => '帳號或密碼輸入錯誤',
];
/resources/views/welcome.blade.php
<a href="{{ route('login') }}">{{ __('account/login.text_login') }}</a>
<a href="{{ route('register') }}">{{ __('account/login.text_register') }}</a>
&#13;
这很有效。但是太久了,我希望缩短它 改变这个
{{ __('account/login.text_login') }}
到
{{ $text_login }}
是否可以这样做?
答案 0 :(得分:0)
我有一个解决方案 在每种语言中,我都有子文件夹和文件。
/resources/lang/en
common.php
/catalog
category.php
product.php
attribute.php
option.php
...
的common.php
<?php
return [
'text_yes' => 'Yes',
'text_no' => 'No',
'text_enabled' => 'Enabled',
'text_disabled' => 'Disabled',
'text_none' => ' --- None --- ',
'text_select' => ' --- Please Select --- ',
'text_select_all' => 'Select All',
'text_unselect_all' => 'Unselect All',
'text_default' => ' <b>(Default)</b>',
'text_close' => 'Close',
'text_pagination' => 'Showing %d to %d of %d (%d Pages)',
'text_loading' => 'Loading....',
'text_no_results' => 'No results!',
'text_confirm' => 'Are you sure?',
'text_home' => 'Home',
];
category.php
<?php
return [
'heading_title' => 'Categories',
'text_list' => 'Category List',
'text_edit' => 'Edit Category',
'text_repaire' => 'Repaire Category',
'text_copy' => 'Copy Category',
'column_name' => 'Name',
'column_parent_name' => 'Parent Category',
];
在CategoryController中,
//Language
$langs = Lang::get('common');
foreach ($langs as $key => $value) {
$data[$key] = $value;
}
$langs = Lang::get('category');
foreach ($langs as $key => $value) {
$data[$key] = $value;
}
//breadcomb
$data['breadcumbs'][] = array(
'text' => $data['text_home'],
'href' => route('admin.dashboard'),
);
$data['breadcumbs'][] = array(
'text' => $data['heading_title'],
'href' => route('admin.category.index'),
);
我认为我的想法太棒了!
但仍有问题。例如,关键text_pagination需要参数:firstItem,lastItem,totals,它由laravel分页类生成。
如果我在控制器功能的乞讨时加载语言文件,则没有$ categories-&gt; firstItem,$ categories-&gt; lastItem让我使用sprintf。 $ categories将在稍后生成。
如果语言文件放在底部,有时我们需要在此之前使用语言变量,如验证错误消息。
编辑: 把语言文件放在乞讨时应该没问题。稍后重置text_pagination:
$data['text_pagination'] = sprintf($data['text_pagination'],
$categories->firstItem(),
$categories->lastItem(),
$categories->total(),
$categories->lastPage() );