2012-08-23 3 views
5

Sto cercando di localizzare una chiave nei file InfoPlist.strings che consiste di un dizionario nidificato, in questo modo:Localizzazione di chiavi Info.plist nidificate

baseKey = { 
    secondDict = { 
     "key" = "value"; 
    }; 
}; 

C'è un modo posso accedere alla chiave interna direttamente dal file InfoPlist.strings?

"baseKey.secondDict.key" = "newValue"; 

non sembra funzionare ... Qualche idea? So di poter replicare la struttura del dizionario nel file delle stringhe, ma contiene alcune altre informazioni che preferirei non avere lì.

+0

uso 'valueForKeyPath' – Legolas

+0

che non aiuta, questo è un file InfoPlist.strings, non Objective-C ... –

+0

Inoltre, per quanto riguarda la localizzazione dei valori all'interno array all'interno del plist? – divergio

risposta

2

A quanto pare funziona in questo modo:

Sostituire "value" con un po 'identificatore di localizzazione newvalue_i18n_key.

Poi, in InfoPlist.strings per ogni lingua, fare questo:

newvalue_i18n_key = "value";

Questo è più simile a come funziona NSLocalizedString. Per la mia lettura, questo è non quello che Apple dice in the official documentation regarding localizing plist files, ma è quello che Apple fa in some sample code.

This question esce con la stessa risposta.

-1

È possibile accedere rapidamente ai valori nidificati in questo modo, dove "Utente" è la chiave di un NSDictionary e "Nome utente" è una chiave per una NSString.

yourDict[@"User"][@"Username"] 
+0

Ciò è vero per l'accesso ai valori dal codice. La domanda è chiedere di localizzare i valori dal file InfoPlist.strings. – divergio