デジタルイノベーション推進室のbenishougaです。ソフトウェア開発におけるコード品質の可視化や管理を支援し、開発生産性を押し上げるツールとして、SonarQube は世界中で広く利用されています。SonarQube の紹介についてはこちらの記事でも行っているため、参考にしてみてください。
私たちは、より多くの国内開発チームが SonarQube を活用しやすくするために、SonarQube Server の日本語化プラグイン 「SonarQube Japanese Pack」 を開発しました。本記事では、その背景や機能概要、導入方法を紹介します。
目的
- 開発の経緯と課題
 - プラグイン概要
 - 日本語化の範囲と制限
 - 導入方法
 - 開発時の参考情報と、翻訳品質を保つための工夫
 - 今後の予定
 - まとめ
 
1. 開発の経緯と課題
冒頭で述べた通り、SonarQubeは世界中で広く利用されており、また日本国内においても利用が広がっているという状態です。SonarQubeは標準でサポートしている言語は英語のみとなっており、他の言語で利用したい場合、それぞれの言語向けのプラグインが必要となります。日本語化を行うプラグインも過去存在していたようですが、長くメンテナンスがされておらず、現在は満足に利用できないものとなってしまっていました。
そこで、クレスコではSonar社とパートナー契約を結び、SonarQube Gold Partner 認定を受けたことを機に、日本市場においての課題解決および更なるプレゼンス向上を目指し、SonarQube Server向け日本語化プラグインを開発しました。
2. プラグイン概要
公開したプラグインの概要は以下の通りです。
| 名称 | SonarQube Japanese Pack | 
| 目的 | 日本語UIを提供し、SonarQubeの利用促進・理解度向上 | 
| 対応バージョン | SonarQube Server Community Build 25.5 以降 SonarQube Server 開発者版 / エンタープライズ版 / データセンター版 2025.5 以降 ※手動でインストールする場合、上記バージョン以外にも導入可能ですが動作が不安定になる可能性がある点ご注意ください。  | 
		
| 配布形態 | SonarQube Marketplace または GitHub リポジトリから入手可能 | 
日本語化プラグインを適用した画面は以下の通りです。
3. 日本語化の範囲と制限
SonarQubeの国際化対応ガイドに従って日本語化を行っていますが、すべての画面が完全に日本語化されるわけではありません。
以下の部分には制限があり、翻訳未対応です。
- 解析結果指摘の詳細画面や、セキュリティレポート画面、管理・設定画面などの一部(翻訳がプラグインで対応可能な範囲でなかったため)
 - 他プラグインが提供しているUI
 - 翻訳文を挿入するとレイアウトが大きく崩れる箇所
 
また、SonarQube Cloudについてはサードパーティ製のプラグインの導入に制限があるため利用できません。
4. 導入方法
導入にはJarファイルを日本語化プラグインのリリースページからダウンロードし手動で導入する方法と、Marketplaceからインストールする方法の2つがあります。Marketplaceからインストールする方法はセキュリティリスクの観点から有償版のSonarQube Serverでは制限されている点ご注意ください。(参考:Use 3rd-party plugins at your own risk | Sonar)
・日本語化プラグインのリリースページからプラグインをダウンロードし、手動で導入
- 日本語化プラグインのリリースページにアクセス
https://github.com/cresco-sonar/sonar-l10n-ja/releases - 最新のsonar-l10n-ja-plugin-x.x.jarをダウンロード
 
 3. SonarQube Server のプラグインディレクトリに配置
 プラグインディレクトリ: <sonarqubeHome>/extensions/plugins
 参考)公式ドキュメント Installing a plugin
 https://docs.sonarsource.com/sonarqube-server/server-installation/plugins/install-a-plugin
 ※SonarQube Server自体のインストール方法や、利用しているエディションによってプラグインの導入手順に違いがある点にご注意ください。
 4. サーバーを再起動
 
・Marketplace経由で導入 (Community Buildのみ)
- 管理者としてログイン
 - ヘッダーメニューから Administrator を選択
 - 管理者メニューから Marketplace を開く
 - (初回の場合)サードパーティ製のプラグインインストールのリスクと、自己責任になる旨を理解し、[I understand the risk] ボタンを押下
 
5. 検索ボックスに「Japanese」と入力し、以下のプラグインをインストール
6. サーバーを再起動
プラグインのインストールが成功すると、アクセスするブラウザの言語設定を日本語にした際、SonarQubeが日本語化されて表示されると思います。
5. 開発時の参考情報と、翻訳品質を保つための工夫
今回日本語化プラグインを開発するにあたって参考にした情報は以下の通りです。
- Sonar公式のプラグイン開発についてのガイド
https://docs.sonarsource.com/sonarqube-server/extension-guide/developing-a-plugin - 国際化対応を行うにあたってのガイド
https://docs.sonarsource.com/sonarqube-server/extension-guide/internationalization - Marketplaceで公開するにあたってのガイド
https://community.sonarsource.com/t/deploying-to-the-marketplace/35236 - プラグイン情報の管理リポジトリ
https://github.com/SonarSource/sonar-update-center-properties 
また、今回生成AIを使った翻訳を行いましたが、その翻訳品質を保つために、施策として以下のようなことを行いました。
- 生成AIを活用しつつ、固有用語辞書を作成
Quality Gate や、Advanced Securityなどの用語が、アプリ内の表記が揺れないように生成AIに辞書を作成し利用させた - プレースホルダー構造のチェック
リソース内のメッセージにはプレースホルダーを使った構文が現れるが、これが崩れていないことを保証するために、チェックツールを用意しチェックした - 文字列長のチェック
翻訳前後で文字列長が極端に長くなるものについて、画面上でレイアウト崩れが発生してないか可能な範囲で個別にチェックした - URLなどの固定文字列を保護
https:// で始まる文字列等は、翻訳後も同一であることが重要なため、チェックツールを用意しチェックした - 2つの生成AIモデルによる翻訳結果比較
翻訳に利用した主となる生成AIモデルとは別に、開発元が違う生成AIモデルにも翻訳させ、その内容を比較し、より良い翻訳となっているものを採用した 
なお、翻訳対象のメッセージは膨大であるため、どうしてもチェックしきれていない翻訳誤りもあるかと思います。利用し誤りに気付いた方はぜひ日本語化プラグインの課題管理ページからご報告ください。可能な範囲で順次対応していきます。
6. 今後の予定
SonarQube Server Community Buildや、SonarQube Server 開発者版 / エンタープライズ版 / データセンター版のアップデートに合わせ、日本語化プラグインのバージョンアップも定期的に行っていこうと考えております。
何かお気づきの点あれば、以下の課題管理ページへご報告くださいますようよろしくお願いいたします。
7. まとめ
SonarQubeは、コード品質の可視化・管理において非常に強力なツールですが、日本国内の利用において、英語UIが障壁となるケースもあったかと思います。
今回ご紹介した SonarQube Japanese Pack は、その課題を解消し、より多くの国内開発チームがSonarQubeを直感的・効率的に活用できるようになると思います。
国内でSonarQube Serverを導入している、もしくは導入を検討しているチームは、ぜひ一度このプラグインを試し、その効果を感じてみてください。
クレスコではSonarQubeを提供しているSonar社とパートナーシップを結び、その販売を行っています。またSonarQubeを活用したTrust Code Hubというシステム開発におけるコード品質の継続的な改善を通じて、開発効率とソフトウェア品質の向上を実現するソリューションも展開しています。興味を持たれた方はぜひ以下のページからお問合せください。
 
Trust Code Hub|株式会社クレスコ
https://wakuwaku.cresco.co.jp/solution/trust-code-hub


