Christian Fraß commited on 2018-08-24 15:59:38
Zeige 10 geänderte Dateien mit 459 Einfügungen und 42 Löschungen.
| ... | ... |
@@ -4,7 +4,7 @@ |
| 4 | 4 |
<!-- |
| 5 | 5 |
<li>The following list gives an overview over prepositions:</li> |
| 6 | 6 |
--> |
| 7 |
- {{fsdraft-table-2d:adpositions.words:situation_id:type_id/reference_id}}
|
|
| 7 |
+ {{fsdraft-macro-adpositions:adpositions.words:situation_id:type_id/reference_id}}
|
|
| 8 | 8 |
<p>Some examples:</p> |
| 9 | 9 |
<ul>{{list:section-adpositions.examples:adpositions-example.html.tpl}}</ul>
|
| 10 | 10 |
</section> |
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
<section class="subsection" id="correlatives"> |
| 2 | 2 |
<header>Correlatives</header> |
| 3 | 3 |
{{call::_proposal.html.tpl}}
|
| 4 |
- {{fsdraft-table-2d:correlatives.words:domain_id:type_id}}
|
|
| 4 |
+ {{fsdraft-macro-correlatives:correlatives.words:domain_id:type_id}}
|
|
| 5 | 5 |
<div class="note note_information"> |
| 6 | 6 |
<span class="note_content"> |
| 7 | 7 |
<p>Some of these words are very unlikely to ever get used (e.g. <span class="type_word lang_flk">ni slag</span>). Nevertheless they exist and are listed for completeness.</p> |
| ... | ... |
@@ -4,7 +4,7 @@ |
| 4 | 4 |
{{call::cases.html.tpl}}
|
| 5 | 5 |
{{call::definiteness.html.tpl}}
|
| 6 | 6 |
<p>The following table summarizes the information of this section:</p> |
| 7 |
- {{fsdraft-table-2d:declension.words:count_id/definiteness_id:case_id}}
|
|
| 7 |
+ {{fsdraft-macro-declension:declension.words:count_id/definiteness_id:case_id}}
|
|
| 8 | 8 |
<p>{{fsdraft-correlation:section-declension.example:type_sentence}}</p>
|
| 9 | 9 |
</section> |
| 10 | 10 |
|
| ... | ... |
@@ -1,6 +1,6 @@ |
| 1 | 1 |
<section class="subsection" id="personal_pronouns"> |
| 2 | 2 |
<header>Personal Pronouns</header> |
| 3 |
- {{fsdraft-table-2d:personal_pronouns.words:count_id/person_id/gender_id:type_id/case_id}}
|
|
| 3 |
+ {{fsdraft-macro-personal_pronouns:personal_pronouns.words}}
|
|
| 4 | 4 |
<div class="note note_information"> |
| 5 | 5 |
<span class="note_content"> |
| 6 | 6 |
<p>Since the word <span class="type_word lang_flk">man</span> simply means <span class="type_word lang_en">human being</span>, it can be understood as an implicit way to express an abstract actor; similar words like <span class="type_word lang_flk">lüd</span> (<span class="type_word lang_en">people</span>) or <span class="type_word lang_flk">di</span> can be used as well.</p> |
| ... | ... |
@@ -6,7 +6,7 @@ |
| 6 | 6 |
<!-- |
| 7 | 7 |
<div class="note_information">It was not easy to find a phonology system for Folksprak.</div> |
| 8 | 8 |
--> |
| 9 |
- {{fsdraft-table-1d:phonology_and_orthography:ipa/latin/runic/examples}}
|
|
| 9 |
+ {{fsdraft-macro-phonology_and_orthography:phonology_and_orthography:ipa/latin/runic/examples}}
|
|
| 10 | 10 |
<div class="note note_information"> |
| 11 | 11 |
<span class="note_content"> |
| 12 | 12 |
<p>It is permitted to pronounce the sounds a little differently, for example <span class="type_letter lang_flk">v</span> as <span class="ipa">ʋ</span> or <span class="type_letter lang_flk">s</span> as <span class="ipa">z</span>, whilst the sounds from the table above are the default.</p> |
| ... | ... |
@@ -2,7 +2,9 @@ |
| 2 | 2 |
<header>Principles</header> |
| 3 | 3 |
<p>The word stock of Folksprak is ‐ with minor exceptions ‐ derived from the modern Germanic languages (e.g. English, German, Swedish, …) and/or their precursors (e.g. Old English, Old Norse, Proto Germanic, etc.). Branches which no longer emerge today (e.g. the East Germanic languages like Gothic), were not incorporated.</p> |
| 4 | 4 |
<p>The following table gives an overview about the typical transitions of phones from Proto-Germanic to some of todays natural Germanic languages and Folksprak, along with example words in square brackets:</p> |
| 5 |
+ {{fsdraft-macro-principles:transitions.data}}
|
|
| 6 |
+ <br/> |
|
| 7 |
+ <br/> |
|
| 5 | 8 |
<span class="todo">more entries</span> |
| 6 |
- {{fsdraft-table-2d:transitions.data:transition_id:language_id}}
|
|
| 7 | 9 |
</section> |
| 8 | 10 |
|
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
[ |
| 2 | 2 |
{
|
| 3 | 3 |
"type": "lateral approximant", |
| 4 |
- "ipa": "/l/", |
|
| 4 |
+ "ipa": "l", |
|
| 5 | 5 |
"latin": "'L'/'l'", |
| 6 | 6 |
"runic": "'ᛚ'", |
| 7 | 7 |
"remark": null, |
| ... | ... |
@@ -13,7 +13,7 @@ |
| 13 | 13 |
}, |
| 14 | 14 |
{
|
| 15 | 15 |
"type": "nasal", |
| 16 |
- "ipa": "/m/", |
|
| 16 |
+ "ipa": "m", |
|
| 17 | 17 |
"latin": "'M'/'m'", |
| 18 | 18 |
"runic": "'ᛗ'", |
| 19 | 19 |
"remark": null, |
| ... | ... |
@@ -25,7 +25,7 @@ |
| 25 | 25 |
}, |
| 26 | 26 |
{
|
| 27 | 27 |
"type": "nasal", |
| 28 |
- "ipa": "/n/", |
|
| 28 |
+ "ipa": "n", |
|
| 29 | 29 |
"latin": "'N'/'n'", |
| 30 | 30 |
"runic": "'ᚾ'", |
| 31 | 31 |
"remark": null, |
| ... | ... |
@@ -37,7 +37,7 @@ |
| 37 | 37 |
}, |
| 38 | 38 |
{
|
| 39 | 39 |
"type": "nasal", |
| 40 |
- "ipa": "/ŋ/", |
|
| 40 |
+ "ipa": "ŋ", |
|
| 41 | 41 |
"latin": "'Ng'/'ng'", |
| 42 | 42 |
"runic": "'ᛜ'", |
| 43 | 43 |
"remark": null, |
| ... | ... |
@@ -49,7 +49,7 @@ |
| 49 | 49 |
}, |
| 50 | 50 |
{
|
| 51 | 51 |
"type": "plosive", |
| 52 |
- "ipa": "/g/", |
|
| 52 |
+ "ipa": "g", |
|
| 53 | 53 |
"latin": "'G'/'g'", |
| 54 | 54 |
"runic": "'ᚷ'", |
| 55 | 55 |
"remark": null, |
| ... | ... |
@@ -61,7 +61,7 @@ |
| 61 | 61 |
}, |
| 62 | 62 |
{
|
| 63 | 63 |
"type": "plosive", |
| 64 |
- "ipa": "/k/", |
|
| 64 |
+ "ipa": "k", |
|
| 65 | 65 |
"latin": "'K'/'k'", |
| 66 | 66 |
"runic": "'ᚲ'", |
| 67 | 67 |
"remark": null, |
| ... | ... |
@@ -73,7 +73,7 @@ |
| 73 | 73 |
}, |
| 74 | 74 |
{
|
| 75 | 75 |
"type": "plosive", |
| 76 |
- "ipa": "/b/", |
|
| 76 |
+ "ipa": "b", |
|
| 77 | 77 |
"latin": "'B'/'b'", |
| 78 | 78 |
"runic": "'ᛒ'", |
| 79 | 79 |
"remark": null, |
| ... | ... |
@@ -85,7 +85,7 @@ |
| 85 | 85 |
}, |
| 86 | 86 |
{
|
| 87 | 87 |
"type": "plosive", |
| 88 |
- "ipa": "/p/", |
|
| 88 |
+ "ipa": "p", |
|
| 89 | 89 |
"latin": "'P'/'p'", |
| 90 | 90 |
"runic": "'ᛈ'", |
| 91 | 91 |
"remark": null, |
| ... | ... |
@@ -97,7 +97,7 @@ |
| 97 | 97 |
}, |
| 98 | 98 |
{
|
| 99 | 99 |
"type": "plosive", |
| 100 |
- "ipa": "/d/", |
|
| 100 |
+ "ipa": "d", |
|
| 101 | 101 |
"latin": "'D'/'d'", |
| 102 | 102 |
"runic": "'ᛞ'", |
| 103 | 103 |
"remark": null, |
| ... | ... |
@@ -109,7 +109,7 @@ |
| 109 | 109 |
}, |
| 110 | 110 |
{
|
| 111 | 111 |
"type": "plosive", |
| 112 |
- "ipa": "/t/", |
|
| 112 |
+ "ipa": "t", |
|
| 113 | 113 |
"latin": "'T'/'t'", |
| 114 | 114 |
"runic": "'ᛏ'", |
| 115 | 115 |
"remark": null, |
| ... | ... |
@@ -121,7 +121,7 @@ |
| 121 | 121 |
}, |
| 122 | 122 |
{
|
| 123 | 123 |
"type": "fricative", |
| 124 |
- "ipa": "/v/", |
|
| 124 |
+ "ipa": "v", |
|
| 125 | 125 |
"latin": "'V'/'v'", |
| 126 | 126 |
"runic": "'ᚹ'", |
| 127 | 127 |
"remark": null, |
| ... | ... |
@@ -133,7 +133,7 @@ |
| 133 | 133 |
}, |
| 134 | 134 |
{
|
| 135 | 135 |
"type": "fricative", |
| 136 |
- "ipa": "/f/", |
|
| 136 |
+ "ipa": "f", |
|
| 137 | 137 |
"latin": "'F'/'f'", |
| 138 | 138 |
"runic": "'ᚠ'", |
| 139 | 139 |
"remark": null, |
| ... | ... |
@@ -145,7 +145,7 @@ |
| 145 | 145 |
}, |
| 146 | 146 |
{
|
| 147 | 147 |
"type": "fricative", |
| 148 |
- "ipa": "/s/", |
|
| 148 |
+ "ipa": "s", |
|
| 149 | 149 |
"latin": "'S'/'s'", |
| 150 | 150 |
"runic": "'ᛊ'", |
| 151 | 151 |
"remark": null, |
| ... | ... |
@@ -157,7 +157,7 @@ |
| 157 | 157 |
}, |
| 158 | 158 |
{
|
| 159 | 159 |
"type": "fricative", |
| 160 |
- "ipa": "/h/", |
|
| 160 |
+ "ipa": "h", |
|
| 161 | 161 |
"latin": "'H'/'h'", |
| 162 | 162 |
"runic": "'ᚺ'", |
| 163 | 163 |
"remark": null, |
| ... | ... |
@@ -169,7 +169,7 @@ |
| 169 | 169 |
}, |
| 170 | 170 |
{
|
| 171 | 171 |
"type": "tap/flap", |
| 172 |
- "ipa": "/ɾ/", |
|
| 172 |
+ "ipa": "ɾ", |
|
| 173 | 173 |
"latin": "'R'/'r'", |
| 174 | 174 |
"runic": "'ᚱ'", |
| 175 | 175 |
"remark": null, |
| ... | ... |
@@ -181,7 +181,7 @@ |
| 181 | 181 |
}, |
| 182 | 182 |
{
|
| 183 | 183 |
"type": "halfvowel", |
| 184 |
- "ipa": "/j/", |
|
| 184 |
+ "ipa": "j", |
|
| 185 | 185 |
"latin": "'J'/'j'", |
| 186 | 186 |
"runic": "'ᛃ'", |
| 187 | 187 |
"remark": null, |
| ... | ... |
@@ -193,7 +193,7 @@ |
| 193 | 193 |
}, |
| 194 | 194 |
{
|
| 195 | 195 |
"type": "vowel", |
| 196 |
- "ipa": "/i/", |
|
| 196 |
+ "ipa": "i", |
|
| 197 | 197 |
"latin": "'I'/'i'", |
| 198 | 198 |
"runic": "'ᛁ'", |
| 199 | 199 |
"remark": null, |
| ... | ... |
@@ -205,7 +205,7 @@ |
| 205 | 205 |
}, |
| 206 | 206 |
{
|
| 207 | 207 |
"type": "vowel", |
| 208 |
- "ipa": "/e/", |
|
| 208 |
+ "ipa": "e", |
|
| 209 | 209 |
"latin": "'E'/'e'", |
| 210 | 210 |
"runic": "'ᛖ'", |
| 211 | 211 |
"remark": "only a few variations of English have that sound; it is somehow similar to the vowel in 'air'", |
| ... | ... |
@@ -217,7 +217,7 @@ |
| 217 | 217 |
}, |
| 218 | 218 |
{
|
| 219 | 219 |
"type": "vowel", |
| 220 |
- "ipa": "/a/", |
|
| 220 |
+ "ipa": "a", |
|
| 221 | 221 |
"latin": "'A'/'a'", |
| 222 | 222 |
"runic": "'ᚨ'", |
| 223 | 223 |
"remark": null, |
| ... | ... |
@@ -229,7 +229,7 @@ |
| 229 | 229 |
}, |
| 230 | 230 |
{
|
| 231 | 231 |
"type": "vowel", |
| 232 |
- "ipa": "/o/", |
|
| 232 |
+ "ipa": "o", |
|
| 233 | 233 |
"latin": "'O'/'o'", |
| 234 | 234 |
"runic": "'ᛟ'", |
| 235 | 235 |
"remark": null, |
| ... | ... |
@@ -241,7 +241,7 @@ |
| 241 | 241 |
}, |
| 242 | 242 |
{
|
| 243 | 243 |
"type": "vowel", |
| 244 |
- "ipa": "/u/", |
|
| 244 |
+ "ipa": "u", |
|
| 245 | 245 |
"latin": "'U'/'u'", |
| 246 | 246 |
"runic": "'ᚢ'", |
| 247 | 247 |
"remark": null, |
| ... | ... |
@@ -253,7 +253,7 @@ |
| 253 | 253 |
}, |
| 254 | 254 |
{
|
| 255 | 255 |
"type": "vowel", |
| 256 |
- "ipa": "/ø/", |
|
| 256 |
+ "ipa": "ø", |
|
| 257 | 257 |
"latin": "'Ö'/'ö', alternatively 'Oy'/'oy'", |
| 258 | 258 |
"runic": "'ᛟᛇ'", |
| 259 | 259 |
"remark": "similar to vowels used in words like 'earl', 'worry', 'hurt'", |
| ... | ... |
@@ -265,7 +265,7 @@ |
| 265 | 265 |
}, |
| 266 | 266 |
{
|
| 267 | 267 |
"type": "vowel", |
| 268 |
- "ipa": "/y/", |
|
| 268 |
+ "ipa": "y", |
|
| 269 | 269 |
"latin": "'Ü'/'ü', alternatively 'Uy'/'uy'", |
| 270 | 270 |
"runic": "'ᚢᛇ'", |
| 271 | 271 |
"remark": "hardly any variation of English has that sound, but it can be learned easily by interpolating between /u/ and /i/", |
| ... | ... |
@@ -13,6 +13,19 @@ |
| 13 | 13 |
{"transition_id": "t07", "language_id": "isl", "phones": ["-a-"], "examples": ["dagur"]},
|
| 14 | 14 |
{"transition_id": "t07", "language_id": "flk", "phones": ["-a-"], "examples": ["dag"]},
|
| 15 | 15 |
|
| 16 |
+ {"transition_id": "t08", "language_id": "gem", "phones": ["-ai-"], "examples": ["snaiwaz","saiwiz"]},
|
|
| 17 |
+ {"transition_id": "t08", "language_id": "eng", "phones": ["-ea-","-ow-"], "examples": ["snow","sea"]},
|
|
| 18 |
+ {"transition_id": "t08", "language_id": "afr", "phones": ["-ee-","-eeu-"], "examples": ["sneeu","see"]},
|
|
| 19 |
+ {"transition_id": "t08", "language_id": "nld", "phones": ["-ee-","-eeuw-"], "examples": ["sneeuw","zee"]},
|
|
| 20 |
+ {"transition_id": "t08", "language_id": "yid", "phones": ["-ey-"], "examples": ["שניי",null]},
|
|
| 21 |
+ {"transition_id": "t08", "language_id": "deu", "phones": ["-ee-"], "examples": ["Schnee","See"]},
|
|
| 22 |
+ {"transition_id": "t08", "language_id": "dan", "phones": ["-ø-","-e-"], "examples": ["sne","sø"]},
|
|
| 23 |
+ {"transition_id": "t08", "language_id": "nob", "phones": ["-ø-","-jø-"], "examples": ["snø","sjø"]},
|
|
| 24 |
+ {"transition_id": "t08", "language_id": "swe", "phones": ["-jö-"], "examples": ["snö","sjö"]},
|
|
| 25 |
+ {"transition_id": "t08", "language_id": "nno", "phones": ["-ø-"], "examples": ["snø",null]},
|
|
| 26 |
+ {"transition_id": "t08", "language_id": "isl", "phones": ["-jó-","-ær-"], "examples": ["snær","sjór"]},
|
|
| 27 |
+ {"transition_id": "t08", "language_id": "flk", "phones": ["-e-"], "examples": ["sne","se"]},
|
|
| 28 |
+ |
|
| 16 | 29 |
{"transition_id": "t00", "language_id": "gem", "phones": ["-au-"], "examples": ["braudą","raudaz","skauniz","augô","draumaz","baumaz"]},
|
| 17 | 30 |
{"transition_id": "t00", "language_id": "eng", "phones": ["-ea-","-e-","-ey-"], "examples": ["bread","red","sheen","eye","dream","beam"]},
|
| 18 | 31 |
{"transition_id": "t00", "language_id": "afr", "phones": ["-oo-","-o-"], "examples": ["brood"]},
|
| ... | ... |
@@ -173,7 +173,8 @@ a |
| 173 | 173 |
font-weight: bold; |
| 174 | 174 |
} |
| 175 | 175 |
|
| 176 |
-.type_letter |
|
| 176 |
+.type_letter, |
|
| 177 |
+.type_rune |
|
| 177 | 178 |
{
|
| 178 | 179 |
&.lang_flk |
| 179 | 180 |
{
|
| ... | ... |
@@ -337,16 +338,16 @@ a |
| 337 | 338 |
|
| 338 | 339 |
.todo |
| 339 | 340 |
{
|
| 340 |
- &:before |
|
| 341 |
- {
|
|
| 342 |
- content: "[ToDo] "; |
|
| 343 |
- } |
|
| 344 |
- |
|
| 345 | 341 |
margin: 4px; |
| 346 | 342 |
padding: 4px; |
| 347 | 343 |
background-color: hsv( 0,100%, 50%); |
| 348 | 344 |
color: white; |
| 349 | 345 |
font-weight: bold; |
| 346 |
+ |
|
| 347 |
+ &:before |
|
| 348 |
+ {
|
|
| 349 |
+ content: "[ToDo] "; |
|
| 350 |
+ } |
|
| 350 | 351 |
} |
| 351 | 352 |
|
| 352 | 353 |
.code |
| ... | ... |
@@ -64,7 +64,7 @@ function format_list( |
| 64 | 64 |
return ( |
| 65 | 65 |
function (pieces) {
|
| 66 | 66 |
return ( |
| 67 |
- (pieces.length <= 0) |
|
| 67 |
+ ((pieces === undefined) || (pieces === null) || (pieces.length <= 0)) |
|
| 68 | 68 |
? "?" |
| 69 | 69 |
: pieces.map(format_single(type, language)).join(", ")
|
| 70 | 70 |
); |
| ... | ... |
@@ -454,10 +454,11 @@ function anordnen( |
| 454 | 454 |
*/ |
| 455 | 455 |
function xmlwrap( |
| 456 | 456 |
name : string, |
| 457 |
- kern : string |
|
| 457 |
+ kern : string, |
|
| 458 |
+ att : string = "" |
|
| 458 | 459 |
) : string |
| 459 | 460 |
{
|
| 460 |
- return (("<" + name + ">") + kern + ("</" + name + ">") + "\n");
|
|
| 461 |
+ return (("<" + name + att + ">") + kern + ("</" + name + ">") + "\n");
|
|
| 461 | 462 |
} |
| 462 | 463 |
|
| 463 | 464 |
|
| ... | ... |
@@ -467,7 +468,8 @@ function xmlwrap( |
| 467 | 468 |
function htmltable( |
| 468 | 469 |
titel : Array<string>, |
| 469 | 470 |
daten : Array<Array<string>>, |
| 470 |
- _2d : boolean = false |
|
| 471 |
+ classes : Array<string> = [], |
|
| 472 |
+ _2d : boolean = false, |
|
| 471 | 473 |
) |
| 472 | 474 |
: string |
| 473 | 475 |
{
|
| ... | ... |
@@ -511,7 +513,8 @@ function htmltable( |
| 511 | 513 |
.join("")
|
| 512 | 514 |
) |
| 513 | 515 |
) |
| 514 |
- ) |
|
| 516 |
+ ), |
|
| 517 |
+ (" class=\"" + classes.join(" ") + "\"")
|
|
| 515 | 518 |
) |
| 516 | 519 |
); |
| 517 | 520 |
} |
| ... | ... |
@@ -572,9 +575,10 @@ export function definieren( |
| 572 | 575 |
let tabelle__ : string = htmltable( |
| 573 | 576 |
tabelle_.kopf, |
| 574 | 577 |
tabelle_.rumpf, |
| 578 |
+ ["datatable"], |
|
| 575 | 579 |
false |
| 576 | 580 |
); |
| 577 |
- let style = xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 581 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 578 | 582 |
return (style + tabelle__); |
| 579 | 583 |
}, |
| 580 | 584 |
}, |
| ... | ... |
@@ -643,9 +647,406 @@ export function definieren( |
| 643 | 647 |
let tabelle__ : string = htmltable( |
| 644 | 648 |
tabelle_.kopf, |
| 645 | 649 |
tabelle_.rumpf, |
| 650 |
+ ["datatable"], |
|
| 651 |
+ true |
|
| 652 |
+ ); |
|
| 653 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 654 |
+ return (style + tabelle__); |
|
| 655 |
+ } |
|
| 656 |
+ }, |
|
| 657 |
+ {
|
|
| 658 |
+ "name": "fsdraft-macro-phonology_and_orthography", |
|
| 659 |
+ "funktion": (args) => (wert) => {
|
|
| 660 |
+ let tabelle_ : {kopf : Array<string>; rumpf : Array<Array<string>>;} = {
|
|
| 661 |
+ "kopf": [ |
|
| 662 |
+ "IPA-sound", |
|
| 663 |
+ "Latin letter Representation", |
|
| 664 |
+ "Runic Representation", |
|
| 665 |
+ "Folksprak Example", |
|
| 666 |
+ "English Example", |
|
| 667 |
+ ], |
|
| 668 |
+ "rumpf": ( |
|
| 669 |
+ wert |
|
| 670 |
+ .map( |
|
| 671 |
+ (eintrag) => {
|
|
| 672 |
+ const format_repr : (repr : string, type : string)=>string = (repr, type) => {
|
|
| 673 |
+ let repr_ : string = repr; |
|
| 674 |
+ let regexp : RegExp = (new RegExp("'([^']*)'", "g"));
|
|
| 675 |
+ while (true) {
|
|
| 676 |
+ let matching : any = regexp.exec(repr); |
|
| 677 |
+ if (matching === null) {
|
|
| 678 |
+ break; |
|
| 679 |
+ } |
|
| 680 |
+ else {
|
|
| 681 |
+ repr_ = repr_.replace(matching[0], mark(matching[1], ["type_" + type, "lang_flk"])); |
|
| 682 |
+ } |
|
| 683 |
+ } |
|
| 684 |
+ return repr_; |
|
| 685 |
+ }; |
|
| 686 |
+ const format_example : (word : string, language_id : string)=>string = (word, language_id) => {
|
|
| 687 |
+ if (word == null) {
|
|
| 688 |
+ return "--"; |
|
| 689 |
+ } |
|
| 690 |
+ else {
|
|
| 691 |
+ let word_ : string = word; |
|
| 692 |
+ {
|
|
| 693 |
+ let regexp : RegExp = (new RegExp("'([^']*)'", "g"));
|
|
| 694 |
+ while (true) {
|
|
| 695 |
+ let matching : any = regexp.exec(word); |
|
| 696 |
+ if (matching === null) {
|
|
| 697 |
+ break; |
|
| 698 |
+ } |
|
| 699 |
+ else {
|
|
| 700 |
+ word_ = word_.replace(matching[0], mark(matching[1], ["type_word", "lang_" + language_id])); |
|
| 701 |
+ } |
|
| 702 |
+ } |
|
| 703 |
+ } |
|
| 704 |
+ {
|
|
| 705 |
+ let regexp : RegExp = (new RegExp("_([^_]*)_", "g"));
|
|
| 706 |
+ while (true) {
|
|
| 707 |
+ let matching : any = regexp.exec(word); |
|
| 708 |
+ if (matching === null) {
|
|
| 709 |
+ break; |
|
| 710 |
+ } |
|
| 711 |
+ else {
|
|
| 712 |
+ word_ = word_.replace(matching[0], "<u>" + matching[1] + "</u>"); |
|
| 713 |
+ } |
|
| 714 |
+ } |
|
| 715 |
+ } |
|
| 716 |
+ return word_; |
|
| 717 |
+ } |
|
| 718 |
+ }; |
|
| 719 |
+ let ipa : string = mark(eintrag["ipa"], ["ipa"]); |
|
| 720 |
+ let latin : string = format_repr(eintrag["latin"], "letter"); |
|
| 721 |
+ let runic : string = format_repr(eintrag["runic"], "rune"); |
|
| 722 |
+ let example_source : string = format_example(eintrag["examples"]["flk"], "flk"); |
|
| 723 |
+ let example_target : string = format_example(eintrag["examples"][configuration["target"]], configuration["target"]); |
|
| 724 |
+ return [ |
|
| 725 |
+ ipa, |
|
| 726 |
+ latin, |
|
| 727 |
+ runic, |
|
| 728 |
+ example_source, |
|
| 729 |
+ example_target, |
|
| 730 |
+ ]; |
|
| 731 |
+ } |
|
| 732 |
+ ) |
|
| 733 |
+ ), |
|
| 734 |
+ }; |
|
| 735 |
+ let tabelle__ : string = htmltable( |
|
| 736 |
+ tabelle_.kopf, |
|
| 737 |
+ tabelle_.rumpf, |
|
| 738 |
+ ["datatable"], |
|
| 739 |
+ false |
|
| 740 |
+ ); |
|
| 741 |
+ return (tabelle__); |
|
| 742 |
+ } |
|
| 743 |
+ }, |
|
| 744 |
+ {
|
|
| 745 |
+ "name": "fsdraft-macro-principles", |
|
| 746 |
+ "funktion": (args) => (wert) => {
|
|
| 747 |
+ let tabelle : {meta : any; data : any;} = anordnen(
|
|
| 748 |
+ {
|
|
| 749 |
+ "daten": wert, |
|
| 750 |
+ "senkrecht": [ |
|
| 751 |
+ "transition_id", |
|
| 752 |
+ ], |
|
| 753 |
+ "waagerecht": [ |
|
| 754 |
+ "language_id", |
|
| 755 |
+ ], |
|
| 756 |
+ "feldsatz_kuerzen": false, |
|
| 757 |
+ } |
|
| 758 |
+ ); |
|
| 759 |
+ let tabelle_ : {kopf : Array<string>; rumpf : Array<Array<string>>;} = {
|
|
| 760 |
+ "kopf": ( |
|
| 761 |
+ [].concat( |
|
| 762 |
+ Object.keys(tabelle.meta.x) |
|
| 763 |
+ .map( |
|
| 764 |
+ (label) => ( |
|
| 765 |
+ // JSON.stringify(tabelle.meta.x[label]) |
|
| 766 |
+ objvals(tabelle.meta.x[label]).join("/")
|
|
| 767 |
+ ) |
|
| 768 |
+ ) |
|
| 769 |
+ ) |
|
| 770 |
+ ), |
|
| 771 |
+ "rumpf": tabelle.data.map( |
|
| 772 |
+ (satz) => ( |
|
| 773 |
+ Object.keys(satz) |
|
| 774 |
+ .filter( |
|
| 775 |
+ (label) => (label !== "_") |
|
| 776 |
+ ) |
|
| 777 |
+ .map( |
|
| 778 |
+ (label) => {
|
|
| 779 |
+ if (label === "_") {
|
|
| 780 |
+ return objvals(tabelle.meta.y[satz[label]]).join("/")
|
|
| 781 |
+ } |
|
| 782 |
+ else {
|
|
| 783 |
+ let head = satz[label][0]; |
|
| 784 |
+ if (head !== undefined) {
|
|
| 785 |
+ return ( |
|
| 786 |
+ ( |
|
| 787 |
+ (head["phones"].length <= 0) |
|
| 788 |
+ ? "?" |
|
| 789 |
+ : ( |
|
| 790 |
+ head["phones"] |
|
| 791 |
+ .map( |
|
| 792 |
+ (phone) => ( |
|
| 793 |
+ mark(phone, ["type_letter", "lang_" + head["language_id"]]) |
|
| 794 |
+ ) |
|
| 795 |
+ ) |
|
| 796 |
+ .join( |
|
| 797 |
+ ", " |
|
| 798 |
+ ) |
|
| 799 |
+ ) |
|
| 800 |
+ ) |
|
| 801 |
+ + "<br/>" |
|
| 802 |
+ + ( |
|
| 803 |
+ (head["examples"][0] != undefined) |
|
| 804 |
+ ? ("[" + mark(head["examples"][0], ["type_word", "lang_" + head["language_id"]]) + "]")
|
|
| 805 |
+ : "" |
|
| 806 |
+ ) |
|
| 807 |
+ ); |
|
| 808 |
+ } |
|
| 809 |
+ else {
|
|
| 810 |
+ return "?"; |
|
| 811 |
+ } |
|
| 812 |
+ } |
|
| 813 |
+ } |
|
| 814 |
+ ) |
|
| 815 |
+ ) |
|
| 816 |
+ ), |
|
| 817 |
+ }; |
|
| 818 |
+ let tabelle__ : string = htmltable( |
|
| 819 |
+ tabelle_.kopf, |
|
| 820 |
+ tabelle_.rumpf, |
|
| 821 |
+ ["datatable"], |
|
| 822 |
+ false |
|
| 823 |
+ ); |
|
| 824 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 825 |
+ return (style + tabelle__); |
|
| 826 |
+ } |
|
| 827 |
+ }, |
|
| 828 |
+ {
|
|
| 829 |
+ "name": "fsdraft-macro-personal_pronouns", |
|
| 830 |
+ "funktion": (args) => (wert) => {
|
|
| 831 |
+ let tabelle : {meta : any; data : any;} = anordnen(
|
|
| 832 |
+ {
|
|
| 833 |
+ "daten": wert, |
|
| 834 |
+ "senkrecht": [ |
|
| 835 |
+ "count_id", |
|
| 836 |
+ "person_id", |
|
| 837 |
+ "gender_id", |
|
| 838 |
+ ], |
|
| 839 |
+ "waagerecht": [ |
|
| 840 |
+ "type_id", |
|
| 841 |
+ "case_id", |
|
| 842 |
+ ], |
|
| 843 |
+ } |
|
| 844 |
+ ); |
|
| 845 |
+ let tabelle_ : {kopf : Array<string>; rumpf : Array<Array<string>>;} = {
|
|
| 846 |
+ "kopf": ( |
|
| 847 |
+ [""].concat( |
|
| 848 |
+ Object.keys(tabelle.meta.x) |
|
| 849 |
+ .map( |
|
| 850 |
+ (label) => ( |
|
| 851 |
+ objvals(tabelle.meta.x[label]).join("/")
|
|
| 852 |
+ ) |
|
| 853 |
+ ) |
|
| 854 |
+ ) |
|
| 855 |
+ ), |
|
| 856 |
+ "rumpf": tabelle.data.map( |
|
| 857 |
+ (satz) => ( |
|
| 858 |
+ Object.keys(satz) |
|
| 859 |
+ .map( |
|
| 860 |
+ (label) => {
|
|
| 861 |
+ if (label === "_") {
|
|
| 862 |
+ return objvals(tabelle.meta.y[satz[label]]).join("/")
|
|
| 863 |
+ } |
|
| 864 |
+ else {
|
|
| 865 |
+ let language_from : string = "flk"; |
|
| 866 |
+ let language_to : string = configuration["target"]; |
|
| 867 |
+ let source : {[language_id : string] : Array<string>} = {};
|
|
| 868 |
+ satz[label].forEach((eintrag) => {source[eintrag["language_id"]] = eintrag["words"];});
|
|
| 869 |
+ return format_correlation("type_word", language_from, language_to)(source);
|
|
| 870 |
+ } |
|
| 871 |
+ } |
|
| 872 |
+ ) |
|
| 873 |
+ ) |
|
| 874 |
+ ), |
|
| 875 |
+ }; |
|
| 876 |
+ let tabelle__ : string = htmltable( |
|
| 877 |
+ tabelle_.kopf, |
|
| 878 |
+ tabelle_.rumpf, |
|
| 879 |
+ ["datatable"], |
|
| 880 |
+ true |
|
| 881 |
+ ); |
|
| 882 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 883 |
+ return (style + tabelle__); |
|
| 884 |
+ } |
|
| 885 |
+ }, |
|
| 886 |
+ {
|
|
| 887 |
+ "name": "fsdraft-macro-correlatives", |
|
| 888 |
+ "funktion": (args) => (wert) => {
|
|
| 889 |
+ let tabelle : {meta : any; data : any;} = anordnen(
|
|
| 890 |
+ {
|
|
| 891 |
+ "daten": wert, |
|
| 892 |
+ "senkrecht": [ |
|
| 893 |
+ "domain_id", |
|
| 894 |
+ ], |
|
| 895 |
+ "waagerecht": [ |
|
| 896 |
+ "type_id", |
|
| 897 |
+ ], |
|
| 898 |
+ } |
|
| 899 |
+ ); |
|
| 900 |
+ let tabelle_ : {kopf : Array<string>; rumpf : Array<Array<string>>;} = {
|
|
| 901 |
+ "kopf": ( |
|
| 902 |
+ [""].concat( |
|
| 903 |
+ Object.keys(tabelle.meta.x) |
|
| 904 |
+ .map( |
|
| 905 |
+ (label) => ( |
|
| 906 |
+ objvals(tabelle.meta.x[label]).join("/")
|
|
| 907 |
+ ) |
|
| 908 |
+ ) |
|
| 909 |
+ ) |
|
| 910 |
+ ), |
|
| 911 |
+ "rumpf": tabelle.data.map( |
|
| 912 |
+ (satz) => ( |
|
| 913 |
+ Object.keys(satz) |
|
| 914 |
+ .map( |
|
| 915 |
+ (label) => {
|
|
| 916 |
+ if (label === "_") {
|
|
| 917 |
+ return objvals(tabelle.meta.y[satz[label]]).join("/")
|
|
| 918 |
+ } |
|
| 919 |
+ else {
|
|
| 920 |
+ let language_from : string = "flk"; |
|
| 921 |
+ let language_to : string = configuration["target"]; |
|
| 922 |
+ let source : {[language_id : string] : Array<string>} = {};
|
|
| 923 |
+ satz[label].forEach((eintrag) => {source[eintrag["language_id"]] = eintrag["words"];});
|
|
| 924 |
+ return format_correlation("type_word", language_from, language_to)(source);
|
|
| 925 |
+ } |
|
| 926 |
+ } |
|
| 927 |
+ ) |
|
| 928 |
+ ) |
|
| 929 |
+ ), |
|
| 930 |
+ }; |
|
| 931 |
+ let tabelle__ : string = htmltable( |
|
| 932 |
+ tabelle_.kopf, |
|
| 933 |
+ tabelle_.rumpf, |
|
| 934 |
+ ["datatable"], |
|
| 935 |
+ true |
|
| 936 |
+ ); |
|
| 937 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 938 |
+ return (style + tabelle__); |
|
| 939 |
+ } |
|
| 940 |
+ }, |
|
| 941 |
+ {
|
|
| 942 |
+ "name": "fsdraft-macro-adpositions", |
|
| 943 |
+ "funktion": (args) => (wert) => {
|
|
| 944 |
+ let tabelle : {meta : any; data : any;} = anordnen(
|
|
| 945 |
+ {
|
|
| 946 |
+ "daten": wert, |
|
| 947 |
+ "senkrecht": [ |
|
| 948 |
+ "situation_id", |
|
| 949 |
+ ], |
|
| 950 |
+ "waagerecht": [ |
|
| 951 |
+ "type_id", |
|
| 952 |
+ "reference_id", |
|
| 953 |
+ ], |
|
| 954 |
+ } |
|
| 955 |
+ ); |
|
| 956 |
+ let tabelle_ : {kopf : Array<string>; rumpf : Array<Array<string>>;} = {
|
|
| 957 |
+ "kopf": ( |
|
| 958 |
+ [""].concat( |
|
| 959 |
+ Object.keys(tabelle.meta.x) |
|
| 960 |
+ .map( |
|
| 961 |
+ (label) => ( |
|
| 962 |
+ objvals(tabelle.meta.x[label]).join("/")
|
|
| 963 |
+ ) |
|
| 964 |
+ ) |
|
| 965 |
+ ) |
|
| 966 |
+ ), |
|
| 967 |
+ "rumpf": tabelle.data.map( |
|
| 968 |
+ (satz) => ( |
|
| 969 |
+ Object.keys(satz) |
|
| 970 |
+ .map( |
|
| 971 |
+ (label) => {
|
|
| 972 |
+ if (label === "_") {
|
|
| 973 |
+ return objvals(tabelle.meta.y[satz[label]]).join("/")
|
|
| 974 |
+ } |
|
| 975 |
+ else {
|
|
| 976 |
+ let language_from : string = "flk"; |
|
| 977 |
+ let language_to : string = configuration["target"]; |
|
| 978 |
+ let source : {[language_id : string] : Array<string>} = {};
|
|
| 979 |
+ satz[label].forEach((eintrag) => {source[eintrag["language_id"]] = eintrag["words"];});
|
|
| 980 |
+ return format_correlation("type_word", language_from, language_to)(source);
|
|
| 981 |
+ } |
|
| 982 |
+ } |
|
| 983 |
+ ) |
|
| 984 |
+ ) |
|
| 985 |
+ ), |
|
| 986 |
+ }; |
|
| 987 |
+ let tabelle__ : string = htmltable( |
|
| 988 |
+ tabelle_.kopf, |
|
| 989 |
+ tabelle_.rumpf, |
|
| 990 |
+ ["datatable"], |
|
| 991 |
+ true |
|
| 992 |
+ ); |
|
| 993 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 994 |
+ return (style + tabelle__); |
|
| 995 |
+ } |
|
| 996 |
+ }, |
|
| 997 |
+ {
|
|
| 998 |
+ "name": "fsdraft-macro-declension", |
|
| 999 |
+ "funktion": (args) => (wert) => {
|
|
| 1000 |
+ let tabelle : {meta : any; data : any;} = anordnen(
|
|
| 1001 |
+ {
|
|
| 1002 |
+ "daten": wert, |
|
| 1003 |
+ "senkrecht": [ |
|
| 1004 |
+ "count_id", |
|
| 1005 |
+ "definiteness_id", |
|
| 1006 |
+ ], |
|
| 1007 |
+ "waagerecht": [ |
|
| 1008 |
+ "case_id", |
|
| 1009 |
+ ], |
|
| 1010 |
+ } |
|
| 1011 |
+ ); |
|
| 1012 |
+ let tabelle_ : {kopf : Array<string>; rumpf : Array<Array<string>>;} = {
|
|
| 1013 |
+ "kopf": ( |
|
| 1014 |
+ [""].concat( |
|
| 1015 |
+ Object.keys(tabelle.meta.x) |
|
| 1016 |
+ .map( |
|
| 1017 |
+ (label) => ( |
|
| 1018 |
+ objvals(tabelle.meta.x[label]).join("/")
|
|
| 1019 |
+ ) |
|
| 1020 |
+ ) |
|
| 1021 |
+ ) |
|
| 1022 |
+ ), |
|
| 1023 |
+ "rumpf": tabelle.data.map( |
|
| 1024 |
+ (satz) => ( |
|
| 1025 |
+ Object.keys(satz) |
|
| 1026 |
+ .map( |
|
| 1027 |
+ (label) => {
|
|
| 1028 |
+ if (label === "_") {
|
|
| 1029 |
+ return objvals(tabelle.meta.y[satz[label]]).join("/")
|
|
| 1030 |
+ } |
|
| 1031 |
+ else {
|
|
| 1032 |
+ let language_from : string = "flk"; |
|
| 1033 |
+ let language_to : string = configuration["target"]; |
|
| 1034 |
+ let source : {[language_id : string] : Array<string>} = {};
|
|
| 1035 |
+ satz[label].forEach((eintrag) => {source[eintrag["language_id"]] = eintrag["words"];});
|
|
| 1036 |
+ return format_correlation("type_word", language_from, language_to)(source);
|
|
| 1037 |
+ } |
|
| 1038 |
+ } |
|
| 1039 |
+ ) |
|
| 1040 |
+ ) |
|
| 1041 |
+ ), |
|
| 1042 |
+ }; |
|
| 1043 |
+ let tabelle__ : string = htmltable( |
|
| 1044 |
+ tabelle_.kopf, |
|
| 1045 |
+ tabelle_.rumpf, |
|
| 1046 |
+ ["datatable"], |
|
| 646 | 1047 |
true |
| 647 | 1048 |
); |
| 648 |
- let style = xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 1049 |
+ let style : string = ""; // xmlwrap("style", "th,td {font-family: monospace; font-size: 0.875em;}");
|
|
| 649 | 1050 |
return (style + tabelle__); |
| 650 | 1051 |
} |
| 651 | 1052 |
}, |
| 652 | 1053 |