Dưới đây là trích dẫn từ các Qt documentation:quốc tế hóa tài nguyên Qt không
Một số nguồn lực cần thay đổi dựa trên miền địa phương của người dùng, chẳng hạn như file dịch hoặc biểu tượng. Điều này được thực hiện bằng cách thêm thuộc tính lang vào thẻ qresource, chỉ định chuỗi ngôn ngữ phù hợp. Ví dụ:
<qresource> <file>cut.jpg</file> </qresource> <qresource lang="fr"> <file alias="cut.jpg">cut_fr.jpg</file> </qresource>
Nếu miền địa phương của người dùng là Pháp (tức là, QLocale :: hệ thống() Tên() trả về "fr_FR".),: /cut.jpg trở thành một tham chiếu đến hình ảnh cut_fr.jpg . Đối với các miền khác, cut.jpg được sử dụng.
Tôi cố gắng thực hiện việc này và không thành công. Đây là một phần từ tệp * .qrc của tôi:
<qresource>
<file>HtmlTemplates/angle.html</file>
<file>HtmlTemplates/bottom.html</file>
<file>HtmlTemplates/top.html</file>
</qresource>
<qresource lang="en">
<file alias="HtmlTemplates/angle.html">HtmlTemplates/en/angle.html</file>
<file alias="HtmlTemplates/bottom.html">HtmlTemplates/en/bottom.html</file>
<file alias="HtmlTemplates/top.html">HtmlTemplates/en/top.html</file>
</qresource>
Như bạn thấy, nó chính xác giống như ví dụ trong sách hướng dẫn. Tuy nhiên, cố gắng để biên dịch tập tin này mang lại điều này:
..\Blinky_2.0\resources.qrc: Warning: potential duplicate alias detected: 'angle.html'
..\Blinky_2.0\resources.qrc: Warning: potential duplicate alias detected: 'bottom.html'
..\Blinky_2.0\resources.qrc: Warning: potential duplicate alias detected: 'top.html'
Và nếu tôi cố gắng để thay đổi * .qrc tập tin trong QtCreator, nó reset nó vào một trạng thái sai xóa lang
thuộc tính:
<qresource prefix="/">
<file>HtmlTemplates/angle.html</file>
<file>HtmlTemplates/bottom.html</file>
<file>HtmlTemplates/top.html</file>
<file alias="HtmlTemplates/angle.html">HtmlTemplates/en/angle.html</file>
<file alias="HtmlTemplates/bottom.html">HtmlTemplates/en/bottom.html</file>
<file alias="HtmlTemplates/top.html">HtmlTemplates/en/top.html</file>
</qresource>
Vì vậy, tôi buộc phải lặp qua tài nguyên cho các miền địa phương khác nhau trong mã của tôi. Tôi đang thiếu một cái gì đó hoặc là một lỗi Qt? Phiên bản Qt là 4.8.4, phiên bản QtCreator là 2.8.1.