Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте, прочел документацию по локализации, да есть все функции для вывода, сохранения и смены языка, но а как же реализовать доступ к языку по URL ?
То есть:
site.com или site.com/ru/ - русский
site.com/en/ - английский
Может быть есть готовые варианты как сделать это ?
Не в сети
На англоязычном форуме была тема — в двух словах стандартных средств для этого нет. Можно использовать cookie для этого, не обязательно менять URL. Если же хочется именно в адресе иметь адрес, как у больших сайтов — надо подменять PHPURL::$base
, как в примере на форуме.
Не в сети
Вчера ковырялся с этим делом. И вот что наковырял пока:
поставил последнюю версию фреймворка
в application.php добавил 'languages' => array('ru'), (при 'language' => 'en',)
соответственно в /application/language/ ездят /ru и /en
фреймворк стал глотать domain.com/ru|en и сам переключать application.language
но появилось одна проблемка
у меня на уровне шаблона ездят хрефы вида: href="/registration"
переключаю селектбоксом на страничке язык на русский, js скрипт по сабмиту едет на domain.com/ru
все бы ничего, application.language стал 'ru', но вот линки на странице остались в виде domain.com/reistration
соответственно при переходе туда получаю application.language='en'
я могу конечно запомнить выбраный язык в сессии, но мне нужно что бы было в URI
посему пока выкрутился через прописку в контроллере:
$view = View::make('home.index');
$view->lang = Config::get('application.language');
а на уровне шаблона поехало:
href="{{$lang}}/reistration"
чую где то надули и можно сделать как то лучше
но пока это все, что наковырял
Ps: фреймворк только начал ковырять
Не в сети
Не в сети
Спасибо, так и сделал.
Правда улетели все ассеты из Base_Controller, поскольку теперь в путь к примеру до css добавился еще и язык:
http://domain.com/en/css/main.css вместо http://domain.com/css/main.css
но думаю это можно пофиксить, добавив изначальный путь в сам ассет, к примеру как то так:
Asset::add('jquery', Config::get('application.baseUrl') . 'scripts/jquery.min.js');
Изменено John (12.10.2012 10:24:48)
Не в сети
Не в сети
Страницы 1