DeepLでページ全体を翻訳するときにcodeタグを除外する方法

·翻訳·deepltranslate翻訳ainotranslatetampermonkey

DeepLのChrome拡張機能でページ全体を翻訳すると、codeタグまで翻訳されて改行が崩れてしまいます。 Tampermonkeyを使えばtranslate="no"属性を追加して、ページ翻訳時に除外される部分を作ることができます。 以下でその方法を説明します。

DeepL Chrome拡張機能のページ翻訳
DeepL Chrome拡張機能のページ翻訳

DeepL Chrome拡張機能を使うときの問題

DeepLが韓国での決済に対応したことで、これまで選択した部分だけを少しずつ 翻訳して読んでいたのが、Webページを一度にまとめて翻訳して読めるようになりました。

ところが使い続けているうちに、コードを含むドキュメントに出会うと、わざわざコード部分まで翻訳してコードのフォーマットが崩れる現象が起きました。 (フォーマットが崩れるときもあれば、崩れないときもあります。)

この問題を解決するためにcodeタグを翻訳させない方法を探したところ、Google翻訳の場合、 翻訳したくないHTMLタグにtranslate="no"属性を追加するか、class属性にnotranslateを追加すると、 その要素は翻訳されずにスキップされるという記事を見つけました。 1

DeepLでも対応しているか疑問でしたが、調べてみるとtranslateはW3C標準に含まれている内容なので、対応していそうでした。 2

Tampermonkeyで解決

Chrome拡張機能を自分で作ってインストールしないといけないのか…そこまではしたくないなと思っていたところ、検索していて同じ悩みを 抱えていた方が解決した記事を見つけました。(日本語の記事です。) 3

Tampermonkeyは、ブラウザで開くページにJavaScriptを差し込んで実行してくれる拡張機能です。 Chrome拡張機能を作らなくても、簡単なスクリプトを開くすべてのページ(または指定したサイトやページ)で実行 させることができます。

Tampermonkeyのインストールと設定

Chromeウェブストアからインストールします:https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo

インストール後に「新規スクリプトを作成...」を実行すると、コードを編集する画面が開きます。下のコードのように修正します。 @matchの部分は、すべてのページで実行されるように必ず変更してください。

// ==UserScript==
// @name         Codetag notranslate
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  add notranslate class to code related tags
// @author       You
// @match        *://*/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=tampermonkey.net
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    var codeTags = document.getElementsByTagName('code');
    for (const code of codeTags) {
        code.classList.add('notranslate');
        code.setAttribute("translate","no");
    }
    var preTags = document.getElementsByTagName('pre');
    for (const pre of preTags) {
        pre.classList.add('notranslate');
        pre.setAttribute("translate","no");
    }
    console.log('[CODE] notranslate');
})();

保存すると、上の@nameフィールドに入力した名前でメニューが1つ追加されているはずです。有効にして、 ほかのページでページ全体を翻訳してみると、コード部分を除いて翻訳されるのが確認できます。

Tampermonkeyのメニュー
Tampermonkeyのメニュー

使ってみた感想

最初はcodeタグにだけ属性を追加して使おうとしたのですが、属性を無視して翻訳されることがよくあったので、 念のためpreタグにも追加したところ、ほぼコード部分を除いて翻訳されることが確認できました。

参考

Footnotes

  1. https://cloud.google.com/translate/troubleshooting?hl=ko ↩

  2. https://www.w3.org/International/questions/qa-translate-flag ↩

  3. https://zenn.dev/zenwerk/articles/25c696ec6a5b26 ↩

2026 © snc studio·プライバシーポリシー