Làm cách nào tôi có thể có các ngôn ngữ khác nhau để xem trong tài liệu FXML để hỗ trợ nhiều quốc gia?Làm thế nào để thực hiện hỗ trợ ngôn ngữ cho JavaFX trong tài liệu FXML?
Trả lời
Sử dụng ResourceBundle
s để lưu trữ văn bản phụ thuộc vào ngôn ngữ và truy cập dữ liệu trong gói bằng cách sử dụng "%resourceKey"
.
Cụ thể, tạo tệp văn bản cho từng ngôn ngữ bạn muốn hỗ trợ và đặt chúng trong đường dẫn lớp. Các Javadocs for ResourceBundle
có các chi tiết về lược đồ đặt tên, nhưng bạn nên có một gói mặc định được xác định bởi BaseName.properties
và các gói cho các ngôn ngữ khác và các biến thể được xác định bởi BaseName_xx.properties
. Ví dụ (với resources
thư mục trong thư mục gốc của classpath):
nguồn/UIResources.properties:
greeting = Hello
nguồn/UIResources_fr.properties:
greeting = Bonjour
Sau đó, trong tập tin FXML của bạn bạn có thể làm
<Label text = "%greeting" />
Để chuyển số ResourceBundle
đến FXMLLoader
làm:
ResourceBundle bundle = ResourceBundle.getBundle("resources.UIResources");
FXMLLoader loader = new FXMLLoader(getClass().getResource("/path/to/FXML.fxml"), bundle);
Parent root = loader.load();
Mã này sẽ được tải bó tài nguyên tương ứng với ngôn ngữ mặc định (thường là địa mà bạn đã đặt ở cấp hệ điều hành), rơi trở lại trên mặc định nếu nó có thể không tìm thấy một gói tương ứng. Nếu bạn muốn buộc nó phải sử dụng một gói Đặc biệt, bạn có thể làm
ResourceBundle bundle = ResourceBundle.getBundle("/resources/UIResources", new Locale("fr"));
Cuối cùng, nếu bạn cần truy cập vào bó tài nguyên trong bộ điều khiển FXML, bạn có thể tiêm nó vào một lĩnh vực loại ResourceBundle
và tên resources
:
public class MyController {
@FXML
private ResourceBundle resources ;
// ...
}
- 1. Hỗ trợ đa ngôn ngữ Trong C#
- 2. PHP7 hỗ trợ ngôn ngữ cho PhpStorm
- 3. Hỗ trợ Emacs cho ngôn ngữ D
- 4. Làm cách nào để thêm hỗ trợ cho ngôn ngữ mới trong FlashDevelop?
- 5. làm thế nào để hỗ trợ thêm ngôn ngữ cho Android
- 6. Làm thế nào để thêm UTF8 cho hỗ trợ không phải tiếng Anh trong JavaFX?
- 7. Hỗ trợ dữ liệu đa ngôn ngữ của SQL Server
- 8. IntelliJ và hỗ trợ JavaFX
- 9. Làm thế nào để làm cho cơ sở dữ liệu Mysql hỗ trợ ngôn ngữ tiếng Ả Rập?
- 10. Hỗ trợ nhiều ngôn ngữ trong một ứng dụng Winforms
- 11. Hỗ trợ ngôn ngữ hiện đại + = nhưng không && =
- 12. Có ngôn ngữ lập trình nào hỗ trợ xml không?
- 13. Ngôn ngữ nào UTF-8 không hỗ trợ?
- 14. Ngôn ngữ chức năng & hỗ trợ cho việc ghi nhớ
- 15. ngôn ngữ nào được hỗ trợ trong collu icu?
- 16. Tài liệu đa ngôn ngữ Android Sdk
- 17. Hỗ trợ cơ sở dữ liệu đa ngôn ngữ nào cho Django 1.3?
- 18. JavaFX IllegalAccessException trong tải FXML()
- 19. Tài liệu ngôn ngữ Powerbuilder
- 20. Làm cách nào để tham khảo tệp javafx fxml trong thư mục tài nguyên?
- 21. Làm thế nào để phát hiện ngôn ngữ hệ thống trong delphi cho dự án đa ngôn ngữ?
- 22. Dotfuscator loại bỏ hỗ trợ ngôn ngữ Windows Phone 7?
- 23. Làm cách nào để hiển thị ngôn ngữ (ngôn ngữ) hiện tại ứng dụng Android?
- 24. Hỗ trợ hai ngôn ngữ trong file travis.ci
- 25. Làm thế nào để làm cho canvas Resizable trong javaFX?
- 26. Ứng dụng web đa ngôn ngữ - làm cách nào để phát hiện ngôn ngữ của người dùng trong ASP.NET?
- 27. Nhân sư: Danh sách các ngôn ngữ được hỗ trợ để làm nổi bật?
- 28. Hỗ trợ ngôn ngữ Azerbaijan bởi Android 2.2?
- 29. Ngôn ngữ kịch bản có hỗ trợ sợi/coroutines?
- 30. JavaFX 8 Hỗ trợ HiDPI
Tôi không thể đặt ResourceBundle trên ContextMenu. Bạn có thể giúp tôi – Krismorte
Trong thực tế đối với những người vẫn còn thắc mắc, tham số bó sẽ được đặt trong cuộc gọi của phương thức tải hoặc hàm tạo làm tham số thứ hai! –
@AlexandrePieroux Câu trả lời không rõ ràng không? "Để chuyển' ResourceBundle' vào 'FXMLLoader' làm ..." –