2015-06-18 7 views
2

Я строю сайт в Laravel, У меня есть язык браузера и соответствующий язык сайта.Laravel trans helper function не подбирает нужный файл

Проблема, ничто в Registrar.php не кажется, переводятся в English или Dutch

Может кто-нибудь, пожалуйста, помогите мне? Спасибо, g3

+0

вы можете показать код того, что вы делали до сих пор? Вам необходимо создать отдельные папки для всех языков, которые вы хотите поддерживать и переводить соответственно. Вы можете начать с копирования содержимого ресурсов/lang/en в ресурсы/lang/nl-be, затем перевести содержимое nl-be в голландский. – Digitlimit

+0

'Registrar.php',' English' и 'Dutch' являются ссылками :) – g3mini

+0

как? не понимаю, в какой версии Laravel вы используете – Digitlimit

ответ

2

Чтобы сделать эту работу вам необходимо использовать промежуточное программное обеспечение для установки локалей:

Создать LocaleMiddleware.php внутри app/http/middleware каталог с

//LocaleMiddleware.php 

<?php namespace App\Http\Middleware; 

use Closure; 
use Illuminate\Session\Store as Session; 
use Illuminate\Contracts\Auth\Guard as Auth; 


class LocaleMiddleware { 

    public function __construct(Session $session) 
    { 
     $this->session  = $session; 
    } 


    //Languages available in your resources/lang 

    protected $languages = ['en','es', 'nl-be']; 



    public function handle($request, Closure $next) 
    { 
     $langlist = $_SERVER['HTTP_ACCEPT_LANGUAGE']; 

     // We just want the main language 
     $lang = substr($langlist,0,2); 

     if(isset($this->languages[$lang])){ 
      app()->setLocale($lang); 
     }else{ 
      //You may log this here 
     } 

     return $next($request); 
    } 

} 

Затем зарегистрировать промежуточное программное обеспечение в app\httpe.kernel.php в $middleware массив

/** 
* The application's global HTTP middleware stack. 
* 
* @var array 
*/ 
protected $middleware = [ 
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, 

    ......... 

    \App\Http\Middleware\LocaleMiddleware::class, 
]; 

Создание Ланг файлов

Вам нужно создать отдельные папки для всех языков, которые вы хотите поддерживать и транслировать файлы в них, соответственно, например nl-be\validation.php.

Вы можете начать справляясь содержимое resources/lang/en to resources/lang/nl-be, then translate the contents of п-быть \ validation.php` голландским эквивалент

enter image description here

+0

Работает как очарование! Спасибо: D – g3mini

+0

Полезно знать. welcome – Digitlimit

+1

Я знал, как создавать lang-файлы :) Может быть полезно для других: D – g3mini