Jump to content

Message Encoding στο Outlook Web Access 2003


Panagiotis
 Share

Recommended Posts

Από το Pamal's weblog:

Η Θεωρία…<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

Το Outlook Web Access, σε αντίθεση με το παραδοσιακό Outlook δεν έχει φαινομενικά κάποιο σημείο στο οποίο να μπορούμε να ορίσουμε το encoding των μηνυμάτων που στέλνουμε. Άρα η ερώτηση είναι πως μπορούμε να το ελέγξουμε.

Η απάντηση είναι: Με τη λίστα Language Preference του Internet Explorer.

 

Όταν συνδεόμαστε στο Outlook Web Access, o web server (IIS) ζητάει από τον client (Internet Explorer) να μάθει ποια γλώσσα θεωρεί σαν πρωτεύουσα (χρησιμοποιώντας τον ειδικό header HTTP_ACCEPT_LANGUAGE). Αυτό που θα κάνει ο client είναι να κοιτάξει ποια γλώσσα είναι πρώτη στη λίστα του Language Preference (ToolsInternet OptionsLanguages) και να στείλει την απάντηση στον web server. Σαν αποτέλεσμα ο web server θα βάζει το αντίστοιχο encoding στα εξερχόμενα μηνύματα. Αν για παράδειγμα η πρώτη στη λίστα γλώσσα είναι τα Ελληνικά (el) τότε τα εξερχόμενα μηνύματα θα έχουν ISO-8859-7 encoding. Αν η πρώτη στη λίστα γλώσσα είναι τα Αγγλικά (en) τότε τα εξερχόμενα μηνύματα θα έχουν ISO-8859-1 encoding. Τόσα απλά.

 

Κενή Λίστα;

 

Τι συμβαίνει όμως όταν δεν υπάρχει καμία γλώσσα στη λίστα; O Internet Explorer δεν βγάζει κάποιο μήνυμα λάθους άμα βγάλετε όλες τις γλώσσες από τη λίστα άρα αυτό είναι κάτι που μπορεί να συμβεί. Σε αυτή την περίπτωση ο Internet Explorer θα ορίσει σαν preferred language τη γλώσσα που θα δει σαν default User Locale των Windows (στα XP αυτό το βλέπετε από το Control PanelRegional and Language OptionsStandards and Formats). Αν για παράδειγμα έχετε σαν default User Locale τα Ελληνικά (Greek) τότε ο Internet Explorer θα θεωρήσει πως σαν preferred language έχει το el. Αν αντίστοιχα έχετε English (United States), ο Internet Explorer θα αναγνωρίσει την γλώσσα en-us.

 

Το registry key AcceptLanguage…

 

Όταν αλλάζουμε τη λίστα στο Language Preference ενημερώνετε ένα κλειδί στη registry το συστήματος. Το κλειδί είναι το AcceptLanguage (τύπουReg_Sz”) και βρίσκετε στο HKEY_Current_User\Software\Microsoft\Internet Explorer\International. Ο παρακάτω πίνακας δείχνει τη τιμή του AcceptLanguage ανάλογα με τη λίστα του Language Preference.

 

 


Language Preference


AcceptLanguage


Greek


el


English


en


Πρώτα Greek και μετά English


el,en;q=0.5


Πρώτα English και μετά Greek


en,el;q=0.5


Άδεια λίστα


Το κλειδί είναι κενό

 

Στην περίπτωση που υπάρχουν περισσότερες από μία γλώσσες στη λίστα, κάθε γλώσσα θα πρέπει να βαθμολογηθεί. Γι’ αυτό όπως βλέπετε στον παραπάνω πίνακα υπάρχει η παράμετρος q (Quality). Το q είναι ένα κλάσμα και μπορεί να πάρει τιμές από το 0 μέχρι το 1. Όσο μεγαλύτερο το q τόσο μεγαλύτερο και το preference. Αν κάποια γλώσσα δεν έχει q τότε θεωρούμε ότι έχει q = 1.

 

Ας δούμε ένα παράδειγμα:

 

en-us,ja;q=0.8,fr;q=0.5,de;q=0.3

 

Η παραπάνω λίστα μεταφράζετε ως εξής…

Πρώτη γλώσσα είναι το en-us με q=1.0 (μιας και δεν έχει καθόλου q)

Δεύτερη γλώσσα είναι το ja με q=0.8

Τρίτη γλώσσα είναι το fr με q=0.5

Τέταρτη γλώσσα είναι το de με q=0.3

 

Παρατηρήστε την τελευταία περίπτωση όπου η λίστα Preferred Language είναι κενή. Το registry key υπάρχει αλλά δεν έχει περιεχόμενα. Σε αυτή την περίπτωση θεωρούμε πως πάλι η γλώσσα που θα στείλει ο Internet Explorer στον server είναι η γλώσσα που έχουμε σαν default user locale. Αυτό μπορούμε να το επιβεβαιώσουμε αν απλά σβήσουμε το κλειδί και δούμε τι θα κάνει ο Internet Explorer:

Σβήστε το registry key

Στον Internet Explorer κάντε click στο Tools – Internet options – Languages

Θα δείτε πως η γλώσσα που αντιστοιχεί στο default user locate έχει προστεθεί στη λίστα αυτόματα ενώ ταυτόχρονα ενημερώθηκε και το AcceptLanguage registry key.

 

Πηγές:

“Ask Dr. International” blog (Column #12)

How To Hard Code the Language of OWA Interface

Exchange Web Forms - Registry Language Fallback

 

Link to comment
Share on other sites

 Share

×
×
  • Create New...