2010-06-10 32 views
7

Tôi đã phát triển một ứng dụng GWT bằng cách sử dụng quốc tế hóa i18n. Ở chế độ Host/Dev, nó hoạt động tốt, nhưng việc khởi chạy trình biên dịch GWT cho lỗi này: Không tìm thấy tài nguyên nào cho xxx khóa, như dưới đây.GWT 2.X Không tìm thấy tài nguyên nào cho khóa

Compiling module ...rte.RTE 
    Scanning for additional dependencies: file:/home/.../client/i18n/RTEValidationMessages.java 
     Computing all possible rebind results for '...client.i18n.RTEMessages' 
     Rebinding ...client.i18n.RTEMessages 
      Invoking [email protected] 
       Processing interface ...client.i18n.RTEMessages 
        Generating method body for txtIndirizzo3() 
        [ERROR] No resource found for key 'txtIndirizzo3' 

Thư được tải với liên kết trễ.

public class RTEValidationMessages { 
    private RTEMessages additionalMessages; 

    public RTEValidationMessages() { 
     additionalMessages = GWT.create(RTEMessages.class); 
    } 
} 

Xóa phương pháp đưa ra lỗi, dẫn đến phương pháp ngẫu nhiên khác có lỗi, không phải là phương thức trước hoặc sau trong giao diện ... client.i18n.RTEMessages.

Trợ giúp được đánh giá cao.

Trả lời

14

Tôi đã gặp lỗi tương tự một lần khi sử dụng quốc tế hóa. Tôi có các tệp thuộc tính cho các ngôn ngữ tiếng Anh và Ba Lan: labels_en.propertieslabels_pl.properties. Giải pháp là tạo ra một tập tin labels.properties (trong trường hợp của tôi nó chỉ là một bản sao của labels_en.properties). Thật kỳ lạ nhưng bằng cách nào đó nó đã giúp.

Bạn cũng nên giữ các tệp thuộc tính trong cùng một gói với lớp RTEMessages của mình.

+1

Cảm ơn. Google nên làm cho dự án Showcase của họ thêm mô-đun. Sử dụng đoạn mã từ nó là vô cùng bất tiện vì phụ thuộc như thế này. – expert

+0

GWT sử dụng tệp này làm mặc định, khi khóa không được tìm thấy trong tệp miền địa phương cụ thể. Thay vào đó, bạn có thể chú thích các phương thức của mình trong giao diện với '@ DefaultMessage' – damluar

1

cũng 2 điều quan trọng (xem docs):

In order to use internationalized characters, make sure that your host HTML file contains the charset=utf8 content type in the meta tag in the header:

<meta http-equiv="content-type" content="text/html;charset=utf-8" /> 

You must also ensure that all relevant source and .properties files are set to be in the UTF-8 charset in your IDE.

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