随着对Cursor越来越熟悉,它从一个开发环境,慢慢变成了结对编程的伙伴。今天就是和Cursor一起结对实现G2Rail App的部分缺失的翻译,实现代码用的是Flutter。
实现的功能是是把页面的类似于Europe, Asia, America的文字支持能够以手机系统语言展示,比如“Europe”在中文简体手机上展示“欧洲”,在日文手机上展示“ヨーロッパ”
由于整个系统已经实现了多语言,所以更多的是添加相应的Label的翻译,已经把它在既有架构上实现。
添加语言条目
因为需要涉及到多个文件的操作,比普通的函数实现稍微复杂,所以我选择Cursor里面的Composer,写下了我的第一个Prompt。
添加英文条目翻译
接下来是为翻译条目添加语言的翻译,从英文开始,还是继续使用Composer。通过引入@intl_en.arb, @intl_zh_hant.arb,让Composer只是添加英文和繁体中文条目。Composer也能根据文件后缀只能判断出语言,把相应的条目翻译成英文和繁体中文。

通过Cursor Apply -> Review 检查一下,没有问题,接受变更。
添加更多语言
接下来需要把英文和简体中文的条目,应用到其他语言中。
第一次尝试
我期望一次把剩余的所有语言的文件一次替换掉。因此我写下 Prompt: “add translated intl_ files under I10n folder”,结果Composer只是给我翻译了第一个阿拉伯语@intl_ar.arb。不算成功,但是它最后还是提示是否需要修改其他文件。
第二次尝试 – 更小粒度,更明确具体
接下来通过更明确的方式,指定相应的文件。Composer能够理解任务,添加条目,并翻译成相应的语言。
脚本生成Dart代码
系统需要根据arb文件生存Flutter所需要的dart代码,所以利用已有脚本生成了相应的message.dart文件。
由于脚本问题,有两种语言文件出现了重复项目。
去除重复
在Composer中引用出错的文件,然后给出Prompt:
please remove the duplicate items on @messages_zh-HK.dart and @messages_zh.dart
Cursor正确理解了错误,并去除了重复的条目。
功能修改完毕。
反思
- 效率提升:多数情况手搓代码,更多的是给出任务,通过Review Diff来接受和拒绝的过程。
- 协作感:Cursor像个随时待命的助手,有问必答,感觉很顺畅,只要任务明确,完成正确率相当好。
- 专注核心:有了AI的基础支持,我能把精力集中在代码调整和优化上,而不是琐碎代码实现,复制黏贴修改
- 系统理解:通过提供合适的上下文,以Cursor为代表的AI开发工具能够推断出并理解既有系统的实现模式。