Skip to content

Commit

Permalink
Project translation
Browse files Browse the repository at this point in the history
  • Loading branch information
Ragnar-F committed Nov 2, 2024
1 parent b96a23f commit 3ccdcab
Show file tree
Hide file tree
Showing 423 changed files with 1,588 additions and 1,198 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
}
1 change: 0 additions & 1 deletion target/docs/404.htm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>

<body>
Expand Down
1 change: 0 additions & 1 deletion target/docs/AHKL_DBGPClients.htm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>
<body>

Expand Down
3 changes: 1 addition & 2 deletions target/docs/ChangeLog.htm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>
<body>
<h1>Änderungen und neue Features</h1>
Expand Down Expand Up @@ -133,7 +132,7 @@ <h2 id="v2.0.8">2.0.8 - 11. September 2023</h2>
</ul>
<p>Behoben: Einige Probleme bzgl. Fortsetzungsbereiche:</p>
<ul>
<li>Escapesequenzen in der Join-Option wurden doppelt übersetzt, was dazu führte, dass <code>````</code> zu einem statt zwei direkt geschriebenen <code>`</code> wurde, <code>``n</code> zu einem LF-Zeichen wurde, usw.</li>
<li>Escapesequenzen in der Join-Option wurden doppelt übersetzt, was dazu führte, dass <code>````</code> zu einem statt zwei direkt geschriebenen <code>`</code> wurde, <code>``n</code> zu einem Zeilenvorschub wurde, usw.</li>
<li><code>`"</code> oder <code>`'</code> erzeugten ein direkt geschriebenes umgekehrtes Häkchen und beendeten die Zeichenkette, anstatt ein direkt geschriebenes Anführungszeichen zu erzeugen, wenn der Fortsetzungsbereich in Anführungszeichen desselben Typs gesetzt ist und nicht die <code>`</code>-Option hat.</li>
</ul>
<p>Optimiert: Das automatische Escaping von Anführungszeichen und umgekehrten Häkchen in Fortsetzungsbereichen.</p>
Expand Down
1 change: 0 additions & 1 deletion target/docs/Compat.htm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>
<body>

Expand Down
1 change: 0 additions & 1 deletion target/docs/Concepts.htm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>
<body>
<h1>Konzepte und Konventionen</h1>
Expand Down
1 change: 0 additions & 1 deletion target/docs/FAQ.htm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<meta name="description" content="Diese Seite enthält Fragen und Antworten zu allgemeiner Problembehandlung, allgemeinen Aufgaben, Hotkeys, Hotstrings und Neubelegung." />
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>
<body>

Expand Down
3 changes: 1 addition & 2 deletions target/docs/Functions.htm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>

