Як визначити мову браузера?

Розширення для створення багатомовного сайту на базі сторонніх розширень.
Goldie
Користувач
Користувач
Повідомлень: 1
З нами з: 05 січня 2014, 12:35

Як визначити мову браузера?

Повідомлення Goldie » 10 листопада 2007, 22:23

Потрібно автоматично визначати мову браузера і грузити сайт відповідної мови.
Хтось таке рабов?

Дякую

mavik
Користувач
Користувач
Повідомлень: 7
З нами з: 23 жовтня 2007, 12:34

Re: Як визначити мову браузера?

Повідомлення mavik » 11 листопада 2007, 13:11

Ця інформація міститься в $_SERVER["HTTP_ACCEPT_LANGUAGE"]
Аватар користувача
Dutch
Адміністратор
Адміністратор
Повідомлень: 1166
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ
Дякував (ла): 2 рази
Подякували: 12 рази
Контактна інформація:

Re: Як визначити мову браузера?

Повідомлення Dutch » 11 листопада 2007, 15:24

mavik писав:Ця інформація міститься в $_SERVER["HTTP_ACCEPT_LANGUAGE"]
Доречі, а як на рівні htaccess можна визначити мову та скерувати на потрібну версію?
Тобто людина зайшла з Британії і відкрилась англійська версія, інша - з Мексики і відкрилась іспанська версія сайту.
mavik
Користувач
Користувач
Повідомлень: 7
З нами з: 23 жовтня 2007, 12:34

Re: Як визначити мову браузера?

Повідомлення mavik » 12 листопада 2007, 02:04

В Joom!Fish включити автоматичне розпізнавання мови можна в налаштуваннях мамботу Multi lingual abstraction layer bot.

В .thaccess це можна зробити за допомогою:
RewriteEngine On
RewriteCond %{HTTP:Accept-Language} .*en(;|,).*
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*) eng/index.php

Це буде перенапраляти з кореня в eng/index.php користувачів, в яких вказана англійська мова.
Аватар користувача
Dutch
Адміністратор
Адміністратор
Повідомлень: 1166
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ
Дякував (ла): 2 рази
Подякували: 12 рази
Контактна інформація:

Re: Як визначити мову браузера?

Повідомлення Dutch » 12 листопада 2007, 04:43

А які ще є варіанти?
Даний приклад не пішов на серваку :(

І ще питання такого плану:
Є 2-4 мови, які хотілось би перенаправляти на мовні версії, але якщо на приклад немає із перечислених мов, то за замовчуванням повинна вантажитись головна сторінка.
Як це можна реалізувати на htaccess?

mavik
Користувач
Користувач
Повідомлень: 7
З нами з: 23 жовтня 2007, 12:34

Re: Як визначити мову браузера?

Повідомлення mavik » 12 листопада 2007, 12:04

Dutch писав:А які ще є варіанти?
Даний приклад не пішов на серваку :(
Як саме не пішов? Ніякої реакції, чи видало внутрішню помилку сервера?
Якщо помилка сервера, то немає модуля RewriteEngine.
Ще длл цього можна використати модуль багатомовності Апача, якщо він встановлений на вашому сервері:

AddLanguage en .en
AddLanguage en-gb .en
AddLanguage en-us .en
AddLanguage ru .ru
DefaultLanguage ru
LanguagePriority ru en

Файли повинні називатися .html.ru, .html.en
Аватар користувача
Dutch
Адміністратор
Адміністратор
Повідомлень: 1166
З нами з: 28 жовтня 2006, 18:49
Звідки: Київ
Дякував (ла): 2 рази
Подякували: 12 рази
Контактна інформація:

Re: Як визначити мову браузера?

Повідомлення Dutch » 12 листопада 2007, 13:41

Ну реакція є, але не така як потрібно, тобто не перемикається на потрібні посилання.
Вписав так:

Код: Виділити все

RewriteEngine On
RewriteCond %{HTTP:Accept-Language} .*en(;|,).*
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*) eng/index.php

RewriteCond %{HTTP:Accept-Language} .*ru(;|,).*
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*) ru/index.php

RewriteCond %{HTTP:Accept-Language} .*uk(;|,).*
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*) ua/index.php
Доволі дивно веде себе з англійською. Переглядав через сафарі та англомовний ІЕ7.

А якщо написати так:

Код: Виділити все

AddLanguage en /en/index.php
AddLanguage en-gb /en/index.php
AddLanguage en-us /en/index.php
AddLanguage ru /ru/index.php
DefaultLanguage ru
LanguagePriority ru en
??
mavik
Користувач
Користувач
Повідомлень: 7
З нами з: 23 жовтня 2007, 12:34

Re: Як визначити мову браузера?

Повідомлення mavik » 12 листопада 2007, 14:07

З RewriteEngine умови заміни запиту RewriteCond і правило заміни RewriteRule вам, можливо, доведеться скоректувати у відповідності з вашими задачами. Те, що я дав, я колись писав для того, щоб при заході в корінь домену, користувач перенаправлявся в папку з потрібною мовною версією. Далі він може вибрати іншу версію.

AddLanguage вказує додаткове розширення для мовних версій файлу. Оригінальне розширення може бути будь-яким, в тому числі php, всередині php-файлів ви можете прописати перенаправлення в потрібне місце.

Повернутись до “Багатомовність”

Хто зараз онлайн

Зараз переглядають цей форум: 0 і 0 гостей