danpapa blog

趣味のプログラミング等について

nanoCAD 日本語化

nanoCAD日本語化に向けて

今日はnanoCADの日本語化についてです。まだ完成はしてません。

どこにファイルがあるのか?
まず、表示されている文字(英語)はどのファイルを書き換えればよいのでしょうか?それはインストールフォルダの中にある「nCad.cfg」とか「nmenu.cfg」といったファイルのようです。


danpapaが考えてる日本語化の方法
「nCad.cfg」を例にしてみます。

  • 「nCad.cfg」を読み込む
  • 「ショートカットキー」と「表示」に分別
  • 「表示」を翻訳
  • 「翻訳後」と「ショートカットキー」を合成
  • 「nCad.cfg」を書き換える

という流れで行ってみます。

f:id:danpapa_hry:20190409210205p:plain:w300

function LoadFile_nanoCAD() {
  
  var textdata = Read_TextFile('nCad.cfg')
  
  // 改行コードで分割し配列に格納する
  var textLines = textdata.split(/\r\n/);
  
  // テキストファイルをシートに展開する
  cnt=0;
  var str = "";
  var splitStr = "";
  var index = -1;
  
  for (var i = 0; i < textLines.length; i++) {
    if(textLines[i]!=""){
      splitStr = textLines[i].split('|');
      for (var ii = 0; ii < splitStr.length; ii++) {
        if(splitStr[ii].slice(0,6)=="name=s" || splitStr[ii].slice(0,6)=="Name=s"){
          str = splitStr[ii].slice(6).trim()
          cells(3+cnt,1).setValue(str);
          
          index = str.indexOf("&");
          if(index!=-1){
            cells(3+cnt,2).setValue(str.slice(index,index+2));
            cells(3+cnt,3).setValue(str.replace("&",""));
          }else{
            cells(3+cnt,3).setValue(str);
          }
          
          cnt++;
        }
      }
    }
  }
  
};

function Read_TextFile(fname)
{
  // ファイル読込み
  var fileIT = DriveApp.getFilesByName(fname).next();
  return fileIT.getBlob().getDataAsString('sjis');
}

function cells(rows,cols){
  var sh = SpreadsheetApp.getActiveSheet();
  return sh.getRange(rows,cols)
}

とりあえず、こんな感じです。Google Apps Scriptは今回初めて触るので、解説とかできません。いや出来てもしませんw他サイトで詳しく解説されているので、そちらを参考にしてください。

で、実際に「LoadFile_nanoCAD」を実行し、若干翻訳したのがこちらです。
f:id:danpapa_hry:20190409210224p:plain:w300

さぁ、後は翻訳とファイル書き換えだけです。誰か翻訳してくれませんか?勿論、ただの翻訳ではなくCAD用語ですけどw
自宅にもExcelがあればマクロでチョチョイと組めるんですけどねぇ。。。Google Apps Scriptは処理速度が遅めですね。

おっと忘れてた。ファイル書き換えだけでは日本語にならないです。
ちょいと細工が必要みたいです。まぁ、公式サイトにカスタマイズ関連のこと書いてあるのでわかるかと思います。英語なのでdanpapaは読めませんがw

このnanoCAD 5.0は、VisualC++2008で作られているんでしょうか?インストールの時にVC2008再配布パッケージのインストールが案内されました。ってことは、コマンドウィンドウとかの監視などができるかも?おっ!ユーザー入力待ちが機能してないけど、後付けで作れるかも?あー、いろいろやってみたいですねぇ。時間があればw