За последние 24 часа нас посетили 63579 программистов и 1743 робота. Сейчас ищут 1348 программистов ...

Как лучше сделать несколько языков?

Тема в разделе "PHP для новичков", создана пользователем event, 14 мар 2016.

  1. event

    event Новичок

    С нами с:
    10 фев 2015
    Сообщения:
    8
    Симпатии:
    0
    Пишу самописный движок одного сайта.

    Есть задача сделать несколько языков на сайте, но не хочу плодить нам нем папки:

    /ru
    /en
    /pl

    и влаживать в каждую папку все файлы заново.

    Все данные берутся из БД. Конечно уже создал массив с фразами для каждого языка. Но проблема в том что нужно сделать ссылки по типу как вверху, но не плодить кучи папок.

    Как можно это сделать? Может как-то в htaccess по типу сделать, если есть get параметр ?lang=ru то редирект на ту же ссылку только подставляем папку ru или если ?lang=en то редиректим на папку en?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и не нужно плодить папки. язык это просто переменная. слэш-ру это просто виртуальный каталог. совсем не обязательно класть в него какие-то файлы. ещё можно на поддомене разместить - ру.что-тотам.ком - тоже не обязательно виртуальный хост создавать. всё сводится к тому что ты потом внутри пхп-программы смотришь на значение некоторой переменной.
     
  3. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    как вариант, можно сохранять в $_SESSION['lang'].
     
  4. event

    event Новичок

    С нами с:
    10 фев 2015
    Сообщения:
    8
    Симпатии:
    0
    Всю систему я уже сделал. Меня интересует как по доменах site.com/ru и site.com/en открывать нужную мне языковую версию сайта.
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    TeslaFeo, это "предпочтительный" язык. отдельная, но не самая главная часть реализации.
     
  6. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    event, смотри как это сделала в других CMS.
     
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    это ответ на 90% топиков форума ))

    бот с грибком был отправлен в лепрозорий
       — модераторъ
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Тут несколько задач, которые ты по неопытности слепил вместе:
    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