Мне нужно localizePlural для моего примера строки:
моя строка dict
<key>hour</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@value@</string>
<key>value</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>Hour</string>
<key>other</key>
<string>Hours</string>
</dict>
</dict>
Все работает нормально, кроме: когда я устанавливаю язык устройства вьетнамский, а язык приложения устанавливается Engli sh, тогда при значении 1 будет отображаться другой (1 час -> 1 час) мой код localizePlural:
func localizePlural(number: Int) -> String {
let formatString: String = self.localized()
let resultString: String = String.localizedStringWithFormat(formatString, number)
return resultString
}
func localized() -> String {
return NSLocalizedString(self, tableName: nil, bundle: LocalizationHelper.shared.localizedBundle(), value: "", comment: "")
}
и LocalizationHelper.shared.localizedBundle (). Я установил это UserDefaults
let appLang = userDefaults.string(forKey: "app_lang") ?? "en"
let path = Bundle.main.path(forResource: appLang, ofType: "lproj") ??
Bundle.main.path(forResource: "en", ofType: "lproj")!
bundle = Bundle(path: path)
Есть идеи для этого? PS: решено