Пишу самописный движок одного сайта. Есть задача сделать несколько языков на сайте, но не хочу плодить нам нем папки: /ru /en /pl и влаживать в каждую папку все файлы заново. Все данные берутся из БД. Конечно уже создал массив с фразами для каждого языка. Но проблема в том что нужно сделать ссылки по типу как вверху, но не плодить кучи папок. Как можно это сделать? Может как-то в htaccess по типу сделать, если есть get параметр ?lang=ru то редирект на ту же ссылку только подставляем папку ru или если ?lang=en то редиректим на папку en?
и не нужно плодить папки. язык это просто переменная. слэш-ру это просто виртуальный каталог. совсем не обязательно класть в него какие-то файлы. ещё можно на поддомене разместить - ру.что-тотам.ком - тоже не обязательно виртуальный хост создавать. всё сводится к тому что ты потом внутри пхп-программы смотришь на значение некоторой переменной.
Всю систему я уже сделал. Меня интересует как по доменах site.com/ru и site.com/en открывать нужную мне языковую версию сайта.
Тут несколько задач, которые ты по неопытности слепил вместе: 1. выбор предпочтительного языка интерфейса, то есть менюшек и сообщений. возможно автоопределение по Accept-language. 2. перевод текста в интерфейсных элементах на выбранный язык (локализация) 3. разные версии страниц (то есть контента) для разных языков. Только в третьей задаче имеет смысл организовывать "папки для языков". А "?lang=ru" и "массив с фразами" относятся к задачам 1 и 2. Не путай язык интерфейса и контента! URL должен выводить на определённый ресурс, независимо от языка пользователя. И никаких нафиг редиректов. Контент не надо переводить ни через какие массивы фраз. Он просто есть вот такой и точка. Кому захочется перевести, пусть сам натравит электронный переводчик. Всё обсуждалось 100500 раз на форуме. Лень себя цитировать, дам ссылки: https://php.ru/forum/viewtopic.php?t=51134#p407110 https://php.ru/forum/viewtopic.php?t=42313#p339320 https://php.ru/forum/viewtopic.php?t=51855#p414898