Многоезичност в web сайта на Debian

Очевидно не всички хора по света използват един и същ език. С разрастването на web става все по-необходимо да има страници на различни езици. За тази цел сайтовете, поддържащи многоезичност, могат да предложат информация на Вашия език, използвайки динамично съдържание, позволяващо да се зададе езика, предпочитан за четене на документите. Оригиналната версия на документа се подменя с локализираната според договореност между браузера Ви и сървъра; Вашият браузер изпраща своите настройки и сървърът решава коя версия на страницата да Ви изпрати, според това какъв език сте избрали и дали има версия на този документ за Вашия език.

Имайте предвид, че избирайки различен език (от достъпните преводи в дъното на страницата) ще покаже само текущата страница преведена на този език. Това не променя езика по подразбиране. Ако кликнете върху връзка (link) към друга страница, тя ще бъде показана отново в оригиналния език по подразбиране. За да промените вашия език по подразбиране трябва да промените езиковите си настройки в опциите на браузера си, както е описано по-долу.


Какво да направя ако някоя Debian web страница не излиза както трябва?

Първата и най-често срещана причина да не излиза страницата на Вашия език е неправилната настройка на браузера Ви за съотвения език. Моля, вижте секцията Как да конфигурирам езиковите настройки, за да отстраните проблема.

Втората причина е повреден или липсващ cache. Това е все по-често срещан проблем, защото все повече Internet доставчици виждат в кеширането добър начин за намаляване на трафика по мрежата си. Прочетете бележки относно кеширането на web сървъри дори и да не мислите, че в това е проблемът Ви.

Третата причина е, че може да има проблем със самия www.debian.org. За последните години само няколко пъти се е случвало да има проблем при връщането на многоезични страници, дължащ се на някой бъг в нашия сайт. Предполагаме, разбира се, че ще потърсите евентуалните причини за двата по-горе споменати проблема, преди да се свържете с нас. Ако октриете, че http://www.debian.org/ работи, но някое от огледалата не, моля съобщете ни и ние ще се свържем с мениджъра на съответния огледален сървър.

След разрешаването на някой от описаните по-горе проблеми, би било добре да изчистите локалния си кеш (и от харддиска и от паметта) на Вашия браузер, преди да се опитате да заредите съответната страница отново. Добра идея е и да използвате lynx за тестовете. Това е единственият браузер, който според нас отговаря 100% на HTTP спецификациите за многоезично съдържание.

Потенциални проблеми с proxy сървъри

Proxy сървърите, най-основно, представляват web сървъри, които не притежават собствено съдържание. Те стоят по средата между потребителите и истинските web сървъри. Прихващат Вашите заявки за съответните web страници и изтеглят тези страници. След това те пренасочват страниците към Вас, но също така им правят локално, кеширано копие, за повторна употреба. Използването на кешове наистина може да сведе до минимум мрежовия трафик, когато много потребители правят заявки към едни и същи страници.

Тази технология е страхотна в повечето случаи, но понякога пропада, когато кешът е бъгав. В частност, някои по-стари proxy сървъри не се справят с многоезичното съдържание. Това довежда до кеширане на страница на един език и доставянето й на потребителя на съответния, първоначално избран език, дори ако след това е направена заявка за същия документ, но на друг език. Единственото решение в такъв случай е да обновите или замените кеширащия си софтуер.

До сега хората използваха proxy само ако са конфигурирали браузера си за тази възможност. Вече не е така. Вашият Internet доставчик (ISP) може да пренасочва всички HTTP заявки към "прозрачно за потребителя" proxy. Ако proxy сървърът няма възможност за управление на многоезични страници, тогава всичките му потребители вероятно ще получават съответните кеширани страници на погрешния език. Единственият начин да поправите това е да обясните проблема си на Вашия Internet доставчик, а той при добро желание да обнови или замени софтуера си.


Как да конфигурирам езиковите настройки?

Можете да настроите предпочитаните от Вас езици, така че да включите всички, които говорите и разбирате, подредени по реда, който желаете. Добра идея е да добавите английски ('en') за всеки случай (като последен в списъка), защото оригиналният език на страниците на Debian web сайта е английски и не всички документи могат да бъдат преведени на предпочитания от Вас език.

Например, ако говорите български и бихте могли да настроите опцията за език да включва на първо място български език (с езиков код 'bg'), следван от английски (с езиков код 'en').

Вижте по-долу за точни инструкции как да направите това за точно определен браузер.

Важно е да бъдете внимателни, когато използвате подкатегории на езици. Използвайки 'en-GB, bg', например няма да доведе до ефекта, който повечето хора очакват (ако не са чели HTTP спецификацията).

Силно препоръчително е да не добавяте езикови разширения, освен ако нямате добра причина за това. Ако все пак добавите, убедете се, че сте включили и езика без разширенията.

