Mənim cari layihə haqqında, istifadəçilər bəzi dünyada səyahət edəcək və müxtəlif istiqamətlərə gəlmək zaman, use whatever machine is handy at the time. Those guest machines will be running Windows and installed and configured for the local locale. (Mən qonaq maşın sağ dil paketleri, ola bilər ki sonra… ola bilsin ki, iradə, faktiki olaraq… İndi ki, bir otopark alıram).
SharePoint needs to provide a mechanism whereby the user can pick their preferred language and then have MOSS honor that language regardless of how the user accesses MOSS. In other words, disregard whatever the browser tells IIS/MOSS and instead look up that preferred language and use it.
Biz iki yanaşmanın araşdırmaq olacaq:
- HTTP Handler: IIS yüklü Xüsusi HTTP handler istifadəçi MOSS profil qədər görünür, tercih edilen dil anlamaq və sonra MOSS nəzarət keçən əvvəl ətrafında olduğu kimi HTTP başlığı keçid.
- Global.asax: Modify global.asax to do the same thing. We may modify something else, but the idea is that we find some place where we can insert our locale-switching logic.
Digər mürəkkəbləşdirən amil biz 60k istifadəçilər dəstək lazımdır ki,, haqqında 1,000 eyni zamanda pik yük da MOSS erişmekte bilər olan.
HTTP handler olduqca qəti görünür, but possibly the best place to put the code since it’s at the IIS level and all-knowing. It’s a good single point of work.
Biz Global.asax növü yanaşma doğru meyl edirik, biz o anda önbelleğiyle məlumat üçün daha çox seçim olacaq iman əsasən çünki.
Daha çox məlumat kimi mən bu mövzuda blog daha çox olacaq.
Bu barədə bir şey bilirsiniz varsa, zəhmət olmasa şərh yazın 🙂
</son>
Da Twitter məni izləyin http://www.twitter.com/pagalvin
Mən əmin deyiləm ki, belə də işləyir, əgər mən bu test deyil.
Səhifənin sinif bir InitializeCulture var() overridden ola biləcək metod. Xüsusi masterpage və arxasında kodu bunu əgər, sizin xətt şey ola bilər:
mühafizə override etibarsız InitializeCulture()
{
// virtual metodu InitializeCulture yalnış() Anketi istifadəçi dil qəbulu varsa yoxlamaq üçün
simli UserCulture = GetCultureFromUserProfile();
əgər ( UserCulture != "")
{
// Profile bir istifadəçi dil qəbulu var: bu keçmək
Thread.CurrentThread.CurrentUICulture = yeni CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Aydındır ki, bu üsulu yerinə bir caching yarada.
Mənbə: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?path = ~ / aspnet / nümunələri / localisation / LocalizePers.src&file = LocalizePers_cs\LocalizePers_cs.aspx&lang = C% 23 mənbə
Mən aşağıdakı axını ilə HTTP handler düşünür alıram:
1. Request gəlir, dil tercihi üçün session cookie üçün çerezleri yoxlamaq (brauzer bağlıdır olduğunda daxil çerezleri başa çatır)
2. Sorğu ASPX səhifə üçün yoxlayın, əgər, sorğu keçmək
3. Cookie varsa, müəyyən edilmiş dəyəri dil başlığını müəyyən. Siz edilir!
4. Heç bir cookie, doğrulama etimadnamə almaq və SPS, kullanıcının yuxarı baxmaq, dil tercihi tapmaq
5. Cookie mövzu və HTTP dil başlığını seçin. Done.
Ilk APX səhifə sorğu yoxdur lookups vardır ilə SPS axtarış və yerüstü lakin sonra hər bir sorğu olacaq elə doğma sürətli olacaq. Də session cookie istifadə edərək sessiya cache və ya digər yerüstü ehtiyac. Brauzer bağlıdır dəfə, İclasda cookie üz gedir. Istifadəçi SPS öz dillərində üstünlük dəyişir, onlar yalnız təsir etmək üçün brauzer yaxın ve yeniden açmaq lazımdır.
faktiki http handler IIS səviyyədə deyil…bu tətbiq səviyyədə deyil (ISAPI Filters IIS səviyyədədir)…i ehtiyatlı bc SP öz handler var olacaq…bunu test olun…Mən əvvəl bunu etdik, lakin SP handler bəzi münaqişə var.
Mən HTTPHandler istifadə daha çox meylli olardılar, yeganə səbəbi Mən SharePoint faylları toxunan sevmiyorum ki,. Plus bir HttHandler yerləşdirmək SharePoint həll yaratmaq üçün asandır ( və web.config dəyişdirmək üçün SPWebConfig API-istifadə). Bunu istifadəçi yük olan, Mən sizə bir əhəmiyyətli təsərrüfatı var təsəvvür ediyorum, həqiqətən hər server modifiying faylları getmək istəmirəm.
Bir həll vasitəsi global.asa fayl yerləşdirilməsi pis bir fikir, onu geri əgər, orijinal fayl bitti …
Də həll dönmək imkanı olan tez bir yaxşı ideya ola bilər, halda əşyaları handler və Performans ilə yanlış getmək.