glaemscribe 1.1.14 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/bin/glaemscribe +21 -17
- data/glaemresources/charsets/cirth_ds.cst +540 -0
- data/glaemresources/charsets/eldamar.cst +210 -0
- data/glaemresources/charsets/sarati_eldamar.cst +256 -0
- data/glaemresources/charsets/tengwar_ds_annatar.cst +2868 -0
- data/glaemresources/charsets/tengwar_ds_eldamar.cst +2729 -0
- data/glaemresources/charsets/tengwar_ds_elfica.cst +2742 -0
- data/glaemresources/charsets/tengwar_ds_parmaite.cst +2726 -0
- data/glaemresources/charsets/tengwar_ds_sindarin.cst +2722 -0
- data/glaemresources/charsets/tengwar_freemono.cst +217 -0
- data/glaemresources/charsets/tengwar_guni_annatar.cst +2948 -0
- data/glaemresources/charsets/tengwar_guni_eldamar.cst +2809 -0
- data/glaemresources/charsets/tengwar_guni_elfica.cst +2809 -0
- data/glaemresources/charsets/tengwar_guni_parmaite.cst +2813 -0
- data/glaemresources/charsets/tengwar_guni_sindarin.cst +2808 -0
- data/glaemresources/charsets/tengwar_telcontar.cst +225 -0
- data/glaemresources/charsets/unicode_gothic.cst +64 -0
- data/glaemresources/charsets/unicode_runes.cst +121 -0
- data/glaemresources/modes/{adunaic.glaem → adunaic-tengwar-glaemscrafu.glaem} +14 -2
- data/glaemresources/modes/{blackspeech.glaem → blackspeech-tengwar-general_use.glaem} +13 -3
- data/glaemresources/modes/english-cirth-espeak.glaem +687 -0
- data/glaemresources/modes/english-tengwar-espeak.glaem +814 -0
- data/glaemresources/modes/japanese-tengwar.glaem +776 -0
- data/glaemresources/modes/{khuzdul.glaem → khuzdul-cirth-moria.glaem} +4 -1
- data/glaemresources/modes/lang_belta-tengwar-dadef.glaem +248 -0
- data/glaemresources/modes/{futhorc.glaem → old_english-futhorc.glaem} +0 -0
- data/glaemresources/modes/{mercian.glaem → old_english-tengwar-mercian.glaem} +22 -12
- data/glaemresources/modes/{westsaxon.glaem → old_english-tengwar-westsaxon.glaem} +20 -11
- data/glaemresources/modes/{futhark-runicus.glaem → old_norse-futhark-runicus.glaem} +0 -0
- data/glaemresources/modes/{futhark-younger.glaem → old_norse-futhark-younger.glaem} +0 -0
- data/glaemresources/modes/{quenya.glaem → quenya-tengwar-classical.glaem} +32 -50
- data/glaemresources/modes/raw-cirth.glaem +154 -0
- data/glaemresources/modes/raw-tengwar.glaem +46 -23
- data/glaemresources/modes/{rlyehian.glaem → rlyehian-tengwar.glaem} +14 -3
- data/glaemresources/modes/{sindarin-daeron.glaem → sindarin-cirth-daeron.glaem} +55 -14
- data/glaemresources/modes/{sindarin-beleriand.glaem → sindarin-tengwar-beleriand.glaem} +154 -28
- data/glaemresources/modes/{sindarin.glaem → sindarin-tengwar-general_use.glaem} +86 -25
- data/glaemresources/modes/{telerin.glaem → telerin-tengwar-glaemscrafu.glaem} +16 -6
- data/glaemresources/modes/{westron.glaem → westron-tengwar-glaemscrafu.glaem} +18 -8
- data/lib/api/charset.rb +67 -7
- data/lib/api/charset_parser.rb +14 -1
- data/lib/api/constants.rb +3 -4
- data/lib/api/fragment.rb +26 -5
- data/lib/api/if_tree.rb +70 -8
- data/lib/api/macro.rb +40 -0
- data/lib/api/mode.rb +66 -19
- data/lib/api/mode_parser.rb +117 -14
- data/lib/api/object_additions.rb +23 -1
- data/lib/api/option.rb +17 -2
- data/lib/api/post_processor/outspace.rb +44 -0
- data/lib/api/post_processor/resolve_virtuals.rb +25 -9
- data/lib/api/resource_manager.rb +1 -0
- data/lib/api/rule_group.rb +170 -26
- data/lib/api/sheaf_chain_iterator.rb +1 -1
- data/lib/api/transcription_pre_post_processor.rb +8 -5
- data/lib/api/transcription_processor.rb +15 -12
- data/lib/api/tts.rb +51 -0
- data/lib/glaemscribe.rb +36 -31
- data/lib_espeak/espeakng.for.glaemscribe.nowasm.sync.js +35 -0
- data/lib_espeak/glaemscribe_tts.js +505 -0
- metadata +76 -24
@@ -33,12 +33,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
33
33
|
\entry "0.1.1" "Added support for inlined raw tengwar"
|
34
34
|
\entry "0.1.2" "Fine tuning handling of the aw diphthong (Thanks to Dmitry Kourmyshov!)"
|
35
35
|
\entry "0.1.3" "Merging au/aw"
|
36
|
+
\entry "0.1.4" "Added support for new unicode charsets"
|
37
|
+
\entry "0.1.5" "Added support for the Tengwar Telcontar font"
|
38
|
+
\entry "0.1.6" "Corrected use of silme_nuquerna in ns / y, added a few exotic combinations. Reworked median point behaviour, and ng."
|
39
|
+
\entry "0.1.7" "Added variants with dot for short vowels, added gasdil."
|
36
40
|
\end
|
37
41
|
|
38
42
|
\language "Sindarin"
|
39
43
|
\writing "Tengwar"
|
40
44
|
\mode "Sindarin Tengwar - Beleriand"
|
41
|
-
\version "0.1.
|
45
|
+
\version "0.1.6"
|
42
46
|
\authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
|
43
47
|
|
44
48
|
\world arda
|
@@ -51,10 +55,64 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
51
55
|
\charset tengwar_ds_eldamar false
|
52
56
|
\charset tengwar_ds_annatar false
|
53
57
|
\charset tengwar_ds_elfica false
|
58
|
+
|
59
|
+
\charset tengwar_guni_sindarin false
|
60
|
+
\charset tengwar_guni_parmaite false
|
61
|
+
\charset tengwar_guni_eldamar false
|
62
|
+
\charset tengwar_guni_annatar false
|
63
|
+
\charset tengwar_guni_elfica false
|
64
|
+
|
54
65
|
\charset tengwar_freemono false
|
66
|
+
\charset tengwar_telcontar false
|
55
67
|
|
56
68
|
\beg options
|
57
69
|
|
70
|
+
\beg option short_a SHORT_A_WITHOUT_DOT
|
71
|
+
\radio
|
72
|
+
\value SHORT_A_WITHOUT_DOT 0
|
73
|
+
\value SHORT_A_WITH_DOT 1
|
74
|
+
\end
|
75
|
+
|
76
|
+
\beg option short_e SHORT_E_WITHOUT_DOT
|
77
|
+
\radio
|
78
|
+
\value SHORT_E_WITHOUT_DOT 0
|
79
|
+
\value SHORT_E_WITH_DOT 1
|
80
|
+
\end
|
81
|
+
|
82
|
+
\beg option short_i SHORT_I_WITHOUT_DOT
|
83
|
+
\radio
|
84
|
+
\value SHORT_I_WITHOUT_DOT 0
|
85
|
+
\value SHORT_I_WITH_DOT 1
|
86
|
+
\end
|
87
|
+
|
88
|
+
\beg option short_o SHORT_O_WITHOUT_DOT
|
89
|
+
\radio
|
90
|
+
\value SHORT_O_WITHOUT_DOT 0
|
91
|
+
\value SHORT_O_WITH_DOT 1
|
92
|
+
\end
|
93
|
+
|
94
|
+
\beg option short_u SHORT_U_WITHOUT_DOT
|
95
|
+
\radio
|
96
|
+
\value SHORT_U_WITHOUT_DOT 0
|
97
|
+
\value SHORT_U_WITH_DOT 1
|
98
|
+
\end
|
99
|
+
|
100
|
+
\beg option short_y SHORT_Y_WITHOUT_DOT
|
101
|
+
\radio
|
102
|
+
\value SHORT_Y_WITHOUT_DOT 0
|
103
|
+
\value SHORT_Y_WITH_DOT 1
|
104
|
+
\end
|
105
|
+
|
106
|
+
\beg option apostrophe APOSTROPHE_IGNORED
|
107
|
+
\value APOSTROPHE_IGNORED 0
|
108
|
+
\value APOSTROPHE_GASDIL 1
|
109
|
+
\end
|
110
|
+
|
111
|
+
\beg option hyphen HYPHEN_WORD_BREAKER
|
112
|
+
\value HYPHEN_WORD_BREAKER 0
|
113
|
+
\value HYPHEN_WORD_JOINER 1
|
114
|
+
\end
|
115
|
+
|
58
116
|
\beg option beleriand_aw_diphthong AW_VILYA_AT_ENDINGS_CURL_ELSE
|
59
117
|
\value AW_VILYA_AT_ENDINGS_CURL_ELSE 0
|
60
118
|
\value AW_ALWAYS_VILYA 1
|
@@ -79,6 +137,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
79
137
|
\** Work exclusively downcase **\
|
80
138
|
\downcase
|
81
139
|
|
140
|
+
\if "hyphen == HYPHEN_WORD_JOINER"
|
141
|
+
\** Replace hyphen by median point **\
|
142
|
+
\substitute "-" "·"
|
143
|
+
\else
|
144
|
+
\** Replace hyphen by glaemscribe's word breaker **\
|
145
|
+
\substitute "-" "|"
|
146
|
+
\endif
|
147
|
+
|
148
|
+
\** Add keyboard friendly word joiner **\
|
149
|
+
\substitute "*" "·"
|
150
|
+
|
82
151
|
\** Simplify trema vowels **\
|
83
152
|
\substitute ä a
|
84
153
|
\substitute ë e
|
@@ -105,6 +174,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
105
174
|
since it seems more logical that aw would behave as a semi vowel **\
|
106
175
|
\rxsubstitute "aw([aeouyáāâéēêíīîóōôúūûýȳŷ])" "a|w\\1"
|
107
176
|
|
177
|
+
\** Special case for ng : before the vast majority of consonnants, treat as ŋ **\
|
178
|
+
\** Don't include r / l / lh / w **\
|
179
|
+
\rxsubstitute "ng([tpckbdfðvnmhs])" "ŋ\\1"
|
180
|
+
|
181
|
+
\** Avoid mutated ng of being treated as strong middle word n|g (ex : i·ngelaidh [iŋɛlaið] ) **\
|
182
|
+
\substitute "·ng" "·ŋ"
|
183
|
+
\** But avoid losing the strong g in nasal mutation of g (ex : in·Gelydh [iŋgɛlyð]] ) **\
|
184
|
+
\substitute "n·g" "·ŋg"
|
185
|
+
\** Use median dot as word joiner **\
|
186
|
+
\substitute "·" ""
|
187
|
+
|
108
188
|
\** Preprocess numbers **\
|
109
189
|
\elvish_numbers "\\eval numbers_base" "\\eval reverse_numbers"
|
110
190
|
\end
|
@@ -143,34 +223,62 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
143
223
|
{OE} === {O}{E}
|
144
224
|
|
145
225
|
{K} === (c,k)
|
146
|
-
|
147
|
-
\** RULES **\
|
148
|
-
{A} --> OSSE
|
149
|
-
{E} --> YANTA
|
150
|
-
{I} --> TELCO
|
151
|
-
{O} --> ANNA
|
152
|
-
{U} --> URE
|
153
226
|
|
154
|
-
|
227
|
+
\if "short_a == SHORT_A_WITH_DOT"
|
228
|
+
{A} --> OSSE I_TEHTA
|
229
|
+
\else
|
230
|
+
{A} --> OSSE
|
231
|
+
\endif
|
232
|
+
|
233
|
+
\if "short_e == SHORT_E_WITH_DOT"
|
234
|
+
{E} --> YANTA I_TEHTA
|
235
|
+
\else
|
236
|
+
{E} --> YANTA
|
237
|
+
\endif
|
238
|
+
|
239
|
+
\if "short_i == SHORT_I_WITH_DOT"
|
240
|
+
{I} --> TELCO I_TEHTA
|
241
|
+
\else
|
242
|
+
{I} --> TELCO
|
243
|
+
\endif
|
244
|
+
|
245
|
+
\if "short_o == SHORT_O_WITH_DOT"
|
246
|
+
{O} --> ANNA I_TEHTA
|
247
|
+
\else
|
248
|
+
{O} --> ANNA
|
249
|
+
\endif
|
250
|
+
|
251
|
+
\if "short_u == SHORT_U_WITH_DOT"
|
252
|
+
{U} --> URE I_TEHTA
|
253
|
+
\else
|
254
|
+
{U} --> URE
|
255
|
+
\endif
|
256
|
+
|
257
|
+
\if "short_y == SHORT_Y_WITH_DOT"
|
258
|
+
{Y} --> SILME_NUQUERNA I_TEHTA
|
259
|
+
\else
|
260
|
+
{Y} --> SILME_NUQUERNA
|
261
|
+
\endif
|
155
262
|
|
156
263
|
{AA} --> OSSE E_TEHTA
|
157
264
|
{EE} --> YANTA E_TEHTA
|
158
265
|
{II} --> TELCO E_TEHTA
|
159
266
|
{OO} --> ANNA E_TEHTA
|
160
267
|
{UU} --> URE E_TEHTA
|
161
|
-
{YY} -->
|
268
|
+
{YY} --> SILME_NUQUERNA E_TEHTA
|
162
269
|
|
163
|
-
|
270
|
+
\** Should chose between OSSE YANTA and OSSE THSUP_TICK_INV. Old tengscribe had second one, amanye tenceli has first one. **\
|
271
|
+
{AE} --> OSSE YANTA
|
164
272
|
{AI} --> OSSE Y_TEHTA
|
165
|
-
{AU} --> OSSE
|
273
|
+
{AU} --> OSSE WA_TEHTA
|
166
274
|
|
167
275
|
\if "beleriand_aw_diphthong == AW_VILYA_AT_ENDINGS_CURL_ELSE"
|
168
|
-
({AU},{AW}) --> OSSE
|
276
|
+
({AU},{AW}) --> OSSE WA_TEHTA
|
169
277
|
({AU},{AW})_ --> OSSE VILYA
|
170
278
|
\elsif "beleriand_aw_diphthong == AW_ALWAYS_VILYA"
|
171
279
|
({AU},{AW}) --> OSSE VILYA
|
172
280
|
\elsif "beleriand_aw_diphthong == AW_ALWAYS_CURL"
|
173
|
-
({AU},{AW}) --> OSSE
|
281
|
+
({AU},{AW}) --> OSSE WA_TEHTA
|
174
282
|
\endif
|
175
283
|
|
176
284
|
{EI} --> YANTA Y_TEHTA
|
@@ -197,9 +305,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
197
305
|
|
198
306
|
[{L2}] --> [{_L2_}]
|
199
307
|
|
200
|
-
mb
|
201
|
-
nd
|
202
|
-
|
308
|
+
mb --> UMBAR {NASAL}
|
309
|
+
nd --> ANDO {NASAL}
|
310
|
+
|
311
|
+
\** /ŋg/ : this is ng in middle of words + might be found at word start on mutation.
|
312
|
+
\** See also final/initial ng_ / _ng below **\
|
313
|
+
(ng,ngg,ŋg,ñg) --> ANGA {NASAL}
|
314
|
+
|
203
315
|
\** ======== **\
|
204
316
|
\** 3RD LINE **\
|
205
317
|
\** ======== **\
|
@@ -224,7 +336,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
224
336
|
\** ======== **\
|
225
337
|
\** 5TH LINE **\
|
226
338
|
\** ======== **\
|
227
|
-
{L5} === nn * mm *
|
339
|
+
{L5} === nn * mm * (ng_,_ng,ŋ,ñ)
|
228
340
|
{_L5_} === NUMEN * MALTA * NOLDO
|
229
341
|
|
230
342
|
[{L5}] --> [{_L5_}]
|
@@ -253,7 +365,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
253
365
|
|
254
366
|
[{S_LINE}] --> [{_S_LINE_}]
|
255
367
|
|
256
|
-
|
368
|
+
\** REMOVING NEXT ONE WHICH CLASHES WITH Y **\
|
369
|
+
\** ns --> SILME_NUQUERNA {NASAL} **\
|
257
370
|
|
258
371
|
\** ======== **\
|
259
372
|
\** OTHERS **\
|
@@ -266,12 +379,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
266
379
|
hw --> HWESTA_SINDARINWA
|
267
380
|
|
268
381
|
\** labialized consonants **\
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
382
|
+
bw --> UMBAR WA_TEHTA \** Gnomish **\
|
383
|
+
dw --> ANDO WA_TEHTA
|
384
|
+
gw --> ANGA WA_TEHTA
|
385
|
+
lw --> LAMBE WA_TEHTA
|
386
|
+
nw --> ORE WA_TEHTA
|
387
|
+
rw --> ROMEN WA_TEHTA
|
388
|
+
(ng,ngg,ŋg,ñg)w --> ANGA {NASAL} WA_TEHTA
|
389
|
+
(_ng,ng_,ŋ,ñ)w --> NOLDO WA_TEHTA
|
390
|
+
|
391
|
+
\if "apostrophe == APOSTROPHE_IGNORED"
|
392
|
+
' --> {NULL}
|
393
|
+
’ --> {NULL}
|
394
|
+
\else
|
395
|
+
\** use gasdil **\
|
396
|
+
' --> HALLA
|
397
|
+
’ --> HALLA
|
398
|
+
\endif
|
399
|
+
|
400
|
+
\** Forced gasdil **\
|
401
|
+
° --> HALLA
|
275
402
|
\end
|
276
403
|
|
277
404
|
\beg rules punctuation
|
@@ -297,8 +424,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
297
424
|
|
298
425
|
\** Apostrophe **\
|
299
426
|
|
300
|
-
|
301
|
-
’ --> {NULL}
|
427
|
+
|
302
428
|
|
303
429
|
\** NBSP **\
|
304
430
|
{NBSP} --> NBSP
|
@@ -320,7 +446,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
320
446
|
> --> PUNCT_PAREN_R
|
321
447
|
|
322
448
|
\** Not universal between fonts ... **\
|
323
|
-
$ -->
|
449
|
+
$ --> ELVISH_PAREN
|
324
450
|
≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
|
325
451
|
≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
|
326
452
|
\end
|
@@ -35,12 +35,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
35
|
\entry "0.1.0" "Added support for the Tengwar Elfica font"
|
36
36
|
\entry "0.1.1" "Added support for inlined raw tengwar"
|
37
37
|
\entry "0.1.2" "Added support for non-breaking spaces"
|
38
|
+
\entry "0.1.3" "Added support for new unicode charsets"
|
39
|
+
\entry "0.1.4" "Added support for the Tengwar Telcontar font"
|
40
|
+
\entry "0.1.5" "Added a few labial exotic combinations. Reworked median point behaviour, and ng."
|
41
|
+
\entry "0.1.6" "Added gasdil handling."
|
38
42
|
\end
|
39
43
|
|
40
44
|
\language "Sindarin"
|
41
45
|
\writing "Tengwar"
|
42
46
|
\mode "Sindarin Tengwar - General Use"
|
43
|
-
\version "0.1.
|
47
|
+
\version "0.1.6"
|
44
48
|
\authors "J.R.R. Tolkien, impl. Talagan (Benjamin Babut)"
|
45
49
|
|
46
50
|
\world arda
|
@@ -51,7 +55,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
51
55
|
\charset tengwar_ds_eldamar false
|
52
56
|
\charset tengwar_ds_annatar false
|
53
57
|
\charset tengwar_ds_elfica false
|
58
|
+
|
59
|
+
\charset tengwar_guni_sindarin false
|
60
|
+
\charset tengwar_guni_parmaite false
|
61
|
+
\charset tengwar_guni_eldamar false
|
62
|
+
\charset tengwar_guni_annatar false
|
63
|
+
\charset tengwar_guni_elfica false
|
64
|
+
|
54
65
|
\charset tengwar_freemono false
|
66
|
+
\charset tengwar_telcontar false
|
55
67
|
|
56
68
|
\raw_mode "raw-tengwar"
|
57
69
|
|
@@ -62,6 +74,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
62
74
|
\value U_UP_O_DOWN 2
|
63
75
|
\end
|
64
76
|
|
77
|
+
\beg option apostrophe APOSTROPHE_IGNORED
|
78
|
+
\value APOSTROPHE_IGNORED 0
|
79
|
+
\value APOSTROPHE_GASDIL 1
|
80
|
+
\end
|
81
|
+
|
82
|
+
\beg option hyphen HYPHEN_WORD_BREAKER
|
83
|
+
\value HYPHEN_WORD_BREAKER 0
|
84
|
+
\value HYPHEN_WORD_JOINER 1
|
85
|
+
\end
|
86
|
+
|
65
87
|
\beg option consonant_modification_style CONSONANT_MODIFICATION_STYLE_BAR
|
66
88
|
\value CONSONANT_MODIFICATION_STYLE_WAVE 0
|
67
89
|
\value CONSONANT_MODIFICATION_STYLE_BAR 1
|
@@ -85,6 +107,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
85
107
|
\** Work exclusively downcase **\
|
86
108
|
\downcase
|
87
109
|
|
110
|
+
\if "hyphen == HYPHEN_WORD_JOINER"
|
111
|
+
\** Replace hyphen by median point **\
|
112
|
+
\substitute "-" "·"
|
113
|
+
\else
|
114
|
+
\** Replace hyphen by glaemscribe's word breaker **\
|
115
|
+
\substitute "-" "|"
|
116
|
+
\endif
|
117
|
+
|
118
|
+
\** Add keyboard friendly word joiner **\
|
119
|
+
\substitute "*" "·"
|
120
|
+
|
88
121
|
\** Simplify trema vowels **\
|
89
122
|
\substitute ä a
|
90
123
|
\substitute ë e
|
@@ -107,6 +140,17 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
107
140
|
\** Special case of starting 'i' before vowels, replace i by j **\
|
108
141
|
\rxsubstitute "\\bi([aeouyáāâéēêíīîóōôúūûýȳŷ])" "j\\1"
|
109
142
|
|
143
|
+
\** Special case for ng : before the vast majority of consonnants, treat as ŋ **\
|
144
|
+
\** Don't include r / l / lh / w **\
|
145
|
+
\rxsubstitute "ng([tpckbdfðvnmhs])" "ŋ\\1"
|
146
|
+
|
147
|
+
\** Avoid mutated ng of being treated as strong middle word n|g (ex : i·ngelaidh [iŋɛlaið] ) **\
|
148
|
+
\substitute "·ng" "·ŋ"
|
149
|
+
\** But avoid losing the strong g in nasal mutation of g (ex : in·Gelydh [iŋgɛlyð]] ) **\
|
150
|
+
\substitute "n·g" "·ŋg"
|
151
|
+
\** Use median dot as word joiner **\
|
152
|
+
\substitute "·" ""
|
153
|
+
|
110
154
|
\** Preprocess numbers **\
|
111
155
|
\elvish_numbers "\\eval numbers_base" "\\eval reverse_numbers"
|
112
156
|
\end
|
@@ -189,8 +233,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
189
233
|
{V_D_WN}n{K} --> CALMA {NASAL} {_V_D_WN_}
|
190
234
|
|
191
235
|
\** 2ND LINE **\
|
192
|
-
|
193
|
-
|
236
|
+
\**
|
237
|
+
/ŋg/ : this is ng in middle of words + might be found at word start.
|
238
|
+
See also final/initial ng_ / _ng below
|
239
|
+
**\
|
240
|
+
{L2} === d * b * g * (ng,ngg,ŋg,ñg)
|
241
|
+
{_L2_} === ANDO * UMBAR * UNGWE * UNGWE {NASAL}
|
194
242
|
|
195
243
|
{V_D_WN}[{L2}] --> 2,1 --> [{_L2_}]{_V_D_WN_}
|
196
244
|
|
@@ -210,13 +258,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
210
258
|
|
211
259
|
\** 4TH LINE **\
|
212
260
|
{L4} === (đ,ð,ðh,dh) * (v,bh,f_) \** Some noldorin variants here ... **\
|
213
|
-
{_L4_}
|
261
|
+
{_L4_} === ANTO * AMPA
|
214
262
|
|
215
263
|
{V_D_WN}[{L4}] --> 2,1 --> [{_L4_}]{_V_D_WN_}
|
216
264
|
|
217
265
|
\** 5TH LINE **\
|
218
|
-
{L5} === n
|
219
|
-
{_L5_} === NUMEN *
|
266
|
+
{L5} === n * m * (_ng,ng_,ŋ,ñ) * _mh \** weak ng at initial and final **\
|
267
|
+
{_L5_} === NUMEN * MALTA * NWALME * MALTA_W_HOOK
|
220
268
|
|
221
269
|
{V_D_WN}[{L5}] --> 2,1 --> [{_L5_}]{_V_D_WN_}
|
222
270
|
|
@@ -226,7 +274,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
226
274
|
\** 6TH LINE **\
|
227
275
|
|
228
276
|
\** 7TH LINE **\
|
229
|
-
{L7} === r_ * r * l * ll
|
277
|
+
{L7} === r_ * r * l * ll * w
|
230
278
|
{_L7_} === ORE * ROMEN * LAMBE * LAMBE {GEMINATE} * VALA
|
231
279
|
|
232
280
|
{V_D_WN}[{L7}] --> 2,1 --> [{_L7_}]{_V_D_WN_}
|
@@ -252,29 +300,47 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
252
300
|
|
253
301
|
\**
|
254
302
|
Ok here come the labialized consonants which are really tricky
|
255
|
-
The fonts generally do not handle well the
|
303
|
+
The fonts generally do not handle well the wa-tehta curl + tehtar, this should be one more argument for
|
256
304
|
adopting open type anchors with which we can stack diacritics (see the sarati modes).
|
257
305
|
For here, we cheat. Either we don't have any tehta on the tengwa, and it's easy.
|
258
306
|
Or, we put the two signs in their small versions, side by side.
|
259
307
|
We give an option not to use that trick, if the option is not set, we simply do not use
|
260
|
-
the
|
308
|
+
the wa-tehta curl at all when there's a tehta on the tengwa.
|
261
309
|
**\
|
262
310
|
|
263
311
|
\if "labialized_consonants_u_curl == LABIALIZED_U_CURL_NO_TEHTAR || labialized_consonants_u_curl == LABIALIZED_U_CURL_ALWAYS"
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
312
|
+
bw --> UMBAR WA_TEHTA
|
313
|
+
dw --> ANDO WA_TEHTA
|
314
|
+
gw --> UNGWE WA_TEHTA
|
315
|
+
lw --> LAMBE WA_TEHTA
|
316
|
+
nw --> NUMEN WA_TEHTA
|
317
|
+
rw --> ROMEN WA_TEHTA
|
318
|
+
(ng,ngg,ŋg,ñg)w --> UNGWE {NASAL} WA_TEHTA
|
319
|
+
(_ng,ng_,ŋ,ñ)w --> NWALME WA_TEHTA
|
269
320
|
\endif
|
270
321
|
|
271
322
|
\if "labialized_consonants_u_curl == LABIALIZED_U_CURL_ALWAYS"
|
272
|
-
{V_D}
|
273
|
-
{V_D}
|
274
|
-
{V_D}
|
275
|
-
{V_D}
|
276
|
-
{V_D}
|
323
|
+
{V_D}bw --> UMBAR WA_TEHTA {_V_D_}
|
324
|
+
{V_D}dw --> ANDO WA_TEHTA {_V_D_}
|
325
|
+
{V_D}gw --> UNGWE WA_TEHTA {_V_D_}
|
326
|
+
{V_D}lw --> LAMBE WA_TEHTA {_V_D_}
|
327
|
+
{V_D}nw --> NUMEN WA_TEHTA {_V_D_}
|
328
|
+
{V_D}rw --> ROMEN WA_TEHTA {_V_D_}
|
329
|
+
{V_D}(ng,ngg,ŋg,ñg)w --> UNGWE {NASAL} WA_TEHTA {_V_D_}
|
330
|
+
{V_D}(_ng,ng_,ŋ,ñ)w --> NWALME WA_TEHTA {_V_D_}
|
277
331
|
\endif
|
332
|
+
|
333
|
+
\if "apostrophe == APOSTROPHE_IGNORED"
|
334
|
+
' --> {NULL}
|
335
|
+
’ --> {NULL}
|
336
|
+
\else
|
337
|
+
\** use gasdil **\
|
338
|
+
' --> HALLA
|
339
|
+
’ --> HALLA
|
340
|
+
\endif
|
341
|
+
|
342
|
+
\** Forced gasdil **\
|
343
|
+
° --> HALLA
|
278
344
|
\end
|
279
345
|
|
280
346
|
\beg rules punctuation
|
@@ -297,11 +363,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
297
363
|
- --> {NULL}
|
298
364
|
– --> PUNCT_TILD
|
299
365
|
— --> PUNCT_TILD
|
300
|
-
|
301
|
-
\** Apostrophe **\
|
302
|
-
|
303
|
-
' --> {NULL}
|
304
|
-
’ --> {NULL}
|
305
366
|
|
306
367
|
\** NBSP **\
|
307
368
|
{NBSP} --> NBSP
|
@@ -323,7 +384,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
323
384
|
> --> PUNCT_PAREN_R
|
324
385
|
|
325
386
|
\** Not universal between fonts ... **\
|
326
|
-
$ -->
|
387
|
+
$ --> ELVISH_PAREN
|
327
388
|
≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
|
328
389
|
≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
|
329
390
|
\end
|
@@ -34,12 +34,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
34
34
|
\entry "0.1.1" "Added support for inlined raw tengwar"
|
35
35
|
\entry "0.1.2" "Added support for non-breaking spaces"
|
36
36
|
\entry "0.1.3" "Correcting visibility options to conform to new glaeml args strict syntax"
|
37
|
+
\entry "0.1.4" "Added support for new unicode charsets"
|
38
|
+
\entry "0.1.5" "Added support for the Tengwar Telcontar font"
|
37
39
|
\end
|
38
40
|
|
39
41
|
\language "Telerin"
|
40
42
|
\writing "Tengwar"
|
41
43
|
\mode "Telerin Tengwar - G*"
|
42
|
-
\version "0.1.
|
44
|
+
\version "0.1.5"
|
43
45
|
\authors "Talagan (Benjamin Babut), based on J.R.R Tolkien"
|
44
46
|
|
45
47
|
\world arda
|
@@ -50,7 +52,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
50
52
|
\charset tengwar_ds_eldamar false
|
51
53
|
\charset tengwar_ds_annatar false
|
52
54
|
\charset tengwar_ds_elfica false
|
55
|
+
|
56
|
+
\charset tengwar_guni_sindarin false
|
57
|
+
\charset tengwar_guni_parmaite false
|
58
|
+
\charset tengwar_guni_eldamar false
|
59
|
+
\charset tengwar_guni_annatar false
|
60
|
+
\charset tengwar_guni_elfica false
|
61
|
+
|
53
62
|
\charset tengwar_freemono false
|
63
|
+
\charset tengwar_telcontar false
|
54
64
|
|
55
65
|
\raw_mode "raw-tengwar"
|
56
66
|
|
@@ -237,10 +247,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
237
247
|
[ {L1} ] {V_D_WN} --> [ {_L1_} ] {_V_D_WN_}
|
238
248
|
[ {L1_GEMS} ] {V_D_WN} --> [ {_L1_GEMS_} ] {_V_D_WN_}
|
239
249
|
|
240
|
-
ts{V_D_WN} --> TINCO
|
241
|
-
ps{V_D_WN} --> PARMA
|
242
|
-
{K}s{V_D_WN} --> CALMA
|
243
|
-
x{V_D_WN} --> CALMA
|
250
|
+
ts{V_D_WN} --> TINCO SARINCE {_V_D_WN_}
|
251
|
+
ps{V_D_WN} --> PARMA SARINCE {_V_D_WN_}
|
252
|
+
{K}s{V_D_WN} --> CALMA SARINCE {_V_D_WN_}
|
253
|
+
x{V_D_WN} --> CALMA SARINCE {_V_D_WN_} \** render ks for x **\
|
244
254
|
|
245
255
|
\** ===================== **\
|
246
256
|
\** 2ND LINE RULES **\
|
@@ -369,7 +379,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
369
379
|
> --> PUNCT_PAREN_R
|
370
380
|
|
371
381
|
\** Not universal between fonts ... **\
|
372
|
-
$ -->
|
382
|
+
$ --> ELVISH_PAREN
|
373
383
|
≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
|
374
384
|
≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
|
375
385
|
|
@@ -30,13 +30,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
30
30
|
\entry "0.1.0" "Added support for the Tengwar Elfica font"
|
31
31
|
\entry "0.1.1" "Added support for inlined raw tengwar"
|
32
32
|
\entry "0.1.2" "Added support for non-breaking spaces"
|
33
|
+
\entry "0.1.3" "Added support for new unicode charsets"
|
34
|
+
\entry "0.1.4" "Added support for the Tengwar Telcontar font"
|
33
35
|
\end
|
34
36
|
|
35
37
|
\** Westron mode for glaemscribe (MAY BE INCOMPLETE) **\
|
36
38
|
\language Westron
|
37
39
|
\writing Tengwar
|
38
40
|
\mode "Westron Tengwar - G*"
|
39
|
-
\version "0.1.
|
41
|
+
\version "0.1.4"
|
40
42
|
\authors "Talagan (Benjamin Babut), based on J.R.R. Tolkien"
|
41
43
|
|
42
44
|
\world arda
|
@@ -49,7 +51,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
49
51
|
\charset tengwar_ds_eldamar false
|
50
52
|
\charset tengwar_ds_annatar false
|
51
53
|
\charset tengwar_ds_elfica false
|
54
|
+
|
55
|
+
\charset tengwar_guni_sindarin false
|
56
|
+
\charset tengwar_guni_parmaite false
|
57
|
+
\charset tengwar_guni_eldamar false
|
58
|
+
\charset tengwar_guni_annatar false
|
59
|
+
\charset tengwar_guni_elfica false
|
60
|
+
|
52
61
|
\charset tengwar_freemono false
|
62
|
+
\charset tengwar_telcontar false
|
53
63
|
|
54
64
|
\beg options
|
55
65
|
|
@@ -293,13 +303,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
293
303
|
nz{V_D} --> ESSE_NUQUERNA {NASAL} {_V_D_}
|
294
304
|
nz --> ESSE_NUQUERNA {NASAL}
|
295
305
|
|
296
|
-
ts --> TINCO
|
297
|
-
ps --> PARMA
|
298
|
-
(ks,cs,x) --> QUESSE
|
306
|
+
ts --> TINCO SARINCE
|
307
|
+
ps --> PARMA SARINCE
|
308
|
+
(ks,cs,x) --> QUESSE SARINCE
|
299
309
|
|
300
|
-
ts{V_D} --> TINCO
|
301
|
-
ps{V_D} --> PARMA
|
302
|
-
(ks,cs,x){V_D} --> QUESSE
|
310
|
+
ts{V_D} --> TINCO SARINCE {_V_D_}
|
311
|
+
ps{V_D} --> PARMA SARINCE {_V_D_}
|
312
|
+
(ks,cs,x){V_D} --> QUESSE SARINCE {_V_D_}
|
303
313
|
|
304
314
|
h{V_D} --> HYARMEN {_V_D_}
|
305
315
|
h --> HYARMEN
|
@@ -366,7 +376,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
366
376
|
> --> PUNCT_PAREN_R
|
367
377
|
|
368
378
|
\** Not universal between fonts ... **\
|
369
|
-
$ -->
|
379
|
+
$ --> ELVISH_PAREN
|
370
380
|
≤ --> RING_MARK_L \** Ring inscription left beautiful stuff **\
|
371
381
|
≥ --> RING_MARK_R \** Ring inscription right beautiful stuff **\
|
372
382
|
\end
|