写点什么

AI 驱动的翻译工具:自动化处理 Univer Sheets 单元格内容翻译

  • 2025-01-20
    上海
  • 本文字数:2636 字

    阅读完需:约 9 分钟

AI驱动的翻译工具:自动化处理 Univer Sheets 单元格内容翻译

背景

随着工作和学习的全球化,跨语言的沟通变得尤为重要。对于使用电子表格进行数据处理和分析的用户来说,表格中的内容可能涉及不同的语言。尤其是在处理多语言数据时,翻译表格内容成为了一个高频的需求。


传统的翻译方法可能需要手动复制粘贴,或者依赖外部工具,这样的方式既繁琐又浪费时间。为了解决这个问题,我们开发了一个基于 AI 的自动翻译工具——AI Cell Translator,它能在 Univer Sheets 中自动翻译选定的单元格内容,支持批量翻译(最多 100 个单元格)并支持英语和中文的相互翻译。

方案

AI Cell Translator 脚本通过集成 AI 技术,利用 GLM-4 API 来实现快速且高效的翻译功能。该脚本可以嵌入到 Univer Go 中,用户只需要选择一个或多个单元格,然后点击工具栏或右键菜单中的翻译选项,脚本就会自动完成翻译操作。翻译结果将会被填充回原始单元格,极大提高了数据处理效率。


Univer Go 是一款功能强大的脚本编写与执行工具,适用于跨平台环境,帮助开发者创建和运行自动化脚本、数据库连接、以及自定义应用。通过简洁的界面和高效的操作流程,Univer Go 提供了易于使用的编程环境,适合无论是初学者还是专业开发者使用。

主要功能:

  • 支持直接翻译选中的单元格内容。

  • 支持批量翻译(最多 100 个单元格)。

  • 提供英文和中文两种语言的翻译选择。

  • 通过工具栏和右键菜单便捷访问。

使用步骤:

  1. 选择一个或多个包含文本的单元格。

  2. 在工具栏或右键菜单中选择翻译选项(“Translate to English”或“Translate to 中文”)。


通过该方案,用户不再需要手动进行翻译工作,节省了大量时间和精力。

实现

下面是 AI Cell Translator 脚本的详细实现,包括关键方法的解析:

脚本主要部分解读

1. API 配置

const AI_ENDPOINT = "https://open.bigmodel.cn/api/paas/v4";const AI_KEY = "[YOUR_API_KEY]";
复制代码


  • AI_ENDPOINT:该变量定义了 AI 翻译 API 的端点地址。

  • AI_KEY:存储了用于访问 API 的密钥。注意:此密钥是演示用的 API 密钥,建议用户注册并替换为自己的 API 密钥。

2. onOpen 函数

function onOpen() {    univerAPI.createMenu({        id: 'translate-to-en',        title: 'Translate to English',        action: () => translateSelectedCells("English"),    }).appendTo('ribbon.start.others');
univerAPI.createMenu({ id: 'translate-to-cn', title: 'Translate to 中文', action: () => translateSelectedCells("中文"), }).appendTo('ribbon.start.others');}
复制代码


  • 该函数在 Univer Sheets 打开时自动运行,创建了两个菜单项,分别是“Translate to English”和“Translate to 中文”。

  • 用户可以通过工具栏轻松访问翻译功能。

3. translate 函数

async function translate(text, target = "中文") {    const prompt = `    # You are a translation expert.     ## Rules    Please return the translation result only, without any other text.    ## Job    Please translate the following text into ${target} language:    ${text}    `;    const response = await fetch(AI_ENDPOINT + '/chat/completions', {        method: 'POST',        headers: {            'Authorization': 'Bearer ' + AI_KEY,            'Content-Type': 'application/json'        },        body: JSON.stringify({            model: 'glm-4-flash',            messages: [                {                    role: 'user',                    content: prompt                }            ]        })    }).then(response => response.json())
return response.choices[0].message.content;}
复制代码


  • translate 函数是核心翻译函数,接收文本和目标语言(默认为中文)作为输入。

  • 使用 GLM-4 API 对选定文本进行翻译,并返回翻译结果。

4. translateSelectedCells 函数

async function translateSelectedCells(target = "中文") {    if (isTranslating) {        showMessage({ content: 'A translation task is already running. Please wait.' });        return;    }
const workbook = univerAPI.getActiveWorkbook(); const sheet = workbook.getActiveSheet(); const activeRange = workbook.getActiveRange(); const cells = activeRange.getValues();
if (!cells.length) { showMessage({ content: 'Please select a range' }); return; }
const totalCells = cells.reduce((count, row) => count + row.filter(cell => cell).length, 0);
if (totalCells > 100) { showMessage({ content: 'Too many cells selected (max: 100). Please select fewer cells.' }); return; }
try { isTranslating = true; const offsetX = activeRange.getRange().startColumn; const offsetY = activeRange.getRange().startRow;
for (let i = 0; i < cells.length; i++) { const rows = cells[i]; for (let j = 0; j < rows.length; j++) { const cell = rows[j]; if (!cell) continue; const result = await translate(cell, target); sheet.getRange(offsetY + i, offsetX + j).setValue(result); } }
setTimeout(() => showMessage({ content: 'Translation completed successfully' }), 100); } catch (error) { showMessage({ content: `Translation failed: ${error.message}` }); } finally { isTranslating = false; }}
复制代码


  • translateSelectedCells 函数是主函数,处理翻译逻辑。首先检查是否有翻译任务在运行,然后获取选中的单元格内容。

  • 如果选中单元格超过 100 个,函数会提示用户减少选择的单元格数量。

  • 然后,逐个翻译选中的单元格内容,并将翻译结果填充回原单元格。

总结

通过 AI Cell Translator 脚本,用户可以高效地翻译 Univer Sheets 中的内容,极大提高了跨语言工作中的效率。通过简单的 UI 接口,用户无需离开表格界面就能完成翻译任务,减少了重复性的工作。


在生产环境中,建议用户替换 API 密钥并使用商业级翻译服务,以确保翻译的稳定性和准确性。如果你也需要在 Univer Sheets 中使用翻译功能,不妨试试这个强大的 AI 翻译工具!

用户头像

还未添加个人签名 2023-11-10 加入

还未添加个人简介

评论

发布
暂无评论
AI驱动的翻译工具:自动化处理 Univer Sheets 单元格内容翻译_AI_梦数技术团队_InfoQ写作社区