2

我想產生以下本地化的字符串:在「localizedStringWithFormat」中使用「.stringsdict」文件 - > NUMERALS是否爲您本地化?

「在___天(S)」 - >(例如:在5天)

要做到這一點,我已經走了下來。 stringsdict路線:

<key>In %d Days</key> 
    <dict> 
     <key>NSStringLocalizedFormatKey</key> 
     <string>%#@[email protected]</string> 
     <key>Days</key> 
     <dict> 
      <key>NSStringFormatSpecTypeKey</key> 
      <string>NSStringPluralRuleType</string> 
      <key>NSStringFormatValueTypeKey</key> 
      <string>d</string> 
      <key>zero</key> 
      <string>Today</string> 
      <key>one</key> 
      <string>In %d Day</string> 
      <key>other</key> 
      <string>In %d Days</string> 
     </dict> 
    </dict> 

然後我用以下,以獲得本地化的字符串:

NSInteger days = ...; 
localizedDueDateString = [NSString localizedStringWithFormat:NSLocalizedString(@"In %d Days", @"Indicates days"),ABS(days)]; 

這正確輸出一個佔多個字符串。例如:

In 1 day 
In 4 days 

我想知道這裏的「1」和「4」是否將本地化爲正確。其他語言,例如阿拉伯語,其數字具有不同的符號。我期望上面的字符串使用符號「4」而不是「4」,阿拉伯語。

我知道這可以使用NSNumberFormatter來完成,但是我怎樣才能完成數字本地化,同時還要尊重多元簽證vi a .stringsdict文件?

回答

2

數詞似乎的確被正確交換與「localizedStringWithFormat」方法協調使用.stringsdict文件時!

我打開我的iPad的語言爲阿拉伯語,並輸出

In 1 day 

是......

١ day In 

我沒有做一個阿拉伯語的本地化尚未完成,因此「在」和「日」是英語,但數字看起來是正確的本地化。不需要NSNumberFormatter

相關問題