Ecco la citazione dal Qt documentation:Qt internazionalizzazione risorsa non riesce
Alcune risorse bisogno di cambiare in base locale dell'utente, come ad esempio file di traduzione o icone. Questo viene fatto aggiungendo un attributo lang a il tag qresource, specificando una stringa locale appropriata. Per esempio:
<qresource> <file>cut.jpg</file> </qresource> <qresource lang="fr"> <file alias="cut.jpg">cut_fr.jpg</file> </qresource>
Se locale dell'utente è il francese (cioè, QLOCALE :: sistema() Nome() restituisce "fr_FR".),: /cut.jpg diventa un riferimento all'immagine cut_fr.jpg . Per vengono utilizzate altre impostazioni locali, cut.jpg.
Provo a fare questo e fallisco. Ecco una parte del mio file * .qrc:
<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>
Come si vede, segue esattamente lo stesso modello come l'esempio nel manuale. Tuttavia, cercando di compilare questo file cede questo:
..\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'
E se cerco di modificare il file * .qrc in QtCreator, si resetta ad uno stato sbagliato cancellare i lang
attributi:
<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>
Quindi sono costretto a scorrere le risorse per diverse impostazioni locali nel mio codice. Mi manca qualcosa o si tratta di un bug Qt? La versione di Qt è 4.8.4, la versione di QtCreator è 2.8.1.