// // KMAdvertisementModelTansition.swift // KMAdvertisement // // Created by lizhe on 2022/12/2. // import AppKit @objcMembers open class KMAdvertisementModelTransition: NSObject { //MARK: 模型转换 //图片转换 public static func transitionImagePath(image: KMAdvertisementItemInfo.Image?, highlight:Bool) -> String { var result = "" guard let tempImage = image else { return result } if highlight { result = (KMAdvertisementConfig.isDarkModel() ? tempImage.hover_Dark : tempImage.hover_Light) ?? "" } else { result = (KMAdvertisementConfig.isDarkModel() ? tempImage.normal_Dark : tempImage.normal_Light) ?? "" } if result.count == 0 { let language = Language() language.en = image?.en language.zh_TW = image?.zh_TW language.zh_CN = image?.zh_CN result = KMAdvertisementModelTransition.transitionLanguage(langeuage: language) } return result } //多语转换 @objc public static func transitionLanguage(langeuage: Language?) -> String { var result = "" let string = KMAdvertisementModelTransition.getLanguageType() if string == "zh-Hans-CN" || string == "zh-Hans" { result = langeuage?.zh_CN ?? "" } else if string == "zh-Hans-TW" || string == "zh-Hant-CN" || string == "zh-Hant" { result = langeuage?.zh_TW ?? "" } else { result = langeuage?.en ?? "" } return result } public static func getLanguageType() -> String { #if os(iOS) let def = UserDefaults.standard let allLanguages: [String] = def.object(forKey: "AppleLanguages") as! [String] let chooseLanguage = allLanguages.first return chooseLanguage ?? "en" #elseif os(OSX) let allLanguages: [String] = UserDefaults.standard.object(forKey: "AppleLanguages") as! [String] let chooseLanguage: String = allLanguages.first ?? "en" return chooseLanguage #endif } @objc public static func sendFireBaseEvent(firebase: firebaseInfo?) -> Void { guard let firebaseInfo = firebase else { return } guard let fireBaseEvent = firebaseInfo.event else { return } guard let firebasePropertyKey = firebaseInfo.propertyKey else { return } guard let firebasePropertyValue = firebaseInfo.propertyValue else { return } FMTrackEventManager.defaultManager.trackEvent(event: fireBaseEvent, withProperties: [firebasePropertyKey : firebasePropertyValue]) } } extension NSColor { convenience init(hex: String) { var hexString = hex if hex.starts(with: "#") { hexString = String(hex.dropFirst()) } if let ui64 = UInt64(hexString, radix: 16) { self.init(hex: Int(ui64)) } else { self.init(hex: 0) // <--- black } } convenience init(hex: Int) { let components = ( R: CGFloat((hex >> 16) & 0xff) / 255, G: CGFloat((hex >> 08) & 0xff) / 255, B: CGFloat((hex >> 00) & 0xff) / 255 ) self.init(red: components.R, green: components.G, blue: components.B, alpha: 1) } }