Форум сетевых администраторов
Показаны 6 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- две версии сайта: rus & eng (http://netadmin.ws/forum/showthread.php?threadid=4261)


Помещено Pehota 07-02-2003 в 12:01:

две версии сайта: rus & eng

Очень нужен совет: Каким образом наилучшим способом разделять рус-говорящую аудиторию и забугорную (т.е. организовать двухязыковую версию сайта)? Есть ли у кого-нибудь опыт в этом деле или почитать об этом есть где-нибудь?

Вариант 1:

На первой странице предлагать выбрать язык версии сайта. При определении рус. языка в браузере автомалом отправлять на рус. версию.


Вариант 2:

Выяснить диапазон IP-адресов приходящихся на ex-USSR и в зависимости от этого направлять на опред. языковую версию. Ð_то реально? Если да, то как насчет скорости?

Вариант 3:

Идеи иссякли...


Помещено blacki 07-02-2003 в 13:40:

1. Вполне можно если ты имеешь ввиду определять системный язык.
2. Ð_азбор по IP, сделать можно, но это не практично, так как в ex-USSR некоторым уже английский ближе чем русский.

Опираясь на свой опыт могу посоветовать, наименьшие раздражение у пользователей вызовет такой подход:
- на первой и всех остальных страницах кнопки выбора языка (доходчевей всего флаги стран с текстом на данном языке)
- записываешь в куки, или если есть на то желание в базу, язык страницы, скоторой он работал последний раз
- приследующем заходе отправляешь его в эту языковую часть сайта.

__________________
Национальность - русский, вероисповедание - программист.


Помещено Gyrus 09-02-2003 в 01:08:

ИМХО blacki прав самый хороший вариант этот. Кстати, может у кого-нибудь есть что-то подобное уже в готовом виде на пхп?

__________________
Всё в наших руках.


Помещено polo 09-02-2003 в 12:10:

Ð_то я делал в одной из моих программ.

PHP:


$avallangs 
= array(
                   
'en' => 'english',

                   
'ru' => 'russian'
                   
);
$defaultlang = 'english';

//define user language
if (@!isset($HTTP_COOKIE_VARS['language'])) {
    
    if (isset(
$avallangs[$HTTP_ACCEPT_LANGUAGE])) {
        
$userlang = $avallangs[$HTTP_ACCEPT_LANGUAGE];
    }
}

elseif (@
$HTTP_POST_VARS['language'] OR @$HTTP_GET_VARS['language']) {
    
$userneedlang = (@$HTTP_GET_VARS['language']) ? $HTTP_GET_VARS['language'] : $HTTP_POST_VARS['language'];
    if (
in_array($userneedlang, $avallangs)) {
         
$userlang = $userneedlang;
        }
}

elseif (isset(
$HTTP_COOKIE_VARS['language'])) {
    
$userlang = $HTTP_COOKIE_VARS['language'];

}

if (!isset(
$userlang)) {
    
    
$userlang = $defaultlang;
}

setcookie('language', $userlang, time()+864000, '/');

if (!isset(
$HTTP_GET_VARS['language'])) {
   if (isset(
$HTTP_COOKIE_VARS['language']) AND !isset($HTTP_POST_VARS['language'])) {

    
$userlang = $HTTP_COOKIE_VARS['language'];
    
   }
}
$langpatch = "$docroot/language/$userlang";

require_once(
"$langpatch/global.lang");

// _END_ define user language

__________________
Всегда есть решение.


Помещено Pehota 09-02-2003 в 12:30:

Однако, спасибо.


Помещено Gyrus 09-02-2003 в 23:37:

Спасибо за код POLO!

__________________
Всё в наших руках.


Формат времени GMT. Текущее время 19:37.
Показаны 6 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.