HTML: загрузка локализованой страницы

Модератор: Модераторы разделов

IMB
Сообщения: 2567
ОС: Debian

HTML: загрузка локализованой страницы

Сообщение IMB »

Доброго дня!
Не могу понять как осуществлется выбор какую страницу броузер отобразит, скажем если есть выбор между русской и английской версиями страниц.
Пример - стоит CUPS 1.4.4, при заходе через броузер, использую Iceweasel 3.5.6, отображается русская страница.
Сначала я решил, что всё решается установкой языка предпочтения в броузере, но смена параментра на английский не дало загрузки английского интерфейса.
Системная локаль не может на это влиять, так как используется en_US.UTF-8. Пожалуй единственное, что выдаёт российское расположение - это часовой пояс.
Вопрос - как на стороне сервера осуществить автоматический выбор какую версию страницы отобразить?
Спасибо.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: HTML: загрузка локализованой страницы

Сообщение sash-kan »

IMB писал(а):
30.07.2010 14:13
Не могу понять как осуществлется выбор какую страницу броузер отобразит
браузер отобразит то, что отдаст http-сервер.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: HTML: загрузка локализованой страницы

Сообщение IMB »

Несомненно, вопрос в том как сервер выбирает что отобразить, какие критерии?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: HTML: загрузка локализованой страницы

Сообщение sash-kan »

IMB писал(а):
30.07.2010 14:13
CUPS
он тут вообще своеброзен. логики, честно говоря, не увидел. надо в исходниках смотреть.


IMB писал(а):
30.07.2010 14:30
как сервер выбирает что отобразить, какие критерии?
какие заложили разработчики.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: HTML: загрузка локализованой страницы

Сообщение Portnov »

Классических варианта 2: заголовок Accept-Language (стандартный вариант) и GeoIP (используется гуглом, если не путаю).
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: HTML: загрузка локализованой страницы

Сообщение eddy »

IMB писал(а):
30.07.2010 14:30
вопрос в том как сервер выбирает что отобразить, какие критерии?

В браузере вы настраиваете, какие языки предпочитаете. Он посылает соответствующий Accept-Language. Apache на основе настроек выбирает постфикс имени файла (например, если у вас есть файлы index.html.ru, index.html.en и index.html.de, то в зависимости от значения Accept-Language будет "выбран правильный" файл при запросе пользователем файла index.html).
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: HTML: загрузка локализованой страницы

Сообщение sash-kan »

IMB писал(а):
30.07.2010 14:30
Несомненно, вопрос в том как сервер выбирает что отобразить, какие критерии?
eddy писал(а):
30.07.2010 15:27
IMB писал(а):
30.07.2010 14:30
вопрос в том как сервер выбирает что отобразить, какие критерии?

В браузере вы настраиваете, какие языки предпочитаете. Он посылает соответствующий Accept-Language. Apache на основе настроек выбирает постфикс имени файла (например, если у вас есть файлы index.html.ru, index.html.en и index.html.de, то в зависимости от значения Accept-Language будет "выбран правильный" файл при запросе пользователем файла index.html).
вероятно, топик-стартера интересовало, существуют ли какие-нибудь стандарты, описывающие поведение абстрактного http-сервера в отношении выдачи разных языковых версий страниц. насколько мне известно, таких стандартов не существует.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: HTML: загрузка локализованой страницы

Сообщение eddy »

sash-kan писал(а):
30.07.2010 15:33
насколько мне известно, таких стандартов не существует.

Почему же? Для апача эта процедура вполне стандартизована. Главное, чтобы браузер отсылал правильные Accept-Language. И вы можете хоть на 1000 языках делать свой сайт. Точно так же по проверке Accept-Language делается локализация CGI.
RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
IMB
Сообщения: 2567
ОС: Debian

Re: HTML: загрузка локализованой страницы

Сообщение IMB »

Хорошо, предположим с Apache разобрались.
На самом деле интересует именно общий подход не привязанный к конкретному серверу.
Скажем я скоро начну работу над web-интерфейсом к устройству и хотелось бы заложить сразу функционал с локализоваными интерфейсами - русским и английским, на устройстве используется mini_httpd.
Как поступить, не очень хочеться делать это через явный выбор языка? Да и Accept-Language не объясняет ситуации с CUPS.
Спасибо сказали:
Аватара пользователя
eddy
Сообщения: 3321
Статус: Красный глаз тролля
ОС: ArchLinux

Re: HTML: загрузка локализованой страницы

Сообщение eddy »

IMB писал(а):
30.07.2010 15:50
Скажем я скоро начну работу над web-интерфейсом к устройству и хотелось бы заложить сразу функционал с локализоваными интерфейсами - русским и английским, на устройстве используется mini_httpd.
Я локализовал по-простому:

Код: Выделить всё

// lang.h
#define        _LANG(_var, _ru, _en)    char _var##ru[] = _ru;\
                    char _var##en[] = _en;\
                    char *_var[2] = {_var##ru,  _var##en};
#define        _L(x)    (x[Lang])

_LANG(_s_Save_file_, "Сохранить файл", "Save file");
_LANG(_s_no_QS_, "Отсутствует строка запроса", "No query string");
...

// main.c
...
        unsigned char Lang = 1; // английский
...
    ptr = getenv("HTTP_ACCEPT_LANGUAGE");
    if(ptr) if(strncmp(ptr, "ru", 2) == 0) Lang = 0; // используем русский
...
    printf("Content-type: text/plain; charset=koi8-r\n\n");
    printf("OT - %s\nIT - %s\nMT - %s\nWS - %s\nP - %s\nH - %s\nS - %s\n\n",
        _L(_s_Otemp_), _L(_s_Itemp_), _L(_s_Mtemp_),
        _L(_s_WSpeed_), _L(_s_Pressure_), _L(_s_Humidity_),
        _L(_s_State_));
...

RTFM
-------
KOI8-R - патриотичная кодировка Изображение
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: HTML: загрузка локализованой страницы

Сообщение sash-kan »

IMB писал(а):
30.07.2010 15:50
Да и Accept-Language не объясняет ситуации с CUPS.
повторю только: «он тут вообще своеброзен».
несколько протестированных мною инсталляций не обращали внимания ни на переданный accept-language, ни на соответствующую директиву собственного конфигурационного файла. т.е., больше всего смахивает на баг, хотя неплохо бы в исходниках посмотреть (у меня лично нет ни времени, ни желания).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали: