
Vladimir
15.02.2018
20:02:51
попробую

?
15.02.2018
20:03:42
url::to(['site/view','slug'=>'hello_world','language'=>'ru']);
как то так по идеи должно быть

Kirill
15.02.2018
20:04:26
Я правильно понял, что надо оставить текущий урл, но добавить параметр для языка?

Google

Vladimir
15.02.2018
20:05:13
ну я просто себе фичу поставил которая к урлу ещё добавляет язык, поэтому при переключении языка оно язык то переключает но страница после нажатия уходит в глубокий 404

?
15.02.2018
20:05:16
ну если костыльно то берешь текущий и меняешь на ru на en к римеру

Vladimir
15.02.2018
20:05:24
Ну а потом нормально работает
Я код выше скинул, там в примере такая муть немного

Kirill
15.02.2018
20:05:59
был урл index/test/ok?param=1, после Url::current(['lang' => 'ru']) стал index/test/ok?param=1&lang=ru

Vladimir
15.02.2018
20:06:41

Dmitriy
15.02.2018
20:07:13
Url::curren()
?

?
15.02.2018
20:07:25
а нафига урл знать
контроллер и влюху ты и так знаешь
текущий слаг в моделе есть

Vladimir
15.02.2018
20:08:06

Maxim
15.02.2018
20:08:19

Vladimir
15.02.2018
20:09:32
Он вообще в виде виджета
В блоке справа висит

Google

?
15.02.2018
20:09:45
Yii::$app->controller->route;
$this->context->route;

Dmitriy
15.02.2018
20:10:05
а задача то какая ?

Maxim
15.02.2018
20:10:17
ну ok
Повесь на него урл site/lang и редиректь на урл, с которого пришел запрос
И ставь его куда угодно

Vladimir
15.02.2018
20:12:54

Maxim
15.02.2018
20:13:06
это почему?

Vladimir
15.02.2018
20:13:41
а не, может и получиться

Maxim
15.02.2018
20:18:29
посмотри как индус сделал и переведи на нормальный лад
https://www.youtube.com/watch?v=_qNMcJKoEK0&index=51&list=PLRd0zhQj3CBmusDbBzFgg3H20VxLx2mkF

Vladimir
15.02.2018
20:34:45
да у меня все сделано, просто с переключением проблема
я не хочу переделывать
https://github.com/codemix/yii2-localeurls
вот эту хрень юзаю

Matviy
15.02.2018
20:51:01
Может кто знает
В доках написано, что можно удалять GET параметры, если присвоить им в URL::current() null. Например, я делаю так:
$this->url = Url::current(['per-page' => null, 'page' => null, 'sort' => null], true);
В результате УРЛ должен получится
http://domain.com/category/elektronika
а получается
http://domain.com/category/elektronika?page=&per-page=&sort=
ЧЯДНТ?
Собственно нужно для канонических урлов в метатегах

Vladimir
15.02.2018
21:18:23

Matviy
15.02.2018
21:19:24
То есть? А якык тут при чем?

Vladimir
15.02.2018
21:19:30
Когда я допустим переключился с дефолт языка на другой, оно подставляет site.ru/en/блаблабла, а когда я хочу ещё раз его переключить, то он берет этот урл и добавляет перед en например ещё ru

Matviy
15.02.2018
21:19:54
Не, с этим норм

Vladimir
15.02.2018
21:20:10
?

Matviy
15.02.2018
21:20:12
Зависит от реализации мультиязычных урлов
А у меня нет параметры не хотят убиратся

Google

Matviy
15.02.2018
21:20:39
Гет

Vladimir
15.02.2018
21:20:58
чел, мы с тобой тут оба за помощью)
и оба с урлменеджерами
почитай выше
и у него не добавляет к урл язк

PowerAxis
15.02.2018
21:29:18
https://m.habrahabr.ru/post/226931/
Я по этому примеру делал
Там и логика и виджет описаны
Посмотри, авось зайдет

Vladimir
15.02.2018
21:32:19
Гугл чуток не довел меня до этой статьи :)
http://atoumus.github.io/yii2-i18n.html
Делал по этой

Vladimir
15.02.2018
21:32:46
Спасибо, попробую по той что ты дал, мне она нравится больше, все описано и подробно
А он умеет определять язык из настроек браузера?
А то чет не вижу

PowerAxis
15.02.2018
21:33:45
Кажется да я не помню точно
А Может и нет ... Но в любом случае поставить один if где-то в сервисе не должно составить труда

