「2023.004|JP」ベストプラクティスシリーズ:技術文書の多言語対応

技術文書が複数言語をサポートする必要性

  • 問題1:多数の主流の開発言語やフレームワークは欧米から始まりましたので、最初のドキュメントはほとんど英語です。開発者として、英語が母国語でなくても、英語の文書を読むことは徐々に必要なスキルになってきています。しかし、開発者が英語版と母国語版を読むときの読書効率は人によって異なります。幸いなことに、これらの非英語の国では、公式の英語文書を翻訳するためのボランティアがしばしば現れます。
  • 問題2:多くの人が個人ブログを持っています、特にテクノロジー関係者は、自分が遭遇した問題と解決策を自分のブログに記録したいと思っています。これは経験をまとめるだけでなく、他の人と知識を共有するためです。しかし、ブログ記事を書くために使用される言語のため、母国語が他の言語である人は彼の記事を検索または理解することができない可能性があります。これは記事の拡散と知識の共有を制限し、他の人が問題の解決を探す便利さを制限します。

我々が欲しい多言語サポートは何でしょうか?

  • 翻訳品質が高い: これは常に最も重要なことです
  • 元のテキストへの参照が容易
    • 翻訳された文と元の文を同じページ上に表示するのが最も良いでしょう
      • これにより、文が適切に翻訳されていないことを確認するために元のテキストを簡単に閲覧できます
    • 元のウェブページの構造を変更しないことが最も良いでしょう
  • 手動介入の作業量を最小限に抑える
    • 先に述べたように、ソフトウェアの公式文書の翻訳を手伝ってくれるボランティアがいることもありますが、問題は、ボランティアが不足しているか、時間が限られているため、最新の公式文書を十分にタイムリーに翻訳することができないということです
    • いくつかの多言語サポートソリューションは、他の言語でのページやウェブサイトを運営し、開発およびメンテナンスのコストを増やす可能性が高いです
  • 良好なフィードバックおよび改善メカニズム
    • 現在の高い翻訳品質を持つChatGPTでさえ、時々不十分な翻訳を行うことがあります
    • 単語または文の翻訳品質が低い場合は、手動介入、変更、フィードバックのメカニズムが必要です
    • 翻訳者は、ユーザーフィードバックから翻訳内容について学ぶことができ、翻訳能力を向上させる必要があります。

現在の主流の多言語サポート方法

Google翻訳

Google翻訳は、ウェブサイトに直接統合できます:

総合評価(スコア0-5):

評価項目 スコア 備考
翻訳品質が高い 2 Google翻訳の現段階の品質は高くありません
元のテキストを参照しやすい 3 メニューを切り替えるか、2つのWebページを開く必要があります
手動介入の作業量を最小限に抑える 4 この方法は最も単純で最も原始的で、コストが最も低いため、最も一般的な方法です
良好なフィードバックおよび改善メカニズム 0.5 現在のユーザーは翻訳結果をフィードバックする方法がほとんどありません

多言語ページの切り替え

言語切り替えボタンを使用して、現在のページの別の言語バージョンに切り替えることは、実際には異なるURLのWebページです。 この方法は実際には、ウェブサイトにGoogle翻訳を統合するのと同じです。

総合評価(スコア 0-5):

評価項目 スコア 備考
翻訳品質が高い 4.5+ 上記のように、このタイプの公式ドキュメントは、機械翻訳に手動校正を加えて翻訳する必要があります。
元のテキストを参照しやすい 3 メニューを切り替えるか、2つのウェブページを開く必要があります。
手動介入の作業量を最小限に抑える 1
  • 前述したように、機械翻訳に手動校正を加えるには、一定の人的関与が必要です。
  • 上記の例では、Python 3.12.0a7が最新の公式開発バージョンであり、新しいコンテンツが追加され、以前のバージョンのコンテンツが変更されます。このようなコンテンツは、ボランティアの数と強度が限られているため、タイムリーに翻訳することはできません。
  • また、独立したページの維持にも一定の作業量が必要です。
良好なフィードバックおよび改善メカニズム 1.5 Pythonのようなオープンソースソフトウェアの場合、そのドキュメントは通常、別々のプロジェクトとして維持されます。ユーザーが翻訳コンテンツを変更したい場合、通常は公式Pythonドキュメントの「Dealing with Bugs」セクションを参照して、イシュートラッカーを介してフィードバックする必要があります。

異なる言語のウェブサイトを構築

異なる言語のソフトウェアドキュメントは、異なるドメイン名に配置される場合もあれば、異なるサブドメインに配置される場合もあります。前述の多言語ページの切り替えと比較して、この方法はWebサーバーの維持に対してより多くの作業量が必要です。

総合評価(スコア0-5):

