Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/63: Рейтинг темы: голосов - 63, средняя оценка - 4.76
2 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 98

Определение языка пользователя

06.09.2013, 00:38. Показов 11826. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нашел тут скрипт:
Кликните здесь для просмотра всего текста
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// функция определения языка пользователя на javascript
function LanguageInfo(){
  var n = navigator;
  this.UALanguage = n.language ? n.language : n.browserLanguage ? n.browserLanguage : null;
  this.userLanguage = n.userLanguage ? n.userLanguage : n.systemLanguage ? systemLanguage : null;
}
 
function getCookie(c_name)
{
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++)
{
  x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
  y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
  x=x.replace(/^\s+|\s+$/g,"");
  if (x==c_name)
  {
  return unescape(y);
  }
  }
}
 
var oLanguage = new LanguageInfo();
var at_en=getCookie('at_en');
if((oLanguage.userLanguage == "ru" || oLanguage.UALanguage == "ru") || at_en==1) {
}
else {
  location.href="/en/";
}



Или вот еще:

Кликните здесь для просмотра всего текста
JavaScript
1
2
var lang = (navigator.language || navigator.systemLanguage || navigator.userLanguage).substr(0, 2).toLowerCase();
if (lang != 'ru') location.href="http://www.sitename.ru/page";


Во втором коде вроде понятнее, но все равно вопрос с корректной работой. В данный двух примерах требовалось определение языка, если английский, то автоматический редирект на английскую версию. У меня немного другой случай. Сайт на английском и немецком, немецкий преимущественно, потому что в Германии. Нужно чтобы английская версия включалась не только если это язык определяется у пользователя, а чтобы он включался при определении любого языка кроме немецкого. Будет ли какой-то из этих примеров в данном случае нормально работать? Пример: заходит человек говорящий только по-болгарски или французски - неважно. Автоматом должен идти редирект на английский (делать сайт на всех языках я естественно не собираюсь).
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.09.2013, 00:38
Ответы с готовыми решениями:

Определение IP пользователя в JS
подскажите, как можно определить ip пользователя в JS

Определение браузера пользователя
Подскажите, а возможно ли указать в коде чтоб если открываешь через хром то запускалось видео №1, если открываешь через яндекс запускалось...

Определение устройства пользователя: мобильное/ПК
Как на JavaScript написать код для проверки с какого устройства зашел пользователь на сайт с мобильного или с ПК?

4
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
06.09.2013, 01:55
объект navigator - это браузер
свойство navigator.language вернёт языковую версию браузера (т.е. на каком языке написано слово "Файл" в главном меню браузера)

как вы, основываясь на этом, определите родной язык пользователя?
у меня, к примеру, дома установлено 5 (пять) браузеров
из них английская версия - у трёх (MSIE, Safari, Opera)
русская - у двух (FireFox и Chrome)

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

в общем, не майтесь дурью и сделайте так, как делают все: на своей странице установите выбор языка пользователем и его выбор запоминайте в куках, чтобы в следующий раз показывать ему страницы сайта на ранее выбранном языке
например, как здесь в правом верхнем углу или как здесь, когда выбор языка прямо в центре
-----------------

в браузере MSIE возможно определить не только языковую версию браузера, но и выбранный по умолчанию язык системы и текущий выбранный язык...
но вы же, во-первых, не только на MSIE ориентироваться будете, так ведь
а, во-вторых, у меня по умолчанию строит EN и на RU я переключаю лишь когда что-то пишу... а просматриваю я с EN... так и кто я - русский или англичанин?
0
2 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 98
06.09.2013, 02:23  [ТС]
kalabuni а разве остальные браузеры не поддерживают передачу таких данных? Я думал через любой из них можно дать понять скрипту, какой язык используется в операционной системе.
Я и на php видел решения, но я его не использую, да и не знаком особо. Там народ вроде говорил что для любого браузера пойдет.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
06.09.2013, 03:08
1. да, все другие браузеры этой фигнёй не занимаются
только в MSIE есть выход на операционную систему

2. когда вы в браузере указываете какой-то URL в адресной строке и жмёте на Enter, вы таким образом посылаете серверу так называемый HTTP-запрос
этот запрос содержит в себе некоторые так называемые "переменные окружения"
с помощью серверных языков эти "переменные окружения" можно из HTTP-запроса "вытащить" и обработать

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

ещё раз - не майтесь дурью
------------

в серьёзных системах типа Гугля с помощью сервера определяют геолокацию (т.е. страну, из которой идёт запрос) - это делается через переменную REMOTE_ADDR (IP пользователя)
и существует список - в какой стране какой язык
пользователю выбрасывается либо google.ru (если он из России) или google.ch (если он, к примеру, из Чехии)... но по-любому пользователю предоставляют возможность выбрать язык самому и его выбор запоминают
1
2 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 98
06.09.2013, 03:14  [ТС]
Спасибо, не буду тогда возиться. Придется как-то впихивать выбор языка на страницу...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.09.2013, 03:14
Помогаю со студенческими работами здесь

Определение языка пользователя
При выборе языка вручную либо при переходе по ссылке site.com/ru site.com/ua итд, это игнорируется и используется язык браузера. Как...

Определение языка
Извиняюсь если написал не в той ветке форума, просто даже не знаю где начать тему. Помогите определить язык. 1 скрин это 1 язык, 2 и 3...

Определение языка
Как сделать чтобы программа определяла язык введённого предложения например? Так как это сделано в Google Translate.

Определение языка
Добрый вечер! Подскажите пожалуйста вот такую вещь: Прогуглил море страницы про то как определить на каком языке говорит...

Определение выбранного языка
Подскажите как определить какой язык системы выбран в данный момент


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru