获取整个语言文件数组

toe*_*lab 26 php laravel laravel-4

我是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'))
            ...;
    }

    ...

}
Run Code Online (Sandbox Code Playgroud)

我在API中找到了一些东西:

Illuminate\Translation\FileLoader load()用给定的locale ... 加载消息

Jus*_*tin 48

你可以得到整个阵列Lang::get().

$array = Lang::get('pagination'); // return entire array
$text  = Lang::get('pagination.next'); // return single item
Run Code Online (Sandbox Code Playgroud)

  • 问:如果你在pagination.php中有一个名为'next.page'和'next.item'的数组键,它将不适用于`Lang :: get('pagination.next')`.你必须确保'next'是一个数组.我花了一段时间才弄明白:) (2认同)

k.t*_*k.t 8

可以说,语言文件:lang/en/countries.php

return [
 'afg' => 'Afghanistan',
 'ala' => 'Aland',
 'alb' => 'Albania',
 'dza' => 'Algeria',
 'asm' => 'American Samoa'
];
Run Code Online (Sandbox Code Playgroud)

使用Lang :: get()方法从语言文件中检索行

$array = Lang::get('countries'); // return entire array
$text  = Lang::get('countries.afg'); // return single item
Run Code Online (Sandbox Code Playgroud)

对于Laravel 5.0及更高版本,您还可以使用trans helper函数,它是Lang :: get()方法的别名.

$array = trans('countries'); // return entire array
$text = trans('countries.afg'); // return single item
Run Code Online (Sandbox Code Playgroud)

了解有关Laravel文档的更多信息......


Ant*_*iro 6

以下是加载它们的方法:

Route::get('test', function() 
{
    $a = File::getRequire(base_path().'/app/lang/en/pagination.php');

    foreach($a as $key => $value)
    {
        echo "$key => $value<br>";
    }
});
Run Code Online (Sandbox Code Playgroud)

如果你需要加载它们,你可以使用这个

use Illuminate\Support\Facades\File;

$languages = File::directories(base_path().'/app/lang/');
Run Code Online (Sandbox Code Playgroud)

我必须找到一种方法在我的 Glottos 包中创建语言导入命令: https: //github.com/antonioribeiro/glottos