評価項目 スコア 備考
翻訳品質が高い 4.5+ 前述の最後の節で述べた状況と似ています
元のテキストを参照しやすい 2? Angularの公式ウェブサイトの例に従って、特定の文書ページから他の言語のウェブサイトに直接切り替えることはできません(Angular.cnは独自のソリューションを持っています、これについては後で詳しく説明します)
手動介入の作業量を最小限に抑える 0.5 前述の最後の節で述べた作業量と同様ですが、追加のコストがかかります(追加のWebサーバーの維持)
良好なフィードバックおよび改善メカニズム 1.5 前述の最後の節で述べた状況と似ています

余談 - 外国文書の読み取りのための補助翻訳ツール

前の記事は、複数の言語をサポートするためのオプションの技術的ソリューションを議論するために、技術ソフトウェアドキュメンテーションWebサイトの開発者の視点からでした。

一方、文書の読者として、私たちは常に元の外国文書を読むことを主張します。そして、この時点で、補助翻訳ツールを使用して、読書の効率性を高めることができます。

この記事のタイトルを考慮しているにもかかわらず、これについて話すことはまだ必要です。

Chrome内のGoogle翻訳

クライアント(ブラウザなど)内の組み込み機能/プラグインを使用して呼び出すと、実装、翻訳結果、Webサイト側の紹介がGoogle翻訳に似ています。

単語選択翻訳

元のバージョンで公式文書を読んだり、日本語や英語を勉強したりするとき、私はよく単語選択翻訳ツールを使って、知らない単語を調べます。

いくつかの単語選択ツールをAnkiと組み合わせると、単語選択クエリの後に単語記憶のためにAnkiカードを直接作成できます。将来、この強力な記憶ソフトウェア - Ankiを専門に紹介する記事を書きます。

Online Dictionary Helper

Online Dictionary Helperは、多くの辞書を組み込んでおり、様々な主流言語と英語と中国語間の翻訳をサポートしています。単語以外にも文章の選択翻訳が可能ですが、翻訳品質は高くありません。また、選択してAnkiカードを直接作成することもできます。

Yomichan

Yomichanは主に日本語の単語検索に使用され、様々な辞書をダウンロードできますが、すべての定義は英語です。文章の選択翻訳はサポートしていません。また、選択してAnkiカードを直接作成することもできます。

openai-translator

openai-translatorは、最近人気のChatGPTを使用した翻訳を行います。特徴は次のとおりです。

  • 利点
    • 比較的高い翻訳品質: ChatGPTが多くの文学、文書、ウェブサイトなどを学習しているため、その翻訳精度は比較的高い。
    • 特定の反応と改善メカニズム:翻訳品質が低い場合は、polishingボタンを使用して再翻訳を要求し、通常より良いバージョンを取得できます。
  • 欠点
    • プライバシーとセキュリティの問題:これは古い問題であり、単語選択翻訳は、ChatGPTに私たちが見ている内容を漏らします
    • 単語選択翻訳は翻訳能力を制限する: ChatGPTが翻訳者として機能する場合、記事の文脈を分析・学習することによって、全体の記事の学習品質を最大限に高めることができます。しかし、単語選択翻訳は、部分的な内容のみを提供するのと同等です。クラウド内の履歴学習経験に基づいて翻訳することはできますが、全文を提供した場合と比べて効果は確かに劣ります。
    • フィードバックと改善メカニズムを改善する必要があります:特定のテキストを公式ChatGPTを使用して翻訳し、翻訳品質が低い場合は、それにフィードバックしてより良い翻訳の提案を行うことができます。これにより、翻訳能力が向上します。しかし、openai-translatorでは、ChatGPTを「再翻訳」させるだけのpolishingボタンしか使用できず、「どのようにより良い翻訳を行うか」を伝えることはできません。

技術文書の多言語サポートのベストプラクティス

前の節から、ウェブ開発者として、技術ソフトウェア文書のウェブサイトを複数言語でサポートするためのベストプラクティスは何かを理解することができます。

それに基づいて、以下の要件を可能な限り満たす必要があります:

  1. 翻訳品質が高い
  2. 元のテキストを参照しやすい
  3. 手作業の作業量を最小限に抑える
  4. 良好なフィードバックと改善メカニズム

既存の製品がこれらの問題をどのように解決しているかについて話しましょう。

Angular.cnのベストプラクティス

2. 元のテキストを参照しやすいを解決するのは難しいです。今まで見たあらゆる翻訳スキームでは、angular.cnだけが巧妙にこの問題を解決しています。

図から分かるように、angular.cnのドキュメント内のパラグラフをクリックすると、元の英語テキストが表示されます。これは比較や参照のために非常に便利です。中国語の翻訳が不明確な場合に特に役立ちます。

Angular.jpはこの機能を実装していないので、angular.cnの保守者の着想だと思います。angular-cnドキュメントプロジェクトのissueをチェックすると、本当にそうであることが分かり、作者も実装のアイデアを紹介しています。markdownのソースファイルを見ると、元のバージョンと翻訳されたバージョンが、作者の言った通りに1つのドキュメントに書かれていることが分かります。

