JavaScript And DHTML Cookbook [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

JavaScript And DHTML Cookbook [Electronic resources] - نسخه متنی

Danny Goodman

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید










5.8 Detecting the Browser Written Language


NN 4, IE 4


5.8.1 Problem


You wish to direct users
automatically to a path in your web site tailored for a specific
written language.


5.8.2 Solution


Version 4 and later browsers provide properties of the
navigator object that let you read the code for
the native language for which the user's browser was
developed. Unfortunately, the property names are different for each
browser, so you must perform some object property detection in the
process. The solution below assumes that all users will be shunted to
the English page unless their browsers indicate that the native
language is German:

// verify browser language
function getLang(type) {
var lang;
if (typeof navigator.userLanguage != "undefined") {
lang = navigator.userLanguage.toUpperCase( );
} else if (typeof navigator.language != "undefined") {
lang = navigator.language.toUpperCase( );
}
return (lang && lang.indexOf(type.toUpperCase( )) = = 0)
}
...
location.href = "de")) ? "de/homel" : "en/homel";

The case conversions eliminate potential differences in the case of
the letters returned by the language-related properties of browsers.
In the end, the return statement performs string
equality testing on all uppercase letters (see Recipe 1.3 and Recipe 1.4).


5.8.3 Discussion


Language
codes consists of a primary two-letter code indicating the basic
language. An optional two-letter subcode may also be used to identify
a country or region for which the primary language is tailored
("en-us" for United States
English). Therefore, you cannot always rely on the
navigator object's
language-related property returning only a two-letter code. But since
the primary code always comes first, you can look for the code being
at the beginning of whatever string is returned by the property.
Also, be sure to force the case of the values so that your eventual
comparison operation works on a level playing field, regardless of
the case of the returned data. Nonscriptable browsers will still need
links on the page to provide manual selection of the desired language
path through the site. Common two-letter primary codes are cataloged
in ISO-639 (an excerpted list of codes is available at http://www.ietf.org/rfc/rfc1766.txt).


5.8.4 See Also


Recipe 5.1 and Recipe 5.2 for browser brand and version detection; Chapter 1 for string parsing.


/ 249