Skip to content

Commit

Permalink
Project translation
Browse files Browse the repository at this point in the history
  • Loading branch information
master authored and master committed Nov 3, 2024
1 parent e20f93a commit f4a6e9b
Show file tree
Hide file tree
Showing 138 changed files with 1,678 additions and 871 deletions.
4 changes: 4 additions & 0 deletions target/Project.hhp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@ docs\static\fonts\icons.eot
docs\static\fonts\icons.svg
docs\static\fonts\icons.ttf
docs\static\fonts\icons.woff
docs\static\highlighter\dark.css
docs\static\highlighter\highlighter.css
docs\static\highlighter\highlighter.js
docs\static\highlighter\light.css
docs\static\source\data_translate.js
docs\static\source\data_search.js
docs\static\source\data_toc.js
Expand Down
164 changes: 91 additions & 73 deletions target/compile_chm.ahk
Original file line number Diff line number Diff line change
@@ -1,42 +1,32 @@
#NoEnv
SetBatchLines, -1
SetWorkingDir %A_ScriptDir%

if (A_PtrSize = 8) {
try
RunWait "%A_AhkPath%\..\AutoHotkeyU32.exe" "%A_ScriptFullPath%"
catch
MsgBox 16,, This script must be run with AutoHotkey 32-bit, due to use of the ScriptControl COM component.
ExitApp
}
#Requires AutoHotkey v2 ; prefer 32-bit

; Change this path if the loop below doesn't find your hhc.exe,
; or leave it as-is if hhc.exe is somewhere in %PATH%.
hhc := "hhc.exe"

; Try to find hhc.exe, since it's not in %PATH% by default.
for i, env_var in ["ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"]
for env_var in ["ProgramFiles", "ProgramFiles(x86)", "ProgramW6432"]
{
EnvGet Programs, %env_var%
Programs := EnvGet(env_var)
if (Programs && FileExist(checking := Programs "\HTML Help Workshop\hhc.exe"))
{
hhc := checking
break
}
}

FileRead IndexJS, docs\static\source\data_index.js
IndexJS := FileRead("docs\static\source\data_index.js")
Overwrite("Index.hhk", INDEX_CreateHHK(IndexJS))

; Use old sidebar:
; FileDelete, docs\static\content.js
; FileRead TocJS, docs\static\source\data_toc.js
; Uncomment the following lines to use the old sidebar:
; try FileDelete("docs\static\content.js")
; TocJS := FileRead("docs\static\source\data_toc.js")
; Overwrite("Table of Contents.hhc", TOC_CreateHHC(TocJS))
; IniWrite, Table of Contents.hhc, Project.hhp, OPTIONS, Contents file
; IniWrite, % "AutoHotkey v2 Help,Table of Contents.hhc,Index.hhk,docs\index.htm,docs\index.htm,,,,,0x73520,,0x10200e,[200,0,1080,700],0,,,,0,,0", Project.hhp, WINDOWS, Contents
; IniWrite("Table of Contents.hhc", "Project.hhp", "OPTIONS", "Contents file")
; IniWrite("AutoHotkey v2 Help,Table of Contents.hhc,Index.hhk,docs\index.htm,docs\index.htm,,,,,0x73520,,0x10200e,[200,0,1080,700],0,,,,0,,0", "Project.hhp", "WINDOWS", "Contents")

; Compile AutoHotkey.chm.
RunWait %hhc% "%A_ScriptDir%\Project.hhp"
RunWait(hhc ' "' A_ScriptDir '\Project.hhp"')

