diff --git a/MiniScanner/Extensions/UIFont+Extensions.swift b/MiniScanner/Extensions/UIFont+Extensions.swift index faf282ea5c0a916efcbc9461b8dc2cbe43dd7f63..be5be8a48dca22cd42c37264658426dd210ba33b 100644 --- a/MiniScanner/Extensions/UIFont+Extensions.swift +++ b/MiniScanner/Extensions/UIFont+Extensions.swift @@ -36,24 +36,49 @@ extension UIFont { case extralight = "Tajawal-ExtraLight" } + static let fonts: [SupportedLanguage: [UIFont.AppFont: String]] = { + let arabic = UIFont.AppFont.Arabic.self + let english = UIFont.AppFont.English.self + + var fonts: [SupportedLanguage: [UIFont.AppFont: String]] = [:] + + fonts[.english] = [.extrabold: english.bold.rawValue, + .bold: english.bold.rawValue, + .black: english.bold.rawValue, + .medium: english.medium.rawValue, + .regular: english.regular.rawValue, + .light: english.regular.rawValue, + .extralight: english.regular.rawValue] + + fonts[.arabic] = [.extrabold: arabic.extrabold.rawValue, + .bold: arabic.bold.rawValue, + .black: arabic.black.rawValue, + .medium: arabic.medium.rawValue, + .regular: arabic.regular.rawValue, + .light: arabic.light.rawValue, + .extralight: arabic.extralight.rawValue] + return fonts + }() + func font() -> String { - switch self { - case .bold: - return lang == .en ? English.bold.rawValue : Arabic.bold.rawValue - case .regular: - return lang == .en ? English.regular.rawValue : Arabic.regular.rawValue - case .medium: - return lang == .en ? English.medium.rawValue : Arabic.medium.rawValue - case .light: - return lang == .en ? English.regular.rawValue : Arabic.light.rawValue - case .extrabold: - return lang == .en ? English.bold.rawValue : Arabic.extrabold.rawValue - case .black: - return lang == .en ? English.bold.rawValue : Arabic.black.rawValue - case .extralight: - return lang == .en ? English.regular.rawValue : Arabic.extralight.rawValue - - } + return UIFont.AppFont.fonts[SupportedLanguage.currentLanguage]![self]! + +// switch self { +// case .bold: +// return lang == .english ? English.bold.rawValue : Arabic.bold.rawValue +// case .regular: +// return lang == .english ? English.regular.rawValue : Arabic.regular.rawValue +// case .medium: +// return lang == .english ? English.medium.rawValue : Arabic.medium.rawValue +// case .light: +// return lang == .english ? English.regular.rawValue : Arabic.light.rawValue +// case .extrabold: +// return lang == .english ? English.bold.rawValue : Arabic.extrabold.rawValue +// case .black: +// return lang == .english ? English.bold.rawValue : Arabic.black.rawValue +// case .extralight: +// return lang == .english ? English.regular.rawValue : Arabic.extralight.rawValue +// } } } } diff --git a/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift b/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift index c40c440a0b0a5f337f7b4f32618d09e934821ec3..a518457d0ca2addc0a7af350c9ccad2e936c8ca4 100644 --- a/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift +++ b/MiniScanner/Features/Common/Data/Model/SupportedLanguage.swift @@ -18,7 +18,7 @@ enum SupportedLanguage: CaseIterable { var flag: String { switch self { case .device: - return deviceLanguage.flag + return SupportedLanguage.currentLanguage.flag case .english: return "🇺🇸" case .arabic: @@ -26,8 +26,8 @@ enum SupportedLanguage: CaseIterable { } } - var deviceLanguage: SupportedLanguage { - .from(language: SupportedLanguage.device.language) + static var currentLanguage: SupportedLanguage { + .from(language: LanguageManager.shared.currentLanguage) } }