danieldoinov / languageintegration
该包为laravel实例引入了动态语言更改功能。
dev-master
2017-11-03 11:37 UTC
Requires
- php: ~7.0
- illuminate/support: ~5.1
- stevebauman/location: ^2.0
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2020-01-01 20:36:15 UTC
README
提供动态更改Laravel当前语言环境的功能。基本上,它从用户的角度使得laravel支持多语言。
安装
通过Composer
$ composer require danieldoinov/languageintegration
此包已集成地理定位功能,使用以下包
Stevebauman\Location
它应该会自动与这个包一起安装,但以防万一,你可以通过运行以下命令来安装它:
composer require stevebauman/location
你必须将提供者在config/app.php中添加
Stevebauman\Location\LocationServiceProvider::class, DanielDoinov\LanguageIntegration\LanguageIntegrationServiceProvider::class
然后你可以发布配置文件。
php artisan vendor:publish --provider="danieldoinov\LanguageIntegration\LanguageIntegrationProvider" php artisan vendor:publish --provider="Stevebauman\Location\LocationServiceProvider"
用法
该包所做的就是在路由中添加一个路由和一个中间件来处理语言更改。默认情况下,它将提供以下选项来更改语言
http://yourdomain.com/locale/[lang]
链接到该URL将更改应用程序的语言环境为指定的语言。变量[lang]
必须是有效的语言代码,并且必须存在于config/languages.php
配置文件中。更改语言后,路由将带有任何其他输入返回。
您可以通过在应用程序中的任何路由中添加?lang=[lang]
来创建动态更改语言的链接。
应用程序第一次启动时,中间件将查找带有首选语言的cookie。如果没有找到,它将根据国家代码定位用户并切换到配置的语言。
您可以从config/languages.php
以及cookie名称和路由格式中配置所有这些。
以下是默认的完整配置
'cookie_key' => 'current_locale', 'locale' => [ 'en' => 'English', 'de' => 'Deutsche', 'es' => 'Español', 'ru' => 'Русский' ], 'country_code_to_locale' => [ 'US' => 'en', 'GB' => 'en', 'CA' => 'en', 'UM' => 'en', //spanish 'ES' => 'es', //german 'DE' => 'de', //Russion 'RU' => 'ru', ], 'route' => '/locale/{lang}', 'route_name' => 'setLocale'
希望您喜欢并有所帮助!
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。