受够垃圾翻译!CodeBuddy 8 分钟造神器,划词秒翻 + 自动适配所有网页

本文所使用的 CodeBuddy 免费下载链接:腾讯云代码助手 CodeBuddy - AI 时代的智能编程伙伴

前言

作为一个天天泡在 GitHub 上扒项目的人,翻译问题简直是我 “挖宝” 路上的头号绊脚石!想研究国外大神的优质开源项目,不是被机翻软件的 “神操作” 气到血压飙升 —— 把 “repository” 译成 “储存库”,代码注释里的变量名直接乱码;就是被收费翻译工具疯狂割韭菜,看个 README 就要充会员。更崩溃的是,好不容易找到个免费插件,翻译速度慢得像龟速,等它翻完,我都快把项目结构研究透了!本想自己动手改改代码优化翻译效果,打开源码却发现全是加密天书,比破解摩斯密码还难!在 GitHub 爬项目这么久,就没见过一款真正懂技术人的翻译工具!

直到CodeBuddy的横空出世,所有疑难杂症都被解决了。我之所以想用它写一款谷歌翻译插件,是因为它完全戳中了我的需求。它不需要我精通复杂的编程语言,即使像我这样代码基础一般的人,也能通过可视化的操作界面,用 “拖拖拽拽” 的方式快速搭建插件。更棒的是,我还能根据自己的使用习惯,自定义插件功能,比如设置特定技术术语不翻译,或者给翻译结果添加标注。这样一来,我就能打造出一款完全贴合 GitHub 使用场景、只属于我自己的翻译插件,以后再爬项目,再也不用被那些 “坑人” 的翻译工具折磨了!

那么下面,实战开始。

为什么使用蓝耘平台的api

  1. 优质翻译引擎支持:蓝耘平台 api 可能基于先进的翻译模型或算法,能提供更精准的翻译结果,尤其在处理专业领域文本时,对技术术语的翻译更准确、更符合行业习惯。
  2. 高并发处理能力:在处理大量翻译请求时,蓝耘平台 api 能够稳定运行,保证翻译速度和响应时间,适合团队协作开发场景下多人同时使用翻译功能。
  3. 丰富的拓展性:其 api 可能提供了丰富的接口和参数设置,便于与 CodeBuddy 等工具进行深度集成和二次开发,进一步拓展翻译功能,如添加自定义词典、调整翻译风格等。
  4. 安全稳定:蓝耘平台 api 在数据传输和处理过程中,具备良好的安全性和稳定性,保护用户翻译内容隐私,且保证服务不间断,为开发者提供可靠的翻译服务。

为什么使用CodeBuddy

  • 智能代码生成:Craft 模式可依据自然语言指令,完成工程上下文分析、多文件代码生成与改写。如输入 “开发一个音乐 APP” ,能秒级生成包含播放器页面、个人中心等关联页面和文件的代码,适合新项目创建和功能模块开发。
  • 集成丰富知识库:Chat 模式内置腾讯生态等三方知识库,开发微信小程序等对文档要求严格项目时,可快速获取知识。
  • 多模型支持:底层集成 DeepSeek R1/V3 和 HunYuan-Turbo S 双模型且免费无限制,还支持自定义模型接入,提升编码能力。

使用CodeBuddy x 蓝耘API进行翻译插件的生成

获取蓝耘API

我们先获取蓝耘平台的api,点击蓝耘API进入到平台,如果你没有注册的话可以点击注册进行注册操作
进入到页面之后,我们这里选择QwQ-32B这款ai,因为Deepseek思考太慢了,不适合api调用进行翻译操作
image.png
QwQ-32B这个回应的速度还是很快的,并且QwQ-32B的免费使用额度特别多,太多了,爽用就行了
image.png
这里我们点击创建API KEY,然后将这个API KEY进行复制,这个不要外泄哦,小心额度被别人偷偷用光了哦
这里我们直接查看API实例
image.png

