Pleiades - Eclipse プラグイン日本語化プラグイン Dynamic AOP Translation Container
for Eclipse
 Pleiades All in One ダウンロード  
 Pleiades All in One は Windows 向けに開発対象プログラミング言語別でパッケージングした Eclipse 本体と Pleiades および便利なプラグインのセットです。ダウンロードした zip ファイルを解凍 (zip 解凍時の注意) し、eclipse.exe を起動すれば、すぐに日本語化された Eclipse を利用できます。Linux や Mac などで日本語化する場合は、Pleiades プラグイン本体をダウンロードしてください。
Eclipse 4.5 Mars マース Eclipse 4.4 Luna ルナ Eclipse 4.3 Kepler ケプラー Eclipse 4.2 Juno ジュノー Eclipse 3.7 Indigo インディゴ Eclipse 3.6 Herios ヘリオス Eclipse 3.5 Galileo ガリレオ Eclipse 3.4 Ganymede ガニメデ Eclipse 3.3 Europa エウロパ

 Pleiades プラグイン・ダウンロード
 Pleiades は Eclipse のような Java アプリケーションを日本語化するためのツールです。翻訳ルールは IBM 翻訳ルールを踏襲した Eclipse 本家言語パック (wiki.eclipse.org) がベース。既にインストール済みの Eclipse に適用したい場合や、Windows 以外で使用する場合は下記の Pleiades プラグイン本体のみをダウンロードしてください。Pleiades のソースを Eclipse プロジェクトとしてチェックアウトする場合は こちら
最新版 (履歴) 左記ページを開き pleiades.zip リンクからダウンロードしてください。
安定版 左記ページを開き pleiades_x.x.x.zip リンクからダウンロードしてください。
適用対象となる Eclipse のバージョンにより Eclipse 標準のスプラッシュ画像から下記の Pleiades カスタム・スプラッシュに切り替わります。(eclipse.ini の -showsplash org.eclipse.platform 指定を削除する必要があります)

Eclipse 3.3
Europa
Eclipse 3.4
Ganymede
Eclipse 3.5〜3.8
Indigo Helios Galileo
Eclipse 4.2
Juno
Eclipse 4.3
Kepler
Eclipse 4.4〜
Luna

 Pleiades 概要

   Pleiades (プレアデス) は対象となるアプリケーションのメニューなどの表示要素を実行時に AOP で動的に翻訳して表示します(スクリーンショット)。従来の静的な国際化リソース方式と比較して、以下のような特徴があります。
  • IntelliJ IDEA や Eclipse のような Java アプリケーションに対応。
  • Eclipse バージョン非依存、200 以上のプラグインに対応。
  • ソースに英語文字列がベタ書きされたプラグインにも対応。
  • 更新サイト・プラグイン一覧のプラグイン名を取得時に日本語化。
  • 未知のプラグインでも実行時に動的解決。
  • その他、言語パックと Pleiades による日本語化の比較 参照。

 Eclipse 向けに下記の付加機能があります。
  • ウィンドウ > 設定のアイコン追加と F10 ショートカットキー割り当て。
  • eclipse.org で放置されているようなバグを AOP で随時修正。HTML 系エディタが文字コード自動判別に失敗する 他。
  • ワークスペースのエンコーディングを UTF-8 にするなどの自動デフォルト設定機能。各 Pleiades All in One ダウンロード・ページの説明を参照
  • Java 標準 API Javadoc ホバーを日本語化。内部的には AOP で添付ソース・コメントと日本語 Javadoc の参照順序を逆転。

[注意] Pleiades を更新したり、他のプラグインを追加・更新した場合は必ず起動オプションに -clean を指定して起動してください。 Windows の場合は同梱している "eclipse.exe -clean.cmd" で -clean 起動できます。-clean 起動しないと、configuration の古いプラグイン情報が使用され、起動できなくなったり、更新したプラグインが正常に動作しなくなったりします。
Q. なぜ AOP なの? 普通に言語パックは作らないの?
 Eclipse 3.0 のころ言語パックの翻訳と作成に協力し、バージョンアップするたびに多くの人手と労力がかかりそうだと感じ、その後にバージョンに依存せすに翻訳結果をそのまま利用できるように Pleiades を作りました。このプロジェクトは仕事ではなく単なる趣味で、楽することと技術的興味を満たすことが目的だったので、言語パックを作る予定はありません。言語パックのほうが良い方は、下記の Babel をお使いいただくか、オープンソースの Pleiades 翻訳リソースを利用して言語パックを作成いただければと思います。

Q. Eclipse 本家の言語パック Babel でいいんじゃないの?
 Babel の言語パックは翻訳内容によって、起動できなくなったり、ビューが表示できなくなったりと、色々な箇所で動作不具合が発生する場合があります。現在は更新されていませんが、Blanco の言語パックでは翻訳除外の仕組みがあったため、これらの不具合が防止されていました。Pleiades は元から動的に翻訳を除外する仕組みやリリース前の自動テストとバリデーションにより不具合は防止されています。Babel は誰でも自由に翻訳を追加でき、良くも悪くも誰でも上書きできる仕組みのため、修正されても後で同様の不具合が再発する場合があり、不具合防止のための内容検証の仕組みがありませんが、コミュニティへの参加が容易です。言語パックを使いたい方は Babel に協力・ご活用ください。




 動作環境
