Laravel по-русски

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

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

#2 Laravel 6/7/8/9/10 » Перемещение файла из разных дисков » 13.10.2020 11:21:34

ShutTap
Ответов: 1

Здравствуйте.
Нужно переместить файл из одной папки в другую, однако первая папка недоступна через домен, только фтп, а вторая папка - общедоступная.
Соответственно, в filesystems.php стандартный диск public с storage_path('app/public') и нужная мне папка secret с 'root' => base_path().'/secret'

Как переместить файл из secret в public?

Так же вопрос, как получить не все подкаталоги в каталоге, а только первые 10? Кроме как allDirectories() и foreach до 10 не могу найти решений, но скрипт не успевает отработать (очень долго), когда подкаталогов несколько тысяч

#4 Re: Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 05.04.2020 14:45:24

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

#5 Re: Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 05.04.2020 12:25:34

решилось созданием шаблона редактирования страниц в voyager

#6 Re: Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 04.04.2020 20:39:57

И ещё вопрос, установил админку voyager, там есть готовые таблицы под страницы и посты. В постах всё ок с языками, а в страницах некоторые поля почему-то не переводятся, имеют одно значение для всех языков. Как добавить этим полям другие языки?

#7 Re: Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 02.04.2020 16:23:49

Написал функцию подстановки языка в урл, которая разбивает необходимый урл по "/", проверяет первый кусок адреса, входит ли он в список языков,  и подставляет на первое место необходимый язык (или пустое, если язык по-умолчанию).
Так всё как бы работает, но некрасиво, есть ли встроенный функционал?

#8 Re: Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 01.04.2020 19:01:24

И второй вопрос, как потом формировать урлы с учетом выбранного языка?
И урлы на смену языка на текущей странице (чтобы на смене языка на странице site.ru/en/page на русский была ссылка site.ru/page)

#9 Re: Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 01.04.2020 18:44:33

сделал так, оно даже работает:

в middleware

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\URL;
use App;

class Localization
{
	public static $mainLanguage = 'en';
	public static $languages = ['en', 'ru'];
	
	public function handle($request, Closure $next)
	{
		$language = self::getLang();
		App::setLocale($language ?: self::$mainLanguage);
		return $next($request);
	}
	
	public static function getLang()
	{
		$language = explode('/', URL::getRequest()->server()['REQUEST_URI']);
		$language = current(array_diff($language, [null, ""]));
		if(in_array($language, self::$languages)){
			return $language;
		}else{
			return '';
		}
	}
}

в роутах

Route::group(['prefix' => App\Http\Middleware\Localization::getLang()], function(){
...
}

но совершенно не изящно и как-то костыльно... Laravel же не такой. Как правильно и красиво?

#10 Laravel 6/7/8/9/10 » Мультиязычный сайт, язык не по-умолчанию в url » 01.04.2020 18:40:17

ShutTap
Ответов: 7

Здравствуйте.
Начал копаться в laravel, и не совсем понимаю, как сделать мультиязычный сайт. Точнее, смену языка при указании языка в url:
site.ru/page - язык по-умолчанию, например ru
site.ru/en/page - выбранный язык en
Как это осуществить?
Гугл выдает либо через куки/сессию, либо для старых версий laravel, и сейчас вроде уже не работает...

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