Согласование содержания

Как сервер узнаёт, какой файл нужно отображать

Вы можете заметить, что внутренние ссылки не заканчиваются на .html. Это связано с тем, что для определения, какую версию документа отображать, сервер использует согласование содержания. Когда есть выбор, сервер создаёт список всех возможных файлов. Так, например, если запрашивается 'about', в список могут войти about.en.html и about.de.html. По умолчанию на сервере Debian отображается английский вариант, но это можно изменить.

Если клиент правильно настроен, например на отображение немецкого текста, в вышеприведённом примере сервер вернёт about.de.html. Преимущество такого метода в том, что если предпочтительный язык не доступен, вместо него будет отображён текст на другом языке (в надежде, что это лучше, чем ничего). Алгоритм определения, какой документ отображать, несколько сложен, поэтому здесь мы не будем его описывать. Вы можете получить исчерпывающее описание на https://httpd.apache.org/docs/current/content-negotiation.html, конечно, если вам это интересно.

Поскольку большинство пользователей не будут даже знать о существовании согласования содержания, внизу каждой страницы есть ссылки, ведущие на версии этой страницы на других языках. Ссылки создаются скриптом на perl при генерации страницы из wml.

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