Как грамотно организовать переключения языков на мультиязычном сайте?

Тема в разделе "PHP", создана пользователем Albert22, 17 апр 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Всем привет
    Сайт пашет на самописном движке.
    Языки лежат в массивах в отдельных php файлах.
    Подскажите, как оптимальнее организовать их переключение?
    Через поддомены (rus.site.com & eng.site.com) или например директории (site.com/rus & site.com/eng)?
     
  2. best

    best

    Регистр.:
    12 апр 2006
    Сообщения:
    246
    Симпатии:
    54
    Смотря с какой стороны смотреть. Если тебя волнует тиц, то лучше в дерикториях, если нет - то поддоменами. А по удобности - одного поле ягода.
     
  3. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Мне насрать на тиц, я не дрочу на рейтинг до посинения. Мне тоже кажется что удобней поддоменами.
    Теоретически догадываюсь что необходимо организовать зеркало, являющееся поддоменом. И в теле скрипта отлавливать strpos($_SERVER[HTTP_HOST], 'eng') например и в зависимости от этого подгружать языковой файл.
    Но уточните пожалуйста, как это реализовать?
     
  4. swer

    swer

    Регистр.:
    15 июн 2008
    Сообщения:
    305
    Симпатии:
    38
    Какая у вас CMS или самопис...во всех смс в файле (в зависимости от смс) условия,если язык задан то он подгружает его,если нет то по умолчанию,вам надо лишь дописать это....а если самопис то думаю вам и не сложно разобратся с этим.
    пс это намногее удобно чем делат какие то разделы или поддомены...
     
  5. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Самопис у меня, самопис...
    Подгрузить язык для меня не проблема.
    Я затрудняюсь грамотно передать его параметром.
     
  6. myweb

    myweb Среда обитания WEB

    Регистр.:
    10 сен 2007
    Сообщения:
    539
    Симпатии:
    246
    Если сайт с ЧПУ то будут грабли, если без то проблем не будет. И сайт можно было указать.
     
  7. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Я ж вот почему и пишу :)
    Там чпу больше чем школьников Вконтакте.
    Пока что реализовал так:
    Код:
    if(!empty($_GET['lang'])){
    unset($_GET['lang']);
    $queryString='';
    foreach($_GET as $key=>$val){
    $queryString.=$key.'='.$val.'&';
    }}
    print '<a href="'.$_SERVER[PHP_SELF].'?'.$queryString.'lang=eng">en</a><a href="'.$_SERVER[PHP_SELF].'?'.$queryString.'lang=rus">ru</a>
    
     
  8. hib

    hib Постоялец

    Регистр.:
    4 окт 2007
    Сообщения:
    86
    Симпатии:
    17
    А нет ли желания сделать интернационализацию в зависимости от локали браузера посетителя?
     
  9. swer

    swer

    Регистр.:
    15 июн 2008
    Сообщения:
    305
    Симпатии:
    38
    + и что бы не проверят каждый раз-прописать в куки...
     
  10. Albert22

    Albert22

    Регистр.:
    30 мар 2008
    Сообщения:
    270
    Симпатии:
    10
    Реализована уже. Расположена в коде выше, в цитату не попала.
    Если в сессии и в строке запроса язык не указан, то он берётся из стрпоса к ACCEPT_LANGUAGE. Делать жёсткую привязку к этой переменной, думаю, не стоит. как минимум потому, что ФФ под убунтой например (хоть и русифицированной) о русском языке умалчивает. И гугл, контакт и пр. сайты мне по умолчанию открывались на английском. К этой переменной стоит прислушаться только в том случае, если пользователь самостоятельно не выбрал язык.
     
Статус темы:
Закрыта.