这里有详细的调用方式,并且提供实例代码,这里我就得说下有些算力平台,你实例代码都没有,小白根本上不了手,学学蓝耘吧
image.png
我们将代码复制

from openai import OpenAI

# 构造 client
client = OpenAI(
    api_key="sk-xxxxxxxxxxx",  # APIKey
    base_url="https://maas-api.lanyun.net/v1",
)
# 流式
stream = True
# 请求
chat_completion = client.chat.completions.create(
    model="/maas/deepseek-ai/DeepSeek-R1",
    messages=[
        {
            "role": "user",
            "content": "你是谁",
        }
    ],
    stream=stream,
)
if stream:
   for chunk in chat_completion:
       # 打印思维链内容
       if hasattr(chunk.choices[0].delta, 'reasoning_content'):
          print(f"{chunk.choices[0].delta.reasoning_content}", end="")
       # 打印模型最终返回的content
       if hasattr(chunk.choices[0].delta, 'content'):
          if chunk.choices[0].delta.content != None and len(chunk.choices[0].delta.content) != 0:
             print(chunk.choices[0].delta.content, end="")
else:
   result = chat_completion.choices[0].message.content

在这个代码中,我们需要将我框出来的地方进行替换,其他的地方没必要替换了
替换成你想调用的模型名称,比如我要调用的是QwQ-32B,那么我就将下面改成model="/maas/qwen/QwQ-32B"就行了,ai的具体名换都在AI介绍的那一页,以及你自己刚刚复制的API KEY就行了
image.png
image.png

到这里我们就获得了蓝耘api的调用操作了,接下来就开始使用CodeBuddy了

使用CodeBuddy进行API集成创造谷歌翻译插件

我们打开vscode进入到拓展中直接搜索CodeBuddy,点击安装这个插件就行了
image.png
我们点击左侧的插件图标就能进行使用了
我们现在chat模式生成下我们对应的README文件来介绍下这个插件的基本信息
我们直接和ai对话

我现在想开发一款谷歌的翻译插件,通过调用蓝耘平台的api进行文本的翻译,并且有一个可视化的界面进行翻译的打开和关闭,默认的就是中文翻译英文,不需要其他的语种翻译,你帮我生成一个相关的README文件吧

他这里简单的介绍了下我们这款插件的相关功能,但是没有细致的说如何实现,但是问题不大,Craft会帮我们进行解决
image.png
我们将信息复制到我们创建好的README文件里面就好了
README文件如下,大家可以参考我的
image.png
然后我们直接到Craft模式输入下方对话词:

@README.md 请根据文件进行插件的开发,把插件打开之后,我在网页中选中一个片段,他会在右侧显示出具体的翻译具体,包括原文和翻译后的结果,插件的图标我放到了文件夹里面了,叫头像.jpg

他这里检测到我说的话和README文件里面的不一样,然后将README进行了更新的操作
image.png
并且还很清晰的列出了那些文件要被创建,以及文件对应的功能都标注的很清晰
在对话后,我刷了会儿视频他就将代码生成好了,真的解放了我的双手
image.png
接下来我们 就开始进行测试,我们先打开谷歌插件,点击管理拓展程序
image.png

点击加载已经解压的拓展程序,我们这里直接选中我们刚刚存代码的文件夹就行了
image.png
这里我们看到我们成功加载了这个插件,但是上面显示错误
image.png
我们直接点击错误查看对应的信息,我们直接将错误信息复制给CodeBuddy就行了
image.png

下面是CodeBuddy处理报错的相关信息,分析错误的能力很强
image.png
我们再次测试下我们的这个插件,这次我们就没有报错了,很顺利,我们这里打开GitHub测试下具体的效果
image.png
我们点击拓展,他这里有很详细的信息,我们可以将文本复制过来进行翻译
image.png
也可以只直接选中网页的文本大面积翻译,他右侧有弹窗的,但是我们这里翻车了,他这里直接就是翻译失败了,就很难受了,铁铁。
image.png

