先日の翻訳関連は何とか出来ました。No.08073
ノノムン さん 16/02/10 14:31
 
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;     // マクロ終了
//--------------------------------------


[ ]