上一篇文章收到了很多小伙伴的反馈,总结了一下主要以下几点:
1. 说不知道怎么调api
2. 目前只是把所有的中文变成了英文,如果想要做多语言还需要把这些关键字提炼出来成放到message_zh.properties和message_en.properties文件中,否则的话这样的翻译没有意义,后续如果要加俄语或阿拉伯语就没办法进行动态切换了
3. 日志中的中文不需要做多语言,只有返回前端的数据需要做多语言
所以针对上面三点,我又对代码做了些改动,来让整个国际化更加智能。
直接上代码,代码解决了第二个和第三个问题
import json
import os
import re
import tempfile
import shutil
import difflib
from pydantic import BaseModel
from OpenAIClient import client
# 判断文本中是否包含中文字符(这里只检测实际内容,不包括缩进)
def has_chinese(text: str) -> bool:
return bool(re.search(r"[\u4e00-\u9fff]", text))
# 调用大语言模型进行翻译的函数
def translate_text(text: str) -> str:
return get_completion(text)
class TransResult(BaseModel):
result: str
key: str
value_zh: str
value_en: str
# gpt-4o-mini
def get_completion_eng_word(code_segment, model="gpt-4o-mini"):
# return 'return Result.error("FILE_UPLOAD_FAILED," + state.getState());'
messages = [
{
"role": "system",
"content": (
"你是一个专业的代码国际化助手。请将代码中所有的中文提示信息翻译成英文。翻译后的英文应该简短、准确,并且遵循以下规则:"
"1. 使用单个英文单词来表示中文内容,如果一个中文句子由多个词组成,请用下划线连接多个单词。"
"2. 所有被翻译的英文单词应全部用小写。未翻译的单词保持原状"
"3. 请确保替换后的翻译尽量简洁,避免过长的英文描述。"
"4. 保持代码结构和格式不变,仅替换中文字符串内容。不改变代码的其它部分。"
'5. 如果输入的代码中字符串中需要拼接变量的,类似 return Result.succeed("导入数据成功,一共【"+rowNum+"】行"); ,需要把变量提取出来,当成参数传入,输出应为:’'
'{"result":"return Result.succeed("import_data_success_count", rowNum);", "key":"import_data_success_count", "value_zh":"导入数据成功,一共【"+rowNum+"】行", "value_en":"The data import is successful, and there are a total of ["+rowNum+"] rows"}'

最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



