I segnaposto sono parte integrante delle stringhe e permettono allo sviluppatore di generare dinamicamente del testo su base parametrica. Nel caso di Android sono generalmente racchiusi tra tag XML specifici, che utilizzano lo spazio di nomi xliff.
In luogo della comune forma %1$s, per esempio, viene utilizzata una sequenza simile a:
<xliff:g id="application">%1$s</xliff:g>
Anche se questo facilita la gestione lato codice, aumenta la complessità lato traduzione. Sono i software normalmente utilizzati dai traduttori a venire in aiuto semplificando opportunamente la forma del segnaposto e proteggendone la struttura interna dalle mani dell’uomo.
Il traduttore si trova quindi a gestire uno o più mattoncini elementari che deve saper spostare e integrare opportunamente. La seguente schermata mostra un esempio in cui la rimozione accidentale di uno spazio provoca una concatenazione non voluta.
La stringa originale inglese è:
<string name="aerr_application">
The application <xliff:g id="application">%1$s</xliff:g>
(process <xliff:g id="process">%2$s</xliff:g>) has stopped unexpectedly. Please try again.
</string>
La relativa traduzione italiana è:
<string name="aerr_application" msgid="4683614104336409186">
"Interruzione imprevista dell\'applicazione <xliff:g id="APPLICATION">%1$s</xliff:g>
(processo<xliff:g id="PROCESS">%2$s</xliff:g>). Riprova."
</string>
Come evitare casi del genere? Utilizzando le funzioni di controllo qualità del software di traduzione (se esistono), oppure provando dal vivo un’applicazione Android di scarsa qualità
24 giugno 2010 alle 22:49 |
Tre giorni fa nella stringa incriminata è apparso magicamente uno spazio
Giusto in tempo per il rilascio della versione 2.2 Froyo…