📝

【備忘録】ターミナルのtransコマンドを使う時に、API制限を回避してファイル翻訳を実行させたい

2023/08/29に公開

https://qiita.com/items/aebead4856e02cbd9fd3


お詫び

Qiitaの元記事にて、区切り線を「---」で書いている場所があり、これがZennの記法に干渉して一部うまく表示できない記事がある事を認識しています。
全ての記事を精査しきれていないため、お手数ですがお見かけの際は教えていただけると大変喜びます。


【備忘録】ターミナルのtransコマンドを使う時に、API制限を回避してファイル翻訳を実行させたい

Translate-shellを無限に動かして遊ぶ#API制限の回避のコマンドを都度都度打ち込んだり、transコマンドをいじるのに抵抗があったので、ファイル化しようとして躓いたところなど。
知ってるかどうかの違いだけど、まとまった情報はなかった。

<details><summary>前提:transコマンドのインストール</summary><div>

transコマンドのインストール自体は本家の通り。
環境により方法が異なるため、ここでは解説できない。

私の環境(WSL:Ubuntu)だと#3. From Gitの手順でインストールしている。

git clone https://github.com/soimort/translate-shell
cd translate-shell/
make
[sudo] make install

参考程度に。

</div></details>

実行ファイル(Bash)

#!/bin/bash
if [ -z "$BASH_VERSION" ] || [ "${BASH##*/}" != "bash" ]; then
  echo "$0: RETURN: Use bash" >&2
  exit 1
fi

input='出力元のファイル'
output='出力先のファイル'
echo >${output}
while read line; do
  # 英語のファイルを日本語に翻訳したい場合
  echo $line | trans en:ja -b -no-autocorrect | tee -a ${output}
  sleep $[RANDOM%5+5]  # 【※】
done <${input}

※補足

Bashである必要があるのは$[RANDOM%5+5]の部分。
shで書き換えられるならbashである必要はない。

参考

<details><summary>ご協力のお願い</summary><div>
読みやすく、疲れない記事にする努力をしているのですが、Qiitaで表示数(View)は分かっても読了を知る方法がないので、
読了された方はLGTMを押してもらえると「この記事は最後まで読んでもらえたんだな」と判別できて助かります。
お手数をおかけします。
</div></details>

GitHubで編集を提案

Discussion