Sto riscontrando qualche problema durante il debug della mia implementazione NSLocalizedString
. Dovrebbe essere semplice, ma qualunque cosa faccia, la funzione restituisce solo la stringa KEY
.iOS - NSLocalizedString restituisce solo la stringa di chiavi
sto utilizzando XCode 4.5 e iOS6, così ho:
- Aggiunto un nuovo file chiamato
File.strings
. - Nelle impostazioni del mio progetto ho aggiunto inglese e spagnolo come impostazioni della lingua.
- Facendo clic su "Rendi localizzato" nell'ispettore file, assicurandosi che fossero selezionate sia le opzioni in inglese che in spagnolo e anche che l'appartenenza di destinazione alla mia destinazione fosse selezionata.
- Aggiunto
"KEY" = "TestEnglish";
per il mio ingleseFile.strings
- Aggiunto
"KEY" = "TestSpanish";
al mio spagnoloFile.strings
- Aggiunto
NSLog(@"Localization: %@\n", NSLocalizedString(@"KEY", nil));
al mio file.m
.
Quando si esegue l'applicazione, il valore "KEY"
viene sempre visualizzato stampato nello NSLog
.
Per saltare in questo un po 'di più, ho provato anche questo:
NSString *path = [[NSBundle mainBundle] pathForResource:@"en" ofType:@"lproj"];
NSString *str = [[NSBundle bundleWithPath:path] localizedStringForKey:@"KEY" value:@"" table:nil];
NSLog(@"Localization: %@\n", str);
e ancora il valore "KEY
"viene stampato, tuttavia, path
è un percorso valido
Qualcuno ha qualche. indovina come eseguire il debug di questo? Mi sento come se avessi letto ogni domanda/risposta SO là fuori, ma nessuno dei suggerimenti aiuta.
Mi rendo conto che NSLocalizedString
restituisce la stringa KEY
quando non può corrispondere ak ey, ma non vedo come posso eseguire il debug perché la mia app potrebbe non corrispondere alla KEY.
Ho anche cancellato/ripulito l'app circa una dozzina di volte.
Non si dovrebbe trovare 'table: nil' be' table: @ "File" '? –
@ H2CO3: Wow, sì, grazie. Che afferra la versione inglese, e sono molto contento che funzioni.Ma alla fine, ho bisogno che NSLocalizedString funzioni così che possa usare la praticità di quel metodo. Devo rinominare "File.strings" in qualcos'altro per far funzionare NSLocalizedString forse ??? – Brett
inserirai tutte le localizzazioni a cui prevedi di accedere in "XXX.lproj/Localized.strings". Inoltre, perché ** devi ** usare 'NSLocalizedString()'? –