2012-12-18 29 views
5

Tôi đang cố gắng hỗ trợ nhiều ngôn ngữ trong một giải pháp có nhiều dự án và chuỗi.Đặt văn hóa hiện tại cho toàn bộ giải pháp

Tôi có 2 tệp tài nguyên, một tệp có chuỗi tiếng Anh và một có chuỗi tiếng Pháp.

Tôi đang thiết nền văn hóa hiện nay như sau:

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(isEnglish ? "en-US" : "fr-CA"); 

Có cách nào để thiết lập các nền văn hóa hiện nay trên toàn cầu, cho toàn bộ giải pháp, hay tôi phải làm điều này cho mỗi thread mà cần phải truy cập chuỗi?

Trả lời

10

Trong Khuôn khổ .NET 4.5, CultureInfo.DefaultThreadCurrentCulture Property lấy hoặc đặt văn bản mặc định cho các chủ đề trong miền ứng dụng hiện tại.

Trong .NET Framework 4 và các phiên bản trước, theo mặc định, văn bản của tất cả các chủ đề được đặt thành văn hóa hệ thống Windows. Đối với các ứng dụng có văn hóa hiện tại khác với văn hóa hệ thống mặc định, hành vi này thường không mong muốn. Trong Khuôn khổ .NET 4.5, thuộc tính mặc định DefaultThreadCurrentCulture cho phép ứng dụng xác định văn hóa mặc định của tất cả các luồng trong miền ứng dụng.

0

Khi bạn đặt CurrentThread, giá trị này được đặt trong khoảng thời gian của ứng dụng. Chỉ cần chắc chắn rằng bạn làm điều đó trước khi bạn khởi tạo bất kỳ UI. Nhìn vào đây MSDN blog để biết thêm thông tin.

4

Bạn có thể thêm một phần toàn cầu trong vòng system.web trong web.config

<globalization culture="en-US" uiCulture="en-US" /> 
Các vấn đề liên quan