Minu praeguse projekti, Mõned kasutajad rändab üle maailma ja kui nad saabuvad erinevates sihtkohtades, Kasuta mis iganes masin on mugav ajal. Nende Külastajate masinatega töötab Windows ja installitud ja konfigureeritud kohaliku lokaadi. (Lihtsalt olen aru saanud, et Külastajate masinad võivad olla õige keelepaketid… ilmselt ei ole, Tegelikult… Ma olen keegi nüüd parkimine).
SharePoint on vaja kehtestada kord, mille alusel kasutaja valida eelistatud keel ja siis on MOSS au selles keeles, olenemata sellest, kuidas kasutaja pöördub MOSS. Teisisõnu, eirata iganes brauserit ütleb IIS/MOSS ja selle asemel otsida see eelistatud keel ja seda kasutada.
Me kavatseme seda uurida kaht lähenemisviisi:
- HTTP-ohjur: Kohandatud HTTP ohjur installitud IIS otsida MOSS kasutajaprofiili, aru saada eelistatud keel ning siis lülitage HTTP päise ümber vastavalt vajadusele enne läbiva kontrolli MOSS.
- Global.asax: Muuta global.asax teha sama asi. Me võib muuta midagi muud, Aga mõte on, et leiame mõnes kohas, kus me lisada meie locale ümberlülitamise loogika.
Muud keerulisus seisneb, et me peame toetust 60k kasutajate, umbes 1,000 mis võib olla üheaegselt pääseda MOSS tippkoste laadida.
HTTP-ohjur tundub päris järsk, aga võib-olla parim koht panna koodi, kuna see on IIS tasandil ja kõiketeadev. See on hea töös ühtne.
Meil Sümpaatia suunas global.asax tüüpi lähenemist, peamiselt seetõttu, et usume, et meil rohkem võimalusi caching andmed sellel hetkel.
Ma olla blogging rohkem sel teemal, kui ma õppima rohkem.
Kui sa tead midagi selle, please post a comment 🙂
</lõpp>
Järgi mind vidistama kell http://www.twitter.com/pagalvin
Ma pole harjunud seda et ma ei ole kindel, kas see toimib.
Lehe klassil on InitializeCulture() meetod, mis võib tühistada. Kui te seda oma kohandatud juhtlehele koodis, Kas sa midagi eeskujul:
kaitstud override void InitializeCulture()
{
// alistamiseks virtual meetod InitializeCulture() kontrollida, kui profiil sisaldab kasutaja keel
string UserCulture = GetCultureFromUserProfile();
Kui ( UserCulture != "")
{
// on kasutaja keel profiil: selle aktiveerida
Thread.CurrentThread.CurrentUICulture = uus CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Loomulikult saab ehitada mõned caching arvesse selle meetodi rakendamine.
Allikas: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?Path=~/aspnet/samples/Localization/LocalizePers.src&faili = LocalizePers_cs\LocalizePers_cs.aspx&lang = C % 23 allikas
Mõtlen HTTP ohjur järgmised vooluga:
1. Nõudmisel tuleb, Kontrollige keele-eelistus seansiküpsis küpsised (seansiküpsiseid lõpevad brauseri sulgemisel)
2. Kontrolli, kas taotlus on aspx-lehe, Vastasel juhul, Jäta taotlus
3. Kui küpsis, Määra keel päises määratud väärtus. Oled valmis!
4. Pole ühtegi küpsist, Võta autentimiseks mandaadi ja vaadata kasutaja SPS, Leia keele-eelistus
5. Küpsise päis ja HTTP keele päis. Teinud.
APX lehe asenduspartiid overhead SPS otsing kuid igal korral sealt edasi on mingit otsingud nii emakeelena kiirus. Ei ole vaja istungi vahemälu või muude üldkulude abil seansiküpsis liiga. Pärast brauseri sulgemist, sessiooni küpsis läheb ära. Kui kasutaja muudab nende keelte eelistus SPS nad lihtsalt vaja sulgeda ja uuesti avada brauseris jõustumiseks.
tegelikult http ohjur pole IIS-i tasandil…Rakenduse tasandil on (ISAPI filtrid on tasandil IIS)…Ma oleksin ettevaatlik bc SP on oma käitleja…seda kindlasti katsetada seda…Olen teinud seda varem, kuid on olnud mõned vastuollu SP käitleja.
Oleksin rohkem valmis kasutama ka HTTPHandler, Ainuke põhjus on, et mulle ei meeldi puudutage SharePointi failid. Plus on lihtne luua SharePointi lahendus on kasutada ka HttHandler ( ja SPWebConfig API abil saate muuta web.config). Olles kasutaja load ei, Ma kujutan ette, on üsna suur talu, sa tõesti ei taha minna modifiying faile igas serveris.
Juurutamise kaudu lahenduse faili global.asa halb mõte on, kui te tõmbuda, Algne fail on kadunud …
Samuti võttes võime kiiresti lahenduse võib olla hea mõte, juhul, kui asjad lähevad valesti perf käitleja.