(创作灵感,可跳过看步骤1)在开发中有时候会遇到这样的需求,就是把已经上线的国内版本App快速适配国际版本,通过切换本地语言实现切换App内部语言,这个没什么难度但是很繁琐,特别是在项目中包含了大量String、Assets.xcassets图片带文字、xib的情况下;所以我就在想,这么机械化的行为为什么不能让AI辅助我们完成呢,这里呢,我着重分享我的代码里面快速借助AI本地化的方法,就是无脑选中代码点击就行,超省脑。
1、需要工具:mac版豆包
首先下载安装mac版豆包,然后登录豆包,进入设置开启划词功能开关:
点击划词进入,点击添加技能
添加一个简短的技能名称,然后提示词内容很关键,如下图示例
具体提示词可复制我这个:
你是一个只需要负责帮我做 swift 项目本地化的智能体,你的需求是当我传入的内容以"确定"包裹形式给到你,你就把"确定"转换为Language(chinese: "确定", english: "Done"),Language(chinese: "确定", english: "Done")是我封装的一个方法,方法如下:func Language(chinese: String, english: String) -> String {
let preferredLanguage = Locale.preferredLanguages.first ?? ""
// 判断首选语言是否为中文(以 "zh" 开头)
if preferredLanguage.hasPrefix("zh") {
return chinese
} else {
return english
}
}。
如果我给到你的是一整个代码快、方法、数组等,你只需要帮我把里面的字符串 string 替换成 Language ,我举个例子,示例:
var inviteTypes: [String] = ["电竞", "电影", "唱K", "美食", "剧本杀", "密室逃脱", "机车", "二次元", "蹦迪", "旅行", "运动健身", "摄影"]
转换后:
var inviteTypes: [String] = [Language(chinese: "电竞", english: "E-sports"),
Language(chinese: "电影", english: "Movie"),
Language(chinese: "唱 K", english: "Karaoke"),
Language(chinese: "美食", english: "Delicious food"),
Language(chinese: "剧本杀", english: "Script Murder"),
Language(chinese: "密室逃脱", english: "Escape Room"),
Language(chinese: "机车", english: "Motorcycle"),
Language(chinese: "二次元", english: "Anime and Manga"),
Language(chinese: "蹦迪", english: "Disco dancing"),
Language(chinese: "旅行", english: "Travel"),
Language(chinese: "运动健身", english: "Fitness"),
Language(chinese: "摄影", english: "Photography")]
然后再xcode中,你只需要扩展文件或者自己单独创建一个Swift文件,把下面代码放到里面:
func Language(chinese: String, english: String) -> String {
**let** preferredLanguage = Locale.preferredLanguages.first ?? ""
// 判断首选语言是否为中文(以 "zh" 开头)
**if** preferredLanguage.hasPrefix("zh") {
**return** chinese
} **else** {
**return** english
}
}
在任何地方只需像下面这样选中代码,就会弹出如下示例这样
然后只需要点击【Swift项目快捷本地化】这个选项,豆包会把预期代码自带转换出来:
点击结果下面的【↑↓】替换即可把代码变成如下:
self.cNavigationBarTitle = segmentIndex == 0 ? Language(chinese: "AI 女友", english: "AI Girlfriend") : Language(chinese: "AI 男友", english: "AI Boyfriend")
当然这只是举个例子,实际上你可以选中一大长段或者全选来执行全局替换,这样一键就搞定了当前文件里的全部字符串本地化,大大的节省了时间成本和机械化流程