ヘルプデスクOSS「Zammad」の日本語は23%しかなかった——5,123エントリを全訳して本家Weblateを100%にするまでと、今すぐ日本語化する手順
この記事は バイブコーディング的仕事ブログ(AI OSS技術解説)へ移りました。 最新版はこちらです → https://exbridge.jp/vibeblog/2026-09-03-zammad-japanese-guide.html
Zendeskの代替を探すと必ず候補に挙がるオープンソースヘルプデスク Zammad(Ruby on Rails製・AGPL-3.0・GitHubスター5,800超)。メール・電話・チャットの問い合わせをチケットとして一元管理でき、セルフホストで月額ゼロ運用ができます。
Zammadを日本語で使うには、 プロフィールの言語を日本語にするだけでは足りません。2026年9月3日に当社が数えた時点で、本家に入っていた日本語訳は約23%で、画面の多くが英語のまま残ります。当社が全訳した翻訳ファイル(po)に差し替えると、今日から日本語で使えます。手順は下の「今すぐ日本語化する手順」にあります。
ただし導入した日本の会社がまず突き当たるのが「画面のかなりの部分が英語のまま」という問題です。この記事は、その原因の実測から、当社(名古屋のAIシステム開発会社・エクスブリッジ)が全エントリを翻訳して本家の翻訳基盤(Weblate)へ投入するまでの記録と、いま使っているZammadを今日日本語化する手順をまとめたものです。
実測: 日本語カバレッジは23%だった
Zammadの翻訳は gettext の po ファイル(i18n/zammad.ja.po)で管理されています。developブランチのja.poをpolibで解析すると:
有効エントリ: 5,123
翻訳済み(非fuzzy): 約1,260 = 約23%
本家の翻訳プラットフォーム(Weblate)上の表示では 18.8% でした。管理画面・トリガー設定・メール通知テンプレートなど、運用の中核部分の多くが英語のまま表示されるのはこのためです。
全訳の方法: ローカルLLM+機械検証
未訳の約4,100エントリを、ローカルGPUで動くLLM(gemma系12B)でバッチ翻訳しました。API費用はゼロです。品質はプロンプトではなく検証で担保します:
- プレースホルダの逐語一致検証:
%s%{name}#{ticket.title}などの変数、HTMLタグ、URL、改行を原文と訳文で機械照合し、一致しない訳は自動で不採用(リトライ後も不一致なら未訳のまま残す) - 用語統一(Ticket=チケット/Agent=担当者/Overview=一覧/Escalation=エスカレーション など)を対訳表としてシステムプロンプトに固定
- fuzzyフラグの罠: fuzzy付きエントリは訳があっても実行時に使われないため、自分が訳を入れたものだけフラグを外す(本家由来の訳とfuzzyには一切触れない)
- 最後まで検証に弾かれた4件のみ手訳
結果、有効5,123エントリの100%が翻訳済みになりました。gettext互換はmoコンパイルで確認しています。
今すぐ日本語化する手順(セルフホスト向け)
完成したpoは katsushi2441/zammad-jp で公開しています(AGPL-3.0)。
# 1. poを差し替え(パッケージ版の例)
sudo cp zammad.ja.po /opt/zammad/i18n/zammad.ja.po
# 2. 翻訳をDBへ同期
zammad run rails r 'Translation.sync'
# 3. ブラウザを再読み込み(プロフィールの言語=日本語を確認)
個別の文言はZammad管理画面の翻訳カスタマイズでも上書きできます。
ここで止まったら、導入を任せてください。 当社がこの記事のとおり実際に入れて確かめた手順で、サーバーへの導入、日本語化、初期設定まで代行します(標準プラン 税込110,000円から)。 問い合わせ管理システムを無料で入れる(FreeScout・Zammadの導入を代行)
本家への還元: 直接PRは「拒否」と明文化されている
前回の Krayin日本語化 ではGitHubへのPRがそのままマージされましたが、Zammadは開発者ドキュメントに 「翻訳ファイルを直接変更するPRは拒否する」 と明記されています。正規ルートは翻訳プラットフォームの Weblate(要アカウント)です。
そこでWeblateにアカウントを作り、REST APIの翻訳アップロード(POST /api/translations/zammad/zammad-development/ja/file/・method=translate)でpoを投入しました。method=translateは既存の訳を上書きせず未訳だけを埋めるので、本家の翻訳者の仕事を壊しません。結果:
zammad-development/ja: 18.8% → 100.0%(受理4,158件・既存965件はスキップ)
zammad-stable/ja: 20.2% → 99.1%(developmentから自動伝播)
Weblateの翻訳は本家のリリースフローでi18n/zammad.ja.poへ同期されるため、今後のZammadリリースには日本語がほぼ完全な状態で同梱される見込みです。マージ後の保守は本家の翻訳フローに引き継がれます。
まとめ
- Zammadの日本語が中途半端なのは実測23%のカバレッジが原因
- いま使っているZammadは zammad-jp のpoで今日日本語化できる
- 本家Weblateには全訳を投入済み(development 100%)。次のリリース以降は本家だけで日本語が揃う見込み
- OSSの日本語化は「配って終わり」ではなく「本家に返して保守を手放す」ところまでやると、日本のユーザー全員の資産になります
よくある質問
Zammadは日本語で使えますか?
使えます。ただし、2026年9月3日に当社が数えた時点では、本家に入っていた日本語訳は約23%(Weblate の表示で18.8%)で、管理画面・トリガー設定・メール通知テンプレートなどの多くが英語のままでした。当社が全訳した翻訳ファイル(zammad-jp)に差し替えると、全体が日本語になります。
Zammadを日本語化する手順は?
セルフホストのZammadなら、全訳済みの zammad.ja.po を /opt/zammad/i18n/ に置き、zammad run rails r 'Translation.sync' で翻訳をデータベースに同期して、ブラウザを再読み込みします。各ユーザーのプロフィールで言語が日本語になっているかも確かめてください。
Zammadの日本語訳を本家に送るには?
GitHub に翻訳ファイルを直接変えるプルリクエストを出しても、受け付けられません(開発者向けの文書に明記されています)。翻訳サイトの Weblate にアカウントを作って投入します。当社の全訳は Weblate に投入済みで、development は100%になりました。
Zendeskの代わりになりますか?
メール・電話・チャットの問い合わせをチケットとして一元管理する、という中心の機能は同じです。セルフホストならユーザー数による月額はかかりません。比較と導入の相談は下のページにまとめています。
Zendesk代替としての比較・導入支援はこちらのページにまとめています。