当前位置:首页 > JavaScript

js实现翻译语言

2026-03-01 14:22:43JavaScript

使用 JavaScript 实现语言翻译

浏览器原生 API(Translation API)

现代浏览器提供内置的翻译能力,可通过 translate 属性和 Intl API 实现简单翻译:

// 利用 translate 属性标记元素是否需要翻译
document.getElementById("content").translate = "yes";

// 使用 Intl.DisplayNames 获取语言名称翻译
const regionNames = new Intl.DisplayNames(['en'], { type: 'language' });
console.log(regionNames.of('fr')); // 输出 "French"

调用第三方翻译 API

主流云服务商提供翻译 API,需要注册获取 API key:

  1. Google Cloud Translation
    安装客户端库:

    npm install @google-cloud/translate

    示例代码:

    js实现翻译语言

    const { TranslationServiceClient } = require('@google-cloud/translate');
    const client = new TranslationServiceClient();
    async function translateText(text, targetLanguage) {
    const [response] = await client.translateText({
     parent: 'projects/your-project-id/locations/global',
     contents: [text],
     mimeType: 'text/plain',
     targetLanguageCode: targetLanguage,
    });
    return response.translations[0].translatedText;
    }
  2. Microsoft Azure Translator
    安装 SDK:

    npm install @azure/ai-text-analytics

    示例代码:

    js实现翻译语言

    const { TextAnalysisClient, AzureKeyCredential } = require("@azure/ai-text-analytics");
    const client = new TextAnalysisClient(
    "https://your-endpoint.cognitiveservices.azure.com/",
    new AzureKeyCredential("your-api-key")
    );
    async function translate(text, toLang) {
    const [result] = await client.analyze("Translation", [text], {
     targetLanguage: toLang
    });
    return result.translations[0].text;
    }

本地化库方案

对于不需要联网的场景,可使用以下库:

  1. i18next
    结合语言资源文件实现:

    import i18n from 'i18next';
    i18n.init({
    resources: {
     en: { translation: { "hello": "Hello" }},
     fr: { translation: { "hello": "Bonjour" }}
    },
    lng: 'fr'
    });
    console.log(i18n.t('hello')); // 输出 "Bonjour"
  2. Franc + Translate
    语言检测+翻译组合:

    import franc from 'franc';
    import translate from 'translate';
    translate.engine = 'libre'; // 使用 LibreTranslate
    const detectedLang = franc('Bonjour le monde');
    const translated = await translate('Hello world', { to: detectedLang });

注意事项

  • 云服务 API 有调用次数限制和费用产生
  • 浏览器原生 API 依赖用户浏览器设置
  • 本地化方案需要预置翻译词典
  • 敏感内容需自行处理隐私合规问题

性能优化建议

  • 对静态内容使用预编译翻译
  • 动态内容实现缓存机制
  • 批量请求代替多次单条调用
  • 使用 Web Workers 处理大量文本

标签: 语言js
分享给朋友:

相关文章

实现继承js

实现继承js

实现继承的方式 在JavaScript中,实现继承可以通过多种方式完成,每种方式都有其优缺点。以下是几种常见的实现继承的方法: 原型链继承 原型链继承是最基本的继承方式,通过将子类的原型指向父类的实…

js实现排序

js实现排序

数组排序方法 JavaScript提供了内置的sort()方法用于数组排序。默认情况下,sort()将元素转换为字符串并按照Unicode码点排序。对于数字排序,需传入比较函数。 const num…

vue js 实现排序

vue js 实现排序

Vue.js 实现排序的方法 在 Vue.js 中实现排序可以通过多种方式完成,包括使用计算属性、方法或直接操作数据。以下是几种常见的实现方式: 使用计算属性排序 计算属性可以自动响应数据变化并重新…

用js实现vue

用js实现vue

用 JavaScript 实现 Vue 核心功能 Vue.js 是一个渐进式框架,其核心功能包括响应式数据绑定、虚拟 DOM 和组件系统。以下是一个简化版的实现,展示如何用原生 JavaScript…

js实现vue模板

js实现vue模板

使用纯 JavaScript 实现 Vue 模板功能 要实现类似 Vue 的模板功能,可以通过以下步骤完成: 1. 数据绑定与响应式更新 通过 Object.defineProperty 或 Pr…

vue.js实现拍照

vue.js实现拍照

Vue.js 实现拍照功能 在 Vue.js 中实现拍照功能通常需要结合浏览器的媒体 API(如 getUserMedia)和 Canvas 元素。以下是实现步骤: 准备工作 确保项目已安装 Vue…