Compare commits

...

No commits in common. "main" and "sketches" have entirely different histories.

286 changed files with 8192 additions and 6686 deletions

5
.gitattributes vendored
View file

@ -1,5 +0,0 @@
*.eot filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.woff filter=lfs diff=lfs merge=lfs -text
*.woff2 filter=lfs diff=lfs merge=lfs -text
style/fonts/**/*.svg filter=lfs diff=lfs merge=lfs -text

6
.gitignore vendored
View file

@ -1,6 +0,0 @@
_build
_tmp
dist-newstyle
style/fonts/pragmatapro/*.woff2
tags
TAGS

View file

@ -1,92 +0,0 @@
HOST ?= rhiannon.website
REMOTE_USER ?= www-data
IDFILE ?= ~/.ssh/xyz
REMOTE_DIR ?= lang
TMPDIR ?= _tmp
BUILDDIR ?= /srv/www/lang
PAGESDIR ?= pages
DATADIR ?= data
TEMPLATE ?= $(DATADIR)/template.html
STATICEXTS := yaml
PAGES != find $(PAGESDIR) -name '*.md'
STATICS != parallel find $(PAGESDIR) -name '\*.{}' ::: $(STATICEXTS)
OUTPUTPAGES = \
$(patsubst $(PAGESDIR)/%.md,$(BUILDDIR)/%.html,$(PAGES)) \
$(patsubst $(PAGESDIR)/%,$(BUILDDIR)/%,$(STATICS))
STYLE != find style -type f
OUTPUTSTYLE = $(patsubst %,$(BUILDDIR)/%,$(STYLE))
OUTPUT = $(OUTPUTPAGES) $(OUTPUTSTYLE)
LANGFILTER = $(TMPDIR)/langfilter
LAANTAS_SCRIPT = $(TMPDIR)/laantas-script
EXECS = $(LANGFILTER)
CABAL_FLAGS ?= -O -v0
.PHONY: all
all: build
.PHONY: build
build: $(OUTPUT)
$(BUILDDIR)/%.html: $(PAGESDIR)/%.md $(TEMPLATE) $(LANGFILTER) $(LAANTAS_SCRIPT)
@echo "[pandoc] $<"
mkdir -p $(dir $@)
mkdir -p $(basename $@)
LAANTAS_SCRIPT="$(LAANTAS_SCRIPT)" LANG_COLOR="hsl(340deg, 50%, 35%)" \
DIRNAME="$(basename $@)" \
FILENAME="$@" \
pandoc -s --toc --template $(TEMPLATE) -o $@ $< \
--filter $(LANGFILTER)
$(BUILDDIR)/%: $(PAGESDIR)/%
$(copy)
$(BUILDDIR)/%: %
$(copy)
define copy
@echo "[copy] $<"
mkdir -p $(dir $@)
cp $< $@
endef
$(LANGFILTER): langfilter/*.hs langfilter/langfilter.cabal
$(cabal-exe)
$(LAANTAS_SCRIPT): laantas-script/*
$(cabal-exe)
define cabal-exe
@echo "[build] $(notdir $@)"
cabal build $(notdir $@) $(CABAL_FLAGS)
mkdir -p $(dir $@)
find dist-newstyle -name $(notdir $@) -type f -exec cp {} $(TMPDIR) \;
endef
upload: build
@echo "[upload]"
@rsync --recursive --partial --progress --copy-links \
--compress --human-readable --hard-links --size-only \
--delete --delete-after \
--rsh='ssh -l $(REMOTE_USER) -i $(IDFILE)' \
$(BUILDDIR)/ $(HOST):$(REMOTE_DIR)/
.PHONY: clean distclean
clean:
@echo "[clean]"
rm -rf $(BUILDDIR)
rm -rf $(TMPDIR)
distclean: clean
@echo "[distclean]"
cabal clean
.SILENT:

View file

@ -1,11 +0,0 @@
packages:
./langfilter,
./laantas-script
source-repository-package
type: git
location: https://git.rhiannon.website/rhi/svg-builder
tag: 9c09fcea4ac316dd5e0709b40f85952047070bf1
shared: False
executable-dynamic: False

View file

@ -1,48 +0,0 @@
<!DOCTYPE html>
<html$if(lang)$ lang=$lang$$endif$$if(dir)$ dir=$dir$$endif$>
<meta charset=utf-8>
<link rel=stylesheet href=/style/page.css>
$for(css)$
<link rel=stylesheet href=/style/$css$>
$endfor$
$for(header-includes)$
$header-includes$
$endfor$
<title>$pagetitle$</title>
$for(include-before)$
$include-before$
$endfor$
$if(title)$
<header>
<h1>$title$</h1>
</header>
$endif$
$if(toc)$
<nav id=toc>
<h2>Contents</h2>
$table-of-contents$
</nav>
$endif$
<main>
$body$
</main>
$if(hide-footer)$$else$
<footer>
$if(backlink)$
<a href=$backlink$>$backname$</a> ·
$endif$
<a href=/>All conlangs</a>
</footer>
$endif$
$for(include-after)$
$include-after$
$endfor$

BIN
gspol/gspol.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

120
gspol/index.md Normal file
View file

@ -0,0 +1,120 @@
---
title: Gspol
...
<style>
@import url(//fonts.googleapis.com/earlyaccess/notosanskr.css);
.word {
font-family: 'Noto Sans KR', serif;
font-style: normal;
}
.mini { font-size: smaller }
.huge { font-size: 36pt }
.centered {
text-align: center;
margin-left: 7em;
margin-right: 7em;
}
</style>
<center>
<div class="mini centered">
<span class="word huge">긋포ᇐ</span><br>
If the above text doesn't look like [this image](gspol.png), the rest of this page is not going to be very comprehensible.
</div>
</center>
# Phonology
Each syllable consists of an initial, an optional #/j/, a vowel, and an optional final.
## Consonants
### Initials
<div class=mini>
  Bilabial Alveolar Retroflex Velar Glottal
------------------ ---------------- ---------------- ----------------- ---------------- ----------------
Plain plosive «ᄇ» #/p/ _b_ «ᄃ» #/t/ _d_ «ᄌ» #/ʈ/ _đ_ «ᄀ» #/k/ _g_ «ᅙ» #/ʔ/ _x_
Aspirated plosive «ᄑ» #/pʰ/ _p_ «ᄐ» #/tʰ/ _t_ «ᄎ» #/ʈʰ/ _ţ_ «ᄏ» #/kʰ/ _k_
Ejective plosive «ᄈ» #/pʼ/ _pp_ «ᄄ» #/tʼ/ _tt_ «ᄍ» #/ʈʼ/ _ţţ_ «ᄁ» #/kʼ/ _kk_
Prenasal plosive «ᄜ» #/ᵐb/ _mb_ «ᄕ» #/ⁿd/ _nd_ «ꥭ» #/ᶯɖ/ _ņđ_ «ᅁ» #/ᵑɡ/ _ŋg_
Fricative «ᄡ» #/f/ _f_ «ꥢ» #/θ/ _z_ «ᄒ» #/h/ _h_
«ᄉ» #/s/ _s_ «ᄴ» #/ʂ/ _ş_
Nasal «ᄆ» #/m/ _m_ «ᄂ» #/n/ _n_ «ᄘ» #/ɳ/ _ņ_
Lateral «ᄅ» #/l/ _l_ «ᄙ» #/ɭ/ _ļ_
#/s/ + Plosive «ᄲ» #/sp/ _sb_ «ᄯ» #/st/ _sd_ «ᄶ» #/ʂʈ/ _sđ_ «ᄭ» #/sk/ _sg_
#/s/ + Asp plosive «ᄺ» #/spʰ/ _sp_ «ᄹ» #/stʰ/ _st_ «ᄷ» #/ʂʈʰ/ _sţ_ «ᄸ» #/skʰ/ _sk_
#/s/ + Nasal «ᄱ» #/sm/ _sm_ «ᄮ» #/sn/ _sn_
#/s/ + Lateral «ᄰ» #/sɬ/ _sl_
</div>
### Finals
<div class=mini>
  Bilabial Alveolar Retroflex Velar Glottal
------------------ ---------------- ---------------- ----------------- ---------------- ----------------
Unreleased plosive «ᄇ» #/p˺/ _b_ «ᄃ» #/t˺/ _d_ «ᄌ» #/ʈ˺/ _đ_ «ᄀ» #/k˺/ _g_
Preasp plosive «ᄑ» #/ʰp/ _p_ «ᄐ» #/ʰt/ _t_ «ᄎ» #/ʰʈ/ _ţ_ «ᄏ» #/ʰk/ _k_
Fricative «ᇪ»† #/f/ _f_ «ᇨ»† #/θ/ _z_ «ᇂ» #/h/ _h_
«ᆺ»† #/s/ _s_
Nasal «ᆷ»† #/m/ _m_ «ᆫ»† #/n/ _n_ «ퟋ»† #/ɳ/ _ņ_ «ᆼ»† #/ŋ/ _ŋ_
Lateral «ᆯ»† #/l/ _l_ «ᇐ»† #/ɭ/ _ļ_
Plosive + #/s/ «ᆹ» #/ps/ _bs_ «ퟐ» #/ts/ _ds_ «ᆪ» #/ks/ _gs_
Nasal + #/s/ «ᇝ» #/ms/ _ms_ «ᇇ» #/ns/ _ns_ «ᇱ» #/ŋs/ _ŋs_
Lateral + #/s/ «ᆳ» #/ɬs/ _ls_
</div>
Consonants marked with † become syllabic and replace a «ㅡ» #/ɯ/. Thus, Gspol («긋포ᇐ») is pronounced #/ks̩.poɭ/.
## Vowels
  Front Back
------------- -------------- --------------
High «ㅣ» #/i/ _i_ «ㅡ» #/ɯ/ _ı_
«ᅱ» #/y/ _ü_ «ᅮ» #/u/ _u_
Mid «ᅦ» #/e/ _e_ «ᅥ» #/ɤ/ _ë_
«ᅬ» #/ø/ _ö_ «ᅩ» #/o/ _o_
Low «ᅢ» #/æ/ _ä_ «ᅡ» #/ɑ/ _a_
A #/j/ between the initial and vowel is indicated the same as in Korean:
«ᅡ» #/ɑ/ → «ᅣ» #/jɑ/, etc.
# Politeness & formality levels
The names ending in «엔» are adjectival verbs, and the ones ending in «헨» are locatives.
Politeness Low Medium High Very high
---------- --------------- ------------ ------------ -----------------
Informal «ᄭᅩ핸» «티블엔»
_sgohen_ _tibılen_
low genial
Middle «파싱엔» «승해엔»
_pasiŋen_ _sıŋhäen_
casual polite
Formal «라ퟐ고엔» «쿄헨» «삼ᅙᅩᆼ엔» «라ᄴᅩᇁ 삼ᅙᅩᆼ엔»
_ladsgoen_ _kjohen_ _samxoŋen_ _laşop samxoŋen_
authoritarian middle respectful extremely respectful
# Nouns
## Particles
  After vowel After consonant
------------ --------------- -------------------
Absolutive «새» _sä_ «애» _ä_
Ergative «담» _dam_ «얌» _jam_
Instrumental «ꥢᅱ» _zü_ «휘» _hü_
Locative «헨» _hen_ «옌» _jen_
Ditransitive sentences have secundative marking, meaning that the recipient (the primary/"indirect" object) is marked using the absolutive, and the theme (the secondary/"direct" object) with the instrumental.

128
gspol/words.yaml Normal file
View file

@ -0,0 +1,128 @@
긋:
p: gıs
t: n
d:
- (region where Gspol is mainly spoken)
- 긋포ᇐ: Gspol
포ᇐ:
p: poļ
t: n
d:
- language
- speech
잉른:
p: iŋ·lın
t: n
d:
- England
- 잉른포ᇐ: English
ᄰㅣᇀ:
p: slit
t: n
d: person
ᅁᅵᆸ엔:
p: ŋgib·en
t: v adj
d: male
ᅁᅵᆸᄰㅣᇀ:
p: ŋgib·slit
t: n
d: man
ᄡᅦ에엔:
p: fe·e·en
t: v adj
d: female
ᄡᅦ에ᄰㅣᇀ:
p: fe·e·slit
t: n
d: woman
ᄴᅡ엔:
p: şa·en
t: vi
d: sleep
가:
p: ga
t: n
d: dog
윰센:
p: üm·sen
t: vt
d: see
ᄭᅩ:
p: sgo
t: n
d:
- place below sth
- ᄭᅩ헨: low
티블엔:
p: ti·bıl·en
t: v adj
d:
- friendly
- genial
파싱엔:
p: pa·siŋ·en
t: v adj
d: casual
승해엔:
p: sıŋ·hä·en
t: v adj
d: polite
라ퟐ엔:
p: lads·en
t: vt
d: lead
고:
p: go
t: {suf: [v, n]}
d: -er
라ퟐ고:
p: lads·go
t: n
d: leader
라ퟐ고엔:
p: lads·go·en
t: v adj
d: authoritarian
쿄:
p: kjo
t: n
d:
- middle of sth
- 쿄헨: in the middle
삼ᅙᅩᆼ:
p: sam·xoŋ
t: n
d:
- respect
- deference
삼ᅙᅩᆼ엔:
p: sam·xoŋ·en
t: v adj
d: respectful
라ᄴᅩᇁ:
p: la·şop
t: adv
d: extremely

20
index.md Normal file
View file

@ -0,0 +1,20 @@
---
title: Constructed languages
hidetoc: true
nofooter: true
...
[Yeah][wiki]. So far I only have one language even approaching usability:
* __[Lántas]__ #/laːntas/, which wins the prizes for the longest I've stuck with one language, and the most detailed I've ever got with a single language. It's got _lots_ of noun inflection and a significant amount on verbs too. I was a bit obsessed with Finnish when I first started it, which might be evident. (Not just in the amount of inflection, but also in things like the unmotivated inclusion of clusters like #/ps/ and #/ks/.)
The others have barely anything to them so far.
* __[Tengan]__, or #(tté ŋa) #/tʼɛ˥ ŋɑ˩/, an isolating-ish language with evidentiality and clicks and a featural script (i.e. like Hangul, but not as good).
* __[Zalajmkwély]__ #/zɑlɑɪmkweˈliː/, something initiating from a conlang-in-an-hour challenge thing but then I got kinda attached to it.
[Lántas]: laantas/
[Tengan]: tengan/
[Zalajmkwély]: zalajmkwely/
[wiki]: https://en.wikipedia.org/wiki/Constructed_language

50
laantas-old/5min-524.svg Normal file
View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="320" height="97"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 14.0) scale(3.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#g" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#ml" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="30.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#th" x="37.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="49.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="50.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="56.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="60.25" />
<use xlink:href="/lang/laantas/defs.svg#k" x="68.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="73.0" />
<use xlink:href="/lang/laantas/defs.svg#hn" x="74.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="88.0" />
<use xlink:href="/lang/laantas/defs.svg#j" x="89.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="94.0" />
</g>
<g transform="translate(5.0, 62.0) scale(3.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#n" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#ks" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="22.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="23.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="29.0" />
<use xlink:href="/lang/laantas/defs.svg#st" x="30.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="39.0" />
<use xlink:href="/lang/laantas/defs.svg#ai" x="45.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="51.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="56.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="63.0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

5
laantas-old/5min-524.txt Normal file
View file

@ -0,0 +1,5 @@
Gimimli mathamat kihnuja namaksumasti aisina.
{
gimi-m-li matha-m-at kihnu-ja namaksu-m-asti ai-si-na
time-DEF-IN world-DEF-GEN destroy-REL death-DEF-TRA be-RPST-1SG
}

72
laantas-old/5min-525.svg Normal file
View file

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="800" height="155"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 20.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#l" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#dá" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="17.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="22.0" />
<use xlink:href="/lang/laantas/defs.svg#j" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#dau" x="29.0" />
<use xlink:href="/lang/laantas/defs.svg#ðb" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="49.0" />
<use xlink:href="/lang/laantas/defs.svg#dí" x="55.0" />
<use xlink:href="/lang/laantas/defs.svg#ll" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="67.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="74.0" />
<use xlink:href="/lang/laantas/defs.svg#mk" x="76.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="86.0" />
<use xlink:href="/lang/laantas/defs.svg#i" x="93.0" />
<use xlink:href="/lang/laantas/defs.svg#bj" x="100.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="109.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="111.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="119.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="121.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="126.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="128.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="130.5" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="135.0" />
</g>
<g transform="translate(5.0, 100.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#p" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#š" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#j" x="14.0" />
<use xlink:href="/lang/laantas/defs.svg#dau" x="19.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="26.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="33.0" />
<use xlink:href="/lang/laantas/defs.svg#dł" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="45.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="50.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="52.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#ai" x="64.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="71.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="77.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="79.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="82.25" />
<use xlink:href="/lang/laantas/defs.svg#m" x="91.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="97.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="99.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="104.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="106.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="108.5" />
<use xlink:href="/lang/laantas/defs.svg#s" x="118.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="123.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="125.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="135.0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

12
laantas-old/5min-525.txt Normal file
View file

@ -0,0 +1,12 @@
Láhasijaðba míllanamku ibjahatul.
{
lá-ha-si-ja-ð-ba mílla-na-m-ku ibja-ha-tul
do-2SG-RPST-REL-NOM-SUP know-1SG-DEF-SUB think-2SG-NEG
You don't think I know what you've done.
}
Pašuja nisł kali aimat mulin suaha.
{
pašu-ja nis-ł ka-li ai-m-at mulin sua-ha
break-REL thought-PL 1SG-AD be-DEF-GEN therefore say-2SG
So you say I'm crazy.
}

61
laantas-old/5min-534.svg Normal file
View file

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="800" height="155"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 20.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#ŕ" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="17.0" />
<use xlink:href="/lang/laantas/defs.svg#ls" x="19.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="29.0" />
<use xlink:href="/lang/laantas/defs.svg#d" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#š" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#dḿ" x="43.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="45.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="48.25" />
<use xlink:href="/lang/laantas/defs.svg#l" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#dau" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#ǧ" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="74.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="76.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="81.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="83.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="86.25" />
<use xlink:href="/lang/laantas/defs.svg#h" x="95.0" />
<use xlink:href="/lang/laantas/defs.svg#dá" x="103.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="105.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="111.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="113.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="116.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="126.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="131.0" />
<use xlink:href="/lang/laantas/defs.svg#d" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="138.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="140.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="145.0" />
<use xlink:href="/lang/laantas/defs.svg#eop" x="147.0" />
</g>
<g transform="translate(5.0, 100.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#ŕ" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="17.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="19.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#sn" x="26.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#a" x="43.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="45.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="50.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="52.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="59.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="64.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="66.0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3 KiB

9
laantas-old/5min-534.txt Normal file
View file

@ -0,0 +1,9 @@
Ŕ kalsudúšḿt lau ǧisat hámam sidasai, ŕ nakasnai asuraisai.
{ [ɻ̩ ˌkaɬʲsuðuːʃm̩t lau ˌʤisat ˈxaːmam sɪðasai | ɻ̩ ˌnakasnai asuˈraisai]
ŕ kalsu-dúš-ḿ-t lau ǧisa-t háma-m sida-sai
and strike-3PL-DEF-GEN in_order_to fire-GEN nation-DEF come-DPST
ŕ nakasnai asurai-sai
and everything change-DPST
And the fire nation attacked, and everything changed.
}

View file

@ -1,12 +1,11 @@
---
title: List of abbreviations
title: Lántas—List of abbreviations
hidetoc: true
backname: Lántas
backlink: ../laantas
conlang: lántas
...
:::threecol
<div class=twocol>
1
: first person
@ -80,12 +79,14 @@ INT
LAT
: --lative case
NAGT
: non-agentive
NEG
: negative
NOM
: nominaliser
: nominative case
: nominaliser; (nominative case)
OBJ
: object
@ -135,4 +136,4 @@ SUP
TRA
: translative case
:::
</div>

53
laantas-old/cd.svg Normal file
View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="800" height="255"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(45.0, 60.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#m" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#ǧ" x="20.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="25.0" />
<use xlink:href="/lang/laantas/defs.svg#ks" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="43.0" />
<use xlink:href="/lang/laantas/defs.svg#ŕ" x="50.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="68.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="70.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="75.0" />
<use xlink:href="/lang/laantas/defs.svg#p" x="82.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="87.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="89.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="94.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="96.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="101.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="103.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="106.0" />
</g>
<g transform="translate(45.0, 150.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#f" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#ll" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="18.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="20.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="25.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#dḿ" x="32.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="34.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="37.25" />
<use xlink:href="/lang/laantas/defs.svg#i" x="46.0" />
<use xlink:href="/lang/laantas/defs.svg#bj" x="53.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="64.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="71.0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

37
laantas-old/cervantes.txt Normal file
View file

@ -0,0 +1,37 @@
{I am the first who has written novels in the Spanish language, though many have hitherto appeared among us, all of them translated from foreign authors. But these are my own, neither imitated nor stolen from anyone; my genius has engendered them, my pen has brought them forth, and they are growing up in the arms of the press.}
Ispanalántasla paraijað natta aina.
{ ispana-lántas-la parai-ja-ð na-tta ai-na
| spain-language-INS speak-REL-NOM one-ADV be-1SG
| I am the first to write in Spanish. }
Liččala maškutrabanł tíruli bairusailú,
{ ličča mašku-t-raban-ł tíru-li bairu-sai-lú
| many story-GEN-book-PL past-IN see-DPST-PSV
| Many have already been seen among us, }
ŕminu nakasnala ran lisla asurat lántaslin paraisailú.
{ ŕminu nakasna-la ran lisla asura-t lántas-li-n parai-sai-lú
| but every-INS thing again other-GEN language-IN-ABL write-DPST-PSV
| but all of them were translated from another language. }
Ŕ lul fasitta kat ai.
{ ŕ lu-l fasi-tta kat ai
| and this-PL complete-ADV 1SG;GEN be
| But these are my own. }
Gurubasanł júlilúfáštul, kaubasilúfáštul.
{ guruba-sa-n-ł júli-lú-fáš-tul kauba-si-lú-fáš-tul
| copy-AD-ABL-PL take-PSV-3PL-NEG steal-RPST-PSV-3PL-NEG
| They aren't copies, and they weren't stolen. }
Kat časmá lásibúš,
{ kat časmá lá-si-búš
| my genius make-RPST-3PL;OBJ
| My genius created them, }
ŕ kat ǧunai lusas júlisibúš
{ ŕ kat ǧunai lu-sa-s júli-si-búš
| and my pen this-AD-LAT bring-RPST-3PL;OBJ
| my pen brought them forth, }
ŕ samńt lirajat iššasku gḿbafáš.
{ ŕ samń-t lira-ja-Ø-t iššas-ku gḿba-fáš
| and ink-GEN press-REL-NOM-GEN care-SUB grow-3PL;SBJ
| and they grow in the care of the press. }
{ vim: set lbr : }

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="400" height="75"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 20.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#k" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#sč" x="14.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="23.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="25.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="27.5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 805 B

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="400" height="75"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 20.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#k" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#šš" x="14.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="26.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="28.5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 806 B

View file

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="620" height="330" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#lt" />
<use xlink:href="defs.svg#lk" x="13" />
<use xlink:href="defs.svg#lg" x="26" />
<use xlink:href="defs.svg#ld" x="39" />
<use xlink:href="defs.svg#lð" x="52" />
<use xlink:href="defs.svg#lp" x="65" />
<use xlink:href="defs.svg#lb" x="78" />
<use xlink:href="defs.svg#ls" x="92" />
<use xlink:href="defs.svg#lš" x="105" />
</g>
<g transform="translate(5, 80)" class="word">
<text x="25">lt</text>
<text x="88">lk</text>
<text x="151">lg</text>
<text x="217">ld</text>
<text x="283"></text>
<text x="351">lp</text>
<text x="417">lb</text>
<text x="486">ls</text>
<text x="552"></text>
</g>
<g transform="translate(65, 135) scale(5)" class="script">
<use xlink:href="defs.svg#ll" />
<use xlink:href="defs.svg#lm" x="13" />
<use xlink:href="defs.svg#ln" x="27" />
<use xlink:href="defs.svg#lr" x="40" />
<use xlink:href="defs.svg#lč" x="53" />
<use xlink:href="defs.svg#lǧ" x="66" />
<use xlink:href="defs.svg#lw" x="79" />
</g>
<g transform="translate(65, 190)" class="word">
<text x="25">ll</text>
<text x="91">lm</text>
<text x="162">ln</text>
<text x="226">lr</text>
<text x="292"></text>
<text x="357"></text>
<text x="425">lw</text>
</g>
<g transform="translate(195, 255) scale(5)" class="script">
<use xlink:href="defs.svg#lh" />
<use xlink:href="defs.svg#lf" x="16" />
<use xlink:href="defs.svg#lj" x="31" />
</g>
<g transform="translate(195, 310)" class="word">
<text x="35">lh</text>
<text x="111">lf</text>
<text x="171">lj</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="630" height="330" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#mt" />
<use xlink:href="defs.svg#mk" x="13" />
<use xlink:href="defs.svg#mg" x="26" />
<use xlink:href="defs.svg#md" x="39" />
<use xlink:href="defs.svg#mð" x="54" />
<use xlink:href="defs.svg#mp" x="69" />
<use xlink:href="defs.svg#mb" x="84" />
<use xlink:href="defs.svg#ms" x="99" />
<use xlink:href="defs.svg#mš" x="113" />
</g>
<g transform="translate(5, 85)" class="word">
<text x="25">mt</text>
<text x="90">mk</text>
<text x="156">mg</text>
<text x="222">md</text>
<text x="298"></text>
<text x="374">mp</text>
<text x="450">mb</text>
<text x="524">ms</text>
<text x="593"></text>
</g>
<g transform="translate(65, 135) scale(5)" class="script">
<use xlink:href="defs.svg#ml" />
<use xlink:href="defs.svg#mm" x="14" />
<use xlink:href="defs.svg#mn" x="29" />
<use xlink:href="defs.svg#mr" x="43" />
<use xlink:href="defs.svg#mč" x="55" />
<use xlink:href="defs.svg#mǧ" x="70" />
<use xlink:href="defs.svg#mw" x="85" />
</g>
<g transform="translate(65, 190)" class="word">
<text x="28">ml</text>
<text x="99">mm</text>
<text x="173">mn</text>
<text x="237">mr</text>
<text x="306"></text>
<text x="380"></text>
<text x="454">mw</text>
</g>
<g transform="translate(195, 255) scale(5)" class="script">
<use xlink:href="defs.svg#mh" />
<use xlink:href="defs.svg#mf" x="17" />
<use xlink:href="defs.svg#mj" x="33" />
</g>
<g transform="translate(195, 310)" class="word">
<text x="35">mh</text>
<text x="113">mf</text>
<text x="186">mj</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="630" height="330" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#nt" />
<use xlink:href="defs.svg#nk" x="13" />
<use xlink:href="defs.svg#ng" x="26" />
<use xlink:href="defs.svg#nd" x="39" />
<use xlink:href="defs.svg#nð" x="54" />
<use xlink:href="defs.svg#np" x="69" />
<use xlink:href="defs.svg#nb" x="84" />
<use xlink:href="defs.svg#ns" x="99" />
<use xlink:href="defs.svg#nš" x="113" />
</g>
<g transform="translate(5, 85)" class="word">
<text x="25">nt</text>
<text x="90">nk</text>
<text x="156">ng</text>
<text x="222">nd</text>
<text x="298"></text>
<text x="374">np</text>
<text x="450">nb</text>
<text x="524">ns</text>
<text x="593"></text>
</g>
<g transform="translate(65, 135) scale(5)" class="script">
<use xlink:href="defs.svg#nl" />
<use xlink:href="defs.svg#nm" x="14" />
<use xlink:href="defs.svg#nn" x="29" />
<use xlink:href="defs.svg#nr" x="43" />
<use xlink:href="defs.svg#nč" x="53" />
<use xlink:href="defs.svg#nǧ" x="68" />
<use xlink:href="defs.svg#nw" x="83" />
</g>
<g transform="translate(65, 190)" class="word">
<text x="28">nl</text>
<text x="99">nm</text>
<text x="173">nn</text>
<text x="234">nr</text>
<text x="291"></text>
<text x="368"></text>
<text x="445">nw</text>
</g>
<g transform="translate(195, 255) scale(5)" class="script">
<use xlink:href="defs.svg#nh" />
<use xlink:href="defs.svg#nf" x="17" />
<use xlink:href="defs.svg#nj" x="33"/>
</g>
<g transform="translate(195, 310)" class="word">
<text x="35">nh</text>
<text x="113">nf</text>
<text x="186">nj</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="570" height="210" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#kk" />
<use xlink:href="defs.svg#ks" x="11" />
<use xlink:href="defs.svg#pp" x="23" />
<use xlink:href="defs.svg#ps" x="34" />
<use xlink:href="defs.svg#pj" x="47" />
<use xlink:href="defs.svg#bj" x="59" />
<use xlink:href="defs.svg#čs" x="72" />
<use xlink:href="defs.svg#čč" x="85" />
<use xlink:href="defs.svg#hh" x="98" />
</g>
<g transform="translate(5, 70)" class="word">
<text x="20">kk</text>
<text x="77">ks</text>
<text x="133">pp</text>
<text x="193">ps</text>
<text x="254">pj</text>
<text x="320">bj</text>
<text x="385">čs</text>
<text x="450">–čč–</text>
<text x="519">hh</text>
</g>
<g transform="translate(110, 135) scale(5)" class="script">
<use xlink:href="defs.svg#hn" />
<use xlink:href="defs.svg#hm" x="17" />
<use xlink:href="defs.svg#fn" x="35" />
<use xlink:href="defs.svg#fm" x="52" />
</g>
<g transform="translate(110, 180)" class="word">
<text x="35">hn</text>
<text x="120">hm</text>
<text x="205">fn</text>
<text x="290">fm</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="630" height="210" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#rt" />
<use xlink:href="defs.svg#rk" x="10" />
<use xlink:href="defs.svg#rg" x="20" />
<use xlink:href="defs.svg#rd" x="30" />
<use xlink:href="defs.svg#rð" x="42" />
<use xlink:href="defs.svg#rp" x="54" />
<use xlink:href="defs.svg#rb" x="66" />
<use xlink:href="defs.svg#rs" x="79" />
<use xlink:href="defs.svg#rš" x="90" />
<use xlink:href="defs.svg#rl" x="101" />
<use xlink:href="defs.svg#rm" x="112" />
</g>
<g transform="translate(5, 85)" class="word">
<text x="20">rt</text>
<text x="70">rk</text>
<text x="120">rg</text>
<text x="172">rd</text>
<text x="234"></text>
<text x="294">rp</text>
<text x="356">rb</text>
<text x="417">rs</text>
<text x="472"></text>
<text x="527">rl</text>
<text x="588">rm</text>
</g>
<g transform="translate(85, 135) scale(5)" class="script">
<use xlink:href="defs.svg#rn" />
<use xlink:href="defs.svg#rr" x="11" />
<use xlink:href="defs.svg#rč" x="20" />
<use xlink:href="defs.svg#rǧ" x="32" />
<use xlink:href="defs.svg#rw" x="44" />
<use xlink:href="defs.svg#rh" x="56" />
<use xlink:href="defs.svg#rf" x="70" />
<use xlink:href="defs.svg#rj" x="83" />
</g>
<g transform="translate(85, 190)" class="word">
<text x="25">rn</text>
<text x="70">rr</text>
<text x="125"></text>
<text x="180"></text>
<text x="245">rw</text>
<text x="308">rh</text>
<text x="375">rf</text>
<text x="435">rj</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="560" height="320" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#st" />
<use xlink:href="defs.svg#sk" x="12" />
<use xlink:href="defs.svg#sg" x="24" />
<use xlink:href="defs.svg#sd" x="36" />
<use xlink:href="defs.svg#sð" x="48" />
<use xlink:href="defs.svg#sp" x="60" />
<use xlink:href="defs.svg#sb" x="73" />
<use xlink:href="defs.svg#ss" x="86" />
<use xlink:href="defs.svg#sš" x="98" />
</g>
<g transform="translate(5, 70)" class="word">
<text x="25">st</text>
<text x="80">sk</text>
<text x="142">sg</text>
<text x="204">sd</text>
<text x="264"></text>
<text x="325">sp</text>
<text x="392">sb</text>
<text x="454">ss</text>
<text x="513"></text>
</g>
<g transform="translate(65, 135) scale(5)" class="script">
<use xlink:href="defs.svg#sl" />
<use xlink:href="defs.svg#sm" x="13" />
<use xlink:href="defs.svg#sn" x="27" />
<use xlink:href="defs.svg#sr" x="40" />
<use xlink:href="defs.svg#sč" x="51" />
<use xlink:href="defs.svg#sǧ" x="65" />
<use xlink:href="defs.svg#sw" x="77" />
</g>
<g transform="translate(65, 180)" class="word">
<text x="25">sl</text>
<text x="90">sm</text>
<text x="160">sn</text>
<text x="218">sr</text>
<text x="277"></text>
<text x="347"></text>
<text x="412">sw</text>
</g>
<g transform="translate(125, 245) scale(5)" class="script">
<use xlink:href="defs.svg#sh" />
<use xlink:href="defs.svg#sf" x="16" />
<use xlink:href="defs.svg#sj" x="29" />
<use xlink:href="defs.svg#šš" x="38" />
<use xlink:href="defs.svg#šp" x="51" />
</g>
<g transform="translate(125, 290)" class="word">
<text x="32">sh</text>
<text x="105">sf</text>
<text x="160">sj</text>
<text x="215">–šš–</text>
<text x="280">šp</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="620" height="260" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(25, 25) scale(5)" class="script">
<use xlink:href="defs.svg#tt" />
<use xlink:href="defs.svg#tk" x="10" />
<use xlink:href="defs.svg#tg" x="22" />
<use xlink:href="defs.svg#td" x="34" />
<use xlink:href="defs.svg#tð" x="46" />
<use xlink:href="defs.svg#tp" x="58" />
<use xlink:href="defs.svg#tb" x="70" />
<use xlink:href="defs.svg#ts" x="83" />
<use xlink:href="defs.svg#tš" x="95" />
</g>
<g transform="translate(45, 70)" class="word">
<text>tt</text>
<text x="55">tk</text>
<text x="115">tg</text>
<text x="175">td</text>
<text x="235"></text>
<text x="295">tp</text>
<text x="355">tb</text>
<text x="420">ts</text>
<text x="480"></text>
</g>
<g transform="translate(5, 135) scale(5)" class="script">
<use xlink:href="defs.svg#tl" />
<use xlink:href="defs.svg#tm" x="12" />
<use xlink:href="defs.svg#tn" x="25" />
<use xlink:href="defs.svg#tr" x="37" />
<use xlink:href="defs.svg#tč" x="47" />
<use xlink:href="defs.svg#tǧ" x="59" />
<use xlink:href="defs.svg#tw" x="72" />
<use xlink:href="defs.svg#th" x="85" />
<use xlink:href="defs.svg#tf" x="101" />
<use xlink:href="defs.svg#tj" x="114" />
</g>
<g transform="translate(5, 180)" class="word">
<text x="25">-tl-</text>
<text x="90">-tm-</text>
<text x="150">-tn-</text>
<text x="210">-tr-</text>
<text x="263">-tč-</text>
<text x="325">-tǧ-</text>
<text x="387">-tw-</text>
<text x="457">-th-</text>
<text x="532">-tf-</text>
<text x="585">-tj-</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="600" height="310" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#ðt" />
<use xlink:href="defs.svg#ðk" x="13" />
<use xlink:href="defs.svg#ðg" x="25" />
<use xlink:href="defs.svg#ðd" x="37" />
<use xlink:href="defs.svg#ðð" x="50" />
<use xlink:href="defs.svg#ðp" x="63" />
<use xlink:href="defs.svg#ðb" x="76" />
<use xlink:href="defs.svg#ðs" x="90" />
<use xlink:href="defs.svg#ðš" x="103" />
</g>
<g transform="translate(5, 70)" class="word">
<text x="23">ðt</text>
<text x="86">ðk</text>
<text x="146">ðg</text>
<text x="209">ðd</text>
<text x="276">–ðð–</text>
<text x="343">ðp</text>
<text x="410">ðb</text>
<text x="475">ðs</text>
<text x="541">–ðš–</text>
</g>
<g transform="translate(55, 135) scale(5)" class="script">
<use xlink:href="defs.svg#ðl" />
<use xlink:href="defs.svg#ðm" x="13" />
<use xlink:href="defs.svg#ðn" x="27" />
<use xlink:href="defs.svg#ðr" x="40" />
<use xlink:href="defs.svg#ðč" x="53" />
<use xlink:href="defs.svg#ðǧ" x="66" />
<use xlink:href="defs.svg#ðw" x="79" />
</g>
<g transform="translate(55, 180)" class="word">
<text x="23">ðl</text>
<text x="91">ðm</text>
<text x="154">ðn</text>
<text x="219">ðr</text>
<text x="284">–ðč–</text>
<text x="349">–ðǧ–</text>
<text x="417">ðw</text>
</g>
<g transform="translate(190, 245) scale(5)" class="script">
<use xlink:href="defs.svg#ðh" />
<use xlink:href="defs.svg#ðf" x="16" />
<use xlink:href="defs.svg#ðj" x="30" />
</g>
<g transform="translate(190, 290)" class="word">
<text x="33">ðh</text>
<text x="103">ðf</text>
<text x="167">ðj</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
laantas-old/conjuncts.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="450" height="200" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#k" x="8" />
<use xlink:href="defs.svg#g" x="16" />
<use xlink:href="defs.svg#d" x="24" />
<use xlink:href="defs.svg#þ" x="32" />
<use xlink:href="defs.svg#p" x="40" />
<use xlink:href="defs.svg#b" x="48" />
<use xlink:href="defs.svg#s" x="57" />
<use xlink:href="defs.svg#š" x="65" />
<use xlink:href="defs.svg#l" x="73" />
<use xlink:href="defs.svg#m" x="81" />
</g>
<g transform="translate(5, 70)" class="word">
<text x="15">t</text>
<text x="55">k</text>
<text x="95">g</text>
<text x="135">d</text>
<text x="175">þ–</text>
<text x="215">p</text>
<text x="260">b</text>
<text x="300">s</text>
<text x="340">š–</text>
<text x="380">l</text>
<text x="420">m</text>
</g>
<g transform="translate(65, 135) scale(5)" class="script">
<use xlink:href="defs.svg#n" />
<use xlink:href="defs.svg#r" x="8" />
<use xlink:href="defs.svg#č" x="16" />
<use xlink:href="defs.svg#ǧ" x="24" />
<use xlink:href="defs.svg#w" x="32" />
<use xlink:href="defs.svg#h" x="40" />
<use xlink:href="defs.svg#f" x="51" />
<use xlink:href="defs.svg#j" x="60" />
</g>
<g transform="translate(65, 180)" class="word">
<text x="15">n</text>
<text x="55">r</text>
<text x="95">č–</text>
<text x="135">ǧ–</text>
<text x="175">w</text>
<text x="220">h</text>
<text x="270">f</text>
<text x="315">j</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

1513
laantas-old/defs.svg Normal file

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="210" height="160" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<marker id="arrowhead"
markerWidth="10" markerHeight="12"
orient="auto" refX="1" refY="4"
viewBox="0 0 12 10">
<polygon points="0 0 12 5 0 10" fill="black" />
</marker>
<marker id="circle"
markerWidth="6" markerHeight="6"
orient="auto" refX="3" refY="3"
viewBox="0 0 6 6">
<circle cx="3" cy="3" r="3" fill="black" />
</marker>
</defs>
<g transform="translate(5,5)">
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
<!-- outer trapezoid -->
<line x1="0" y1="0" x2="200" y2="0" stroke="black" />
<line x1="200" y1="0" x2="200" y2="150" stroke="black" />
<line x1="200" y1="150" x2="100" y2="150" stroke="black" />
<line x1="100" y1="150" x2="0" y2="0" stroke="black" />
<!-- ai -->
<line x1="90" y1="100" x2="50" y2="30"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="85" y="65" class="ipa">ai</text>
<!-- au -->
<line x1="180" y1="130" x2="180" y2="45"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="167" y="88" class="ipa">au</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,43 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="210" height="160" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<marker id="arrowhead"
markerWidth="10" markerHeight="12"
orient="auto" refX="11" refY="5"
viewBox="0 0 12 10">
<polygon points="0 0 12 5 0 10" fill="black" />
</marker>
<marker id="circle"
markerWidth="6" markerHeight="6"
orient="auto" refX="3" refY="3"
viewBox="0 0 6 6">
<circle cx="3" cy="3" r="3" fill="black" />
</marker>
</defs>
<g transform="translate(5,5)">
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
<!-- outer trapezoid -->
<polygon points="0 0 200 0 200 150 100 150"
fill="transparent" stroke="black" />
<!---->
<line x1="25" y1="15" x2="115" y2="65"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="75" y="30" class="ipa"></text>
<!---->
<line x1="190" y1="15" x2="130" y2="65"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="154" y="30" class="ipa"></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

105
laantas-old/dvowels.svg Normal file
View file

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="320" height="260" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<g transform="translate(5, 25) scale(5)" class="script">
<g>
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#da" x="5" />
</g>
<g transform="translate(8)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dá" x="5" />
</g>
<g transform="translate(16)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#di" x="5" />
</g>
<g transform="translate(24)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dí" x="5" />
</g>
<g transform="translate(32)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#du" x="5" />
</g>
<g transform="translate(40)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dú" x="5" />
</g>
<g transform="translate(48)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dai" x="5" />
</g>
<g transform="translate(56)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dau" x="5" />
</g>
</g>
<g transform="translate(5, 95)" class="word">
<text x="15">ta</text>
<text x="55"></text>
<text x="95">ti</text>
<text x="135"></text>
<text x="175">tu</text>
<text x="215"></text>
<text x="255">tai</text>
<text x="295">tau</text>
</g>
<g transform="translate(30, 160) scale(5)" class="script">
<g>
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dia" x="5" />
</g>
<g transform="translate(8)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dua" x="5" />
</g>
<g transform="translate(16)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dḿ" x="5" />
</g>
<g transform="translate(24)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dń" x="5" />
</g>
<g transform="translate(32)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dł" x="5" />
</g>
<g transform="translate(40)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#dŕ" x="5" />
</g>
<g transform="translate(48)">
<use xlink:href="defs.svg#t" />
<use xlink:href="defs.svg#d0" x="2.5" />
</g>
</g>
<g transform="translate(30, 230)" class="word">
<text x="15">tia</text>
<text x="55">tua</text>
<text x="95">tḿ</text>
<text x="135"></text>
<text x="175"></text>
<text x="215"></text>
<text x="255">t</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

7
laantas-old/eop.svg Normal file
View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="15" height="15" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<use xlink:href="defs.svg#eop" x="-0.5" y="-1"
transform="scale(5)" class="script" />
</svg>

After

Width:  |  Height:  |  Size: 348 B

7
laantas-old/eos.svg Normal file
View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="15" height="30" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<use xlink:href="defs.svg#eos" x="-2.5" y="0.5"
transform="scale(5)" class="script" />
</svg>

After

Width:  |  Height:  |  Size: 349 B

558
laantas-old/examples.md Normal file
View file

@ -0,0 +1,558 @@
---
title: Lántas—Examples
backname: Lántas
backlink: ../laantas
...
# The North Wind and the Sun
_The North Wind and the Sun were disputing which was the stronger, when a traveller came along wrapped in a warm cloak. They agreed that the one who first succeeded in making the traveller take his cloak off should be considered stronger than the other. Then the North Wind blew as hard as he could, but the more he blew the more closely did the traveller fold his cloak around him; and at last the North Wind gave up the attempt. Then the Sun shined out warmly, and immediately the traveller took off his cloak. And so the North Wind was obliged to confess that the Sun was the stronger of the two._
«Ruakul naipa bahútlit aimlis
Laksit Fuhamkas Guwanḿ asumsas ba sua.
Gimimli ufat kukkit ippauja šikkúþł ruamiril nara.
Šikkúþłm kukkimat rumin júlim natta abudajað
bahútlit aimat
laimitta šikkúbu.
Gimimli Laksit Fuham rut bássatlit fuha,
ŕminu hakkatta fuhafamat gimimli
kubutta šikkúþłm kukkimat rumi ńgua.
Mulin Laksit Fuham čaubam bulla.
Gimimli Guwanḿ ufatta tílju,
ŕ šikkúþłm kukkimat šutta rumin júli.
Mulin Guwanḿ bahútlit aimat Laksit Fuham suam bulla.»
<figure>
<object data=northwind.svg></object>
</figure>
```pgloss
Ruakul naipa bahútlit aimlis
ˌruə̯kɔɬʲ ˌnæɪ̯pɐ bɐˈxoːɪt æɪ̯mlɪs
rua-ku-l nai=pa bahú-t-lit ai-m-li-s
3-SUB-PL one=what strength-GEN-SUP be-DEF-IN-ABL
About which of them was stronger
```
```pgloss
Laksit Fuhamkas Guwanḿ asumsas ba sua.
ˌlaksɪt ˈfuxɑmkɑs ˈɡɔwɑnm̩ ˌasʊmsɐs bɐ ˌsuə̯
laksi-t fuha-m-kas guwan-ḿ asu-m-sa-s ba sua
north-GEN blow-DEF-COM sun-DEF others-DEF-AD-LAT against say
the North Wind and the Sun were arguing.
```
```pgloss
Gimimli ufat kukkit ippauja šikkúþł ruamiril nara.
ˌɡɛmɪmlɪ ˌufɐt ˈkɔkːɛt ˌipːɑʊ̯jɐ ˈʃikːoːθɫ̩ ˌɾuə̯mɪʑɪɬʲ ˌnarɐ
gimi-m-li ufan-t kukki-t ippau-ja šikkú-þł rua-mi-ri-l nara
time-DEF-IN warm-GEN coat-GEN wear-REL go-er 3-APUD-PRL-PL walk
Then, a traveller wearing a warm coat walked past.
```
```pgloss
Šikkúþłm kukkimat rumin júlim natta abudajað
ˌʃikːoːθɫ̩m ˈkɔkːɛmɐt ˌɾumɪn ˌjuːlɪm ˈnatːɐ ˌavʊðɐjɐθ
šikkúþł-m kukki-m-at ru-mi-n júli-m na-tta abuda-ja-ð
traveller-DEF coat-DEF-GEN 3SG-APUD-ABL take-DEF one-ADV cause-REL-NOM
The one to first make the traveller remove his coat
```
```pgloss
bahútlit aimat
ˈxoːɪt æɪ̯mɐt
bahútlit ai-m-at
strongest be-DEF-GEN
would be the stronger
```
```pgloss
laimitta šikkúbu.
ˌlæɪ̯mɪtːɐ ˌʃikːoː
laimi-tta šikkú-bu
same-ADV go-3PL
is what they agreed.
```
```pgloss
Gimimli Laksit Fuham rut bássatlitta fuha,
ˌɡɛmɪmlɪ ˈlaksɪt ˈfuxɑm ɾʊt ˌbaːsːɐtɬɪtːɐ ˈfuxɑ
gimimli Laksit_Fuham rut bássa-t-lit-ta fuha
then the:North:Wind 3SG;GEN force-GEN-SUP-ADV blow
Then the North Wind blew his hardest,
```
```pgloss
ŕminu hakkatta fuhafamat gimimli
ˌɻ̩ːmɪnʊ ˌxɑkːɑtːɐ ˈfuxɑfɐmɐt ˌɡɛmɪmlɪ
ŕ-minu hakka-tta fuha-fa-m-at gimimli
and-still harsh-ADV blow-3SG-DEF-GEN as
but the stronger he blew
```
```pgloss
kubutta šikkúþłm kukkimat rumi ńgua.
ˌkɔvʊtːɐ ˌʃɪkːoːθɫ̩m ˌkɔkːɛmɐt ɾʊmɪ ˈŋ̩ɡɔə̯
kubu-tta šikkúþłm kukkim-at ru-mi ńgua
close-ADV the:traveller the:coat-GEN 3SG-APUD pull
the closer the traveller pulled his coat around himself.
```
```pgloss
Mulin Laksit Fuham čaubam bulla.
ˌmulɪn ˈlaksɪt ˈfuhɑm ˈɑʊ̯vɐm ˌbuɫːɑ
mu-li-n Laksit_Fuham čauba-m bulla
that-AD-ABL the:North:Wind give_up-DEF must
So the North Wind had to give up.
```
```pgloss
Gimimli Guwanḿ ufatta tílju,
ɡɛˌmimlɪ ˈɡɔwɑnm̩ ʊˈfatːɐ ˌtɪːljʊ
gimimli Guwanḿ ufan-tta tílju
then the:sun warm-ADV shine
Then the Sun shone out warmly,
```
```pgloss
ŕ šikkúþłm kukkimat šutta rumin júli.
ɻ̩ː ˌʃikːoːθl̩m ˈkɔkːɛmɐt ˈʃutːɐ ˌɾumɪn ˌjyːlɪ
ŕ šikkúþłm kukkimat šun-tta ru-mi-n júli
and the:traveller the:coat:GEN immediate-ADV 3SG-APUD-ABL take
and immediately the traveller took off his coat.
```
```pgloss
Mulin Guwanḿ bahútlit aimat Laksit Fuham suam bulla.
ˌmulɪn ˈɡɔwɑnm̩ bɐˌxoːɪt æɪ̯mɐt ˈlaksɪt ˈfuxɑm suɐ̯m ˌbuɫːɐ
mulin Guwanḿ bahútlit ai-m-at Laksit_Fuham sua-m bulla
so the:Sun strongest be-DEF-GEN the:North:Wind say-DEF must
So the North Wind had to say that the Sun was the stronger.
```
# Long-time nuclear waste warning message
> Long-time nuclear waste warning messages are intended to deter human intrusion
> at nuclear waste repositories in the far future, within or above the order of
> magnitude of 10,000 years. Nuclear semiotics is an interdisciplinary field of
> research, first done by the Human Interference Task Force since 1981.
>
> —[Wikipedia](https://en.m.wikipedia.org/wiki/Long-time_nuclear_waste_warning_messages)
- [This place is a message... and part of a system of messages ...pay attention
to it!](#nuc1)
- Sending this message was important to us. We considered ourselves to be a
powerful culture.
- This place is not a place of honor ... no highly esteemed deed is commemorated
here... nothing valued is here.
- What is here was dangerous and repulsive to us. This message is a warning
about danger.
- The danger is in a particular location... it increases towards a center... the
center of danger is here... of a particular size and shape, and below us.
- The danger is still present, in your time, as it was in ours.
- The danger is to the body, and it can kill.
- The form of the danger is an emanation of energy.
- The danger is unleashed only if you substantially disturb this place
physically.
- This place is best shunned and left uninhabited.
**#(Luð fasḿ sua ai. Suatł kaubat jat ai. Mansihášbum bulla.)**
```pgloss
Luð fasḿ sua ai.
ˈluθ ˈfasm̩ ˈsuə̯ ai̯
lu-ð fas-ḿ sua-Ø ai
this-ADJ place-DEF say-N be
This place is a message.
```
```pgloss
Suatł kaubat jat ai.
ˌsuə̯tɫ̩ kɑo̯vɐt ˌjat ai̯
sua-Ø-t-ł kauba-t jat ai
say-N-GEN-PL group-GEN piece be
It is one of a series of messages.
```
```pgloss
Mansihášbum bulla.
ˈmansixɑːʒbʊm ˌbuɫːə
mansi-háš-bu-m bulla
understand-2PL-3SG-DEF must
You must pay attention to it.
```
### Luð suamat suam ausut aim ibjasináš. Bahút núl ainášḿ ibjasináš.
```pgloss
Luð suamat suam ausut aim ibjasináš.
lu-ð sua-Ø-m-at sua-m ausu-t ai-m ibja-si-náš
this-ADJ say-N-DEF-GEN say-DEF important-GEN be-DEF believe-PST-1PL
We thought it important to leave this message.
```
```pgloss
Bahút núl ainášḿ ibjasináš.
bahú-t núl ai-náš-ḿ ibja-si-náš
strong-GEN person-PL be-1PL-DEF believe-PST-1PL
We believed ourselves to be powerful people.
```
### Luð fasḿsa šit lá sawaitul.
```pgloss
Luð fasḿsa šit lá sawaitul.
lu-ð fas-ḿ-sa ši-t lá sawai-tul
```
# Test sentences
([Source](http://web.archive.org/web/20120427054736/http://fiziwig.com/conlang/syntax_tests.html))
<div>
<style scope>
p { margin-bottom: 0; }
.gloss { margin-top: 6pt; }
</style>
1. The sun shines.
```gloss
Guwanḿ tílju.
guwan-ḿ tílju
sun-DEF shine
The sun shines.
```
2. The sun is shining.
```gloss
Sá guwanḿ tílju.
sá guwanḿ tílju
now the:sun shine
The sun is shining now.
```
3. The sun shone.
```gloss
Guwanḿ tíljusai.
guwanḿ tílju-sai
the:sun shine-DPST
The sun shone.
```
4. The sun will shine.
```gloss
Guwanḿ tíljumá.
guwanḿ tílju-má
the:sun shine-FUT
The sun will shine.
```
5. The sun has been shining.
```gloss
Guwanḿ tíljusi.
guwanḿ tílju-si
the:sun shine-RPST
The sun shone recently.
```
6. The sun is shining again.
```gloss
Guwanḿ lisla tílju.
guwanḿ lis-la tílju
the:sun new-INS shine
The sun is shining again.
```
7. The sun will shine tomorrow.
```gloss
Guwanḿgi guwanḿ tíljumá.
guwan-ḿ-gi guwanḿ tíljumá
day-DEF-POST;ESS the:sun will:shine
The sun will shine tomorrow.
```
8. The sun shines brightly.
```gloss
Guwanḿ tílju ufatta.
guwanḿ tílju ufa(n)-tta
the:sun shine bright-ADV
The sun shines brightly (or warmly).
```
9. The bright sun shines.
```gloss
Ufat guwanḿ tílju.
ufa(n)-t guwanḿ tílju
bright-GEN the:sun shine
The bright/warm sun shines.
```
10. The sun is rising now.
```gloss
Sá guwanḿ bisisidu.
sá guwanḿ bisi-sidu
now the:sun raise-RFL
Now the sun is rising.
```
11. All the people shouted.
```gloss
Nakasnala númł miaššasi.
nakasnala nú-m-ł miašša-si
every;INS person-DEF-PL shout-RPST
All of the people shouted.
```
12. Some of the people shouted.
```gloss
Nala númł miaššasi.
nala númł miaššasi
one;INS the:people shouted
Some of the people shouted.
```
13. Many of the people shouted twice.
```gloss
Liččala númł patta miaššasi.
Ličča-la númł pa(s)-tta miaššasi
many-INS the:people two-ADV shouted
Many of the people shouted twice.
```
14. Happy people often shout.
```gloss
Líbit númł tutim miašša.
líbi(s)-t númł tutim miašša
happy-GEN the:people often shout
Happy people often shout.
```
15. The kitten jumped up.
```gloss
Kalnišḿ šisas niasgasi.
kalń-iš-ḿ ši-sa-s niasga-si
cat-DIM-DEF high-AD-LAT jump-RPST
The kitten jumped up.
```
16. The kitten jumped onto the table.
```gloss
Kalnišḿ lahmisḿsas niasgasi.
kalńišḿ lahmis-ḿ-sa-s niasgasi
the:kitten table-DEF-AD-LAT jumped
The kitten jumped onto the table
```
17. My little kitten walked away.
```gloss
Katas milnut kalnišḿ lusan narasi.
kat-as milnu-t kalńišḿ lu-sa-n nara-si
my-CONJ little-GEN the:kitten this-AD-ABL walk-RPST
My little kitten walked away from here.
```
18. It's raining.
```gloss
Tippi santu.
tippi santu
water rains
It's raining.
```
19. The rain came down.
```gloss
Santutippi kisas kassasi.
santu-tippi ki-sa-s kassa-si
rain-water down-AD-LAT fall-RPST
Rain fell down.
```
20. The kitten is playing in the rain.
```gloss
Kalnišḿ lut gimimli warai tippim santum.
kalnišḿ lut gimi-m-li warai tippi santu-m
the:kitten this;GEN time-DEF-IN play water rain-DEF
The kitten plays while it rains.
```
<!--
21. The rain has stopped.
22. Soon the rain will stop.
23. I hope the rain stops soon.
24. Once wild animals lived here.
25. Slowly she looked around.
26. Go away!
27. Let's go!
28. You should go.
29. I will be happy to go.
30. He will arrive soon.
31. The baby's ball has rolled away.
32. The two boys are working together.
33. This mist will probably clear away.
34. Lovely flowers are growing everywhere.
35. We should eat more slowly.
36. You have come too soon.
37. You must write more neatly.
38. Directly opposite stands a wonderful palace.
39. Henry's dog is lost.
40. My cat is black.
41. The little girl's doll is broken.
42. I usually sleep soundly.
43. The children ran after Jack.
44. I can play after school.
45. We went to the village for a visit.
46. We arrived at the river.
47. I have been waiting for you.
48. The campers sat around the fire.
49. A little girl with a kitten sat near me.
50. The child waited at the door for her father.
51. Yesterday the oldest girl in the village lost her kitten.
52. Were you born in this village?
53. Can your brother dance well?
54. Did the man leave?
55. Is your sister coming for you?
56. Can you come tomorrow?
57. Have the neighbors gone away for the winter?
58. Does the robin sing in the rain?
59. Are you going with us to the concert?
60. Have you ever travelled in the jungle?
61. We sailed down the river for several miles.
62. Everybody knows about hunting.
63. On a Sunny morning after the solstice we started for the mountains.
64. Tom laughed at the monkey's tricks.
65. An old man with a walking stick stood beside the fence.
66. The squirrel's nest was hidden by drooping boughs.
67. The little seeds waited patiently under the snow for the warm spring sun.
68. Many little girls with wreaths of flowers on their heads danced around the bonfire.
69. The cover of the basket fell to the floor.
70. The first boy in the line stopped at the entrance.
71. On the top of the hill in a little hut lived a wise old woman.
72. During our residence in the country we often walked in the pastures.
73. When will your guests from the city arrive?
74. Near the mouth of the river, its course turns sharply towards the East.
75. Between the two lofty mountains lay a fertile valley.
76. Among the wheat grew tall red poppies.
77. The strong roots of the oak trees were torn from the ground.
78. The sun looked down through the branches upon the children at play.
79. The west wind blew across my face like a friendly caress.
80. The spool of thread rolled across the floor.
81. A box of growing plants stood in the Window.
82. I am very happy.
83. These oranges are juicy.
84. Sea water is salty.
85. The streets are full of people.
86. Sugar tastes sweet.
87. The fire feels hot.
88. The little girl seemed lonely.
89. The little boy's father had once been a sailor.
90. I have lost my blanket.
91. A robin has built his nest in the apple tree.
92. At noon we ate our lunch by the roadside.
93. Mr. Jones made a knife for his little boy.
94. Their voices sound very happy.
95. Is today Monday?
96. Have all the leaves fallen from the tree?
97. Will you be ready on time?
98. Will you send this message for me?
99. Are you waiting for me?
100. Is this the first kitten of the litter?
101. Are these shoes too big for you?
102. How wide is the River?
103. Listen.
104. Sit here by me.
105. Keep this secret until tomorrow.
106. Come with us.
107. Bring your friends with you.
108. Be careful.
109. Have some tea.
110. Pip and his dog were great friends.
111. John and Elizabeth are brother and sister.
112. You and I will go together.
113. They opened all the doors and windows.
114. He is small, but strong.
115. Is this tree an oak or a maple?
116. Does the sky look blue or gray?
117. Come with your father or mother.
118. I am tired, but very happy.
119. He played a tune on his wonderful flute.
120. Toward the end of August the days grow much shorter.
121. A company of soldiers marched over the hill and across the meadow.
122. The first part of the story is very interesting.
123. The crow dropped some pebbles into the pitcher and raised the water to the brim.
124. The baby clapped her hands and laughed in glee.
125. Stop your game and be quiet.
126. The sound of the drums grew louder and louder.
127. Do you like summer or winter better?
128. That boy will have a wonderful trip.
129. They popped corn, and then sat around the fire and ate it.
130. They won the first two games, but lost the last one.
131. Take this note, carry it to your mother; and wait for an answer.
132. I awoke early, dressed hastily, and went down to breakfast.
133. Aha! I have caught you!
134. This string is too short!
135. Oh, dear! the wind has blown my hat away!
136. Alas! that news is sad indeed!
137. Whew! that cold wind freezes my nose!
138. Are you warm enough now?
139. They heard the warning too late.
140. We are a brave people, and love our country.
141. All the children came except Mary.
142. Jack seized a handful of pebbles and threw them into the lake.
143. This cottage stood on a low hill, at some distance from the village.
144. On a fine summer evening, the two old people were sitting outside the door of their cottage.
145. Our bird's name is Jacko.
146. The river knows the way to the sea.
147. The boat sails away, like a bird on the wing.
148. They looked cautiously about, but saw nothing.
149. The little house had three rooms, a sitting room, a bedroom, and a tiny kitchen.
150. We visited my uncle's village, the largest village in the world.
151. We learn something new each day.
152. The market begins five minutes earlier this week.
153. Did you find the distance too great?
154. Hurry, children.
155. Madam, I will obey your command.
156. Here under this tree they gave their guests a splendid feast.
157. In winter I get up at night, and dress by yellow candlelight.
158. Tell the last part of that story again.
159. Be quick or you will be too late.
160. Will you go with us or wait here?
161. She was always, shabby, often ragged, and on cold days very uncomfortable.
162. Think first and then act.
163. I stood, a little mite of a girl, upon a chair by the window, and watched the falling snowflakes.
164. Show the guests these shells, my son, and tell them their strange history.
165. Be satisfied with nothing but your best.
166. We consider them our faithful friends.
167. We will make this place our home.
168. The squirrels make their nests warm and snug with soft moss and leaves.
169. The little girl made the doll's dress herself.
170. I hurt myself.
171. She was talking to herself.
172. He proved himself trustworthy.
173. We could see ourselves in the water.
174. Do it yourself.
175. I feel ashamed of myself.
176. Sit here by yourself.
177. The dress of the little princess was embroidered with roses, the national flower of the Country.
178. They wore red caps, the symbol of liberty.
179. With him as our protector, we fear no danger.
180. All her finery, lace, ribbons, and feathers, was packed away in a trunk.
181. Light he thought her, like a feather.
182. Every spring and fall our cousins pay us a long visit.
183. In our climate the grass remains green all winter.
184. The boy who brought the book has gone.
185. These are the flowers that you ordered.
186. I have lost the book that you gave me.
187. The fisherman who owned the boat now demanded payment.
188. Come when you are called.
189. I shall stay at home if it rains.
190. When he saw me, he stopped.
191. Do not laugh at me because I seem so absent minded.
192. I shall lend you the books that you need.
193. Come early next Monday if you can.
194. If you come early, wait in the hall.
195. I had a younger brother whose name was Antonio.
196. Gnomes are little men who live under the ground.
197. He is loved by everybody, because he has a gentle disposition.
198. Hold the horse while I run and get my cap.
199. I have found the ring I lost.
200. Play and I will sing.
201. That is the funniest story I ever heard.
202. She is taller than her brother.
203. They are no wiser than we.
204. Light travels faster than sound.
205. We have more time than they.
206. She has more friends than enemies.
207. He was very poor, and with his wife and five children lived in a little low cabin of logs and stones.
208. When the wind blew, the traveller wrapped his mantle more closely around him.
209. I am sure that we can go.
210. We went back to the place where we saw the roses.
211. "This tree is fifty feet high," said the gardener.
212. I think that this train leaves five minutes earlier today.
213. My opinion is that the governor will grant him a pardon.
214. Why he has left the city is a mystery.
215. The house stands where three roads meet.
216. He has far more money than brains.
217. Evidently that gate is never opened, for the long grass and the great hemlocks grow close against it.
218. I met a little cottage girl; she was eight years old, she said.
-->
</div>

27
laantas-old/index.md Normal file
View file

@ -0,0 +1,27 @@
---
title: Lántas
hidetoc: true
...
<style>
h1::before, h2::before, h3::before { content: "" !important; }
</style>
<figure>
<object data="laantas.svg"></object>
</figure>
This grammar has finally got so long it is worth splitting it into several pages.
# Contents
#. [Phonology](phonology.html)
#. [Writing system](script.html)
#. [Nouns](nouns.html)
#. [Pronouns & demonstratives](pronouns.html)
#. [Verbs](verbs.html)
#. [Numbers](numbers.html)
#. [Personal Names](names.html)
#. [Syntax](syntax.html) (not done yet)
#. [Examples](examples.html)
#. [List of abbreviations](abbrevs.html)

45
laantas-old/ivowels.svg Normal file
View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="405" height="200" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<g transform="translate(65, 25) scale(5)" class="script">
<use xlink:href="defs.svg#a" />
<use xlink:href="defs.svg#á" x="6" />
<use xlink:href="defs.svg#i" x="15" />
<use xlink:href="defs.svg#í" x="26" />
<use xlink:href="defs.svg#u" x="37" />
<use xlink:href="defs.svg#ú" x="48" />
</g>
<g transform="translate(65, 70)" class="word">
<text>a</text>
<text x="38">á</text>
<text x="87">i</text>
<text x="144">í</text>
<text x="197">u</text>
<text x="256">ú</text>
</g>
<g transform="translate(5, 135) scale(5)" class="script">
<use xlink:href="defs.svg#ai" />
<use xlink:href="defs.svg#au" x="11" />
<use xlink:href="defs.svg#ia" x="21" />
<use xlink:href="defs.svg#ua" x="32" />
<use xlink:href="defs.svg#ḿ" x="43" />
<use xlink:href="defs.svg#ń" x="55" />
<use xlink:href="defs.svg#ł" x="64" />
<use xlink:href="defs.svg#ŕ" x="74" />
</g>
<g transform="translate(5, 185)" class="word">
<text x="12">ai</text>
<text x="67">au</text>
<text x="119">ia</text>
<text x="174">ua</text>
<text x="229">ḿ</text>
<text x="285">ń</text>
<text x="330">ł</text>
<text x="385">ŕ</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

14
laantas-old/laantas.svg Normal file
View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="202" height="90" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5,5) scale(8)" class="script">
<use xlink:href="defs.svg#l" />
<use xlink:href="defs.svg#dá" x="5" />
<use xlink:href="defs.svg#nt" x="6" />
<use xlink:href="defs.svg#da" x="16" />
<use xlink:href="defs.svg#s" x="17" />
<use xlink:href="defs.svg#d0" x="19.5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 615 B

31
laantas-old/liz.svg Normal file
View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="1000" height="155"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 20.0) scale(5.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#k" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#š" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#dń" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="19.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#š" x="26.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="33.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="40.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="42.5" />
<use xlink:href="/lang/laantas/defs.svg#k" x="52.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="59.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="62.25" />
<use xlink:href="/lang/laantas/defs.svg#ai" x="71.0" />
</g>
<g transform="translate(5.0, 100.0) scale(5.0)" class="script">
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

9
laantas-old/mixx.txt Normal file
View file

@ -0,0 +1,9 @@
kaitlit waišat laðasjuakas puppanua fímat ahnanáš
ausujuajuat gulmisari purailúja guabut purai
iksala parailúja mašku, násná raušgil lisla paraim mapsusináš
bahnit bais baudat sua dansu ŕ kifat suafa
waišala mapsusifa
nalapa lásidusifa?
waišala mapsusifa
násná dagusal maimáfamat ibjana

21
laantas-old/names.md Normal file
View file

@ -0,0 +1,21 @@
---
title: Lántas—Personal Names
hidetoc: true
backname: Lántas
backlink: ../laantas
...
Names in Lántas can be very long in their full form, containing multiple
goneonymics[^goneo] (names referring to their parents, biological or
otherwise); at least one given name, usually two; several adjectival epithets;
and a toponym (referring to the town where they grew up), in that order. An
example of a full name is «Mafitsuš Kampatsuš Mammu Šamni Bahút Tamnissa-Amat
Gappatkirḿlin» meaning, in order, "Child of Mafi (mother), Child of Kampa
(father), Mammu Šamni, Strong, Loyal to their Family, from Gappatkir". In most
situations they would be referred to as either Mammu or Šamni depending on
their preference. Many names are even longer than this; as a culture, Lántas
speakers take significant pride in giving their children particularly long
names. The given names themselves have no inherent meaning or gender bias, but
names are frequently reused within a family.
[^goneo]: Full disclosure: I made this word up.

426
laantas-old/northwind.svg Normal file
View file

@ -0,0 +1,426 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css"
href="/stylesheets/lang-svg.css"?>
<svg width="700" height="766"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5.0, 17.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#r" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="12.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="14.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="16.5" />
<use xlink:href="/lang/laantas/defs.svg#n" x="26.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#p" x="33.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="45.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="51.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="53.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="61.0" />
<use xlink:href="/lang/laantas/defs.svg#tl" x="63.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="72.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="74.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="77.25" />
<use xlink:href="/lang/laantas/defs.svg#ai" x="86.0" />
<use xlink:href="/lang/laantas/defs.svg#ml" x="93.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="104.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="106.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="108.5" />
<use xlink:href="/lang/laantas/defs.svg#l" x="118.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="123.0" />
<use xlink:href="/lang/laantas/defs.svg#ks" x="125.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="134.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="136.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="139.25" />
</g>
<g transform="translate(5.0, 81.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#f" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="16.0" />
<use xlink:href="/lang/laantas/defs.svg#mk" x="18.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="28.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="30.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="32.5" />
<use xlink:href="/lang/laantas/defs.svg#g" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="47.0" />
<use xlink:href="/lang/laantas/defs.svg#w" x="49.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="55.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#dḿ" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#a" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="71.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="76.0" />
<use xlink:href="/lang/laantas/defs.svg#ms" x="78.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="89.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="91.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="93.5" />
<use xlink:href="/lang/laantas/defs.svg#b" x="103.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="109.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="116.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="121.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="123.0" />
<use xlink:href="/lang/laantas/defs.svg#g" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="138.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="140.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="146.0" />
<use xlink:href="/lang/laantas/defs.svg#ml" x="148.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="159.0" />
</g>
<g transform="translate(5.0, 145.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#u" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#f" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="18.25" />
<use xlink:href="/lang/laantas/defs.svg#k" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="32.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="34.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="44.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="47.25" />
<use xlink:href="/lang/laantas/defs.svg#i" x="56.0" />
<use xlink:href="/lang/laantas/defs.svg#pp" x="63.0" />
<use xlink:href="/lang/laantas/defs.svg#dau" x="71.0" />
<use xlink:href="/lang/laantas/defs.svg#j" x="73.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="78.0" />
<use xlink:href="/lang/laantas/defs.svg#š" x="85.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="90.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="92.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="100.0" />
<use xlink:href="/lang/laantas/defs.svg#þ" x="102.0" />
<use xlink:href="/lang/laantas/defs.svg#dł" x="107.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="114.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="119.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="121.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="127.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="129.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="134.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="136.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="138.5" />
<use xlink:href="/lang/laantas/defs.svg#n" x="148.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="153.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="155.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="160.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="162.0" />
</g>
<g transform="translate(5.0, 209.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#š" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#þ" x="17.0" />
<use xlink:href="/lang/laantas/defs.svg#dł" x="22.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="37.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="44.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="52.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="54.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="60.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="65.25" />
<use xlink:href="/lang/laantas/defs.svg#r" x="74.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="79.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="81.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="87.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="89.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="91.5" />
<use xlink:href="/lang/laantas/defs.svg#j" x="101.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="106.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="108.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="113.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="115.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="118.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="128.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#tt" x="135.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="142.0" />
</g>
<g transform="translate(5.0, 273.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#a" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="2.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#d" x="10.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#j" x="17.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="22.0" />
<use xlink:href="/lang/laantas/defs.svg#ð" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="26.5" />
<use xlink:href="/lang/laantas/defs.svg#b" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="44.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="52.0" />
<use xlink:href="/lang/laantas/defs.svg#tl" x="54.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="63.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="65.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="68.25" />
<use xlink:href="/lang/laantas/defs.svg#ai" x="77.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="84.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="90.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="92.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="95.25" />
<use xlink:href="/lang/laantas/defs.svg#l" x="104.0" />
<use xlink:href="/lang/laantas/defs.svg#dai" x="109.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="111.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="117.0" />
<use xlink:href="/lang/laantas/defs.svg#tt" x="119.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="126.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="138.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="140.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="146.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="148.0" />
</g>
<g transform="translate(5.0, 337.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#g" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#ml" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="26.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="33.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#ks" x="40.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="49.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="51.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="54.25" />
<use xlink:href="/lang/laantas/defs.svg#f" x="63.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="71.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="79.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="81.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="84.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="94.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="99.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="101.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="104.25" />
<use xlink:href="/lang/laantas/defs.svg#b" x="113.0" />
<use xlink:href="/lang/laantas/defs.svg#dá" x="119.0" />
<use xlink:href="/lang/laantas/defs.svg#ss" x="121.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="131.0" />
<use xlink:href="/lang/laantas/defs.svg#tl" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="142.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="144.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="147.25" />
<use xlink:href="/lang/laantas/defs.svg#f" x="156.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="162.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="164.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="172.0" />
<use xlink:href="/lang/laantas/defs.svg#eop" x="174.0" />
</g>
<g transform="translate(5.0, 401.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#ŕ" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="20.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="35.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="37.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="45.0" />
<use xlink:href="/lang/laantas/defs.svg#tt" x="47.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="54.0" />
<use xlink:href="/lang/laantas/defs.svg#f" x="61.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="67.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="77.0" />
<use xlink:href="/lang/laantas/defs.svg#f" x="79.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="85.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="87.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="93.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="95.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="98.25" />
<use xlink:href="/lang/laantas/defs.svg#g" x="107.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="112.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="114.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="120.0" />
<use xlink:href="/lang/laantas/defs.svg#ml" x="122.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="140.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="145.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="147.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="153.0" />
<use xlink:href="/lang/laantas/defs.svg#tt" x="155.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="162.0" />
</g>
<g transform="translate(5.0, 465.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#š" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#þ" x="17.0" />
<use xlink:href="/lang/laantas/defs.svg#dł" x="22.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="24.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="37.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="44.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="52.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="54.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="60.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="65.25" />
<use xlink:href="/lang/laantas/defs.svg#r" x="74.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="79.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="81.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="87.0" />
<use xlink:href="/lang/laantas/defs.svg#ń" x="94.0" />
<use xlink:href="/lang/laantas/defs.svg#g" x="100.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="105.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="107.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="117.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="123.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="125.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="130.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="132.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="134.5" />
<use xlink:href="/lang/laantas/defs.svg#l" x="144.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="149.0" />
<use xlink:href="/lang/laantas/defs.svg#ks" x="151.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="160.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="162.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="165.25" />
</g>
<g transform="translate(5.0, 529.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#f" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="16.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="18.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="21.0" />
<use xlink:href="/lang/laantas/defs.svg#č" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#dau" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="44.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="46.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="49.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="59.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="65.0" />
<use xlink:href="/lang/laantas/defs.svg#ll" x="67.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="77.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="79.0" />
<use xlink:href="/lang/laantas/defs.svg#g" x="89.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="94.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="96.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="102.0" />
<use xlink:href="/lang/laantas/defs.svg#ml" x="104.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="115.0" />
<use xlink:href="/lang/laantas/defs.svg#g" x="122.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="127.0" />
<use xlink:href="/lang/laantas/defs.svg#w" x="129.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="135.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="137.0" />
<use xlink:href="/lang/laantas/defs.svg#dḿ" x="142.0" />
<use xlink:href="/lang/laantas/defs.svg#u" x="149.0" />
<use xlink:href="/lang/laantas/defs.svg#f" x="156.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="162.0" />
<use xlink:href="/lang/laantas/defs.svg#tt" x="164.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="171.0" />
</g>
<g transform="translate(5.0, 593.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#t" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#dí" x="5.0" />
<use xlink:href="/lang/laantas/defs.svg#lj" x="7.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#eop" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#ŕ" x="21.0" />
<use xlink:href="/lang/laantas/defs.svg#š" x="33.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="40.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="48.0" />
<use xlink:href="/lang/laantas/defs.svg#þ" x="50.0" />
<use xlink:href="/lang/laantas/defs.svg#dł" x="55.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="60.0" />
<use xlink:href="/lang/laantas/defs.svg#k" x="70.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="75.0" />
<use xlink:href="/lang/laantas/defs.svg#kk" x="77.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="85.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="87.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="93.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="95.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="98.25" />
<use xlink:href="/lang/laantas/defs.svg#š" x="107.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="112.0" />
<use xlink:href="/lang/laantas/defs.svg#tt" x="114.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="121.0" />
<use xlink:href="/lang/laantas/defs.svg#r" x="128.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="133.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="135.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="141.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="143.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="145.5" />
<use xlink:href="/lang/laantas/defs.svg#j" x="155.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="160.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="162.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="167.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="169.0" />
</g>
<g transform="translate(5.0, 657.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#m" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#l" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="13.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="15.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="17.5" />
<use xlink:href="/lang/laantas/defs.svg#g" x="27.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="32.0" />
<use xlink:href="/lang/laantas/defs.svg#w" x="34.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="40.0" />
<use xlink:href="/lang/laantas/defs.svg#n" x="42.0" />
<use xlink:href="/lang/laantas/defs.svg#dḿ" x="47.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="54.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="60.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="62.0" />
<use xlink:href="/lang/laantas/defs.svg#dú" x="70.0" />
<use xlink:href="/lang/laantas/defs.svg#tl" x="72.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="81.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="83.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="86.25" />
<use xlink:href="/lang/laantas/defs.svg#ai" x="95.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="102.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="108.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="110.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="113.25" />
<use xlink:href="/lang/laantas/defs.svg#l" x="122.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="127.0" />
<use xlink:href="/lang/laantas/defs.svg#ks" x="129.0" />
<use xlink:href="/lang/laantas/defs.svg#di" x="138.0" />
<use xlink:href="/lang/laantas/defs.svg#t" x="140.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="143.25" />
</g>
<g transform="translate(5.0, 721.0) scale(4.0)" class="script">
<use xlink:href="/lang/laantas/defs.svg#f" x="0.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="6.0" />
<use xlink:href="/lang/laantas/defs.svg#h" x="8.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="16.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="18.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="21.0" />
<use xlink:href="/lang/laantas/defs.svg#s" x="31.0" />
<use xlink:href="/lang/laantas/defs.svg#dua" x="36.0" />
<use xlink:href="/lang/laantas/defs.svg#m" x="38.0" />
<use xlink:href="/lang/laantas/defs.svg#d0" x="41.0" />
<use xlink:href="/lang/laantas/defs.svg#b" x="51.0" />
<use xlink:href="/lang/laantas/defs.svg#du" x="57.0" />
<use xlink:href="/lang/laantas/defs.svg#ll" x="59.0" />
<use xlink:href="/lang/laantas/defs.svg#da" x="69.0" />
<use xlink:href="/lang/laantas/defs.svg#eos" x="71.0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

13
laantas-old/northwind.txt Normal file
View file

@ -0,0 +1,13 @@
Ruakul naipa bahútlit aimlis
Laksit Fuhamkas Guwanḿ asumsas ba sua.
Gimimli ufat kukkit ippauja šikkúþł ruamiril nara.
Šikkúþłm kukkimat rumin júlim natta abudajað
bahútlit aimat
laimitta suabu.
Gimimli Laksit Fuham rut bássatlit fuha,
ŕminu hakkatta fuhafamat gimimli
kubutta šikkúþłm kukkimat rumi ńgua.
Mulin Laksit Fuham čaubam bulla.
Gimimli Guwanḿ ufatta tílju,
ŕ šikkúþłm kukkimat šutta rumin júli.
Mulin Guwanḿ bahútlit aimat Laksit Fuham suam bulla.

View file

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="550" height="190" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"
externalResourcesRequired="true">
<g transform="translate(5,25) scale(3)" class="script">
<use xlink:href="defs.svg#l" x="0" />
<use xlink:href="defs.svg#da" x="5" />
<use xlink:href="defs.svg#ks" x="7" />
<use xlink:href="defs.svg#di" x="16" />
<use xlink:href="defs.svg#t" x="18" />
<use xlink:href="defs.svg#d0" x="21" />
<use xlink:href="defs.svg#f" x="28" />
<use xlink:href="defs.svg#du" x="34" />
<use xlink:href="defs.svg#h" x="36" />
<use xlink:href="defs.svg#da" x="44" />
<use xlink:href="defs.svg#mk" x="46" />
<use xlink:href="defs.svg#da" x="56" />
<use xlink:href="defs.svg#s" x="58" />
<use xlink:href="defs.svg#d0" x="60" />
<use xlink:href="defs.svg#g" x="68" />
<use xlink:href="defs.svg#du" x="73" />
<use xlink:href="defs.svg#w" x="75" />
<use xlink:href="defs.svg#da" x="81" />
<use xlink:href="defs.svg#n" x="83" />
<use xlink:href="defs.svg#dḿ" x="88" />
<use xlink:href="defs.svg#a" x="95" />
<use xlink:href="defs.svg#s" x="97" />
<use xlink:href="defs.svg#du" x="102" />
<use xlink:href="defs.svg#ms" x="104" />
<use xlink:href="defs.svg#da" x="115" />
<use xlink:href="defs.svg#s" x="117" />
<use xlink:href="defs.svg#d0" x="119" />
<use xlink:href="defs.svg#b" x="127" />
<use xlink:href="defs.svg#da" x="133" />
<use xlink:href="defs.svg#l" x="140" />
<use xlink:href="defs.svg#du" x="145" />
<use xlink:href="defs.svg#l" x="147" />
<use xlink:href="defs.svg#di" x="152" />
<use xlink:href="defs.svg#n" x="154" />
<use xlink:href="defs.svg#d0" x="156" />
<use xlink:href="defs.svg#s" x="164" />
<use xlink:href="defs.svg#dua" x="169" />
<use xlink:href="defs.svg#eop" x="171" />
</g>
<g transform="translate(5,75)" class="word">
<text x="37">Laksit</text>
<text x="135">Fuhamkas</text>
<text x="235">Guwanḿ</text>
<text x="325">asumsas</text>
<text x="393">ba</text>
<text x="449">lulin</text>
<text x="504">sua,</text>
</g>
<g transform="translate(5,120) scale(3)" class="script">
<use xlink:href="defs.svg#r" />
<use xlink:href="defs.svg#dua" x="5" />
<use xlink:href="defs.svg#ll" x="7" />
<use xlink:href="defs.svg#da" x="17" />
<use xlink:href="defs.svg#n" x="24" />
<use xlink:href="defs.svg#dai" x="29" />
<use xlink:href="defs.svg#p" x="31" />
<use xlink:href="defs.svg#da" x="36" />
<use xlink:href="defs.svg#b" x="43" />
<use xlink:href="defs.svg#da" x="49" />
<use xlink:href="defs.svg#h" x="51" />
<use xlink:href="defs.svg#dú" x="59" />
<use xlink:href="defs.svg#tl" x="61" />
<use xlink:href="defs.svg#di" x="70" />
<use xlink:href="defs.svg#t" x="72" />
<use xlink:href="defs.svg#d0" x="75" />
<use xlink:href="defs.svg#ai" x="82" />
<use xlink:href="defs.svg#m" x="89" />
<use xlink:href="defs.svg#d0" x="92" />
<use xlink:href="defs.svg#eos" x="97" />
</g>
<g transform="translate(5,170)" class="word">
<text x="25">rualla</text>
<text x="91">naipa</text>
<text x="179">bahútlit</text>
<text x="265">aim.</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

375
laantas-old/nouns.md Normal file
View file

@ -0,0 +1,375 @@
---
title: Lántas—Nouns
backname: Lántas
backlink: ../laantas
...
Nouns are the words which name and refer to specific entities. Lántas is unusual in that words which are often considered to form a separate "adjective" class, or, occasionally, a subset of verbs, are also (the genitive case of) nouns.
# Number
The basic form of a noun is its singular, in all cases. The plural is formed by adding:
* «-al» to a word ending in «l» or «ł»,
* «-l» to a word ending in a vowel, or
* «-ł» to a word ending in a consonant, syllabic or not, other than «l».
This plural form can also be applied to names of people. In this case it forms what is called an _associative plural_, and refers to a person plus a group associated with them, usually their family or friend group.
<figure class=glosses>
```gloss
ǧunail
ǧunai-l
stick-PL
sticks
```
```gloss
Jánimł
Jáni-m-ł
John-DEF-PL
John and his friends
```
</figure>
# Core cases {#corecases}
Declension for the core cases of «nú» 'man' and «lun» 'road' are shown below. Some of the endings are slightly different in the case of a stem ending in a consonant or vowel, and if the ending starts with multiple consonants the final one of the stem is dropped.
<figure>
|   | Singular | Plural |
|----------------------:|:---------|:-----------|
| Nominative #!(NOM)! | «nú» | «nú·l» |
| Genitive #!(GEN)! | «nú·t» | «nú·t·ł» |
| Comitative #!(COM)! | «nú·kas» | «nú·kas·ł» |
| Caritive #!(CAR)! | «nú·ssa» | «nú·ssa·l» |
| Instrumental #!(INS)! | «nú·la» | «nú·la·l» |
| Essive #!(ESS)! | «nú·gu» | «nú·gu·l» |
| Translative #!(TRA)! | «nú·sti» | «nú·sti·l» |
| Exessive #!(EXE)! | «nú·ču» | «nú·ču·l» |
|   | Singular | Plural |
|-------:|:--------------|:----------------|
| #!NOM! | «lun» | «lun·ł» |
| #!GEN! | «lu~~n~~·t» | «lun·t·ł» |
| #!COM! | «lun·kas» | «lun·kas·ł» |
| #!CAR! | «lu~~n~~·ssa» | «lu~~n~~·ssa·l» |
| #!INS! | «lun·la» | «lun·la·l» |
| #!ESS! | «lun·gu» | «lun·gu·l» |
| #!TRA! | «lu~~n~~·sti» | «lu~~n~~·sti·l» |
| #!EXE! | «lun·ču» | «lun·ču·l» |
</figure>
The _nominative_ is the subject of sentences, and the unmarked form. The _genitive_ is used for the object of sentences, the possessive, and for modifying other nouns (see [below](#adjectivals)).
<figure class=glosses>
```gloss
Jánim línait bairusi.
Jáni-m línai-t bairu-si
John-DEF mouse-GEN see-RPST
John saw a mouse.
```
```gloss
Jánimat línai
Jáni-ma-t línai
John-DEF-GEN mouse
John's mouse
```
```gloss
ausut línai
ausu-t línai
large-GEN mouse
a large mouse
```
</figure>
For _inalienable_ possession (body parts, family members, etc), the [definite](#definiteness) is usually used instead of an explicit genitive construction.
<figure class=glosses>
```gloss
Nattumatł bairusina.
nattu-ma-t-ł bairu-si-na
parent-DEF-GEN-PL see-PST-1SG
I saw my [the] parents.
```
</figure>
The _comitative_ case is used for 'and' between two nouns, as well as 'with' in the sense of 'accompanied by'. It is used on all but the _last_ noun being conjoined, with the last one taking the semantic case for the whole sequence. The opposite case, the _caritive_, means 'without', and is also used for _negative_ possessive statements. (See the adessive, described below, for affirmative statements.)
<figure class=glosses>
```gloss
suksł ká
suksł ká
they;COM I
they and I
```
```gloss
Kalńkas þasit bairusina.
kalń-kas þasi-t bairu-si-na
cat-COM dog-GEN see-RPST-1SG
I saw a cat and a dog.
```
```gloss
Sairiassa aina.
sairia-ssa ai-na
money-CAR be-1SG
I don't have any money.
```
```gloss
Kat fadaukas ká rut ǧimamlis šikkúsi.
kat fadau-kas ká rut ǧima-m-li-s šikkú-si
my friend-COM I his house-DEF-IN-LAT go-RPST
I went with my friend to his house.
```
</figure>
The most common use of the _instrumental_ case is the [theme] of ditransitive sentences (while the recipient is in the genitive). It is also used for 'with' as in 'using', in distributive phrases such as «kallila» 'in threes, in sets of three, three each', for quantity expressions such as units, and quantifiers like 'every'.
[theme]: https://en.wikipedia.org/wiki/Secundative_language
<figure class=glosses>
```gloss
Sanǧula paraina.
sanǧu-la parai-na
pen-INS write-1SG
I write with a pen.
```
```gloss
kalli litrala tippi
kalli litra-la tippi
three litre-INS water
three litres of water
```
```gloss
nakasnala hámal
nakasnala háma-l
every;INS country-PL
every country
```
```gloss
nala núl
nala nú-l
any;INS person-PL
some people
```
```gloss
nai rala númł
nai ra(n)-la nú-m-ł
one thing-INS person-DEF-PL
one of the people
```
```gloss
nala númł
nala nú-m-ł
any;INS person-DEF-PL
some of the people
```
</figure>
The _essive_ case indicates a state, while the _translative_ and _exessive_ cases indicate a change of state. The translative marks the new state, and the exessive the old. The essive and exessive are most commonly used with comparatives (see [below](#adjectivals)).
__TODO: examples__
# Locational cases
The locational cases are formed by pairs of suffixes, one for the type of
motion and one for the orientation or part of the target object.[^tsez]
Unlike for the core cases, the endings are the same regardless of whether the
stem ends in a consonant or vowel, so they are only listed for «nú».
These cases have formulaic names, e.g., 'adessive' (at), 'absuperlative' (from above), and so on.
[^tsez]: You might think that this sounds too mathematical or artificial to occur in a natural language, but in fact some Caucasian languages, such as [Tsez] and [Archi], do exactly this.
[Tsez]: http://en.wikipedia.org/wiki/Tsez_language "Tsez on Wikipedia"
[Archi]: http://en.wikipedia.org/wiki/Archi_language "Archi on Wikipedia"
* _ad--_ (_al--_): 'at'
* _in--_ (_il--_): 'in'
* _pre--_: 'in front of'
* _post--_: 'behind'
* _inter--_: 'between' or 'among'
* _super--_: 'on top of' or 'over'
* _sub--_: 'below' or 'under'
* _apud--_: 'near' or 'next to'
* _--essive_: 'at' or 'on'
* _--lative_: 'towards'
* _ab--lative_: 'away from'
* _per--lative_: 'through' or 'along'
<figure>
| | | Essive (ESS) | Lative (LAT) | Ab--lative (ABL) | Per--lative (PRL) |
|-----------:|------:|--------------|--------------|------------------|-------------------|
| Ad | #!SG! | «nú·sa» | «nú·sa·s» | «nú·sa·n» | «nú·sa·ri» |
| #!(AD)! | #!PL! | «nú·sa·l» | «nú·sa·s·ł» | «nú·sa·n·ł» | «nú·sa·ri·l» |
| In | #!SG! | «nú·li» | «nú·li·s» | «nú·li·n» | «nú·li·ri» |
| #!(IN)! | #!PL! | «nú·li·l» | «nú·li·s·ł» | «nú·li·n·ł» | «nú·li·ri·l» |
| Pre | #!SG! | «nú·ðu» | «nú·ðu·s» | «nú·ðu·n» | «nú·ðu·ri» |
| #!(PRE)! | #!PL! | «nú·ðu·l» | «nú·ðu·s·ł» | «nú·ðu·n·ł» | «nú·ðu·ri·l» |
| Post | #!SG! | «nú·gi» | «nú·gi·s» | «nú·gi·n» | «nú·gi·ri» |
| #!(POST)! | #!PL! | «nú·gi·l» | «nú·gi·s·ł» | «nú·gi·n·ł» | «nú·gi·ri·l» |
| Inter | #!SG! | «nú·nua» | «nú·nua·s» | «nú·nua·n» | «nú·nua·ri» |
| #!(INTER)! | #!PL! | «nú·nua·l» | «nú·nua·s·ł» | «nú·nua·n·ł» | «nú·nua·ri·l» |
| Super | #!SG! | «nú·ba» | «nú·ba·s» | «nú·ba·n» | «nú·ba·ri» |
| #!(SUPER)! | #!PL! | «nú·ba·l» | «nú·ba·s·ł» | «nú·ba·n·ł» | «nú·ba·ri·l» |
| Sub | #!SG! | «nú·ku» | «nú·ku·s» | «nú·ku·n» | «nú·ku·ri» |
| #!(SUB)! | #!PL! | «nú·ku·l» | «nú·ku·s·ł» | «nú·ku·n·ł» | «nú·ku·ri·l» |
| Apud | #!SG! | «nú·mi» | «nú·mi·s» | «nú·mi·n» | «nú·mi·ri» |
| #!(APUD)! | #!PL! | «nú·mi·l» | «nú·mi·s·ł» | «nú·mi·n·ł» | «nú·mi·ri·l» |
</figure>
* Subessive is used for:
* 'in the opinion of': «Kaku manifnut ai.» That's pleasant to me/I like that.
- Superessive is used for:
- 'about': «Suba jaisi fína.» I dreamt about you.
<!-- -->
* \#!(AD--LAT)! «Dufnamsas júlisina.» I stuck it onto the wall.
* \#!(AD--ESS)! «Ǧimamsa aihapa?» Are you at home?
* \#!(IN--LAT)! «Sihamgit ǧimamlis šikkúmána.» I'll be going home soon.
* \#!(PRE--PRL)! «Sabut kalń káðuri narasi.» A black cat passed in front of me.
* \#!(POST--ESS)! «Ǧimamgi waibifás.» They're playing round the back of the house.
* \#!(AD--PRL)! «Lunsari šikkúsina.» I went down the road.
* \#!(IN--PRL)! «Lunliri šikkúsina.» I went across the road.
* \#!(APUD--PRL)! «Lunmiri šikkúsina.» I followed (alongside) the river.
The orientation suffixes give rise to the following words:
<div class=twocol>
- «fansað»: surface
- «fanlið»: interior
- «fanduð»: front
- «fangið»: back
- «fannuað»: company
- «fambað»: top
- «fankuð»: bottom
- «fammið»: vicinity
</div>
# Definiteness
The definite suffix for nouns (DEF) is «-m», and is used more frequently than 'the' in English. For example, in the second sentence below Sam has one dog, and in the third he is implied to have several. The names of people and places are also definite.
After a consonant or «-ń», the definite suffix is «-ḿ»; the sequence «ńḿ» is pronounced as a single syllable, as #/nm̩/. After «-m» or «-ḿ», the suffix is «-am». The definite suffix occurs _between_ the stem and the case ending. Between the «-m» form and a case suffix starting with a consonant cluster, or the genitive singular «-t», an extra epenthetic «-a» is added.
<figure class=glosses>
```gloss
guwanḿt samńḿ
guwan-ḿ-t samń-ḿ
sun-DEF-GEN colour-DEF
the colour of the sun
```
```gloss
Sámimat þasi
Sami-ma-t þasi
Sam-DEF-GEN dog
one of Sam's dogs
```
```gloss
Sámimat þasim
Sami-ma-t þasim
Sam-DEF-GEN dog-DEF
Sam's dog
```
</figure>
The definite suffix is used:
* When the referent is old information already mentioned.
«Pas nú bairusina. Nai rala núm manifnut gašnat ippausi.» I saw two people. One of them was wearing a nice shirt.
* For people, places, countries, and other proper names.
«Danielḿ Włjáhámamli nuabia.» Daniel lives in Austria.
* In time phrases with «gimi».
«Gimimli lána.» I'm doing it now.
However, «naigimi» 'sometime' is indefinite.
«Naigimili lámána.» I'll do it at some point.
* In statements of general fact.
«Númsal pasla aðal ai.» Humans have two eyes.
* __TODO: ?__
The definite suffix is _not_ used (in contrast to English):
* In superlatives.
«Milnutlit aifa.» It's the smallest.
* __TODO: ?__
# Adjectivals
Most words considered as adjectives in other languages are in fact grammatically nouns in Lántas; words such as «sabu» can be translated as 'the colour black'. When one noun modifies another attributively, the [genitive case](#corecases) suffix «-(a)t» is used. Additional adjectives after the first additionally take a special conjunctive suffix «-as», similar to the comitative case. Adjectives, like other noun modifiers, precede the head noun in most cases. However, they can follow it if they indicate a property considered inherent to the objects in question.
Genitive forms can be used as adverbs with the suffix «-tta»; the conjunctive variant is «-ttás».
<figure class=glosses>
```gloss
sabut þasi
sabu-t þasi
black-GEN dog
a black dog
```
```gloss
líbisat þasi
líbis-at þasi
happy-GEN dog
a happy dog
```
```gloss
sabut líbistas þasi
sabu-t líbis-t-as þasi
black-GEN happy-GEN-CONJ dog
a happy black dog
```
```gloss
Línaim sihatta irhi.
línai-m siha-tta irhi
mouse-GEN small-ADV squeak
The mouse is squeaking quietly.
```
</figure>
From adjectivals, several further derivations can be made: the _equative_, which expresses that two objects have an equal measure of some property; the _comparative_, which says that one object has more of a property than another object; and the _superlative_, which claims that an object has the most of a property. Derivation from «gaisi» 'white':
<figure>
------------------- --------------
Equative (EQU) «gaisi·t·sat»
Comparative (CMP) «gaisi·t·pat»
Superlative (SUPL) «gaisi·t·lit»
------------------- --------------
</figure>
The noun being compared with is in the [essive case](#corecases) for the equative, and the exessive for the comparative.
<figure class=glosses>
```gloss
ǧimagu ausutsat
ǧima-gu ausu-t-sat
house-ESS big-GEN-EQU
as big as a house
```
```gloss
fíraču panísatpat
fíra-ču panísa-t-pat
sky-EXE blue-GEN-CMP
bluer than the sky
```
</figure>

20
laantas-old/numbers.md Normal file
View file

@ -0,0 +1,20 @@
---
title: Lántas—Numbers
hidetoc: true
backname: Lántas
backlink: ../laantas
...
| | | | | | | | |
|---|----------|----|---------------|----|-------------|------|---------------|
| 1 | «nai» | 10 | «taksa» | 19 | «taksístu» | 100 | «bušŕ» |
| 2 | «pas» | 11 | «tahnai» | 20 | «pastaksa» | 1000 | «nifma» |
| 3 | «kalli» | 12 | «tappas» | 30 | «kaldaksa» | 10⁴ | «hárual» |
| 4 | «šasḿ» | 13 | «takkalli» | 40 | «šastaksa» | 10⁵ | «taksahárual» |
| 5 | «kaisi» | 14 | «taksasḿ» | 50 | «kaistaksa» | 10⁶ | «bušŕhárual» |
| 6 | «ǧutta» | 15 | «takkaisi» | 60 | «ǧuttaksa» | 10⁷ | «nifmahárual» |
| 7 | «libina» | 16 | «taččutta» | 70 | «libidaksa» | 10⁸ | «kḿpsi» |
| 8 | «ńdá» | 17 | «taksalibina» | 80 | «ńtaksa» | 10¹² | «kahmil» |
| 9 | «ístu» | 18 | «taksandá» | 90 | «ístaksa» | 10¹⁶ | «uhnat» |
Numbers between 20--99 are formed by analogy with those from 11--19, for example «kaldappas» for 32.

44
laantas-old/numbers.svg Normal file
View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="450" height="200" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<g transform="translate(5, 25) scale(5)" class="script">
<use xlink:href="defs.svg#1" />
<use xlink:href="defs.svg#2" x="8" />
<use xlink:href="defs.svg#3" x="16" />
<use xlink:href="defs.svg#4" x="23" />
<use xlink:href="defs.svg#5" x="31" />
<use xlink:href="defs.svg#6" x="38" />
<use xlink:href="defs.svg#7" x="45" />
<use xlink:href="defs.svg#8" x="54" />
<use xlink:href="defs.svg#9" x="61" />
<use xlink:href="defs.svg#0" x="70" />
</g>
<g transform="translate(5, 70)" class="word">
<text x="15">1</text>
<text x="55">2</text>
<text x="90">3</text>
<text x="130">4</text>
<text x="165">5</text>
<text x="200">6</text>
<text x="240">7</text>
<text x="279">8</text>
<text x="319">9</text>
<text x="363">0</text>
</g>
<g transform="translate(105, 135) scale(5)" class="script">
<use xlink:href="defs.svg#num" />
<use xlink:href="defs.svg#4" x="3" />
<use xlink:href="defs.svg#8" x="12" />
<use xlink:href="defs.svg#7" x="18" />
<use xlink:href="defs.svg#3" x="26" />
<use xlink:href="defs.svg#5" x="32" />
<use xlink:href="defs.svg#num" x="38" />
</g>
<g transform="translate(105, 180)" class="word">
<text x="100">48,735</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

100
laantas-old/phonology.md Normal file
View file

@ -0,0 +1,100 @@
---
title: Lántas—phonology
backname: Lántas
backlink: ../laantas
...
# Vowels
<figure>
<object data=pure-vowels.svg></object>
<object data=diphthongs1.svg></object>
<object data=diphthongs2.svg></object>
</figure>
There are three basic vowels #/i a u/, diphthongs #/ai au iə uə/, and syllabic consonants #/m̩ n̩ r̩ l̩/. Neither of these last two sets have a length distinction, and have the same duration as a long vowel. Note that #/u uː/ are substantially more central than #/i iː/, and the initial place of #/uə/ is further back than pure #/uː/.
Long vowels, and syllabic consonants other than «l», are spelt with a acute accent: «í á ú ḿ ń ŕ». A syllabic «l», because of its height, replaces the acute with a stroke: «ł». The diphthongs are spelt «ai au ia ua».
## Allophony
<figure>
<object data=vowel-allophones1.svg></object>
<object data=vowel-allophones2.svg></object>
<object data=vowel-allophones-diph.svg></object>
</figure>
* After a velar consonant, including #/ɫ w/, the vowels #/a aː ai i iː iə u uː uə/ are backed and lowered to the forms labelled #[ɑ ɑː ɑe ɛ eː eə ɔ oː ɔə], respectively, in the figures above.
* After #/j/, #/i iː iə/ become #[e eː eə].
* After #/ʧ ʤ ʃ j/, #/u uː/ is fronted to #[y ʉː].
* Before a syllabic consonant, a small schwa may be inserted if necessary to make pronunciation easier. This is most common between #/ln̩ nl̩/ and two copies of a single sound. For example, «kalń» #/kaln̩/ #[kɐlᵊn] 'cat'.
* \#/r̩ l̩/ are pronounced as #[ɻː ɫ̩ː].
* Syllabic #/n̩/ assimilates to #[ŋ̍] before a velar consonant; no other assimilation for syllabic nasals occurs, though.
* Unstressed short vowels are somewhat reduced, #/a/ more than the others.
# Consonants
Where unspecified, consonants are spelt the same way as in IPA.
| | Labial | Dental | Postalveolar | Velar |
|-------------|----------|-----------------|--------------|----------|
| Plosive | #/p b/ | #/t d/ | #/ʧ ʤ/ «č ǧ» | #/k g/ |
| Fricative | #/f/ | #/θ s/ «þ/ð, s» | #/ʃ/ «š» | #/x/ «h» |
| Nasal | #/m/ | #/n/ | | |
| Flap | #/ɾ/ «r» | | | |
| Approximant | #/w/ | #/l/ | #/j/ | |
The phonemes #/p t ʧ k s ʃ m n ɾ l x/ can be geminated. For the purposes of syllable structure, geminated consonants are counted the same as two separate ones. Geminate versions of most consonants are spelt by doubling the letter: «pp», «tt», «kk», etc. The phoneme #/θ/ is spelt «þ» word-initially (and at the beginning of components of compound words), and «ð» elsewhere.[^ð]
[^ð]: An Icelandic person on the Internet once told me off for having intramorphemic 'þ's in a language and it has stuck with me since.
## Allophony
* Before #/i iː iə/, #/ɾ/ becomes #[ʑ̞], a laminal fricative with only a small amount of actual friction, almost #[ɹ̻].
* A nasal followed by a plosive assimilates to the same place of articulation (but for compound words this is not reflected in the spelling), for example «rabanpa» #[ravampa] 'what book?'.
* The sequences #/ʧs ʃs sʃ/ are pronounced as #[tʃː ʃː ʃː].
* Nasals before #/s x/ decay to a nasalisation of the previous vowel, or are dropped entirely if that vowel is a syllabic consonant.
* Voiced plosives #/b d ʤ ɡ/ become fricatives #[v ð ʒ ɣ] between proper vowels. The allophone #[v] is pronounced #[β] by some speakers.
* The velar fricative #/x/ becomes #[h] before #/r̩/, and is palatalised to #[ç] before #/i iː iə/.
* Long #/ʧː/ is pronounced as #[ṯːʃ]. Long #/ɾ l/ become #[ʐː ɫː].
* Non-final #/l/ is velarized #[ɫ] after a back vowel (including the allophones #[ɑ ɑː]). After other vowels, it is palatalised.
* Non-syllabic #/l/ is pronounced as #[ɬʲ] at the end of words, even after a back vowel. After #/t/ it is #[ɬ]. The phoneme #/ɾ/ is also devoiced #[ɾ̥] word-finally. The sequence #/lθ/ is realised as #[ɬʲː].
* In many dialects, the long obstruents #/pː tː ʧː kː sː ʃː/ are pronounced as ejectives #[pʼ tʼ ʧ ʼ kʼ sʼ ʃʼ], and the long sonorants #/mː nː lː/ as #[bᵐ dⁿ ɮː].
# Syllable structure
<div>
The allowed shape of a syllable is <var>CV</var>(<var>C</var>) where <var>V</var> is any vowel and <var>C</var> a consonant, such that all clusters take one of the following forms:
* <var>KC</var>, where
<var>K</var> can be any of
#/m n l r θ s ʃ t/ _(coda consonants)_;
* <var>FN</var>,
where <var>F</var> can be
#/f θ s ʃ x/ _(fricatives)_ and
<var>N</var> can be
#/m n/ _(nasals)_;
* <var>P</var>#/s/, where
<var>P</var> can be #/p t ʧ k/ _(voiceless plosives)_;
* \#/pj bj lj rj/; and
* geminate consonants.
Aside from these, a word can also start with a vowel. At the end of a word, the consonants from <var>K</var> are allowed. A syllabic consonant cannot be next to the non-syllabic form of the same consonant---for example, the sequences #/ll̩/ and #/l̩l/ are not possible. Two distinct syllabic consonants can be next to each other, however---even without a non-syllabic consonant in between---and are pronounced as two separate syllables as normal.
Sometimes an inflectional ending can cause an invalid sequence of syllabic and non-syllabic consonant. In this case, the sequence is replaced with «a» plus a long form of the consonant: «suaþł» 'speaker'---«suaþalla» 'from a speaker'.
Occasionally, loanwords break the consonant clustering rules, such as «mikrugram».
</div>
# Stress
Words are stressed on the first long vowel; if there are no long vowels, _or_ the only one is in the final syllable of multiple, then the stress is on the first syllable. For the purposes of deciding stress placement, neither diphthongs nor syllabic consonants are counted as long.
# Epenthesis
Many inflectional endings begin with a consonant. In some cases, this will cause an illegal consonant cluster according to the above rules. Therefore, an epenthetic vowel will sometimes need to be inserted. This vowel depends on the affix being added, and so is given at the same time as the inflections themselves. Note that if multiple inflections are added, only the extra vowels necessary to make the word legal (going left to right) are inserted: as further affixes are stacked, these will appear to surface and vanish again. See, for instance, the examples given for [adjectival genitives](nouns.html#adjectivals).

78
laantas-old/pronouns.md Normal file
View file

@ -0,0 +1,78 @@
---
title: Lántas—Pronouns & demonstratives
backname: Lántas
backlink: ../laantas
...
Pronouns are inflected for the same cases as other nouns, though their forms are somewhat irregular.
# Personal pronouns
The first person plural «til» is only used inclusively of the listener. For an exclusive meaning, one must say «rukas ká» ('they and I') or similar. (The name «tiallántas» is fossilised, however, and does not change to «rukaskatlántas» when talking to a non-speaker.)
The LOC column is the word stems which the [locational cases](#locational_cases) are attached to. Their suffixes are regular.
<figure>
| | 1SG | 1PL | 2SG | 2PL | 3SG | 3PL |
|----:|---------|----------|---------|----------|---------|----------|
| NOM | «ká» | «til» | «sur» | «sual» | «rú» | «rúl» |
| GEN | «kat» | «tial» | «sut» | «suatł» | «rut» | «rutł» |
| COM | «kakas» | «tiksł» | «sukas» | «suksł» | «rukas» | «ruksł» |
| CAR | «kassa» | «tissal» | «sussa» | «sussal» | «russa» | «russal» |
| INS | «kala» | «tilla» | «sulla» | «sualla» | «rulla» | «rualla» |
| ESS | «kagu» | «tigul» | «sugu» | «sugul» | «rugu» | «rugul» |
| TRA | «kasti» | «tistil» | «susti» | «sustul» | «rusti» | «rustil» |
| EXE | «kaču» | «tičul» | «sučču» | «suččul» | «ruču» | «ručul» |
| LOC | «ka» | «til» | «su» | «sual» | «ru» | «rual» |
</figure>
# Demonstratives
There is a three way distance distinction for demonstratives: a new referent near the speaker/listener, a new referent distant from both, and old information. These will be glossed as 'this', 'yon', and 'that', respectively.
The near demonstrative is «lua», whose declension is given below. For distant referents it is «þua» and for old information «mua»; they decline in the same way as «lua».
The adjectival (ADJ) forms of these words are used as determiners before other nouns. Note that unlike most nouns, it is distinct from the genitive: compare «muð kalńł» 'those cats' and «mut kalńł» 'that person's cats'. It also lacks stress, unlike the other forms.
<figure>
| | Singular | Plural |
|----:|----------|-----------|
| NOM | «lua» | «lul» |
| GEN | «lut» | «lutł» |
| COM | «lukas» | «luksł» |
| CAR | «lussa» | «lussal» |
| INS | «lulla» | «lulllal» |
| ESS | «lugu» | «lugul» |
| TRA | «lusti» | «lustil» |
| EXE | «luču» | «lučul» |
| LOC | «lu» | «lul» |
| ADJ | «luð» | «luð» |
</figure>
# Indefinites
The words 'someone', 'something', 'anyone', 'anything' are served by (a stressed form of) the numeral «nai» 'one'. 'Everyone' or 'everything' is «nakasnai», and inflects the same way as «nai» itself. The words «nala» and «nakasnala» mean 'any' and 'every', respectively.
# Interrogatives
Interrogatives (question words) are formed with the enclitic «-pa», attached to any noun phrase. As well as «naipa» 'what?, who?', it can be added to any other word to mean 'which?'.
<figure class=glosses>
```gloss
Naipa musat ai?
Nai=pa mu-sa-t ai
one=what that-AD-ESS be
Who's there?
```
```gloss
Hámamlinaspa sidasiha?
háma-m-li-nas=pa sida-si-ha
country-DEF-IN-ABL=what come-RPST-2SG
Which country do you come from?
```
</figure>
Being a clitic, «-pa» is added to the end of the noun, after all other (non-clitic) endings such as case inflections, as shown in the above examples.

View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="210" height="160" xmlns="http://www.w3.org/2000/svg" version="1.1">
<g transform="translate(5,5)">
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
<!-- outer trapezoid -->
<polygon points="0 0 200 0 200 150 100 150"
fill="transparent" stroke="black" />
<!-- í -->
<circle cx="25" cy="15" r="3" fill="black" />
<text x="37" y="15" class="ipa">iː</text>
<!-- i -->
<circle cx="50" cy="30" r="3" fill="black" />
<text x="60" y="30" class="ipa">i</text>
<!-- ú -->
<circle cx="150" cy="15" r="3" fill="black" />
<text x="163" y="15" class="ipa">uː</text>
<!-- u -->
<circle cx="125" cy="30" r="3" fill="black" />
<text x="138" y="30" class="ipa">u</text>
<!-- á -->
<circle cx="110" cy="135" r="3" fill="black" />
<text x="123" y="135" class="ipa">aː</text>
<!-- a -->
<circle cx="125" cy="115" r="3" fill="black" />
<text x="115" y="115" class="ipa">a</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -0,0 +1 @@
Líbis arkunlangaskun. Subaraditḿku fíja lántaslinł suanáš, lántatł fítḿ naikuja lálkas dawinlinł suanáš. Núkaubat fírat fínáš, mulin lántatł fínášlam tikul líbis fínáš.

216
laantas-old/sc.phonix Normal file
View file

@ -0,0 +1,216 @@
import std.features
import std.symbols.ipa
import std.symbols.ipa.diacritics
#########
# SETUP #
#########
feature stress
# needs to go directly after vowel instead of the normal place
symbol ˈ (diacritic) [+stress]
symbol ɡ [(g)]
symbol ɫ [(l) +bk +hi]
symbol ɬ [(l) -son -vc]
symbol dʒ [(ʒ) -cont]
symbol tʃ [(ʃ) -cont]
feature [V] [-cons +syll]
feature [I] [[V] +fr +hi]
feature [U] [[V] -bk +hi]
feature [A] [[V] +lo]
feature [N] [+nas +cons *syll]
feature [ALV] [+ant -dist *syll +cons]
feature [PST] [+str -ant +dist *syll +cons]
# Phonix hangs if it's unable to display a sound. And fricatives aren't just
# plosive +cont, because of course they aren't.
symbol ?v [(b) +cont] rule ?v-v (persist) ?v => v
symbol ?f [(p) +cont] rule ?f-f (persist) ?f => f
symbol ?θ [(t) +cont] rule ?θ-θ (persist) ?θ => θ
symbol ?ð [(d) +cont] rule ?ð-ð (persist) ?ð => ð
symbol ?x [(k) +cont] rule ?x-x (persist) ?x => x
symbol ?ɣ [(g) +cont] rule ?ɣ-ɣ (persist) ?ɣ => ɣ
feature long
symbol ː (diacritic) [+long]
rule schwa-glide ə => [-syll]
syllable
onset [-syll]
onset [*syll]
nucleus [+syll]
coda [-syll]
coda ([-syll])[*syll]
#####################
# INITIAL ALLOPHONY #
#####################
rule nasal-assim [+nas] => [$Place] / _ [$Place +cons]
rule r-before-i ɾ => zʲ / _ i
rule s-after-postalv s => ʃ / _ [+str +dist]
rule nas-cont1 [-cons] => [+nas] / _ [[N]][+cons +cont]
rule nas-cont2 [[N]] => * / [+nas -cons] _ [+cons +cont]
rule nas-cont3 [[N]] => * / [+syll +cons] _ [+cons +cont]
rule nas-vowel-spread [-cons] => [+nas] / _ [+nas -cons]
rule nas-glide-fix
[+syll -cons][-cons -syll +nas] => [+nas][-nas]
rule iv-voiced [+vc -cont] => [+cont] / [-cons] _ [-cons]
rule x-before-sr x => h / r̩ _
rule x-after-sr x => h / _ r̩
rule x-before-i x => ç / _ i
rule double-r ɾɾ => ʐʐ
rule final-r ɾ => ɾ̥ / _ $
rule double-l ll => ɫɫ
rule postv-l l => lʲ / _ [+cons] // _ l
rule tl l => ɬ / t _
rule final-l l => ɬʲ / _ $
rule lθ lθ => ɬʲɬʲ
rule l-back l => ɫ / _ [+bk]
rule back-a [[A]] => [-fr +bk] / [+bk] _
rule lower-hi1 [[V] +hi] => [-hi +str] / [+bk] _ // [+lat] _
rule lower-hi2 [-hi -lo *long] => [-str] // _ [-cons]
rule ji [[V] +fr +hi] => [-hi +str] / j _
rule ju [[V] +bk +hi] => [-bk +fr] / j _
rule pst-u [[V] +bk +hi] => [-bk +fr] / [[PST]] _
rule wu [[V] +bk +hi] => [-hi +str] / w _
rule alv-i [[V] +fr +hi] => [-str] / [[ALV]] _
rule syll-l l̩ => ɫ̩
rule syll-n-v n̩ => ŋ̩ / _ [+bk +cons]
#################
# SOUND CHANGES #
#################
rule init-j-nasal j => ɲ / $ _
rule iv-j-fort j => ʒ / [[V]] _ [[V]]
rule au-mono [[A] *stress] => ɔː / _ w
rule au-mono2 w => * / [(ɔː)] _
rule ai-mono-f [[A] *stress] => æː / _ j
rule ai-mono-f2 j => * / [(æː)] _
rule uə-mono [[V] *stress +bk] => ɤː / _ ə̯
rule uə-mono2 ə̯ => * / [(ɤː)] _
rule iə-mono [[V] *stress +fr *ro] => ɨː / _ ə̯
rule iə-mono2 ə̯ => * / [(ɨː)] _
rule ye-mono [[V] *stress +fr +ro] => øː / _ ə̯
rule yə-mono2 ə̯ => * / [(øː)] _
rule hiatus-merge1 [+long] => [*long] / _ [[V]]
rule hiatus-merge2 [+long] => [*long] / [[V]] _
rule hiatus-merge3 [[V]] => [-syll] / [[V]] _
rule one-glide [-cons -syll] => * / _ [-cons -syll]
rule ns-a-frontness [-cons -syll +lo] => [$fr $bk] / [-cons $fr $bk] _
rule eow-nasal1 [[V]] => [+nas] / _ [+nas *syll] $
rule eow-nasal2 [+nas *syll] => * / [[V] +nas] _ $
syllable
onset [-syll]
onset [*syll]
nucleus [+syll]
coda [-syll]
coda ([-syll])[*syll]
rule poststress-vowel1 [[V] *long] => * / [+stress] [*syll] _ [] // _ [<coda>]
rule poststress-vowel2 [[V] *long] => * / [+stress] [-syll] _ [] // _ [<coda>]
rule unstressed-short [[V] *stress] => [*long] // _ $
rule eow-u [[V] +ro -fr] => u / _ $
rule eow-schwa1 [[V] *long *nas -hi] => ə / _ $
rule no-v-wj [-cons -syll] => * / [+cons] _ [+cons]
rule init-glide-cons [-cons -syll] => * / $ _ [+cons]
rule syll-glide [+cons +syll *stress] => [*syll] / _ [-cons -syll]
rule l-light ɫ => l / _ j
rule l-pal l => ʎ / _ j
rule l-pal2 j => * / ʎ _
rule syll-r-v1 * => ɑ / _ [(r̩)]
rule syll-r-v2 [+syll] => [+stress] / _ [(r) +stress]
rule syll-r-v3 [(r̩)] => ɾ
rule syll-n-v1 n̩ˈ => ɛ̃ˈ
rule syll-n-v2 * => j / ɛ̃ˈ _
rule syll-n-v3 n̩ => ɛ̃
rule syll-m-v1 m̩ˈ => ɔ̃ˈ
rule syll-m-v2 * => w / ɔ̃ˈ _
rule syll-m-v3 m̩ => ɔ̃
rule syll-l-v1 ɫ̩ˈ => uˈ
rule syll-l-v2 ɫ̩ => u
syllable
onset [-syll]
onset [*syll]
nucleus [+syll]
coda [-syll]
coda ([-syll])(ɾ)[*syll]
rule nonrhotic [(ɾ) <coda>] => ə̯
rule a-r a => ɑ / _ ə̯
rule voice-l [(ɬ)] => l
rule coda-l [+lat <coda>] => ɫ
rule debuc-fric-coda
[+cont -vc <coda> $Place $Manner] => χ // _ [$Place $Manner]
rule debuc-fric-coda2
χ => ç / [+fr +syll] _
rule ts-pal1 t => tʃ / _ s
rule ts-pal2 s => * / tʃ _
rule ts-pal3 ɪ => i / [[PST]] _
rule nasal-a ã => ɑ̃
rule nasal-y [+fr +hi +ro +nas +syll] => ø̃
rule nasal-i [+fr +hi *ro +nas +syll] => ẽ
rule nasal-u [+bk +hi +nas +syll] => õ
rule ps p => w / [-cons] _ s
rule ww w => * / _ w
rule ks k => j / [-cons] _ s
rule jj j => * / _ j
rule iv-pls-v [-cont -vc] => [+vc] / [-cons] _ [-cons]
rule iv-s-v s => z / [-cons] _ [-cons]
rule iv-š-v ʃ => ʒ / [-cons] _ [-cons]
rule iv-gem-s
[-son $Place $Manner] => * / [-cons] _ [$Place $Manner] [-cons]
rule iv-gem-s2 t => * / _ tʃ
rule final-i-pst [+hi +fr *ro] => * / [[PST]] _ $
rule ð-ɣ ð => ɣ / [-cons] _ [-cons]
rule ð-ː ð => [$Place $Manner $vc] / [+cons $vc $Place $Manner] _
rule ɣ-w wɣ => ɣw
rule ɣ-j ɣ => * / j _
rule t-pls t => θ / _ [-cont] // _ t
rule ə̯-unstressed ə̯ => * / [*stress] _ // _ $
rule a-unstressed [+lo *stress] => ə // _ [-cons <coda>]
rule ɣɣ => ʁ
rule χɾ χ => ʃ / _ ɾ
###########
# CLEANUP #
###########
rule cleanup-syll [+cons -syll] => [*syll]

121
laantas-old/script.md Normal file
View file

@ -0,0 +1,121 @@
---
title: Lántas—Writing System
backname: Lántas
backlink: ../laantas
...
<style>
object.script { vertical-align: middle; }
</style>
Lántas is natively written with an [abugida], meaning that consonants are full letters, while vowels (including syllabic consonants) are written as modifiers to the previous consonant.
[abugida]: https://en.wikipedia.org/wiki/Abugida
As an example of how it looks, here is the first sentence of [The North Wind and the Sun][nwas]:
[nwas]: examples.html#the-north-wind-and-the-sun
<figure>
<object class=script data=northwind2.svg></object>
</figure>
# Independent vowels
These are used when a word begins with a vowel (or syllabic consonant).
<figure>
<object class=script data=ivowels.svg></object>
</figure>
# Vowel diacritics
These are attached to a consonant symbol to indicate the following vowel.
<figure>
<object class=script data=dvowels.svg></object>
</figure>
# Base consonants
These letters are the base shapes for single consonants. The glyphs below do not actually mean anything (except the one for «j»); the final stem is given a descender for an #/a/, and an underline indicates no vowel. (See [above](#vowel-diacritics).)
<figure>
<object class=script data=consonants.svg></object>
</figure>
Consonant clusters are written with a ligature called a _conjunct_ derived from the two base letters.
# Conjunct consonants
While many conjuncts are not exactly the two consonants mashed together, the form is usually predictable.
## Conjuncts with «t»
<figure>
<object class=script data=conjuncts-t.svg></object>
</figure>
## Conjuncts with «ð»
<figure>
<object class=script data=conjuncts-th.svg></object>
</figure>
## Conjuncts with «s»/«š»
The conjuncts starting with «š», other than «šp», are the same as with «s» except with the overline added. (In «šš» the overlines merge, as shown below.)
<figure>
<object class=script data=conjuncts-s.svg></object>
</figure>
## Conjuncts with «l»
<figure>
<object class=script data=conjuncts-l.svg></object>
</figure>
## Conjuncts with «m»
<figure>
<object class=script data=conjuncts-m.svg></object>
</figure>
## Conjuncts with «n»
<figure>
<object class=script data=conjuncts-n.svg></object>
</figure>
## Conjuncts with «r»
<figure>
<object class=script data=conjuncts-r.svg></object>
</figure>
## Others
<figure>
<object class=script data=conjuncts-o.svg></object>
</figure>
# Punctuation
The end of phrase <object class=script data=eop.svg></object> and end of sentence <object class=script data=eos.svg></object> marks, transcribed as commas and full stops/question marks/exclamation marks[^fs], have the same amount space either side of them, more for the latter. When they are on a line break, they stay with the previous word, like in the example at the top of this page (and like in most scripts).
[^fs]: Even though there's no distinction in the native script, questions look weird in the transcription with no "?" after them.
# Numbers
Numbers are written in base 10 using modified letters. Numbers in running text are surrounded by double vertical bars, and digits are grouped into fours.
<figure>
<object data=numbers.svg></object>
</figure>

BIN
laantas-old/script.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

12
laantas-old/syntax.md Normal file
View file

@ -0,0 +1,12 @@
---
title: Lántas—Syntax
backname: Lántas
backlink: ../laantas
...
__TODO__
- word order head-final
- polite address avoids 2nd person pronouns/verb suffixes
- the more X, the more Y: lusari X-CMP vb, musari Y-CMP [vb] NB no accent
- place-manner-time by default

233
laantas-old/verbs.md Normal file
View file

@ -0,0 +1,233 @@
---
title: Lántas—Verbs
backname: Lántas
backlink: ../laantas
...
__TODO: intro__
The infinitive is unmarked (but always ends in a vowel), and is the citation form for verbs as well as being used in several constructions.
# Tense
There is a distinction between two different past tenses, _recent_ and _distant_ past. The recent past is most commonly used, while the distant past is used to denote an action happening further in the past than to another action already expressed using the recent.
Stories are narrated in the present tense.
<figure>
-------------------- --------
Distant past (DPST) «--sai»
Recent past (RPST) «--si»
Present (PRS) «--»
Future (FUT) «--má»
-------------------- --------
</figure>
<figure class=glosses>
```gloss
Þasim kalńḿt jaðí.
þasi-m kalń-ḿ-t jaðí
dog-DEF cat-DEF-GEN love;PRS
The dog loves the cat.
```
```gloss
Þasim kalńḿt jaðísi.
þasim kalńḿt jaðí-si
the:dog the:cat love-RPST
The dog loved the cat.
```
```gloss
Þasim kalńḿt jaðísai.
þasim kalńḿt jaðí-sai
the:dog the:cat love-DPST
The dog had loved the cat (until …).
```
```gloss
Þasim kalńḿt jaðímá.
þasim kalńḿt jaðí-má
the:dog the:cat love-FUT
The dog will love the cat.
```
</figure>
# Person
These suffixes are used instead of pronouns, but not used with nouns, in the subject and object positions. The subject suffix comes before the object. For the plural, the vowel is lengthened and an «--š» is added (e.g. «na» → «náš»).
Just like with the [pronouns](#pronouns), the first person plurals «--náš» and «--dúš» can only be used with an inclusive meaning. The exclusive sense is expressed by using conjunctions of pronouns instead of suffixes.
<figure>
  1st person 2nd person 3rd person
-------------- ------------ ------------ -----------
Subject (SBJ) «--na» «--ha» «--fa»
Object (OBJ) «--du» «--gu» «--bu»
-------------- ------------ ------------ -----------
</figure>
<figure class=glosses>
```gloss
Bairunagu.
bairu-na-gu
see-1SG;SBJ-2SG;OBJ
I see you.
```
```gloss
Þasim bairunáš.
þasi-m bairu-náš
dog-DEF see-1PL;SBJ
We see the dog.
```
```gloss
Þasim bairudúš.
þasi-m bairu-dúš
dog-DEF see-1PL;OBJ
The dog sees us.
```
</figure>
# Voice
There is a four way voice distinction. The voice markers are placed between the tense and person markers.
- The _active_ voice is the default form of the verb and does not modify the roles of the arguments.
- The _passive_ voice promotes the direct object of the verb to subject position, leaving the former subject role unspecified. There is no way to specify the agent (i.e., no equivalent to _by_); to merely emphasise the object but keep the subject specified, the object can be moved to the beginning of the clause.
- The _reflexive_ voice indicates that the subject(s) act on themselves.
- The _reciprocal_ voice indicates that the subjects act on each other.
<figure>
----------------- ----------
Active (ACT) «--»
Passive (PSV) «--lú»
Reflexive (RFL) «--sidu»
Reciprocal (RCP) «--lði»
----------------- ----------
</figure>
<figure class=glosses>
```gloss
Þasimat tassána.
þasimat tassá-na
the:dog wash-1SG
I wash the dog.
```
```gloss
Þasim tassálú.
þasim tassá-lú
the:dog wash-PSV
The dog is washed.
```
```gloss
Tassásiduna.
tassá-sidu-na
wash-RFL-1SG
I wash myself.
```
```gloss
Tassálðináš.
tassá-lði-náš
wash-RCP-1PL
We wash each other.
```
</figure>
# Negative
__TODO__
«--tul»
# Nominal forms
A verb stem can also be used as a noun: for example, «šikkú» both means 'to go' and 'an act of going'. The definite plural is also used to mean the act in a general sense. The definite form is also used for the verb of content clauses, for example indirect quotations.
Auxiliary verbs such as modals use this construction as well.
<figure class=glosses>
```gloss
hipsamł
hipsa-m-ł
solve_problem-DEF-PL
logic (the general act of problem solving)
```
```gloss
Fíra fuham suasifa.
fíra fuha-m sua-si-fa
air blow-DEF say-RPST-3SG
He said it was windy.
```
```gloss
Šikkúnamat ušminatul.
šikkú-na-m-at ušmi-na-tul
go-1SG-DEF-GEN want-1SG-NEG
I don't want to go.
```
</figure>
# Modifier forms
__TODO__ used to form relative clauses, come before noun & other modifiers
- «--ja»: other
- «núm bairuja þasim»: the dog the man sees
- «núm bairusija þasim»: the dog the man saw
- nominalised with extra «-ð» at the end
# Pro-verbs
Pro-verbs are placeholders standing in for verb phrases; they are the verb equivalent of pronouns.
The word for 'to do this' is «mai». It bears an obvious resemblance to the [pronoun] «mua». There are also the rarer «lai» and «þai», only used when contrasting between two options.
- «Naranášḿ iš lut saunusam gibanášḿ fulla. _Laim iš þaim_ ušmiha?»
We can walk or take the bus. _Which_ do you want to do?
- «_Þaim_ ušmina.»
I want to do _that_ (i.e., take the bus).
There is also a negative pro-verb «tulla», 'to not do this/that'.
[pronoun]: pronouns.html
# Polar questions
__TODO__
Polar (yes/no) questions add a «--ǧi» clitic on the word or phrase being questioned. The word being questioned receives the primary stress. If there is no particular focus for the question, it is attached to the final word of the sentence.
<figure class=glosses>
```gloss
Inlantimsasǧi šikkúmáha?
Inlanti-m-sa-s-ǧi šikkú-má-ha
England-DEF-AD-LAT-QU go-FUT-2SG
Are you going to England (vs going somewhere else)?
```
```gloss
Surǧi Inlantimsas šikkúmá?
sur-ǧi Inlantimsas šikkúmá
2SG-QU to:England will:go
Is it you (vs someone else) who is going to England?
```
```gloss
Inlantimsas šikkúmáhaǧi?
Inlantimsas šikkúmáha-ǧi
to:England you:will:go-QU
Are you going to England (vs coming from it)?
```
</figure>
To answer a yes/no question, the verbs «mai» or «tulla», respectively, are conjugated for person (but not tense, etc). Their literal meaning are as pro-verbs, 'to (not) do this'.
- «Inlantimsasǧi šikkúmáha?---Maina/Tullana.»
Are you going to England?---Yes, I am/No, I'm not.

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="210" height="160" xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<marker id="arrowhead"
markerWidth="10" markerHeight="12"
orient="auto" refX="11" refY="5"
viewBox="0 0 12 10">
<polygon points="0 0 12 5 0 10" fill="black" />
</marker>
<marker id="circle"
markerWidth="6" markerHeight="6"
orient="auto" refX="3" refY="3"
viewBox="0 0 6 6">
<circle cx="3" cy="3" r="3" fill="black" />
</marker>
</defs>
<g transform="translate(5,5)">
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
<!-- outer trapezoid -->
<polygon points="0 0 200 0 200 150 100 150"
fill="transparent" stroke="black" />
<line x1="55" y1="55" x2="115" y2="70"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="80" y="50" class="ipa"></text>
<line x1="190" y1="105" x2="130" y2="70"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="175" y="83" class="ipa">ɔə</text>
<line x1="175" y1="120" x2="90" y2="80"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="120" y="105" class="ipa">ɑe</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="210" height="160" xmlns="http://www.w3.org/2000/svg" version="1.1">
<g transform="translate(5,5)">
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
<!-- outer trapezoid -->
<polygon points="0 0 200 0 200 150 100 150"
fill="transparent" stroke="black" />
<circle cx="55" cy="65" r="3" fill="black" />
<text x="65" y="65" class="ipa">e</text>
<circle cx="50" cy="40" r="3" fill="black" />
<text x="63" y="40" class="ipa">eː</text>
<circle cx="160" cy="55" r="3" fill="black" />
<text x="170" y="57" class="ipa">o</text>
<circle cx="160" cy="40" r="3" fill="black" />
<text x="173" y="38" class="ipa">oː</text>
<circle cx="185" cy="135" r="3" fill="black" />
<text x="172" y="135" class="ipa">ɑː</text>
<circle cx="175" cy="115" r="3" fill="black" />
<text x="185" y="115" class="ipa">ɑ</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<?xml-stylesheet type="text/css" href="/stylesheets/lang-svg.css"?>
<svg width="210" height="160" xmlns="http://www.w3.org/2000/svg" version="1.1">
<g transform="translate(5,5)">
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
<!-- outer trapezoid -->
<polygon points="0 0 200 0 200 150 100 150"
fill="transparent" stroke="black" />
<circle cx="75" cy="95" r="3" fill="black" />
<text x="85" y="95" class="ipa">ɛ</text>
<circle cx="160" cy="80" r="3" fill="black" />
<text x="170" y="83" class="ipa">ɔ</text>
<circle cx="65" cy="30" r="3" fill="black" />
<text x="55" y="30" class="ipa">y</text>
<circle cx="90" cy="25" r="3" fill="black" />
<text x="104" y="23" class="ipa">ʉː</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 940 B

265
laantas-old/words.lst Normal file
View file

@ -0,0 +1,265 @@
Atlantim
Włjáhámam
abjas
abuda
ai
amar
asum
asura
asurai
atkir
ausu
aða
ba
bahú
bairu
bais
bassa
baudan
bauðu
bisi
bulla
bušŕ
bušŕhárual
bássa
dagu
daičči
dalu
dansu
dawa
dawajua
dawin
daš
dufna
dus
fadau
fasil
fuha
fullu
fíra
fńt
fńtjat
fńtraban
fḿka
gaisi
gappa
gari
gašna
giba
gifu
gimi
gimimgi
gimimli
gimimðu
gram
gulmi
guruba
guwan
guwin
gḿba
haidai
haidaitŕ
hakka
hatas
hipsa
háma
hárual
ibja
iksa
inlandi
ippau
irhi
išŕ
iššas
jat
jaðí
jašai
jua
juš
júli
kahmil
kai
kaisi
kaistaksa
kaldaksa
kalli
kalsu
kalń
kassa
kauba
kautu
ki
kihnu
kilu
kiši
kuafú
kuafúsas
kubu
kudas
kufnu
kukki
kášń
kútsi
kḿpsi
lahmis
laimi
laksir
laksŕ
lau
libidaksa
libina
lippu
lippupanísa
lira
lis
lisma
litra
ličča
lua
lun
lántas
líbis
línai
magń
manifnu
mapa
mapsu
matham
mašku
maškutraban
miašša
miga
mikru
milli
milnu
minu
mitra
mua
mulin
mílla
nai
naigimi
naipa
nakasnai
nakku
nala
nalapa
namaksu
nara
nassú
nattu
niasga
niba
nibaran
nifma
nifmahárual
nis
nuabia
pa
panísa
panísalippu
parai
pas
pastaksa
pašu
raban
ran
rusmá
rúl
sabu
sairia
samń
santi
santu
saunu
sawai
sida
sira
siraikášń
sua
sual
suapa
sufa
sumu
sur
sural
słka
tahnai
takkaisi
takkalli
taksa
taksahárual
taksalibina
taksandá
taksasḿ
taksístu
tamnis
tappas
tassá
taččutta
tiallántas
til
tippi
tippilun
tiwa
tuka
tutim
tušura
tušurajað
tílju
tíru
túsal
ufan
uhnat
učča
ušmi
waibi
waračča
wassuna
waugar
włjá
ákkí
ístaksa
ístu
ðiš
þalussu
þasi
þua
þuna
þł
časmá
čauba
čá
čámus
ńdá
ńgua
ńtaksa
ŕ
ŕminu
šakka
šaksḿ
šastaksa
šasḿ
ši
šikkú
šun
šúsł
ǧasku
ǧima
ǧimadalu
ǧisa
ǧunai
ǧutta
ǧuttaksa
ǧáhnu

View file

@ -25,19 +25,16 @@ mansi:
d:
- read
- understand
- manna:
d: ok
n: (from mansina)
e:
o: bairusinabu, ŕminu, mansisinabutul
t: i (tried to) read it but I didn't understand
bauƶu:
bauðu:
p: ˈbaw.θu
t: n
d:
- west
- bauƶut: western
- bauðut: western
čá:
p: ˈtʃaː
@ -79,12 +76,13 @@ guwan:
d:
- sun
- day
- guwanḿ: summer (jun-aug)
ǧáhnu:
p: ˈdʒaːx.nu
t: n
d: brown, orange
d:
- autumn
- ǧáhnut: brown, orange
ǧima:
p: ˈdʒi.ma
@ -107,7 +105,7 @@ háma:
- land
- country
jaƶí:
jaðí:
p: ˈja.θiː
t: {v: t}
d: love
@ -117,8 +115,8 @@ kalń:
t: n
d: cat
rawŕ:
p: ra.wr̩
kautu:
p: ˈkaw.tu
t: n
d: dragon
@ -159,9 +157,8 @@ tiallántas:
see: lántas
líbis:
p: ˈliː.bis
ds:
- t: n
- p: ˈliː.bis
t: n
d: happiness
- t: interj
d: hi!
@ -188,18 +185,14 @@ parai:
- write
- "lisla parai":
- rewrite
- d: translate
n: 'from: INABL'
- 'translate (from: INABL)'
ustai:
p: ˈus.tai
ds:
- t: {v: i}
d: sing
- t: n
d:
- song
- ustail: (also) magic
d: song
purai:
p: ˈpu.ɾaj
@ -211,8 +204,8 @@ iksa:
t: n
d: hand
kufu:
p: ˈku.fu
guabu:
p: ˈɡua.bu
t: n
d: [crap, shit]
n: vulgar, obviously
@ -228,12 +221,11 @@ raban:
d: book
ran:
p: ˈɾan
ds:
- t: n
- p: ˈɾan
t: n
d:
- thing
- of them (after quantity)
- of them (after quantity; used instead of rúl)
- ranł: mood (coll)
- ranla:
d: of
@ -306,9 +298,8 @@ naigimi:
d: sometime
gimimli:
p: gi.ˈmim.li
ds:
- t: adv
- p: gi.ˈmim.li
t: adv
d: then
n: at a time clear from context
- t: {pp: GEN}
@ -317,12 +308,10 @@ gimimli:
sá:
p: ˈsaː
t: adv
d:
- now
- sá sá: these days
d: now
n: usually fronted in sentence
gimimƶu:
gimimðu:
p: ɡi.ˈmim.θu
t: {pp: GEN}
d: before
@ -339,12 +328,12 @@ włjá:
- east
- włját: eastern
ƶasi:
þasi:
p: ˈθa.si
t: n
d: dog
ƶł:
þł:
p: ˈθl̩
t: {suf: [n, n]}
d: person
@ -365,10 +354,10 @@ ai:
p: ˈaj
t: {v: i}
d: be (copula)
see: suwai
see: sawai
suwai:
p: ˈsu.waj
sawai:
p: ˈsa.waj
t: {v: i}
d: exist
n: used with locations
@ -386,12 +375,12 @@ jua:
t: {suf: [_, _]}
d: excessive, very
laƶas:
laðas:
p: ˈla.θas
t: n
d: proud
laƶasjua:
laðasjua:
t: n
d: pretension
@ -484,7 +473,6 @@ júli:
p: ˈjuː.li
t: {v: t}
d:
- use (with direct object)
- put (with lative cases)
- take (with ablative cases)
@ -613,9 +601,8 @@ mikru:
d: micro
nai:
p: ˈnaj
ds:
- t: num
- p: ˈnaj
t: num
d:
- one
- nat: first
@ -900,7 +887,7 @@ lua:
d: this
n: near speaker
ƶua:
þua:
p: ˈθuə
t: prn
d: that
@ -966,17 +953,12 @@ rauš:
nakasnai:
p: ˈna.kas.naj
t: prn
n: also násna
d:
- everyone
- everything
- nakasnala:
d: [every, all]
n: - used with plural
- also násná
- nakasnanua:
d: [always]
n: also násnua
n: used with plural
sufa:
p: ˈsu.fa
@ -988,9 +970,8 @@ sufa:
- choose
fuha:
p: ˈfu.xa
ds:
- t: {v: i}
- p: ˈfu.xa
t: {v: i}
d:
- blow
- whistle
@ -1064,13 +1045,12 @@ abjas:
- equal to (mathematics)
see: laimi
ƶuna:
þuna:
p: ˈθu.na
t: adv
d:
- exactly
- "ƶuna gimimli": just now
- ƶunat: exact
- "þuna gimimli": just now
daš:
p: ˈdaʃ
@ -1078,12 +1058,11 @@ daš:
d:
- because
- dašpa: why?
# see: galtúm # this word no longer exists??????
see: galtúm
lisma:
p: ˈlis.ma
ds:
- t: {pp: GEN}
- p: ˈlis.ma
t: {pp: GEN}
d: regardless of
- t: conj
d: regardless of whether or not
@ -1154,11 +1133,11 @@ manifnu:
- manifnut:
- pleasant
- nice
- taƶmanifnuču:
- taðmanifnuču:
- disgusting
- (stronger than just \'unpleasant\')
taƶ:
tað:
p: taθ
t: {pre: [n, n]}
d: 'un-'
@ -1189,21 +1168,16 @@ nuabia:
t: {v: t}
d:
- throw
- radiate
- "rút čauba": give up (coll)
tílju:
p: ˈtiːl.ju
ds:
- t: n
d:
- light
- energy
- p: ˈtiːl.ju
t: n
d: light
- t: {v: i}
d:
- glow
- shine (of the sun)
- smile
waračča:
p: wa.ˈɾat.tʃa
@ -1260,18 +1234,6 @@ iksa:
n:
- imperative auxiliary
- only used in second person
- if 2sg is the subject of the auxiliary clause too, the marker in that
clause can be omitted
- can be used alone with an adjectival noun for the object
e:
- o: šikkúm iksaha
t: go away
- o: rusmánam iksaha
t: let me sleep
- o: kait iksaha
t: be good
- o: ufat iksaha
t: stay warm (said on oct 31, the last day before winter)
gari:
p: ˈɡa.ɾi
@ -1395,7 +1357,6 @@ kai:
d:
- goodness
- kait: good
- "Y.NOM kait X.INTER.ESS ai": X likes Y
wá:
p: ˈwaː
@ -1420,12 +1381,10 @@ ahna:
d: try
šúsł:
p: ˈʃuː.sl̩
p: ˈʃu.sl̩
t: {v: t}
d: want
n:
- used with object only
- passive is šusullú
n: used with object only
see: ušmi
lis:
@ -1445,7 +1404,6 @@ ufan:
- ufat:
- warm
- bright
- ufit: cozy
bisi:
p: ˈbi.si
@ -1462,7 +1420,6 @@ ličča:
d:
- multitude
- liččala: many
- liččali: usually
dagu:
p: ˈda.ɡu
@ -1473,7 +1430,7 @@ dagu:
- "n dagut": n-time
- "n dagutta": n times
aƶa:
aða:
p: ˈa.θa
t: n
d: eye
@ -1483,7 +1440,7 @@ tutim:
t: adv
d: often
ƶiš:
ðiš:
p: θiʃ
t: {suf: [n, n]}
d: (diminutive)
@ -1500,7 +1457,7 @@ tutim:
d:
- height
- zenith
- šim: honour
- honour
- šisa: high
- šisas: upwards
@ -1513,8 +1470,8 @@ ki:
- kisa: low
- kisas: downwards
gulai:
p: ˈgu.lai
niasga:
p: ˈniəs.ɡa
t: {v: i}
d: jump
@ -1536,7 +1493,6 @@ santu:
d:
- rain
- santutippi: rainwater
- santum: autumn (sep-oct)
n: has tippim as subject
kassa:
@ -1549,7 +1505,7 @@ tušura:
t: {v: t}
d: twist
tušurajaƶ:
tušurajað:
p: ˈtu.ʃu.ɾa.jaθ
t: n
d: screw
@ -1559,7 +1515,7 @@ tušurat dawin:
p: ˌtu.ʃu.ɾat ˈda.win
t: n
d: screwdriver
see: [tušura, tušurajaƶ]
see: [tušura, tušurajað]
dawin:
p: ˈda.win
@ -1670,9 +1626,7 @@ kihnu:
pašu:
p: ˈpa.ʃu
t: {v: t}
d:
- break
- damage
d: break
matham:
p: ˈmat.xam
@ -1702,18 +1656,6 @@ nis:
t: n
d: thought
siha:
p: ˈsi.xa
t: {v: t}
d:
- remember
- be careful with
siham:
t: n
d:
- memory (of a single event)
- sihamł: memory (in general)
mašku:
p: ˈmaʃ.ku
@ -1760,8 +1702,8 @@ kauba:
- intelligence
- časmát: intelligent
guba:
p: ˈɡu.ba
gḿba:
p: ˈɡ.ba
t: {v: i}
d: [grow, thrive]
@ -1780,25 +1722,18 @@ lira:
- press
- squeeze
- "samńt lira": print
- "lirajaƶ":
- "lirajað":
d:
- printer
- printing press
n:
in full, samńt lirajaƶ
in full, samńt lirajað
ƶalussu:
þalussu:
p: ˈθa.lus.su
t: {v: t}
d: kill
lapusu:
p: ˈla.pu.su
t: n
d:
- pain
- lapusut: painful, dangerous
tiwa:
p: ˈti.wa
t: n
@ -1825,7 +1760,6 @@ lau:
kalsu:
p: ˈkal.su
ds:
- t: {v: t}
d: [strike, hit]
- t: n
@ -1834,10 +1768,7 @@ kalsu:
asurai:
p: ˈa.su.ɾaj
t: {v: i}
d:
- change
- become (with TRA)
- become more [quality] (with IN-LAT)
d: change
dus:
p: ˈdus
@ -1872,29 +1803,16 @@ giba:
t: to ride a vehicle (e.g. a bus)
saunu:
p: ˈsau.nu
ds:
- t: n
- p: ˈsau.nu
t: n
d:
- wheel
- vehicle
- šámsaunu: car
- passaunu: bike
- t: {v: i}
d: turn
šámsaunu:
p: ˈʃaːm.sau.nu
t: n
d: car
n: '"fourwheel"'
see: [šasm, saunu]
pasaunu:
p: ˈpa.sau.nu
t: n
d: bike
n: '"twowheel"'
see: [pas, saunu]
lut saunu:
t: n
d: bus
@ -1908,9 +1826,8 @@ gifu:
niba:
p: ˈni.ba
ds:
- t: n
- p: ˈni.ba
t: n
d: spider
- t: {v: i}
d: spin a web
@ -1947,20 +1864,19 @@ túsal:
- wisdom
- túsat: wise
maƶka:
maðka:
p: ˈmaθ.ka
t: n
d:
- chain
- gurubatł maƶka: bandwagon
- gurubatł maðka: bandwagon
# fuba:
# p: ˈfu.ba
# t: {v: i}
# d:
# - rúsas fubasidu: roll oneself up
# - rúsan fubasidu: unroll oneself
# TODO what is the rú here????
fuba:
p: ˈfu.ba
t: {v: i}
d:
- rusas fubasidu: roll oneself up
- rusan fubasidu: unroll oneself
naiku:
p: ˈnai.ku
@ -1996,17 +1912,12 @@ gipa:
t: n
d: neck
gunnu:
p: ˈɡun.nu
t: n
d: belly
jaisi:
p: ˈjai.si
t: n
d: dream
n:
- taƶjaisi: nightmare
- taðjaisi: nightmare
luwa:
p: ˈlu.wa
@ -2028,156 +1939,5 @@ fas:
ǧiššima:
p: ˈdʒiʃ.ʃima
t: n
d:
- oven
- bakery
- dawinǧiššima: forge
d: [oven, bakery]
see: [ǧisa, ǧima]
wasal:
p: ˈwa.sal
t: n
d: animal
wiǧi:
p: ˈwi.dʒi
t: {v: t}
d: share
wiǧiran:
t: n
d: society
see: [wiǧi]
kuwis:
p: ˈku.wis
t: n
d:
- source
- fountain
- input
pil:
p: pil
t: n
d:
- shape
- type
aga:
t: n
d:
- body
- agamatta: physically
tisu:
t: {v: aux}
d: if...then
n:
- see the grammar for details (when i write them)
- if-clause nominalised in in-abl
- then-clause is main, with tisu as aux verb
e:
o: bairunagulinḿ ákkínam tisu
t: if i see you i will scream
duguwa:
t: {v: t}
d:
- shun
- avoid
n: object in APUD-ABL
šani:
p: ˈʃa.ni
t: n
d:
- flower
- šangubam: spring (mar-may)
see: guba
igis:
p: ˈiɡ.is
t: n
d:
- ice
- crystal (also kut igis)
see: kus
igisi:
p: ˈi.ɡi.si
t: {v: t}
d:
- freeze
- igisim: winter (nov-jan)
- ƶulkusim: midwinter (solstice)
see: [igis, ƶulku]
susuru:
p: ˈsu.su.ɾu
t: {v: i}
d:
- melt
- susurum: intermediate between winter and spring (feb)
ƶulku:
p: ˈdʒul.ku
t: {v: i}
d: be deep
n: not a noun, unlike most adjectives. who knows why
patta:
p: ˈpat.ta
t: n
d: door
šil:
p: ʃil
t: n
d:
- layer
- floor (level in building)
kus:
p: kus
t: n
d: [stone, rock]
pasaga:
p: ˈpa.sa.ɡa
t: n
d: taur
see: [pas, aga]
lagan:
p: ˈla.ɡan
t: {pp: INS}
d: belonging to
n: used to disambiguate ownership from other meanings of the genitive
kið:
t: n
d: ring
álitkið:
t: n
d: collar
see: [álit, kið]
dulwa:
t: n
d: leg
dilwi:
t: n
d: sock
see: dulwa
n: '"leggy"'
talas:
t: n
d: [head, tip, point]
usu:
t: n
d: mind

View file

@ -1,733 +0,0 @@
{-# OPTIONS_GHC -Wno-missing-signatures -Wno-name-shadowing #-}
module Glyphs
(Glyph (..), Diacritic, simpleDia, Segs (..), EGlyph, Word, doGlyphs,
withSize,
charHeight', lineHeight', spaceWidth', gap',
charHeight, lineHeight, spaceWidth, gap,
initials, finals, vowels, medials, num, numbers, punctuation, wave)
where
import Prelude hiding (Word)
import Data.Map (Map)
import qualified Data.Map.Strict as Map
import GlyphsBase
initials :: Map Text Glyph
initials = Map.fromList $
tGlyphs <> kGlyphs <> ƶGlyphs <> sGlyphs <> šGlyphs <> lGlyphs <>
mGlyphs <> nGlyphs <> rGlyphs <> pGlyphs <> bGlyphs <>
čGlyphs <> hGlyphs <> fGlyphs <>
[("g", g), ("d", d), ("ǧ", ǧ), ("w", w), ("j", j)]
finals :: Map Text Glyph
finals = Map.fromList $
[("t",t0), ("ƶ", ƶ0), ("s",s0), ("š",š0), ("l",l0), ("m",m0),
("n", n0), ("r", r0), ("f", f0)]
medials :: Map Text [Diacritic]
medials = Map.fromList $
[("a", da), ("á", ), ("i", di), ("í", ), ("u", du), ("ú", ),
("ai", dai), ("au", dau), ("ia", dia), ("ua", dua), ("ḿ", dḿ),
("ń", ), ("ł", ), ("ŕ", )]
vowels :: Map Text Glyph
vowels = Map.fromList vGlyphs
tGlyphs = [("t",t), ("tt",tt), ("tk",tk), ("tg",tg), ("td",td), ("",),
("tp",tp), ("tb",tb), ("ts",ts), ("",), ("tl",tl), ("tm",tm),
("tn",tn), ("tr",tr), ("",), ("",), ("tw",tw), ("th",th),
("tf",tf), ("tj",tj)]
t = simpleG tPath 5.5
tt = simpleG ttPath 7
tk = simpleG tkPath 9
tg = simpleG tgPath 9
td = simpleG tdPath 9
= simpleG tƶPath 9
tp = simpleG tpPath 9.5
tb = simpleG tbPath 10
ts = simpleG tsPath 9
= simpleG tšPath 9
tl = simpleG tlPath 8.5
tm = simpleG tmPath 10
tn = simpleG tnPath 9
tr = simpleG trPath 7
= simpleG tčPath 9
= simpleG tǧPath 10
tw = simpleG twPath 10
th = simpleG thPath 12
tf = simpleG tfPath 10
tj = simpleG tjPath 4.75
t0 = simpleG t0Path 5
tPath = P [mA (0,0), lA (5.5,0)] <> shiftX 1.5 aPath <> shiftX 5.25 aPath
tNarrow = P [mA (0,0), lA (5,0)] <> shiftX 1.5 aPath <> shiftX 4.75 aPath
tPart = shiftX 1.5 aPath <> P [mA (0,0), lR (,0)]
ttPath = P [mA (0,0), lR (7,0)]
<> shiftX 0.75 aPath
<> shiftX 2.75 aPath
<> shiftX 4.75 aPath
<> shiftX 6.75 aPath
tkPath = tPart 5 <> shiftX 5 (aPath <> kBottomShort <> P [mA (4,-3), lR (0,8)])
tgPath = shiftX 5 gShortHat <> tkPath
tdPath = tPart 4 <> shiftX 4 dPath
tƶPath = shiftX 5 gShortHat <> tdPath
tpPath = P [mA (2,-3), lR (0,8), mA (0,-3), lR (6,0)] <> shiftX 4 pPath
tbPath = tPart 6 <> shiftX 4 bPath
tsPath = tPart 4 <> shiftX 4 sPath
tšPath = tPart 4 <> shiftX 4 šPath
tlPath = tPart 5 <> shiftX 3.5 lPath
tmPath = tPart 4.5 <> shiftX 4 mPath
tnPath = tPart 6 <> shiftX 4 nPath
trPath = tPart 7 <> shiftX 4 rShort
tčPath = tPart 3 <> shiftX 3 čFlat
tǧPath = tPart 4 <> shiftX 5 ǧPath
twPath = tPart 6 <> shiftX 4 wPath
thPath = tPart 4 <> shiftX 4 hPath
tfPath = tPart 4 <> shiftX 4 fPath
tjPath = tPart 3.5 <> shiftX (-0.5) jTall
t0Path = tPath <> P [mA (1.5,7), cR (1.8,-0.25) (3.1,0) (3.5,0.5)]
kGlyphs = [("k", k), ("kk", kk), ("ks", ks)]
k = simpleG kPath 5
kk = simpleG kkPath 8
ks = simpleG ksPath 9
kLeft = P [mA (0,0), cR (0.5,0.75) (0,3) (0,5)]
kBottomShort = P [cR (0,0) (2.6,0) (4,-0.5)]
kPath = kLeft <> kBottom <> shiftX 5 longAPath
kBottom = P [cR (0,0) (3,0) (5,-0.5)]
kShortPart = kLeft <> kBottomShort
kShort = kShortPart <> shiftX 4 longAPath
kkPath = kShortPart <> shiftX 4 kShort
ksPath = kShortPart <> shiftX 4 sPath
g = simpleG gPath 5
gPath = gHat <> kPath
gHat = P [mA (1.5,-2.75), qR (1.5,0.125) (3.5,-0.25)]
gShort = gShortHat <> kShort
gShortHat = P [mA (1.25,-2.75), qR (1.25,0.125) (2.75,-0.25)]
d = simpleG dPath 5
dPath = dPart <> shiftX 5 longAPath
dPart' = dBase <> dJoin'
dPart = dBase <> dJoin
dJoin = P [cR (2,0) (3,-0.75) (3,-1.5)]
dJoin' = P [cR (1.75,0) (2.5,-0.75) (2.85,-2.5)]
dBase = P [mA (0,0), lR (3.5,0), cR (0,1.5) (-3.5,3.5) (-3.5,5), lR (2,0)]
dFree = dBase <> P [mA (2,5), lR (1.5,0)]
dLong = dFree <> shiftX 1.5 dJoin
ƶGlyphs = [("ƶ",ƶ), ("ƶt",ƶt), ("ƶk",ƶk), ("ƶg",ƶg), ("ƶd",ƶd),
("ƶƶ",ƶƶ), ("ƶp",ƶp), ("ƶb",ƶb), ("ƶs",ƶs), ("ƶš",ƶš), ("ƶl",ƶl),
("ƶm",ƶm), ("ƶn",ƶn), ("ƶr",ƶr), ("ƶč",ƶč), ("ƶǧ",ƶǧ), ("ƶw",ƶw),
("ƶh",ƶh), ("ƶf",ƶf), ("ƶj",ƶj)]
ƶ = simpleG ƶPath 5
ƶt = simpleG ƶtPath 10.5
ƶk = simpleG ƶkPath 9
ƶg = simpleG ƶgPath 9
ƶd = simpleG ƶdPath 10
ƶƶ = simpleG ƶƶPath 10
ƶp = simpleG ƶpPath 10.5
ƶb = simpleG ƶbPath 11
ƶs = simpleG ƶsPath 10
ƶš = simpleG ƶšPath 10
ƶl = simpleG ƶlPath 10
ƶm = simpleG ƶmPath 11
ƶn = simpleG ƶnPath 9.75
ƶr = simpleG ƶrPath 8
ƶč = simpleG ƶčPath 10
ƶǧ = simpleG ƶǧPath 10
ƶw = simpleG ƶwPath 11
ƶh = simpleG ƶhPath 13
ƶf = simpleG ƶfPath 10
ƶj = simpleG ƶjPath 7.5
ƶ0 = simpleG ƶ0Path 3.5
ƶPath = gHat <> dPath
ƶtPath = dLong <> shiftX 5 tPath
ƶkPath = dPart <> shiftX 5 kShort
ƶgPath = dPart <> shiftX 5 gShort
ƶdPath = dFree <> shiftX 5 dPath
ƶƶPath = dFree <> shiftX 5 ƶPath
ƶpPath = dFree <> shiftX 5 pPath
ƶbPath = dPart' <> shiftX 5 bPath
ƶsPath = dPart <> shiftX 5 sPath
ƶšPath = dPart <> shiftX 5 šPath
ƶlPath = dPart <> shiftX 5 lPath
ƶmPath = dPart <> shiftX 5 mPath
ƶnPath = dPart' <> shiftX 4.75 nPath
ƶrPath = dPart <> P [qR (0,1.5) (1,1.5), qR (2,0) (2,-2), mR (0,-6), lR (0,8)]
ƶčPath = dFree <> shiftX 5 čPath
ƶǧPath = dFree <> shiftX 5 ǧPath
ƶwPath = dPart' <> shiftX 5 wPath
ƶhPath = dPart <> shiftX 5 hPath
ƶfPath = dFree <> shiftX 4 fPath
ƶjPath = dFree <> shiftX 4.5 jPathShort
ƶ0Path = dFree <> P [mA (1,7), cR (1.8,-0.25) (2.2,0) (2.5,0.5)]
pGlyphs = [("p", p), ("pp", pp), ("ps", ps), ("pj", pj)]
p = simpleG pPath 5.5
pp = simpleG ppPath 9
ps = simpleG psPath 10.5
pj = simpleG pjPath 10
pInit =
P [mA (0,-3), cR (-1,1) (-0.5,6) (-0.5,8)]
pPart =
shiftX 2 pInit <>
P [cR (-1,-3) (-2,-4) (0,-5), cR (1,-0.5) (2.5,-0.5) (4,0)]
pPath = pPart <> shiftX 5.25 aPath
ppPath =
shiftX 2 pInit <> shiftX 4.5 pInit <>
P [mA (1.5,5), cR (-1,-3) (-2,-4) (0,-5), cR (1,-0.5) (2.5,-0.5) (7.5,0)] <>
shiftX 8.75 aPath
psPath = pPart <> shiftX 5.5 sPath
pjPath =
shiftX 2 pInit <>
P [cR (-1,-3) (-2,-4) (0,-5), cR (1,-0.5) (4,-1) (4,1),
lR (0,4), mR (0,-4),
cR (0,-2) (3.5,-1) (4.5,-1)] <>
shiftX 9.75 aPath
bGlyphs = [("b", b), ("bj", bj)]
b = simpleG bPath 6
bj = simpleG bjPath 9
bPath = shiftX 1 gHat <> wPart <> shiftX 6 longAPath
bjPath =
bPath <>
P [mA (6,0.5), qR (1.5,0) (3,-0.5)] <>
shiftX 8.75 aPath
sGlyphs = [("s",s), ("st",st), ("sk",sk), ("sg",sg), ("sd",sd), ("",),
("sp",sp), ("sb",sb), ("ss",ss), ("",), ("sl",sl), ("sm",sm),
("sn",sn), ("sr",sr), ("",), ("",), ("sw",sw), ("sh",sh),
("sf",sf), ("sj",sj)]
s = simpleG sPath 5.125
st = simpleG stPath 8.5
sk = simpleG skPath 9
sg = simpleG sgPath 9
sd = simpleG sdPath 9
= simpleG sƶPath 9
sp = simpleG spPath 9.5
sb = simpleG sbPath 10.5
ss = simpleG ssPath 10
= simpleG sšPath 10
sl = simpleG slPath 9
sm = simpleG smPath 10.5
sn = simpleG snPath 9.5
sr = simpleG srPath 7
= simpleG sčPath 9
= simpleG sǧPath 10
sw = simpleG swPath 10
sh = simpleG shPath 13
sf = simpleG sfPath 10.25
sj = simpleG sjPath 5
s0 = simpleG s0Path 5
sPath = sPartLine <> shiftX 4.75 aPath
sPart' = P [mA (0, 0),
cR (0.15,0.5) (0,2.5) (0,3.5),
aR 1.5 1.5 0 Small CCW (3,0)]
sPart = sPart' <> P [qR (0,-3) (-0.5,-3.5)]
sPartIso = sPart' <> P [cR (0,-0.5) (-0.15,-2.5) (0,-3.5)]
sPartLine = sPart <> P [mA (2.5,0), qR (1,0.25) (2.5,0)]
stPath = sPart <> P [lR (1,0)] <> shiftX 3.5 tNarrow
skPath = sPartLine <> shiftX 5 kShort
sgPath = sPartLine <> shiftX 5 gShort
sdPath = sPart <> P [mA (2.5,0), lR (1.5,0)] <> shiftX 4 dPath
sƶPath = sPart <> P [mA (2.5,0), lR (1.5,0)] <> shiftX 4 ƶPath
spPath = sPartIso <> shiftX 4 pPath
sbPath = sPart' <>
P [cR (0,-2.5) (-0.25,-2.5) (0,-6.5), qR (2,0.5) (7.5,0), lR (0,8)] <>
shiftX 4.5 wPart <> P [mA (10.5,5)]
ssPath = sPartLine <> shiftX 5 sPath
sšPath = sPartLine <> shiftX 5 šPath
slPath = sPart <> P [mA (2.5,0), qR (1.25,0.5) (3.5,0)] <> shiftX 4.5 lPath
smPath = sPartLine <> shiftX 4.5 mPath
snPath = sPart <> P [mA (2.5,0), qR (1.5,0.5) (4.5,0)] <> shiftX 4.5 nPath
srPath = sPart <> P [mA (2.5,0), qR (2,0.75) (4.5,0.25)] <> shiftX 4 rShort
sčPath = sPart <> P [mA (2.5,0), lR (1.5,0)] <> shiftX 3 čFlat
sǧPath = sPartIso <> shiftX 4 ǧPath
swPath = sPart <> P [mA (2.5,0), lR (4,0)] <> shiftX 4 wPath
shPath = sPartIso <> shiftX 5 hPath
sfPath = sPartIso <> shiftX 4.25 fPath
sjPath = sPartLine <> jTall
s0Path = sPath <> P [mA (1.5,7), cR (1.8,-0.25) (2.6,0) (3,0.5)]
šGlyphs = [("š",š), ("št",št), ("šk",šk), ("šg",šg), ("šd",šd), ("šƶ",šƶ),
("šp",šp), ("šb",šb), ("šs",šs), ("šš",šš), ("šl",šl), ("šm",šm),
("šn",šn), ("šr",šr), ("šč",šč), ("šǧ",šǧ), ("šw",šw), ("šh",šh),
("šf",šf), ("šj",šj)]
š@(G {path = šPath}) = s2š s
šš = ss {path = ššPath}
šp = sp {path = špPath}
šb = sb {path = šbPath}
št = s2š st
šk = s2š sk
šg = s2š sg
šd = s2š sd
šƶ = s2š
šs = s2š ss
šl = s2š sl
šm = s2š sm
šn = s2š sn
šr = s2š sr
šč = s2š
šǧ = s2š
šw = s2š sw
šh = s2š sh
šf = s2š sf
šj = sj {path = P [mA (0.5, -1), cR (1,0.25) (2,-0.875) (1,-1.75)] <> path sj}
š0 = s2š s0
šLine = P [mA (0.5,-2.25), qR (1.5,-0.25) (2,0.25)]
ššPath = P [mA (0.5,-2), cR (2,-1) (5,1) (7,0)] <> ssPath
špPath = šLine <> spPath
šbPath = sPart <> šLine <> P [mA (3,0), lR (4,0)] <> shiftX 4 bPath
s2š g@(G {path}) = g {path = šLine <> path}
lGlyphs = [("l",l), ("ll", ll), ("lt",lt), ("lk",lk), ("lg",lg), ("ld",ld),
("",), ("lp",lp), ("lb",lb), ("ls",ls), ("",), ("lm",lm),
("ln",ln), ("lr",lr), ("",), ("",), ("lw",lw), ("lh",lh),
("lf",lf), ("lj",lj)]
l = simpleG lPath 4.625
ll = simpleG llPath 9
lt = simpleG ltPath 10
lk = simpleG lkPath 8.5
lg = simpleG lgPath 8.5
ld = simpleG ldPath 9.5
= simpleG lƶPath 9.5
lp = simpleG lpPath 10
lb = simpleG lbPath 10.5
ls = simpleG lsPath 9.5
= simpleG lšPath 9.5
lm = simpleG lmPath 10.5
ln = simpleG lnPath 9.25
lr = simpleG lrPath 7.5
= simpleG lčPath 9.5
= simpleG lǧPath 9.5
lw = simpleG lwPath 10.5
lh = simpleG lhPath 12.5
lf = simpleG lfPath 10.5
lj = simpleG ljPath 5
l0 = simpleG l0Path 3.75
lPath = lPart <> shiftX 4.5 aPath
lBase = P [mA (3,0.5), cR (0.25,-0.25) (0,-0.75) (-1.25,-0.5),
cR (-1.5,0.3) (-2,2.5) (0,2.5),
lR (0.75,0), mR (-1.25,0),
cR (-1.5,0.3) (-2,2.5) (0,2.5)]
lJoin = P [lR (0.25,0)] <> dJoin
lJoin' = P [lR (0.25,0)] <> dJoin'
lPart = lBase <> lJoin
lPart' = lBase <> lJoin'
lFree = lBase <> P [qR (2.25,0) (2.5,-0.5)]
lFree' = lBase <> P [qR (2,0) (2.25,-0.75)]
llPath = lPart <> shiftX 4.5 lPath
ltPath = lBase <> P [qR (4.5,0) (4.75,-3)] <> shiftX 4.5 tPath
lkPath = lPart <> shiftX 4.5 kShort
lgPath = lPart <> shiftX 4.5 gShort
ldPath = lFree' <> shiftX 4.5 dPath
lƶPath = lFree' <> shiftX 4.5 ƶPath
lpPath = lFree' <> shiftX 4.5 pPath
lbPath = lPart' <> shiftX 4.5 bPath
lsPath = lPart <> shiftX 4.5 sPath
lšPath = lPart <> shiftX 4.5 šPath
lmPath = lPart <> shiftX 4.5 mPath
lnPath = lPart' <> shiftX 4.25 nPath
lrPath = lPart <> P [qR (0,1.5) (1,1.5), qR (2,0) (2,-2), mR (0,-6), lR (0,8)]
lčPath = lFree' <> shiftX 4.5 čPath
lǧPath = lFree' <> shiftX 4.5 ǧPath
lwPath = lPart' <> shiftX 4.5 wPath
lhPath = lPart <> shiftX 4.5 hPath
lfPath = lFree' <> shiftX 4.5 fPath
ljPath = lFree' <> jTall
l0Path = lFree <> P [mA (1.25,7), cR (1.8,-0.25) (2.2,0) (2.5,0.5)]
mGlyphs = [("m",m), ("mt",mt), ("mk",mk), ("mg",mg), ("md",md), ("",),
("mp",mp), ("mb",mb), ("ms",ms), ("",), ("ml",ml), ("mm",mm),
("mn",mn), ("mr",mr), ("",), ("",), ("mw",mw), ("mh",mh),
("mf",mf), ("mj",mj)]
m = simpleG mPath 6.125
mt = simpleG mtPath 10
mk = simpleG mkPath 10
mg = simpleG mgPath 10
md = simpleG mdPath 12
= simpleG mƶPath 12
mp = simpleG mpPath 12.5
mb = simpleG mbPath 12
ms = simpleG msPath 11
= simpleG mšPath 11
ml = simpleG mlPath 11
mm = simpleG mmPath 12
mn = simpleG mnPath 11
mr = simpleG mrPath 9
= simpleG mčPath 12
= simpleG mǧPath 12
mw = simpleG mwPath 12
mh = simpleG mhPath 14
mf = simpleG mfPath 13
mj = simpleG mjPath 9
m0 = simpleG m0Path 6
mPath = mPart <> shiftX 6 longAPath
mInit = P [mA (0.5,0), cR (-0.25,0.2) (-0.5,2.25) (-0.5,3.5)]
mBumpI = P [cR (0,2) (2.5,2) (3,0)] <> mLine
mLine = P [qR (0.125,-1) (0.125,-2), mR (-0.125,2)]
mBumpF = P [cR (-0.5,2) (2.5,2) (3,0)]
mBumpM = mBumpF <> mLine
mBumpsN n = mconcat $ [mBumpI] <> replicate n mBumpM <> [mBumpF]
mBumps = mBumpsN 0
mPart = mInit <> mBumps
mFree = mPart <> P [cR (0.5,-2) (-0.75,-4) (-1.5,-3.5)]
mtPath = mPart <> shiftX 4.5 tPath
mkPath = mPart <> shiftX 6 kShort
mgPath = mPart <> shiftX 6 gShort
mdPath = mFree <> shiftX 7 dPath
mƶPath = mFree <> shiftX 7 ƶPath
mpPath = mFree <> shiftX 7 pPath
mbPath = mPart <> shiftX 6 bPath
msPath = mPart <> shiftX 6 sPath
mšPath = mPart <> shiftX 6 šPath
mlPath = mPart <> shiftX 6 lPath
mmPath = mInit <> mBumpsN 2 <> P [mR (0,-3.5), lR (0,5)]
mnPath = mPart <> shiftX 6 nPath
mrPath = mInit <> mBumpsN 1 <> P [mR (0,-6.5), lR (0,8)]
mčPath = mFree <> shiftX 7 čPath
mǧPath = mFree <> shiftX 7 ǧPath
mwPath = mPart <> shiftX 6 wPath
mhPath = mPart <> shiftX 6 hPath
mfPath = mFree <> shiftX 7 fPath
mjPath = mFree <> shiftX 4.5 jPath
m0Path = mFree <> P [mA (1.25,7), cR (3.55,-0.3) (3.8,0) (4,0.5)]
nGlyphs = [("n", n), ("nt", nt), ("nk", nk), ("ng", ng), ("nd", nd), ("", ),
("np", np), ("nb", nb), ("ns", ns), ("", ), ("nl", nl),
("nm", nm), ("nn", nn), ("nr", nr), ("", ), ("", ),
("nw", nw), ("nh", nh), ("nf", nf), ("nj", nj)]
n = simpleG nPath 5.125
nt = simpleG ntPath 10.5
nk = simpleG nkPath 9
ng = simpleG ngPath 9
nd = simpleG ndPath 10
= simpleG nƶPath 10
np = simpleG npPath 10.25
nb = simpleG nbPath 11
ns = simpleG nsPath 10
= simpleG nšPath 10
nl = simpleG nlPath 10
nm = simpleG nmPath 11
nn = simpleG nnPath 10
nr = simpleG nrPath 6.5
= simpleG nčPath 10
= simpleG nǧPath 9.75
nw = simpleG nwPath 11
nh = simpleG nhPath 13
nf = simpleG nfPath 10.75
nj = simpleG njPath 5.25
n0 = simpleG n0Path 3.5
nPath = nPart <> shiftX 5 aPath
nPart = nPart' <> P [cR (1.6,-0.25) (2.5,-1.75) (2.5,-2.5)]
nPart' = P [mA (3.5,1), cR (0.5,-1) (-0.5,-1.125) (-1,-1),
cR (-3.2,0.5) (-3.2,5.5) (0,5)]
nLong = nPart' <> P [cR (3.2,-0.5) (4,-1.5) (4,-2.5)]
nFlat = P [mA (5,0), lR (-2.5,0), aR 2.5 2.5 0 Large CCW (0,5),
cR (0.5,0) (1,-0.5) (1,-1.5)]
nFree = nPart' <> P [qR (0.8,-0.125) (1.5,-1)]
nFree' = nPart' <> P [qR (0.8,-0.125) (1,-1)]
ntPath = nLong <> shiftX 5 tPath
nkPath = nFlat <> shiftX 5 kShort
ngPath = nFlat <> shiftX 5 gShort
ndPath = nFlat <> shiftX 5 dPath
nƶPath = nFlat <> shiftX 5 ƶPath
npPath = nFree <> shiftX 4.75 pPath
nbPath = nFlat <> P [mA (5,0), lR (2,0)] <> shiftX 5 bPath
nsPath = nFlat <> shiftX 5 sPath
nšPath = nFlat <> shiftX 5 šPath
nlPath = nFlat <> P [mA (5,0), lR (1,0)] <> shiftX 5 lPath
nmPath = nFlat <> P [mA (5,0), lR (0.5,0)] <> shiftX 5 mPath
nnPath = nFlat <> P [mA (5,0), lR (2,0)] <> shiftX 5 nPath
nrPath = nFree' <> P [qR (0,1) (1,1), qR (2,0) (2,-2), mR (0,-6), lR (0,8)]
nčPath = nFlat <> shiftX 4 čFlat
nǧPath = nFree' <> shiftX 4.75 ǧPath
nwPath = nFlat <> P [mA (5,0), lR (2,0)] <> shiftX 5 wPath
nhPath = nFlat <> shiftX 5 hPath
nfPath = nFree' <> shiftX 4.75 fPath
njPath = nFree' <> jTall
n0Path = nFree <> P [mA (1,7), cR (1.8,-0.25) (2.2,0) (2.5,0.5)]
rGlyphs = [("r", r), ("rt", rt), ("rk", rk), ("rg", rg), ("rd", rd), ("", ),
("rp", rp), ("rb", rb), ("rs", rs), ("", ), ("rl", rl),
("rm", rm), ("rn", rn), ("rr", rr), ("", ), ("", ),
("rw", rw), ("rh", rh), ("rf", rf), ("rj", rj)]
r = simpleG rPath 5
rt = simpleG rtPath 7.5
rk = simpleG rkPath 7
rg = simpleG rgPath 7
rd = simpleG rdPath 9.5
= simpleG rƶPath 9.5
rp = simpleG rpPath 10
rb = simpleG rbPath 10.5
rs = simpleG rsPath 9.5
= simpleG ršPath 9.5
rl = simpleG rlPath 9.5
rm = simpleG rmPath 10.5
rr = simpleG rrPath 6
rn = simpleG rnPath 9
= simpleG rčPath 9.5
= simpleG rǧPath 9.5
rw = simpleG rwPath 10.5
rh = simpleG rhPath 12.5
rf = simpleG rfPath 10.5
rj = simpleG rjPath 7.5
r0 = simpleG r0Path 5
rPath = rPart <> shiftX 5 longAPath
rPart = P [mA (0,5), cR (3.5,0) (5,-1) (5,-2)]
rPartMid = P [mA (0,5), cR (1.25,0) (3.25,-1) (3.25,-2)]
rPartShort = P [mA (0,5), cR (1,0) (3,-1) (3,-2)]
rShort = rPartShort <> shiftX 3 longAPath
rtPath = rPartMid <> shiftX 2 tPath
rkPath = rPartShort <> shiftX 3 kShort
rgPath = rPartShort <> shiftX 3 gShort
rdPath = rMid <> shiftX 4.5 dPath
rƶPath = rMid <> shiftX 4.5 ƶPath
rpPath = rMid <> shiftX 4.5 pPath
rbPath = rMid <> shiftX 4.5 bPath
rsPath = rMid <> shiftX 4.5 sPath
ršPath = rMid <> shiftX 4.5 šPath
rlPath = rMid <> shiftX 4.5 lPath
rmPath = rMid <> shiftX 4.5 mPath
rnPath = rShort <> shiftX 4 nPath
rrPath = rShort <> shiftX 3 rShort
rčPath = rMid <> shiftX 4.5 čPath
rǧPath = rMid <> shiftX 4.5 ǧPath
rwPath = rMid <> shiftX 4.5 wPath
rhPath = rMid <> shiftX 4.5 hPath
rfPath = rMid <> shiftX 4.5 fPath
rjPath = rMid <> shiftX 4.5 jPathShort
rMid = rPartMid <> shiftX 3.25 longAPath
r0Path = ŕPath <> P [mA (1.25,7), cR (2.2,-0.25) (2.8,0) (3,0.5)]
čGlyphs = [("č", č), ("čs", čs), ("čč", čč)]
č = simpleG čPath 5
čs = simpleG čsPath 10
čč = simpleG ččPath 10
čPath = čPart <> čJoin <> P [mA (5,0), lR (0,5)]
čPart = P [mA (0,0.5), cR (2.25,-0.75) (2.55,-0.5) (2.75,-0.5)] <> čPart'
čPart' = P [aR 1.25 1.25 0 Small CW (0,2.5), lR (-2,0), mR (2,0),
aR 1.25 1.25 0 Small CW (0,2.5),
cR (-0.2,0.25) (-2.25,0) (-2.75,-0.5)]
čJoin = P [mA (2.5,5), cR (1.5,0) (2.5,-0.5) (2.5,-1)]
čPartFlat = P [mA (0,0), lR (3.5,0)] <> čPart'
čFlat = čPartFlat <> shiftX 1 čJoin <> P [mA (6,0), lR (0,5)]
čsPath = čPart <> shiftX 5 sPath
ččPath = čPart <> shiftX 5 čPath
ǧ = simpleG ǧPath 5
ǧPath = ǧPart <> čJoin <> P [mA (5,-3), lR (0,8)]
ǧPart = P [mA (0,-2), cR (2.25,-0.75) (2.55,-0.5) (2.75,-0.5),
aR 1.25 1.25 0 Small CW (0,2.5),
lR (-2,0), mR (2,0),
aR 1.25 1.25 0 Small CW (0,2.5),
lR (-2,0), mR (2,0),
aR 1.25 1.25 0 Small CW (0,2.5),
cR (-0.2,0.25) (-2.25,0) (-2.75,-0.5)]
w = simpleG wPath 6
wPath = wPart <> shiftX 6 aPath
wPart = uPath <> P [mA (2.5,0), lR (3.5,0)]
hGlyphs = [("h", h), ("hh", hh), ("hn", hn), ("hm", hm)]
h = simpleG hPath 8.5
hh = simpleG hhPath 16.5
hn = simpleG hnPath 15
hm = simpleG hmPath 16
hPath = hPart <> shiftX 3.5 gHat <> shiftX 8.5 longAPath
hPart' x = sPart <> P [mA (2.5,0), lR (1.5,0)] <> shiftX 4 x
hPart = hPart' sPartIso
hhPath = hPart' sPart <> P [mA (6.5,0), lR (1.5,0)] <> shiftX 8 hPart <>
shiftX 11.5 gHat <> P [mA (16.5,-3), lR (0,8)]
hnPath = hPath <> shiftX 10 nPath
hmPath = hPath <> shiftX 10 mPath
fGlyphs = [("f", f), ("fn", fn), ("fm", fm)]
f = simpleG fPath 6
fn = simpleG fnPath 12
fm = simpleG fmPath 12
f0 = simpleG f0Path 6
fPath = fPart <> P [lR (0,2.5)]
fPart = P [mA (4.25,2.5),
cR (0.5,-1) (-1.75,-1) (-1.75, 0),
cR (0,1) (1.75,0.75) (1.75,1.75),
cR (0,0.35) (-0.15,0.65) (-1.75,0.75),
cR (-3.2,0.5) (-3.2,-5) (1,-5.5),
cR (1.6,-0.25) (2.5,1) (2.5,3)
]
fnPath = fPath <> shiftX 7 nPath
fmPath = fPart <> P [lR (0,1)] <> mBumps <> P [mA (12,0), lR (0,5)]
f0Path = fPath <> P [mA (1.5,7), cR (2.8,-0.35) (3.1,0) (3.5,0.5)]
j = simpleG jPath 4
jPath = P [mA (0,0), qR (1.25,0.5) (4,0)] <> shiftX 3.75 aPath
jPathShort = P [mA (0,0), qR (1,0.25) (3,0)] <> shiftX 2.75 aPath
jTall = gHat <> shiftX 5 longAPath
vGlyphs = [("a", a), ("á", á), ("i", i), ("í", í), ("u", u), ("ú", ú),
("ai", ai), ("au", au), ("ia", ia), ("ua", ua), ("ḿ", ḿ),
("ń", ń), ("ł", ł), ("ŕ", ŕ)]
a = simpleG aPath 0.125
á = simpleG áPath 2.125
i = j
í = simpleG íPath 5
u = simpleG uPath 4.5
ú = simpleG úPath 4
ai = simpleG aiPath 5
au = simpleG auPath 4.5
ia = simpleG iaPath 5
ua = simpleG uaPath 4.5
ḿ = simpleG ḿPath 6
ń = simpleG ńPath 4
ł = simpleG łPath 3.75
ŕ = simpleG ŕPath 5
aPath = P [mA (0.25,0), cR (-0.25,1) (-0.25,2) (-0.25,5)]
longAPath = P [mA (0.25,-3), cR (-0.25,1) (-0.25,2) (-0.25,5), lR (0, 3)]
áPath = aPath <> shiftX 2 aPath
íPath = P [mA (0,0), lR (5,0)] <> shiftX 2.75 aPath <> shiftX 4.75 aPath
uPath = P [mA (2.25,0),
cR (-3.2,0.5) (-3.2,5.5) (0,5),
cR (3.2,-0.5) (3.2,-5.5) (0,-5)]
uNarrow = P [mA (1.5,0),
cR (-2.2,0.25) (-2.2,5.25) (0,5),
cR (2.2,-0.25) (2.2,-5.25) (0,-5)]
úPath = uPath <> P [mA (4.25,-3), cR (-1.5,3) (-3.2,8) (-2.8,12)]
aiPath = aPath <> P [mR (2,-5), lR (3,0)] <> shiftX 4.75 aPath
auPath = aPath <> shiftX 1.5 uNarrow
iaPath = P [mA (0,0), lR (3,0)] <> shiftX 2.75 aPath <> shiftX 5 aPath
uaPath = uNarrow <> shiftX 4.5 aPath
ḿPath = mFree
ńPath = nFree
łPath = lFree
ŕPath = rPart <> shiftX 5 aPath
adot = circR 0.2
withWidth f (SI {width}) = (f width, width)
sP = simpleDia . P
-- no @mA@ because letters like t have the join not quite at the edge
da = [sP [lR (0,5)]]
= da <> [withWidth \w -> P [mA (w/2-1,8), cR (0.75,-0.5) (1.25,0.5) (2,0)]]
di = da <> diLine
= da <> [sP [cR (1,0) (4,-3) (0,-3), qR (-3,0) (-4,1)]]
du = da <> duLine
= du <> [sP [mR (0.5, 3.5)]] <> duLine
duLine = [sP [qR (-1, -2.75) (-2, -3.5)]]
diLine = [sP [qR (1.5, -1.5) (1.5, -4)]]
dai = da <> [sP [mR (-4,-3), lR (2.5,0), qR (-0.5,1) (-0.5,3)]]
dau = da <> [sP [mR (-3,-3.5),
cR (-1.5,0.25) (-1.5,3.25) (0,3),
cR (1.5,-0.25) (1.5,-3.25) (0,-3),
cR (1,-0.25) (2,0.5) (3,0)]]
dia = di <> [sP $ adot (-4,0)]
dua = du <> [sP $ adot (-2,0)]
dḿ = da <> [sP [mR (-4,-3), cR (-0.375,1.125) (-0.25,1.275) (-0.25,1.375),
aR 0.625 0.625 0 Small CCW (1.5,0),
lR (0,-1), mR (0,1),
aR 0.625 0.625 0 Small CCW (1.5,0),
cR (0.125,-0.1) (0,-1.125) (-0.25,-1.375)]]
= da <> [sP [mR (-2,-2.5),
qR (0.25,-0.625) (-0.5,-0.5),
cR (-1.5,0.25) (-1.5,2.75) (0,2.5),
qR (0.375,-0.0625) (0.5,-0.3)]]
= da <>
[sP [mR (-2,-2.75),
cR (0.125,-0.125) (0,-0.375) (-0.625,-0.25),
cR (-0.75,0.15) (-1,1.25) (0,1.25),
lR (0.375,0), mR (-0.625,0),
cR (-0.75,0.15) (-1,1.25) (0,1.25),
qR (1,0) (1.125,-0.375)]]
= da <> [sP [mR (-3,0), cR (1,0) (3,-1) (3,-2)]]
punctuation :: Map Text Glyph
punctuation = Map.fromList
[(".", eos), ("?", eos), ("!", eos), (",", eop), (":", eop), (";", eop),
("", ellipsis)]
eos = simpleG eosPath 4
eosPath = P $ circA 1 (4,1) <> circA 1 (4,4)
eop = simpleG eopPath 2
eopPath = P $ circA 1 (3,2.5)
num = simpleG path 1
where path = P [mA (0,0), lR (0,5), mA (1,0), lR (0,5)]
numbers = Map.fromList $
zip [0..9::Int] [u, t, n2, simpleG dFree 3, n4, n5, ł, ḿ, ń, f]
n2 = simpleG n2Path 5
n2Path = P [mA (0,0), lR (0,5), sR (3,0) (5,-0.5), mA (5,0), lR (0,5)]
n4 = simpleG n4Path 5
n4Path = P [mA (1.5,0), lR (0,5), sR (-1.5,-3) (-1.5,-5), lR (5,0), lR (0,5)]
n5 = simpleG n5Path 4
n5Path = P [mA (0,5), lR (0,-3.5), aR 1.5 1.5 0 Small CW (1.5,-1.5),
lR (1,0), aR 1.5 1.5 0 Small CW (1.5,1.5), lR (0,3.5)]
wave :: Glyph
wave = simpleG wavePath 4
ellipsis :: Glyph
ellipsis = simpleG (shiftX 3.5 wavePath) 6
wavePath = P [mA (0,2.5), cR (1.5,-2) (2.5,2) (4,0)]

View file

@ -1,162 +0,0 @@
module GlyphsBase (module GlyphsBase, module Svg) where
import Svg hiding (shiftX, shiftY, shift, width, size)
import qualified Svg
import Prelude hiding (Word)
import Data.Foldable
import Numeric
import Prelude hiding (Word)
data Glyph = G {path :: Segs, size :: SizeInfo}
data SizeInfo = SI {
width :: Double, -- ^ total width
right :: Double, -- ^ attachment point for e.g. a
center :: Double -- ^ attachment point for e.g. á
}
simpleG :: Segs -> Double -> Glyph
simpleG path width =
G {path, size = SI {width, right = width, center = width/2}}
-- | base amounts
charHeight', lineHeight', spaceWidth', gap' :: Double
charHeight' = 13
lineHeight' = 15
spaceWidth' = 4
gap' = 1.5
withSize :: MonadReader Env m => (Double -> a) -> m a
withSize f = asks \E {size} -> f size
-- | multiplied by size
charHeight, lineHeight, spaceWidth, margin, gap :: MonadReader Env m => m Double
charHeight = withSize (* charHeight')
lineHeight = withSize (* lineHeight')
spaceWidth = withSize (* spaceWidth')
margin = asks \E {stroke} -> stroke
gap = withSize (* gap')
data Segs = P [M Text] | Shift !Double !Double Segs | Segs :<>: Segs
instance Semigroup Segs where
P [] <> s = s
s <> P [] = s
P ss <> P ts = P $ ss <> ts
s <> t = s :<>: t
instance Monoid Segs where
mempty = P []
mappend = (<>)
joinSegs :: Segs -> M Text
joinSegs (P ps) = fmap mconcat $ sequence ps
joinSegs (Shift dx dy segs) = do
E {size} <- ask
localS (Svg.shift (size * dx, size * dy)) $ joinSegs segs
joinSegs (ss1 :<>: ss2) = liftA2 (<>) (joinSegs ss1) (joinSegs ss2)
localS :: MonadState s m => (s -> s) -> m a -> m a
localS f m = do old <- get; modify f; res <- m; put old; pure res
shiftX, shiftY :: Double -> Segs -> Segs
shiftX dx = Shift dx 0
shiftY dy = Shift 0 dy
space :: M ()
space = do
swidth <- spaceWidth
modify \s@(S {x}) -> s {x = x + swidth}
data TextSize = T {width, height :: !Double}
run :: M a -> Env -> (a, TextSize)
run m e@(E {size}) =
let (res, S {..}) = runState (runReaderT m e) s in
(res, T {width = textWidth, height = textHeight})
where
margin' = runReader margin e
ascHeight = size * 3
s = S {x = margin', y = margin' + ascHeight,
textWidth = 0, textHeight = 0, firstOnLine = True}
type Word = [EGlyph]
type EGlyph = (Glyph, [Diacritic])
type Diacritic' a = SizeInfo -> (Segs, a)
type Diacritic = Diacritic' Double
simpleDia :: Segs -> Diacritic
simpleDia ss (SI {width}) = (ss, width)
doGlyphs :: [Word] -> Env -> Element
doGlyphs gs e = wrap $ run act e where
act = do
E {stroke, color} <- ask
let gattrs = [Stroke_ <<- color, Stroke_width_ <<- toPx stroke,
Stroke_linecap_ <<- "round", Stroke_linejoin_ <<- "round",
Fill_ <<- "none"]
g_ gattrs . mconcat <$> traverse placeWord gs <* newline
wrap (content, T {width, height}) =
let sattrs = [Height_ <<- toPx height, Width_ <<- toPx width] in
doctype <> svg11_ content `with` sattrs
liftDia :: Diacritic -> Diacritic' SizeInfo
liftDia f sz@(SI {..}) = let (x, w) = f sz in (x, SI {width = w, ..})
glyphWidth :: EGlyph -> M Double
glyphWidth (G {size}, ss) =
let SI {width} = foldl (\x f -> snd $ liftDia f x) size ss in
(+) <$> withSize (* width) <*> gap
totalWidth :: Double -> M Double
totalWidth width = (+) <$> withSize (* width) <*> gap
wordWidth :: Word -> M Double
wordWidth = fmap sum . traverse glyphWidth
placeWord :: Word -> M Element
placeWord w = do
wwidth <- wordWidth w
margin' <- margin
S {x, firstOnLine} <- get
E {width} <- ask
let space' = if firstOnLine then pure () else space
e <- if x > margin' && x + wwidth > width then do
newline *> placeWord w
else do
mconcat <$> (space' *> traverse placeGlyph w)
modify \s -> s {firstOnLine = False}
pure e
placeGlyph :: EGlyph -> M Element
placeGlyph (G {path = path1, size}, dias) = do
let (segs', width') = placeDias size dias
path <- joinSegs $ path1 <> segs'
width <- totalWidth width'
modify \s@(S {x}) -> s {x = x + width}
pure $ path_ [D_ <<- path]
placeDias :: SizeInfo -> [Diacritic] -> (Segs, Double)
placeDias sz =
unlift . flip runState sz . fmap fold . traverse (state . liftDia)
where unlift (x, SI {width}) = (x, width)
newline :: M ()
newline = do
lh <- lineHeight
m <- margin
modify \s@(S {x, y, textWidth, textHeight}) ->
s {x = m, y = y + lh,
textWidth = textWidth `max` (x + m),
textHeight = textHeight + lh,
firstOnLine = True}
toPx :: Double -> Text
toPx x = pack (showFFloat (Just 4) x "px")

View file

@ -1,55 +0,0 @@
import Prelude hiding (getContents, readFile, writeFile, putStrLn)
import Svg
import Glyphs (doGlyphs, lineHeight')
import Split
import Options.Applicative
import Data.Functor
import Data.Text.IO (readFile, getContents)
import Data.Text.Lazy.IO (writeFile, putStrLn)
data Options =
Opts {
width, size, stroke :: {-# UNPACK #-} !Double,
inFile, outFile :: Maybe FilePath,
text :: Maybe Text,
color :: Text
}
deriving Show
options :: IO Options
options = execParser desc where
desc = info (opts <**> helper) $
fullDesc <> header "render lántas text as svg"
opts =
Opts <$> dimOpt 'W' "width" 1000
<*> (dimOpt' 'S' "size" "text size" 60 <&> (/ lineHeight'))
<*> dimOpt' 'K' "stroke" "line thickness" 2
<*> filePath 'i' "input"
<*> filePath 'o' "output"
<*> text
<*> color
dimOpt s l d = dimOpt' s l l d
dimOpt' s l n d = option auto $ mconcat
[short s, long l, help $ n <> " in pixels", metavar "SIZE", value d]
filePath s n = optional $ option str $ mconcat
[short s, long n, help $ n <> " file", metavar "FILE"]
text = optional $ option str $ mconcat
[short 't', long "text", help $ "use given text instead of a file",
metavar "TEXT"]
color = option str $ mconcat
[short 'C', long "color", help $ "set stroke color (any css syntax)",
metavar "COLOR", value "black"]
main :: IO ()
main = do
Opts {..} <- options
txt <- split <$> if
| Just t <- text -> pure t
| Just "-" <- inFile -> getContents
| Just i <- inFile -> readFile i
| otherwise -> fail "no input given"
let res = prettyText $ doGlyphs txt (E {..})
case outFile of
Just o | o /= "-" -> writeFile o res
_ -> putStrLn res

View file

@ -1,69 +0,0 @@
module Split (split) where
import Glyphs
import Text.Megaparsec
import Text.Megaparsec.Char
import Data.Text (Text)
import qualified Data.Text as Text
import qualified Data.Char as Char
import Data.Map (Map, (!))
import qualified Data.Map.Strict as Map
import Data.Void
type P = Parsec Void Text
lcChar :: P Char
lcChar = Char.toLower <$> anySingle
longestWith :: String -> (Text -> Maybe a) -> P a
longestWith name p = try $ go . Text.singleton =<< lcChar where
go acc = case p acc of
Nothing -> fail $ "longestWith " <> name <> ": " <> show acc
Just x -> try (do c <- lcChar; go $ Text.snoc acc c) <|> pure x
unthorn :: Text -> Text
unthorn = Text.map \case 'þ' -> 'ƶ'; 'ð' -> 'ƶ'; c -> c
maxFrom :: String -> Map Text a -> P a
maxFrom name i = longestWith name \x -> Map.lookup (unthorn x) i
initial :: P Glyph
initial = maxFrom "initial" initials
medial :: P [Diacritic]
medial = [] <$ chunk "\\" <|> maxFrom "medial" medials
final :: P Glyph
final = maxFrom "final" finals
ivowel :: P Glyph
ivowel = maxFrom "vowel" vowels
word :: P [EGlyph]
word = [is <> f <> concat p | is <- some initMed, f <- fin, p <- many punct]
where
initMed = try $
(,) <$> initial <*> medial <|>
[(v, []) | v <- ivowel] <|>
dash
fin = maybe [] (\x -> [(x, [])]) <$> optional final
number :: P [EGlyph]
number = some (digit <|> hash) where
hash = (num, []) <$ chunk "#"
digit = [(numbers ! Char.digitToInt i, []) | i <- digitChar]
punct :: P [EGlyph]
punct = [[(p, [])] | p <- maxFrom "punctuation" punctuation] <* space
dash :: P EGlyph
dash = (wave, []) <$ chunk ""
text :: P [[EGlyph]]
text = space *> many (segment <* space) <* eof where
segment = punct <|> number <|> word
split :: Text -> [[EGlyph]]
split = either (error . errorBundlePretty) id . parse text ""

View file

@ -1,136 +0,0 @@
module Svg
(module Svg,
Text, pack,
module Graphics.Svg,
module Control.Monad.Reader,
module Control.Monad.State)
where
import Control.Monad.Reader
import Control.Monad.State
import qualified Graphics.Svg as Base
import Graphics.Svg
hiding (mA, mR, lA, lR, cA, cR, sA, sR, aA, aR, qA, qR, tA, tR)
import Data.Text (Text, pack)
data Env = E {width, size, stroke :: !Double, color :: !Text}
data St = S {x, y, textWidth, textHeight :: !Double, firstOnLine :: Bool}
-- nb textHeight is one lineheight less than the actual height
-- unless ending with a 'newline'
type M = ReaderT Env (State St)
type Point = (Double, Double)
mA :: Point -> M Text
mA (x', y') =
ReaderT \E {size} -> gets \S {x, y} ->
Base.mA (x + x' * size) (y + y' * size)
mR :: Point -> M Text
mR (x', y') = reader \E {size} -> Base.mR (x' * size) (y' * size)
lA :: Point -> M Text
lA (x', y') =
ReaderT \E {size} -> gets \S {x, y} ->
Base.lA (x + x' * size) (y + y' * size)
lR :: Point -> M Text
lR (x', y') = reader \E {size} -> Base.lR (x' * size) (y' * size)
sA :: Point -> Point -> M Text
sA (x1, y1) (x2, y2) =
ReaderT \E {size} -> gets \S {x, y} ->
Base.sA (x + x1 * size) (y + y1 * size)
(x + x2 * size) (y + y2 * size)
sR :: Point -> Point -> M Text
sR (x1, y1) (x2, y2) =
reader \E {size} ->
Base.sR (x1 * size) (y1 * size) (x2 * size) (y2 * size)
cA :: Point -> Point -> Point -> M Text
cA (x1, y1) (x2, y2) (x3, y3) =
ReaderT \E {size} -> gets \S {x, y} ->
Base.cA (x + x1 * size) (y + y1 * size)
(x + x2 * size) (y + y2 * size)
(x + x3 * size) (y + y3 * size)
<> " " -- lmao
cR :: Point -> Point -> Point -> M Text
cR (x1, y1) (x2, y2) (x3, y3) =
reader \E {size} ->
Base.cR (x1 * size) (y1 * size)
(x2 * size) (y2 * size)
(x3 * size) (y3 * size)
<> " " -- lmao
qA :: Point -> Point -> M Text
qA (x1, y1) (x2, y2) =
reader \E {size} ->
Base.qA (x1 * size) (y1 * size)
(x2 * size) (y2 * size)
qR :: Point -> Point -> M Text
qR (x1, y1) (x2, y2) =
reader \E {size} ->
Base.qR (x1 * size) (y1 * size)
(x2 * size) (y2 * size)
tA :: Point -> M Text
tA (x1, y1) =
reader \E {size} ->
Base.tA (x1 * size) (y1 * size)
tR :: Point -> M Text
tR (x1, y1) =
reader \E {size} ->
Base.tR (x1 * size) (y1 * size)
data Arc = Large | Small
data Sweep = CW | CCW
arcToFlag :: Num a => Arc -> a
arcToFlag = \case Large -> 1; Small -> 0
sweepToFlag :: Num a => Sweep -> a
sweepToFlag = \case CW -> 1; CCW -> 0
aA :: Double -> Double -> Double -> Arc -> Sweep -> Point -> M Text
aA rx ry θ arc sweep (x', y') =
ReaderT \E {size} -> gets \S {x, y} ->
Base.aA (rx * size) (ry * size) θ (arcToFlag arc) (sweepToFlag sweep)
(x + x' * size) (y + y' * size)
aR :: Double -> Double -> Double -> Arc -> Sweep -> Point -> M Text
aR rx ry θ arc sweep (x', y') =
reader \E {size} ->
Base.aR (rx * size) (ry * size) θ (arcToFlag arc) (sweepToFlag sweep)
(x' * size) (y' * size)
ellipseX :: (Point -> M Text) -> Double -> Double -> Point -> [M Text]
ellipseX mX rx ry (x', y') =
[mX (x' - rx, y'), aR rx ry 0 Large CW (0,0.0001), pure z]
ellipseR, ellipseA :: Double -> Double -> Point -> [M Text]
ellipseR = ellipseX mR
ellipseA = ellipseX mA
circR :: Double -> Point -> [M Text]
circR r = ellipseR r r
circA :: Double -> Point -> [M Text]
circA r = ellipseA r r
shiftX :: Double -> St -> St
shiftX dx s@(S {x}) = s {x = x + dx}
shiftY :: Double -> St -> St
shiftY dy s@(S {y}) = s {y = y + dy}
shift :: (Double, Double) -> St -> St
shift (dx, dy) = shiftX dx . shiftY dy

View file

@ -1,41 +0,0 @@
cabal-version: 2.2
name: laantas-script
version: 0.1.0
synopsis: write lántas script
license: AGPL-3.0-or-later
author: Rhiannon Morris <rhi@rhiannon.website>
maintainer: Rhiannon Morris <rhi@rhiannon.website>
executable laantas-script
hs-source-dirs: .
main-is: Main.hs
other-modules:
Svg,
Glyphs,
GlyphsBase,
Split
default-language: Haskell2010
default-extensions:
BlockArguments,
DisambiguateRecordFields,
DuplicateRecordFields,
FlexibleContexts,
GADTs,
LambdaCase,
MonadComprehensions,
MultiWayIf,
NamedFieldPuns,
OverloadedStrings,
RecordWildCards,
ViewPatterns
build-depends:
base >= 4.14.0.0 && < 4.21,
containers >= 0.6 && < 0.8,
mtl >= 2.2 && < 2.4,
svg-builder ^>= 0.1.1,
optparse-applicative ^>= 0.16.0.0,
text ^>= 2.1,
megaparsec ^>= 9.6.1
ghc-options:
-Wall -threaded -rtsopts -with-rtsopts=-N

View file

@ -1,199 +0,0 @@
module Ebnf (makeEbnf, Rule (..), Def (..), render, parse) where
import Prelude hiding (span)
import Data.List (intercalate)
import Data.Char (isAlphaNum)
import Text.Megaparsec hiding (parse)
import Text.Megaparsec.Char hiding (char')
import qualified Text.Megaparsec as MP
import Text.Pandoc.Definition
import Data.Text (Text)
import qualified Data.Text as Text
import Data.Void
import Data.List.NonEmpty (NonEmpty (..))
import qualified Data.List.NonEmpty as NonEmpty
data Rule =
Rule Text [Text] Def
| RCom Text -- ^ @(* comment *)@
deriving (Eq, Show)
data Def =
N Text -- ^ @nonterminal@
| T Text -- ^ @\'terminal\'@ or @\"terminal\"@
| S Text -- ^ @?special?@
| C Text (NonEmpty Def) -- ^ @param(X, Y)@
| Or (NonEmpty Def) -- ^ choice @a | b | c@
| Seq (NonEmpty Def) -- ^ sequence @a, b, c@
| Sub Def Def -- ^ difference @a - b@
| Opt Def -- ^ opt @[a]@
| Many Def -- ^ repetition @{a}@
| Com Text -- ^ comment
deriving (Eq, Show)
makeEbnf :: Block -> Block
makeEbnf (CodeBlock (_, cs, _) txt)
| "ebnf" `elem` cs
= render $ either (error . errorBundlePretty) id $ parse txt
makeEbnf b = b
render :: [Rule] -> Block
render rs =
Table ("", ["ebnf"], [])
(Caption Nothing [])
[(AlignRight, ColWidthDefault),
(AlignCenter, ColWidthDefault),
(AlignLeft, ColWidthDefault)]
(TableHead mempty [])
[TableBody mempty (RowHeadColumns 0) [] (concatMap render1 rs)]
(TableFoot mempty [])
render1 :: Rule -> [Row]
render1 (RCom txt) =
[Row mempty [Cell mempty AlignLeft (RowSpan 1) (ColSpan 3)
[Plain [span "ebnf-com" txt]]]]
render1 (Rule name args def) =
row' lhs "=" d : map (row' [] "|") ds
where
lhs = case args of
[] -> [span "ebnf-nt" name]
_ -> [span "ebnf-f" name, punc "("] ++
intercalate [punc ";", Space] [[span "ebnf-nt" x] | x <- args] ++
[punc ")"]
d :| ds = splitOrs def
splitOrs (Or ds) = ds
splitOrs d = NonEmpty.singleton d
row' c1 p d = Row mempty [cell c1, cell [punc p], cell (renderDef d)]
cell is = Cell mempty AlignDefault (RowSpan 1) (ColSpan 1) [Plain is]
span c str = Span ("", [c], []) [Str str]
punc = span "ebnf-punc"
brack = span "ebnf-brack"
data Prec = OUTER | OR | SEQ | SUB deriving (Eq, Ord)
renderParens :: Bool -> [Inline] -> [Inline]
renderParens False is = is
renderParens True is = [punc "("] <> is <> [punc ")"]
renderDef :: Def -> [Inline]
renderDef = renderDefAt OUTER
renderDefAt :: Prec -> Def -> [Inline]
renderDefAt p = \case
N txt -> [span "ebnf-nt" txt]
T txt -> [span "ebnf-t" txt]
S txt -> [span "ebnf-s" txt]
C f xs ->
[span "ebnf-f" f, punc "("] ++
intercalate [punc ";", Space] (renderDefAt OUTER <$> NonEmpty.toList xs) ++
[punc ")"]
Or ds -> renderParens (p > OR) $
intercalate [Space, punc "|", Space] $ renderDefAt OR <$> NonEmpty.toList ds
Seq ds -> renderParens (p > SEQ) $
intercalate [punc ",", Space] $ renderDefAt SEQ <$> NonEmpty.toList ds
Sub d e -> renderParens (p >= SUB) $
renderDefAt SUB d <>
[Space, span "ebnf-sub" "", Space] <>
renderDefAt SUB e
Opt d -> [brack "["] <> renderDef d <> [brack "]"]
Many d -> [brack "{"] <> renderDef d <> [brack "}"]
Com txt -> [span "ebnf-com" txt]
type P = Parsec Void Text
parse :: Text -> Either (ParseErrorBundle Text Void) [Rule]
parse str = MP.parse (parse' <* eof) "<ebnf>" str
parse' :: Parsec Void Text [Rule]
parse' = many rule
rule :: P Rule
rule = choice
[Rule <$> nt <*> lhsArgs <* sym "=" <*> def <* sym ";",
RCom <$> comment]
lhsArgs :: P [Text]
lhsArgs =
sym "(" *> nt `sepBy1` sym ";" <* sym ")"
<|> pure []
nt :: P Text
nt = Text.unwords <$> some (word <* space) where
word = Text.cons <$> first <*> takeWhileP Nothing isWordChar
first = letterChar
isWordChar c = c == '_' || c == '-' || isAlphaNum c
def :: P Def
def = ors
ors :: P Def
ors = list1 Or <$> seqs `sepBy1'` sym "|"
seqs :: P Def
seqs = list1 Seq <$> sub `sepBy1'` sym ","
sepBy1' :: P a -> P z -> P (NonEmpty a)
sepBy1' a b = NonEmpty.fromList <$> sepBy1 a b
sub :: P Def
sub = do
lhs <- adef
rhs <- optMaybe $ sym "-" *> adef
pure $ maybe lhs (Sub lhs) rhs
adef :: P Def
adef = choice $
[call, T <$> term, S <$> special,
Com <$> comment,
bracketed id '(' ')',
bracketed Opt '[' ']',
bracketed Many '{' '}']
call :: P Def
call = do
f <- nt
args <- optional $ sym "(" *> def `sepBy1` (sym ";") <* sym ")"
pure $ maybe (N f) (C f . NonEmpty.fromList) args
term :: P Text
term = choice [str '\'', str '"']
special :: P Text
special = str '?'
str :: Char -> P Text
str c = lexeme $ between (char c) (char c) (takeWhileP Nothing (/= c))
comment :: P Text
comment = do try (string_ "(*"); go ["(*"] 1 where
go :: [Text] -> Int -> P Text
go acc 0 = mconcat (reverse acc) <$ space
go acc i = choice
[fragment (string "(*") (+ 1) acc i,
fragment (string "*)") (subtract 1) acc i,
fragment (takeWhileP Nothing notComChar) id acc i]
fragment p f acc i = do str <- p; go (str : acc) (f i)
notComChar c = c /= '(' && c /= '*'
string_ str = () <$ string str
bracketed :: (Def -> a) -> Char -> Char -> P a
bracketed f o c = f <$> between (char' o) (char' c) def
list1 :: (NonEmpty a -> a) -> NonEmpty a -> a
list1 _ (x :| []) = x
list1 f xs = f xs
sym :: Text -> P Text
sym str = lexeme $ string str
char' :: Char -> P Char
char' c = lexeme $ char c
lexeme :: P a -> P a
lexeme p = try $ p <* space
optMaybe :: P a -> P (Maybe a)
optMaybe = option Nothing . fmap Just

View file

@ -1,93 +0,0 @@
module Glosses (glosses) where
import Lang
import LaantasImage
import Spans (abbrs)
import qualified Spans
import Text.Pandoc.Definition
import Text.Pandoc.Builder
import Text.Pandoc.Walk
import Data.Maybe
import Data.Text (Text)
import qualified Data.Text as Text
glosses :: Vars => Block -> IO [Block]
glosses = \case
Div (i, cs, _) blocks | "glosses" `elem` cs -> do
tables <- traverse glossTable blocks
pure $
[RawBlock (Format "html") $ "<figure" <> id <> classes <> ">"] ++
catMaybes tables ++
[RawBlock (Format "html") "</figure>"]
where
id = if i == "" then "" else " id=\"" <> i <> "\""
classes = " class=\"" <> Text.unwords cs <> "\""
b -> pure [b]
pattern Gloss l g w t = BulletList [[Plain l], [Plain g], [Plain w], [Plain t]]
pattern PGloss l p g w t =
BulletList [[Plain l], [Plain p], [Plain g], [Plain w], [Plain t]]
pattern PNGloss l b n g w t =
BulletList [[Plain l], [Plain b], [Plain n], [Plain g], [Plain w], [Plain t]]
glossTable :: Vars => Block -> IO (Maybe Block)
glossTable = \case
Gloss l s g t -> Just <$> make l Nothing Nothing s g t
PGloss l p s g t -> Just <$> make l (Just p) Nothing s g t
PNGloss l b n s g t -> Just <$> make l (Just b) (Just n) s g t
HorizontalRule -> pure Nothing
b -> error $ "found " ++ show b ++ " in gloss section"
where
make l b n s g t = do
let = length $ splitInlines s
let colspecs = replicate (AlignDefault, ColWidthDefault)
let l' = cell1 $ underlines $ noHash l
b' = cell1 <$> b; n' = cell1 <$> n
let ss = cells s; gs = cells g; t' = cell1 t
img <- case ?lang of
Just Lántas ->
[Just $ cell1 [img] | img <- makeImage $ splitImage' $ stripInlines l]
Nothing -> pure Nothing
pure $ Table ("", ["gloss"], []) (Caption Nothing []) colspecs
(TableHead mempty [])
[TableBody mempty (RowHeadColumns 0) [] $ concat
[[row ["gloss-scr", "scr"] [i] | Just i <- [img]],
[row ["gloss-lang", "lang"] [l']],
[row ["gloss-pron", "ipa"] [b] | Just b <- [b']],
[row ["gloss-pron", "ipa"] [n] | Just n <- [n']],
[row ["gloss-split", "lang"] ss],
[row ["gloss-gloss"] gs],
[row ["gloss-trans"] [t']]]]
(TableFoot mempty [])
cell is = Cell mempty AlignDefault (RowSpan 1) (ColSpan 1) [Plain is]
cell1 is = Cell mempty AlignDefault (RowSpan 1) (ColSpan ) [Plain is]
cells = map (cell . concatMap abbrs) . splitInlines
row c = Row ("", c, [])
stripInlines :: [Inline] -> Text
stripInlines = query \case
Str s -> s
Space -> " "
SoftBreak -> " "
LineBreak -> " "
_ -> ""
splitInlines :: [Inline] -> [Inlines]
splitInlines is = filter (not . null) $ go is where
go [] = []
go is =
let (is1, is') = break (== Space) is in
fromList is1 : splitInlines (dropWhile (== Space) is')
underlines :: [Inline] -> [Inline]
underlines = concatMap underlineStr . takeWhile (/= Str "|") where
underlineStr = \case
Str txt -> Spans.underlines txt
i -> [i]
noHash :: [Inline] -> [Inline]
noHash = walk \case
Str str -> Str $ Text.filter (/= '#') str
i -> i

View file

@ -1,110 +0,0 @@
module LaantasImage
(Image (..), splitImage, splitImage', makeImage)
where
import Lang
import Text.Pandoc.Definition hiding (Image)
import qualified Text.Pandoc.Definition as Pandoc
import Data.Bifunctor
import Data.Function
import Data.Maybe
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Text (Text)
import qualified Data.Text as Text
import System.Environment
import System.FilePath
import System.Process
data Image =
Image {
text, title :: Text,
file :: FilePath,
size, stroke :: Double,
width :: Int,
color :: Text,
showText :: Bool
} deriving (Eq, Show)
splitImage :: Vars => Text -> Maybe Image
splitImage (Text.uncons -> Just (c, txt))
| c == '!' = Just $ splitImage' txt
| c == '#' = Just $ (splitImage' txt) {showText = False}
splitImage _ = Nothing
splitImage' :: Vars => Text -> Image
splitImage' txt =
case imageOpts txt of
Just (txt, opts) -> defaultImage txt ?defColor
& withOpt opts "file" (\f i -> i {file = makeFile f})
& withOpt opts "size" (\s i -> i {size = readt s})
& withOpt opts "stroke" (\k i -> i {stroke = readt k})
& withOpt opts "width" (\w i -> i {width = readt w})
& withOpt opts "color" (\c i -> i {color = c})
Nothing -> defaultImage txt ?defColor
where readt x = read $ Text.unpack x
withOpt :: Ord k => Map k v -> k -> (v -> a -> a) -> (a -> a)
withOpt m k f =
case Map.lookup k m of
Just v -> f v
Nothing -> id
defaultImage :: Text -> Text -> Image
defaultImage txt color =
Image {
text = Text.filter notPunc txt,
title = toTitle txt,
file = makeFile txt,
size = 20,
stroke = 0.75,
width = 600,
color = color,
showText = True
}
split1 :: Text -> Text -> Maybe (Text, Text)
split1 s txt =
let (a, b) = Text.breakOn s txt in
if Text.null b then
Nothing
else
Just (Text.strip a, Text.strip $ Text.drop (Text.length s) b)
type Opts = Map Text Text
imageOpts :: Text -> Maybe (Text, Opts)
imageOpts = fmap (second splitOpts) . getOpts
getOpts :: Text -> Maybe (Text, Text)
getOpts = split1 "|"
splitOpts :: Text -> Map Text Text
splitOpts = Map.fromList . map splitOpt . Text.splitOn ";" where
splitOpt txt = fromMaybe ("file", txt) $ split1 "=" txt
makeFile :: Text -> FilePath
makeFile txt = map stripWeird (Text.unpack txt) <.> "svg"
where stripWeird c = if weirdUrl c then '_' else c
toTitle :: Text -> Text
toTitle = Text.filter \c -> c /= '\\' && c /= '#'
makeImage :: Image -> IO Inline
makeImage (Image {..}) = do
exe <- getEnv "LAANTAS_SCRIPT"
parent <- dropFileName <$> getEnv "FILENAME"
dir <- getEnv "DIRNAME"
let fullFile = dir </> file
let relFile = Text.pack $ makeRelative parent fullFile
callProcess exe
["-S", show size, "-K", show stroke, "-W", show width,
"-C", Text.unpack color, "-t", Text.unpack text, "-o", fullFile]
pure $ Pandoc.Image ("", ["scr","laantas"], []) [] (relFile, title)
weirdUrl :: Char -> Bool
weirdUrl c = c `elem` ("#\\?&_/.·,{} " :: String)
notPunc :: Char -> Bool
notPunc c = c `notElem` ("{}·" :: String)

View file

@ -1,31 +0,0 @@
module Lang where
import Text.Pandoc.Definition
import Data.Char (toLower)
import qualified Data.Text as Text
import System.IO
import Data.Text (Text)
data Lang = Lántas deriving (Eq, Show)
type Vars = (?lang :: Maybe Lang, ?defColor :: Text)
toText :: Maybe MetaValue -> IO (Maybe Text)
toText (Just (MetaInlines [Str s])) = toText (Just (MetaString s)) -- ugh
toText (Just (MetaString s)) = pure $ Just s
toText Nothing = pure Nothing
toText (Just ) = do
hPutStrLn stderr $ "[WARN] expected a string, got: " <> show
pure Nothing
toLang :: Maybe MetaValue -> IO (Maybe Lang)
toLang m = do
mres <- fmap (Text.map toLower) <$> toText m
case mres of
Just res -> do
if res `elem` ["laantas", "lántas"] then
pure $ Just Lántas
else do
hPutStrLn stderr $ "[WARN] unknown language: " <> show res
pure Nothing
Nothing -> pure Nothing

View file

@ -1,95 +0,0 @@
{-# LANGUAGE TupleSections #-}
import Lang
import Ebnf
import Spans
import Glosses
import Text.Pandoc.Definition
import Text.Pandoc.JSON
import Text.Pandoc.Walk
import Data.Maybe
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Text (Text)
import qualified Data.Text as Text
import Control.Applicative
import Control.Monad
import System.Environment
main :: IO ()
main = toJSONFilter filter where
filter p@(Pandoc (Meta m) _) = do
lang <- toLang $ Map.lookup "conlang" m
defColor <- getDefColor m
let ?lang = lang
let ?defColor = defColor
fmap (walk fixFigureClass .
walk makeEbnf .
walk makeQuotes .
walk (concatMap makeBlocks) .
walk inlineLetterList) $
walkM spans =<<
walkM (fmap concat . traverse glosses) p
getDefColor :: Map Text MetaValue -> IO Text
getDefColor m = do
res <- toText $ Map.lookup "lang-color" m
case res of
Just col -> pure col
Nothing -> do
env <- lookupEnv "LANG_COLOR"
pure $ maybe "black" Text.pack env
pluck :: Eq a => a -> [a] -> Maybe [a]
pluck _ [] = Nothing
pluck x (y:ys) | x == y = Just ys
| otherwise = (x :) <$> pluck x ys
pluck1 :: Eq a => [a] -> [a] -> Maybe (a, [a])
pluck1 [] _ = Nothing
pluck1 (x:xs) ys = (x,) <$> pluck x ys <|> pluck1 xs ys
fixFigureClass :: Block -> Block
fixFigureClass (Figure (_, c1, a1) cap [Plain [Image (i, c2, a2) alt path]]) =
Figure (i, c1 ++ c2, a1 ++ a2) cap [Plain [Image ("", [], []) alt path]]
fixFigureClass b = b
makeBlocks :: Block -> [Block]
makeBlocks (Div ("", clss, []) blks)
| Just (cls, rest) <- pluck1 ["figure", "aside"] clss =
let html = RawBlock $ Format "html"
open = if null rest then
html $ "<" <> cls <> ">"
else
html $ "<" <> cls <> " class='" <> Text.unwords rest <> "'>"
close = html $ "</" <> cls <> ">"
in
[open] ++ blks ++ [close]
makeBlocks b = [b]
makeQuotes :: Block -> Block
makeQuotes para@(Para b) = fromMaybe para $ do
inner <- split b
return (BlockQuote [Para inner])
where
isDelim str = str == "\"\"\"" || str == "““”" -- lol
split (Str begin:SoftBreak:rest) = guard (isDelim begin) *> checkEnd rest
split _ = empty
checkEnd [SoftBreak, Str end] = [] <$ guard (isDelim end)
checkEnd (start:rest) = (start :) <$> checkEnd rest
checkEnd _ = empty
makeQuotes other = other
inlineLetterList :: Block -> Block
inlineLetterList (Div a@(_, cs, _) blks)
| "letter-list" `elem` cs = Div a (walk go blks)
where
go (Para xs) = Plain xs
go b = b
inlineLetterList b = b

View file

@ -1,96 +0,0 @@
module Spans (spans, ipaB, ipaN, abbr, abbrs, underlines) where
import LaantasImage hiding (text)
import Lang
import Text.Pandoc.Definition hiding (Image)
import Text.Pandoc.Builder hiding (Image)
import Data.Char (isUpper, isDigit)
import Data.Text (Text)
import qualified Data.Text as Text
spans :: Vars => Inline -> IO Inline
spans = \case
Code attrs txt
| Just ('\\', txt') <- Text.uncons txt -> pure $ Code attrs txt'
| Just txt' <- enclosed "" "" txt -> pure $ ipaA txt'
| Just txt' <- enclosed "//" "//" txt -> pure $ ipaA txt'
| Just _ <- enclosed "/" "/" txt -> pure $ ipaB txt
| Just _ <- enclosed "[" "]" txt -> pure $ ipaN txt
| Just txt' <- enclosed "{" "}" txt -> lang txt'
| Just txt' <- enclosed "!" "!" txt -> pure $ abbr txt'
| Just txt' <- enclosed "*" "*" txt -> pure $ mark txt'
| Just txt' <- enclosed "@" "@" txt -> pure $ dfn txt'
i -> pure i
ipaA, ipaB, ipaN, abbr, mark :: Text -> Inline
ipaA = Span (cls ["ipa", "ipa-arch"]) . text' . surround ""
ipaB = Span (cls ["ipa", "ipa-broad"]) . text'
ipaN = Span (cls ["ipa", "ipa-narrow"]) . text'
abbr = Span (cls ["abbr"]) . text' . endash
mark txt = RawInline "html" $ "<mark>" <> txt <> "</mark>"
dfn txt = RawInline "html" $ "<dfn>" <> txt <> "</dfn>"
surround :: Text -> Text -> Text
surround s txt = s <> txt <> s
text' :: Text -> [Inline]
text' = toList . text
lang :: Vars => Text -> IO Inline
lang = fmap (Span (cls ["lang"])) . lang'
lang' :: Vars => Text -> IO [Inline]
lang' txt = case ?lang of
Just Lántas
| Just li@(Image {..}) <- splitImage txt ->
if showText then do
img <- makeImage li
pure $ [img, Span (cls ["text"]) $ underlines title]
else
pure <$> makeImage li
_ ->
pure $ underlines txt
notBrace :: Char -> Bool
notBrace c = c /= '{' && c /= '}'
underlines :: Text -> [Inline]
underlines txt = case Text.uncons txt of
Nothing -> []
Just ('{', txt') -> RawInline "html" "<u>" : underlines txt'
Just ('}', txt') -> RawInline "html" "</u>" : underlines txt'
_ -> Str a : underlines b
where (a, b) = Text.span notBrace txt
cls :: [Text] -> Attr
cls cs = ("", cs, [])
enclosed :: Text -> Text -> Text -> Maybe Text
enclosed o c txt
| Text.length txt >= o + c,
Text.take o txt == o,
Text.takeEnd c txt == c
= Just $ Text.drop o $ Text.dropEnd c txt
where o = Text.length o; c = Text.length c
enclosed _ _ _ = Nothing
endash :: Text -> Text
endash = Text.map \case '-' -> ''; '_' -> ' '; c -> c
abbrs :: Inline -> [Inline]
abbrs (Str txt) = go $ endash txt where
go "" = []
go txt
| (l, r) <- Text.span isAbbr txt,
not $ Text.null l
= abbr' l : go r
| (l, r) <- Text.break isAbbr txt
= Str l : go r
abbr' txt = if Text.length txt == 1 then Str txt else abbr txt
isAbbr c = isUpper c || isDigit c || c `elem` (",.;\\[]" :: String)
abbrs i = [i]

View file

@ -1,43 +0,0 @@
cabal-version: 2.2
name: langfilter
version: 0.1.1
synopsis: filter for conlang stuff
license: AGPL-3.0-or-later
author: Rhiannon Morris <rhi@rhiannon.website>
maintainer: Rhiannon Morris <rhi@rhiannon.website>
executable langfilter
hs-source-dirs: .
main-is: Main.hs
other-modules:
Lang,
Ebnf,
Spans,
LaantasImage,
Glosses
ghc-options:
-Wall -Wno-missing-signatures -Wno-missing-pattern-synonym-signatures
-Wno-name-shadowing
-threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010
default-extensions:
BlockArguments,
ConstraintKinds,
LambdaCase,
FlexibleContexts,
ImplicitParams,
MonadComprehensions,
OverloadedStrings,
PatternSynonyms,
RecordWildCards,
ViewPatterns
build-depends:
base >= 4.14.0.0 && < 4.21,
containers >= 0.6 && < 0.8,
filepath ^>= 1.4.2.1,
megaparsec ^>= 9.6.1,
process ^>= 1.6.11.0,
pandoc-types ^>= 1.23,
text ^>= 2.1,
pretty-show ^>= 1.10

8
lizards/index.md Normal file
View file

@ -0,0 +1,8 @@
---
title: Lizard languages
hidetoc: true
...
A family of languages spoken by lizard people.
- [Palaeo-lizard](palaeo/) (2000ya?)

54
lizards/palaeo/index.md Normal file
View file

@ -0,0 +1,54 @@
---
title: Palæo-lizard
...
"Palæo-lizard" is a placeholder name, obviously.
# Phonology
## Inventory
| | Dental | Postalv. | Palatal | Velar | Uvular | Glottal |
|----------:|:-------------:|:-------------:|:----------:|:----------:|:-----------:|:-------:|
| Plosive | #(d tʰ tʼ) | | #(ɟ cʰ cʼ) | #(ɡ kʰ kʼ) | #(qʰ qʼ) | #(ʔ) |
| Affricate | #(dz tsʰ tsʼ) | #(dʒ tʃʰ tʃʼ) | | | | |
| Fricative | #(ð z θ s) | #(ʒ ʃ) | #(ʝ ç) | #(ɣ x) | #(χ) | #(h) |
| Nasal | #(n) | | #(ɲ) | | #(ɴ) | |
| Lateral | #(l) | | #(ʎ) | #(ʟ) | | |
| Flap | #(ɾ) | | | | | |
| Trill | #(r rː rːː) | | | | #(ʀ ʀː ʀːː) | |
| | Front | Back |
|---------:|:-----:|:----:|
| High | #(i) | #(ɯ) |
| Mid | #(e) | #(ɤ) |
| Low | #(a) | #(ɑ) |
Some syllables are marked with a high tone, indicated with an acute accent (e.g. «á»).
## Syllable structure
```ebnf
word = {syll}+.
syll = onset, vowel, [coda].
onset = consonant
```
## Allophony
- Obstruents are voiced in between voiced sounds.
- Front vowels become central after linguolabial, alveolar, and uvular consonants.
- Back vowels become central after dental and palatal consonants.
<!--
- phrase boundaries marked by tone in some way
- 3-way length distinction?
- stress counting from the beginning of the word
- a weird number base system (mixed base 8/4/...?)
- grammatical metathesis?
- ergative, also in word order (XVS / AXVP)
-->

75
lizards/palaeo/index.md_ Normal file
View file

@ -0,0 +1,75 @@
---
title: Palæo-lizard
...
"Palæo-lizard" is a placeholder name, obviously.
# Phonology
## Inventory
| | Linguolabial | Dental | Alveolar | Retroflex | Palatal | Velar | Uvular | Glottal |
|------------:|:------------:|:------:|:--------:|:---------:|:-------:|:-----:|:------:|:-------:|
| Plosive | #(t̼) | #(t̪) | #(t) | #(ʈ) | #(c) | #(k) | #(q) | #(ʔ) |
| Nasal | #(n̼) | #(n̪) | #(n) | #(ɳ) | #(ɲ) | | #(ɴ) | |
| Lateral | #(l̼) | #(l̪) | #(l) | #(ɭ) | | #(ʟ) | | |
| Flap | #(ɾ̼) | #(ɾ̪) | #(ɾ) | #(ɽ) | | | | |
| Trill | | | #(r) | #(ɽː) | | | #(ʀ) | |
| | Front | Back |
|---------:|:-----:|:----:|
| High | #(i) | #(ɯ) |
| Mid | #(e) | #(ɤ) |
| Low | #(a) | #(ɑ) |
Some syllables are marked with a high tone, indicated with an acute accent (#(́á)).
## Syllable structure
Syllable structure is CV(C), with the only restriction that #/h/ can't be in a consonant coda.
## Allophony
- Obstruents are voiced in between voiced sounds.
- Front vowels become central after retroflex, velar, and uvular consonants.
- Back vowels become central after linguolabial, dental, and palatal consonants.
# Pronouns
First person (singular) is #/n̪es/. Second person (any number) is #/qɑʀ/. Back references (below) are used instead of third person pronouns.
# Back references
CHANGE THESE
The form of adjacent back references alternate between vowel and consonant forms to form a short word. A single one on its own attaches to a dummy #/h/ in its vowel form.
Subscripts in glosses indicate what a given occurrence of a back reference points to.
| | Vowel | Consonant |
|--------:|:-----:|:---------:|
| #!REF1! | #(ɯ) | #(ɰ) |
| #!REF2! | #(i) | #(j) |
| #!REF3! | #(ᴇ) | #(r̪) |
| #!REF4! | #(ɑ) | #(q) |
| #!REF5! | #(a) | #(t̼) |
| #!REF6! | #(ɤ) | #(n) |
# Examples
```gloss
n̪ɛs cir jɯ ʔis ɾi jɯ t̼a
[n̪ɛs@a cir@b j@a-ɯ@b ʔis]@c ɾi@d j@c-ɯ@d t̼a
[1SG@a house@b REF2@a-REF1@b go_to]@c quick@d REF2@c-REF1@d do
I go to the house quickly
```
# Word list
- \#/cir/: house
- \#/ɾi/: quick
- \#/t̼a/: do
- \#/ʔis/: go to
- \#/ʔɑs/: go into

View file

@ -1,26 +0,0 @@
---
title: Conlangs
toc: false
hide-footer: true
...
Yeah. The ones I have anything written up for, in order of detail, and with a
couple of buzzwords each:
* **[Lántas](laantas)** `/laːntas/`, which is the language which has gone longest
without me abandoning it. It has lots of noun cases and syllabic consonants,
and is written with an abugida.
* **[Tengan]**, or `{tté ŋa}` `/tʼɛ˥ ŋɑ˩/`, with an isolating grammar, click
consonants, evidentiality, and a Hangul-ripoff for the script. (I haven't
transferred it from my old site yet, sorry)
* **[Zalajmkwély](zalajmkwely)** `/zɑlɑɪmkweˈliː/`, which was originally from
a "design a conlang in an hour" challenge thing but then I got kind of
attached to it. It's still just a sketch though.
It has nine genders and vowel harmony.
* [an unnamed language with a volapük-ass aesthetic](vol)
Also, [a mirror](syn-test-cases.html) of some syntax test cases, originally
compiled by Gary Shannon, that might be useful to someone.

View file

@ -1,334 +0,0 @@
---
title: Lántas examples
backname: Lántas
backlink: .
conlang: lántas
...
# The North Wind and the Sun {#nwas}
> The North Wind and the Sun were disputing which was the stronger, when
> a traveller came along wrapped in a warm cloak. They agreed that the one who
> first succeeded in making the traveller take his cloak off should be
> considered stronger than the other. Then the North Wind blew as hard as he
> could, but the more he blew the more closely did the traveller fold his cloak
> around him; and at last the North Wind gave up the attempt. Then the Sun
> shined out warmly, and immediately the traveller took off his cloak. And so
> the North Wind was obliged to confess that the Sun was the stronger of the
> two.
:::example
`{!
Ruakul naipa bahútlit aimlis Laksimat Fuhamkas Guwanḿ asumsas ba sua. Gimimli
ufat kukkit ippauja šikkúƶł ruamiril nara. Šikkúƶłm kukkimat rumin júlim
natta abudajaƶ bahútlit amat laimitta šikkúbu. Gimimli Laksimat Fuham rut
bássatlit fuha, ŕminu hakkatta fuhafamat gimimli kubutta šikkúƶłm kukkimat
rumi ńgua. Mulin Laksimat Fuham čaubam bulla. Gimimli Guwanḿ ufatta tílju,
ŕ šikkúƶłm kukkimat šutta rumin júli. Mulin Guwanḿ bahútlit amat Laksimat
Fuham suam bulla.
| file = northwind ; size = 50 ; stroke = 2
}`
:::
---
::: {.glosses .left}
- Ruakul naipa bahútlit aimlis
- ˌruə̯kɔɬʲ ˌnæɪ̯pɐ bɐˈxoːɪt æɪ̯mlɪs
- rua-ku-l nai=pa bahú-t-lit ai-m-li-s
- 3-SUB-PL one=what strength-GEN-SUP be-DEF-IN-ABL
- About which of them was stronger
---
- Laksimat Fuhamkas Guwanḿ asumsas ba sua.
- ˌlaksɪmɐt ˈfuxɑmkɑs ˈɡɔwɑnm̩ ˌasʊmsɐs bɐ ˌsuə̯
- laksi-m-at fuha-m-kas guwan-ḿ asu-m-sa-s ba sua
- north-DEF-GEN blow-DEF-COM sun-DEF others-DEF-AD-LAT against say
- the North Wind and the Sun were arguing.
---
- Gimimli ufat kukkit ippauja šikkúƶł ruamiril nara.
- ˌɡɛmɪmlɪ ˌufɐt ˈkɔkːɛt ˌipːɑʊ̯jɐ ˈʃikːoːθɫ̩ ˌɾuə̯mɪʑɪɬʲ ˌnarɐ
- gimi-m-li ufan-t kukki-t ippau-ja šikkú-ƶł rua-mi-ri-l nara
- time-DEF-IN warm-GEN coat-GEN wear-REL go-er 3-APUD-PRL-PL walk
- Then, a traveller wearing a warm coat walked past.
---
- Šikkúƶłm kukkimat rumin júlim natta abudajaƶ
- ˌʃikːoːθɫ̩m ˈkɔkːɛmɐt ˌɾumɪn ˌjuːlɪm ˈnatːɐ ˌavʊðɐjɐθ
- šikkúƶł-m kukki-m-at ru-mi-n júli-m na-tta abuda-ja-ƶ
- traveller-DEF coat-DEF-GEN 3SG-APUD-ABL take-DEF one-ADV cause-REL-NOM
- The one to first make the traveller remove his coat
---
- bahútlit amat laimitta šikkúbu.
- bɐˈxoːɪt amɐt ˌlæɪ̯mɪtːɐ ˌʃikːoː
- bahútlit ai-m-at laimi-tta šikkú-bu
- strongest be-DEF-GEN same-ADV go-3PL
- would be the stronger is what they agreed.
---
- Gimimli Laksimat Fuham rut bássatlitta fuha,
- ˌɡɛmɪmlɪ ˈlaksɪmɐt ˈfuxɑm ɾʊt ˌbaːsːɐtɬɪtːɐ ˈfuxɑ
- gimimli Laksimat_Fuham rut bássa-t-lit-ta fuha
- then the:North:Wind 3SG;GEN force-GEN-SUP-ADV blow
- Then the North Wind blew his hardest,
---
- ŕminu hakkatta fuhafamat gimimli
- ˌɻ̩ːmɪnʊ ˌxɑkːɑtːɐ ˈfuxɑfɐmɐt ˌɡɛmɪmlɪ
- ŕ-minu hakka-tta fuha-fa-m-at gimimli
- and-still harsh-ADV blow-3SG-DEF-GEN as
- but the stronger he blew
---
- kubutta šikkúƶłm kukkimat rumi ńgua.
- ˌkɔvʊtːɐ ˌʃɪkːoːθɫ̩m ˌkɔkːɛmɐt ɾʊmɪ ˈŋ̩ɡɔə̯
- kubu-tta šikkúƶłm kukkim-at ru-mi ńgua
- close-ADV the:traveller the:coat-GEN 3SG-APUD pull
- the closer the traveller pulled his coat around himself.
---
- Mulin Laksimat Fuham čaubam bulla.
- ˌmulɪn ˈlaksɪmɐt ˈfuhɑm ˈɑʊ̯vɐm ˌbuɫːɑ
- mu-li-n Laksimat_Fuham čauba-m bulla
- that-AD-ABL the:North:Wind give_up-DEF must
- So the North Wind had to give up.
---
- Gimimli Guwanḿ ufatta tílju,
- ɡɛˌmimlɪ ˈɡɔwɑnm̩ ʊˈfatːɐ ˌtɪːljʊ
- gimimli Guwanḿ ufan-tta tílju
- then the:sun warm-ADV shine
- Then the Sun shone out warmly,
---
- ŕ šikkúƶłm kukkimat šutta rumin júli.
- ɻ̩ː ˌʃikːoːθl̩m ˈkɔkːɛmɐt ˈʃutːɐ ˌɾumɪn ˌjyːlɪ
- ŕ šikkúƶłm kukkimat šun-tta ru-mi-n júli
- and the:traveller the:coat:GEN immediate-ADV 3SG-APUD-ABL take
- and immediately the traveller took off his coat.
---
- Mulin Guwanḿ bahútlit amat Laksimat Fuham suam bulla.
- ˌmulɪn ˈɡɔwɑnm̩ bɐˌxoːɪt amɐt ˈlaksɪmɐt ˈfuxɑm suɐ̯m ˌbuɫːɐ
- mulin Guwanḿ bahútlit ai-m-at Laksimat_Fuham sua-m bulla
- so the:Sun strongest be-DEF-GEN the:North:Wind say-DEF must
- So the North Wind had to say that the Sun was the stronger.
:::
# Nuclear waste warning messages
You know, [this thing]:
[this thing]:
https://en.wikipedia.org/wiki/Long-time_nuclear_waste_warning_messages
> This place is a message... and part of a system of messages... pay attention
> to it!\
> Sending this message was important to us. We considered ourselves to be a
> powerful culture.\
> This place is not a place of honor... no highly esteemed deed is commemorated
> here... nothing valued is here.\
> What is here was dangerous and repulsive to us. This message is a warning
> about danger.\
> The danger is in a particular location... it increases towards a center... the
> center of danger is here... of a particular size and shape, and below us.\
> The danger is still present, in your time, as it was in ours.\
> The danger is to the body, and it can kill.\
> The form of the danger is an emanation of energy.\
> The danger is unleashed only if you substantially disturb this place
> physically. This place is best shunned and left uninhabited.
:::example
`{! Lusa fasḿ suagu ai.
Suatł kaubanuan aifa.
Kaitta mansilúm bulla!
Luƶ suamat parailúm ausut aisaji.
Wiǧiranḿ bahút amat ibjalúsaji.
Lusa fasḿ šimat tul.
Lusa šitta ibjalúja látŕl sihalútul.
Lusa nakasnai šusullútul.
Lusa nakasnai lapusukat taƶmanifnuču ai.
Lua suagum lapusulin ai.
Lapusum ƶunat fassa suwai.
Muƶ fasḿlis lapusum ausulis asurai.
Lapusumat kuwisḿ lumi suwai.
Ƶunat ausukat ƶunat pilkat ai, ŕ luku suwai.
Minu sá, suatł gimimli, abjatta luƶ gimimli, lapusum suwai.
Lapusum agamlisł šikkúmá. Ƶalussufam fullu.
Lapusumat pilḿ tíljut čauba ai.
Natta agamatta luƶ fasḿ pašulúmlin lapusum sidam tisu.
Luƶ fasmamin duguwalúm dansu.
Luli nakasnai nuabiam dansutul.
| file = nwwm ; size = 50 ; stroke = 2
}`
:::
::: {.glosses .left}
- Lusa fasḿ suagu ai.
- ˌlusə ˈfasm̩ ˈsuəɡɔ æɪ
- lu-sa fas-ḿ sua-gu ai
- this-AD place-DEF message-ESS be
- This place is a message.
---
- Suatł kaubanuan aifa.
- ˌsuətɫ̩ ˈkɒʊvənuən æɪ
- sua-t-ł kauba-nua-n ai-fa
- message-GEN-PL group-INTER-ABL be-3SG
- It is from a group of messages.
---
- Kaitta mansilúm bulla!
- ˈkɑetːə ˈmansɪlúm bʊɫːə
- kai-t-ta mansi-lú-ḿ bulla
- good-GEN-ADV understand-PSV-DEF must
- It must be understood well!
---
- Luƶ suamat parailúm ausut aisaji.
- lʊθ ˌsuəmɐt ˌparæɪluːm ˈɑʊsʊt ˌæɪsəjɛ
- lua-ƶ sua-ma-t parai-lú-m ausu-t ai-saji
- this-ADJ message-DEF-GEN write-PSV-DEF important-GEN be-DPST
- It was important that this message was sent.
---
- Wiǧiranḿ bahút amat ibjalúsaji.
- ˌwɛʒɪrɐnm̩ bɐˈxoːt ˌamət ˌivjəluːsəjɛ
- wiǧiran-ḿ bahú-t a(i)-m-at ibja-lú-saji
- society-DEF strong-GEN be-DEF-GEN believe-PSV-DPST
- This society was seen as strong.
---
- Lusa fasḿ šimat tul.
- ˌlusə ˌfasm̩ ˈʃimət ˈtuɬʲ
- lusa fas-ḿ ši-m-at tul.
- here place-DEF honour-DEF-GEN NEG
- This place is not honourable.
---
- Lusa šitta ibjalúja látŕl sihalútul.
- lusa ši-t-ta ibja-lú-ja lá-tŕ-l siha-lú-tul
- here honour-GEN-ADV believe-PSV-REL do-act-PL remember-PSV-NEG
- Highly-regarded acts are not remembered here.
---
- Lusa nakasnai šusullútul.
- lusa nakasnai šusł-lú-tul
- here everything want-PSV-NEG
- What is here is not valued.
---
- Lusa nakasnai lapusukat taƶmanifnuču ai.
- lusa nakasnai lapusu-kat taƶ-manifnu-ču ai
- here everything pain-GEN;and un-pleasant-EXE be
- What is here is dangerous and repulsive.
---
- Lua suagum lapusulin ai.
- lua sua-gu-m lapusu-li-n ai
- this message-ESS-DEF pain-IN-ABL be
- This is a warning about danger.
---
- Lapusum ƶunat fassa suwai.
- lapusu-m ƶuna-t fas-sa suwai
- danger-DEF exact-GEN place-AD exist
- The danger is in a particular location.
---
- Muƶ fasḿlis lapusum ausulis asurai.
- mua-ƶ fas-ḿ-li-s lapusu-m ausu-li-s asurai
- that-ADJ place-DEF-IN-LAT danger-DEF big-IN-LAT become
- The danger increases towards that location.
---
- Lapusumat kuwisḿ lumi suwai.
- lapusu-m-at kuwis-ḿ lua-mi suwai
- danger-DEF-GEN source-DEF this-APUD exist
- The source of the danger is near here.
---
- Ƶunat ausukat ƶunat pilkat ai, ŕ luku suwai.
- ƶunat ausu-kat ƶunat pil-kat ai ŕ lua-ku suwai
- certain size-GEN;and certain shape-GEN;and be and this-SUB exist
- It is a certain size and shape, and below here.
---
- Minu sá, suatł gimimli, abjatta luƶ gimimli, lapusum suwai.
- minu sá suatł gimi-m-li abjatta luƶ gimi-m-li lapusum suwai
- still now your time-DEF-IN same:as this time-DEF-IN the:danger exist
- Even now, in your time, the danger exists, just as in ours.
---
- Lapusum agamlisł šikkúmá. Ƶalussufam fullu.
- lapusum aga-m-li-s-ł šikkú-má. ƶalussu-fa-m fullu
- the:danger body-DEF-IN-LAT-PL go-FUT. kill-3SG-DEF can
- The danger will enter the body. It can kill.
---
- Lapusumat pilḿ tíljut čauba ai.
- lapusum-at pil-ḿ tílju-t čauba ai
- the:danger-GEN shape-DEF energy-GEN throw be
- The form of the danger is an aura of energy.
---
- Natta agamatta luƶ fasḿ pašulúmlin...
- natta aga-m-at-ta luƶ fasḿ pašu-lú-m-li-n
- only body-DEF-GEN-ADV this the:place damage-PSV-DEF-IN-ABL
- only if this place is physically damaged...
---
- ...lapusum sidam tisu.
- lapusum sida-m tisu
- the:danger come-DEF if_then
- ...will the danger arrive.
---
- Luƶ fasmamin duguwalúm dansu.
- luƶ fas-ma-mi-n duguwa-lú-m dansu
- this place-DEF-APUD-ABL avoid-PSV-DEF should
- This place should be avoided.
---
- Luli nakasnai nuabiam dansutul.
- lua-li nakasnai nuabia-m dansu-tul
- this-IN everyone live-DEF should-NEG
- No one should live here.
:::

View file

@ -1,20 +0,0 @@
---
title: Lántas
toc: false
conlang: lántas
...
:::splash
`{#lántas | size = 200 ; stroke = 7}`
:::
1. [Phonology](phono.html)
2. [Writing system](writing.html)
3. [Nouns](nouns.html)
4. [Pronouns, etc](prons.html)
5. [Verbs](verbs.html)
6. [Numbers](numbers.html)
7. [Syntax] not done yet
8. [Examples](examples.html)
9. [List of abbreviations](abbrevs.html)
10. [Dictionary](words.yaml) need to present in more readable way

View file

@ -1,483 +0,0 @@
---
title: Lántas nouns
backname: Lántas
backlink: .
conlang: lántas
...
Lántas is unusual (as far as I know) in that words which are often considered
to form a separate "adjective" class, or, a subset of verbs, are in fact (the
genitive case of) nouns.
# Number
The basic form of a noun is its singular, in all cases. The plural is formed by adding:
- `{!al}` to a word ending in `{l}` or `{ł}`,
- `{!l}` to a word ending in a vowel, or
- `{!–ł}` to a word ending in a consonant, syllabic or not, other than `{l}`.
This plural form can also be applied to names of people. In this case it forms
what is called an _associative plural_, and refers to a person plus a group
associated with them, usually their family or friend group.
:::glosses
- ǧunail
- ǧunai-l
- stick-PL
- sticks
------------
- Jánimł
- Jáni-m-ł
- John-DEF-PL
- John and his friends
:::
# Definiteness
The definite suffix for nouns `!(DEF)!` is usually `{!m}`, and is used more
frequently than 'the' in English. For example, in the first sentence below Sam
has one dog, but in the second he is implied to have several. The names of
people and places are also definite.
The suffix has a few different forms depending on how the word ends:
Ending Suffix Examples
------------------------- ---------- --------------------------------
`{m}` or `{ḿ}` `{!am}` `{!šaksḿam}` 'the ash',
**TODO word ending in m**
other consonant or `{ń}` `{!–ḿ}` `{!lántasḿ}` 'the language',
`{!kášńḿ}` 'the lizard'
vowel, `{ŕ}`, or `{ł}` `{!m}` `{!luwam}` 'the truth',
`{!laksŕm}` 'the fish',
`{!ustaiƶłm}` 'the singer'
------------------------- ---------- --------------------------------
A sequence `{ńḿ}` formed in this way is pronounced as `/nm̩/`. In other words,
`{!kášńḿ}` has *two* syllables, not three like it is written. An extra `{-a}` is
inserted after the `{-m}` form of the suffix if it is needed due to another
suffix following it.
:::glosses
- Sámimat ƶasim
- Sami-ma-t ƶasi-m
- Sam-DEF-GEN dog-DEF
- Sam's dog
---
- Sámimat ƶasi
- Sami-ma-t ƶasi
- Sam-DEF-GEN dog
- one of Sam's dogs
:::
:::glosses
- guwanḿt samńḿ
- ˈɡu.wa.nm̩t ˈsam.nm̩
- guwan-ḿ-t samń-ḿ
- sun-DEF-GEN colour-DEF
- the colour of the sun
:::
## Using the definite suffix
The definite suffix is used:
:::examples
- When the referent is old information already mentioned.
- `{!Pas nú bairusina.}` \
`{!Nai rala núm manifnut gašnat ippausi.}` \
I saw two people. One of them was wearing a nice shirt.
- For people, places, countries, and other proper names.
- `{!Ƶuƶ pas kášńł ǧiššimamba nuabia.}`\
Those two lizards live above the bakery.
- In time phrases with `{!gimi}`. However, `{!naigimi}` 'sometime' is indefinite.
- `{!Gimimli lána.}`\
I'm doing it now.
- `{!Naigimimli lámána.}`\
I'll do it at some point.
- In statements of general fact.
- `{!Númsal pasla aƶal ai.}`\
Humans have two eyes.
- __TODO: ?__
:::
The definite suffix is _not_ used (in contrast to English):
:::examples
- In superlatives.
- `{!Milnutlit aifa.}`\
It's the smallest.
- __TODO: ?__
:::
# Core cases {#corecases}
Declension for the core cases of `{!nú}` 'man' and `{!lun}` 'road' are shown
below. Some of the endings are slightly different in the case of a stem ending
in a consonant or vowel, and if the ending starts with multiple consonants the
final one of the stem is dropped.
:::figure
  `!SG !` `!PL!`
----------------------- ------------ --------------
Nominative `!(NOM)!` `{!nú}` `{!nú·l}`
Genitive `!(GEN)!` `{!nú·t}` `{!nú·t·ł}`
Comitative `!(COM)!` `{!nú·kas}` `{!nú·kas·ł}`
Caritive `!(CAR)!` `{!nú·ssa}` `{!nú·ssa·l}`
Instrumental `!(INS)!` `{!nú·la}` `{!nú·la·l}`
Essive `!(ESS)!` `{!nú·gu}` `{!nú·gu·l}`
Translative `!(TRA)!` `{!nú·sti}` `{!nú·sti·l}`
Exessive `!(EXE)!` `{!nú·ču}` `{!nú·ču·l}`
  `!SG!` `!PL!`
-------- ------------ ---------------
`!NOM!` `{!lun}` `{!lun·ł}`
`!GEN!` `{!lu·t}` `{!lun·t·ł}`
`!COM!` `{!lun·kas}` `{!lun·kas·ł}`
`!CAR!` `{!lu·ssa}` `{!lu·ssa·l}`
`!INS!` `{!lun·la}` `{!lun·la·l}`
`!ESS!` `{!lun·gu}` `{!lun·gu·l}`
`!TRA!` `{!lu·sti}` `{!lu·sti·l}`
`!EXE!` `{!lun·ču}` `{!lun·ču·l}`
:::
The _nominative_ is the subject of sentences, and the unmarked form. The
_genitive_ is used for the object of sentences, the possessive, and for
modifying other nouns (see [below](#adjectivals)).
:::glosses
- Jánim línait bairusi.
- Jáni-m línai-t bairu-si
- John-DEF mouse-GEN see-RPST
- John saw a mouse.
---
- Jánimat línai
- Jáni-ma-t línai
- John-DEF-GEN mouse
- John's mouse
---
- ausut línai
- ausu-t línai
- large-GEN mouse
- a large mouse
:::
For _inalienable_ possession (body parts, family members, etc), the [definite](#definiteness) is usually used instead of an explicit genitive construction.
:::glosses
- Nattumatł bairusina.
- nattu-ma-t-ł bairu-si-na
- parent-DEF-GEN-PL see-PST-1SG
- I saw my [the] parents.
:::
The _comitative_ case is used for 'and' between two nouns, as well as 'with' in
the sense of 'accompanied by'. It is used on all but the _last_ noun being
conjoined, with the last one taking the semantic case for the whole sequence.
The opposite case, the _caritive_, means 'without', and is also used for
_negative_ possessive statements. (See the adessive, described below, for
affirmative statements.)
:::glosses
- suksł ká
- suksł ká
- they;COM I
- they and I
---
- Kalńkas ƶasit bairusina.
- kalń-kas ƶasi-t bairu-si-na
- cat-COM dog-GEN see-RPST-1SG
- I saw a cat and a dog.
---
- Sairiassa aina.
- sairia-ssa ai-na
- money-CAR be-1SG
- I don't have any money.
---
- Kat fadaukas ká rut ǧimamlis šikkúsi.
- kat fadau-kas ká rut ǧima-m-li-s šikkú-si
- my friend-COM I his house-DEF-IN-LAT go-RPST
- I went with my friend to his house.
:::
The most common use of the _instrumental_ case is the "[theme]" of ditransitive
sentences (while the recipient is in the genitive). It is also used for 'with'
as in 'using', in distributive phrases such as `{!kallila}` 'in threes, in sets
of three, three each', and quantifiers like 'every'.
[theme]: https://en.wikipedia.org/wiki/Secundative_language
:::glosses
- Sanǧula paraina.
- sanǧu-la parai-na
- pen-INS write-1SG
- I write with a pen.
---
- kalli litrala tippi
- kalli litra-la tippi
- three litre-INS water
- three litres of water
---
- nakasnala hámal
- nakasnala háma-l
- every;INS country-PL
- every country
---
- nala núl
- nala nú-l
- any;INS person-PL
- some people
---
- nai rala númł
- nai ra(n)-la nú-m-ł
- one thing-INS person-DEF-PL
- one of the people
---
- nala númł
- nala nú-m-ł
- any;INS person-DEF-PL
- some of the people
:::
The basic meaning of the _essive_ case is a state. It is used:
- when a noun modifies another, but with a descriptive meaning\
`{!wasalgu fadau}` "animal friend" (i.e. a friend who is an animal);
- as the object of certain verbs like __TODO what?__;
- with [comparatives](#adjectivals);
- as the second argument of `{!ai}`
(in very conservative styles the nominative is still used here)
The _translative_ and _exessive_ cases indicate a change of state:
- with state-change verbs, the translative marks the new state, and the
exessive the old;
- the exessive is also used with [comparatives](#adjectivals);
- __TODO what else is the translative used with otherwise why does it exist__
__TODO: examples__
# Locational cases
The locational cases are formed by pairs of suffixes, one for the type of
motion and one for the orientation or part of the target object.[^tsez] These
cases have formulaic names, e.g., 'adessive' (at), 'superablative' (from
above), and so on. The prefixes describe the type of motion, and the main words
indicate the relative position:
[^tsez]: You might think that this sounds too artificial, but I actually stole
it from [Tsez]. That's also where I got the pseudolatin names.
[Tsez]: http://en.wikipedia.org/wiki/Tsez_language "Tsez on Wikipedia"
:::figure
-------- ----------- -------------------------
ad-- `!AD!` at, on
in-- `!IN!` in
pre-- `!PRE!` in front of
post-- `!POST!` behind
inter-- `!INTER!` between, among
super-- `!SUPER!` on top of, above
sub-- `!SUB!` below, under
apud-- `!APUD!` near, next to
-------- ----------- -------------------------
---------- --------- -------------------------
essive `!ESS!` at, on
lative `!LAT!` towards
ablative `!ABL!` away from
perlative `!PRL!` through, along
---------- --------- -------------------------
:::
Unlike for the core cases, the endings are the same regardless of whether the
stem ends in a consonant or vowel, so they are only listed for `{!nú}`.
:::figure
    `!ESS!` `!LAT!` `!ABL!` `!PRL!`
---------- ------- -------------- ---------------- ---------------- -----------------
`!AD!` `!SG!` `{!nú·sa}` `{!nú·sa·s}` `{!nú·sa·n}` `{!nú·sa·ri}`
`!PL!` `{!nú·sa·l}` `{!nú·sa·s·ł}` `{!nú·sa·n·ł}` `{!nú·sa·ri·l}`
`!IN!` `!SG!` `{!nú·li}` `{!nú·li·s}` `{!nú·li·n}` `{!nú·li·ri}`
`!PL!` `{!nú·li·l}` `{!nú·li·s·ł}` `{!nú·li·n·ł}` `{!nú·li·ri·l}`
`!PRE!` `!SG!` `{!nú·ƶu}` `{!nú·ƶu·s}` `{!nú·ƶu·n}` `{!nú·ƶu·ri}`
`!PL!` `{!nú·ƶu·l}` `{!nú·ƶu·s·ł}` `{!nú·ƶu·n·ł}` `{!nú·ƶu·ri·l}`
`!POST!` `!SG!` `{!nú·gi}` `{!nú·gi·s}` `{!nú·gi·n}` `{!nú·gi·ri}`
`!PL!` `{!nú·gi·l}` `{!nú·gi·s·ł}` `{!nú·gi·n·ł}` `{!nú·gi·ri·l}`
`!INTER!` `!SG!` `{!nú·nua}` `{!nú·nua·s}` `{!nú·nua·n}` `{!nú·nua·ri}`
`!PL!` `{!nú·nua·l}` `{!nú·nua·s·ł}` `{!nú·nua·n·ł}` `{!nú·nua·ri·l}`
`!SUPER!` `!SG!` `{!nú·ba}` `{!nú·ba·s}` `{!nú·ba·n}` `{!nú·ba·ri}`
`!PL!` `{!nú·ba·l}` `{!nú·ba·s·ł}` `{!nú·ba·n·ł}` `{!nú·ba·ri·l}`
`!SUB!` `!SG!` `{!nú·ku}` `{!nú·ku·s}` `{!nú·ku·n}` `{!nú·ku·ri}`
`!PL!` `{!nú·ku·l}` `{!nú·ku·s·ł}` `{!nú·ku·n·ł}` `{!nú·ku·ri·l}`
`!APUD!` `!SG!` `{!nú·mi}` `{!nú·mi·s}` `{!nú·mi·n}` `{!nú·mi·ri}`
`!PL!` `{!nú·mi·l}` `{!nú·mi·s·ł}` `{!nú·mi·n·ł}` `{!nú·mi·ri·l}`
:::
:::figure
- `{!Dufnamsas júlisina.}`\
`!(AD-LAT)!` I stuck it onto the wall.
- `{!Ǧimamsa aihapa?}`\
`!(AD-ESS)!` Are you at home?
- `{!Sihamgit ǧimamlis šikkúmána.}`\
`!(IN-LAT)!` I'll be going home soon.
- `{!Sabut kalń káƶuri narasi.}`\
`!(PRE-PRL)!` A black cat passed in front of me.
- `{!Ǧimamgi waibifás.}`\
`!(POST-ESS)!` They're playing round the back of the house.
- `{!Lunsari šikkúsina.}`\
`!(AD-PRL)!` I went down the road.
- `{!Lunliri šikkúsina.}`\
`!(IN-PRL)!` I went across the road.
- `{!Lunmiri šikkúsina.}`\
`!(APUD-PRL)!` I followed (alongside) the river.
:::
## Non-locative uses
- Subessive is used for:
- 'in the opinion of':
`{!Kaku manifnut ai.}`\
That's pleasant to me/I like that.
- Superessive is used for:
- 'about'\
`{!Suba jaisi fína.}`\
I had a dream about you.
## Position words
The position suffixes give rise to the following words based on some roots
`{!fan}`, `{!gis}`, and `{!pul}`, which no longer exist as separate words:
:::figure
- `{!fanaƶ}`: surface
- `{!falliƶ}`: interior
- `{!gissuƶ}`: front
- `{!giksiƶ}`: back
- `{!pulluaƶ}`: company
- `{!gisbaƶ}`: top
- `{!giskuƶ}`: bottom
- `{!pummiƶ}`: vicinity
:::
# Adjectivals
Most words considered as adjectives in other languages are in fact
grammatically nouns in Lántas; words such as `{!sabu}` can be translated as
'the colour black'. When one noun modifies another attributively, the [genitive
case](#corecases) suffix `{-t}` is used. In the case of multiple adjectives,
all other than the last have a modified form of the comitative suffix,
`{kat}`. Adjectives, like other noun modifiers, precede the head noun.
Genitive forms can be used as adverbs with the suffix `{-tta}`; the conjunctive
variant is `{-ttás}`. Adverbs appear immediately before the verb if they are
short. Long adverbial phrases, as well as context-setting adverbs such as time
words, are usually placed before the rest of the sentence. Longer adverb
phrases at the start of a sentence are often separated from the rest by
a comma.
:::glosses
- sabut ƶasi
- sabu-t ƶasi
- black-GEN dog
- a black dog
---
- líbit ƶasi
- líbi(s)-t ƶasi
- happy-GEN dog
- a happy dog
---
- sabut líbiskat ƶasi
- sabu-kat líbi(s)-t ƶasi
- black-ADJCOM happy-GEN dog
- a happy black dog
---
- Línaim sihatta irhi.
- línai-m siha-tta irhi
- mouse-GEN small-ADV squeak
- The mouse is squeaking quietly.
:::
From adjectivals, several further derivations can be made: the _equative_,
which expresses that two objects have an equal measure of some property; the
_comparative_, which says that one object has more of a property than another
object; and the _superlative_, which claims that an object has the most of
a property.
:::figure
----------------------- ---------------- ------------
Adjective `{!ausu·t}` big
Equative `!(EQU)!` `{!ausu·t·sat}` as big as
Comparative `!(CMP)!` `{!ausu·t·pat}` bigger than
Superlative `!(SUPL)!` `{!ausu·t·lit}` the biggest
----------------------- ---------------- ------------
:::
The noun being compared with is in the [essive case](#corecases) for the
equative, and the exessive for the comparative.
:::glosses
- ǧimagu ausutsat
- ǧima-gu ausu-t-sat
- house-ESS big-GEN-EQU
- as big as a house
---
- fíraču panísatpat
- fíra-ču panísa-t-pat
- sky-EXE blue-GEN-CMP
- bluer than the sky
:::

View file

@ -1,33 +0,0 @@
---
title: Lántas numbers
hidetoc: true
backname: Lántas
backlink: .
conlang: lántas
...
---- ------------------ ------ ------------------
1 `{!nai}` 19 `{!taksístu}`
2 `{!pas}` 20 `{!pastaksa}`
3 `{!kalli}` 30 `{!kaldaksa}`
4 `{!šasḿ}` 40 `{!šastaksa}`
5 `{!kaisi}` 50 `{!kaistaksa}`
6 `{!ǧutta}` 60 `{!ǧuttaksa}`
7 `{!libina}` 70 `{!libidaksa}`
8 `{!ńdá}` 80 `{!ńtaksa}`
9 `{!ístu}` 90 `{!ístaksa}`
10 `{!taksa}` 100 `{!bušŕ}`
11 `{!tahnai}` 1000 `{!nifma}`
12 `{!tappas}` 10⁴ `{!hárual}`
13 `{!takkalli}` 10⁵ `{!taksahárual}`
14 `{!taksasḿ}` 10⁶ `{!bušŕhárual}`
15 `{!takkaisi}` 10⁷ `{!nifmahárual}`
16 `{!taččutta}` 10⁸ `{!kḿpsi}`
17 `{!taksalibina}` 10¹² `{!kahmil}`
18 `{!taksandá}` 10¹⁶ `{!uhnat}`
---- ------------------ ------ ------------------
Numbers between 20--99 are formed by analogy with those from 11--19, for example
`{!kaldappas}` for 32 or `{!ǧuttaččutta}` for 66. Numbers are given from largest
to smallest, with the value and place of each digit written as one word, so
43,523 is `{!šasḿhárual kallinifma kaisibušŕ pastakkalli}`.

View file

@ -1,247 +0,0 @@
---
title: Lántas phonology
backname: Lántas
backlink: .
conlang: lántas
...
# Vowels
:::figure
<!-- pure vowels -->
<svg width="210" height="160" viewBox="0 0 210 160">
<g id="vowel-frame">
<!-- outer trapezoid -->
<polygon points="0 0 200 0 200 150 100 150"
fill="transparent" stroke="black" />
<!-- help lines -->
<g stroke="#999">
<line x1="50" y1="75" x2="200" y2="75" />
<line x1="100" y1="0" x2="150" y2="150" />
</g>
</g>
<!-- í -->
<circle cx="25" cy="15" r="3" fill="black" />
<text x="34" y="19" class="ipa">iː</text>
<!-- i -->
<circle cx="50" cy="30" r="3" fill="black" />
<text x="58" y="34" class="ipa">i</text>
<!-- ú -->
<circle cx="150" cy="15" r="3" fill="black" />
<text x="159" y="18" class="ipa">uː</text>
<!-- u -->
<circle cx="125" cy="30" r="3" fill="black" />
<text x="133" y="34" class="ipa">u</text>
<!-- á -->
<circle cx="110" cy="135" r="3" fill="black" />
<text x="116" y="138" class="ipa">aː</text>
<!-- a -->
<circle cx="125" cy="115" r="3" fill="black" />
<text x="110" y="118" class="ipa">a</text>
</svg>
<!-- ai, au -->
<svg width="210" height="160" viewBox="0 0 210 160">
<defs>
<marker id="arrowhead"
markerWidth="10" markerHeight="12"
orient="auto" refX="1" refY="4"
viewBox="0 0 12 10">
<polygon points="0 0 12 5 0 10" fill="black" />
</marker>
<marker id="circle"
markerWidth="6" markerHeight="6"
orient="auto" refX="3" refY="3"
viewBox="0 0 6 6">
<circle cx="3" cy="3" r="3" fill="black" />
</marker>
</defs>
<use href="#vowel-frame" />
<!-- ai -->
<line x1="90" y1="100" x2="50" y2="30"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="78" y="65" class="ipa">ai</text>
<!-- au -->
<line x1="180" y1="130" x2="180" y2="45"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="155" y="91" class="ipa">au</text>
</svg>
<!-- ia, ua -->
<svg width="210" height="160" viewBox="0 0 210 160">
<use href="#vowel-frame" />
<!---->
<line x1="25" y1="15" x2="115" y2="65"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="64" y="30" class="ipa"></text>
<!---->
<line x1="190" y1="15" x2="130" y2="65"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="147" y="30" class="ipa"></text>
</svg>
:::
There are three basic vowels `/i a u/`, diphthongs `/ai au iə uə/`, and
syllabic consonants `/m̩ n̩ r̩ l̩/`. Neither of these last two sets have a length
distinction, and have the same duration as a long vowel. Note that `/u uː/` are
substantially more central than `/i iː/`, and the initial place of `/uə/` is
further back than pure `/uː/`.
Long vowels, and syllabic consonants other than `{l}`, are spelt with a acute
accent: `{í á ú ḿ ń ŕ}`. A syllabic `{l}`, because of its height, replaces the
acute with a stroke: `{ł}`. The diphthongs are spelt `{ai au ia ua}`.
## Allophony
:::figure
<svg width="210" height="160" viewBox="0 0 210 160">
<use href="#vowel-frame" />
<circle cx="55" cy="65" r="3" fill="black" />
<text x="63" y="68" class="ipa">e</text>
<circle cx="50" cy="40" r="3" fill="black" />
<text x="58" y="43" class="ipa">eː</text>
<circle cx="160" cy="55" r="3" fill="black" />
<text x="170" y="60" class="ipa">o</text>
<circle cx="160" cy="40" r="3" fill="black" />
<text x="170" y="41" class="ipa">oː</text>
<circle cx="185" cy="135" r="3" fill="black" />
<text x="162" y="139" class="ipa">ɑː</text>
<circle cx="175" cy="115" r="3" fill="black" />
<text x="184" y="119" class="ipa">ɑ</text>
</svg>
<svg width="210" height="160" viewBox="0 0 210 160">
<use href="#vowel-frame" />
<circle cx="65" cy="30" r="3" fill="black" />
<text x="50" y="33" class="ipa">y</text>
<circle cx="90" cy="25" r="3" fill="black" />
<text x="97" y="29" class="ipa">ʉː</text>
<circle cx="75" cy="95" r="3" fill="black" />
<text x="83" y="98" class="ipa">ɛ</text>
<circle cx="160" cy="80" r="3" fill="black" />
<text x="168" y="89" class="ipa">ɔ</text>
</svg>
<svg width="210" height="160" viewBox="0 0 210 160">
<use href="#vowel-frame" />
<line x1="55" y1="55" x2="115" y2="70"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="80" y="58" class="ipa"></text>
<line x1="190" y1="105" x2="130" y2="70"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="170" y="88" class="ipa">ɔə</text>
<line x1="175" y1="120" x2="90" y2="80"
stroke="black"
marker-start="url(#circle)"
marker-end="url(#arrowhead)" />
<text x="104" y="108" class="ipa">ɑe</text>
</svg>
:::
* After a velar consonant, including `/ɫ w/`, the vowels
`/a aː ai i iː iə u uː uə/` are backed and lowered to the forms labelled
`[ɑ ɑː ɑe ɛ eː eə ɔ oː ɔə]`,
respectively, in the figures above.
* After `/j/`, `/i iː iə/` become `[e eː eə]`.
* After `/tʃ dʒ ʃ j/`, `/u uː/` is fronted to `[y ʉː]`.
* Before a syllabic consonant, a small schwa may be inserted if necessary to
make pronunciation easier. This is most common between `/ln̩ nl̩/` and two copies
of a single sound. For example, `{!kalń}` 'cat': `/kaln̩/``[kɐlᵊn]`.
* `/r̩ l̩/` are pronounced as `[ɻː ɫ̩ː]`.
* Syllabic `/n̩/` assimilates to `[ŋ̍]` before a velar consonant; no other
assimilation for syllabic nasals occurs, though. (It does for *non*-syllabic
nasals, though; see below.)
* Unstressed short vowels are somewhat reduced, `/a/` more than the others.
# Consonants
Where unspecified, consonants are spelt the same way as in IPA.
:::figure
  Labial Dental Postalveolar Velar
------------ ------------- ------------------ ------------------- -------------
Plosive `/p b/` `/t d/` `/tʃ dʒ/` `{č ǧ}` `/k ɡ/`
Fricative `/f/` `/θ s/` `{ƶ, s}` `/ʃ/` `{š}` `/x/` `{h}`
Nasal `/m/` `/n/`
Flap `/ɾ/` `{r}`
Approximant `/w/` `/l/` `/j/`
:::
The phonemes `/p t tʃ k s ʃ m n ɾ l x/` can be geminated. For the purposes of
syllable structure, geminated consonants are counted the same as two separate
ones. Geminate versions of most consonants are spelt by doubling the letter:
`{pp}`, `{tt}`, `{kk}`, etc.
In places I have forgotten to update, `/θ/` might be written `{þ}` or `{ð}`.
## Allophony
- Before `/i iː iə/`, `/ɾ/` becomes `[ʑ̞]`.
- A nasal followed by a plosive assimilates to the same place of articulation
(but for compound words this is not reflected in the spelling), for example
`{!rabanpa}` `[ravampa]` 'what book?'.
- The sequences `/tʃs/` is pronounced as `[tʃː]`, and `/ʃs sʃ ʃj sj/` are all
`[ʃː]`.
- Nasals before `/s x/` decay to a nasalisation of the previous vowel, or are
dropped entirely if that vowel is a syllabic consonant.
- Voiced plosives `/b d dʒ ɡ/` become fricatives `[v ð ʒ ɣ]` between proper
vowels. The allophone `[v]` is pronounced `[β]` by some speakers.
- The velar fricative `/x/` becomes `[h]` before `/r̩/`, and is palatalised to
`[ç]` before `/i iː iə/`.
- Long `/tʃː/` is pronounced as `[ṯːʃ]` (distinct from the `[tʃː]` coming from
`/tʃs tʃʃ/`). Long `/ɾ l/` become `[ʐː ɫː]`.
- Non-final `/l/` is velarized `[ɫ]` after a back vowel (including the
allophones `[ɑ ɑː]`). After other vowels, it is palatalised.
- Non-syllabic `/l/` is pronounced as `[ɬʲ]` at the end of words, even after a
back vowel. After `/t/` it is `[ɬ]`. The phoneme `/ɾ/` is also devoiced `[ɾ̥]`
word-finally. The sequence `/lθ/` is realised as `[ɬʲː]`.
- In many dialects, the long obstruents `/pː tːː kː sː ʃː/` are pronounced as
ejectives `[pʼ tʼʼ kʼ sʼ ʃʼ]`, and the long sonorants `/mː nː lː/` as
`[bᵐ dⁿ ɮˠː]`.
# Syllable structure
The allowed shape of a syllable is usually *CV*(*C*), where *V* is any vowel
and *C* any consonant. Clusters take one of the following forms:
- *KC*, where *K* can be any of `/m n l r θ s ʃ t/` _(coda consonants)_;
- *FN*, where *F* can be `/f θ s ʃ x/` _(fricatives)_ and
*N* can be `/m n/` _(nasals)_;
- *P*`/s/`, where *P* can be `/p t tʃ k/` _(voiceless plosives)_;
- `/pj bj lj rj/`;
- geminate consonants.
The exceptions to the normal pattern are that a vowel or syllabic consonant can
also occur at the start of a word, or after another syllabic consonant (but not
a proper vowel). At the end of a word, the consonants from *K* are allowed.
A syllabic consonant cannot be next to the non-syllabic form of the same
consonant---for example, the sequences `/ll̩/` and `/l̩l/` are not possible.
# Stress
Words are stressed on the first long vowel, if there is one. If there are no
long vowels, _or_ the only one is in the final syllable of a multi-syllabic
word, then the stress is on the first syllable. For the purposes of deciding
stress placement, neither diphthongs nor syllabic consonants are counted as
long.

View file

@ -1,85 +0,0 @@
---
title: Lántas pronouns, demonstratives, etc
backname: Lántas
backlink: .
conlang: lántas
...
Pronouns are inflected for the same cases as other nouns, though their forms
are somewhat irregular.
# Personal pronouns
The first person plural `{!til}` is only used inclusively of the listener. For an
exclusive meaning, a form like `{!rukas ká}` ('they and I') is used.
The `!LOC!` column is the word stems which the [locational
cases](#locational_cases) are attached to. Their suffixes are regular.
:::figure
`!1SG!` `!1PL!` `!2SG!` `!2PL!` `!3SG!` `!3PL!`
-------- ------------ ------------- ------------ ------------- ------------ ------------
`!NOM!` `{!ká}` `{!til}` `{!sur}` `{!sual}` `{!rú}` `{!rúl}`
`!GEN!` `{!kat}` `{!tial}` `{!sut}` `{!suatł}` `{!rut}` `{!rutł}`
`!COM!` `{!kakas}` `{!tiksł}` `{!sukas}` `{!suksł}` `{!rukas}` `{!ruksł}`
`!CAR!` `{!kassa}` `{!tissal}` `{!sussa}` `{!sussal}` `{!russa}` `{!russal}`
`!INS!` `{!kala}` `{!tilla}` `{!sulla}` `{!sualla}` `{!rulla}` `{!rualla}`
`!ESS!` `{!kagu}` `{!tigul}` `{!sugu}` `{!sugul}` `{!rugu}` `{!rugul}`
`!TRA!` `{!kasti}` `{!tistil}` `{!susti}` `{!sustul}` `{!rusti}` `{!rustil}`
`!EXE!` `{!kaču}` `{!tičul}` `{!sučču}` `{!suččul}` `{!ruču}` `{!ručul}`
`!LOC!` `{!ká}` `{!tíl}` `{!sú}` `{!sual}` `{!rú}` `{!rual}`
:::
# Demonstratives
There is a three way distance distinction for demonstratives: a new referent near the speaker/listener, a new referent distant from both, and old information. These will be glossed as 'this', 'yon', and 'that', respectively.
The near demonstrative is `{!lua}`, whose declension is given below. For distant referents it is `{!ƶua}` and for old information `{!mua}`; they decline in the same way as `{!lua}`.
The adjectival (ADJ) forms of these words are used as determiners before other nouns. Note that unlike most nouns, it is distinct from the genitive: compare `{!muƶ kalńł}` 'those cats' and `{!mut kalńł}` 'that person's cats'. It also lacks stress, unlike the other forms.
:::figure
`!SG!` `!PL!`
-------- ------------ --------------
`!NOM!` `{!lua}` `{!lul}`
`!GEN!` `{!lut}` `{!lutł}`
`!COM!` `{!lukas}` `{!luksł}`
`!CAR!` `{!lussa}` `{!lussal}`
`!INS!` `{!lulla}` `{!lullal}`
`!ESS!` `{!lugu}` `{!lugul}`
`!TRA!` `{!lusti}` `{!lustil}`
`!EXE!` `{!luču}` `{!lučul}`
`!LOC!` `{!lu}` `{!lul}`
`!ADJ!` `{!luƶ}` `{!luƶ}`
:::
# Indefinites
The words 'someone', 'something', 'anyone', 'anything' are served by (a stressed form of) the numeral `{nai}` 'one'. 'Everyone' or 'everything' is `{nakasnai}`, and inflects the same way as `{nai}` itself. The words `{nala}` and `{nakasnala}` mean 'any' and 'every', respectively.
# Interrogatives
Interrogatives (question words) are formed with the enclitic `{-pa}`, attached to any noun phrase. As well as `{naipa}` 'what?, who?', it can be added to any other word to mean 'which?'.
:::glosses
- Naipa musat ai?
- Nai=pa mu-sa-t ai
- one=what that-AD-ESS be
- Who's there?
---
- Hámamlinaspa sidasiha?
- háma-m-li-nas=pa sida-si-ha
- country-DEF-IN-ABL=what come-RPST-2SG
- Which country do you come from?
:::
Being a clitic, `{-pa}` is added to the end of the noun, after all other (non-clitic) endings such as case inflections, as shown in the above examples.

View file

@ -1,324 +0,0 @@
---
title: Lántas verbs
backname: Lántas
backlink: ../laantas
conlang: lántas
...
__TODO: intro__
The infinitive is unmarked, but always ends in a vowel. A borrowing from another
language adds an `{a}` to the end if necessary. It is the citation form for
verbs as well as being used in several constructions.^[citation needed]^
# Tense
There is a distinction between two different past tenses, _recent_ and _distant_
past. The recent past is most commonly used, while the distant past is used to
denote an action happening further in the past than to another action already
expressed using the recent.
Stories are narrated in the present tense.
:::figure
------------------------ ----------
Distant past `!(DPST)!` `{saji}`
Recent past `!(RPST)!` `{si}`
Present `!(PRS)!` `{}`
Future `!(FUT)!` `{má}`
------------------------ ----------
:::
:::glosses
- Ƶasim kalńḿt jaƶí.
- ƶasi-m kalń-ḿ-t jaƶí
- dog-DEF cat-DEF-GEN love;PRS
- The dog loves the cat.
---
- Ƶasim kalńḿt jaƶí{si}.
- ƶasim kalńḿt jaƶí-si
- the:dog the:cat love-RPST
- The dog loved the cat.
---
- Ƶasim kalńḿt jaƶí{saji}.
- ƶasim kalńḿt jaƶí-saji
- the:dog the:cat love-DPST
- The dog had loved the cat (until …).
---
- Ƶasim kalńḿt jaƶí{má}.
- ƶasim kalńḿt jaƶí-má
- the:dog the:cat love-FUT
- The dog will love the cat.
:::
# Person
These suffixes are used instead of pronouns (but not nouns) in the subject
and object positions. The subject suffix comes before the object. For the
plural, the vowel is lengthened and `{–š}` is added (e.g. `{na}` to `{náš}`).
Just like with the [pronouns](#pronouns), the first person plurals `{náš}`
and `{dúš}` can only be used with an inclusive meaning. The exclusive sense
is expressed by using conjunctions of pronouns instead of suffixes.
:::figure
  `!1!` `!2!` `!3!`
------------------ -------- -------- --------
Subject `!(SBJ)!` `{na}` `{ha}` `{fa}`
Object `!(OBJ)!` `{du}` `{gu}` `{bu}`
------------------ -------- -------- --------
:::
:::glosses
- Bairu{nagu}.
- bairu-na-gu
- see-1SG;SBJ-2SG;OBJ
- I see you.
---
- Ƶasim bairu{náš}.
- ƶasi-m bairu-náš
- dog-DEF see-1PL;SBJ
- We see the dog.
---
- Ƶasim bairu{dúš}.
- ƶasi-m bairu-dúš
- dog-DEF see-1PL;OBJ
- The dog sees us.
:::
# Voice
__TODO replace this, probably__
There is a four way voice distinction. The voice markers are placed between the
tense and person markers.
- The _active_ voice is the default form of the verb and does not modify the
roles of the arguments.
- The _passive_ voice promotes the direct object of the verb to subject
position, leaving the former subject role unspecified. There is no way to
specify the agent (i.e., no equivalent to _by_); to merely emphasise the
object but keep the subject specified, the object can be moved to the
beginning of the clause.
- The _reflexive_ voice indicates that the subject(s) act on themselves.
- The _reciprocal_ voice indicates that the subjects act on each other.
:::figure
--------------------- ----------
Active `!(ACT)!` `{}`
Passive `!(PSV)!` `{lú}`
Reflexive `!(RFL)!` `{sidu}`
Reciprocal `!(RCP)!` `{lƶi}`
--------------------- ----------
:::
:::glosses
- Ƶasimat tassána.
- ƶasimat tassá-na
- the:dog wash-1SG
- I wash the dog.
---
- Ƶasim tassá{lú}.
- ƶasim tassá-lú
- the:dog wash-PSV
- The dog is washed.
---
- Tassá{sidu}na.
- tassá-sidu-na
- wash-RFL-1SG
- I wash myself.
---
- Tassá{lƶi}náš.
- tassá-lƶi-náš
- wash-RCP-1PL
- We wash each other.
:::
# Negative
__TODO__
- `{tul}`
- "is not" is just `{tul}` instead of `{aitul}`
# Nominal forms
A verb stem can also be used as a noun: for example, `{šikkú}` both means 'to
go' and 'an act of going'. The definite plural is also used to mean the act in
a general sense. The definite form is also used for the verb of content
clauses, for example indirect quotations, and with auxiliary verbs such as
modals.
When the final part of the verb is a subject suffix ending in `{a}`, that `{a}`
is dropped and the `{–ḿ}` form of the definite is used instead, e.g.
`{!rusmánḿ}` "that I sleep" rather than `{!rusmánam}`. The definite form of
`{!ai}` "to be" is `{!am}` rather than `{!aim}`.
:::glosses
- hipsa{mł}
- hipsa-m-ł
- solve_problem-DEF-PL
- logic (the general act of problem solving)
---
- Fíra fuha{m} suasifa.
- fíra fuha-m sua-si-fa
- air blow-DEF say-RPST-3SG
- He said it was windy.
---
- Šikkún{ḿt} ušminatul.
- šikkú-n(a)-ḿ-t ušmi-na-tul
- go-1SG-DEF-GEN want-1SG-NEG
- I don't want to go.
:::
# Modifier forms
__TODO: maybe replace `{ja}` with `{[ka]t}`? (or `{gu}`???)__
A verb form can be suffixed with `{!ja}` to turn it into a noun modifier. This
is used to make relative clauses.
:::glosses
- ƶasim bairu{ja} ausut kášńḿ
- ƶasi-m bairu-ja ausu-t kášń-ḿ
- dog-DEF see-REL size-GEN lizard-DEF
- the big lizard that the dog sees
---
- ƶasimat bairu{ja} ausut kášńḿ
- ƶasim-at bairu-ja ausut kášńḿ
- the:dog-GEN see-REL big the:lizard
- the lizard that sees the dog
:::
__TODO: probably remove and modify some word instead?__
A relative clause can be made into a noun phrase of its own with `{!–ƶ}`,
meaning 'the one who \_\_\_\_'.
:::glosses
- kášńł bairuja{ƶ}
- kášń-ł bairu-ja-ƶ
- lizard-PL see-REL-NOM
- the one who sees lizards
:::
# Pro-verbs
Pro-verbs are placeholders standing in for verb phrases; they are the verb
equivalent of pronouns.
The word for 'to do this' is `{mai}`, related to the [pronoun] `{mua}`. There
are also `{lai}` and `{ƶai}`, which are used only when contrasting between two
options.
[pronoun]: prons.html#demonstratives
:::glosses
- Naranášḿ iš lut saunusam gibanášḿ fulla.
- nara-náš-ḿ iš lut_saunu-sa-m giba-náš-ḿ fulla
- walk-1PL-DEF or bus-AD-DEF ride-1PL-DEF can
- We can walk or take the bus.
---
- {Laim} iš {ƶaim} ušmiha?
- lai-m iš ƶai-m ušmi-ha
- do_this-DEF or do_that-DEF want-2SG
- Which do you want to do?
---
- {Ƶaim} ušmina.
- ƶai-m ušmi-na
- do_that want-1SG
- I want to take the bus.
:::
There is also a negative pro-verb `{tulla}`, 'to not do this/that'.
# Polar questions
__TODO idk__
Polar (yes/no) questions add a `{ǧi}` clitic on the word or phrase being
questioned. The word being questioned receives the primary stress. If there is
no particular focus for the question, it is attached to the final word of the
sentence.
:::glosses
- Inlantimsas{ǧi} šikkúmáha?
- inlanti-m-sa-s-ǧi šikkú-má-ha
- england-DEF-AD-LAT-QU go-FUT-2SG
- Are you going to england (vs going somewhere else)?
---
- Sur{ǧi} inlantimsas šikkúmá?
- sur-ǧi inlantimsas šikkúmá
- 2SG-QU to:england will:go
- Is it you (vs someone else) who is going to england?
---
- Inlantimsas šikkúmáha{ǧi}?
- inlantimsas šikkúmáha-ǧi
- to:england you:will:go-QU
- Are you going to england (vs coming from it)?
:::
To answer a yes/no question, the verbs `{!mai}` or `{!tulla}`, respectively, are
conjugated for person (but not tense, etc). Their literal meaning are as
[pro-verbs], 'to (not) do this'.
[pro-verbs]: #pro-verbs
- `{!Inlantimsasǧi šikkúmáha?}`\
Are you going to england?
- `{!Maina.}`/`{!Tullana.}`\
Yes, I am/No, I'm not.
# If/then
__TODO__
- if-clause nominalised, in IN-ABL
- then-clause main clause of sentence, with aux verb `{tisu}`

View file

@ -1,145 +0,0 @@
---
title: Lántas writing
backname: Lántas
backlink: .
conlang: lántas
...
Lántas is written with a simple alphasyllabary, where most glyphs consist of
a consonant or cluster with a descender marking the vowel following it. There
are full-sized letters for vowels, used when they start a word or follow
a syllabic consonant. As a quick example, here's the first sentence of
[*the North Wind and the Sun*](examples.html#nwas):
:::example
`{!Ruakul naipa bahútlit aimlis Laksimat Fuhamkas Guwanḿ asumsas ba sua.
| file = northwind0 ; size = 60 ; stroke = 2 }`
:::
# Vowels
At the start of a word, or after a syllabic consonant, these independent
vowel letters are used.
:::letter-list
`{!a}` `{!á}` `{!i}` `{!í}` `{!u}` `{!ú}`
`{!ai}` `{!au}` `{!ia}` `{!ua}`
`{!ł}` `{!ḿ}` `{!ń}` `{!ŕ}`
:::
In other cases, vowels are attached to the letter for the previous consonant.
:::letter-list
`{!ta}` `{!tá}` `{!ti}` `{!tí}` `{!tu}` `{!tú}`
`{!tai}` `{!tau}` `{!tia}` `{!tua}`
`{!tł}` `{!tḿ}` `{!tń}` `{!tŕ}`
:::
# Consonants
The basic consonant shapes are:
:::letter-list
`{!ta}` `{!ka}` `{!ga}` `{!da}` `{!ƶa}` `{!pa}` `{!ba}`
`{!sa}` `{!ša}` `{!la}` `{!ma}` `{!na}` `{!ča}` `{!ǧa}`
`{!wa}` `{!ha}` `{!fa}` `{!ja}` `{!ra}`
:::
Clusters are written with a single glyph called a 'conjunct'. These aren't
always just the two letters glued together but they're not usually too
surprising.
<nav>
[`{t}`](#conj-t) ·
[`{ƶ}`](#conj-ƶ) ·
[`{s}`](#conj-s) ·
[`{l}`](#conj-l) ·
[`{m}`](#conj-m) ·
[`{n}`](#conj-n) ·
[`{r}`](#conj-r) ·
[`{}`](#conj-o)
</nav>
::: {.letter-list #conj-t}
`{!tta}` `{!tka}` `{!tga}` `{!tda}` `{!tƶa}` `{!tpa}` `{!tba}` `{!tsa}`
`{!tla}` `{!tma}` `{!tna}` `{!tra}` `{!tča}` `{!tǧa}` `{!twa}` `{!tha}`
`{!tfa}` `{!tja}`
:::
::: {.letter-list #conj-ƶ}
`{!ƶta}` `{!ƶka}` `{!ƶga}` `{!ƶda}` `{!ƶƶa}` `{!ƶpa}` `{!ƶba}` `{!ƶsa}`
`{!ƶla}` `{!ƶma}` `{!ƶna}` `{!ƶra}` `{!ƶča}` `{!ƶǧa}` `{!ƶwa}` `{!ƶha}`
`{!ƶfa}` `{!ƶja}`
:::
::: {.letter-list #conj-s}
`{!sta}` `{!ska}` `{!sga}` `{!sda}` `{!sƶa}` `{!spa}` `{!sba}` `{!ssa}`
`{!sla}` `{!sma}` `{!sna}` `{!sra}` `{!sča}` `{!sǧa}` `{!swa}` `{!sha}`
`{!sfa}` `{!sja}` `{!šša}`
:::
Conjuncts with `{!ša}` are the same as with `{!sa}`, but with the line above. In
the case of `{!šša}` the lines join up.
::: {.letter-list #conj-l}
`{!lta}` `{!lka}` `{!lga}` `{!lda}` `{!lƶa}` `{!lpa}` `{!lba}` `{!lsa}`
`{!lla}` `{!lma}` `{!lna}` `{!lra}` `{!lča}` `{!lǧa}` `{!lwa}` `{!lha}`
`{!lfa}` `{!lja}`
:::
::: {.letter-list #conj-m}
`{!mta}` `{!mka}` `{!mga}` `{!mda}` `{!mƶa}` `{!mpa}` `{!mba}` `{!msa}`
`{!mla}` `{!mma}` `{!mna}` `{!mra}` `{!mča}` `{!mǧa}` `{!mwa}` `{!mha}`
`{!mfa}` `{!mja}`
:::
::: {.letter-list #conj-n}
`{!nta}` `{!nka}` `{!nga}` `{!nda}` `{!nƶa}` `{!npa}` `{!nba}` `{!nsa}`
`{!nla}` `{!nma}` `{!nna}` `{!nra}` `{!nča}` `{!nǧa}` `{!nwa}` `{!nha}`
`{!nfa}` `{!nja}`
:::
::: {.letter-list #conj-r}
`{!rta}` `{!rka}` `{!rga}` `{!rda}` `{!rƶa}` `{!rpa}` `{!rba}` `{!rsa}`
`{!rla}` `{!rma}` `{!rna}` `{!rra}` `{!rča}` `{!rǧa}` `{!rwa}` `{!rha}`
`{!rfa}` `{!rja}`
:::
::: {.letter-list #conj-o}
`{!kka}` `{!ksa}` `{!ppa}` `{!psa}` `{!pja}`
`{!bja}` `{!čsa}` `{!čča}` `{!hha}`
`{!hna}` `{!hma}` `{!fna}` `{!fma}`
:::
If a word ends in a consnant, a horizontal line is drawn under it to specify
that there is no vowel.
:::letter-list
`{!t}` `{!–ƶ}` `{!s}` `{!–š}` `{!l}` `{!m}` `{!n}` `{!r}`
:::
# Punctuation
Punctuation in Lántas is very simple. Phrases within a sentence can be separated
by a single circle, and sentences are ended by a double circle:
:::letter-list
`{!ta, ta | file=comma}`
`{!ta. ta | file=fullstop}`
:::
Both have an equal amount of space either side, more for the second one, and if
they are next to a line break they stay with the previous word.
# Numbers
Numbers are written in base 10. Most of the digits are letters, with the
ascenders removed if they had one. Numbers in running text are indicated by
double vertical bars each side, and are grouped in fours.
:::letter-list
`{!0}` `{!1}` `{!2}` `{!3}` `{!4}` `{!5}` `{!6}` `{!7}` `{!8}` `{!9}`
`{!#18 5263 9772#}`
:::

View file

@ -1,289 +0,0 @@
---
title: unnamed volapük style language
...
What if Volapük didn't see the world
through an extremely 19^th^ century lens?
(And also what if it wasn't trying to be an IAL
so I can put some interesting stuff in there if I want to)
# Phonology
## Vowels
:::figure
  Front Back
------------- ----------------- -----------------
High `{i ü}` `/i y/` `{ï u}` `/ɯ u/`
High central `{e ö}` `/e ø/` `{o}` `/o/`
Low `{ä}` `/æ/` `{a}` `/ɑ/`
:::
- You can write `{ü ö ä ï}` as `{ᵫ œ æ ꜵ}` if you want.
- Lowercase `{ᵫ}` is `U+1D6B`.
Capital `{}` is not in the unicode standard (yet?), but some specialist
medievalist fonts, such as [the one I'm using here][Junius], have it in the
private use area at `U+E8C8` following the
[[MUFI]]{title="Medieval Unicode Font Initiative"}.
- `{Œ œ}` are `U+0152` and `U+0153`.
- `{Æ æ}` are `U+00C6` and `U+00E6`.
- `{Ꜵ ꜵ}` are `U+A734` and `U+A735`.
- In unstressed syllables,
high vowels become lax,
high central vowels become lax low central,
and `/ɑ/` becomes `[ə]`.
- Word-initially before another vowel,
`/i y u ɯ/` become `[j ɥ w ɰ]`.
- If, after applying the above rule,
a vowel follows another,
an approximant or fricative is inserted
based on the second vowel:
<div class=twocol>
- `[ʝ]` before `/i y/`;
- `[ɣ]` before `/u ɯ/`;
- `[j]` before `/e/`;
- `[w]` before `/ø o/`;
- `[ʢ]` (approximant) before `/æ ɑ/`.
</div>
- **TODO** expand this
[Junius]: https://github.com/psb1558/Junicode-New
[MUFI]: https://mufi.info
## Consonants
:::figure
  Labial Alveolar Velar, etc
---------- --------- ---------- ------------
Plosive `/p b/` `/t d/` `/k ɡ/`
Fricative `/f v/` `/s/` `/h/`
Nasal `/m/` `/n/`
Lateral `/l/`
:::
Consonants are all written with the same letter as in IPA.
- An `/s/` becomes `/z/` next to a voiced consonant
other than `/l v/`.
- `/v/` becomes `[f]` after one of `/s k/`.
- `/n/` becomes `[ŋ]` before `/k ɡ/`.
- `/h/` becomes `[ɣ]` between two vowels.
- `/l/` is velarised when it is
after a back vowel or `/æ/` and
either before another consonant or at the end of a word.
It is palatalised at the end of a word (only) when after a front vowel.
- The sequences `/ks ts/` are written `{x z}`
when they are not interrupted by a morpheme boundary.
- A `[ʔ]` is inserted between a word ending with a vowel
and a word beginning with one
(unless the latter becomes a glide).
- `{te ob}` `[te ʔob]`; `{ni ob}` `[ni ʔob]`; `{la iäm}` `[lɑ jæm]`\
**TODO** examples with actual words
- **TODO** expand this
## Phonotactics
This description is written in [EBNF].
Basically, parts in
[\[]{.ebnf-brack}square brackets[\]]{.ebnf-brack}
are optional, and parts in
[{]{.ebnf-brack}braces[}]{.ebnf-brack}
can be repeated (or skipped). A vertical bar
[|]{.ebnf-punc} separates alternatives and a comma
[,]{.ebnf-punc} just indicates a sequence of things.
[EBNF]: https://en.wikipedia.org/wiki/Extended_Backus-Naur_form
:::figure
```ebnf
word = [init cons], ?vowel?, {[inner cons], ?vowel?}, [final cons];
init cons
= ?consonant?
| 's', ?plosive?
| ?plosive?, 'l'
| 's', ('f' | 'v' | 'l')
| ('f' | 'v'), 'l'
| ('p' | 'b' | 'k' | 'ɡ'), 'n'
| ('t' | 'd' | 'k' | 'ɡ'), 'm'
| ('kv' | 'gv')
;
inner cons
= ?consonant?
| 's', ?consonant? - ('s' | 'h')
| ['m'], ('p', ['s'], 't' | 'b', ['s'], 'd')
| ['n'], ('k', ['s'], 't' | 'ɡ', ['s'], 'd')
| sonorant-plosive, ['s']
| ['m' | 's'], ('p' | 'b'), 'n'
| ['n' | 's'], ('k' | 'ɡ'), 'n'
| ['n' | 's'], ('t' | 'd' | 'k' | 'ɡ'), 'm'
| ['n' | 's'], ('kv' | 'gv')
;
final cons
= ?consonant? - ('h' | 's'), ['s']
| sonorant-plosive, ['s']
| 's'
;
sonorant-plosive
= 'm', ('p' | 'b')
| 'n', ('t' | 'd' | 'k' | 'ɡ')
| ['l'], ?plosive?
;
```
:::
In most cases a syllable break is between the first and second consonant of a
cluster, but in cases like `/nk.s/` it is between the second and third. The
exact rules are:
1. If there is only one consonant, then the break is before it.
2. If there are more than one, then there is at least one consonant either side
of the break.
3. The cluster after the break is accepted by [init cons]{.ebnf-nt}.
4. As many consonants are placed after the break as possible while still
following the other rules.
Example words:
:::twocol
- `{aeia}` `/ɑ.e.iˈɑ/` `[ə.je.ʝiˈʢɑ]`
- `{gnolbs}` `/ɡnolbs/` `[ɡnoɫbz]`
- `{bünz}` `/bynts/` `[bynts]`
- `{svihel}` `/sviˈhel/` `[sfɪˈɣelʲ]`
- `{hänxtis}` `/hænkˈstis/` `[hæŋkˈstis]`
:::
- **TODO** real words for examples
# Verbs
Verb stems begin with one or more consonants, and end with exactly one.
- zero prs copula
- "\<pronoun> is \<noun>" attaches the pronoun (not the verb subject marker)
to the noun
## Person & number
If the subject and/or [primary] object are pronouns, they are instead marked on
the verb as suffixes.
(**TODO** link to secundativity section)
For first and second person, the subject marker is the pronoun itself, and the
object marker is the pronoun with the initial `{o}` replaced with `{i}`. These
vowels change to `{u ä–}` respectively for the dual or plural. For third person
it is just the vowel with no consonant. In this case, independent third-person
pronouns can be used instead of verb markers if it makes the sentence less
confusing.
:::figure
  `!SG!` `!DU/PL!`
-------- ---------- -------------
`!SBJ!` `{o}` `{u}`
`!OBJ!` `{i}` `{ä–}`
:::
If the subject or object are a noun phrase other than a single pronoun, they
are not reflected on the verb at all.
:::twocol
- `{böl gelb pülku}` the lizard sees the dog
- `{böl{ob} pülku}` I see the dog
- `{böl{ib} gelb}` the lizard sees me
- `{böl{obit}}` I see you
:::
## Tense & aspect
Verbs have a distinction between past & nonpast, and [imperfective]
& [perfective]. The tense/aspect marker comes directly after the person markers.
blah blah blah
[imperfective]: https://en.wikipedia.org/wiki/Imperfective_aspect
[perfective]: https://en.wikipedia.org/wiki/Perfective_aspect
:::figure
  `!IPFV!` `!PFV!`
--------- ---------- -----------
`!NPST!` `{}` `{n}`
`!PST!` `{e}` `{nö}`
:::
For the perfective, an `{n}` is inserted before the last consonant of the stem.
It interacts with the consonant already there in a few ways:
- It is `{m}` before a labial consonant.
- After this new `{n}`/`{m}`, the letters `{f}`, `{v}`, `{l}` become
`{p}`, `{b}`, `{n}`.
- A double `{nn}` or `{mm}` produced this way is pronounced the same as a
single one.
:::twocol
- `{pnumob}` I am sleeping/will be sleeping/etc
- `{pnumo{m}b}` I slept/will sleep
- `{pnumob{e}}` I was sleeping
- `{pnumo{m}b{ö}}` I slept
:::
# Nouns
Noun roots end in either a vowel or a consonant other than `{s}`
(or `{x}`/`{z}`). They have no restriction on what they begin with.
- dual number. why not
- dual is `{di}` after vowel or just `{i}` after consonant
- plural is `{s}` like in v, so nouns don't end in that
- 45 cases, but not *those* ones. maybe nom, acc+loc+all, ins+thm, gen+abl
- acc/loc/all sg is `{-u}`
- list acc in the table last like people do with latin for some reason
- ~~dechticaetiative~~ secundative
- vocative prefix, probably sth like `{iä}`.
- i guess that's a sixth case but i was thinking suffixes for the others
- fuck regularity this isn't an IAL any more
- indefinite article but no definite. maybe from 'this'. maybe a prefix
# Pronouns
Personal pronouns have a distinction between inclusive/exclusive `!(I/E)!` first
person, e.g. `{ov}` means "you and me", but `{om}` means "me and someone else".
The third person singular is listed as `{ok}`, but that is only a default.
People can choose to be referred to with `{o}` plus any consonant or cluster
that isn't already another pronoun. `{Ok}` is used for strangers or objects, or
for people who just want to be called `{ok}`.
:::figure
  `!1;E!` `!1;I!` `!2!` `!3!`
--------- --------- --------- --------- --------
`!SG!` `{ob}` --- `{ot}` `{ok}`
`!DU!` `{om}` `{ov}` `{ond}` `{ong}`
`!PL!` `{oms}` `{obs}` `{oz}` `{ox}`
:::
**TODO** yes i know this isnt the only type of pronoun obviously
# Word order etc
- VSOX by default but NPs can be shuffled around
- head initial NPs, prepositions [mostly?]

View file

@ -1,36 +0,0 @@
böl:
t: v
d: see
gelb:
t: n
d: lizard
pülk:
t: n
d: dog
käld:
t: n
d: dragon
mel:
t: v
d: love
gek:
t: n
d: gecko
pnum:
t: v
d: sleep
sä-:
t: {pfx: [v, v]}
d: begin to
# vea:
# ituk:

View file

@ -1,319 +0,0 @@
---
title: Zalajmkwély
conlang: zalajmkwely
...
# Phonology
## Vowels
  Front Back
--------- --------------------- ---------------------
High `/i ɪ/` `{y i}` `/u ʊ/` `{ů u}`
Mid-high `/e/` `{é}` `/o õ/` `{ó ų}`
Mid-low `/ɛ ɛ̃/` `{e į}` `/ɔ/` `{o}`
Low `/a æ̃/` `{ä ę}` `/ɑ ɒ̃/` `{a ą}`
Words have vowel harmony in non-nasal vowels between "tense" and "lax". If a
root contains only nasal vowels, then the harmony defaults to lax. In affixes,
a vowel that alternates depending on harmony (which is all of them, other than
nasals) is indicated with a capital letter. The realisation of these vowels is
based on the root nearest to the affix.
  `{I}` `{U}` `{E}` `{O}` `{A}`
------ ------- ------- ------- ------- -------
Tense `{y}` `{ů}` `{é}` `{ó}` `{ä}`
Lax `{i}` `{u}` `{e}` `{o}` `{a}`
Before a consonant, nasal vowels can be written as a vowel followed by
`{m}`/`{n}`/`{ŋ}`. In this case, `{on}`, `{ón}`, etc, are pronounced
`/ɒ̃/` like `{ą}`.
### Allophony
- Vowels are slightly longer when stressed.
- `/ɛ e/` are lowered to `/æ/` before a velar (including `[ɫ]`).
- A `[ʔ]` is inserted into word boundaries with a vowel on both sides.
## Consonants
  Labial Dental Dorsal
---------- ----------------- ----------------- -----------------
Plosive `/p b/` `{p b}` `/t d/` `{t d}` `/k/` `{k}`
Fricative `/f/` `{f}` `/s z/` `{s z}` `/x ʁ/` `{h ř}`
Nasal `/m/` `{m}` `/n/` `{n}` `/ŋ/` `{g}`
Other `/w/` `{w}` `/l ɾ/` `{l r}` `/j/` `{j}`
The word "glide" refers to `/w j/`, and "liquid" to `/l ɾ ʁ/`.
The sequence `/ŋŋ/` is written `{ng}` (and pronounced `[ŋɡ]`).
### Allophony
- `/l/` is `[ɫ]` anywhere except before one of `/j i/`.
- `/p t k/` are affricated to `[pf ts kx]` directly before a stressed vowel,
and to `[pf tʃ kx]` at the end of a word.
- `/x/` is pronounced `[χ]` at the end of a word or after a lax vowel.
- `/b d/` become `[v ð]` word finally if immediately preceded by a vowel.
- `/ŋ/` becomes `[ɡ]` after another `/ŋ/`, before `/z/` or `/d/`, or when not next to a
vowel.
- `/s z/` become `[ʃ ʒ]` at the end of a word or before a plosive (including the
`[ɡ]` coming from `/ŋ/`).
- `/d/` becomes `[dʒ]` at the end of a word if _not_ directly preceded by a
vowel.
- `/t d s z/` become `[tʃ dʒ ʃ ʒ]` before one of `/j i e/`. The `/j/` is then
dropped if there was one.
## Syllable structure
In [EBNF]:
[EBNF]: //en.wikipedia.org/wiki/Extended_Backus-Naur_form
```ebnf
word = [init cons], nucleus, {inner cons, nucleus}, [final cons];
nucleus = (?vowel?, ?glide?) - ('ɪj' | 'ij' | 'ɛ̃j' | 'ʊw' | 'uw' | 'õw');
init cons = ?consonant?, [?glide?]
| ('p' | 't' | 'k'), 's', [?glide?]
| ('b' | 'd' | 'ŋ'), 'z', [?glide?]
| (?consonant? - ?liquid?), ?liquid?
| ('mb' | 'nd' | 'ŋŋ'), [?glide?];
inner cons = '·', ?consonant?
| '·', (?consonant? - ?glide?), ?glide?
| (('p' | 'k'), '·', ('t' | 's') | ('b' | 'ŋ'), '·', ('d' | 'z'))
| ('s', '·', ('p' | 't' | 'k') | 'z', '·', ('b' | 'd' | 'm' | 'n' | 'ŋ'))
| ('f' | 'h'), '·', ?voiceless plosive?
| ?liquid?, '·', ?nasal?
| ('m·m' | 'n·n' | 'ŋ · ŋ');
final cons = ?consonant? - (?glide? | ?nasal?), ['s']
| ?liquid?, (?consonant? - (?glide? | ?liquid? | 'n' | 'ŋ')), ['s'];
```
The `{·}` in [inner cons]{.ebnf-nt} indicates where the syllable boundary is.
## Stress
Stress falls on the last syllable of the stem. (In a compound word, the last
syllable of the last stem.) Inflectional endings do not cause it to move.
- `{kwély}` 'language' `/kweˈliː/`
- `{kwélyjäm}` 'language.`!GEN!`' `/kweˈliː.jam/`
# Verbs
Verbs do not inflect themselves, but the conjugation is reflected on a highly
fused particle following the main verb. This particle inflects for person,
gender (in the third person), number, tense, and a distinction between
perfective/imperfective. The citation form of this particle is `{as}`, the
`!1SG!`;`!PRS!`;`!IMP!` form. The `!3X!` form is used with a group of
people/objects of multiple genders, as well as for unknown or indefinite
referents (whether singular or plural), and impersonal sentences such as
instructions on signs.
## Present
:::twocol
- `{řazgų kéd as}` 'I am eating bread'
- `{plas énlä}` 'He sneezes'
:::
  `!IMPF SG!` `!PL!` `!PF SG!` `!PL!`
------- ------------- ---------- ----------- ----------
`!1!` `{as}` `{az}` `{és}` `{ez}`
`!2!` `{ad}` `{am}` `{ed}` `{ém}`
`!3A!` `{äly}` `{alis}` `{énly}` `{elis}`
`!3B!` `{älä}` `{älůs}` `{énlä}` `{élůs}`
`!3C!` `{äló}` `{alos}` `{énló}` `{elos}`
`!3X!``{älós}``{élós}`
## Past
:::twocol
- `{řazgų kéd als}` 'I was eating bread'
- `{řazgų kéd éls}` 'I ate bread'
:::
  `!IMPF SG!` `!PL!` `!PF SG!` `!PL!`
------- ------------- ----------- ----------- -----------
`!1!` `{als}` `{ajz}` `{éls}` `{eliz}`
`!2!` `{ajd}` `{alm}` `{elid}` `{élym}`
`!3B!` `{äjlä}` `{äjlůs}` `{éllä}` `{élůs}`
`!3A!` `{äjly}` `{ajlis}` `{élly}` `{ellis}`
`!3C!` `{äjló}` `{ajlos}` `{élló}` `{ellos}`
`!3X!``{äjlós}``{éllós}`
## Future
:::twocol
- `{řazgų kéd ojs}` 'I will be eating bread'
- `{řazgų kéd éws}` 'I will eat bread'
:::
  `!IMPF SG!` `!PL!` `!PF SG!` `!PL!`
------- ------------- ----------- ----------- -----------
`!1!` `{ojs}` `{wįz}` `{ews}` `{jųz}`
`!2!` `{wįd}` `{ólm}` `{jųd}` `{ewm}`
`!3B!` `{ójlä}` `{ójlůs}` `{éwlä}` `{éwlůs}`
`!3A!` `{ójly}` `{ojlis}` `{éwly}` `{ewlis}`
`!3C!` `{ójló}` `{ojlos}` `{éwló}` `{ewlos}`
`!3X!``{ójlós}``{éwlós}`
Questions, either of the yes/no or of the content kind, are indicated by a
particle `{ům}` (which is also the verb 'to ask') appearing after the inflection
of `{as}`.
Other aspects and moods are indicated with auxiliary verbs.
:::glosses
- Bolus hawa můtä jas jųz.
- [bɔˈlʊʃ xɑˈwɑ muˈta jɑʃ jõʒ]
- bolus hawa můtä jas jųz
- tomorrow can start go 1PL;FUT;PRF
- We can set off tomorrow.
---
- Pulų jafų ep äly ům?
- [pʊˈlõ jaˈfõ epf alijˈõ]
- pu-lų jaf-ų ep äly ům
- what-ACC name-ACC have 2SG;PRS;IMP QU
- What is your name?
:::
# Nouns & adjectives
## Case
Nouns have five cases: nominative, accusative, genitive, dative, and locative.
The last of these is used only with preposition-type words. As a result of the
inflectional suffixes, nouns almost always end in a consonant. The only
exception is words ending in `/ɪ/` or `/i/`, which gain an extra `/j/` before
the suffixes. The spelling similarly gains a `{j}`.
Nouns are divided into a few classes. Each class requires the use of a specific
inflection class of `{as}`, labelled `!A!`, `!B!`, or `!C!`. The conventional
labels for the classes are:
I. Sapient `!(A)!` sapients
II. Water `!(B)!` bodies of water, and the sky
III. Ground `!(A)!` the ground, rocks, metals, chemical elements
IV. Artifice `!(C)!` handheld tools, small plastic items, electronics
V. Spiritual `!(C)!` gods, the mind & soul, large natural events, language
VI. Containers `!(B)!` boxes, pans, bowls, wardrobes, etc;
beds, chairs, and other furniture for sitting or lying on
VII. Clothing `!(B)!` clothing and carried objects like umbrellas and bags
VIII. Food `!(C)!` food and drink
IX. Animal `!(B)!` animals (including mythical creatures)
(**TODO** zk names for genders)
Not all nouns fall into the class which the labels would suggest, and if none of
the labels fit then the choice is arbitrary. (As is usual with `!NOM!``!ACC!`
languages, `!NOM!`;`!SG!` is the citation form in dictionaries.) People's names
are assigned to whichever class they choose.
`!I!` `!II!` `!III!` `!IV!` `!V!` `!VI!` `!VII!` `!VIII!` `!IX!`
--------- -------- -------------- -------------- ------------- ------------ ------------ ------------- ------------- ------------- -------------
'woman' 'lake' 'iron' 'tool' 'life' 'cup' 'shoe' 'bread' 'dog'
`!NOM!` `!SG!` `{fälés}` `{dusal}` `{klůp}` `{řas}` `{kól}` `{mbuz}` `{gřub}` `{řazg}` `{kląs}`
`!PL!` `{fälésé}` `{dusala}` `{klůpä}` `{řasa}` `{kólä}` `{mbuze}` `{gřube}` `{řazgį}` `{kląse}`
`!ACC!` `!SG!` `{fälésų}` `{dusalų}` `{klůpů}` `{řasol}` `{kólų}` `{mbuzol}` `{gřubę}` `{řazgų}` `{kląsų}`
`!PL!` `{fälésów}` `{dusaloh}` `{klůpůf}` `{řasuf}` `{kólůh}` `{mbuzuf}` `{gřubęw}` `{řazgoh}` `{kląsow}`
`!GEN!` `!SG!` `{fälésäm}` `{dusalam}` `{klůpym}` `{řasim}` `{kóläm}` `{mbuzat}` `{gřubam}` `{řazgim}` `{kląsam}`
`!PL!` `{fälésäz}` `{dusalat}` `{klůpyt}` `{řasit}` `{kóläz}` `{mbuzaz}` `{gřubat}` `{řazgįz}` `{kląsaz}`
`!DAT!` `!SG!` `{fälésój}` `{dusale}` `{klůpój}` `{řasoj}` `{kólé}` `{mbuze}` `{gřuboj}` `{řazgai}` `{kląsi}`
`!PL!` `{fälésůd}` `{dusaloj}` `{klůpůd}` `{řasud}` `{kólój}` `{mbuzoj}` `{gřubud}` `{řazged}` `{kląsid}`
`!LOC!` `!SG!` `{fälésés}` `{dusales}` `{klůpés}` `{řases}` `{kólés}` `{mbuzes}` `{gřubes}` `{řazges}` `{kląses}`
`!PL!` `{fälésęts}` `{dusalęts}` `{klůpęts}` `{řasęts}` `{kólęts}` `{mbuzęts}` `{gřubęts}` `{řazgęts}` `{kląsęts}`
Adjectives, including genitive nouns, agree in case with their head noun, but not number. Adjectives, except for possessive pronouns, attached to a genitive noun agree with that noun's head, but not with the genitive noun itself.
:::twocol
- `!NOM!`: `{bym}` 'good'
- `!ACC!`: `{bymů}`
- `!DAT!`: `{bymó}`
- `!LOC!`: `{bymés}`
:::
# Pronouns
__TODO__
## Case
| | `!NOM!` | `!ACC!` | `!GEN!` | `!DAT!` | `!LOC!` |
|----------:|:-------:|:--------:|:--------:|:--------:|:-------:|
| `!1SG!` | `{yn}` | `{iwn}` | `{ym}` | `{ém}` | `{yné}` |
| `!1PL!` | `{fę}` | `{fęw}` | `{fénó}` | `{fejm}` | `{fęj}` |
| `!2SG!` | `{ol}` | `{ow}` | `{ů}` | `{wą}` | `{wój}` |
| `!2PL!` | `{zůl}` | `{zow}` | `{zów}` | `{zům}` | `{zůj}` |
| `!3SG.A!` | `{sem}` | `{sju}` | `{só}` | `{sem}` | `{sęs}` |
| `!3SG.B!` | `{lem}` | `{lew}` | `{ló}` | `{lem}` | `{lęs}` |
| `!3SG.C!` | `{em}` | `{ä}` | `{aw}` | `{äm}` | `{ęs}` |
| `!3PL.A!` | `{gej}` | `{gęw}` | `{déw}` | `{gim}` | `{gįs}` |
| `!3PL.B!` | `{gaj}` | `{gąw}` | `{djó}` | `{gam}` | `{gąs}` |
| `!3PL.C!` | `{gó}` | `{gů}` | `{gů}` | `{gam}` | `{gąs}` |
| `!3PL.X!` | `{gew}` | `{gejų}` | `{déw}` | `{gam}` | `{gąs}` |
# Syntax
## Questions
To form a yes/no question, the particle `{ům}` is added to the end of the
sentence. When used in this way, `{ům}` is pronounced as an `{ų}` attached to
the final word.
:::glosses
- Bymů bälsůh ep ad ům?
- [biˈmuː baɫˈsuːχ ɛpf ɑˈdõ]
- bym-ů bäls-ůh ep ad ům
- good-ACC mood-ACC;PL have 2SG;PRS;IMPF QU
- Are you feeling good?
:::
To answer a question, conjugate `{as}` appropriately, and follow with `{řab}`
for agreement and `{zol}` for disagreement. In formal circumstances the main
verb stem may be echoed before the `{as}`. Before `{zol}`, a `{s}` or `{z}` at
the end of the form of `{as}` is dropped.
:::glosses
- As řab.
- [ɑʃ ʁɑv]
- as řab
- 1SG;PRS;IMPF CONFIRM
- Yes, I am.
---
- A zol.
- [ɑ zɔɫ]
- a(s) zol
- 1SG;PRS;IMPF DENY
- No, I am not.
:::

View file

@ -1,66 +0,0 @@
:root {
--section-prefix: '';
}
h1::before, h2::before, h3::before, h4::before, h5::before, h6::before {
padding-right: 1ex;
}
main h1 {
counter-increment: h1;
counter-reset: h2 h3 h4 h5 h6;
}
main h1::before {
content: var(--section-prefix) counter(h1);
}
main h2 {
counter-increment: h2;
counter-reset: h3 h4 h5 h6;
}
main h2::before {
content: var(--section-prefix) counter(h1) '.' counter(h2);
}
main h3 {
counter-increment: h3;
counter-reset: h4 h5 h6;
}
main h3::before {
content: var(--section-prefix) counter(h1) '.' counter(h2) '.' counter(h3);
}
main h4 {
counter-increment: h4;
counter-reset: h5 h6;
}
main h4::before {
content: var(--section-prefix)
counter(h1) '.' counter(h2) '.' counter(h3) '.' counter(h4);
}
main h5 {
counter-increment: h5;
counter-reset: h6;
}
main h5::before {
content: var(--section-prefix)
counter(h1) '.' counter(h2) '.' counter(h3) '.' counter(h4) '.'
counter(h5);
}
main h6 {
counter-increment: h6;
}
main h6::before {
content: var(--section-prefix)
counter(h1) '.' counter(h2) '.' counter(h3) '.' counter(h4) '.'
counter(h5) '.' counter(h6);
}

View file

@ -1,473 +0,0 @@
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Regular.ttf) format('ttf'),
url(woff2/Junicode-Regular.woff2) format('woff2');
font-weight: 400;
font-style: normal;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Italic.ttf) format('ttf'),
url(woff2/Junicode-Italic.woff2) format('woff2');
font-weight: 400;
font-style: italic;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Medium.ttf) format('ttf'),
url(woff2/Junicode-Medium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-MediumItalic.ttf) format('ttf'),
url(woff2/Junicode-MediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Medium.ttf) format('ttf'),
url(woff2/Junicode-Medium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-MediumItalic.ttf) format('ttf'),
url(woff2/Junicode-MediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmBold.ttf) format('ttf'),
url(woff2/Junicode-SmBold.woff2) format('woff2');
font-weight: 600;
font-style: normal;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-SmBoldItalic.woff2) format('woff2');
font-weight: 600;
font-style: italic;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Bold.ttf) format('ttf'),
url(woff2/Junicode-Bold.woff2) format('woff2');
font-weight: 700;
font-style: normal;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-BoldItalic.ttf) format('ttf'),
url(woff2/Junicode-BoldItalic.woff2) format('woff2');
font-weight: 700;
font-style: italic;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Light.ttf) format('ttf'),
url(woff2/Junicode-Light.woff2) format('woff2');
font-weight: 200;
font-style: normal;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-LightItalic.ttf) format('ttf'),
url(woff2/Junicode-LightItalic.woff2) format('woff2');
font-weight: 200;
font-style: italic;
font-stretch: normal;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExp.ttf) format('ttf'),
url(woff2/Junicode-SmExp.woff2) format('woff2');
font-weight: 400;
font-style: normal;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpItalic.ttf) format('ttf'),
url(woff2/Junicode-SmExpItalic.woff2) format('woff2');
font-weight: 400;
font-style: italic;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpMedium.ttf) format('ttf'),
url(woff2/Junicode-SmExpMedium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-SmExpMediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpMedium.ttf) format('ttf'),
url(woff2/Junicode-SmExpMedium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-SmExpMediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpSmBold.ttf) format('ttf'),
url(woff2/Junicode-SmExpSmBold.woff2) format('woff2');
font-weight: 600;
font-style: normal;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpSmBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-SmExpSmBoldItalic.woff2) format('woff2');
font-weight: 600;
font-style: italic;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpBold.ttf) format('ttf'),
url(woff2/Junicode-SmExpBold.woff2) format('woff2');
font-weight: 700;
font-style: normal;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-SmExpBoldItalic.woff2) format('woff2');
font-weight: 700;
font-style: italic;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpLight.ttf) format('ttf'),
url(woff2/Junicode-SmExpLight.woff2) format('woff2');
font-weight: 200;
font-style: normal;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmExpLightItalic.ttf) format('ttf'),
url(woff2/Junicode-SmExpLightItalic.woff2) format('woff2');
font-weight: 200;
font-style: italic;
font-stretch: semi-expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Exp.ttf) format('ttf'),
url(woff2/Junicode-Exp.woff2) format('woff2');
font-weight: 400;
font-style: normal;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpItalic.ttf) format('ttf'),
url(woff2/Junicode-ExpItalic.woff2) format('woff2');
font-weight: 400;
font-style: italic;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpMedium.ttf) format('ttf'),
url(woff2/Junicode-ExpMedium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-ExpMediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpMedium.ttf) format('ttf'),
url(woff2/Junicode-ExpMedium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-ExpMediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpSmBold.ttf) format('ttf'),
url(woff2/Junicode-ExpSmBold.woff2) format('woff2');
font-weight: 600;
font-style: normal;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpSmBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-ExpSmBoldItalic.woff2) format('woff2');
font-weight: 600;
font-style: italic;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpBold.ttf) format('ttf'),
url(woff2/Junicode-ExpBold.woff2) format('woff2');
font-weight: 700;
font-style: normal;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-ExpBoldItalic.woff2) format('woff2');
font-weight: 700;
font-style: italic;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmCond.ttf) format('ttf'),
url(woff2/Junicode-SmCond.woff2) format('woff2');
font-weight: 400;
font-style: normal;
font-stretch: semi-condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmCondItalic.ttf) format('ttf'),
url(woff2/Junicode-SmCondItalic.woff2) format('woff2');
font-weight: 400;
font-style: italic;
font-stretch: semi-condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmCondMedium.ttf) format('ttf'),
url(woff2/Junicode-SmCondMedium.woff2) format('woff2');
font-weight: 600;
font-style: normal;
font-stretch: semi-condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmCondMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-SmCondMediumItalic.woff2) format('woff2');
font-weight: 600;
font-style: italic;
font-stretch: semi-condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmCondBold.ttf) format('ttf'),
url(woff2/Junicode-SmCondBold.woff2) format('woff2');
font-weight: 700;
font-style: normal;
font-stretch: semi-condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-SmCondBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-SmCondBoldItalic.woff2) format('woff2');
font-weight: 700;
font-style: italic;
font-stretch: semi-condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-Cond.ttf) format('ttf'),
url(woff2/Junicode-Cond.woff2) format('woff2');
font-weight: 400;
font-style: normal;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondItalic.ttf) format('ttf'),
url(woff2/Junicode-CondItalic.woff2) format('woff2');
font-weight: 400;
font-style: italic;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondMedium.ttf) format('ttf'),
url(woff2/Junicode-CondMedium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-CondMediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondMedium.ttf) format('ttf'),
url(woff2/Junicode-CondMedium.woff2) format('woff2');
font-weight: 500;
font-style: normal;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondMediumItalic.ttf) format('ttf'),
url(woff2/Junicode-CondMediumItalic.woff2) format('woff2');
font-weight: 500;
font-style: italic;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondSmBold.ttf) format('ttf'),
url(woff2/Junicode-CondSmBold.woff2) format('woff2');
font-weight: 600;
font-style: normal;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondSmBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-CondSmBoldItalic.woff2) format('woff2');
font-weight: 600;
font-style: italic;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondBold.ttf) format('ttf'),
url(woff2/Junicode-CondBold.woff2) format('woff2');
font-weight: 700;
font-style: normal;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-CondBoldItalic.ttf) format('ttf'),
url(woff2/Junicode-CondBoldItalic.woff2) format('woff2');
font-weight: 700;
font-style: italic;
font-stretch: condensed;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpLight.ttf) format('ttf'),
url(woff2/Junicode-ExpLight.woff2) format('woff2');
font-weight: 200;
font-style: normal;
font-stretch: expanded;
}
@font-face {
font-family: Junicode;
src: url(ttf/Junicode-ExpLightItalic.ttf) format('ttf'),
url(woff2/Junicode-ExpLightItalic.woff2) format('woff2');
font-weight: 200;
font-style: italic;
font-stretch: expanded;
}

BIN
style/fonts/junicode/ttf/Junicode-Bold.ttf (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

BIN
style/fonts/junicode/ttf/Junicode-Cond.ttf (Stored with Git LFS)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more