Dự án hiện tại của tôi, một số trong những người sử dụng sẽ đi du lịch khắp thế giới và khi họ đến các điểm đến khác nhau, sử dụng bất kỳ máy là tiện dụng lúc đó. Máy đánh những sẽ chạy Windows và cài đặt và cấu hình cho miền địa phương địa phương. (Tôi đã chỉ nhận ra đánh máy không có các gói ngôn ngữ đúng… có lẽ sẽ không, Thực tế… Tôi đang đậu xe là một cho bây giờ).
SharePoint cần phải cung cấp một cơ chế theo đó người dùng có thể chọn ngôn ngữ ưa thích của họ và sau đó có RÊU vinh danh ngôn ngữ đó bất kể như thế nào người sử dụng truy cập MOSS. Nói cách khác, bỏ qua bất cứ điều gì trình duyệt cho IIS/MOSS và thay vào đó tìm kiếm ngôn ngữ ưa thích và sử dụng nó.
Chúng tôi sẽ điều tra hai phương pháp tiếp cận:
- HTTP Handler: Trình xử lý HTTP tuỳ chỉnh được cài đặt trên IIS sẽ tra sơ MOSS, Tìm ra ngôn ngữ ưa thích và sau đó chuyển đổi tiêu đề HTTP xung quanh thành phố là cần thiết trước khi đi qua kiểm soát để MOSS.
- Global.asax: Sửa đổi global.asax để thực hiện tương tự. Chúng tôi có thể sửa đổi một cái gì đó khác, nhưng ý tưởng là chúng tôi tìm thấy một số nơi mà chúng tôi có thể chèn logic chuyển đổi miền địa phương của chúng tôi.
Các yếu tố phức tạp khác là rằng chúng ta cần phải hỗ trợ 60k người dùng, về 1,000 mà có thể được đồng thời truy cập MOSS lúc cao điểm tải.
Bộ xử lý HTTP có vẻ khá mạnh mẽ, nhưng có thể là nơi tốt nhất để đặt mã vì nó là ở cấp độ II và hiểu biết tất cả. Nó là một điểm tốt công việc.
Chúng tôi đang nghiêng về hướng một cách tiếp cận kiểu global.asax, chủ yếu là bởi vì chúng tôi tin rằng chúng tôi sẽ có thêm lựa chọn cho bộ nhớ đệm dữ liệu vào thời điểm đó.
Tôi sẽ là viết blog thêm về chủ đề này như tôi tìm hiểu thêm.
Nếu bạn có biết bất cứ điều gì về việc này, please post a comment 🙂
</kết thúc>
Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin
Tôi đã không kiểm tra điều này vì vậy tôi không chắc chắn nếu nó hoạt động.
Lớp trang có một InitializeCulture() phương pháp mà có thể được ghi đè. Nếu bạn làm điều này trong mã đằng sau của masterpage tùy chỉnh của bạn, bạn có thể làm điều gì đó dọc theo dòng:
bảo vệ ghi đè mất hiệu lực InitializeCulture()
{
// ghi đè phương pháp ảo InitializeCulture() để kiểm tra xem nếu cấu hình có chứa một cài đặt ngôn ngữ người dùng
Chuỗi UserCulture = GetCultureFromUserProfile();
Nếu ( UserCulture != "")
{
// đó là một người sử dụng cài đặt ngôn ngữ trong hồ sơ: chuyển sang nó
Thread.CurrentThread.CurrentUICulture = mới CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Rõ ràng là bạn có thể xây dựng một số bộ nhớ đệm vào việc thực hiện phương pháp này.
Nguồn: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?Path=~/aspnet/Samples/localization/LocalizePers.src&file = LocalizePers_cs\LocalizePers_cs.aspx&lang = C % 23 nguồn
Tôi đang nghĩ đến việc xử lý HTTP với dòng sau đây:
1. Yêu cầu đến, kiểm tra tập tin cookie cho cookie phiên làm việc cho sở thích ngôn ngữ (Phiên cookie hết hạn khi trình duyệt được đóng lại)
2. Kiểm tra nếu yêu cầu là dành cho ASPX trang, Nếu không, bỏ qua yêu cầu
3. Nếu cookie tồn tại, thiết lập tiêu đề ngôn ngữ để giá trị được chỉ định. Bạn đang thực hiện!
4. Không có cookie, có khả năng xác thực và tìm kiếm người dùng trong SPS, Tìm tuỳ chọn ngôn ngữ
5. Thiết đầu đề cookie và HTTP ngôn ngữ tiêu đề. Thực hiện.
Đầu tiên APX trang yêu cầu sẽ có chi phí của SPS tra cứu nhưng mọi yêu cầu từ đó về sau với đã không tra cứu do đó sẽ có tốc độ bản xứ. Không cần cho bộ nhớ cache phiên hoặc bất kỳ chi phí khác bằng cách sử dụng một cookie phiên quá. Một khi trình duyệt được đóng lại, cookie phiên đi. Nếu người dùng thay đổi tùy chọn ngôn ngữ của mình tại SPS họ chỉ cần đóng và mở lại trình duyệt cho nó để có hiệu lực.
thực sự xử lý http không phải là ở cấp độ II…nó là ở cấp độ ứng dụng (Bộ lọc ISAPI là ở cấp độ II)…Tôi sẽ cẩn thận TCN SP đã xử lý riêng của mình…Vì vậy hãy chắc chắn để kiểm tra nó ra…Tôi đã thực hiện nó trước, nhưng đã có một số cuộc xung đột với bộ xử lý SP.
Tôi sẽ được thêm nghiêng để sử dụng một HTTPHandler, lý do duy nhất là tôi không thích chạm vào tập tin SharePoint. Cộng với đó là dễ dàng để tạo ra một giải pháp SharePoint để triển khai một HttHandler ( và sử dụng SPWebConfig API để sửa đổi web.config). Bạn có người sử dụng tải làm, Tôi tưởng tượng bạn có một trang trại khá lớn, bạn thực sự không muốn đi modifiying tập tin trên mỗi máy chủ.
Triển khai các tập tin global.asa thông qua một giải pháp là một ý tưởng tồi, Nếu bạn rút lại nó, tập tin ban đầu của bạn là đi …
Cũng có khả năng để rút lại các giải pháp nhanh chóng có thể là một ý tưởng tốt, trong trường hợp mọi thứ đi sai với perf bộ xử lý.