Laravel по-русски

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

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

#1 04.08.2012 22:18:53

Локализация

Здравствуйте, прочел документацию по локализации, да есть все функции для вывода, сохранения и смены языка, но а как же реализовать доступ к языку по URL ?

То есть:

site.com или site.com/ru/ - русский
site.com/en/ - английский

Может быть есть готовые варианты как сделать это ?

Не в сети

#2 05.08.2012 09:14:24

Re: Локализация

На англоязычном форуме была тема — в двух словах стандартных средств для этого нет. Можно использовать cookie для этого, не обязательно менять URL. Если же хочется именно в адресе иметь адрес, как у больших сайтов — надо подменять PHPURL::$base, как в примере на форуме.

Не в сети

#3 12.10.2012 09:01:43

Re: Локализация

Вчера ковырялся с этим делом. И вот что наковырял пока:
поставил последнюю версию фреймворка
в 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"

чую где то надули и можно сделать как то лучше smile
но пока это все, что наковырял

Ps: фреймворк только начал ковырять

Не в сети

#4 12.10.2012 09:51:41

Re: Локализация

Если ты после установки app.language также поменяешь (php%URL::$base, как предлагалось выше, а при создании ссылок будешь использовать PHPurl(), то базовый URL, в твоём случае содержащий язык, будет вставляться автоматически.

Не в сети

#5 12.10.2012 10:16:02

Re: Локализация

Спасибо, так и сделал.

Правда улетели все ассеты из 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)

Не в сети

#6 12.10.2012 11:29:01

Re: Локализация

  1. но думаю это можно пофиксить, добавив изначальный путь в сам ассет, к примеру как то так:

Да, можно так попробовать.

Не в сети

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