adamibrahim / localization
Laravel 5.6 本地化包,包含语言选择器
v0.2.8
2018-03-16 11:17 UTC
Requires
- php: ~5.6|~7.0
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
README
Laravel 5.6 本地化包,包含
- 语言选择器
- 网站和CMS/后端的不同语言会话
- 语言列表存储在数据库的languages表中
- 在languages表中,你可以为[active, default]设置布尔值
演示
你可以看到演示
安装
通过Composer安装包
$ composer require adamibrahim/localization
如果你在安装Laravel 5.5或更高版本,可以直接跳到发布,否则你将需要编辑composer.json,注册服务提供者和中间件
composer.json
将以下代码添加到主目录下的composer.json的autoload部分
"psr-4": { "Adam\\Localization\\": "vendor/adamibrahim/localization/src" }
服务提供者
在文件config/app.php中,在* 包服务提供者...下注册服务提供者
Adam\Localization\LocalizationServiceProvider::class,
中间件
如果你使用的Laravel版本低于5.5,需要在App\Http\Kernel.php中注册lang中间件
- 在protected $routeMiddleware = []数组中添加以下代码
'lang' => \Adam\Localization\Middleware\Localization::class,
发布
可选发布标志文件夹,包含标志svg图片/和配置文件
$ php artisan vendor:publish --tag=Localization --force
数据库迁移
运行Artisan迁移命令
$ php artisan migrate
播种
运行Artisan播种命令
$ php artisan db:seed --class=Adam\Localization\database\seeds\LanguagesTableSeeder
Artisan播种错误
如果你收到这个错误
类Adam\Localization\database\seeds\LanguagesTableSeeder不存在
那么你可能需要通过运行以下命令来卸载自动加载
$ composer dump-autoload
然后再次运行播种命令
$ php artisan db:seed --class=Adam\Localization\database\seeds\LanguagesTableSeeder
使用方法
你需要将'lang'中间件添加到所有路由中
->middleware('lang')
将语言更改按钮添加到你的网站页面/
@if (($languages)->count() > 1) <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <img src="{{ asset('img/flags/'.$lang['flag']) }}"> {{ $lang['abbr'] }}<span class="caret"></span> </a> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink"> @foreach($languages as $language) <a href="{{ route('language.change', $language->abbr) }}" class="dropdown-item"> <img src="{{ asset('img/flags/'.$language->flag) }}"> {{$language->native}} </a> @endforeach </div> </li> @endif
可选地,如果你需要,可以添加不同的语言会话,例如管理控制台
@if (($languages_back)->count() > 1) <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <img src="{{ asset('img/flags/'.$lang_back['flag']) }}"> {{ $lang_back['abbr'] }}<span class="caret"></span> </a> <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdownMenuLink"> @foreach($languages_back as $language) <a href="{{ route('admin.back.language', $language->abbr) }}" class="dropdown-item"> <img src="{{ asset('img/flags/'.$language->flag) }}"> {{$language->native}} </a> @endforeach </div> </li> @endif
可选地,如果路由前缀为'admin',lang_back会话将设置应用程序的区域设置。如果你希望更改路由前缀,简单修改config\localization.php配置文件中的前缀
贡献
贡献
有关详细信息,请参阅CONTRIBUTING和CODE_OF_CONDUCT
安全
如果你发现任何安全相关的问题,请通过:author_email发送电子邮件,而不是使用问题跟踪器。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件