APIの基本的な利用方法をまとめましたが、このAPIは一般的な文章だけではなく、HTMLを渡すと良い感じに翻訳してくれる機能が備わっています。今回はHTMLを渡したときの挙動について調べてみたいと思います。設定は前回の記事をご覧ください。v3を触ってみるhttps://blog.katsubemakito.net/nodejs/google-translation-api-v3自然言語の翻訳APIに興味が出てきたのでちょっと触ってみることにします。ここではすでにテキスト情報になっており、日本語から英語など別の言語に自動的に変換してくれる物を想定しています。Translateサイトよりすでに様々なサービスが世に出ていま...ねこの足跡Rソースコードこれも前回利用した物を流用します。}}translateText();前回と異なる点は連想配列requestのmimeTypeをtext/htmlに変更した点です。...};またES2015からバッククォートを利用するとテンプレート機能が使えるわけですが、これ内部で改行することが出来るのです。他のスクリプト言語でいうヒアドキュメント的な書き方が可能になります。実行時にパースの処理が重くなっちゃうのでやらないんだろうなぁ......。実行してみる上記のコードを実行すると次のような結果が返ってきます。日本語だった部分がしっかり英語になっているのがわかりますね。</h1></body></html>注意点としては以下です。HTMLの部分も文字数としてカウントされる(=課金対象)レスポンスでは余分な改行やタブなどは削除されるWebページをまるっと翻訳する際に、Google先生にすべて託した方が楽ちんではありますが、まるっと課金されてしまいます。いえ1箇所づつ抜き出して差し替える処理をするのも面倒なので、どちらを取るかは設計時に考えておく必要がありそうです。head,title,metaheadタグ内で良く見かける物を翻訳してみます。content="小説のページ"></head>実行結果は以下の通り。h1,pbody内に記述する基本的なタグですね。<p>吾輩は猫である。</p></section>実行結果です。a2行目はわざとURLエンコードせずに書きました。href="/q?search=パンダ">検索</a>実行結果です。被リンク文字列はもちろん、title属性も翻訳されますね。href属性はノータッチのようです。imgimg要素で日本語を使うのは主にalt属性でしょうか。alt="パンダ">実行結果です。ruby難読漢字や中二病的なセリフの上に乗せるルビ(よみがな)です。<p><ruby>吾輩<rt>わがはい</rt></ruby>は<ruby>猫<rt>ねこ</rt></ruby>である。</p>実行結果を見ると翻訳してくれてはいますが、ちょっと不自然ですね。漢字で「吾輩」は読みづらいですが、英訳するとシンプルに「I」なので、わざわざルビが振ってあると特別な意味があると捉えられてしまいそう。ルビはGoogle先生に渡す前に削除しておいても良いかもしれません。blockquote引用文をまるっと指定する際のblockquote。<blockquote>吾輩は猫である。</blockquote>容赦なく翻訳されます。preこいつは半角スペースや改行が特別な意味を保つ場合があるので余計なことはしないで欲しいところですが...。</pre>実行結果です。なんだこりゃ!うーん、preタグは鬼門のようですね。}</code>実行結果です。翻訳もされていませんし、改行やスペースもそのままですね。styleスタイルシートはどうでしょう?ここは通常触って欲しくない部分ですね。}</style>実行結果は以下の通り。同じ状態で返ってきました。styleタグは丸ごとスキップされるようです。scriptCSSに続きこれも触ってほしくない箇所。"いらっしゃいませ!");}</script>実行結果は以下の様になりました。これも丸ごとスキップされました。"いらっしゃいませ!");}</script>ただ逆に言えば、例えばJSON形式で保存されている文章や、エラーメッセージなどを翻訳したい場合はHTMLとしてではなくテキスト形式で渡す必要がありそうですね。自宅警備がてらゲームのお仕事や講師などしてご飯を食べてます。ご質問やリクエストなどお気軽に。メールアドレスの入力は任意です。書き込みが反映されるまで時間がかかります。コメントデータの処理方法の詳細はこちらをご覧ください。ブログをメールで購読メールアドレスを記入して購読すれば、更新をメールで受信できます。