È possibile tradurre tutto ciò che si desidera in fase di esecuzione utilizzando tr(), a condizione che il file .qm abbia una traduzione/contesto corrispondenti. Non dovrebbe fare alcuna differenza se il lupdate l'ha estratto o meno.
Non so come rendere lupdate per estrarre stringhe da XML arbitrario, ma ciò non significa che non sia possibile utilizzare linguisti.
- . I file di file sono anche XML; dovrebbe essere facile creare un XSLT che trasformi il tuo XML in un file .ts. Se si desidera utilizzare come target uno standard anziché Qt, lupdate (e linguista) possono elaborare anche i file XLIFF.
- è possibile avere più file .ts (basta chiamare QTranslator :: carico più di una volta, quando la sua creazione)
Se si vuole veramente avere tutto in un unico file per il traduttore, avere la vostra copia XSLT il file generato da lupdate nel suo output.
Finché si utilizza un nome di contesto che non duplica qualcosa utilizzato nel codice sorgente, questo non dovrebbe essere diverso (dal punto di vista di Qt) dal modo in cui molte app caricano un .qm per ogni DLL quello ha GUI.
Sarebbe bello se lupdate accetterebbe coppie stringa/contesto invece di solo file; quindi si potrebbe semplicemente includere tali cose nel sistema di compilazione. – Joey
Ho trovato un modo più semplice per farlo. Controlla la mia risposta a: http://stackoverflow.com/questions/28166081/can-i-use-tr-and-lupdate-on-xml-files/28168782#28168782 –