OS Linux、Mac OSX、Windows
JRE   Pleiades プラグイン本体は JRE6 以上 (Eclipse の実行環境はこちら)
Eclipse   3.1、3.2 Callisto、3.3 Europa、3.4 Ganymede、3.5 Galileo、3.6 Helios、3.7 Indigo、4.2 Juno、4.3 Kepler、4.4 Luna

 ライセンス
 Pleiades は複数のオープンソース・ソフトウェアで構成されています。


 インストール


 関連リンク
 Eclipse 3.3 〜 3.4 の言語パックは Pleiades の訳が元になっており、訳の追加や修正は Pleiades → Blanco Eclipse 日本語化言語パック (サードパーティ版) [*1] → EJWG Babel 言語パック [*2] の順に反映されます。PC 性能がそんなに良くない場合は静的な言語パックをお勧めします。 各プロジェクトの連携については、wiki.eclipse.org 日本語化 を参照してください。

[*1]  本プロジェクトのメンバーでもある伊賀敏樹 (いがぴょん) 氏、山本耕司 (ymoto) 氏の blanco Framework プロジェクトから zip ファイルとして配布されており、変更はほぼ即時反映されます。また両氏は Pleiades へ非常に多くの訳を追加更新しています。
[*2] Eclipse Japan Working Group との協調により、Babel 更新サイトから取得できます。反映されるまで数ヶ月程度かかる場合があります。


 仕組み

 
■ Pleiades 日本語化ツールセット・アーキテクチャー
 Pleiades は表面的には単なる日本語化プラグインですが、全体は単純なプラグインであれば数分で (最終的には一切、人の手を介さずに) 翻訳作業を終了させるために開発された、静的および動的な側面を持つ完全な翻訳支援ツールセットです。 翻訳支援は作者以外に使い易いレベルにはなっていませんが、品質向上、改善を続ける予定です。

 下図のおおまかな流れとしては、配布前に翻訳ルールを持つ静的なジェネレーターで eclipse.org が配布してきた言語パック 25 種類、約 150,000 を最適化して 50,000 にし、 Pleiades で約 25,000 を追加、各種辞書を生成し、実行時に動的バイトコード変換 (Dynamic AOP) により翻訳を実施します。
Pleiades Japanese Translation Toolset Architecture


■ 言語パックと Pleiades による日本語化の比較
それぞれに長所・短所があります。適切に使い分けてください。
言語パック
Pleiades
Pleiades の対応内容
パフォーマンス AOP による極端な速度低下は様々な試みで改善。
翻訳箇所の正当性・安定性 Babel 言語パックは起動できなくなったりビューが表示できなくなったりする場合あり。現在、更新されていないが Blanco 言語パックは問題なし。
訳語の正当性 翻訳ルール・ベース・エンジンとバリデーターで正当性を確保。(*1)
プラグインごとのリソース不要 AOP で横断的リソースを保持。
対応プラグインの数 200 以上のプラグインに対応。未知のプラグインでも実行時に解決。
リソースの重複回避 重複は配布前に静的ジェネレーターで除去、最小限のリソースのみ保持。
文字コード対応 ASCII のみしか対応していないプラグインをマルチバイトに動的対応。(*2)
バージョン非依存 Eclipse だけでなく、IDEA のような Java アプリケーションでも利用可能。
非外部化文字列対応 プラグイン開発者は言語パックを強く意識する必要はない。
各プラグイン対応工数 辞書に存在すれば対応工数 0。訳を辞書に累積するため工数小。
訳の再利用 追加・修正した訳は、今後のプラグインにも再利用される。(*3)
Javadoc ホバー日本語化 src.zip > API ドキュメント の参照順序逆転で実現。(*4)

*1 翻訳ルール・ベース・エンジンとバリデーターによる統一された訳を提供。多人数参加型の eclipse.org の翻訳プロジェクト Babel は今のところ言語固有のルール・ベース・バリデーションや全体整合性チェック機構がなく、リソース・キー・ベース管理のため古い訳と原文の内容が合致しなくなっているものが少なくとも 1000 個以上あることが Pleiades バリデーターにより検出されています。

*2 国際化は通常、2 つのことを意識する必要があります。ひとつはメッセージ文字列対応。もうひとつは文字コードです。 文字列が外部化されていても、ASCII のみしか考慮していない場合、正常に動作しません。Pleiades は動的に適切な文字コード設定を行います。

*3 blancoNLpackGenerator で Pleiades の辞書機能 (TranslationDictionary) を再利用して静的に言語パックを生成し、eclipse.org の BABEL プロジェクトにコントリビュートする試みが行われています。この言語パックは辞書として Pleiades を使用することにより、両方の長所のいくつかを合わせ持っています。

