スペルチェックの言語の切り替えについてNo.10027
あべのり さん 22/12/14 10:48
 
いつもお世話になっております.スペルチェックアドインがWindowsの機能を使える
ようになったので,最近はそちらの機能を使っています.その件はありがとうござい
ました.

スペルチェックの言語をマクロから切り替えることはできないかと思い質問させてい
ただいています.Aspell利用時は末尾のようなマクロを使っていましたが,Windows
標準の機能を使っていると動かないようです.同種のことができるようになると大変
ありがたいのですが,可能でしょうか.

ちなみに末尾のマクロも同じようなことを聞かせていただき教えていただいたものか
と思います.コメントにのこしてあったリンクは切れているようですが.

なお,利用中の環境は
* Windows 11
* 秀丸64bit version 9.19
* スペルチェックアドイン 2.03
です.


---------
// http://www.maruo.co.jp/hidesoft/2/x35012_.html

$langname[#langcount] = "英語-米国(&U)";$langcode[#langcount] = "656E5553";#
langcount = #langcount + 1;
$langname[#langcount] = "英語-英国(&G)";$langcode[#langcount] = "656E4742";#
langcount = #langcount + 1;
$langname[#langcount] = "英語-カナダ(&C)";$langcode[#langcount] = "656E4341
";#langcount = #langcount + 1;
$langname[#langcount] = "フランス語-フランス(&F)";$langcode[#langcount] = "6
6724652";#langcount = #langcount + 1;
$langname[#langcount] = "フランス語-スイス(&S)";$langcode[#langcount] = "667
24348";#langcount = #langcount + 1;
$langname[#langcount] = "ドイツ語-ドイツ(&D)";$langcode[#langcount] = "64654
445";#langcount = #langcount + 1;
$langname[#langcount] = "ドイツ語-スイス(&D)";$langcode[#langcount] = "64654
348";#langcount = #langcount + 1;
$langname[#langcount] = "スペイン語(&E)";$langcode[#langcount] = "65730000";
#langcount = #langcount + 1;
$langname[#langcount] = "イタリア語(&I)";$langcode[#langcount] = "69740000";
#langcount = #langcount + 1;

if((platform & 0x00800000) == 0){
 if((configstate & 0x01) != 0){
  message "一時的な設定になっているため設定を変更できません。";
  endmacro;
 }
 openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\" + filetype;
 $config = getregstr("");
 closereg;
 
 if($config != "")$configset="Config\\"+$config;
 else $configset = "Default";
 
 openreg "CURRENTUSER", "Software\\Hidemaruo\\Hidemaru\\" + $configset;
 $s = getregbinary("ExConfig2",20,4);
 $lang = leftstr($s,8);
}else{
 openreg "CURRENTUSER", "SOFTWARE\\Hidemaruo\\TuruKame\\Config";
 $s = getregbinary("SpellCheckDetail",0,4);
 $lang = leftstr($s,8);
}

#i = 0;
$menu[0] = "スペルチェックの言語";
$menu[1] = "\x01";
while(#i < #langcount){
 if($langcode[#i] == $lang)$menu[#i+2] = "●" + $langname[#i];
 else $menu[#i+2] = " " + $langname[#i];
 #i = #i + 1;
}
while(true){
 menuarray $menu, #langcount + 2;
 #result = result;
 if(#result == 0){
  closereg;
  endmacro;
 }
 #lang = #result - 3;
 if(#lang >= 0)break;
}

$s = $langcode[#lang] + midstr($s, 8);
if((platform & 0x00800000) == 0){
 writeregbinary "ExConfig2",$s,20,1;
 closereg;
 envchanged;
}else{
 writeregbinary "SpellCheckDetail",$s,0,1;
 closereg;
 loaddll "tkinfo.dll";
 #h = hidemaruhandle(0);
 #main = dllfunc("MainWnd2");
 #hidden = (dllfunc("Bypass_IsWindowVisible",#main) == 0);
 if(#hidden)##_ = sendmessage(#main, 0x112, 0xF120, 0); //WM_SYSCOMMAND, SC_
RESTORE
 if(#h != #main)setactivehidemaru #main;
 ##_ = dllfunc("EnvChanged",0);
 if(#h != #main)setactivehidemaru #h;
 if(#hidden)##_ = dllfunc("Bypass_ShowWindow",#main,0);
 freedll;
}
endmacro;

[ ]
RE:10027 スペルチェックの言語の切り替えNo.10028
あべのり さん 22/12/14 11:28
 
>スペルチェックの言語をマクロから切り替えることはできないかと思い質問させて
>いただいています.Aspell利用時は末尾のようなマクロを使っていましたが,Windo
>ws標準の機能を使っていると動かないようです.同種のことができるようになると
>大変ありがたいのですが,可能でしょうか.

すみません,こちら勘違いで,マクロ自身は機能しているのですが,言語自身が選べ
ないということのようでした.その他→ファイルタイプの設定→スペルチェックと進
むと言語が選べますが,手元の環境ではeu-USとen-CAしかありませんでした.
そのほかの言語を追加することはできるのでしょうか?

[ ]
RE:10028 スペルチェックの言語の切り替えNo.10029
秀丸担当 さん 22/12/14 11:52
 
Windows標準のスペルチェックの場合、Windowsにインストールされている言語パック
によりようです。
Windows11の設定の、時刻と言語 > 言語と地域のところで、言語の追加ができるよう
です。
追加できる言語がすべてができるわけではなく、Windows10だと追加後に5つの能力
を表すアイコンがあって、5番目の[ABCv]のようなアイコンが、スペルチェックを備
えている言語パックと思われます。
Windows11の場合、その能力を表示する部分がなくなって、よくわからないです。
どこで確認できるのか?
でもだいたい代表的な言語であればスペルチェックを備えているようです。

[ ]
RE:10029 スペルチェックの言語の切り替えNo.10030
あべのり さん 22/12/14 13:21
 
>Windows11の設定の、時刻と言語 > 言語と地域のところで、言語の追加ができるよ
>うです。
>でもだいたい代表的な言語であればスペルチェックを備えているようです。

ありがとうございます.有名言語しか必要ありませんので,これで大丈夫です.無事
スペルチェックの言語を追加することができました.

[ ]