deepL REST API で XML タグを含む文字列を渡すと課金はどうなるかを検証
日本語への翻訳が群を抜いていると話題の deepL ですが、有償版である deepL Pro の開発者向けプランでは、deepL の翻訳サービスを REST API として呼び出す事ができます。
私は PowerPoint のスライドを翻訳するアプリを作り、内部の翻訳エンジンに deepL を使うことにしました。
deepL が提供する REST API では、パラメータに tag_handling=xml
と指定することで、XML タグを考慮して翻訳してくれます。
これにより、タグによって修飾(色、フォント サイズ、強調など)されている箇所を気にせず、そのまま翻訳することができます。
しかし、気になるのが課金対象となる「文字数」です。 REST API に渡したテキストの文字数なのか、タグを除いた翻訳対象となる文字数なのかがよく分かりません。
そこで、実際に実験してみました。
まず PowerPoint のスライドを解析し、パラグラフを取得します。実際のデータは以下の通りです。
<a:r xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"><a:rPr lang="en-US" dirty="0" /><a:t>Developing Cross-Platform Web Apps With Blazor</a:t></a:r>
これを REST API で翻訳した結果 (JSON) は以下の通りです。
{ "translations": [ { "detected_source_language": "EN", "text": "<a:r xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:rPr lang=\"en-US\" dirty=\"0\" /><a:t>BlazorでクロスプラットフォームのWebアプリを開発する</a:t></a:r>" } ] }
ダッシュボードで確認したところ、課金対象となっているのは 46 文字 ($0.12) でした。 「翻訳した文字数」で課金されていますので、安心して XML タグを投げられますね。 :-)