但是问题不大,我们直接把相关信息跟CodeBuddy说就行了
根据它的分析,我大概知道问题出在哪里了,因为我们给的API调用示例是py代码,但是我们插件用的是js代码,他现在将Py转换为js,我这里等了一会儿看结果
image.png
image.png
这里他修改好了,我们接着测试
但是还是报错了,我突然想明白,为什么不能使用cURL进行API的调用呢,我将对应的代码给CodeBuddy,让他重新帮我生成代码
image.png
代码生成好了之后,我们直接重新测试
看到效果我内心还是很开心的,成了,CodeBuddy名部虚传,蓝耘的api反应速度也很快
image.png
image.png
他这里还会根据你选中的语言的类型自动进行转换,中->英,英->中
很不错的效果
插件的部分代码如下:可以参考下:
siderbar.js

// 获取DOM元素

const originalTextElement = document.getElementById('original-text');

const translatedTextElement = document.getElementById('translated-text');

const copyOriginalButton = document.getElementById('copy-original');

const copyTranslatedButton = document.getElementById('copy-translated');

  

// 从storage中获取翻译数据并显示

function loadTranslationData() {

  chrome.storage.local.get('translationData', (data) => {

    if (data.translationData) {

      const { originalText, translatedText } = data.translationData;

      // 显示原文和译文

      originalTextElement.textContent = originalText;

      translatedTextElement.textContent = translatedText;

    }

  });

}

  

// 复制文本到剪贴板

async function copyTextToClipboard(text) {

  try {

    await navigator.clipboard.writeText(text);

    return true;

  } catch (err) {

    console.error('复制失败:', err);

    return false;

  }

}

  

// 显示复制成功/失败的提示

function showCopyFeedback(button, success) {

  const originalText = button.textContent;

  button.textContent = success ? '已复制!' : '复制失败!';

  button.classList.add(success ? 'success' : 'error');

  // 2秒后恢复按钮文本

  setTimeout(() => {

    button.textContent = originalText;

    button.classList.remove('success', 'error');

  }, 2000);

}

  

// 添加复制按钮事件监听器

copyOriginalButton.addEventListener('click', async () => {

  const success = await copyTextToClipboard(originalTextElement.textContent);

  showCopyFeedback(copyOriginalButton, success);

});

  

copyTranslatedButton.addEventListener('click', async () => {

  const success = await copyTextToClipboard(translatedTextElement.textContent);

  showCopyFeedback(copyTranslatedButton, success);

});

  

// 监听storage变化,实时更新翻译内容

chrome.storage.onChanged.addListener((changes, namespace) => {

  if (namespace === 'local' && changes.translationData) {

    const { originalText, translatedText } = changes.translationData.newValue;

    originalTextElement.textContent = originalText;

    translatedTextElement.textContent = translatedText;

  }

});

  

// 页面加载时初始化

document.addEventListener('DOMContentLoaded', loadTranslationData);

具体代码可以移步到我的CodeBuddy谷歌翻译插件 · 无爱如何释怀/小设计 - 码云 - 开源中国

总结

使用 CodeBuddy 结合蓝耘 API 生成翻译插件,有效攻克当前翻译质量欠佳、速度迟缓、定制困难及操作不便等痛点。这款插件具备划词秒翻、自动适配网页、可定制操作等优势,蓝耘 API 提供精准翻译、高并发处理及丰富拓展性等支持,二者协同打造出高效、精准且个性化的翻译工具。
可以通过下方链接进行注册

蓝耘  https://cloud.lanyun.net/#/registerPage?promoterCode=5663b8b127

本文所使用的 CodeBuddy 免费下载链接:(https://copilot.tencent.com/?fromSource=gwzcw.9661261.9661261.9661261&utm_medium=cpc&utm_id=gwzcw.9661261.9661261.9661261&from_column=20421&from=20421)
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Undoom

感谢啦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值