Par manu pašreizējo projektu, daži lietotāji ceļo visā pasaulē, un, kad viņi ierodas pie dažādiem galamērķiem, izmantot, neatkarīgi no mašīnas brīdī, kad ir ērts. Šiem viesu mašīnas būs jādarbojas Windows un instalēta un konfigurēta lokālo lokalizācijas. (Esmu tikko sapratu, ka viesu mašīnas var nebūt pareizo valodu pakotnes… iespējams, nebūs, patiesībā… Es esmu autostāvvieta, ka viens tagad).
SharePoint ir nepieciešams paredzēt mehānismu, ar kuru lietotājs var izvēlēties savu vēlamo valodu un tad ir sūnu godu šai valodai, neatkarīgi no tā, kā lietotājs piekļūst MOSS. Citiem vārdiem sakot, neņemt vērā neatkarīgi pārlūkprogrammu stāsta IIS/MOSS un vietā meklēt šo vēlamo valodu un izmantot to.
Mēs gatavojamies izmeklēt divas pieejas:
- HTTP kopējs: Pielāgotu HTTP kopējs instalēt IIS izskatīsies klajā sūnu lietotāja profilu, izrēķināt vēlamo valodu un pēc tam pārslēgties HTTP galveni apkārt pēc vajadzības pirms nododot kontroles MOSS.
- Global.asax: Pārveidot global.asax, lai veiktu to pašu darbību. Mēs pēc tam var mainīt kaut ko citu, bet ideja ir, ka mēs atrodam zināmā vieta, kur mēs varam ievietot mūsu lokalizācijas komutācijas loģika.
Citu faktoru, kas sarežģī ir tā, ka mums ir nepieciešams saņemt atbalstu 60k lietotājiem, par 1,000 kas var vienlaicīgi piekļūt MOSS pīķa slodze.
HTTP kopējs šķiet diezgan krasi, bet iespējams labākā vieta, kur ievietot kodu, jo tas ir IIS līmenī un visu zinošais. Tas ir viens labs punkts darba.
Mēs esam pieliecies pie global.asax tipa pieeja, galvenokārt tāpēc, ka mēs uzskatām, ka mums būs plašākas iespējas tajā brīdī kešatmiņā datus.
Es būšu blogošana vairāk par šo tēmu, kā es uzzinātu vairāk.
Ja jūs zināt kaut ko par šo, please post a comment 🙂
</beigās>
Sekot mani uz čivināt pie http://www.twitter.com/pagalvin
Man nav pārbaudīts tas tāpēc es neesmu pārliecināts, vai tas darbojas.
Page klasei ir InitializeCulture() metode, kas var ignorēt. Ja jūs to izdarītu kodā, kas saistīts ar pielāgotu masterpage, jūs varētu darīt kaut ko pa līniju:
aizsargātas svarīgākas neesošu InitializeCulture()
{
// ignorēt virtuālās metodes InitializeCulture() lai pārbaudītu, ja profils ietver lietotāja valodas iestatījums
string UserCulture = GetCultureFromUserProfile();
Ja ( UserCulture != "")
{
// ir lietotāja valodas iestatījumu profils: pārslēgties uz to
Thread.CurrentThread.CurrentUICulture = jaunais CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Acīmredzot jūs varat izveidot dažas kešošanu uz šīs metodes īstenošanai.
Avots: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?Path=~/ASPNET/samples/localization/LocalizePers.src&fails = LocalizePers_cs\LocalizePers_cs.aspx&lang = C % 23 avots
Esmu domāt HTTP kopējs ar šādu plūsmu:
1. Pieprasījums nāk iekšā, Pārbaudiet valodas izvēle sesijas sīkfailus, sīkfailus (sesijas sīkdatnes beidzas tad, kad tiek aizvērts pārlūka)
2. Pārbaudīt, ja pieprasījums attiecas uz ASPX lapu, Ja tā nav, izlaist pieprasījumu
3. Ja sīkfailu, valodas galvene iestatīts uz norādīto vērtību. Esat pabeidzis!
4. Nevienu sīkfailu, veikt autentifikācijas akreditācijas datu un uzmeklēt lietotājs SPS, atrast valodas izvēle
5. Kas satur sīkfaila galveni un valodu HTTP galvenes. Izdarīt.
Pirmais APX lapas pieprasījuma būs gaisvadu SPS LOOKUP bet kopš tā laika ar katru pieprasījumu ir bez pārlūkus, tāpēc būs native ātrumu. Nav nepieciešams sesijā kešatmiņu vai pārējās pieskaitāmās izmaksas, izmantojot sesijas sīkfailu pārāk. Pēc pārlūkprogrammas aizvēršanas, sesijas sīkdatnes pazūd. Ja lietotājs maina savas valodas preferenci SPS viņi vienkārši vajag aizvērt un atkārtoti atvērt pārlūku, stātos spēkā, tas.
Patiesībā http apdarinātājs nav līmenī iis…ir lietojumprogrammas līmenī (ISAPI filtri ir līmenī IIS)…Es gribētu būt uzmanīgiem, bc SP ir savs apdarinātājs…tāpēc pārliecinieties, lai pārbaudītu to…esam darījuši agrāk, bet bija dažas konfliktu ar SP apdarinātāju.
Es gribētu būt vairāk sliecas izmantot HTTPHandler, vienīgais iemesls, ka man nepatīk pieskaras SharePoint faili. Plus tas ir viegli izveidot SharePoint risinājums izvietot HttHandler ( un izmantot SPWebConfig API modificēt Web. config). Lietotāja slodzi, kam jūs, Varētu iedomāties, ka jums ir prāvs ferma, jūs tiešām nevēlaties iet modifiying faili katrā serverī.
Global.asa failu, izmantojot risinājumu izvietošana ir slikta doma, Ja jūs atsaukt to, sākotnējais fails ir pazudis …
Arī ņemot spēju, lai atsauktu risinājumu ātri varētu būt laba ideja, gadījumā, ja lietas noiet greizi ar vedējs perf.