objective-c - localize - multi language ios app swift
¿Cuál es el segundo parámetro de NSLocalizedString()? (3)
¿Cuál es el *comment
parámetro de *comment
en:
NSString *NSLocalizedString(NSString *key, NSString *comment)
Si hago esto:
NSLocalizedString(@"Hello_World_Key", @"Hello World")
y tiene dos versiones de 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?
El segundo parámetro es un comentario que aparecerá automáticamente en el archivo de cadenas si utiliza 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 tus localizadores. Por ejemplo:
NSLocalizedString(@"Save",@"Title of the Save button in the theme saving dialog");
Cuando ejecuta genstrings, esto producirá una entrada en el archivo Localizable.strings como este:
/* Title of the Save button in the theme saving dialog */
"Save" = "Save";
Es solo para que el desarrollador entienda la traducción, es decir, que 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 ...
La cadena de comentarios es ignorada por la aplicación. Se utiliza para beneficio del traductor, para agregar significado al uso contextual de la clave donde se encuentra en su aplicación.
Por ejemplo, la tecla Hello_World_Key
puede tomar diferentes valores en un idioma determinado, dependiendo de cuán formal o informal sea la frase de Hello World
en ese idioma ("What''s up World", "Yo World", "Good Day World", etc. .).
Puede agregar una cadena en el campo de comentario para insinuar este uso al traductor, quien (uno supondría) podrá localizar mejor su aplicación.