Khi thực hiện quốc tế hóa trong Java, bạn gán một khóa chuỗi cho mỗi thư. Thực hành tốt nhất là gì, nơi đặt các khóa chuỗi đó. Mục tiêu là cho phép tái cấu trúc dễ dàng (ví dụ: thay đổi tên khóa), mã sạch và dễ đọc, tách mối quan tâm nhưng vẫn không sao chép khóa/tin nhắn ngay cả khi được gọi từ các phần khác nhau của mã.Nơi đặt các chuỗi khóa i18n trong Java
//bad way, strings directly in code
messages.getString("hello_key");
-
// better way, use String constants
public static final String HELLO_KEY = "hello_key";
...
messages.getString(HELLO_KEY);
-
// other (better?) way, put all keys in one huge central class
public class AllMessageKeys {
public static final String HELLO_KEY = "hello_key";
...
}
public class Foo {
...
messages.getString(AllMessageKeys.HELLO_KEY);
}
-
// other (better?) way, put all keys in neighbor class
public class FooMessageKeys {
public static final String HELLO_KEY = "hello_key";
}
public class Foo {
...
messages.getString(FooMessageKeys.HELLO_KEY);
}
Bất kỳ đề xuất khác? Tốt nhất? Tôi đang sử dụng IDE Eclipse, nếu điều đó làm cho phần tái cấu trúc trở nên rõ ràng hơn.
Làm rõ: trong ví dụ trên "thông báo" thuộc loại ResourceBundle.
Đừng downvote câu trả lời nếu bạn muốn mọi người bận tâm để trả lời câu hỏi của bạn. Tôi sẽ sửa đổi câu trả lời của tôi, nhưng tôi không nghĩ rằng nó là giá trị nỗ lực nữa. –
@Stephen C: Là đối số phản đối: hãy bỏ phiếu xuống bình chọn câu trả lời nghèo nàn. Đó là toàn bộ điểm của hệ thống bầu cử. Đó là ở đây để dễ dàng phân biệt giữa những người được rõ ràng, đủ cho một số người và những người mà không ai hiểu. Ngoài ra nó sẽ phục vụ như một số liệu chính xác (mặc dù nó thường không). –