Localização de mensagens substantivas plurais dinâmicas (por exemplo, "5 itens processados") no iPhone usando Objective-C

No meu aplicativo atual, tenho um código que exibe uma mensagem, por exemplo "5 itens processados." Para manter a frase gramaticalmente correta, ou seja, se deve ou não ser "5 Item" ou "5 Itens", eu uso o seguinte código:

int numItems = 5;
NSString *myString = [[NSString alloc] initWithFormat:@"%d Item%@ Processed", numItems, (numItems == 1 ? @"" : @"s")];

Isso funciona bem por enquanto. Mas estou localizando meu aplicativo e quero garantir que o texto esteja gramaticalmente correto em todos os idiomas nos quais estou traduzindo o aplicativo. Eupoderia faça algo assim:

int numItems = 5;
NSString *myString = (numItems == 1 ? 
NSLocalizedStringWithTable(@"%d Item Processed", @"myApp", @"singular version") :
NSLocalizedStringWithTable(@"%d Items Processed", @"myApp", @"plural version"));

No entanto, nem todas as línguas têm as mesmas regras para o funcionamento dos plurais! Por exemplo, (perdoe meu exemplo muito específico aqui) em russo, substantivos modificados com números que terminam com o último dígito 1 (ou seja, 21, 31, masnão 11) pegue o caso nominativo, os números que terminam em 2-4 pegam o genitivo singular e 5+ pegam o caso genitivo plural. Isso exigiria uma lógica muito mais séria para lidar com como pluralizar um substantivo específico de maneira gramaticalmente correta, e essa lógica não corresponderia à lógica inglesa. Portanto, em teoria, não posso ter a lógica gramatical no meu código Objective-C, mas devo ter a lógica gramatical no arquivo de strings. Existe uma maneira de fazer isso?Como as pessoas traduzem texto dinâmico para seus aplicativos para que ele permaneça gramaticalmente correto?

questionAnswers(4)

yourAnswerToTheQuestion