|
On 2016/02/03 21:21, ノノムン wrote:
>
ヘルプからうまく探せずだいぶ手間取りましたが
ファイルの文字取得、ファイルの書き出しと うまくできました。
後は以前お教えいただいた 翻訳 アクセスがうまくゆきませんでしたので、
手動で翻訳して 元ファイルを作り 処理することが出来ました。
次のようなマクロでよいのでしょうか?
もっとよい方法などありますでしょうか?
それではよろしくお願いします。
//-- KIS-LNG.poのmsgid ""からLNG.tmpに抜き出す ---------
//-- msgid ""から抜き出す ---------
disabledraw; //表示切り
openfile "D:\\!Prog\\KISSlicer_Win32\\KISSlicer_language.pot"; // 基準言語
ファイル
saveas "KISSlicer_language.tmp", sjis; // 仮言語ファイル
#tmp = hidemaruhandle(0); // LG.tpファイルのファイルハンドルを取得
newfile; // 英文ファイル作成
#etx = hidemaruhandle(0); // 英文ファイルのファイルハンドルを取得
gofiletop; // ファイルの先頭に移動
insert " \n"; // 空行
right; // 右 次へ
setactivehidemaru #tmp; // 仮言語ファイルに戻る
gofiletop; // ファイルの先頭に移動
setcompatiblemode 0x00000200;
while (code != eof) { // LOOP 始め
searchdown "(?<=msgid \").+*(?=\")", regular; //msgid "〜"
$s = gettext( foundtopx, foundtopy, foundendx, foundendy ); //範囲検索,開
始xy,終了xy
if( !result ) break; // 条件式が0以外の場合,強制的終了
down;
setactivehidemaru #etx;
insert $s+"\.\n"; // 書き込み.CR
right;
setactivehidemaru #tmp; // 仮言語ファイルに戻る
} // LOOP 終わり
setactivehidemaru #etx; // 格納ファイルに戻る
saveas "KISSlicer_ENG.txt", sjis; // 名付けて保存
setactivehidemaru #tmp; // 仮言語ファイルに戻る
quit; // 仮言語ファイル閉じる
enabledraw; //表示入り
endmacro;
//--------------------------------------
//-------------- KIS-JPN.txtからALL.txtのmsgstr ""に書き込む ----------
//-------------- msgstr ""を書き込む ----------
// openfile "D:\\!Prog\\KISSlicer_Win32\\KISSlicer_ENG.txt"; // 英文だけのフ
ァイル
openfile "D:\\!Prog\\KISSlicer_Win32\\KISSlicer_JPN.txt"; // 和文だけのファ
イル
#jpt = hidemaruhandle(0); // 原稿のファイルのファイルハンドルを取得
gofiletop; // ファイルの先頭にカーソルを移動
openfile "D:\\!Prog\\KISSlicer_Win32\\KISSlicer_ALL.txt"; // ID英文,STR英文
#ALL = hidemaruhandle(0); // 格納ファイルのファイルハンドルを取得
gofiletop; // ファイルの先頭にカーソルを移動
while (code != eof) { // ファイルの終わりまでループ
setactivehidemaru #jpt; // 原稿ファイルに戻る
searchdown "(?<=^).+*(?=\n)", regular; // 和文ファイル行頭からCRまで一行取得
$s = gettext( foundtopx, foundtopy, foundendx, foundendy ); //範囲検索結果,
開始xy,終了xy
right; //次へ
if( !result ) break; // 最後の行が改行で終わっていない場合への対処
setactivehidemaru #ALL; // 格納ファイルで実行
replacedown "(?<=msgstr \").+*(?=\")",$s,regular;
down;
if( !result ) break; // 最後の行が改行で終わっていない場合への対処
} // ループ終了
setactivehidemaru #ALL; // 格納ファイルを表示して終了
endmacro; // マクロ終了
//--------------------------------------
|
|