<body>
Expand Down Expand Up @@ -115,7 +114,7 @@ <h2 id="optional">Optionale Parameter</h2>
MeineFunk(X, Y:=2, Z:=0) { <em>; Beachten Sie, dass Z in diesem Fall optional bleiben muss.</em>
MsgBox X ", " Y ", " Z
}</pre>
<p id="OptionalByRef"><a href="#ByRef">ByRef-Parameter</a> können auch einen Standardwert haben, z.B. <code>MeineFunk(&amp;p1 := "")</code>. Wenn die Funktion ohne diesen Parameter aufgerufen wird, wird eine lokale Variable mit dem angegebenen Standardwert erstellt, d.h. die Funktion wird sich so verhalten, als würde das Symbol "&amp;" fehlen.</p>
<p id="OptionalByRef"><a href="#ByRef">ByRef-Parameter</a> können auch einen Standardwert haben, z.B. <code>MeineFunk(&amp;p1 := "") {</code>. Wenn die Funktion ohne diesen Parameter aufgerufen wird, wird eine lokale Variable mit dem angegebenen Standardwert erstellt, d.h. die Funktion wird sich so verhalten, als würde das Symbol "&amp;" fehlen.</p>

<h3 id="unset">Ungesetzte Parameter</h3>
<p>Um einen Parameter ohne Angabe eines Standardwerts als optional zu markieren, verwenden Sie das Schlüsselwort <code>unset</code> oder das Suffix <code>?</code>. In diesem Fall wird, wenn der Parameter weggelassen wird, die entsprechende Variable keinen Wert haben. Mit <a href="lib/IsSet.htm">IsSet</a> können Sie ermitteln, ob der Parameter einen Wert erhalten hat, wie unten gezeigt:</p>
Expand Down
1 change: 0 additions & 1 deletion target/docs/HotkeyFeatures.htm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>

<body>
Expand Down
7 changes: 3 additions & 4 deletions target/docs/Hotkeys.htm
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga4.js" type="text/javascript"></script>
</head>
<body>

Expand Down Expand Up @@ -132,7 +131,7 @@ <h2 id="Symbols">Hotkey-Modifikatorsymbole</h2>
*LWin Up::Send "{LControl up}"
</pre>
<p>UP kann auch auf normale Hotkeys angewendet werden. Zum Beispiel: <code>^!r Up::MsgBox "Sie haben STRG+ALT+R gedrückt und losgelassen"</code>. UP funktioniert auch bei <a href="#combo">Kombinations-Hotkeys</a> (z.B. <code>F1 &amp; e Up::</code>)</p>
<p>Einschränkungen: 1) UP funktioniert nicht bei <a href="KeyList.htm#Controller">Controllertasten</a>; und 2) ein UP-Hotkey ohne entsprechenden Counterpart (normaler Hotkey oder DOWN-Hotkey) wird diese Taste komplett übernehmen, um zu verhindern, dass sie stecken bleibt. Um das zu verhindern, kann beispielsweise ein <a href="#Tilde">Tilde-Präfix</a> hinzugefügt werden (z.B. <code>~LControl up::</code>)</p>
<p>Einschränkungen: 1) UP funktioniert nicht bei <a href="KeyList.htm#Controller">Controllertasten</a>; und 2) ein UP-Hotkey ohne entsprechenden Counterpart (normaler Hotkey oder DOWN-Hotkey) wird diese Taste komplett übernehmen, um zu verhindern, dass sie dauerhaft gedrückt bleibt. Um das zu verhindern, kann beispielsweise ein <a href="#Tilde">Tilde-Präfix</a> hinzugefügt werden (z.B. <code>~LControl up::</code>)</p>
<p>UP-Hotkeys und ihre Counterparts (DOWN-Hotkeys, sofern vorhanden) verwenden immer den Tastatur-Hook.</p>
<p>Beachten Sie auch, dass mit einer ähnlichen Methode wie der oben ein Hotkey zu einer Präfixtaste gemacht werden kann. Das hat den Vorteil, dass, obwohl der Hotkey nach dem Loslassen ausgelöst wird, er dies nur tut, wenn Sie keine andere Taste gedrückt haben, während Sie ihn gedrückt hielten. Zum Beispiel:</p>
<pre>LControl &amp; F1::return <em>; Macht LControl zum Präfix, wenn es min. einmal vor "&amp;" verwendet wird.</em>
Expand Down Expand Up @@ -224,7 +223,7 @@ <h2 id="Wheel">Mausrad-Hotkeys</h2>
Loop 2 <em>; &lt;-- Erhöhe diesen Wert, um schneller zu scrollen.</em>
SendMessage 0x0114, 1, 0, ControlGetFocus("A") <em>; 0x0114 ist WM_HSCROLL und die 1 danach SB_LINERIGHT.</em>
}</pre>
<p>Da Mausrad-Hotkeys nur Unten-Ereignisse (nie Oben-Ereignisse) erzeugen, können sie nicht als <a href="#keyup">Taste-Oben-Hotkeys</a> verwendet werden.</p>
<p>Da Mausrad-Hotkeys nur Down-Ereignisse (nie Up-Ereignisse) erzeugen, können sie nicht als <a href="#keyup">Taste-Oben-Hotkeys</a> verwendet werden.</p>

<h2 id="Remarks">Tipps und Hinweise</h2>
<p>Jede Ziffernblocktaste kann so geändert werden, dass sie je nach Status von <kbd>Num</kbd> zwei verschiedene Hotkey-Subroutinen startet. Alternativ kann eine Ziffernblocktaste so geändert werden, dass sie unabhängig vom Status die gleiche Subroutine startet. Zum Beispiel:</p>
Expand Down Expand Up @@ -302,7 +301,7 @@ <h2 id="Function">Benannte Funktions-Hotkeys</h2>
<p>Wenn die Funktion eines Hotkeys aufgerufen werden soll, ohne den Hotkey selbst auszulösen, können Sie einem oder mehreren Hotkeys eine benannte <a href="Functions.htm">Funktion</a> zuweisen, indem Sie diese einfach unterhalb des Doppelpunktpaares definieren. Zum Beispiel:</p>
<pre><em>; STRG+UMSCHALT+O öffnet den Ordner der Datei im Explorer.
; STRG+UMSCHALT+E öffnet den Ordner der Datei und markiert sie.
; Unterstützt SciTE und Notepad++.</em>
; Unterstützt SciTE und Notepad++ (erfordert ggf. Titelleisteneinstellungen).</em>
^+o::
^+e::
editor_ordner_öffnen(hk)
Expand Down
Loading

0 comments on commit 3ccdcab

Please sign in to comment.