Làm thế nào để bản địa hóa ứng dụng ASP.NET MVC?


121

Cách tốt nhất để bản địa hóa ứng dụng ASP.NET MVC của bạn là gì?

Tôi muốn đề cập đến hai tình huống:

  • một triển khai ứng dụng trong IIS sẽ xử lý nhiều ngôn ngữ
  • triển khai một ngôn ngữ / ứng dụng.

Trong tình huống đầu tiên, bạn có nên sử dụng một số loại dựa trên chế độ xem như, ~ / View / EN, ~ / View / FI, ~ / View / SWE hay thứ gì đó khác không?

Còn trường hợp thứ hai, chỉ cần cấu hình dựa trên ứng dụng thông qua Web.config và trỏ các ngôn ngữ khác nhau này đến các URL khác nhau?


Ngoài ra đối với các dạng xem trùng lặp, bạn có thể sử dụng tệp ResX tiêu chuẩn để lưu trữ các chuỗi văn hóa cụ thể. Thật không may, việc quản lý và chỉnh sửa các tệp này, đặc biệt là của người dịch là một chút khó chịu và khó khăn. Nó có thể được đơn giản hóa bằng cách lưu trữ tài nguyên trong cơ sở dữ liệu và sử dụng một số công cụ bản địa hóa bên ngoài. Bạn có thể nhìn vào thư viện miễn phí này cung cấp cung cấp nguồn cơ sở dữ liệu: globsite.net/GlobsiteGlobalizationLibrary
Kryszal

Câu trả lời:


72

Bạn cũng có thể có một cái nhìn ở đây ASP.NET MVC 2 Localization hoàn chỉnh hướng dẫnASP.NET MVC 2 mẫu Validation Với Localization những entires sẽ giúp bạn nếu bạn làm việc với ASP.NET MVC 2.


Cảm ơn bạn cho câu trả lời cập nhật này! Một năm trước, tôi đã sử dụng cách tiếp cận của Matt Hawley nhưng gặp phải vấn đề nghiêm trọng với các bài kiểm tra Đơn vị. Tôi đã thử chế nhạo bối cảnh bộ điều khiển, nhưng vẫn còn thiếu một thứ khác và tôi đã bỏ cuộc. Tôi sẽ xem qua cách MVC2 này và hy vọng họ đã tìm ra điều này.
Lauri Larjo

Tôi đã từng sử dụng cách tiếp cận này trong các dự án của mình, tôi nên nói rằng cách tiếp cận này tốt hơn.
fyasar

@fyasar xin chào, chúng tôi có một trang web mua sắm bằng asp mvc, vì vậy khi người dùng chọn ngôn ngữ Ả Rập, chúng tôi muốn đặt toàn bộ trang web là tiếng Ả Rập, chúng tôi có thể sử dụng microsoft bing Translator hoặc microsoft Translator API hay tôi nên mua localize.js để đạt được điều này nhanh chóng ?
shaijut

22

Bạn sẽ bản địa hóa ứng dụng ASP.NET MVC của mình giống như cách bạn làm với ứng dụng ASP.NET Web Form cổ điển.

Bạn sẽ không sử dụng các trang / chế độ xem khác nhau cho mỗi ngôn ngữ, nhưng mỗi trang sẽ hỗ trợ nhiều ngôn ngữ bằng cách sử dụng các cụm vệ tinh.

Bạn có thể xem mục blog của Matt Hawley để biết thêm giải thích và ví dụ.




2

Tôi chưa bao giờ bị thuyết phục về việc xử lý bản địa hóa trong một biểu mẫu như Elijah gợi ý - độ dài và hướng khác nhau có thể dẫn đến các biểu mẫu trông rất phức tạp hoặc khác nhau.

Tôi chỉ mới bắt đầu với MVC nhưng sử dụng phương pháp tách bạn sẽ muốn sử dụng cùng một bộ điều khiển bất kể ngôn ngữ (coi ngôn ngữ chỉ là một khung nhìn) - điều này sau đó sẽ cung cấp cho bạn / Bộ điều khiển / Hành động / ngôn ngữ / biểu mẫu



1

Chúng tôi thực sự đã hoàn toàn khác với việc ghi đè DataAnnotationsMetadaDataProvider . Trong đó, bạn có thể đảm bảo rằng các giá trị DisplayNameAttribute được phân giải thành ngôn ngữ chính xác. Trên thực tế, bạn thậm chí có thể loại bỏ thuộc tính đó và giải quyết bằng tên trường chỉ nếu điều đó có ích.


0

Tôi đã viết bài báo này một thời gian trước đây. Nó sử dụng một công cụ xem tùy chỉnh. http://blog.oimae.com/2011/02/20/cultured-view-engine-for-mvc/


1
Mặc dù bài viết của bạn trên thực tế có thể trả lời câu hỏi, nhưng tốt hơn hết bạn nên đưa các phần thiết yếu của câu trả lời vào đây và cung cấp liên kết để tham khảo. Stack Overflow chỉ hữu ích như các câu hỏi và câu trả lời của nó, và nếu máy chủ blog của bạn bị hỏng hoặc URL của bạn bị di chuyển, câu trả lời này sẽ trở nên vô dụng. Cảm ơn!
sarnold

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.