2011-02-08 44 views
5

Tôi đã tạo một dự án thử nghiệm WPF, một cửa sổ duy nhất với một nút duy nhất trong đó. Sau đó tôi dỡ bỏ dự án và sửa đổi csproj để chứa <UICulture>en-US</UICulture> sau đây. Sau khi xây dựng lại thư mục build bây giờ chứa một thư mục con có tên là en-US và nó chứa một tệp có tên WpfLocalizationTest.resources.dll. Tất cả rõ ràng cho đến nay.Locbaml hoạt động như thế nào?

Sau đó, tôi đã tải xuống mã nguồn cho Locbaml và xây dựng nó. (Không thể tìm thấy bản tải xuống nhị phân ở bất cứ nơi nào, hãy xem hình.)

Sau đó, tôi đã sao chép tệp Locbaml.exe vào thư mục en-US và thử cách sau.

locbaml /parse WpfLocalizationTest.resources.dll /out:test.csv 

Điều này dẫn đến lỗi 'Không thể tải tệp hoặc lắp ráp WpfLocalizationTest.resources.dll hoặc một trong các phụ thuộc của nó. Một nỗ lực đã được thực hiện để tải một chương trình với một định dạng không chính xác. '

Trong thư mục obj \ x86 \ Debug có tệp có tên là WpfLocalizationTest.g.en-US.resources. Tôi đã thử chạy locbaml trên đó, nhưng kết quả là như nhau.

Làm thế nào để sử dụng locbaml? MSDN có đầy đủ các mẫu cockamamie, không có mẫu nào hoạt động. Là locbaml thực sự như thế nào Microsoft dự định ứng dụng WPF được bản địa hóa? Hay họ đã đưa ra những công cụ thích hợp cho công việc?

Trả lời

3

Khi tôi tiếp tục tìm kiếm, tôi đã tìm thấy một liên kết khác tại đây trên Stackoverflow. Các lỗi biên dịch mà chúng tôi ban đầu nhận được liên quan đến một dự án LocBaml đã lỗi thời không được thiết lập cho .Net4.0. Đây là lý do tại sao tôi không thể tạo teh CSV từ DLL và phải đi thẳng vào tệp tài nguyên. Nhấn vào link này để biết thêm chi tiết. Locbaml localization of .net wpf4 application

Liên kết này cung cấp liên kết tới .net 4 nhị phân mà một khi được biên dịch cho phép bạn truy cập thẳng vào dll để tạo CSV bằng LocBaml.

+1

randyc - Bản cập nhật LocBaml thành .NET 4 thực sự hoạt động. Đó là liên kết. Tôi vẫn nghĩ rằng nhóm WPF của MS hoàn toàn bị mất đi khi có liên quan đến bản địa hóa WPF. – Rubio

1

Chỉ cần cập nhật, tôi đã ghi chú vào sáng nay. Hy vọng rằng điều này sẽ giúp bạn tiến xa hơn một chút.

Khi dự án đã được biên soạn sao chép LocBaml.exe vào thư mục dự án mà việc xây dựng đã được tạo ra: Trong trường hợp của tôi, tôi đã copy file vào E: \ localiztion_sample \ localiztion_sample \ obj \ x86 \ Thả

Đây là một phần khó khăn trong việc xây dựng không chứa tất cả các tập tin DLL từ thư mục bin (điều khiển telerik và hội đồng khác). Kết quả là tôi đã đi đến bin \ release \ và sao chép tất cả các tệp DLL và tài nguyên từ đó vào thư mục obj \ x86 \ Release. Đối với các tập tin mà tôi đã được nhắc ghi đè lên, tôi đã xem xét xem có sự khác biệt nào về việc kích hoạt tập tin hay ngày tháng và nếu không thì tôi đã bỏ qua bản sao cho các đối tượng này.

LƯU Ý: Để tôi tạo CSV, tôi phải sao chép tệp dll và tài nguyên từ thư mục bin và đặt chúng vào thư mục obj. Bỏ qua bước này sẽ dẫn đến tệp CSV được tạo nhưng không được điền dữ liệu.

Khi bạn đã sao chép các tệp cần thiết vào thư mục, bạn sẽ phân tích cú pháp tệp .resource nằm trong thư mục Phát hành.

Trong dự án của tôi tập tin tài nguyên được đặt tại:

E: \ localiztion_sample \ localiztion_sample \ obj \ x86 \ Thả

Và tên tập tin có tựa đề: localiztion_sample.g.en-US.resources

Lưu ý: điều này khác với hướng dẫn trên trang web của Microsoft. Microsoft nói rằng bạn nên chạy công cụ LocBaml trên tệp dll nằm trong thư mục en-US. Tuy nhiên sau nhiều lần thử và nghiên cứu, tôi thấy rằng điều này trong thực tế đã gây ra một số vấn đề với khả năng tương thích giữa 32 và 64-bit cũng như nó chỉ phẳng không hoạt động.

Khi đọc qua wpf4 giải phóng cũng như các diễn đàn trực tuyến, đề xuất thay vào đó trỏ đến tệp * .gen.en-Us.resources.* = Tên dự án và gen.en-Us phản ánh sự phát triển ngôn ngữ lựa chọn

Trong lệnh untility VS sau đó bạn sẽ cần phải nhập sau

LocBaml/phân tích cú pháp filename.resources/ra: mẫu-en .csv

Ghi chú: Giả sử bạn đã sao chép tệp LocBaml vào thư mục gốc nơi tệp này tồn tại và bạn đang chạy lời nhắc lệnh làm người quản trị hệ thống. Để dễ dàng sử dụng tôi đã thay đổi thư mục làm việc trong dấu nhắc lệnh tới thư mục dự án VS

Đối với dự án mẫu của tôi lệnh trông như:

* LocBaml/phân tích localization_sample.g.en-US.resources/ra : tạo mẫu en.csv *

lệnh này sau đó tạo ra các tập tin CSV mà hoạt động như một định nghĩa của các dự án hiện tại

Đây là như xa như tôi có tôi đã có thể sửa đổi teh file và tạo lại dll nhưng Tôi đã không thể có được văn hóa để thay đổi trong ứng dụng vì vậy tôi vẫn đang làm việc trên mảnh này. Tôi sẽ reposte một khi tôi nhận được nó làm việc.

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