2008-10-10 31 views
117

Thực hành tốt nhất để bản địa hóa ứng dụng ASP.NET MVC của bạn là gì?Làm thế nào để bản địa hóa ứng dụng ASP.NET MVC?

Tôi muốn che hai tình huống: triển khai

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

Trong trường hợp đầu tiên bạn nên đi với một số loại dựa trên điều như, ~/View/EN, ~/View/FI, ~/View/SWE hoặc một cái gì đó khác?

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?

+0

Ngoài cách xem trùng lặp, bạn có thể sử dụng tệp ResX chuẩn để lưu trữ chuỗi văn bản cụ thể. Thật không may, quản lý và chỉnh sửa các tập tin này, đặc biệt là bởi các dịch giả 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ể xem thư viện miễn phí này cung cấp nhà cung cấp tài nguyên cơ sở dữ liệu: http://globsite.net/GlobsiteGlobalizationLibrary – Kryszal

Trả lời

71

bạn cũng có thể có một cái nhìn ở đây ASP.NET MVC 2 Localization complete guideASP.NET MVC 2 Model Validation With Localization những entires sẽ giúp bạn nếu bạn làm việc với ASP.NET MVC 2.

+0

Cảm ơn bạn đã trả lời câu trả lời 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 các 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 điều khiển, nhưng cái gì đó khác vẫn còn thiếu và tôi đã từ bỏ. Tôi sẽ đi qua cách MVC2 này, và hy vọng họ đã tìm ra điều này. –

+0

Tôi từng sử dụng phương pháp 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

+0

Đó là một bài viết tuyệt vời - cảm ơn bạn đã đăng bài. –

22

Bạn sẽ bản địa hóa ứng dụng ASP.NET MVC của bạn rất nhiều theo cùng cách bạn sẽ sử dụng ứ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ụm từ vệ tinh.

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

3

Hãy xem dự án MvcStore của Rob Connery. Anh ấy thực hiện một màn hình hiển thị một cách để giải quyết vấn đề toàn cầu hóa.

http://wekeroad.com/2008/04/24/mvcstore-part-5

+3

Liên kết đã chết, bạn có thể cập nhật không? – Ciwan

2

Tôi chưa bao giờ bị thuyết phục về việc xử lý nội địa hóa theo dạng như Elijah đề xuất - các độ dài và hướng khác nhau có thể dẫn đến các dạng tìm kiếm 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ẽ sử dụng cùng một bộ điều khiển bất kể ngôn ngữ (điều trị ngôn ngữ giống như chế độ xem) - điều này sẽ cung cấp cho bạn/Controller/Action/language/hình thức

2

Có hướng dẫn tốt với cập nhật gần đây về Cách bản địa hóa ứng dụng asp.net mvc bao gồm tất cả các khía cạnh bao gồm nội địa hóa DisplayName, Xác thực, sử dụng Định tuyến (lưu trữ tên văn bản trong URL), các vấn đề với bộ nhớ cache đầu ra và ... Alex Adamyan Blog - While my keyboard gently weeps

0

Tôi đã viết bài viết 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

Trong khi bài viết của bạn thực sự có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (http://meta.stackexchange.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đâ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 các URL của bạn bị di chuyển xung quanh, câu trả lời này sẽ trở thành vô ích. Cảm ơn! – sarnold

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 giải quyết vào đúng ngôn ngữ. Thực ra 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ỉ khi đó sẽ là bất kỳ trợ giúp nào.

Các vấn đề liên quan