title: iOS: How to localize strings with multiple interpolated parameters?
body: <p>How do I use NSLocalizedString to build a string with multiple parameters while giving the translator control to change the order if they wish?</p>
  
  <p>An example in my Localizable.string is:</p>
  
  <pre><code>"score_out_of"="Your score is %i out of %i";
  </code></pre>
  
  <p>And would be invoked like</p>
  
  <pre><code>[NSString stringWithFormat:NSLocalizedString(@"score_out_of", nil), correct, total];
  </code></pre>
  
  <p>But on some locales the grammar rules might dictate that total goes before correct. In Objective C it seems the interpolation order is hard coded.</p>
  
  <p>In other languages this is accomplished by naming the parameters, for example in ruby it would be defined like:</p>
  
  <pre><code>out_of: "Your score is %{correct} out of %{total}"
  </code></pre>
  
  <p>And invoked like:</p>
  
  <pre><code>I18n('out_of', {total: total, correct: correct})
  </code></pre>
  
  <p>What is the recommended way to accomplish the same thing on iOS / Objective C?</p>