Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Определения языка браузера и последующий редирект -  Согласно языку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Kiriil1.Adv
Отправлено: 19 Августа, 2020 - 14:47:29
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2020  


Помог: 0 раз(а)




Всем, доброго дня

Подскажите пожалуйста рабочий пример, для "Определения языка браузера и последующий редирект на русскоязычную версию сайта для русской версия браузера, английский язык во всех других случаях",

Сам перечитал тону мануалов, но рабочей версии не нашёл. Например, в режиме инкогнито google chrome на MacOS всегда показывает английский язык, а Safari русский

Вот например при заходе на сайт www[dot]minecraft[dot]net если у меня операционнка на русском языке во всех браузера, а также в инкогнито режимах перекидывает на русскоязычную версию сайта, как это реализовано?


Заранее спасибо
 
 Top
Kiriil1.Adv
Отправлено: 20 Августа, 2020 - 19:33:25
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2020  


Помог: 0 раз(а)




в index.php в начало страницы вставил
----------------
<?php

preg_match('/^\w{2}/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $m);
switch (strtolower($m[0])) {
case 'ru': header('Location: /ru/index.php'); break;
}

...
...
...

----------------

index.php - сайт на английском (по  умолчанию)
/ru/index.php - русская версия

Соответсвенно:
1) если у пользователя в браузере любая локаль(кроме русской) - index.php продолжает дальше програжаться
2) если у пользователя в браузере русская локаль index.php делает редирект на /ru/index.php
 
 Top
Vladimir Kheifets
Отправлено: 21 Августа, 2020 - 10:45:15
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 879
Дата рег-ции: Март 2017  
Откуда: Германия, Бавария


Помог: 37 раз(а)




Kiriil1.Adv пишет:
в index.php в начало страницы вставил
----------------
<?php

preg_match('/^\w{2}/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $m);
switch (strtolower($m[0])) {
case 'ru': header('Location: /ru/index.php'); break;
}

...
...
...

----------------

index.php - сайт на английском (по  умолчанию)
/ru/index.php - русская версия

Соответсвенно:
1) если у пользователя в браузере любая локаль(кроме русской) - index.php продолжает дальше програжаться
2) если у пользователя в браузере русская локаль index.php делает редирект на /ru/index.php

Добрый день!
1. Советую Вам добавить возможность выбора языка иначе, если у пользователя
в браузере любая локаль(кроме русской), он русскую версию не сможет открыть.

2. Вы можете избавится от редиректа и переписывания кодов на разных языках
(например, index.php на русском и index.php на английском), а вместо этого оставить
один index.php, заменив в нём тексты на переменные, выбираемые для выбранного
языка из БД или из файлов.

3.Если на сайте предусматривется авторизация пользователя, до желательно
предусмотреть в профили позиции для ввода языка и страны.
Тогда после авторизации можно автоматически переключать язык.

4.Вы можете использовать куки для сохранения выбранного языка и/или идентификатора
пользователя. Это также можно применить для автоматической авторизации
и переключения языка(не в режиме инкогнито).

Удачи!

(Отредактировано автором: 21 Августа, 2020 - 10:45:36)

 
 Top
Kiriil1.Adv
Отправлено: 21 Августа, 2020 - 11:31:21
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2020  


Помог: 0 раз(а)




Vladimir Kheifets пишет:
Kiriil1.Adv пишет:
в index.php в начало страницы вставил
----------------
<?php

preg_match('/^\w{2}/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $m);
switch (strtolower($m[0])) {
case 'ru': header('Location: /ru/index.php'); break;
}

...
...
...

----------------

index.php - сайт на английском (по  умолчанию)
/ru/index.php - русская версия

Соответсвенно:
1) если у пользователя в браузере любая локаль(кроме русской) - index.php продолжает дальше програжаться
2) если у пользователя в браузере русская локаль index.php делает редирект на /ru/index.php

Добрый день!
1. Советую Вам добавить возможность выбора языка иначе, если у пользователя
в браузере любая локаль(кроме русской), он русскую версию не сможет открыть.

2. Вы можете избавится от редиректа и переписывания кодов на разных языках
(например, index.php на русском и index.php на английском), а вместо этого оставить
один index.php, заменив в нём тексты на переменные, выбираемые для выбранного
языка из БД или из файлов.

3.Если на сайте предусматривется авторизация пользователя, до желательно
предусмотреть в профили позиции для ввода языка и страны.
Тогда после авторизации можно автоматически переключать язык.

4.Вы можете использовать куки для сохранения выбранного языка и/или идентификатора
пользователя. Это также можно применить для автоматической авторизации
и переключения языка(не в режиме инкогнито).

Удачи!



Стократно Благодарю, спасибо
 
 Top
LIME
Отправлено: 21 Августа, 2020 - 15:30:35
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




2. для публичных страниц все же лучше редирект для лучшей поисковой оптимизации
Не то чтобы это противоречит остальным пунктам, но язык лучше зафиксировать в урле/поддомене дополнительно, не в куке.
 
 Top
LIME
Отправлено: 21 Августа, 2020 - 18:08:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




.

(Отредактировано автором: 21 Августа, 2020 - 18:09:29)

 
 Top
Kiriil1.Adv
Отправлено: 24 Августа, 2020 - 13:07:25
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2020  


Помог: 0 раз(а)




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




Вот структура сайта (соответственно на каждой странице сайта будет возможность выбора языка принудительно, и ссылки будут переходить, согласно структуре сайта - ниже)
-----------------------


мойдомен.ru
|
index.php (содержит только на редирект (блок кода - 1 смотри внизу))
|
|\
мойдомен.ru/eng/index.php (и получаеться все обращания к страницам бцдцт в рамках префикса /eng/)
|
|
|\
мойдомен.ru/rus/index.php (и получаеться все обращания к страницам бцдцт в рамках префикса /rus/)




(блок кода - 1)
-------------------------------- -
preg_match('/^\w{2}/', $_SERVER['HTTP_ACCEPT_LANGUAGE'], $m);
switch (strtolower($m[0])) {
case 'ru': header('Location: /rus/index.php'); break;
default: header('Location: /eng/index.php'); break;
}

(Отредактировано автором: 24 Августа, 2020 - 13:08:56)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB