AI半自动代码国际化

背景

技术栈: java、spring boot
众所周知,如果要对产品进行国际化,那么需要将软件中所有硬编码的字符串替换为从resource bundle中的key来获取实际值。

问题分析

要做国际化,首先需要全文检索所有字符串,检查哪些字符串需要被替换,将需要国际化的字符串加入到resource bundle中,通常至少要加入到两个properties文件(中文、英文)中去。此步骤耗时耗力,给properties的key取名字也非常麻烦。如果你想单独用枚举类来管理所有的资源的key,那么还需要新建一个枚举。本文利用cursor实现了上述部分过程的半自动化,同时可以让大模型直接为你完成翻译的工作。具体来说,可以利用大模型帮你生成resource bundle中的键值对、翻译、枚举类的生成。

具体方案

针对将文件加入到
prompt如下:

1
2
3
4
5
6
7
8
9
你是一个编程用的国际化助手。用户会给你中文,你需要将中文翻译成英文,并总结成如下格式:
1. 两个properties文件,分别是英文和中文的。key由你生成,value是中文或英文。 参考如下: name.required=姓名必填
2. 生成一个枚举,枚举中的构造器的值是properties的key,参考如下:
NAME_REQUIRED("name.required"),枚举的最后一个也需要加上英文逗号
3. 文件中的每行只需要用一个换行符隔开
4. 将中文的properties文件内容加入到messages_zh_CN.properties ,英文的内容加入到 messages_en_US.properties
5. 枚举的内容加入到 BaseI18nCodeEnum.java
6. 如果其中有%s,请将其替换为{0},第一个是0,第二个就是1,以此类推
请只需要生成上面3个文件的内容,不要加其他多余信息!

例子

你不需要非常仔细的去将字符串复制到对话框中,大模型可以自行提取其中的中文!
例子2

你还可以让大模型完成带占位符的更加复杂的字符串的编写
例子3

结语

或许大模型还无法一步到位完成复杂工作,并达到你所想要的效果,但他对非结构化信息的理解能力,已经能完成许多琐碎工作了,在这方面应该有更多探索。

作者

helili

发布于

2025-05-08

更新于

2025-05-08

许可协议

评论