ChatGPTがもたらす希望

Angular.cn は、「2. 元のテキストを参照しやすい」の問題を解決する良い方法であり、ChatGPTが突然現れ、「翻訳品質が高い」と「3.手作業の作業量を最小限に抑える」の問題をより良く解決できますが、「4.良好なフィードバックと改善メカニズム」の点では一定の制限があります。これについては、openai-translatorを紹介する際に既に話しました。

ベストプラクティスに関する私の意見

ベストプラクティスを達成するには、上記の4つの点をうまくやる必要があります。私が使用した製品の中には、現在すべてを行うものはありません。もしご存じなら、コメントして共有してください。

現時点では、全体的により理想的なオプションはopenai-translatorのように思えますが、ユーザー側のプラグインです。しかし、ウェブサイトやブラウザープラグインにGoogle Translateを統合することについて議論したように、技術的な実装においてはほとんど差がありません。唯一の違いは、外部API翻訳呼び出しがウェブサーバー側で行われるか、ユーザーのブラウザー側で行われるかということです。

さて、ベストプラクティスに関する私の詳細な見解について話し合いましょう。ここでは、サーバー側とユーザー側を再び区別せずに:

  1. 翻訳品質が高い:ChatGPT APIなどの高度なツールが呼び出されます。
  2. 元のテキストを参照しやすい:Google Translateとangular.cnの方法を組み合わせます。
    • Google Translateの強みは、Webページのソースコード内のHTML要素やJavascriptを変更せずに、Webページ内のテキストだけを正確に置き換えることができるということです。
      • Googleは検索エンジンとして始まったため、Webページからのテキストの検出と抽出に関して固有の技術的な利点を持っています。
        • Googleは元々検索エンジンであり、強力なクローラーサポートがあるため、Webページからテキストを抽出する豊富な経験を持っています。
        • GoogleはChromeブラウザを開発しましたが、そのコア機能はDOMの解析とレンダリングであり、Webページからのテキストの検出と抽出に関しても豊富な経験を持っています。
      • この効果を自分で実現したい場合、技術的な難しさは無視できませんが、幸いにもChromiumはオープンソースであり、参照することができます。さらに、この問題を解決するために特別に設計された他のオープンソースライブラリもあると思います。
    • angular.cnのマウスクリックにより、元のテキストを隠したり表示したりすることができるのは非常に先進的です。
    • 上記の2つの方法を組み合わせる方法
      1. Chromeのような能力を使用してDOMを解析し、テキストを抽出する
      2. (オプション)関連するすべてのWebページをChatGPTに直接送信して学習する
        • ChatGPTの全体的な翻訳効果を改善するために必要であり、前の節で議論しました。
        • 一般的に、ウェブサイト全体をChatGPTに送信することができますので、ウェブサイト上のすべてのコンテンツを読み取り、特定のページの翻訳準備をすることができます。
      3. 現在のWebページのテキストを抽出し、ChatGPTに翻訳を依頼する
      4. 元のDOM要素をコピーし、元のDOM要素の前に追加し、翻訳されたテキストでテキストを置き換える
      5. CSSを使用して元のDOM要素を隠す
      6. ユーザーが翻訳されたDOM要素をクリックしたときに元のDOMをCSSとJavascriptを使用して表示する
    • 上記のステップ1〜6は実際にはChatGPTによって完全に行うことができますが、それには適切なトレーニングが必要です。
      • Googleと同様に、ChatGPTも強力なWebページDOMの解析とテキストの抽出能力を持っているはずです。
  3. 手作業の作業量を最小限に抑える:1、2、4がうまくできれば、この点は自然にできているはずです。
  4. 良好なフィードバックと改善メカニズム:ChatGPTの学習と自己改善能力を十分に活用します。ここでは2の「2つの方法を組み合わせる」でのテクニカルな実装について議論を続けます。
    1. DOM要素内の翻訳に不適切な翻訳が含まれている場合、ユーザーは関連する単語を選択してChatGPTダイアログボックスを呼び出して問題を報告したり、さらに正しい翻訳を伝えることで、それを改善することができます。
    2. ChatGPTに問題を指摘し、翻訳の指導を与えた後、ChatGPTが再翻訳し、新しい翻訳で関連するDOM要素を更新し、必要なら最適化された翻訳部分を強調表示します。

結び

ChatGPTの降臨は、開発者に大きな便利をもたらし、文書の翻訳と外国文書の読書を大きく変えました。しかし、それがそれ以上のことをすることができるため、一部の人々はそれがいくつかの職業を失業させることを懸念しています。私は今のところ心配する必要はないと思います。それを親しんでうまく使えば、私たちはより強力になるだけです。

もしある日AIがベストプラクティスのようなことを提案し、自動的に実行することができるようになったら、それは人間を置き換えるだけでなく、人類全体を消滅させる可能性もあります :)