syscover/langlocale

该软件包已被废弃,不再维护。作者建议使用syscover/navTools软件包。

NavTools软件包

安装: 149

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 3

分支: 0

类型:项目

v3.0.9 2017-03-29 16:02 UTC

README

Total Downloads Latest Stable Version License

安装

1 - 在命令行运行

composer require syscover/laravel-nav-tools

2 - 注册服务提供者,在文件config/app.php中添加到providers数组

Syscover\NavTools\NavToolsServiceProvider::class,

3 - 要发布软件包,必须在控制台中输入

php artisan vendor:publish --provider="Syscover\NavTools\NavToolsServiceProvider"

4 - 注册中间件pulsar.navTools,在文件app/Http/Kernel.php中添加到routeMiddleware数组

'pulsar.navTools' => \Syscover\NavTools\Middleware\NavTools::class,

通用配置环境值

在环境文件.env中设置NAVTOOLS_URL_TYPE选项

设置您网站的URL类型,您有三种类型:lang、country或lang-country,对于URL类型lang

NAVTOOLS_URL_TYPE=lang

您可以处理这些URL

hrrp://mydomain.com/en/any-page

对于URL类型country

NAVTOOLS_URL_TYPE=country

您可以处理这些URL

hrrp://mydomain.com/us/any-page

对于URL类型lang-country

NAVTOOLS_URL_TYPE=lang-country

您可以处理这些URL

hrrp://mydomain.com/en-us/any-page

在环境文件.env中设置NAVTOOLS_LANGS选项

设置您网站中可用的国家

NAVTOOLS_LANGS=en|es

在环境文件.env中设置NAVTOOLS_COUNTRIES选项

设置您网站中可用的国家

NAVTOOLS_COUNTRIES=us|gb|es

在环境文件.env中设置NAVTOOLS_DEFAULT_COUNTRY选项

设置您网站的默认国家

NAVTOOLS_DEFAULT_COUNTRY=es

使用NavTools进行路由

在app\Http\routes.php文件中使用此闭包实现具有翻译的路由

Route::group(['middleware' => ['pulsar.navTools']], function() {

    // write here your routes

});

路由配置

您有多个URL配置选项,取决于所选的NAVTOOLS_URL_TYPE参数

使用lang变量编写您的路由

Route::group(['middleware' => ['pulsar.navTools']], function() {
    Route::get('/',                         function(){ return view('www.index'); });
    Route::get('{lang}',                  function(){ return view('www.index'); });
    Route::post('{lang}/contact',         ['as'=>'contact',  'uses'=>'FrontEndController@contact']);
});

或在您的路由中设置lang变量

Route::group(['middleware' => ['pulsar.navTools']], function() {
    Route::get('/',                   function(){ return view('www.index'); });

    Route::get('en',                  function(){ return view('www.index'); });
    Route::get('es',                  function(){ return view('www.index'); });

    Route::post('en/contact',         ['as' => 'contact-en',          'uses'=>'FrontEndController@contact']);
    Route::post('es/contacto',        ['as' => 'contact-es',          'uses'=>'FrontEndController@contact']);
});

或在您的路由中设置常量lang但country变量

Route::group(['middleware' => ['pulsar.navTools']], function() {
    Route::get('/',                   function(){ return view('www.index'); });

    Route::get('/en-{country}',                  function(){ return view('www.index'); });
    Route::get('/es-{country}',                  function(){ return view('www.index'); });

    Route::post('en-{country}'/contact',         ['as' => 'contact-en',          'uses'=>'FrontEndController@contact']);
    Route::post('es-{country}'/contacto',        ['as' => 'contact-es',          'uses'=>'FrontEndController@contact']);
});

或使用lang和country变量获取语言值。

Route::group(['middleware' => ['pulsar.navTools']], function() {
    Route::get('/',                   function(){ return view('www.index'); });

    Route::get('/{lang}-{country}',                  function(){ return view('www.index'); });

    Route::post('/{lang}-{country}/contact',         ['as' => 'contact-en',          'uses'=>'FrontEndController@contact']);
});

在您的应用程序中获取值

您可以使用这些助手获取lang和country值。

user_country(); // to get country user
user_lang(); // to get language user

设置路由时,您需要根据NAVTOOLS_URL_TYPE添加lang或country参数。

route('routeName', ['lang' => 'en', 'country' => 'us']);

您可以使用自定义助手nt_route(),此助手会自动插入lang和country变量,除非您指定这些变量。

nt_route('routeName');

您可以使用redirect()助手而不会有任何麻烦,我们已经扩展了Laravel核心,使redirect()->route()nt_route()做相同的事情。

如果您想更改语言或国家,您必须使用这些助手

change_language('en');
change_country('us');

许可

NavTools是开源软件,根据MIT许可授权。