Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Автоматический выбор языка и переадресация в файл

Автор вопроса: ScienceNoobОтветов: 4

Я хотел бы автоматический выбор языка в моем index.php. Когда пользователь из Колумбии, он перенаправляется на index_columbia.html, а из других стран - на index_english.html.

Как я могу сделать это с помощью PHP?

phpselectioncountry

Ответы

Ответ 1 · Vivek Sadh

Информация о языке, отправляемая браузером, находится в зарезервированных на сервере переменных. Ну, это решение основано не на местоположении посетителя, а на языковых настройках браузера, которые кажутся лучше. Если не имеет значения, из Колумбии или Франции посетитель, если он использует английский как язык, лучше показать ему англоязычную версию веб-сайта.

Вы можете использовать $_SERVER['HTTP_ACCEPT_LANGUAGE'] следующим образом: -

<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
    case "fr":

        include("index_fr.php");
        break;
    case "it":

        include("index_it.php");
        break;
    case "en":

        include("index_en.php");
        break;
    default:

        include("index_en.php");
        break;
}
?>

Ответ 2 · Fracsi

Проверить можно по IP-адресу (для этого есть веб-сервисы). например: http://freegeoip.net/

Также вы можете использовать заголовок accept-language, отправленный браузером. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4 Это можно получить из переменной $_SERVER.

Ответ 3 · james_tookey

Вы можете использовать поиск страны по IP-адресу.

Класс, который делает это, можно найти по адресу http://www.phpandstuff.com/articles/geoip-country-lookup-with-php.

Ответ 4 · Michael Walter

Вы можете использовать мой код:

$langs = array('en','fr','de');
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
if (!in_array($lang, array_keys($langs))) $forward = 'index_'.$lang.'.html';
else $forward = 'index_en.html';

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы