Exchange 2003 Outlook Web Access a anglická úvodní stránka

Používám hlavně dva počítače - pracovní notebook s Windows Vista a domácí počítač, kde mám Windows XP SP2 a nainstalovaný Internet Explorer 7, obojí v anglickém provedení (s případně doinstalovaným CZ MUI). Dokončuji jeden projekt, který využívá Exchange 2003 a pořád mi vrtalo hlavou, proč při přístupu na OWA z XP vidím úvodní stránku česky, zatímco při přístupu z Vist vidím stránku anglicky. Dnes jsem si řekl, že to musím vyřešit - a taky vyřešil. Na vině je nastavení jazyka CS a cs-CZ, ale nemohu jednoznačně říct, že vina je na prohlížeči nebo naopak, že je vina na straně Exchange serveru. 

Windows XP pocházejí, jak známo, z roku 2001. V sobě měly Internet Explorer 6, který bylo možné před rokem aktualizovat na Internet Explorer 7. Jak už to tak ale při upgradech bývá, výsledný stav není zcela totožný s novou instalací - ta se ale nachází až ve Windows Vista, protože XP mít bez IE6 je nemožné. Pokud na domácím počítači otevřu Internet Explorer, zvolím menu Tools, Internet Options... a tlačítko Languages, vidím vybraný preferovaný jazyk jako "Czech [cs]". Zajímavé je, že když bych přidal pomocí tlačítka Add... nový jazyk, mám tam možnost přidat český jazyk v provedení "Czech [cs-CZ]".

Podíval jsem se tedy do na stejné místo do Vist a tam vidím rovnou český jazyk "Czech [cs-CZ]". Takže nezbývalo nic jiného, než do Vist přidat User-defined language jako "cs", čím docílím přidání druhého jazyka ve tvaru "Czech [cs]". Po opětovném přihlášení na stránky OWA vidím, že stránka je česky.

Evidentně tak OWA očekává pouze výskyt řetězce "cs" a neumí zpracovat "cs-CZ". Očekávat, že si všichni klienti budou modifikovat nastavení svého prohlížeče/prohlížečů je bláhové, oprava tudíž musí nastat na straně serveru. Takže hurá na Exchange server.

V adresáři C:\Program Files\Exchsrvr\exchweb\bin\auth se nachází soubor owalogon.asp. Ten je zodpovědný za detekci preferencí prohlížeče, který se snaží k OWA přistoupit, a za přesměrování na správnou logon.asp stránku, která je již lokalizovaná. První problém tak nastavá hned v owalogon.asp. Na začátku se plní Scripting.Dictionary objekt a jeden z řádků je:

LangMap.Add "CS", "CZE"  'Czech

První parametr definuje řetězec zasílaný prohlížečem, druhý parametr odkazuje na podadresář s lokalizovaným souborem logon.asp. Není tedy nic snazšího, než pod uvedený řádek přidat ještě jeden:

LangMap.Add "CS-CZ", "CZE"  'Czech

Pak již jen stačí soubor owalogon.asp uložit, rozkopírovat případně na všechny front-end servery, ve Vista obnovit přihlašovací stránku OWA a ejhle - stránka je česky.