続・C++コードを日本語化する [Xcode]
これ、続きなのですが今度は楽をしてXcode5.1.1でC++ソースコードを日本語化しました。
英語の部分は、「” ” : ; , ( ) { } * + - # % & …」「\n」で、つまり演算子の部分だけしませんでした。これは万国共通部分なので、変えてはいけない部分だという認識です。そもそもこれらの演算子は、片言の言葉では表現できない深い働きをするので、それを理解する方が優先です。
この結果は見ての通り、問題なく完了しています。コードの内容はこれ:日本語.h *******
#define 保管庫 std
#define 戻り値 return
#define メイン main
#define 整数宣言 int
#define シーアウト cout
#define 改行 endl
#define 使う using
#define ネーム空間 namespace
#define 汎用型 void
#define 型 short
#define パラメータ param
#define 例題関数 MyFunc
#define クラス class
#define ルート Root
#define パラメータ番号 numParam
#define 番号 num
#define 保護する protected
#define 自在アクセス可 public
#define ベース1 Base1
#define 仮想化 virtual
#define ベース2 Base2
#define 継承する Derived
#define 番号取得 GetNum
#define 新規継承 myDerived
****** main.cpp *******
#include "日本語.h"
#include <iostream>
//--------------------------------------- ルート
クラス ルート
{
保護する:
型 番号;
自在アクセス可:
ルート( 型 パラメータ番号 );
};
ルート::ルート( 型 パラメータ番号 )
{
番号 = パラメータ番号;
保管庫::シーアウト << "ルート呼び出しコンストラクタ\n";
}
//--------------------------------------- ベース1
クラス ベース1 : 自在アクセス可 仮想化 ルート
{
自在アクセス可:
ベース1();
};
ベース1::ベース1() : ルート( 1 )
{
保管庫::シーアウト << "ベース1呼び出しコンストラクタ\n";
}
//--------------------------------------- ベース2
クラス ベース2 : 自在アクセス可 仮想化 ルート
{
自在アクセス可:
ベース2();
};
ベース2::ベース2() : ルート( 2 )
{
保管庫::シーアウト << "ベース2呼び出しコンストラクタ\n";
}
//--------------------------------------- 継承する
クラス 継承する : 自在アクセス可 ベース1, 自在アクセス可 ベース2
{
自在アクセス可:
継承する();
型 番号取得();
};
継承する::継承する() : ルート( 3 )
{
保管庫::シーアウト << "継承元呼び出しコンストラクタ\n";
}
型 継承する::番号取得()
{
戻り値( 番号 );
}
//--------------------------------------- メイン()
整数宣言 メイン(整数宣言 argc, const char * argv[])
{
継承する 新規継承;
保管庫::シーアウト << "-------\n"
<< "番号 = " << 新規継承.番号取得();
戻り値 0;
}
このコードはCodeWarriorのwin95からまた持ち出したものですが、wineで問題なく動く古いコードですけど今でも変わらずコンパイルできます。元々Mac用にも動くコードですから何々に特化した使用にはなっていません。そのようなものは月日が経つと自然に消滅していくものだと思います。
このXcodeを使った時のメリットは、先にヘッダーファイルに置き換えたい英語を定義しておけば、コンパイラーはそれを認識して、間違った語句、ないものを入力した時入力した時点で、赤丸マークで教えてくれます。また見えない日本語の空白などを間違って入力すると、三角黄色印でこれも教えてくれます。今時のIDEは大概この機能はありますけど。
で、いろいろ試して行くとこのやり方では、g++ でもコンパイルできるようでした。これはMacのX11からgeanyで試した時に気付きました。その時の画像:
つまり、Linuxでも当たり前にコンパイルできるようです。まあこうなればファイルはUSBメモリなんかに保存しなくてもMac側から共有ディレクトリを作っておけばすべてのOSからアクセスできます。今このディスクには6種類のLinuxが入っているので、同じファイルを使えます。ただし、Mac使用時にはLinuxは見ることができないので、あくまでMac側に作っています。
で、実際日本語化してコードが読みやすく理解し易いのかというと、ん~どうでしょうか。私自身はこのコードが何を目的で作られているのか既に知っていいるので、何とも言い難いところではありますが、役立つかどうかは、訳し方の持って行き処なのだと思います。つまり、なるだけ文章として繋がるようになっていれば、そこそこためになるのではないでしょうか。まあ私自身はその醍醐味を探し出した時の感激を味わうしかないのですが、それを依頼形式にしたとすると、また立場は違ってくるのでしょうか。私自身はこれらの挑戦はコードがなくならない限り続くもんだと思っています。
コメント 0