Mengenai projek semasa saya, beberapa pengguna akan perjalanan di seluruh dunia dan apabila mereka tiba di destinasi yang berlainan, menggunakan Mesin apa-apa yang berguna pada masa. Mesin tetamu tersebut akan menggunakan Windows dan memasang dan menkonfigurasi bagi penempatan tempatan. (Saya baru sahaja menyedari bahawa mesin tetamu mungkin tidak mempunyai pek bahasa yang betul… mungkin tidak akan, sebenarnya… Saya letak yang satu untuk sekarang).
SharePoint perlu menyediakan satu mekanisme di mana pengguna boleh memilih bahasa mereka dan kemudian harus menghormati bahasa tersebut tanpa mengira bagaimana pengguna mengakses Lumut Lumut. Dalam erti kata lain, mengabaikan apa sahaja pelayar memberitahu IIS/MOSS dan sebaliknya melihat bahawa bahasa dan menggunakannya.
Kami akan menyiasat dua pendekatan:
- HTTP Handler: A Pengendali HTTP adat dipasang pada IIS akan mencari profil MOSS pengguna, mengetahui bahasa pilihan dan kemudian bertukar tajuk HTTP sekitar seperti yang diperlukan sebelum lulus kawalan MOSS.
- global.asax: Ubah suai global.asax untuk melakukan perkara yang sama. Kami mungkin mengubah suai sesuatu yang lain, tetapi idea bahawa kita dapati sesetengah tempat di mana kita boleh memasukkan logik menukar penempatan kami.
Faktor lain merumitkan adalah bahawa kita perlu untuk menyokong pengguna 60k, kira-kira 1,000 yang boleh serentak mengakses MOSS pada beban puncak.
The Pengendali HTTP kelihatan agak drastik, tetapi mungkin tempat terbaik untuk meletakkan Kod tersebut kerana ia adalah pada tahap IIS dan Maha Mengetahui. Ia adalah satu titik baik kerja.
Kami condong ke arah pendekatan jenis global.asax, kerana kami percaya bahawa kami akan mempunyai lebih banyak pilihan untuk caching data pada ketika itu.
Saya akan blog lebih mengenai perkara ini kerana saya mengetahui lebih lanjut.
Jika anda tahu apa-apa tentang perkara ini, please post a comment 🙂
</akhir>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin
Aku belum diuji ini supaya saya tidak pasti jika ia berfungsi.
Kelas Laman yang telah InitializeCulture untuk() kaedah yang boleh diganti. Jika anda lakukan ini dalam kod di belakang anda masterpage adat, anda boleh melakukan sesuatu di sepanjang baris:
menimpa dilindungi terbatal InitializeCulture()
{
// mengatasi kaedah maya InitializeCulture() untuk menyemak jika profil mengandungi persekitaran bahasa pengguna
tali UserCulture = GetCultureFromUserProfile();
jika ( UserCulture != "")
{
// Terdapat satu setting bahasa pengguna dalam profil: menukar kepadanya
Thread.CurrentThread.CurrentUICulture = CultureInfo baru(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Sudah tentu anda boleh membina beberapa cache dalam pelaksanaan kaedah ini.
Source: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?PATH=~/aspnet/samples/localization/LocalizePers.SRC&fail = LocalizePers_cs\LocalizePers_cs.aspx&Lang = C % 23 sumber
Saya berfikir HTTP pengendali dengan aliran berikut:
1. Permintaan yang datang dalam, Semak cookies untuk sesi kuki bagi keutamaan bahasa (session cookies untuk tamat apabila pelayar ini ditutup)
2. Semak jika permintaan untuk ASPX halaman, Jika tidak, Langkau permintaan
3. Jika wujud kuih, Setkan pengepala Bahasa kepada nilai yang ditentukan. Anda telah selesai!
4. Tidak ada cookie, mengambil kelayakan pengesahan dan melihat pengguna di SPS, mencari keutamaan bahasa
5. Set kuki pengepala dan pengepala Bahasa HTTP. Dilakukan.
Pertama APX laman permintaan akan mempunyai overhead SPS lookup tapi setiap permintaan kemudiannya dengan carian tidak jadi akan kelajuan asli. Tidak perlu untuk cache sesi atau sebarang overhed lain dengan menggunakan kuki sesi terlalu. Sebaik sahaja pelayar ditutup, cookie sesi tersebut hilang. Jika pengguna menukar pilihan bahasa mereka di SPS mereka hanya perlu untuk tutup dan buka semula pelayar kerana ia berkesan.
sebenarnya pengendali http tidak di peringkat iis…Ianya di peringkat permohonan (Penapis ISAPI berada di tahap IIS)…Saya akan berhati-hati bc SP telah melalui sendiri…Jadi pastikan untuk ujian itu…Saya telah melakukannya sebelum tetapi mempunyai beberapa konflik dengan pengendali SP.
Saya akan lebih cenderung untuk menggunakan HTTPHandler yang, satu-satunya alasan adalah bahawa saya tidak suka menyentuh fail SharePoint. Serta mudah untuk mencipta penyelesaian SharePoint untuk menggunakan HttHandler yang ( dan gunakan SPWebConfig API untuk mengubah suai konfigurasi web ini). Mempunyai beban pengguna anda lakukan, Saya bayangkan anda mempunyai sebuah ladang yang agak besar, anda benar-benar tidak mahu pergi modifiying fail di setiap pelayan.
Menggerakkan fail global.asa melalui penyelesaian adalah idea yang buruk, Jika anda menarik balik Ia, fail asal yang hilang …
Juga mempunyai keupayaan untuk menarik balik penyelesaian dengan cepat mungkin satu idea yang baik, Sekiranya sesuatu yang tidak diingini tidak kena dengan prestasi daripada pengendali.