7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ollamaを使うローカル翻訳インターフェイス

Posted at

デスクトップ翻訳にはDeepLを使っていましたが、ローカルLLMの質が向上してきたのでAutomatorスクリプトで乗り換えることにしました。通信のできない環境でも最低限の翻訳はできますので、使い道はあるかと思います。

local-llm-translator(github)

local-translator.jpg

アプリケーションといってもUnixユーザーランドでOllama越しに翻訳させ、結果をTextedit.appで表示するだけのごくごく簡単なシェルスクリプトですので、ご自分の用途に合わせて改造してください。

準備

インストール

  • GitHubでmain.shの内容をコピー
  • Automator.appで新規クイックアクションを作成
    1. 新規クイックアクションを作成
    2. ライブラリから「シェルスクリプトを実行」を選択し、右ペインにドラッグ
    3. 検索対象を「すべてのアプリケーション」に設置して、main.shの中身をペースト
    4. 名前をつけて保存、サービスメニューから実行(設定.appでショートカットを割り当てることも可能です)
新規Automator モジュール選択

スクリーンショット 2026-01-27 14.27.39.png

日本語訳プロンプト

日本語訳するプロンプトは以下。gpt-4あたりからYou are...と役割を入れなくても期待通りの動作をすることが増えてきましたが、非力なローカルLLMではまだ有効です。gpt-4やgeminiのAPIなら、日本語以外のテキストなら日本語に、日本語が入ってきたら英語に翻訳するみたいなこともプロンプトで制御できますが、8b程度のモデルではまだ動作しません。

別言語への翻訳をしたいなら、このプロンプトのinto Japaneseinto Englishなどと変更してください。

PROMPT=$'You are a professional translator.\n- Translate the following text into Japanese.\n- Keep tone and nuance.\nDo not add explanations.\n---\n'"$SRC_TEXT"

モデルについて

スクリプトの初期設定は私が使っている-hoangquan456/qwen3-nothink:8bです。

4bなら短文投稿、8b以上あればニュースぐらいなら翻訳らしい翻訳を作ってくれます。オンラインのDeepLのようなレスポンスを期待すると、かなり待たされる印象を受けることでしょう。

後記

飛行機や新幹線など、ネットワーク接続がなかったり不安定だったりする移動中でも最低限の翻訳ができるのはありがたいですね。昨年は地元に帰ることが多くて移動中に機械翻訳を使いたくなることが多かったのですが、このスクリプトのおかげで韓国語や中国語のメッセージを読むことができました。

このプロジェクトはVS Code用のContinueに8割ほど書いてもらいました。ContinueはCopilotやClaudeのような統合開発に対応したパワーは感じませんが、こういうスクリプトならとても助かるエージェントです。APIを選べるので長いコンテキストならGPT 4o、設計時には5.1、セカンドオピニオンにGeminiあたりを選んだりできるのがいい。また、Ollamaでも動くので、deepseekのコーディングモデルでローカル開発もできます。

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?