2009-10-12 29 views
7

Tôi có nhiều tệp tài nguyên, bằng nhiều ngôn ngữ khác nhau.Tìm tài nguyên cục bộ bị thiếu trong các tệp resx

Cho phép giả ví dụ chúng tôi đang hỗ trợ 3 ngôn ngữ (en, de, fr), và có tập tin này:

common.resx common.de.resx common.fr.resx

tôi muốn phát hiện các lần xuất hiện khi ví dụ một tài nguyên được yêu cầu trong de, nhưng bị thiếu và vì vậy sẽ chuyển về ngôn ngữ mặc định. Có cách bắt nào không? (vì vậy tôi có thể đăng nhập và sau đó thêm tài nguyên bị thiếu).

Cảm ơn

Trả lời

5

Nếu bạn muốn nắm bắt sự khác biệt, hãy sử dụng RESX Synchronizer. Nó là một ứng dụng mã nguồn mở có thể đồng bộ hóa tất cả các khác biệt từ chính resx để bản địa hoá (nó cho biết thêm và/hoặc loại bỏ các khóa trong tài nguyên bản địa hóa).

Bạn có thể sử dụng nó như sau để sao chép tất cả thay đổi từ common.resx để common.de.resx:

resxsync /v common.resx common.de.resx 

Các/v danh sách lựa chọn tất cả những thay đổi đó là tất cả các phím đã được thêm vào hoặc gỡ bỏ khỏi de resx.

+0

+1 Tự động hoá điều đó dường như thẳng về phía trước và hữu ích! – Greg

+0

Công cụ này bị gián đoạn. Dự án mà nó liên kết với tư cách là một giải pháp thay thế cũng bị ngưng. – LueTm

+0

liên kết không hoạt động nữa. – Dominik

0

Không có gì trong API đọc tài nguyên hiện có để lộ ra các hạn chế bên ngoài. Tuy nhiên, System.Resources.ResourceManager không được niêm phong, do đó, không có gì ngăn cản bạn từ phân lớp nó để nâng cao một sự kiện khi dự phòng là bắt buộc.

2

Giả sử tất cả các thay đổi tập tin tài nguyên bắt đầu phát triển và thực hiện theo cách của họ để sản xuất, điều này có vẻ như một công việc cho một số hình thức phân tích tĩnh.

Tôi sử dụng Zeta Resource Editor vì làm nổi bật các khu vực thiếu bản dịch và cũng là trình giữ chỗ (ví dụ: {0}).

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