iOS - localizePlural отображается неправильно, если значение равно единице - PullRequest
0 голосов
/ 17 января 2020

Мне нужно 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: решено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...