За последние 24 часа нас посетили 17128 программистов и 1725 роботов. Сейчас ищут 1990 программистов ...

Автоматический выбор языковой верси сайта на PHP

Тема в разделе "Сделайте за меня", создана пользователем Холмс, 18 авг 2015.

  1. Холмс

    Холмс Новичок

    С нами с:
    18 авг 2015
    Сообщения:
    1
    Симпатии:
    0
    Есть сайт на Wordpress и 2 языка UA и RU. Локализация сделана путем создания копии сайта в нужном языке на поддомене типа ru.mydomain.com

    Задача.
    - Запоминать выбор локализации пользователем для дальнейшей загрузки нужной ему локализации.
    или
    - Определить язык браузера и выводить нужную локаль зависимо от этого

    Я нашел варианты решения: http://stackoverflow.com/questions/6038236/http-accept-language

    пример кода (найденный в свободном доступе. Автор кода - PHP Программист [XyZ])
    Код (PHP):
    1. // действие с проверкой языка и установкой куки языка проводим только на странице index.php
    2. if (strpos($_SERVER["REQUEST_URI"], "/index.php") or (substr($_SERVER["REQUEST_URI"], -1)  == "/")) {
    3.  
    4. // если вход произведен без указания языка
    5. if (!$_GET['lang']) {
    6.  
    7.     // то проверяем, может язык указан в куках, если нет, то то смотрим локализацию браузера
    8.     if (!$_COOKIE['lang']) {
    9.  
    10.         $b_lang = explode(",", $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    11.  
    12.         // если локализация русская или украинская или белорусская, то считаем, что пользователю необходимо отдавать русскую версию сайта.
    13.         if (($b_lang[0] == "ru") or ($b_lang[0] == "be") or ($b_lang[0] == "ru-UA")) $lang = "rus";
    14.  
    15.         // при всех остальных локализациях отдаем английскую версию
    16.         else $lang = "eng";
    17.  
    18.     }
    19.  
    20.     // если язык уже указан в куках, то его и используем в системе
    21.     else $lang = $_COOKIE['lang'];
    22. }
    23.  
    24. // если страница запрошена с указанием языка, то этот язык и используем в системе, и запоминаем его в куку
    25. else {
    26.     $lang = $_GET['lang'];
    27.     setcookie("lang", $lang, time()+30758400, "/");
    28. }
    29.  
    30. } 
    Суть работы предложеных вариантов понял. Но к сожалению не знаком с php (только очень поверхностно) и не знаю как написать саму так сказать "механику" подгрузки нужной локали.

    я понимаю что далее нужно работать со значением переменной $lang и делать редирект на нужную версию. Хороший человек подсказал возможное решение типа:
    Код (PHP):
    1. header('Location: http://'. if ($lang = 'ru') {echo "ru.";} .'mydomain.com'); 
    но так как я не знаком с php, то грамотно или дале не грамотно все это написать я не смогу к сожалению. По этому буду рад помощи знаючих людей.

    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]