Swift如何快速(利用AI)实现代码语言本地化适配?

225 阅读3分钟

(创作灵感,可跳过看步骤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

    }

}

在任何地方只需像下面这样选中代码,就会弹出如下示例这样

截屏2024-12-31 17.03.48.png 然后只需要点击【Swift项目快捷本地化】这个选项,豆包会把预期代码自带转换出来:

截屏2024-12-31 17.12.18.png 点击结果下面的【↑↓】替换即可把代码变成如下:

self.cNavigationBarTitle = segmentIndex == 0 ? Language(chinese: "AI 女友", english: "AI Girlfriend") : Language(chinese: "AI 男友", english: "AI Boyfriend")

当然这只是举个例子,实际上你可以选中一大长段或者全选来执行全局替换,这样一键就搞定了当前文件里的全部字符串本地化,大大的节省了时间成本和机械化流程