¿Cuál es el segundo parámetro de NSLocalizedString ()?

123

¿Cuál es el *commentparámetro en:

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

Si hago esto:

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

y tienen dos versiones de un Localizable.strings (inglés y español), cada uno necesita la entrada:

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

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

¿No es el inglés redundante?

4thSpace
fuente

Respuestas:

72

La cadena de comentarios es ignorada por la aplicación. Se utiliza para beneficio de un traductor, para agregar significado al uso contextual de la clave donde se encuentra en su aplicación.

Por ejemplo, la Hello_World_Keyclave puede tomar diferentes valores en un idioma dado, dependiendo de cuán formal o informal Hello Worlddeba ser la frase en ese idioma ("What's up World", "Yo World", "Good Day World", etc.).

Puede agregar una cadena en el campo de comentarios para insinuar este uso al traductor, quien (se presumirá) podrá localizar mejor su aplicación.

Alex Reynolds
fuente
277

El segundo parámetro es un comentario que aparecerá automáticamente en el archivo de cadenas si usa la utilidad de línea de comandos genstrings , que puede crear el archivo de cadenas escaneando su código fuente.

El comentario es útil para sus localizadores. Por ejemplo:

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

Cuando ejecuta genstrings, esto generará una entrada en el archivo Localizable.strings de esta manera:

/* Title of the Save button in the theme saving dialog */
"Save" = "Save";
Rob Keniger
fuente
@JuandelaTorre: Esta pregunta tiene algunos años, tal vez 4thSpace (la persona que hizo la pregunta) no ha echado un vistazo a su pregunta ya que acepta una de las respuestas.
Manni
También es lo que se usará si el archivo de cadenas no contiene una entrada que coincida con el identificador que especificó.
Oscar
44
No, la clave se usa en ese caso, no el comentario.
Nick Lockwood
¿cual es el punto? sí, es útil para una identificación corta ( "id" - "word";como en su ejemplo "Save" = "Save";), pero debe agregar algo manualmente más tiempo"id" - "word 1 word 2 word 3";
usuario924
El comentario (segundo parámetro) es para localizadores. Alguien que agrega cadenas para su aplicación en otro idioma necesita contexto para saber qué traducción aplicar. El primer parámetro solo especifica la clave en el archivo de cadenas de localización, el archivo de cadenas es lo que realmente almacena el texto para mostrar en la interfaz de usuario.
Rob Keniger
0

Es solo para que el desarrollador entienda la traducción, es decir, está dando una clave para obtener la cadena correspondiente del archivo de cadenas correspondiente.

El parámetro de comentario permite al desarrollador comprender qué representa la clave ...

Shanmugaraja G
fuente