Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mappings for representing English in Cirth (as in LOTR) and Futhorc/Runes (as in the Hobbit) #34

Open
wants to merge 19 commits into
base: mode/english
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
f37acd8
Added modified version of khuzdul-cirth-moria.glaem, for representing…
davidfraser Aug 11, 2022
94c9771
Added implementation of English Runes as used by Tolkien in the Hobbit
davidfraser Aug 11, 2022
f403983
Fixing link in README.md
BenTalagan Aug 11, 2022
da2e0f1
Better names
davidfraser Aug 14, 2022
8a022c4
Convert aesc/ac and stan/s t to options
davidfraser Aug 14, 2022
ea1efbb
Correct GAR character (it was GEBO/GYFU without the circle around the X)
davidfraser Aug 14, 2022
b3effa2
Merge remote-tracking branch 'upstream/master' into english-cirth-mode
davidfraser Aug 14, 2022
1bf3327
Correct spelling
davidfraser Aug 14, 2022
6c3922b
Merge remote-tracking branch 'upstream/mode/english' into english-cir…
davidfraser Aug 14, 2022
b3e172e
Added this into post-processing as it is conditional
davidfraser Aug 14, 2022
a1927dc
Added options for most variants and alternate forms
davidfraser Aug 14, 2022
d952e2b
Added implementation of handling of c, x, q, and qu, with an option f…
davidfraser Aug 14, 2022
3d8e258
Implemented numeric sub-dots
davidfraser Aug 14, 2022
40763d5
Implement underbar for double vowels as an option (off by default)
davidfraser Aug 14, 2022
6f1fc4b
Ignore visual studio code extension builds
davidfraser Aug 14, 2022
8f9bfa8
Added use_circumflex_for_double_consonants
davidfraser Aug 14, 2022
d463929
Removed not implemeneted comment
davidfraser Aug 14, 2022
4e9e6fb
Resolve virtuals...
davidfraser Aug 14, 2022
8a418c9
Make numeric underdots optional
davidfraser Aug 14, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion glaemresources/charsets/unicode_runes.cst
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
\** ᚵ **\ \char 16B5 RUNIC_G
\** ᚶ **\ \char 16B6 ENG
\** ᚷ **\ \char 16B7 GEBO GYFU
\** **\ \char 16B8 GAR
\** **\ \char 16B8 GAR
\** ᚹ **\ \char 16B9 WUNJO WYNN
\** ᚺ **\ \char 16BA HAGLAZ
\** ᚻ **\ \char 16BB HAEGL
Expand Down
222 changes: 222 additions & 0 deletions glaemresources/modes/english-cirth-erebor.glaem
Original file line number Diff line number Diff line change
@@ -0,0 +1,222 @@
\**

Glǽmscribe (also written Glaemscribe) is a software dedicated to
the transcription of texts between writing systems, and more
specifically dedicated to the transcription of J.R.R. Tolkien's
invented languages to some of his devised writing systems.

Copyright (C) 2015 Benjamin Babut (Talagan).

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

**\

\beg changelog
\entry "0.0.1", "Adapted to an English instead of Khuzdul mode from khuzdul-cirth-moria.glaem"
\end

\beg options
\option dots_for_spaces false
\end

\** This is the version of the Cirth used in the Title page of the Lord of the Rings **\
\** See https://ring-lord.tripod.com/cirth/angerthaserebor.htm for a good reference **\
\language "English"
\writing "Cirth"
\mode "English Cirth - Angerthas Erebor"
\version "0.0.1"
\authors "J.R.R. Tolkien, impl. David Fraser based on work of Talagan (Benjamin Babut)"

\world primary_related_to_arda
\invention jrrt

\charset cirth_ds true

\if dots_for_spaces
\outspace CIRTH_PUNCT_MID_DOT
\else
\** We redefine the output space to have something beautiful, especially with erebor1 and erebor2 **\
\outspace CIRTH_SPACE_BIG
\endif
davidfraser marked this conversation as resolved.
Show resolved Hide resolved

\beg preprocessor
\** Work exclusively downcase **\
\downcase

\** Simplify trema vowels **\
\substitute "ä" "a"
\substitute "ë" "e"
\substitute "ï" "i"
\substitute "ö" "o"
\substitute "ü" "u"
\substitute "ÿ" "y"

\** Dis-ambiguate long vowels **\
\rxsubstitute "(ā|â|aa)" "â"
\rxsubstitute "(ē|ê|ee)" "ê"
\rxsubstitute "(ī|î|ii)" "î"
\rxsubstitute "(ō|ô|oo)" "ô"
\rxsubstitute "(ū|û|uu)" "û"
\rxsubstitute "(ȳ|ŷ|yy)" "ŷ"
\end