Overwrite(File, Text)
{
Expand All @@ -45,84 +35,112 @@ Overwrite(File, Text)

TOC_CreateHHC(data)
{
ComObjError(false)
sc := ComObjCreate("ScriptControl")
sc := ComObject("ScriptControl")
sc.Language := "JScript"
sc.ExecuteStatement(data)
output =
( LTrim
content := "
(
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<body>
<object type="text/site properties">
<param name="Window Styles" value="0x800025">
<param name="ImageType" value="Folder">
</object>
)
output .= TOC_CreateListCallback("", sc.Eval("tocData"))
output .= "`n</body>`n</html>`n"
return % output
}
)"
content .= createList(sc.Eval("tocData"))
content .= "`n</body>`n</html>`n"
return content

TOC_CreateListCallback(byref output, data)
{
output .= "`n<ul>`n"
Loop % data.length
createList(items, list := "")
{
i := A_Index - 1

output .= "<li><object type=""text/sitemap"">"

if data[i][0]
{
Transform, param_name, HTML, % data[i][0]
output .= "<param name=""Name"" value=""" param_name """>"
}
if data[i][1]
list .= "`n<ul>`n"
for item in items
{
Transform, param_local, HTML, % data[i][1]
output .= "<param name=""Local"" value=""docs/" param_local """>"
list .= '<li><object type="text/sitemap">'
list .= '<param name="Name" value="' EncodeHTML(item.0) '">'
if item.1
list .= '<param name="Local" value="docs/' EncodeHTML(item.1) '">'
list .= "</object>"
if item.hasOwnProperty(2)
list .= createList(item.2)
list .= "`n"
}

output .= "</object>"

if data[i][2]
output .= TOC_CreateListCallback(output, data[i][2])

output .= "`n"
list .= "</ul>"
return list
}
output .= "</ul>"
return % output
}

INDEX_CreateHHK(data)
{
ComObjError(false)
sc := ComObjCreate("ScriptControl")
sc := ComObject("ScriptControl")
sc.Language := "JScript"
sc.ExecuteStatement(data)
data := sc.Eval("indexData")
output =
( LTrim
content := "
(
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<body>
)
output .= "`n<ul>`n"
Loop % data.length
)"
content .= "`n<ul>`n"
for item in sc.Eval("indexData")
{
i := A_Index - 1

output .= "<li><object type=""text/sitemap"">"
content .= '<li><object type="text/sitemap">'
content .= '<param name="Name" value="' EncodeHTML(item.0) '">'
content .= '<param name="Local" value="docs/' EncodeHTML(item.1) '">'
content .= "</object>`n"
}
content .= "</ul>"
content .= "`n</body>`n</html>`n"
return content
}

Transform, param_name, HTML, % data[i][0]
output .= "<param name=""Name"" value=""" param_name """>"
Transform, param_local, HTML, % data[i][1]
output .= "<param name=""Local"" value=""docs/" param_local """>"
; https://www.autohotkey.com/docs/v2/scripts/index.htm#HTML_Entities_Encoding
EncodeHTML(String, Flags := 1)
{
static TRANS_HTML_NAMED := 1
static TRANS_HTML_NUMBERED := 2
static ansi := ["euro", "#129", "sbquo", "fnof", "bdquo", "hellip", "dagger", "Dagger", "circ", "permil", "Scaron", "lsaquo", "OElig", "#141", "#381", "#143", "#144", "lsquo", "rsquo", "ldquo", "rdquo", "bull", "ndash", "mdash", "tilde", "trade", "scaron", "rsaquo", "oelig", "#157", "#382", "Yuml", "nbsp", "iexcl", "cent", "pound", "curren", "yen", "brvbar", "sect", "uml", "copy", "ordf", "laquo", "not", "shy", "reg", "macr", "deg", "plusmn", "sup2", "sup3", "acute", "micro", "para", "middot", "cedil", "sup1", "ordm", "raquo", "frac14", "frac12", "frac34", "iquest", "Agrave", "Aacute", "Acirc", "Atilde", "Auml", "Aring", "AElig", "Ccedil", "Egrave", "Eacute", "Ecirc", "Euml", "Igrave", "Iacute", "Icirc", "Iuml", "ETH", "Ntilde", "Ograve", "Oacute", "Ocirc", "Otilde", "Ouml", "times", "Oslash", "Ugrave", "Uacute", "Ucirc", "Uuml", "Yacute", "THORN", "szlig", "agrave", "aacute", "acirc", "atilde", "auml", "aring", "aelig", "ccedil", "egrave", "eacute", "ecirc", "euml", "igrave", "iacute", "icirc", "iuml", "eth", "ntilde", "ograve", "oacute", "ocirc", "otilde", "ouml", "divide", "oslash", "ugrave", "uacute", "ucirc", "uuml", "yacute", "thorn", "yuml"]
static unicode := {0x20AC:1, 0x201A:3, 0x0192:4, 0x201E:5, 0x2026:6, 0x2020:7, 0x2021:8, 0x02C6:9, 0x2030:10, 0x0160:11, 0x2039:12, 0x0152:13, 0x2018:18, 0x2019:19, 0x201C:20, 0x201D:21, 0x2022:22, 0x2013:23, 0x2014:24, 0x02DC:25, 0x2122:26, 0x0161:27, 0x203A:28, 0x0153:29, 0x0178:32}

output .= "</object>`n"
out := ""
for i, char in StrSplit(String)
{
code := Ord(char)
switch code
{
case 10: out .= "<br>`n"
case 34: out .= "&quot;"
case 38: out .= "&amp;"
case 60: out .= "&lt;"
case 62: out .= "&gt;"
default:
if (code >= 160 && code <= 255)
{
if (Flags & TRANS_HTML_NAMED)
out .= "&" ansi[code-127] ";"
else if (Flags & TRANS_HTML_NUMBERED)
out .= "&#" code ";"
else
out .= char
}
else if (code > 255)
{
if (Flags & TRANS_HTML_NAMED && unicode.HasOwnProp(code))
out .= "&" ansi[unicode.%code%] ";"
else if (Flags & TRANS_HTML_NUMBERED)
out .= "&#" code ";"
else
out .= char
}
else
{
if (code >= 128 && code <= 159)
out .= "&" ansi[code-127] ";"
else
out .= char
}
}
}
output .= "</ul>"
output .= "`n</body>`n</html>`n"
return % output
return out
}
2 changes: 1 addition & 1 deletion target/docs/Functions.htm
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ <h2 id="optional">オプションのパラメータ</h2>
MyFunc(X, Y:=2, Z:=0) { <em>; この場合でも、Zはオプションでなければならないことに注意してください。</em>
MsgBox X ", " Y ", " Z
}</pre>
<p id="OptionalByRef"><a href="#ByRef">ByRefパラメータ</a>は、デフォルト値にも対応しています(例:<code>MyFunc(&amp;p1 := "")</code>)。呼び出し側がこのようなパラメータを省略した場合、関数はローカル変数を作成し、デフォルト値を格納します。</p>
<p id="OptionalByRef"><a href="#ByRef">ByRef parameters</a> also support default values; for example: <code>MyFunc(&amp;p1 := "") {</code>. 呼び出し側がこのようなパラメータを省略した場合、関数はローカル変数を作成し、デフォルト値を格納します。</p>

<h3 id="unset">アンセットパラメータ</h3>
<p>デフォルト値を与えずにパラメータをオプションとしてマークするには、キーワード<code>unset</code>または接尾辞<code>?</code>を使用します。その場合、パラメータが省略されるたびに、対応する変数は値を持ちません。<a href="lib/IsSet.htm">IsSet</a>を使用して、以下のように、パラメータに値が与えられているかどうかを判断します:</p>
Expand Down
2 changes: 1 addition & 1 deletion target/docs/Hotkeys.htm
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ <h2 id="Function">名前付き機能ホットキー</h2>
<p>ホットキーの機能を、ホットキー自体をトリガーすることなく呼び出す必要がある場合、この例のように、ホットキーのダブルコロンの直後に定義するだけで、1つまたは複数のホットキーに名前付き<a href="Functions.htm">機能</a>を割り当てることができます:</p>
<pre><em>; Ctrl+Shift+Oで、エクスプローラーに含まれるフォルダを開くことができます。
; Ctrl+Shift+E で現在のファイルが選択されているフォルダを開きます。
; SciTEとNotepad++をサポートします。</em>
; Supports SciTE and Notepad++ (may require title bar setting changes).</em>
^+o::
^+e::
editor_open_folder(hk)
Expand Down
3 changes: 2 additions & 1 deletion target/docs/Hotstrings.htm
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ <h2 id="remarks">備考</h2>
<p id="ReplaceBrace"><a href="#T">Text</a>モードや<a href="#raw">Raw</a>モードを使用しない自動置換ホットストリングの場合、<code>{</code>だけ、またはホワイトスペースだけで先行するものを送信するには、2つのブラケットで囲む必要があります。例えば<code>:*:brace::{{}</code><code>:*:space_brace:: {{}</code>。それ以外の場合は、<a href="lib/Block.htm#otb">OTB(One True Brace)スタイル</a>をサポートするホットストリングの機能のためのオープニングブレースと解釈されます。</p>
<p id="NoMouse">デフォルトでは、マウスの左ボタンまたは右ボタンをクリックすると、ホットストリング認識機能がリセットされます。つまり、スクリプトは全く新しいホットストリングを待ち始め、以前に入力したものは考慮されなくなります(これが望ましくない場合は、スクリプトのどこかに<code><a href="lib/_Hotstring.htm">#Hotstring</a> NoMouse</code>という行を指定してください)。クリックするたびにテキスト挿入点(キャレット)が移動したり、キーボードフォーカスが新しいコントロール/フィールドに設定されるのが普通なので、この「マウスクリックでリセット」動作がデフォルトになっています。このような場合、通常は、以下のようにすることが望ましい:1)ホットストリングが<a href="#Question">クエスチョンマークオプション</a>を欠いていても発射します。2)マウスをクリックした後に入力したものが、誤って前に入力したものと有効な略語を形成した場合に発射されるのを防止します。</p>
<p id="focus-reset">ホットストリングレコグナイザーは、文字が入力されるたびにアクティブなウィンドウをチェックし、以前とは異なるウィンドウがアクティブな場合はリセットされます。アクティブウィンドウが変更され、文字が入力される前に元に戻った場合、変更は検出されません(ただし、他の理由でホットストリング認識装置がリセットされる場合があります)。ホットストリングレコグナイザーをリセットするには、次のようにします。 <code><a href="lib/Hotstring.htm#Reset">Hotstring "Reset"</a></code></p>
<p>内蔵変数<strong>A_EndChar</strong>には、直近の自動置換でないホットストリングを起動するために入力した終了文字が格納されます。終端文字が必要ない場合(<a href="#Asterisk">*オプション</a>のため)、空白となります。A_EndCharは、Send関数を使用するホットストリングや、入力した終端文字によって動作が変化するホットストリングを作成する場合に便利です。終了文字そのものを送信する場合は、<code>SendText A_EndChar</code>を使用します(<a href="lib/Send.htm">SendText</a>を使用するのは、!{}などの文字が通常のSend関数では正しく送信されないためです)。</p>
<p>内蔵変数<strong>A_EndChar</strong>には、直近の自動置換でないホットストリングを起動するために入力した終了文字が格納されます。If no ending character was required (due to the <a href="#Asterisk">* option</a>), this variable will be blank. A_EndCharは、Send関数を使用するホットストリングや、入力した終端文字によって動作が変化するホットストリングを作成する場合に便利です。終了文字そのものを送信する場合は、<code>SendText A_EndChar</code>を使用します(<a href="lib/Send.htm">SendText</a>を使用するのは、!{}などの文字が通常のSend関数では正しく送信されないためです)。</p>
<p>ホットストリング定義内のシングルコロンは、ダブルコロンデリミタの前でなければ<a href="misc/EscapeChar.htm">エスケープ</a>する必要はありませんが、バックスティックおよびその左にスペースまたはタブを持つセミコロンは常にエスケープする必要があります。全リストは「<a href="misc/EscapeChar.htm">エスケープシーケンス</a>」を参照してください。</p>
<p><a href="lib/Send.htm">送信機能</a>の特殊文字である{Enter}などは<a href="#auto">自動置換テキスト</a>でサポートされていますが(<a href="#raw">rawオプション</a>が使用されていない場合)、ホットストリングの略語そのものはこれを使用しません。代わりに、<kbd>Enter</kbd>には`n、<kbd>Tab</kbd>には`t(またはリテラルタブ)を指定します(完全なリストは<a href="misc/EscapeChar.htm">エスケープシーケンス</a>を参照してください)。例えば、ホットストリング<code>:*:ab`t::</code>は、「ab」の後にタブを入力したときにトリガーされるでしょう。</p>
<p>スペースとタブは、ホットストリング定義内で文字通り扱われます。たとえば、次のようにすると、2つの異なる結果が得られます:<code>::btw::by the way</code><code>::btw:: by the way</code></p>
Expand All @@ -133,6 +133,7 @@ <h2 id="remarks">備考</h2>
<p>ホットストリングの関数は、関数に名前が付けられている場合にのみ、スクリプトから明示的に呼び出すことができます。<a href="#Function">名前付き関数ホットストリング</a>を参照してください。</p>
<p>ホットストリングは監視されず、不可視の<a href="lib/InputHook.htm">Inputフック</a>によって入力がブロックされている間はトリガーされない。</p>
<p id="InputLevel">デフォルトでは、ホットストリングは、AutoHotkeyスクリプトによって生成されたキーストロークによってトリガーされることはありません。これにより、ホットストリングが何度もトリガーする無限ループの可能性を回避することができます。この動作は、<a href="lib/_InputLevel.htm">#InputLevel</a><a href="lib/SendLevel.htm">SendLevel</a>で制御することができます。ただし、自動置換ホットストリングは常に送信レベル0を使用するため、<a href="lib/_UseHook.htm">フックホットキー</a>やホットストリングがトリガーされることはない。</p>
<p>The <a href="lib/Suspend.htm">Suspend</a> function can temporarily disable all hotstrings except for ones you make exempt. より選択性を高めたい場合は、<a href="lib/_HotIf.htm">#HotIf</a>をご利用ください。</p>
<p>ホットストリングは、<a href="lib/Hotstring.htm">Hotstring</a>関数によって動的に作成することができ、スクリプトの既存のホットストリングを個別に変更、無効化、有効化することも可能です。</p>
<p><a href="lib/InputHook.htm">InputHook</a>関数は、特定の目的のためにホットストリングよりも柔軟性があります。例えば、アクティブなウィンドウ(ゲームなど)において、キー操作を見えなくすることができます。また、<kbd>Esc</kbd>などの非文字の終了キーにも対応しています。</p>
<p><a href="lib/InstallKeybdHook.htm">キーボードフック</a>は、ホットストリングを含むすべてのスクリプトで自動的に使用されます。</p>
Expand Down
2 changes: 1 addition & 1 deletion target/docs/KeyList.htm
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ <h2 id="SpecialKeys">特殊キー</h2>
<li>キーが検出可能な場合は、リストの2列目にある3桁の16進数値をメモしてください(例:<strong>159</strong>)。</li>
<li>このキーをホットキーとして定義するには、次の例に従います:
<pre>
<strong>SC159::</strong>MsgBox ThisHotkey " was pressed." <em>; 159をキーの値で置き換えます。</em>
SC159::MsgBox ThisHotkey " was pressed." <em>; Replace 159 with your key's value.</em>
</pre><a href="Hotkeys.htm#ThisHotkey">ThisHotkey</a>もご覧ください。</li>
</ol>
<p><strong>逆方向:</strong>他のキーを「ミステリー・キー」<em></em>リマップするには、次のようにします:</p>
Expand Down
Loading

0 comments on commit f4a6e9b

Please sign in to comment.