*4 JDK のソースを開いた時のソース上のコメントは日本語になりません。これは JDK のソースを静的に変換する MergeDoc を使用することで解決することができます。



■ Pleiades の AOP コンテナーについて
 Javassist を利用し、Java 5 以降が持つ javaagent 機能でクラスロードをフックしています。おおまかな仕組みは Spring、Seasar、Guice などの DI コンテナーと同じです。翻訳対象アプリケーション側に、Pleiades に関連するコードは一切なく、Pleiades に対しては完全非依存となっています。



 Windows 上で zip を解凍するときの注意

Windows 上で zip を解凍する際の一般的な注意点を記載しています。これは Windows の制限によるもので Pleiades や Eclipse 自体の制限ではありません。問題が発生した場合は c:/Eclipse のような短いパスに展開するように eclipse.org にも記載されています (注意:eclipse.org で 7-Zip が推奨されていますが下記の検証結果を参照してください)。また、空白や日本語が含まれるディレクトリーに関しては Pleiades 自体は対応していますが、英語圏などのプラグインは日本語が含まれるディレクトリーに対応していない場合があります。
  • 解凍ツールは Windows 7 展開ウィザードまたは WinRAR を推奨します。 この 2 つのツールは解凍時に MAX_PATH (最大パスを示す Windows 定数 = 260 文字) を超えていた場合、適切なエラーを返します。その場合は c:\pleiades のような短いパスに解凍してください。Windows XP 展開ウィザード、Lhaz、Explzh は MAX_PATH を超えている場合、書庫が壊れているかのようなエラーが出ますが、これも短いパスに解凍することで対応可能です。 7-Zip、Lhaplus、Lhaca は使用しないでください。MAX_PATH を超えていても警告やエラーが表示されず、正常に解凍できたか判断できません。

  • 下表は各ツールで 20080804 版 Ultimate を解凍したときのファイル数と MAX_PATH を超えた場合の動作です。 「短いパス」や「長いパス」は解凍先ディレクトリーのパスを指し、「長いパス」は MAX_PATH を超えている場合の解凍結果で、この列の「△」は解凍の失敗を判断できる何らかのアクションがあることを示します。

    短いパス: 例)c:\pleiades
    長いパス: 例)c:\pleiades\pleiades-all-in-one-ultimate-jre_20080804
解凍ツール
ライセンス
解凍先
指定
解凍後のファイル数

Windows の MAX_PATH を超える
長いパスがある場合のアクション
短いパス
長いパス
Windows
展開ウィザード
Vista フリー (OS 付属) ○24635 △13402 「ソース パスが長すぎます」エラー発生
XP フリー (OS 付属) ○24635 △13402 パスワードを聞かれる、圧縮フォルダーでファイルが見えない
Lhaz フリー ○24635 △24606 「書庫が壊れています」エラーで終了
Explzh フリー (個人限定) ○24635 △13355 「指定されたパスが見つかりません」エラー発生
WinRAR シェア (試用版40日) ○24635 △24606 「パスが 260 文字を超えています」警告あり
WinZip シェア (試用版40日) ○24635 △24606 「指定されたパスが見つかりません」エラー発生
解凍レンジ フリー × ○24635 △24634 解凍エラーで終了
Lhasa32 フリー × ○24635 △12971 書き込みエラーで終了
7-Zip フリー ○24635 × 24606 × 警告やエラー表示なしだが正常に解凍できない
jar xf コマンド フリー (JDK 付属) ○24635 × 24606 × 警告やエラー表示なしだが正常に解凍できない
Lhaca フリー ○24635 × 12971 × 警告やエラー表示なしだが正常に解凍できない
Lhaplus フリー ○24635 × 24604 × 警告やエラー表示なしだが正常に解凍できない
  • ツールに関係なく正常に解凍できた場合でも、解凍したディレクトリーを MAX_PATH を超えるような深いパスに移動 (*補足) すると正常に動作しなくなります。 また、パスに日本語やスペースが含まれていると、正常に動作しないものがあるため、デスクトップや "C:\Program Files" に配置しないようにしてください。特にデスクトップの実際のパスは "C:\Documents and Settings\<ユーザー名>\デスクトップ" なので、パスが長くなる、スペースあり、日本語ありで問題要素が網羅されています。

    (*補足) 実際は NTFS の制限は 32767 文字であるため、260 文字を超えるパスは存在でき、かつ対応した Win32 API で操作も可能です。ただし、一般的な Win32 API が MAX_PATH を超えるパスをサポートしていないため、各アプリケーションが意識して制限する必要があり、 このような状況が発生しています。MAX_PATH を超えると削除できなくなったり、 コンテキスト・メニュー不正、参照できない場所を指している、など様々な問題が発生します。 そもそも Windows エクスプローラーが MAX_PATH を超えるリソースを正しく扱えません。