// // SupportedLanguage.swift // MiniScanner // // Created by Mustafa Merza on 7/17/24. // Copyright © 2024 AppsNectar. All rights reserved. // import Foundation import LanguageManager_iOS enum SupportedLanguage: CaseIterable { case device case english case arabic var flag: String { switch self { case .device: return SupportedLanguage.currentLanguage.flag case .english: return "🇺🇸" case .arabic: return "🇰🇼" } } static var currentLanguage: SupportedLanguage { .from(language: LanguageManager.shared.currentLanguage) } var isRTL: Bool { LanguageManager.shared.isRightToLeft } var layoutDirection: LayoutDirection { isRTL ? .rightToLeft : .leftToRight } } extension SupportedLanguage { static func from(codeName: String) -> SupportedLanguage { .from(language: Languages(rawValue: codeName) ?? .deviceLanguage) } var codeName: String { switch self { case .device: return Languages.deviceLanguage.rawValue case .english: return Languages.en.rawValue case .arabic: return Languages.ar.rawValue } } } extension SupportedLanguage { static func from(language: Languages) -> Self { switch language { case .ar: return .arabic case .en: return .english case .deviceLanguage: return .device default: return .device } } var language: Languages { switch self { case .device: return LanguageManager.shared.deviceLanguage ?? .en case .english: return .en case .arabic: return .ar } } }