<div dir="ltr"><div class="gmail_default" style="font-family:georgia,serif">I encountered a localization problem today. At first I translated a string like this.</div><div class="gmail_default" style="font-family:georgia,serif"><br></div><div class="gmail_default"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="georgia, serif">let count = 10<br></font><font face="georgia, serif">let says = NSLocalizedString(&quot;It runs \(count) times&quot;, comment: &quot;run times&quot;)</font></blockquote><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">I couldn&#39;t get the translation taking effect.</font></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">So I open the setting &quot;Localization Debugging&quot; in scheme and get this error:</font></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="georgia, serif">[strings] ERROR, It runs 10 times not found in table Localizable of bundle CFBundle 0x100c01c40 ... (executable, loaded)<br></font><font face="georgia, serif">IT RUNS 10 TIMES</font></blockquote><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">I began to realize that` \(count)` was not dealed well in localization. The compiler calculated the full string then looking for the translation, instead of looking for the translation first.</font></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">I managed to replace my code with </font></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><font face="georgia, serif">let newSays = String.localizedStringWithFormat(NSLocalizedString(&quot;It runs %d times&quot;, comment: &quot;new run times&quot;), count)</font></blockquote><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">However, I still thing it would be better if we could use \(foo) directly, as it is more Swift style. Any idea why this can&#39;t happen?</font></div><div class="gmail_default"><font face="georgia, serif"><br></font></div><div class="gmail_default"><font face="georgia, serif">Zhaoxin</font></div><div><br></div></div></div>