Qual è il secondo parametro di NSLocalizedString ()?


123

Qual è il *commentparametro in:

NSString *NSLocalizedString(NSString *key, NSString *comment)

Se lo faccio:

NSLocalizedString(@"Hello_World_Key", @"Hello World")

e hanno due versioni di Localizable.strings (inglese e spagnolo), ognuna ha bisogno della voce:

English.lproj/Localization.strings: @"Hello_World_Key" = @"Hello World";

Spanish.lproj/Localization.strings: @"Hello_World_Key" = @"Hola Mundo";

Quello inglese non è ridondante?

Risposte:


72

La stringa di commento viene ignorata dall'applicazione. Viene utilizzato a vantaggio di un traduttore, per aggiungere significato all'uso contestuale della chiave in cui si trova nella tua applicazione.

Ad esempio, la Hello_World_Keychiave può assumere valori diversi in una data lingua, a seconda di quanto formale o informale Hello Worlddeve essere la frase in quella lingua ("What's up World", "Yo World", "Good Day World", ecc.).

È possibile aggiungere una stringa nel campo dei commenti per suggerire questo utilizzo al traduttore, che (si presume) sarà in grado di localizzare meglio la tua applicazione.


277

Il secondo parametro è un commento che apparirà automaticamente nel file di stringhe se si utilizza l' utilità della riga di comando genstrings , che può creare il file di stringhe eseguendo la scansione del codice sorgente.

Il commento è utile per i tuoi localizzatori. Per esempio:

NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");

Quando esegui genstrings, questo produrrà una voce nel file Localizable.strings come questa:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";

@JuandelaTorre: Questa domanda è vecchia di alcuni anni, forse 4thSpace (la persona che ha posto la domanda) non ha dato un'occhiata alla sua domanda poiché accetta una delle risposte.
Manni

È anche ciò che verrà utilizzato se il file di stringhe non contiene una voce che corrisponde all'identificatore specificato.
Oscar

4
No, in questo caso viene utilizzata la chiave, non il commento.
Nick Lockwood,

qual è il punto? sì, è utile per l'ID breve ( "id" - "word";, come nel tuo esempio "Save" = "Save";), ma devi aggiungere manualmente qualcosa di più lungo"id" - "word 1 word 2 word 3";
user924

Il commento (secondo parametro) è per i localizzatori. Qualcuno che sta aggiungendo stringhe per la tua app in un'altra lingua ha bisogno del contesto per sapere quale traduzione applicare. Il primo parametro specifica solo la chiave nel file delle stringhe di localizzazione, il file delle stringhe è ciò che effettivamente memorizza il testo da visualizzare nell'interfaccia utente.
Rob Keniger

0

È solo per la comprensione dello sviluppatore sulla traduzione, ovvero stai fornendo una chiave per ottenere la stringa corrispondente dal file di stringhe corrispondente.

Il parametro comment consente allo sviluppatore di capire cosa rappresenta la chiave ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.