\beg processor

\beg rules litteral


\** Note that several of these sequences are not expected to be used in English e.g. ghw **\
p --> CIRTH_1
b --> CIRTH_2
f --> CIRTH_3
v --> CIRTH_4
hw --> CIRTH_5
m --> CIRTH_6
mb --> CIRTH_7
t --> CIRTH_8
d --> CIRTH_9
th --> CIRTH_10
dh --> CIRTH_11
r --> CIRTH_12
ch --> CIRTH_13
j --> CIRTH_14
sh --> CIRTH_15
zh --> CIRTH_16
ks --> CIRTH_17
k --> CIRTH_18
g --> CIRTH_19
kh --> CIRTH_20
gh --> CIRTH_21
n --> CIRTH_22
kw --> CIRTH_23
gw --> CIRTH_24
khw --> CIRTH_25
ghw --> CIRTH_26
ngw --> CIRTH_27
nw --> CIRTH_28
l --> CIRTH_31
nd --> CIRTH_33
s --> CIRTH_35
ŋ --> CIRTH_36 \** This is a pure velar nasal ŋ **\
ng --> CIRTH_37 \** This represents ŋ followed by g which is common in English too **\
ou --> CIRTH_38
ow --> CIRTH_38
i --> CIRTH_39
î --> CIRTH_39 CIRTH_39
y --> CIRTH_40
hy --> CIRTH_41
(u,û) --> CIRTH_42
z --> CIRTH_43
w --> CIRTH_44
ü --> CIRTH_45
e --> CIRTH_46
ê --> CIRTH_47
a --> CIRTH_48
â --> CIRTH_49
o --> CIRTH_50
ô --> CIRTH_51
ö --> CIRTH_52
h --> CIRTH_54
ə --> CIRTH_55 \** This is a silent-e or schwa ə sound which occurs in English unstressed syllables **\
ʌ --> CIRTH_56 \** This is the equivalent of a schwa for a stressed syllabel **\
ps --> CIRTH_57
ts --> CIRTH_58
+h --> CIRTH_59
_&_ --> CIRTH_60
\** These are additional letters used as variations which don't have representation in the standard character set **\
eu --> CIRTH_38
ew --> CIRTH_38
ai --> CIRTH_EREB_4
ay --> CIRTH_EREB_4
au --> CIRTH_EREB_5
aw --> CIRTH_EREB_5
ea --> CIRTH_EREB_6
oa --> CIRTH_EREB_7
\** Not yet implemented:
over circumflex doubles the length of the consonant sound
single under-bar doubles the length of the vowel sound
single under-dot used to indicate a symbol that is a number
**\
\** These are alternative characters which can be selected by prefixing them with a + **\
+g --> CIRTH_29
+gh --> CIRTH_30
\** +h --> CIRTH_34 **\
+ou --> CIRTH_38_ALT
+ow --> CIRTH_38_ALT
+ô --> CIRTH_51_ALT
+ö --> CIRTH_52_ALT
+n --> CIRTH_53
+ə --> CIRTH_55_ALT
+ʌ --> CIRTH_56_ALT
\** Rules for particular common words **\
_the_ --> CIRTH_11 CIRTH_55
_of_ --> CIRTH_50 CIRTH_4
\end

\beg rules punctuation
. --> CIRTH_PUNCT_THREE_DOTS
.. --> CIRTH_PUNCT_THREE_DOTS
... --> CIRTH_PUNCT_THREE_DOTS
… --> CIRTH_PUNCT_THREE_DOTS
.... --> CIRTH_PUNCT_THREE_DOTS
..... --> CIRTH_PUNCT_THREE_DOTS
...... --> CIRTH_PUNCT_THREE_DOTS
....... --> CIRTH_PUNCT_THREE_DOTS

, --> CIRTH_PUNCT_MID_DOT
: --> CIRTH_PUNCT_TWO_DOTS
; --> CIRTH_PUNCT_TWO_DOTS
! --> CIRTH_PUNCT_THREE_DOTS
? --> CIRTH_PUNCT_THREE_DOTS
· --> CIRTH_PUNCT_MID_DOT

- --> CIRTH_PUNCT_MID_DOT
– --> CIRTH_PUNCT_TWO_DOTS
— --> CIRTH_PUNCT_TWO_DOTS

\** Apostrophe **\

' --> {NULL}
’ --> {NULL}

\** Quotes **\

“ --> {NULL}
” --> {NULL}
« --> {NULL}
» --> {NULL}

