<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766589</guid>
        <pubDate>Sat, 14 Apr 2018 11:36:20 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766589</link>
        <description><![CDATA[JoeUser: Ясн. Пасиба&#33; Есть фронт работ  :)]]></description>
        <author>JoeUser</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766588</guid>
        <pubDate>Sat, 14 Apr 2018 11:31:41 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766588</link>
        <description><![CDATA[Serafim: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766586'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T11:15:12+00:00">14.04.18, 11:15</time></span><div class='quote '>А еще вдогоночку ... брать в boot()</div></div><br>
Нет, в провайдерах нельзя. Не везде есть HTTP окружение (есть же ещё CLI) и тем более кукисы (ещё есть stateles API без сессий и кук), а провайдеры - это глобальная фиговина. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-14T11:34:28+00:00">14.04.18, 11:34</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766586'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T11:15:12+00:00">14.04.18, 11:15</time></span><div class='quote '>Эта хрень или где в самом начале можно куки считать и инициализировать текущий язык?</div></div><br>
Т.е. либо в провайдере выдёргивать внутри коллбека, вроде:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">public function boot(): void</div><div class="code_line">{</div><div class="code_line">&nbsp;&nbsp; &nbsp;$this-&#62;app-&#62;singleton(Language::class, function() {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;$request = $this-&#62;app-&#62;make(Request::class); //</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;///</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return $language;</div><div class="code_line">&nbsp;&nbsp; &nbsp;});</div><div class="code_line">}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">$this-&#62;app-&#62;make(Language::class); // Если из под web окружения, то всё ок, если нет, то инициализация зафейлится, т.е. в коллбеке будет пустой объект Request</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Тогда объект будет инициализироваться только тогда, когда ты будешь пытаться выдрать Language, а там (в том месте, где будешь пытаться получить эту зависимость) вполне могут быть и кукисы и http окружение.<br>
<br>
<br>
Либо в миддлваре.]]></description>
        <author>Serafim</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766586</guid>
        <pubDate>Sat, 14 Apr 2018 11:15:12 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766586</link>
        <description><![CDATA[JoeUser: <strong class='tag-b'>Serafim</strong>, благодарю&#33; Буду переваривать, когда малеха хмель пройдет :lol: <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-14T11:18:07+00:00">14.04.18, 11:18</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766585'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T11:02:17+00:00">14.04.18, 11:02</time></span><div class='quote '>Просто default language в данном случае будет браться из кук, а не из локали. </div></div><br>
А еще вдогоночку ... брать в boot()? Эта хрень или где в самом начале можно куки считать и инициализировать текущий язык?]]></description>
        <author>JoeUser</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766585</guid>
        <pubDate>Sat, 14 Apr 2018 11:02:17 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766585</link>
        <description><![CDATA[Serafim: А ещё можно что-то вроде 3х таблиц. Т.е. сама страница одна, а i18n содержимое ссылается как на язык, так и на страницу с инфой о видимости, адресе и проч (т.е. общей инфой).<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">languages &nbsp; &nbsp;contents &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; pages</div><div class="code_line">&nbsp;&nbsp;id &#60;--------- language_id &nbsp; &nbsp; &nbsp; &nbsp; slug</div><div class="code_line">&nbsp;&nbsp;title &nbsp; &nbsp; &nbsp; &nbsp; title &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; is_visibile</div><div class="code_line">&nbsp;&nbsp;slug &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;content &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ...</div><div class="code_line">&nbsp;&nbsp;is_visible &nbsp; &nbsp;page_id ----------&#62; id</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-14T11:03:32+00:00">14.04.18, 11:03</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766584'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T11:00:50+00:00">14.04.18, 11:00</time></span><div class='quote '>Ну оч бегло глянул твой код ... упоминания о куках не заметил. А мне нужно, чтобы повторный визит (при наличии куков у юзера) сразу же выставлял последний выбранный язык. Как сделать, вернее где? </div></div><br>
Ну выставляй :-? Просто default language в данном случае будет браться из кук, а не из локали. <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-14T11:03:49+00:00">14.04.18, 11:03</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766584'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T11:00:50+00:00">14.04.18, 11:00</time></span><div class='quote '>Каки таблицы создавать-связывать? А при команде &quot;удаляй&quot; - правильно их чистить?</div></div><br>
На уровне миграций - это foreign key]]></description>
        <author>Serafim</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766584</guid>
        <pubDate>Sat, 14 Apr 2018 11:00:50 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766584</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766581'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T10:51:29+00:00">14.04.18, 10:51</time></span><div class='quote '>Ну лично я и то и другое использовал. </div></div><br>
Ну оч бегло глянул твой код ... упоминания о куках не заметил. А мне нужно, чтобы повторный визит (при наличии куков у юзера) сразу же выставлял последний выбранный язык. Как сделать, вернее где? <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-14T11:02:13+00:00">14.04.18, 11:02</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766583'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T10:57:37+00:00">14.04.18, 10:57</time></span><div class='quote '>И? Что сложного удалить просто язык из таблицы? Или просто пометить его как deleted =) Все связанные страницы тоже исчезнут. Так же и добавить новый язык можно запросто. </div></div><br>
<br>
Каки таблицы создавать-связывать? А при команде &quot;удаляй&quot; - правильно их чистить?]]></description>
        <author>JoeUser</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766583</guid>
        <pubDate>Sat, 14 Apr 2018 10:57:37 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766583</link>
        <description><![CDATA[Serafim: А ещё можно воспользоваться данными ссылками для получения менее субъективной инфы:<br>
1) Discord: <a class='tag-url' href='https://discord.gg/c8gJfed' target='_blank'>https://discord.gg/c8gJfed</a><br>
2) Telegram: <a class='tag-url' href='https://t.me/laravelrus' target='_blank'>https://t.me/laravelrus</a> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2018-04-14T10:59:19+00:00">14.04.18, 10:59</time></span></span><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766582'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T10:57:28+00:00">14.04.18, 10:57</time></span><div class='quote '>Тут вот какая штука ... Возможно биг-босс через пару месяцев скажет &quot;немецкий&quot; убирай, добавляй &quot;польский&quot; и &quot;китайксий упрощенный&quot;</div></div><br>
И? Что сложного удалить просто язык из таблицы? Или просто пометить его как deleted =) Все связанные страницы тоже исчезнут.<br>
<br>
Так же и добавить новый язык можно запросто.]]></description>
        <author>Serafim</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766582</guid>
        <pubDate>Sat, 14 Apr 2018 10:57:28 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766582</link>
        <description><![CDATA[JoeUser: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766581'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Serafim &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T10:51:29+00:00">14.04.18, 10:51</time></span><div class='quote '>Я бы через релейшн делал </div></div><br>
Тут вот какая штука ... Возможно биг-босс через пару месяцев скажет &quot;немецкий&quot; убирай, добавляй &quot;польский&quot; и &quot;китайксий упрощенный&quot;. Я пока мыслю категорями Друпала - там это искаропки. А вот тут что мутить? Городить подобное <a class='tag-url' href='https://www.drupal.org/project/cck' target='_blank'>ССК</a>?]]></description>
        <author>JoeUser</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766581</guid>
        <pubDate>Sat, 14 Apr 2018 10:51:29 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766581</link>
        <description><![CDATA[Serafim: Ну лично я и то и другое использовал. Т.е. в роутах просто прописан нужный префикс (в домене, типа ru.site.com или en.site.com), потом они в миддлваре уже маппятся на сущности в БД и регаются в DI:<br>
<a class='tag-url' href='https://github.com/railt/railt.org/blob/master/app/Http/Middleware/LanguageResolver.php#L60-L67' target='_blank'>https://github.com/railt/railt.org/blob/mas...ver.php#L60-L67</a> А в контроллере уже из DI выдираются: <a class='tag-url' href='https://github.com/railt/railt.org/blob/master/app/Http/Controllers/DocsController.php#L39' target='_blank'>https://github.com/railt/railt.org/blob/mas...troller.php#L39</a><br>
<br>
С другой стороны всё зависит от того что тебе надо в итоге получить :-? <br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=412441&view=findpost&p=3766561'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>JoeUser &#064; <time class="tag-quote__quoted-time" datetime="2018-04-14T05:26:29+00:00">14.04.18, 05:26</time></span><div class='quote '>Как посоветуете организовать хранение в БД мультиязычных материалов? Например различных новостей, событий, галлерей ... &amp; etc.</div></div><br>
Я бы через релейшн делал]]></description>
        <author>Serafim</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766561</guid>
        <pubDate>Sat, 14 Apr 2018 05:26:29 +0000</pubDate>
        <title>Мультиязычность в Laravel 5</title>
        <link>https://forum.sources.ru/index.php?showtopic=412441&amp;view=findpost&amp;p=3766561</link>
        <description><![CDATA[JoeUser: Приветствую&#33;<br>
<br>
Возникла необходимость склепать несколько сайтов небольшого размера. Начал читать доки по Laravel 5. Идеология вроде достаточна понятна. Решил начать с того, что хочу смастерить в самом начале шаблон мультиязычного сайта. <a class='tag-url' href='https://klisl.com/multilanguage_laravel.html' target='_blank'>Нашел статью</a> по этому вопросу. Прочитал - тоже все понятно. Но возникли вопросы по статье:<br>
<br>
1) Автор статьи решил использовать middleware-решение. В комментах ему посоветовали другой вариант - просто использовать локаль в маршрутах. А автор статьи, и комментирующий обозвали друг друга огородостроителями  :lol: Кто из них прав? Если оба неправы - то как правильно?<br>
<br>
2) Автор статьи в своем решении в некоторых местах парсит URL, потом его склеивает. А нельзя ли это решение упростить? А именно, прописывать в маршрутах URL без языка, до обработки брать текущую локаль из куков, и вставлять язык из куков или по умолчанию и отправлять на последующую обработку? Мне кажется, если получится избавиться от парсинга/склейки URL, то будет кода по-меньше. Ваше мнение?<br>
<br>
<strong class='tag-b'>И вопрос не по статье</strong><br>
<br>
Как посоветуете организовать хранение в БД мультиязычных материалов? Например различных новостей, событий, галлерей ... &amp; etc.]]></description>
        <author>JoeUser</author>
        <category>WWW - Готовые движки</category>
      </item>
	
      </channel>
      </rss>
	