Matviy
15.02.2018
21:39:57
Я использую это расширение
https://github.com/codemix/yii2-localeurls
Методом проб и ошибок при таком конфиге работает:
'urlManager' => [
'class' => 'codemix\localeurls\UrlManager',
'languages' => array_flip(require(__DIR__ . '/languages.php')),
'enableLanguagePersistence' => false,
'enableLanguageDetection' => false,
'enablePrettyUrl' => true,
'showScriptName' => false,
'baseUrl' => '/',
'normalizer' => [
'class' => 'yii\web\UrlNormalizer',
'action' => yii\web\UrlNormalizer::ACTION_REDIRECT_TEMPORARY,
],
'rules' => require(__DIR__ . '/routs.php'),
],
Не помню уже почему, но автодетект локали подглючивал, а может и нет ,пробовать нужно

Google

Vladimir
15.02.2018
21:43:16
Я использую это расширение
https://github.com/codemix/yii2-localeurls
Методом проб и ошибок при таком конфиге работает:
'urlManager' => [
'class' => 'codemix\localeurls\UrlManager',
'languages' => array_flip(require(__DIR__ . '/languages.php')),
'enableLanguagePersistence' => false,
'enableLanguageDetection' => false,
'enablePrettyUrl' => true,
'showScriptName' => false,
'baseUrl' => '/',
'normalizer' => [
'class' => 'yii\web\UrlNormalizer',
'action' => yii\web\UrlNormalizer::ACTION_REDIRECT_TEMPORARY,
],
'rules' => require(__DIR__ . '/routs.php'),
],
Вот я тоже его

Matviy
15.02.2018
21:43:30
Попробуй конфиг, как у меня
Должно норм работать

Vladimir
15.02.2018
21:45:34
Как у тебя выглядит переключатель языка?
Ссылка

Matviy
15.02.2018
21:48:06
Ща
<?php
/* @var $this \yii\web\View */
use yii\helpers\Url;
switch (\Yii::$app->language) {
case 'uk-UA': $lang = 'укр';
break;
case 'ru-RU': $lang = 'рус';
break;
}
$urlUk = Url::current(['language' => 'uk-UA'], true);
$urlRu = Url::current(['language' => 'ru-RU'], true);
?>
<li class="dropdown" id="lang-switcher">
<a class="dropdown-toggle" href="#" data-toggle="dropdown"><?= $lang ?> <i class="fa fa-caret-down" aria-hidden="true"></i></a>
<ul class="dropdown-menu">
<li <?= $lang == 'укр' ? 'style="display:none"' : '' ?> ><a data-url="<?= $urlUk ?>" href="#">укр</a></li>
<li <?= $lang == 'рус' ? 'style="display:none"' : '' ?> ><a data-url="<?= $urlRu ?>" href="#">рус</a></li>
</ul>
</li>

Admin
ERROR: S client not available

Matviy
15.02.2018
21:49:25
Да, там джаваскриптом переключается, не помню уже, почему
Но суть та же

Vladimir
15.02.2018
21:52:22
Воооооооооооот
Это то, что было нужно
Большое тебе спасибо )
Все работает
Люблю этот чат

Matviy
16.02.2018
01:00:12
Не за что)
Мне бы еще кто помог)

Alex
16.02.2018
01:07:43
а че у тебя?)

Matviy
16.02.2018
01:10:05
а че у тебя?)
Может кто знает
В доках написано, что можно удалять GET параметры, если присвоить им в URL::current() null. Например, я делаю так:
$this->url = Url::current(['per-page' => null, 'page' => null, 'sort' => null], true);
В результате УРЛ должен получится
http://domain.com/category/elektronika
а получается
http://domain.com/category/elektronika?page=&per-page=&sort=
ЧЯДНТ?

Alex
16.02.2018
01:10:37
хмм

Google

Alex
16.02.2018
01:10:40
дай мне минут 5
гляну сорцы

Matviy
16.02.2018
01:12:57
Я вот сейчас тоже глядеть буду

Alex
16.02.2018
01:13:55
реально странно
реально фигня какая-то
я првоерил сорцы
долдно убивать

Matviy
16.02.2018
01:15:33
Может баг фреймворка?

Alex
16.02.2018
01:15:41
да вот не должно
в коде все ок

Matviy
16.02.2018
01:15:48
Так а у тебя убирает, или нет?

Alex
16.02.2018
01:15:50
foreach ($params as $key => $value) {
if ($value !== null) {
$cacheKey .= $key . '&';
}
}
это как-то как-то протестить

Matviy
16.02.2018
01:16:46
Может я в чем-то туплю, хз
Єто где именно?

Alex
16.02.2018
01:17:04
это в генераторе урла в фрейме самом

Matviy
16.02.2018
01:17:13
ага

Alex
16.02.2018
01:17:32
ща попробую в одном проекте

Matviy
16.02.2018
01:18:43
ок