У меня есть список стран, которые возвращают isoCodes, dialCodes и имена. При выводе isoCodes и dialCodes это работает хорошо, потому что они являются строковыми значениями. Но когда я пытаюсь сопоставить LocalizeStringKey имен и располагать их в алфавитном порядке, ключи устанавливаются только по порядку, но не по переводу, что является проблемой.
Как я могу получить свое перечисление названия стран, заданные как LocalizedStringKey, в алфавитном порядке с использованием SwiftUI?
Это то, что я пытаюсь сделать ...
Способ, которым я пытаюсь отобразить в правильном порядке названия стран в моих файлах: (Только получая локализованный ключ по порядку)
let countries = Country.allCases.map { $0 }
Enum моей страны enum:
import SwiftUI
// MARK: Country ISO3166 definition
enum Country: String, CaseIterable {
case ad
case ae
case af
case ag
case ai
case al
}
Имя моей страны установлено в качестве переменной:
// MARK: Country named from localized CountryString
extension Country {
var name: CountryString {
switch self {
case .ad: return .andorra
case .ae: return .unitedArabEmirates
case .af: return .afghanistan
case .ag: return .antiguaBarbuda
case .ai: return .anguilla
case .al: return .albania
}
}
Мой перечисление CountryString, в котором задан localizedStringKey:
// MARK: Country string name
enum CountryString: LocalizedStringKey {
case andorra
case unitedArabEmirates
case afghanistan
case antiguaBarbuda
case anguilla
case albania
}
Мои переводы:
// MARK: - CountryString
"andorra" = "Andorra";
"unitedArabEmirates" = "United Arab Emirates";
"afghanistan" = "Afghanistan";
"antiguaBarbuda" = "Antiga & Barbuda";
"anguilla" = "Anguilla";
"albania" = "Albania";