Για το τρέχον έργο μου, Ορισμένοι χρήστες θα ταξιδέψει σε όλο τον κόσμο και κατά την άφιξή τους σε διάφορους προορισμούς, χρησιμοποιήσετε ό, τι μηχανή είναι βολικό την στιγμή. Αυτά τα μηχανήματα θα πρέπει να τρέχει σε Windows και να εγκατασταθεί και να ρυθμιστεί για το τοπικό locale. (Έχω μόλις συνειδητοποίησα ότι οι μηχανές τα δεν μπορεί να έχει τα σωστά γλωσσικά πακέτα… πιθανώς δεν θα, Στην πραγματικότητα… Εγώ εκείνη που προς το παρόν στάθμευσης).
SharePoint πρέπει να παρέχουν ένα μηχανισμό, σύμφωνα με την οποία ο χρήστης μπορεί να πάρει τη γλώσσα της προτίμησής τους και στη συνέχεια έχετε το ΒΡΎΟ τιμήσει αυτή τη γλώσσα ανεξάρτητα από το πόσο ο χρήστης έχει πρόσβαση σε ΒΡΎΑ. Με άλλα λόγια, αγνοεί ό, τι το πρόγραμμα περιήγησης λέει IIS/ΒΡΎΑ και αντίθετα κοιτάζω προς τα πάνω ότι γλώσσα που προτιμάτε και να το χρησιμοποιήσετε.
Θα πάμε να ερευνήσει δύο προσεγγίσεις:
- Πρόγραμμα χειρισμού HTTP: Ένα προσαρμοσμένο δείκτη χειρισμού HTTP εγκατεστημένο στον IIS θα αναζητήσετε το προφίλ του χρήστη MOSS, καταλάβω τη γλώσσα που προτιμάτε και στη συνέχεια να στραφούν κεφαλίδα HTTP γύρω από όπως απαιτείται πριν από τη διοχέτευση ελέγχου να ΒΡΎΑ.
- Global.asax: Τροποποιήσετε global.asax να κάνει το ίδιο πράγμα. Είναι πιθανό να αναπροσαρμόσουμε κάτι άλλο, αλλά η ιδέα είναι ότι μπορούμε να βρούμε κάποιο μέρος όπου μπορούμε να εισαγάγετε μας λογική τοπικές ρυθμίσεις εναλλαγής.
Ο άλλος περιπλέκοντας παράγοντας είναι ότι πρέπει να 60k υποστήριξη χρηστών, σχετικά με την 1,000 που μπορεί να ταυτόχρονα πρόσβαση σε ΒΡΎΑ στο αποκορύφωμά φορτίο.
Το πρόγραμμα χειρισμού HTTP φαίνεται αρκετά δραστικό, αλλά πιθανώς το καλύτερο μέρος για να θέσει τον κωδικό, δεδομένου ότι είναι στο επίπεδο των υπηρεσιών IIS και παντογνώστης. Είναι ένα καλό σημείο του έργο.
Εμείς είστε κλίνει προς μια προσέγγιση του τύπου global.asax, κυρίως επειδή πιστεύουμε ότι θα έχουμε περισσότερες επιλογές για την προσωρινή αποθήκευση δεδομένων σε εκείνο το σημείο.
Θα είμαι blogging περισσότερο σε αυτό, όπως έχω μάθει περισσότερα.
Αν έχετε, ξέρω τίποτα σχετικά με αυτό, please post a comment 🙂
</Τέλος>
Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin
Δεν το έχω δοκιμάσει αυτό έτσι δεν είμαι βέβαιος αν αυτό δουλεύει.
Η κλάση σελίδα έχει μια InitializeCulture() μέθοδος, η οποία μπορεί να παρακαμφθεί. Αν το κάνετε αυτό με τον κώδικα πίσω από σας προσαρμοσμένη masterpage, θα μπορούσατε να κάνετε κάτι προς την κατεύθυνση της:
προστατευόμενη παράκαμψη άκυρη InitializeCulture()
{
// εικονική μέθοδο InitializeCulture() να ελέγξετε αν το προφίλ περιέχει μια ρύθμιση γλώσσας του χρήστη
Στριγκάκι UserCulture = GetCultureFromUserProfile();
Αν ( UserCulture != "")
{
// υπάρχει μια ρύθμιση γλώσσας του χρήστη στο προφίλ: μεταπηδήσουν σε αυτό
Thread.CurrentThread.CurrentUICulture = νέα CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Προφανώς μπορείτε να χτίσετε κάποια προσωρινή αποθήκευση στην εφαρμογή αυτής της μεθόδου.
Πηγή: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?Path=~/ASPNET/Samples/localization/LocalizePers.src&αρχείο = LocalizePers_cs\LocalizePers_cs.aspx&lang = C % 23 πηγή
Σκέφτομαι το πρόγραμμα χειρισμού HTTP με τη παρακάτω ροή:
1. Αίτημα που έρχεται σε, Ελέγξτε τα cookies για ένα cookie περιόδου λειτουργίας για γλώσσα προτίμησης (cookies συνόδου λήγει όταν το πρόγραμμα περιήγησης είναι κλειστό)
2. Ελέγξτε εάν η αίτηση είναι για ASPX σελίδα, Αν δεν, παραλείψτε το αίτημα
3. Εάν υπάρχει cookie, Ορίστε την κεφαλίδα γλώσσα στην τιμή που καθορίζεται. Γίνεστε!
4. Κανενός cookie, λάβει την πιστοποίηση της ταυτότητας και αναζητήστε το χρήστη στο SPS, βρείτε τη γλώσσα προτίμησης
5. Ορίστε κεφαλίδα cookie και γλώσσα κεφαλίδα HTTP. Γίνει.
Πρώτη αίτηση σελίδας APX θα έχουν επιβάρυνση της SPS αναζήτησης αλλά κάθε αίτημα από κει με έχει καμία αναζητήσεις έτσι θα είναι εγγενή ταχύτητα. Δεν υπάρχει ανάγκη για τη μνήμη cache περιόδου λειτουργίας ή οποιαδήποτε άλλα γενικά χρησιμοποιώντας πάρα πολύ ένα cookie περιόδου λειτουργίας. Μόλις το πρόγραμμα περιήγησης είναι κλειστό, το cookie περιόδου λειτουργίας πηγαίνει μακριά. Εάν ο χρήστης αλλάζει την προτίμησή τους γλώσσες στο SPS απλά πρέπει να κλείσει και να ανοίξει εκ νέου το πρόγραμμα περιήγησης για να τεθεί σε ισχύ.
στην πραγματικότητα, το πρόγραμμα χειρισμού http δεν είναι στο επίπεδο των υπηρεσιών iis…είναι σε επίπεδο εφαρμογής (Φίλτρα ISAPI είναι στο επίπεδο των υπηρεσιών IIS)…θα ήθελα να είναι προσεκτικοί π.χ. SP έχει τη δική του χειριστή…έτσι να είστε βέβαιος να το δοκιμάσετε…Έχω κάνει πριν, αλλά είχαν κάποια σύγκρουση με το χειριστή SP.
Θα ήθελα να είναι περισσότερο διατεθειμένοι να χρησιμοποιήσετε ένα HTTPHandler, ο μόνος λόγος είναι ότι δεν μου αρέσει αγγίζοντας τα αρχεία του SharePoint. Καθώς είναι εύκολο να δημιουργήσετε μια λύση του SharePoint για να αναπτύξετε μια HttHandler ( και χρησιμοποιούν το API SPWebConfig για να τροποποιήσετε το αρχείο web.config). Έχοντας το φορτίο χρήστης μπορείτε να κάνετε, Φαντάζομαι να έχετε ένα αρκετά μεγάλο αγρόκτημα, πραγματικά δεν θέλετε να πάτε modifiying αρχεία σε κάθε διακομιστή.
Ανάπτυξη το αρχείο global.asa μέσω μια λύση είναι μια κακή ιδέα, Εάν μπορείτε να ανακαλέσετε αυτό, Ξηλώθηκε το αρχικό αρχείο σας …
Επίσης, έχοντας τη δυνατότητα να ανακαλέσει η λύση γρήγορα θα μπορούσε να είναι μια καλή ιδέα, σε περίπτωση που τα πράγματα πάνε στραβά με το τέ του χειριστή.