Нужно ли делать @IBOutlets для всех меток в тамошних контроллерах (как показано в примере), чтобы назначить там ключ, соответствующий языковой строке, или есть какое-то лучшее возможное решение, которое может быть принято, любой ответ будет полезен Спасибо
@IBOutlet weak var languageChangeLabel: UiLabel!
languageChangeLabel.text = .localized("keyForLabel", language: languageCode)
// key is form .Strings files, language codes like "zh" for Chinese and "ar" for arabic (language localization
code)
// and extension is
extension String {
public static func localized(_ key: String, language: String? = nil) -> String {
let language = language ?? Locale.preferredLanguages.first?.components(separatedBy: "-").first ?? "en"
guard let path = Bundle.main.path(forResource: language, ofType: "lproj"), let bundle = Bundle(path: path) else {
return Bundle.main.localizedString(forKey: key, value: nil, table: "Localizeable")
}
return bundle.localizedString(forKey: key, value: nil, table: "Localizeable")
}
}