Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Языковая версия в зависимости от языка браузера


Recommended Posts

Добрый день! На сайте несколько языков, можно настроить как-то, чтобы человек к примеру с украинским языком, попадал на украинскую версию, с русским - на русскую ? Спасибо!

Надіслати
Поділитися на інших сайтах


if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && $request->server['HTTP_ACCEPT_LANGUAGE']) { 
	$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);
	
	foreach ($browser_languages as $browser_language) {
		foreach ($languages as $key => $value) {
			if ($value['status']) {
				$locale = explode(',', $value['locale']);

				if (in_array($browser_language, $locale)) {
					$detect = $key;
				}
			}
		}
	}
}

По идее OC так и должен делать

 

Вот моя строка

ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3

вот чужая

ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4,uk;q=0.2

 

т.е. Если разбить на элементы массива, то получим, например

ru-RU,

ru;q=0.8

en-US;q=0.6

en;q=0.4

uk;q=0.2

 

И никак не получаем

true в строке

if (in_array($browser_language, $locale)) {

 

потому что, имеем например следующую строку в локале

ru_RU.UTF-8,ru_RU,russian

 

поэтому нужно или в поле кодировки добавить, например ru-RU

 

Хорош ли этот способ для SEO сложно сказать, потому что нужно смотреть и заголовки от роботов

Не имея языкового префикса - автоматическое переключение может быть вредным.

Змінено користувачем chukcha
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.