DeepL glossary(用語集)とは
2021年8月から glossary
が API でサポートされています。
English into Japanese (EN -> JA)
もサポートされ、最大1000個までの用語集を管理できます。
2022年5月から GUI でも対応開始しています。
用語集の csv
ファイル作成
こちらのような csv
ファイルを作成して活用します。
例えば製品特有なワードとして登録して、変な翻訳を防ぎたいシーンがあります。
Cloudflare,Cloudflare
Workers,ワーカーズ
Rate Limiting,レートリミット
Zero Trust,ゼロトラスト
Remote Browser Isolation,リモートブラウザ分離
Pages,ページズ
Durable Objects,Durable Objects
Images,イメージズ
DeepL glossary(用語集)の作成
こちらの API ドキュメントを参考にします。
entries=
の部分は URL エンコードされた文字列になるように csv
から変換をかけています。
例えば、"sourceEntry1,targetEntry1\nsourceEntry2,targetEntry2"
は
"sourceEntry1%2CtargetEntry1%0AsourceEntry2%2CtargetEntry2"
というように指定します。
export DEEPL_API_KEY='YOUR_DEEPL_API_KEY'
export ENTRIES=$(awk -v d="\\\n" '{s=(NR==1?s:s d)$0}END{print s}' deepl-glossary.csv | nkf -WMQ | sed 's/=$//g' | tr -d '\n' | tr = % | sed 's/%5Cn/%0A/g')
curl -X POST 'https://api-free.deepl.com/v2/glossaries' \
-H "Authorization: DeepL-Auth-Key $DEEPL_API_KEY" \
-d 'name=My%20Glossary' \
-d 'source_lang=en' \
-d 'target_lang=ja' \
-d 'entries='${ENTRIES}'' \
-d 'entries_format=csv'
以下のように glossary_id
が結果として得られますので、Google Slide の翻訳に活用します。
{
"glossary_id": "bab585c6-62f8-4660-b11a-37c2941271e9",
"name": "My Glossary",
"ready": true,
"source_lang": "en",
"target_lang": "ja",
"creation_time": "2022-11-25T15:51:12.392537+00:00",
"entry_count": 8
}
Google App Script
以前のコードを DeepL glossary(用語集)を活用できるように変更しましたので、こちらを使います。
Google App Script コード - Google Slides を翻訳する Google App Script - Qiita
結果
以下のスライド内容を比較してみると、おおむね、うまく機能させられたことがわかります。
ただ Cloudflare,Cloudflare
は機能していますが、Durable Objects,Durable Objects
は「耐久性のあるオブジェクト」となり、機能していません。
英語を英語のまま残しておくような指定の仕方だと結果として翻訳にかけられてしまう可能性があるので、適切な日本語訳を日本語で明示的に指定してあげる使い方が良さそうです。
オリジナル
DeepL glossary(用語集)なし
DeepL glossary(用語集)あり
感想
こうなると次は用語が増えるほど用語集の管理が大変になってくるかもしれませんが、積み重ねで翻訳フィードバックの蓄積を反映できるのは長い目で見たときには品質を改善することにつながってくると思います。
参考
- CData Arc を使ってCSV ファイルからDeepL に用語集を作成する | CData Software Blog
- How to Join Multiple Lines Into One | Baeldung on Linux
- Macでnkfコマンドを使えるようにするには? | Takuya.B.com
- シェルスクリプトでシンプルにurlエンコードする話 - Qiita
- DeepL API
参考:List Glossaries
curl -s 'https://api-free.deepl.com/v2/glossaries' \
-H "Authorization: DeepL-Auth-Key $DEEPL_API_KEY" | jq
参考:Delete Glossaries
curl -sX DELETE 'https://api-free.deepl.com/v2/glossaries/9c1a9bb8-c3bf-4b73-96ff-01eb741e1830' \
-H "Authorization: DeepL-Auth-Key $DEEPL_API_KEY" | jq
参考:Delete All Glossaries
curl -s 'https://api-free.deepl.com/v2/glossaries' -H "Authorization: DeepL-Auth-Key $DEEPL_API_KEY" | jq -r '.glossaries[].glossary_id' | while read line
do
curl -sX DELETE "https://api-free.deepl.com/v2/glossaries/$line" \
-H "Authorization: DeepL-Auth-Key $DEEPL_API_KEY"
done