import Foundation

/// SDK 内部本地化字符串。
///
/// 使用计算属性确保每次访问都读取当前 Bundle 语言设置，
/// 支持宿主 App 切换语言后下次打开 SDK 自动生效。
///
/// **资源查找顺序**:
/// - SPM 集成:`Bundle.module`(自动生成)
/// - XcodeGen / CocoaPods 集成:`Bundle(for:)` 查找 framework bundle
enum L10n {

    /// 默认顶栏标题
    static var defaultTitle: String {
        NSLocalizedString("qian_default_title", bundle: resourceBundle, comment: "默认顶栏标题")
    }

    /// 关闭确认弹窗标题
    static var confirmCloseTitle: String {
        NSLocalizedString("qian_confirm_close_title", bundle: resourceBundle, comment: "关闭确认弹窗标题")
    }

    /// 关闭确认弹窗消息
    static var confirmCloseMessage: String {
        NSLocalizedString("qian_confirm_close_message", bundle: resourceBundle, comment: "关闭确认弹窗消息")
    }

    /// 离开按钮文案
    static var confirmLeave: String {
        NSLocalizedString("qian_confirm_leave", bundle: resourceBundle, comment: "离开按钮")
    }

    /// 继续按钮文案
    static var confirmStay: String {
        NSLocalizedString("qian_confirm_stay", bundle: resourceBundle, comment: "继续按钮")
    }

    /// JS alert/confirm/prompt 确定按钮
    static var jsOK: String {
        NSLocalizedString("qian_js_ok", bundle: resourceBundle, comment: "JS 弹窗确定按钮")
    }

    /// JS confirm/prompt 取消按钮
    static var jsCancel: String {
        NSLocalizedString("qian_js_cancel", bundle: resourceBundle, comment: "JS 弹窗取消按钮")
    }

    /// 自检页顶栏标题
    static var compatibilityTestTitle: String {
        NSLocalizedString("qian_compatibility_test_title", bundle: resourceBundle, comment: "自检页顶栏标题")
    }

    // MARK: - Bundle 查找

    /// 资源 Bundle。
    /// - SPM 环境下 `Bundle.module` 由编译器自动生成。
    /// - XcodeGen / CocoaPods 环境下 fallback 到 framework bundle。
    private static let resourceBundle: Bundle = {
        #if SWIFT_PACKAGE
        return Bundle.module
        #else
        // Framework 集成:资源在 framework bundle 内
        return Bundle(for: BundleToken.self)
        #endif
    }()
}

#if !SWIFT_PACKAGE
/// 仅用于定位 framework bundle 的私有 token 类。
private final class BundleToken {}
#endif
