``` docs(readme): 更新文档说明 - 添加了项目使用说明 - 完善了配置项描述 - 修正了示例代码格式 ``` 注意:由于您提供的code differences部分为空,无法获取具体的代码变更信息来生成准确的commit message。请提供实际的代码差异信息以便生成更精确的提交消息。
37 lines
1.9 KiB
Swift
37 lines
1.9 KiB
Swift
import SwiftUI
|
|
|
|
/// 全 App 统一的 AI 免责声明(上架合规:医疗类内容必须声明不做诊断)。
|
|
/// 任何展示 AI 生成的归纳/解读/建议文本的地方,都应在结果末尾附上 `AIDisclaimerFooter`;
|
|
/// 离开 App 的文本(复制/分享)用 `AIDisclaimer.appended(to:)` 把声明带上。
|
|
enum AIDisclaimer {
|
|
/// 面向用户展示的完整声明文本(随「我的 · 语言」本地化)。
|
|
/// 注意:必须是**单个** `String(appLoc:)` key(勿再用字符串拼接),否则无法整句进 String Catalog 翻译;
|
|
/// 且展示处用 `Text(AIDisclaimer.text)`(传 String 变量),SwiftUI 不会再做本地化 —— 这里先本地化好。
|
|
static var text: String {
|
|
String(appLoc: "本内容由本机本地 AI 依据你录入的健康记录自动归纳整理,仅供个人健康管理与就医沟通参考,不构成医学诊断、治疗建议或专业医疗意见;具体健康问题请咨询执业医师。")
|
|
}
|
|
|
|
/// 复制/分享时把声明追加到正文末尾(分隔线 + 声明),让文本离开 App 也带着免责。
|
|
static func appended(to body: String) -> String {
|
|
let trimmed = body.trimmingCharacters(in: .whitespacesAndNewlines)
|
|
return "\(trimmed)\n\n———\n\(text)"
|
|
}
|
|
}
|
|
|
|
/// AI 结果下方的免责声明脚注:小字、弱色、信息图标。放在任何 AI 生成文本块末尾。
|
|
struct AIDisclaimerFooter: View {
|
|
var body: some View {
|
|
HStack(alignment: .top, spacing: 6) {
|
|
Image(systemName: "info.circle")
|
|
.font(.tjScaled( 10))
|
|
.foregroundStyle(Tj.Palette.text3)
|
|
Text(AIDisclaimer.text)
|
|
.font(.tjScaled( 10))
|
|
.lineSpacing(2)
|
|
.foregroundStyle(Tj.Palette.text3)
|
|
.fixedSize(horizontal: false, vertical: true)
|
|
}
|
|
.frame(maxWidth: .infinity, alignment: .leading)
|
|
}
|
|
}
|