[ --> CIRTH_PUNCT_THREE_DOTS_L
] --> CIRTH_PUNCT_THREE_DOTS_L
( --> CIRTH_PUNCT_THREE_DOTS_L
) --> CIRTH_PUNCT_THREE_DOTS_L
{ --> CIRTH_PUNCT_THREE_DOTS_L
} --> CIRTH_PUNCT_THREE_DOTS_L
< --> CIRTH_PUNCT_THREE_DOTS_L
> --> CIRTH_PUNCT_THREE_DOTS_L

/ --> CIRTH_PUNCT_FOUR_DOTS
\end

\beg rules numeric
\** Not yet implemented: single under-dot used to indicate a symbol that is a number **\
1 --> CIRTH_39
2 --> CIRTH_50
3 --> CIRTH_52
4 --> CIRTH_NUMERAL_4
5 --> CIRTH_22
6 --> CIRTH_39 CIRTH_39 CIRTH_39 CIRTH_39 CIRTH_39 CIRTH_39
\end

\end
114 changes: 114 additions & 0 deletions glaemresources/modes/english-futhorc.glaem
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
\**

Glǽmscribe (also written Glaemscribe) is a software dedicated to
the transcription of texts between writing systems, and more
specifically dedicated to the transcription of J.R.R. Tolkien's
invented languages to some of his devised writing systems.

Copyright (C) 2015 Benjamin Babut (Talagan).

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

**\

\beg changelog
\entry "0.0.1" "Initial version, adapted from old_english-futhorc.glaem"
\end

\language "English"
\writing "Runes"
\mode "English Futhorc based on the Hobbit"
\version "0.0.1"
\authors "J.R.R. Tolkien impl. David Fraser"

\world primary_related_to_arda
\invention jrrt

\charset unicode_runes true

\beg options
\option use_aesc true
\** Thror's map uses separate S T anyway, and Tolkien's styling of this letter is different, so this is retained as an option but off by default **\
\option use_stan false
\end


\beg preprocessor
\downcase
\end

\beg processor

\beg rules litteral
\** These rules generally follow https://ring-lord.tripod.com/runes/dwafrune.htm **\
f --> FEOH \** There are variants with round and straight strokes; only the former is in the Unicode Runic range **\
(u,v) --> URUZ \** There are variants with round and straight strokes; only the former is in the Unicode Runic range **\
th --> THORN
oo --> OS
o --> OSfuvthooorcgwhnjipxzstbemlngeeda+ayeakquab
r --> RAIDO
c --> CEN
g --> GEBO
w --> WYNN
h --> HAEGL
n --> NAUD
(i,j) --> IS
p --> PEORTH \** This is the second variant; the variant that looks more like a K is not in the Unicode Runic range **\
x --> EOLHX
z --> CALC
s --> RUNIC_LETTER_SH
t --> TIR
\if use_stan
st --> STAN
\endif
b --> BEORC
e --> EH
m --> MAN
l --> LAGU
ng --> ING
ee --> ETHEL
d --> DAEG \** Tolkien also uses an alternative with lines above and below, forming a box with a cross around it; this is not in the Unicode Runic range **\
\if use_aesc
a --> AESC
+a --> AC \** One of two alternatives in the chart; the other is not in Unicode Runic **\
\else
a --> AC \** One of two alternatives in the chart; the other is not in Unicode Runic **\
+a --> AESC
\endif
\** y --> CIRTH_49 matches this letter correctly, but this is a problem, as no font has both CIRTH and RUNIC unicode block **\
y --> YR \** This is the closest thing in unicode Runic to Tolkien's CIRTH_49 **\
ea --> EAR
k --> RUNIC_LETTER_FRANKS_CASKET_AC \** This is not an exact match but the closest in the Unicode Runic range **\
\** combinations **\
qu --> CEN WYNN
\** in order to complete English orthography... however note that this mode is mostly direct transcription of letters... **\
q --> CEN WYNN \** Assume a q is pronounced cw, even if not followed by a u **\
\end

\beg rules punctuation
, --> RUNIC_SINGLE_PUNCTUATION
; --> RUNIC_SINGLE_PUNCTUATION
: --> RUNIC_MULTIPLE_PUNCTUATION
. --> RUNIC_MULTIPLE_PUNCTUATION
! --> RUNIC_MULTIPLE_PUNCTUATION
? --> RUNIC_CROSS_PUNCTUATION
“ --> {NULL}
” --> {NULL}
« --> {NULL}
» --> {NULL}
- --> {NULL}
' --> {NULL}
" --> {NULL}
\end
\end