Tengo esta cadena formateada en la que estoy trabajando un traductor.Localización avanzada con Omisión de argumentos en Xcode
INGLÉS
"Check out the %[email protected] %[email protected] in %[email protected]: %[email protected]" = "Check out the %[email protected] %[email protected] in %[email protected]: %[email protected]"
TRADUCCIÓN ALEMÁN
"Check out the %[email protected] %[email protected] in %[email protected]: %[email protected]" = "Hör Dir mal %[email protected] in %[email protected] an: %[email protected]";
Estos son pasados a una llamada [NSString stringWithFormat:]
:
//////////////////////////////////////
// Share Over Twitter
NSString *frmt = NSLocalizedString(@"Check out the %[email protected] %[email protected] in %[email protected]: %[email protected]", @"The default tweet for sharing sounds. Use %[email protected] for where the sound type (Sound, mix, playlist) will be, %[email protected] for where the audio name will be, %[email protected] for the app name, and %[email protected] for where the sound link will be.");
NSString *urlString = [NSString stringWithFormat:@"sounds/%@", SoundSoundID(audio)];
NSString *url = ([audio audioType] == UAAudioTypeSound ? UrlFor(urlString) : APP_SHORTLINK);
NSString *msg = [NSString stringWithFormat:
frmt,
[[Audio titleForAudioType:[audio audioType]] lowercaseString],
[NSString stringWithFormat:@"\"%@\"", AudioName(audio)],
APP_NAME,
url];
returnString = msg;
Con el resultado deseado y real de:
INGLÉS
desired: "Check out the sound "This Sound Name" in My App Name: link_to_sound" actual: "Check out the sound "This Sound Name" in My App Name: link_to_sound"
GERMAN
desired: "Hör Dir mal "This Sound Name" in My App Name an: link_to_sound" actual: "Hör Dir mal sound in "This Sound Name" an: My App Name"
EL PROBLEMA El problema es que estaba bajo el supuesto de que mediante el uso de la variable numerado en la -[NSString stringWithFormat:]
, Yo podría hacer eso ngs como este, donde la variable %[email protected]
se omite por completo. Si observa, la traducción al alemán de la cadena de formato no utiliza el primer argumento (%[email protected]
), pero sigue apareciendo ("sonido") en la cadena de salida.
¿Qué estoy haciendo mal?
Parece que lo que estaba haciendo mal es hacer una suposición sobre la omisión de las variables numeradas. – coneybeare
Es interesante que esto funciona bien en Android/Java; debe ser su implementación (¿inválida?) – Opus1217