Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 14.01.2015 17:37:09

armix2000

Локализация сайта

написал код

$locale = Request::segment(1);

if (is_null($locale))
{
    $locale="en";
}
print $locale;


Route::group(array('prefix' => $locale), function()
{
    Route::get('/', function()
    {
        return View::make('index');
    });
});


Когда набираю
http://localhost/ru/
http://localhost/en/

все работает, го без RU/EN -выдает ошибку!

добавил вручную назначить EN если пустая $locale - не помогло! в чем дело?

#2 14.01.2015 20:49:37

Re: Локализация сайта

Переменная locale в вашем коде не может быть null.

Не в сети

#3 14.01.2015 22:02:10

Armix2000

Re: Локализация сайта

Wide пишет:

Переменная locale в вашем коде не может быть null.

Почему же не может быть, при указании http://localhost эта переменная как раз пустая, и в if успешно присваивается EN
Но потом дебаггер пишет типа нет маршрута?!

#4 14.01.2015 22:09:35

Re: Локализация сайта

Да, ошибся...

Изменено Wide (14.01.2015 22:18:49)

Не в сети

#5 14.01.2015 22:25:47

Re: Локализация сайта

Какая конкретно ошибка?

Не в сети

#6 15.01.2015 11:25:05

armix2000

Re: Локализация сайта

Wide пишет:

Какая конкретно ошибка?

NotFoundHttpException

Причем EN присваивается этой переменной - я вижу ее в HTML коде дебаггера!

#7 15.01.2015 12:13:20

armix2000

Re: Локализация сайта

Сделал как здесь https://laravel.ru/posts/31

Все работает, только не могу понять как получить текущ язык, при любых адресах
http://localhost/en
http://localhost/ru
http://localhost/

функция     print App::getLocale();    выдает RU?!
Хотя сайт переводится нормально!

#8 18.01.2015 20:10:15

Re: Локализация сайта

Я делал следующим образом:

В конструкторе BaseController делаю вот так:

$languages = Config::get('app.languages');
        if(!$languages){
            $languages = array();
        }
        $locale = Request::segment(1);
        if(in_array($locale, $languages)){
            define("LOC", "/".$locale);
            define("LNG", $locale);
        }
        else {
            define("LOC", "");
            define("LNG", 'en');
        }


и потом где нужно - получаю либо язык, либо урл... слегка правда криво по ходу...

Не в сети

Подвал раздела