Bundle

@_spi(FW) extension Bundle

Bundle

  • 根据本地化语言加载当前bundle内语言文件,支持动态切换

    Declaration

    Swift

    public func fw_localizedBundle() -> Bundle
  • 加载当前bundle内指定语言文件,加载失败返回nil

    Declaration

    Swift

    public func fw_localizedBundle(language: String?) -> Bundle?

Main

  • 读取应用可用语言列表

    Declaration

    Swift

    public static var fw_availableLanguages: [String] { get }
  • 读取指定语言显示名称,可指定本地化标识(默认当前语言)

    Declaration

    Swift

    public static func fw_languageName(for language: String, localeIdentifier: String? = nil) -> String
  • 读取应用当前语言,如果localizedLanguage存在则返回,否则返回systemLanguage

    Declaration

    Swift

    public static var fw_currentLanguage: String? { get }
  • 读取当前系统语言,不满足需求时可自定义,兼容应用设置且不含区域,示例:zh-Hans

    备注:

    1. Bundle.main.preferredLocalizations只包含语言信息,只返回App支持的语言,示例:zh-Hans;注意localizedLanguage重置为nil后需下次启动才能获取到当前系统语言
    2. Locale.preferredLanguages包含语言和区域信息,可能返回App不支持的语言,示例:zh-Hans-CN;注意localizedLanguage重置为nil后无需下次启动即可获取到当前系统语言

    Declaration

    Swift

    public static var fw_systemLanguage: String? { get set }
  • 读取或设置自定义本地化语言,未自定义时为空。(语言值对应本地化文件存在才会立即生效,如zh-Hans|en),为空时清空自定义,会触发通知。默认只处理mainBundle语言,如果需要处理三方SDK和系统组件语言,详见Bundle分类

    Declaration

    Swift

    public static var fw_localizedLanguage: String? { get set }
  • 读取本地化字符串,可指定table,strings文件需位于mainBundle,支持动态切换

    Declaration

    Swift

    public static func fw_localizedString(_ key: String, table: String? = nil) -> String

Bundle

  • 加载指定名称bundle对象,bundle文件需位于mainBundle

    Declaration

    Swift

    public static func fw_bundle(name: String) -> Bundle?
  • 加载指定类所在bundle对象,可指定子目录名称,一般用于Framework内bundle文件

    Declaration

    Swift

    public static func fw_bundle(with clazz: AnyClass, name: String?) -> Bundle?
  • 读取指定bundle内strings文件本地化字符串,支持动态切换

    Declaration

    Swift

    public static func fw_localizedString(_ key: String, bundle: Bundle?) -> String
  • 读取指定bundle内strings文件本地化字符串,指定table,支持动态切换

    Declaration

    Swift

    public static func fw_localizedString(_ key: String, table: String?, bundle: Bundle?) -> String
  • 读取当前bundle的可执行程序名称,一般和模块名称相同

    Declaration

    Swift

    public var fw_executableName: String { get }