项目下输入: composer require mcamara/laravel-localization
在 config/app.php

        'providers' => [
        // [...]
                Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider::class,
        ],  
        'aliases' => [
        // [...]
                'LaravelLocalization' => Mcamara\LaravelLocalization\Facades\LaravelLocalization::class,
        ],
然后输入命令:
~ php artisan vendor:publish –provider="Mcamara\LaravelLocalization\LaravelLocalizationServiceProvider"
然后 在 config/laravellocalization.php 配置你的语言配置,把zh 注释打开。

你也可以使用另一种方式,单独配置语言文件conf
新建 app/providers/ConfigServicePovider.php 文件

输入如下内容,并添加到config/app.php ( App\Providers\ConfigServiceProvider::class )

<?php 
namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class ConfigServiceProvider extends ServiceProvider {
    public function register()
    {
        config([
            'laravellocalization.supportedLocales' => [
                'en'  => array( 'name' => 'English', 'script' => 'Latn', 'native' => 'English' ),
                'zh'  => ['name' => 'Chinese (Simplified)',   'script' => 'Hans', 'native' => '简体中文', 'regional' => 'zh'],
            ],

            'laravellocalization.useAcceptLanguageHeader' => true,

            'laravellocalization.hideDefaultLocaleInURL' => true
        ]);
    }
然后在配置路由,在routes/web.php增加:

Route::group(['prefix' => LaravelLocalization::setLocale()], function()
{
    /** ADD ALL LOCALIZED ROUTES INSIDE THIS GROUP **/
    Route::get('/', function()
    {
        return trans('welcome.name');
    });

});

在resources增加对应zh目录,建立welcome.php
内容为:
return [‘name’=>’你好’];
在resources增加对应en目录,建立welcome.php
内容为:
return [‘name’=>’hello’];

然后访问
域名.com/en
域名.com/cn
域名.com
就可以看到翻译文件生效了

中间件形式
在 app/Http/Kernel.php 添加如下内容

<?php namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel {
    /**
     * The application's route middleware.
     *
     * @var array
     */
    protected $routeMiddleware = [
        /**** OTHER MIDDLEWARE ****/
        'localize' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRoutes::class,
        'localizationRedirect' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationRedirectFilter::class,
        'localeSessionRedirect' => \Mcamara\LaravelLocalization\Middleware\LocaleSessionRedirect::class,
                'localeViewPath' => \Mcamara\LaravelLocalization\Middleware\LaravelLocalizationViewPath::class
        // REDIRECTION MIDDLEWARE
    ];
}

路由文件这样写:

// app/Http/routes.php

Route::group(
[
    'prefix' => LaravelLocalization::setLocale(),
    'middleware' => [ 'localeSessionRedirect', 'localizationRedirect', 'localeViewPath' ]
],
function()
{
    /** ADD ALL LOCALIZED ROUTES INSIDE THIS GROUP **/
    Route::get('/', function()
    {
        return View::make('hello');
    });

    Route::get('test',function(){
        return View::make('test');
    });
});

更多内容请参考: https://github.com/mcamara/laravel-localization[/danger]

php使用生成器读取超大文件

<?php function getLines($file) { $f = fopen($file, 'r'); try { while ($line = fgets($f)) { yield $line; ...

阅读全文

php获取字符串里面的图片,xpath方式

代码 <?php $html = <<<str <html> <head> <title>123</title> </head> <body> <img src=&quo...

阅读全文

Thinkphp5 in查询结果按照in里面的顺序排

或许有人会注意过,但我以前真不知道 SQL: select * from table where id IN (3,6,9,1,2,5,8,7); 这样的情况取出来后,其实,id还是按1,2,3,4,5,6,7,8,9,排序...

阅读全文

欢迎留言