Files
2025-08-08 10:49:36 +08:00

51 lines
1.8 KiB
Swift

//
// Localized.swift
// TUICallKit
//
// Created by vincepzhang on 2023/2/13.
//
import Foundation
import TUICore
// MARK: Base
func TUICallKitBundle() -> Bundle? {
var bundle: Bundle?
let onceToken = DispatchSemaphore(value: 1)
onceToken.wait()
defer {
onceToken.signal()
}
if bundle == nil {
if let bundleUrl = Bundle.main.url(forResource: "TUICallKitBundle", withExtension: "bundle") {
bundle = Bundle(url: bundleUrl)
} else {
var bundleUrl = Bundle.main.url(forResource: "Frameworks", withExtension: nil)
bundleUrl = bundleUrl?.appendingPathComponent("TUICallKit")
bundleUrl = bundleUrl?.appendingPathExtension("framework")
guard let url = bundleUrl else { return nil }
guard let associateBundle = Bundle(url: url) else { return nil }
guard let bundleUrl = associateBundle.url(forResource: "TUICallKitBundle", withExtension: "bundle") else { return nil }
bundle = Bundle(url: bundleUrl)
}
}
return bundle
}
func TUICallKitLocalizeFromTable(key: String, table: String) -> String? {
guard let bundlePath = TUICallKitBundle()?.path(forResource: TUIGlobalization.getPreferredLanguage() ?? "",
ofType: "lproj") else { return nil}
let bundle = Bundle(path: bundlePath)
return bundle?.localizedString(forKey: key, value: "", table: table)
}
func TUICallKitLocalizerFromTableAndCommon(key: String, common: String, table: String) -> String? {
return TUICallKitLocalizeFromTable(key: key, table: table)
}
// MARK: CallKit
let TUICallKit_Localize_TableName = "Localized"
func TUICallKitLocalize(key: String) -> String? {
return TUICallKitLocalizeFromTable(key: key, table: TUICallKit_Localize_TableName)
}