În proiectul meu actual, unele dintre utilizatorii vor călători în jurul lumii şi atunci când acestea sosesc la diferite destinaţii, utilizaţi orice masina este la îndemână în timp. Aceste maşini de comentarii vor fi difuzate Windows şi instalat şi configurat pentru localizare locale. (Doar le-am dat seama că maşinile Comentarii nu poate avea drept limbaj packs… probabil nu va, de fapt… Eu sunt parcare că unul acum).
SharePoint are nevoie de a oferi un mecanism prin care utilizatorul poate alege limba preferată şi apoi au MOSS onoare că limba indiferent de modul în care utilizatorul accesează MOSS. Cu alte cuvinte, nu ia în considerare orice browser-ul spune IIS/MOSS şi, în schimb, uita-te că limba preferată şi să-l utilizaţi.
Am de gând să investigheze două abordări:
- Rutina de tratare HTTP: O rutina de tratare HTTP particularizate instalat IIS vor uita profilul de MOSS utilizatorului, dau seama limba preferată şi apoi comutaţi antetul HTTP în jurul după cum este necesar înainte de a trece de control de la MOSS.
- Global.asax: Modificarea global.asax pentru a face acelaşi lucru. Ne poate modifica ceva altceva, dar ideea este că vom găsi un loc unde am poate introduce noastre logica localizare-comutare.
Alt factor care complică este că avem nevoie pentru a sprijini 60k utilizatori, despre 1,000 de care poate fi accesarea simultan MOSS la vârf de sarcină.
Rutina de tratare HTTP pare destul de drastice, dar, eventual, cel mai bun loc pentru a pune în cod, deoarece este la nivel de IIS şi atotcunoscător. Este un bun singur punct de lucru.
Ne-esti înclinat spre o abordare de tip global.asax, în principal, deoarece credem că vom avea mai multe opţiuni pentru Caching-ul de date în acel moment.
Voi fi blogging-ul mai mult pe acest subiect, aşa cum am afla mai multe.
Dacă ai şti nimic despre acest lucru, te rog posta un comentariu 🙂
</scop>
Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin
Nu am testat acest lucru aşa că nu sunt sigur dacă acesta funcţionează.
Pagina de clasa are un InitializeCulture() metoda care poate fi suprascris. Dacă faceţi acest lucru în codul din spatele dumneavoastră vor personalizate, ai putea face ceva de-a lungul liniilor de:
protejate suprascrie void InitializeCulture()
{
// metoda virtual InitializeCulture() pentru a verifica dacă profil conţine un utilizator limbă setare
şir UserCulture = GetCultureFromUserProfile();
Dacă ( UserCulture != "")
{
// Există o setare de limba de utilizator în profilul: trecerea la o
Thread.CurrentThread.CurrentUICulture = nou CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Evident, puteţi construi unele cache în punerea în aplicare a acestei metode.
Sursă: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?Path=~/aspnet/Samples/localization/LocalizePers.src&fişier = LocalizePers_cs\LocalizePers_cs.aspx&lang = C % 23 sursa
Mă gândesc de rutina de tratare HTTP cu fluxul următoarele:
1. Cererea vine, verifica cookie-uri pentru un cookie de sesiune pentru limba preferată (cookie-uri de sesiune expiră atunci când browser-ul este închis)
2. Verifică dacă cererea este pentru pagină ASPX, Dacă nu, săriţi cerere
3. Dacă există cookie, Setaţi antetul limba la valoarea specificată. Aţi terminat!
4. Nici un "cookie", ia acreditări de autentificare şi căuta utilizatorului în SPS, găsi limba preferată
5. Set cookie-ul antet şi HTTP limbaj antet. Făcut.
Prima APX pagina de cerere va avea globale de SPS căutare dar fiecare cerere de atunci încolo cu au nici căutări astfel încât va fi nativ viteza. Nu este nevoie pentru sesiune cache sau orice alte aeriene folosind un cookie de sesiune prea. Odată ce browser-ul este închis, modulul cookie de sesiune dispare. Dacă utilizatorul modifică preferinţa lor limbi în SPS ei trebuie doar să închideți și redeschideți browser-ul pentru a intra în vigoare.
fapt rutina de tratare http nu este la nivelul iis…este la nivelul cererii (ISAPI filtrele sunt la nivelul de IIS)…mi-ar fi atent bc SP are rutina proprie…astfel încât asiguraţi-vă că să-l testeze…am făcut-o înainte, dar au avut un conflict cu mîner SP.
Aş fi mai înclinat pentru a utiliza un HTTPHandler, singurul motiv este că nu îmi place atingerea fişierele SharePoint. Plus este uşor de a crea o soluţie de SharePoint pentru a implementa o HttHandler ( şi de a folosi SPWebConfig API pentru a modifica web.config). Având sarcina de utilizator faci, Mi-ar imagina tu ai o ferma de barosan, tu chiar nu vreau să merg modifiying fişiere pe fiecare server.
Implementarea fişierul global.asa printr-o soluţie este o idee rea, Dacă vă retrage l, fişierul original este plecat …
De asemenea, au capacitatea de a retracta soluția rapid ar putea fi o idee buna, în cazul în care lucrurile nu merg bine cu perf de rutina.