Laravel5.5+Vue实现中英文切换

一、Laravel端

总体思路:由于使用App::setLocale()只能切换当前页面语言,无法使语言选项持久化。解决方案是将语言选项保持在Seesion中,通过在web中间件组中注册SwitchLanguage中间件从Session中获取选择的语言,然后利用App::setLocale()实现语言切换。

以下是实现步骤:

1、在config/app.php中配置语言切换选项数组locales:

'locales' => ['en' => 'English', 'zh' => 'Chinese'],

2、定义并实现中间件:php artisan make:middleware SwitchLanguage


3、在App\Http\Controllers\Controller中实现setLocaleLang函数,并在routes/web.php中添加语言切换路由:


4、在resources中定义全局字典或分类字典,结构如下:


5、在blade中实现切换功能:


6、在blade模板中将当前语言选择项传递给vue组件:


二、vue组件

总体思路:利用第三方组件vue-i18n实现。官网地址:VueI18n

实现步骤:

1、yarn add --dev vue-i18n或npm install --dev vue-i18n

2、在resources/assets/js/app.js中加入i18n引用并挂载到vue根实例上:


3、编写语言字典:



4、在组件created函数中设置显示语言


5、在组件中使用语言字典内容:



总结:到此Laravel5.5+vue实现多语言支持已完成,时间比较紧,写得不够详细,请谅解。如有问题,随时留言。

你可能感兴趣的:(Laravel5.5+Vue实现中英文切换)