BiliTran

attempt to translate Simplified Chinese to English on bilibili.com using Google Translate API

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         BiliTran
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  attempt to translate Simplified Chinese to English on bilibili.com using Google Translate API
// @author       mastodonna233
// @match        https://www.bilibili.com/
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';
    var audioElements = document.querySelectorAll('audio');
    
    // Loop through all audio elements on the page
    audioElements.forEach(function(audioElement) {
        // Get the language code for Simplified Chinese (zh-CN)
        var languageCode = 'zh-CN';
        
        // Create a new translation object using the Google Translate API
        var translation = new google.translate.Translation();
        
        // Set the source language to Simplified Chinese (zh-CN)
        translation.setSourceLanguage(languageCode);
        
        // Set the destination language to English (en)
        translation.setDestinationLanguage('en');
        
        // Get the audio element's text content
        var textContent = audioElement.textContent;
        
        // Translate the text using the Google Translate API
        translation.translateText(textContent, function(translatedText) {
            // Replace the original text with the translated text
            audioElement.textContent = translatedText;
        }, {
            // Use the "male" voice for the translation
            voice: 'male',
            
            // Set the pitch and speed of the voice
            pitch: 1,
            speed: 1
        });
    });
})();