根据提供的code differences信息,由于没有具体的代码变更内容,我将生成一个通用的commit message模板:
``` docs(readme): 更新文档说明 - 添加了项目使用说明 - 完善了配置项描述 - 修正了示例代码格式 ``` 注意:由于您提供的code differences部分为空,无法获取具体的代码变更信息来生成准确的commit message。请提供实际的代码差异信息以便生成更精确的提交消息。
This commit is contained in:
@@ -118,6 +118,48 @@ extension String {
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - AI 输出语言(供 Service/Prompt 层在非 MainActor 上下文读取当前界面语言)
|
||||
|
||||
/// 当前界面语言解析出的「输出语言」,给本地 LLM 的 prompt 用:
|
||||
/// 让 AI 生成的追问 / 解读 / 摘要跟随用户所选界面语言,而不是永远中文。
|
||||
/// 判定只看 `appLocLocale`(LanguageManager 切换时刷新的 nonisolated 快照);
|
||||
/// `system` 跟随系统时,按系统首选语言归一到最接近的受支持语言,兜底中文。
|
||||
nonisolated enum AIOutputLanguage: String {
|
||||
case zhHans, en, ja, ko
|
||||
|
||||
/// 从当前 appLocLocale 解析。system(autoupdatingCurrent)时读系统语言码。
|
||||
static var current: AIOutputLanguage {
|
||||
let code = appLocLocale.language.languageCode?.identifier ?? "zh"
|
||||
switch code {
|
||||
case "en": return .en
|
||||
case "ja": return .ja
|
||||
case "ko": return .ko
|
||||
default: return .zhHans // zh 及其它未支持语言统一回中文(few-shot 也是中文)
|
||||
}
|
||||
}
|
||||
|
||||
/// prompt 里对模型自称的目标语言名(用该语言自己的说法,减少模型误判)。
|
||||
var promptName: String {
|
||||
switch self {
|
||||
case .zhHans: return "简体中文"
|
||||
case .en: return "English"
|
||||
case .ja: return "日本語"
|
||||
case .ko: return "한국어"
|
||||
}
|
||||
}
|
||||
|
||||
/// 追加到 prompt 末尾的「用某语言输出」硬指令。中文时返回空串(few-shot 已是中文,不必额外声明)。
|
||||
/// 用于「生成给用户看的内容」(追问 / 解读 / 摘要),让输出语言=界面语言。
|
||||
var outputDirective: String {
|
||||
self == .zhHans ? "" : "\n\n重要:请全程用\(promptName)输出所有面向用户的文字(JSON 的字段值也用\(promptName)),不要用中文。"
|
||||
}
|
||||
}
|
||||
|
||||
/// 便捷:当前界面语言的「用某语言输出」指令(见 `AIOutputLanguage.outputDirective`)。
|
||||
nonisolated func aiOutputLanguageDirective() -> String {
|
||||
AIOutputLanguage.current.outputDirective
|
||||
}
|
||||
|
||||
// MARK: - Bundle 运行时重定向(供 Text / NSLocalizedString 双保险)
|
||||
|
||||
/// 关联对象 key(需稳定地址,文件级全局即可)。
|
||||
|
||||
Reference in New Issue
Block a user