Разяснение: Сървър, получаващ заявка за документ с избран език 'en-GB, bg' няма да предостави версията на английски ('en') преди българската версия. Той ще осигури английския документ преди българския само ако има версия на файла с 'en-gb' за това езиково разширение.

Освен това, би трябвало да конфигурирате браузера си да изпраща 'en-GB, en, bg' или само 'en, bg'. Това ще проработи, защото сървърът може да върне 'en-us' когато има заявка за 'en'.

За повече информация отностно настройването на предпочитания език моля прочетете Apache documentation on content negotiation.

Как да настроя браузера, така че да използва моя език?

За да зададете езика по подразбиране във Вашия браузер трябва да определите специална променлива, която се изпраща на web сървъра. Как става това, зависи от браузера, който ползвате.

Mozilla / Netscape 4.x и по-нови версии
     Edit -> Preferences -> Navigator -> Languages
Забележка: за Netscape 4.x трябва да се убедите, че сте избрали желания език от достъпните възможни. Доста хора съобщиха за проблеми, когато въвеждат езика, който желаят на ръка.
Mozilla Firefox
Версия 0.9 и по-нова:
Linux:
     Edit -> Preferences -> General -> Languages
Windows:
     Tools -> Options -> General -> Languages

Версия 1.5 и по-нови:
Linux:
     Edit -> Preferences -> Advanced -> General -> Edit Languages
Windows:
     Tools -> Options -> Advanced -> General -> Edit Languages
При по-старите версии трябва да отидете на about:config и да промените стойността на intl.accept_languages.
Internet Explorer
Windows:
     Tools или View или Extras -> Internet Options -> (General) Languages
MacOS:
     Edit -> Preferences -> Web Browser -> Language/Fonts
Pocket Internet Explorer
     Създайте ключ в регистрите от тип стринг (string registry key) с име AcceptLanguage в
     HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International\
     и стойност fr; q=1.0, en; q=0.5 (без кавичките).
Opera
Повечето версии:
     File -> Preferences -> Languages
Linux/*BSD версии 5.x и 6.x:
     File -> Preferences -> Document -> Languages
Nokia 770 Web Browser: Редактирайте файлът /home/user/.opera/opera.ini и добавете следната линия под секцията [Adv User Prefs]:
     HTTP Accept Language=bg;q=1.0,en;q=0.5
Galeon
     Settings -> Preferences -> Rendering -> Languages
Epiphany
     Edit -> Preferences -> Language -> Languages
Konqueror
Ако искате да зададете само един език има много лесен начин за това, след като бъг номер #358459 е поправен, просто изберете желания от KDE Control Center и рестартирайте KDE сесията, за да приложите промените.
Ако искате да зададете повече от един език или желаете да разследвате проблема около споменатия бъг, ще трябва да редактирате ~/.kde/share/config/kio_httprc файла и да добавите следния примерен текст:
     Languages=bg;q=1.0,en;q=0.5
lynx
Можете да редактирате preferred_language променливата в .lynxrc или да въведете командата 'O' докато сте в lynx.

Например, напишете следния текст в .lynxrc

preferred_language=bg; q=1.0, en; q=0.5
W3 (emacs базиран web браузер)
(setq url-mime-language-string  "preferred_language=bg; q=1.0, en; q=0.5")
или използвайте custom пакет (например URL version p4.0pre.14):
Hypermedia -> URL -> Mime -> Mime Language String...
iCab
     Edit -> Preferences -> Browser -> Fonts,Languages
W3M
     Options (o) -> Other Behavior -> Accept-Language
Safari
Safari използва системните настройки на MacOS X, за да разбере предпочитания от вас език:
    System preferences -> International -> Language
ELinks
Можете да зададете езика по подразбиране на интерфейса на браузера от:
    Setup -> Language
Това ще промени също така и настройката за локализация на показваните web страници. Можете да промените тази функционалност и да настроите по свой вкус кои езици ще бъдат приемани от HTTP променливата в:
    Setup -> Options manager -> Protocols -> HTTP
Netscape 3.x
Add
     *httpAcceptLanguage: [preferred_language string]
в Netscape app-defaults файла или ~/.Xresources
IBrowse
Изберете меню Preferences, след това Settings, и накрая Network. Под "Accept language" вероятно ще е изписано "*" по подразбиране. Ако натиснете "Locale" бутона ще можете да добавите желания език. Друга възможност е да ги въведете ръчно. След това натиснете "OK".
Voyager
Изберете меню Settings, след това Languages. Можете да въведете език ръчно или да изберете "Get from locale". Изберете "OK", за да потвърдите.

Ако имате информация за конфигурирането на браузер, който не присъства в нашия списък, описан по-горе, моля изпратете ни писмо на debian-www@lists.debian.org.