2008-09-17 30 views
17

Dường như không có cách nào tốt để bản địa hóa một ứng dụng WPF. MSDN dường như nghĩ rằng xả rác XAML của tôi với x:Uid 's, tạo ra các tập tin CSV, và sau đó tạo ra các hội đồng mới (sử dụng mã mẫu của họ!) Là câu trả lời. Tệ hơn nữa, quá trình này không giải quyết cách bản địa hóa hình ảnh, các đốm màu nhị phân (các tệp PDF), hoặc các chuỗi được nhúng trong mã.Cách tốt nhất để bản địa hóa một ứng dụng WPF là gì, sans LocBAML?

Vì vậy, làm thế nào bạn có thể bản địa hoá một ứng dụng:

  1. Có nhiều cụm
  2. Có hình ảnh và các đốm màu nhị phân khác (ví dụ: tài liệu PDF) mà cần phải được bản địa hoá
  3. Có dữ liệu chuỗi không có trong XAML (ví dụ: MessageBox.Show("Hello World");)
+0

Câu trả lời bạn chấp nhận có nhiều câu trả lời. Bạn có thể chỉ ra những gì bạn đã chọn? – Dmitriy

+0

Đã quá lâu rồi, tôi quên mất! Doh! –

Trả lời

8

Không phải chuyên gia ở đây, nhưng "xả rác" xaml của bạn với x: Uids không tệ hơn "xả rác" mã Windows Forms của bạn với tất cả các bước g bảng vô nghĩa bạn phải làm để bản địa hoá chúng.

Theo như tôi hiểu, các ứng dụng WPF vẫn hỗ trợ "tất cả các tài nguyên khung CLR bao gồm bảng chuỗi, hình ảnh, v.v." có nghĩa là bạn có thể có tài nguyên được bản địa hoá.

Tất nhiên, sẽ đơn giản hơn nhiều nếu bạn tạo tiện ích mở rộng đánh dấu đã xử lý phần lớn điều vô nghĩa này cho bạn. You can find an example of someone doing this here.here's another, similar solution.

+3

Hey, folks, như nhận xét này, câu trả lời này là *** gần như tám tuổi ***. Vui lòng tìm hiểu thêm thông tin cập nhật về cách bản địa hóa các ứng dụng WPF. Không cần phải upvote câu trả lời, chỉ cần upvote bình luận này/để lại chi tiết về những gì bạn tìm thấy! – Will

0

Bạn có thể sử dụng tệp "ResX" cũ hỗ trợ tất cả các trường hợp được đề cập của bạn. Làm thế nào điều này có thể được thực hiện trong một ứng dụng WPF được giải thích ở đây:

WPF Application Framework (WAF) => Xem Localization mẫu

10

Bạn nên có một cái nhìn tại bài viết và mã có sẵn here. Nó mô tả các cách khác nhau để bản địa hóa các ứng dụng WPF, bằng cách sử dụng LocBaml, các phần mở rộng đánh dấu tùy chỉnh, hoặc các thuộc tính đính kèm. IMHO giải pháp tốt nhất là sử dụng phần mở rộng đánh dấu và tài nguyên Resx. Mã này chứa một khung bản địa hóa để làm điều đó.

0

thử các tiện ích GetText của Gnu và các ứng dụng hỗ trợ. Nó có các lớp generate C# dựa trên ResourceManager và ResourceSets, và tất nhiên bạn có thể sử dụng lại các bản dịch cho các phần khác của ứng dụng của bạn - ví dụ: trang web, mã gốc hoặc iphone, v.v.

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