Ho un app tradotto in 3 lingue: inglese, tedesco, polaccoCome evitare arresti anomali dovuti a voci di stringa mancanti?
Così ho queste tre cartelle per le lingue del progetto:
values
strings.xml
values-en
strings.xml
values-de
strings.xml
values-pl
strings.xml
ho capito che se ho messo tutte le stringhe in cartella valori e alcune stringhe mancanti nella versione polacca che l'app si arresta in modo anomalo quando accede alle stringhe mancanti nella versione polacca.
Mi sarei aspettato che il sistema recuperi la stringa dalla cartella dei valori predefiniti se non la trova nella cartella values-pl.
C'è un modo per intercettare questi potenziali arresti anomali delle stringhe mancanti? Anche se potessi ottenere un avvertimento nel compilatore che la stringa in qualsiasi lingua manchi sarebbe OK?
EDIT e l'aggiunta
Infatti un'altra stringa mancava nel predefinito troppo .... così, grazie per la risposta/commenti!
Ma ora ho anche testato il caso in cui manca una stringa semplicemente nel file strings.xml predefinito MA PRESENTE in tutti gli altri file. Non ricevo alcun avvertimento o altro.
Quindi in questo caso se TUTTE le stringhe sono presenti in de, en, pl, ma manca una di default, ad esempio l'app si arresta in modo anomalo in Cina (capisco ovviamente perché manca l'impostazione predefinita).
MA ciò che mi dà fastidio è che non trovo alcun modo per verificare la completezza di tutte le stringhe di riferimento nel codice. Questo è il modo accedo la stringa mancante:
context.getString(R.string.MYTRING_abc),
Dalle mie expiriens se ci sono stringhe manca il progetto non compila. Sto usando eclipse juno. – NickF
Se testate la vostra app, in tutte le lingue disponibili, non dovreste fare questa domanda. Per me non ha senso, perché non ci si assicura, che le stringhe siano disponibili prima di pubblicare la tua app. Non tutte le eccezioni dovrebbero essere catturate, dovrebbero essere affrontate prima che possano accadere. – Darwind
"Ho un'app tradotta in 3 lingue: inglese, tedesco, polacco" - no, hai la tua app tradotta in quattro lingue: inglese, tedesco, polacco e qualsiasi altra lingua si trovi nella tua directory 'res/values /'. Se hai veramente la tua app tradotta in tre lingue, allora una di quelle lingue deve spostarsi in 'res/values /'. Vuoi 'res/values /' per avere il valore di default per ogni risorsa stringa, in qualunque cosa tu voglia considerare come lingua predefinita. – CommonsWare