iOS: ¿Cómo localizar cadenas con múltiples parámetros interpolados?

¿Cómo uso NSLocalizedString para construir una cadena con múltiples parámetros mientras le doy al traductor el control de cambiar el orden si lo desean?

Un ejemplo en mi Localizable.string es:

"score_out_of"="Your score is %i out of %i";

Y sería invocado como

[NSString stringWithFormat:NSLocalizedString(@"score_out_of", nil), correct, total];

Pero en algunos entornos locales, las reglas gramaticales pueden dictar que el total vaya antes de ser correcto. En el objetivo C parece que el orden de interpolación está codificado.

En otros idiomas, esto se logra al nombrar los parámetros, por ejemplo, en ruby, se definiría como:

out_of: "Your score is %{correct} out of %{total}"

E invocado como:

I18n('out_of', {total: total, correct: correct})

¿Cuál es la forma recomendada de lograr lo mismo en iOS / Objective C?

Respuestas a la pregunta(1)

Su respuesta a la pregunta