项目下输入: 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]

记录一个laravel-excel导出表格值为0导出excel显示空的解决方法。

最近在使用laravel-excel导出表格的时候,发现假如字段值为0的情况下,导出的excel中直接显示为空,找到一个方法解决,如下. 在laravel-excel的config配置中...

阅读全文

php实现redis延时队列

写了一个简单的类实现 使用方法 $class = new RedisDelayQueue(); $class->execute(); <?php namespace app\common\service; class RedisDelay { ...

阅读全文

php获取包含10w个手机号的txt文件(逗号隔开)

txt文件格式如下 13000000000,13000000005,13000000403,13001010129,13001010688,13001010838,13001016389,13001019538,13001030005,13001042700,13001047495...

阅读全文

欢迎留言