Files
Rocky 956331a2af chore(release): bump version to 1.0.1 (build 27)
Release the current PiP reliability, polish style, macOS dictionary, and UI updates.
2026-07-27 00:09:30 +08:00

44 lines
1.6 KiB
Swift

// EngineServiceLabel.swift
// OSGKeyboard · Shared
//
// Human-readable summary of the active engine / AI provider for UI hints.
import Foundation
public enum EngineServiceLabel {
public static func summary(
engineMode: String,
providerId: String,
model: String,
asrProviderId: String? = nil,
asrModel: String? = nil,
language: AppUILanguage? = nil
) -> String {
let lang = language ?? AppGroupStore().uiLanguage
if engineMode == "local" {
let asrName = SharedL10n.string("engine.asr.appleSpeech", language: lang)
return SharedL10n.format("engine.summary.local", language: lang, asrName)
}
// Cloud status line should name the speech engine, not the polish LLM.
let resolvedASRProvider: String = {
if let asrProviderId, !asrProviderId.isEmpty { return asrProviderId }
return providerId
}()
let resolvedASRModel: String = {
if let asrModel, !asrModel.isEmpty { return asrModel }
return model
}()
let providerName = ProviderDisplayName.name(for: resolvedASRProvider, language: lang)
let trimmedModel = resolvedASRModel.trimmingCharacters(in: .whitespacesAndNewlines)
if trimmedModel.isEmpty {
return SharedL10n.format("engine.summary.cloud", language: lang, providerName)
}
return SharedL10n.format(
"engine.summary.cloudWithModel",
language: lang,
providerName,
trimmedModel
)
}
}