Отправляет email-рассылки с помощью сервиса Sendsay

[TC] JavaScript: получить язык/локаль клиента

Vande omentaina, Tiflocomp!
Народ, нашёл я тут функцию получения языка клиента. Однако парсер
ругается, что "ожидается объект" на строке, где объявляется
переменная.
Вот файлик:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
<script type="text/javascript" src="lib/jquery.js">
<script type="text/javascript">
<!--
function getBrowserLang () {
if (navigator.language) return navigator.language;
if (navigator.browserLanguage) return navigator.browserLanguage;
}

</script>
</head>
<body>
<script>
var lng=getBrowserLang();
document.write (lng);
</script>

В чём тут дело?
Спасибо!

Ответить   "Anarendil E. M. Elensule" Fri, 20 Nov 2009 19:56:20 +0200 (#943723)

 

Ответы:

Приветствую всех.
Андрей пишет:

В IE8 у navigator обнаруживаются лишь такие атрибуты:
.systemLanguage
.userLanguage

Успехов. Анатолий.

Ответить   "i_chay" Fri, 20 Nov 2009 22:42:42 +0400 (#943754)

 

Vande omentaina, i_chay!

И ничего...
Всё равно в строке с переменной осёл пишет
Object expected at line 19

Ответить   "Anarendil E. M. Elensule" Fri, 20 Nov 2009 21:04:44 +0200 (#943772)

 

Приветствую всех.
Андрей пишет:

Поправка: .browserLanguage тоже поддерживается (но не показывается при обходе).

1. У вас не закрыт первый тег script.

2. Возможно, вы путаете номера строк, т.к. у вас подгружается файл со скриптами
и его строки входят в общее количество строк.

А функция getBrowserLang() у меня отрабатывает, несмотря на анахранизмы типа
html-комментариев в теле тега SCRIPT .
Для корректности надо еще добавить возвращаемое значения на случай, если ни один
из атрибутов не будет существовать.

Успехов. Анатолий.

Ответить   "i_chay" Sat, 21 Nov 2009 00:01:12 +0400 (#943802)

 

Vande omentaina, i_chay!
Вот! Первый тег скрипт был не закрыт!
А почему html-комменты - архаизм? Лучше их не использовать?
Но это лирика... а проза жизни в другом: определил я язык, а что с ним
делать, не знаю. В идеале мне бы надо проинклюдить конкретный php-файл
(точнее, .lng, но с php-константами) в зависимости от языка, который
пользует юзер.
Хотя мозги у меня за сегодня порядком отсохли, но даже я понимаю, что
php выполняется по-любому раньше JavaScript. Поэтому как быть? Как я
понимаю, большие сервисы определяют это на уровне Apache. Возможно ли
это? Если да, то где почитать тот самый f...ing manual, к которому
отсылает аббревиатура rtfm?
Спасибо, что находите время!..

Ответить   "Anarendil E. M. Elensule" Fri, 20 Nov 2009 22:27:06 +0200 (#943827)

 

Приветствую всех.
Андрей пишет:

Это было актуально в то далекое время, когда существовали браузеры, не поддерживающие
(не распознающие) тег script. Такие браузеры показывали содержимое тега script,
как html-контент, поэтому его приходилось обрамлять html-комментариями.

[...]
Поэтому как быть?

Вывести список поддерживаемых языков и позволить пользователю сделать выбор.
И это должно быть доступно независимо от того, пытаетесь ли вы автоматически
определить язык браузера или нет.

Информацию из JavaScript на сервер можно передать, как минимум, двумя способами:
1. Посылкой GET-запроса с соответствующим параметром (...?lang=ru) либо при помощи
"обычной" перезагрузки странички по соответствующему url, либо с использованием
ajax;
2. document.cookie.

Успехов. Анатолий.

Ответить   "i_chay" Sat, 21 Nov 2009 09:18:51 +0400 (#943933)

 

Vande omentaina, i_chay!

Правильно ли я понимаю, что, определив язык браузера, я ставлю куку, а
потом уже в php смотрю, есть ли эта кука и какой файл включать?
P.S. Естественно, у пользователя на главной же странице будет
возможность выбрать иной язык)

Ответить   "Anarendil E. M. Elensule" Sat, 21 Nov 2009 18:49:19 +0200 (#944190)

 

Приветствую всех.
Андрей пишет:

Правильно. На случай, если вопреки принципам, решите воспользоваться готовым
кодом:
http://techpatterns.com/downloads/javascript_cookies.php
http://javascript.ru/php/setcookie

Успехов. Анатолий.

Ответить   "i_chay" Sun, 22 Nov 2009 09:14:53 +0400 (#944341)