Вспомогательная функция Laravel trans не выбирает правильный файл

Я создаю веб-сайт в Laravel, у меня есть язык браузера и соответствующий язык веб-сайта.

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

Кто-нибудь может мне помочь? Спасибо, г3


person JordyvD    schedule 18.06.2015    source источник
comment
Можете ли вы показать код того, что вы сделали до сих пор? Вам нужно создать отдельные папки для всех языков, которые вы хотите поддерживать, и перевести их соответствующим образом. Вы можете начать с копирования содержимого resources/lang/en в resources/lang/nl-be, а затем перевести содержимое nl-be на голландский язык.   -  person Emeka Mbah    schedule 18.06.2015
comment
Registrar.php, English и Dutch это ссылки :)   -  person JordyvD    schedule 18.06.2015
comment
как? не понимаю, какую версию Laravel вы используете   -  person Emeka Mbah    schedule 18.06.2015
comment
Laravel 5, я имею в виду в вопросе это ссылки   -  person JordyvD    schedule 18.06.2015
comment
Хорошо, позвольте мне понять вас правильно, вы хотите изменить локальный пользователь, когда он нажимает голландскую ссылку или английскую ссылку?   -  person Emeka Mbah    schedule 18.06.2015
comment
Я только что видел ваш код в pastebin, мой совет: вы всегда должны включать свой код в свой ответ, чтобы сделать его более понятным, pastebin хорош, но ссылка может быть сломана позже, и не всем, что посетить pastebin. Как вы устанавливаете свою локаль в laravel. Если вы правильно установите Locale, будет использоваться правильный файл lang. Я ответил на аналогичный вопрос здесь: заголовок ="как я могу заставить пользователя переключать языки в laravel 5"> stackoverflow.com/questions/29723344/   -  person Emeka Mbah    schedule 18.06.2015
comment
Нет, слова, которые я упомянул, находятся в исходном вопросе, они ссылаются на pastebin с содержимым файла. Языковой стандарт устанавливается с использованием настроенного языка браузера. Локаль выставлена ​​как надо, все остальное переводится.   -  person JordyvD    schedule 18.06.2015
comment
Спасибо за совет включить все в сам пост :) Сделаю это в следующий раз: D @DigitLimit   -  person JordyvD    schedule 18.06.2015
comment
Давайте продолжим обсуждение в чате.   -  person Emeka Mbah    schedule 18.06.2015


Ответы (1)


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

Создайте каталог 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 ofnl-be\validation.php` в голландский эквивалент

введите здесь описание изображения

person Emeka Mbah    schedule 18.06.2015
comment
Работает как шарм! Спасибо - person JordyvD; 18.06.2015
comment
Я знал, как создавать файлы lang :) Может быть полезно для других: D - person JordyvD; 18.06.2015