2015/04/14, 2016/05/02, 2018/05/04(last modified)
2010/01/29

GCC Version4メッセージの日本語化

日本語化しかやってないようですが… お決まりのようにせっかちな方はここから

  1. ソースからmakeすることを前提にしています. gcc-4.7.2.tar.gzを展開. 展開先を$GCCと表す
  2. gcc-4.7.2JA.diffを転送し, 展開する
  3. $GCC/gccで patch -p1 < gcc-4.7.2JA.diff
    を実行する
  4. あとはmakeしてinstallするだけ

注意事項


おもいつくままのメモ

  1. GCCのメッセージの日本語化は ver-3.2 位までは頑張っていたようですが, それ以降のサポートはされてなかったようです.
  2. しかし, translation-team-jaの努力で現在では大半の部分が日本語化されています
  3. ちょっとトリッキーなやりかたで, 日本語と英語のバランスをとっています
  4. gcc-4.8でも大丈夫そうです(エラーの出し方が綺麗になっています)
  5. gcc-4.9が出たのでgcc-4.9.0JA.diffを置きました(手でパッチをあてればいいんでが)
    gcc-color.sh/etc/profile.dの下に置くようにしてみました(教育目的なので, エラーだけ強調されます).
  6. gcc-5.1が出そうなのでgcc-5.1.0JA.diffを置きました(5.0.1のようですね)
    新しいバージョンだとパッチがあたらないようなので, 新しいバージョン用に作成しました.
    gcc6, gcc7用
    gcc8用
  7. binutilsとgettextのバージョンアップで, ld関係のメッセージもきちんと日本語されています.

使用前後の例です

t0.c: In function 'main':
t0.c:5:7: error: 'i' undeclared (first use in this function)
   for(i=0:i<10;i++)
       ^
t0.c:5:7: note: each undeclared identifier is reported only once for each function it appears in
t0.c:5:10: error: expected ';' before ':' token
   for(i=0:i<10;i++)
          ^
t0.c:5:19: error: expected ';' before ')' token
   for(i=0:i<10;i++)
                   ^
t0.c: 関数 ‘main’ 内:
t0.c:5:7: エラー: ‘i’ が宣言されていません (この関数内での最初の使用)
   for(i=0:i<10;i++)
       ^
t0.c:5:7: 備考: 未宣言の識別子は出現した各関数内で一回のみ報告されます
t0.c:5:10: エラー: トークン‘:’の前に ‘;’ が予期されます
   for(i=0:i<10;i++)
          ^
t0.c:5:19: エラー: トークン‘)’の前に ‘;’ が予期されます
   for(i=0:i<10;i++)
                   ^

Although this page is titled as Japanization, attached patch can be used as i18n. After preparing your gcc/po/lng.po, you will obtain l10n. Please refer patch in gcc/po/ja.po. When the string starts with space, the phrase is appeded. Otherwise, the string does not start with space, the pharase starts at head.