So che molti sviluppatori lo fanno in questo modo: iniziano a sviluppare la loro app in inglese e inseriscono NSLoclaizedString(@"Tap this to do that!", @"Telling what to do...")
anziché semplicemente @"Tap this to do that!"
.È sicuro utilizzare le chiavi "reali" in NSLocalizedString()? Esiste un linguaggio di riserva garantito?
Quindi eseguono genstrings
che crea in qualche modo un file Localizable.strings estraendo tutte queste stringhe. La parte disordinata: il lungo testo utilizzato nel codice diventa la chiave. Funziona. Fino a un giorno in cui accedi rapidamente al tuo codice e modifica la stringa inglese e dimentichi la localizzazione e che funge da chiave per tutti i file Localizable.strings.
Quindi tendo ad usare i tasti "reali" che non si confondono con le stringhe. Per un test rapido ho creato un progetto localizzato in inglese e francese. Quindi ho impostato la lingua del simulatore in tedesco. Perché, sai, farebbe schifo terribilmente se l'utente vedesse la chiave come TTTDT
.
Quindi, con solo inglese e tedesco, ho lanciato l'app demo. E quello che ho ottenuto è stato il testo inglese dal file Localizable.strings in inglese.
Conclusione: Sembra che NSLocalizedString ricada nel file inglese se la lingua del sistema operativo non è coperta dall'app.
quesion: presumere che vi sia sempre un file Localizable.strings (English)
, e le chiavi sono nel file con i valori correttamente formattati. Ci sono circostanze in cui NSLocalizedString fallirebbe e quindi visualizzare direttamente la chiave?
Buoni punti. Vorrei anche aggiungere prestazioni migliori. – dontWatchMyProfile