2010-02-17 19 views
12

Tôi cần một danh sách các nền văn hóa được hỗ trợ bởi .NET 3.5, bất kể hệ điều hành được sử dụng. Điều này có vẻ là một cuộc đấu tranh để có được, mặc dù tôi không chắc chắn tại sao!Những nền văn hóa nào được hỗ trợ bởi lớp CultureInfo trong .NET 3.5?

Chỉnh sửa: Arghh, tôi không biết rằng nó phụ thuộc vào hệ điều hành, điều này sẽ giải thích việc thiếu tài liệu. Bất kỳ ý tưởng về những gì được hỗ trợ bởi hệ điều hành Mac/Linux là tốt?

Xin cảm ơn :)

+0

Ra khỏi tò mò, tại sao bạn cần trong danh sách? – OregonGhost

+0

Chỉ cần tìm hiểu xem chúng ta sẽ tạo ra những nền văn hóa tùy chỉnh và những gì chúng ta có thể sử dụng 'ra khỏi hộp'. Ví dụ, gần đây tôi đã hỏi liệu Welsh có được hỗ trợ hay không. –

+0

Đừng quên rằng những gì CultureInfo cung cấp về cơ bản chỉ là một vài chuỗi (tên trong ba ngôn ngữ, mã ISO, tên tiền tệ) và ngày và định dạng số. Sau này không yêu cầu nền văn hóa chuyên biệt trong hầu hết các trường hợp, vì chúng giống nhau đối với hầu hết các nền văn hóa có liên quan (tức là hầu hết các quốc gia Châu Âu đều có cùng định dạng số). Vì vậy, câu hỏi là, bạn cần một nền văn hóa xứ Wales, hoặc bạn chỉ cần bản dịch tiếng Wales? Bằng cách này, trong khi đó sẽ không giải quyết vấn đề chung của bạn, cy-GB có sẵn trong CultureInfo như một nền văn hóa cụ thể. Một người nào đó yêu cầu hỗ trợ tiếng xứ Wales có thể sẽ có ... – OregonGhost

Trả lời

8

Thật không may, nó phụ thuộc vào hệ điều hành. Kiểm tra here để được hỗ trợ ngôn ngữ mặc định cho mỗi hệ điều hành.

Lưu ý, các CultureInfo documentation cảnh báo:

Windows phiên bản hoặc gói dịch vụ có thể thay đổi nền văn hóa có sẵn.

Trong ASP.NET, đó là trình duyệt quan trọng so với hệ điều hành. Nó có thể cho bạn biết ngôn ngữ mà người dùng muốn thông qua tiêu đề yêu cầu Accept-Language (Mục 14.4). Nếu bạn đặt cấu hình globalization của ứng dụng để enableClientBasedCulture = "true", ASP.NET sẽ cố gắng tự động đặt UICulture và Culture thành giá trị do trình duyệt cung cấp. Ngoài ra, bạn có thể thiết lập văn hóa bằng tay bằng cách kiểm tra các Request.UserLanguages tài sản:

Thật không may, không có cách nào để tạo ra một danh sách đầy đủ các ngôn ngữ có thể từ một hệ điều hành hoặc trình duyệt. Điều gần nhất là IANA Language Subtag Registry. Đây là đăng ký ngôn ngữ được mô tả trong RFC 4646 - tài liệu xác định các thẻ CultureInfo của .NET.

Xin lưu ý, thẻ ngôn ngữ trong Yêu cầu.Người dùng không phải là ngôn ngữ hợp lệ. Bạn sẽ muốn kiểm tra chúng. HTTP 1.1 sử dụng đề xuất cũ hơn cho language tags và không có gì ngăn người nào đó gửi sai ngữ pháp trong tiêu đề ngôn ngữ.

+0

Nếu nó là một ứng dụng ASP.NET, tôi đoán bạn có nghĩa là nó được dựa trên hệ điều hành của máy chủ lưu trữ trang web? –

+0

Trong ASP.NET, trình duyệt cung cấp ngôn ngữ ưa thích. Tôi sẽ cập nhật câu trả lời của mình với các tài nguyên có liên quan. –

1

Có thể tạo các nền văn hóa tùy chỉnh, nhưng lớp mặc định hỗ trợ các nền văn hóa được cung cấp bởi hệ điều hành bạn đang chạy. Có một tài liệu tham khảo về các nền văn hóa supported by default on MSDN

+0

Nếu nó là một ứng dụng ASP.NET, tôi đoán bạn có nghĩa là nó được dựa trên hệ điều hành của máy chủ lưu trữ trang web? –

+0

@ Fiona 'eraid như vậy - nó sẽ có thể cho một khách hàng để kết nối với một nền văn hóa mà máy chủ không hiểu (có lẽ "en-scouse") –

0

Tôi vừa kiểm tra với Culture Explorer 2.0, có sự khác biệt giữa các nền văn hóa chỉ có Windows và các nền văn hóa được cài đặt, cũng như các nền văn hóa .NET Framework (ít nhất là trên hệ thống của tôi) chứa các nền văn hóa chỉ có ngôn ngữ). Tất cả chúng đều được hỗ trợ bởi lớp CultureInfo (và RegionInfo, NumberFormatInfo và vân vân).

Tôi cũng chạy nó trên Mono (trên Linux), nó gần như giống nhau, với các nền văn hóa .NET Framework và nền văn hóa Windows-Chỉ mất tích, nhưng các nền văn hóa cụ thể và trung lập là có. RegionInfo.CurrencyNativeName dường như không được triển khai trong phiên bản Mono của tôi, do đó, nó đổ vỡ khi chọn bất kỳ nền văn hóa nào.

Thật không may, Culture Explorer 2.0 hiện không khả dụng ở bất kỳ đâu (trên gotdotnet.com), tôi đã tải xuống nó một thời gian trước đây. Đó là một công cụ hữu ích cho những thứ như vậy. Bạn có thể có may mắn để tìm thấy một trong một số lưu trữ.

+0

http://www.microsoft.com/middleeast/arabicdev/ DevTools/VSdotNET/samples/CultureExplorer.aspx – erikkallen

+0

@erikkallen: Đó là phiên bản đầu tiên của công cụ. Nó không có tất cả các loại và chỉ hỗ trợ .NET Invariant country, các nền văn hóa ngôn ngữ cụ thể. Tôi không biết về giấy phép của Culture Explorer 2.0 - có thể sau này tôi có thể tải nó lên CodePlex. – OregonGhost

+2

Tôi đã tìm thấy Culture Explorer 2.0 trong tất cả vinh quang của nó trên [Máy ​​Waybach] (http://web.archive.org/web/20070218132812/http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid= b778ff2c-9142-4769-839a-094f51a6f9f4)! –

4

National Language Support (NLS) API Reference liệt kê thông tin địa phương và cho phép bạn chọn hệ điều hành.

Microsoft Locale Builder là công cụ tạo ngôn ngữ tùy chỉnh cho Windows Vista trở lên.

Nhận danh sách các nền văn hóa được hỗ trợ, bao gồm cả các nền văn hóa được tùy chỉnh, cho hệ điều hành.

C# Ví dụ,

System.Globalization.CultureInfo[] cultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures); 
Các vấn đề liên quan