2013-03-08 27 views
7

Tôi đang làm việc với một ứng dụng MVC 4 ban đầu được tạo ra với mục đích có thể yêu cầu bản địa hóa ngôn ngữ, do đó, sử dụng nhiều tệp .resx và nhúng tham chiếu tương ứng trong toàn bộ dự án. Khi nó quay ra, các ứng dụng sẽ chỉ được sử dụng bởi khán giả nói tiếng Anh và thực sự không có ngôn ngữ khác đã được nạp vào. Những gì chúng tôi đã có bây giờ là một chi phí mỗi khi chúng ta cần phải đặt văn bản trên một trang và tăng mâu thuẫn như tiếng Anh ngôn ngữ được mã hóa cứng vào những nơi không thể truy cập trực tiếp vào các tệp tài nguyên như tệp .js và dữ liệu tham chiếu trong DB.Ngôn ngữ bản địa có thể được tự động đảo ngược thiết kế từ các tệp .resx không?

Thiếu nhiều việc sao chép và dán, có cách nào tự động trích xuất các giá trị ngôn ngữ tiếng Anh từ các tệp tài nguyên và thay thế các tham chiếu của chúng trong các chế độ xem không? Trong một thế giới hoàn hảo, sẽ có một công cụ để thực hiện điều này và chắc chắn đó là khái niệm có thể thực hiện được, mọi thứ như thế này có tồn tại không?

Trả lời

1

Bạn sẽ phải viết kịch bản. Tôi đã thực hiện các công cụ tương tự với thao tác xử lý AST nền tảng Mono.Cecil và mono API của O2.

Nếu bạn cho tôi một dự án nhỏ với việc sử dụng, bạn có thể cần (một file resx và một cái nhìn MVC) Tôi có thể cho bạn một đoạn mã ví dụ

1

Tôi đã không nhìn thấy bất cứ điều gì mà sẽ chăm sóc này . Suy nghĩ đầu tiên của tôi là vì các vấn đề nội địa hóa có thể được trình bày trong hầu hết các giải pháp "ngoài hộp".

Điều này có thể được tìm nạp nhiều, nhưng cho nó ảnh chụp. Bạn có thể viết một ứng dụng C# mà có thể tải các hội đồng có chứa các tập tin tài nguyên, sau đó lặp qua tất cả các tập tin trong dự án và thay thế các khóa tài nguyên với các giá trị?

Như bạn đã nói, nó có thể được viết kịch bản, và điều này có vẻ là cách dễ nhất nhưng thô lỗ nhất để hoàn thành nhiệm vụ trong tâm trí của tôi. Tùy thuộc vào số lượng tài nguyên bạn đang nói về, rõ ràng là có thể dễ dàng và an toàn hơn để sao chép/dán.

0

Cụm truyền hình vệ tinh..Nếu bạn có tất cả tài nguyên ứng dụng được đặt trong một dự án thì hãy tạo ngôn ngữ không mặc định mà bạn muốn triển khai. Ví dụ fr_ca.ErrorMsg | en_gb.ErrorMsg và en_Us.ErrorMsg. Ngôn ngữ mặc định có thể được chỉ định trong chính Thread.CultureInfo Nếu en_us sau đó điền bạn en_us tập tin với tất cả các mục cần và các nguồn lực khác sẽ chỉ được nạp nếu nó không tồn tại trong tài nguyên mặc định-> en_us.

+0

Câu hỏi đặt ra là liệu có thể _remove_ bản địa hóa, không thêm nó! –

+0

Tôi xin lỗi trước. Xóa nội địa hóa, Nếu bạn đã bản địa hóa hiện tại, hãy sử dụng tài nguyên ngôn ngữ mặc định và xóa phần còn lại. Hoặc xóa tài nguyên ngôn ngữ khỏi ứng dụng của bạn và xây dựng lại từ đó :( –

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