我是 laravel 4.0 的新手。
lang/en/texts.php
获取整个数组?Lang::getAll()
方法?我的目标是在我的基本控制器中生成关键字/描述,将它们填充到主刀片模板中的元标记和DOM中的其他位置。如果我的方法完全错误,请告诉我!
从关联数组生成关键字和描述不是问题,而是缺乏关于框架的知识。而且,我在谷歌上搜索了很长时间才到达这里......
使用刀片模板: 这是我的BaseController:
class HomeController extends BaseController {
protected $layout = 'layouts.master';
private $keyWords = array();
private function getKeyWords () {
// ???
}
public function getIndex() {
return View::make('home')
->with('errorcanvas', trans('texts.canvas'))
->with('errortextwebgl', trans('texts.webgl'))
...;
}
...
}
我在API中找到了一些内容:
Illuminate\Translation\FileLoader load()
加载给定locale
的邮件
...
答案 0 :(得分:46)
Lang::get()
可以get the entire array。
$array = Lang::get('pagination'); // return entire array
$text = Lang::get('pagination.next'); // return single item
答案 1 :(得分:7)
让我们说一个语言文件:lang / en / countries.php
return [
'afg' => 'Afghanistan',
'ala' => 'Aland',
'alb' => 'Albania',
'dza' => 'Algeria',
'asm' => 'American Samoa'
];
使用 Lang :: get()方法
从语言文件中检索线条$array = Lang::get('countries'); // return entire array
$text = Lang::get('countries.afg'); // return single item
Laravel 5.0 &上面,您还可以使用 trans 辅助函数,它是 Lang :: get()方法的别名。
$array = trans('countries'); // return entire array
$text = trans('countries.afg'); // return single item
答案 2 :(得分:4)
以下是加载它们的方法:
Route::get('test', function()
{
$a = File::getRequire(base_path().'/app/lang/en/pagination.php');
foreach($a as $key => $value)
{
echo "$key => $value<br>";
}
});
如果您需要全部加载,可以使用:
$languages = File::directories(base_path().'/app/lang/');
我必须找到一种方法在我的Glottos包中创建一个语言导入命令:https://github.com/antonioribeiro/glottos。
答案 3 :(得分:1)
Antonio完美地回答了语言文件的加载,但我不喜欢你的做法 它可以更轻松地完成。为什么不这样做?
// view file
<html>
<head>
<meta name="description" content="{{ trans('texts.description') }}">
...
</head>
...
</html>
您无需通过控制器发送所有内容,这样可以使控制器保持干净。
答案 4 :(得分:0)
您实际上也可以使用辅助功能__('lang_file')
。