The Grammar Editor allows you to write about your language in plain English, as well as generate grammatical affixes that can be used in the translator.
Affix tables
You can insert a grammar table into Grammar Editor using the Add Grammar Table button:
The above settings insert the following code into the Editor:
TABLE TYPE = affix part-of-speech = n example-word = dog rows = SinGular, PLural SG = Random PL = Random
which, in turn, produces this table when generated:
Singular | Suffix -o |
Plural | Suffix -i |
Let’s have a look at the code line-by-line.
TABLE TYPE = affix part-of-speech = n example-word = dog rows = SinGular, PLural SG = PL = -s
produces:
Singular | No affix |
Plural | Suffix -s |
This example mimics English by making the plural
Writing
You can optionally translate each cell by writing ~ after the affix tag name and before the = sign. Eg:
TABLE TYPE = affix part-of-speech = n example-word = dog rows = SinGular, PLural SG ~ dog = PL ~ dogs = -s
Singular | No affix dog |
Plural | Suffix -s dogs |
Fusional vs agglutinative affixes
You may add another grammatical category on along the columns. In this example for verbs we are combining tense (past, present, future) with person (1st person, 2nd person, 3rd person):
TABLE TYPE = affix part-of-speech = v example-word = learn cols = PaST, PReSent, FUTure rows = 1st person, 2nd person, 3rd person PST.1 = -a PST.2 = -b PST.3 = -c PRS.1 = -d PRS.2 = -e PRS.3 = -f FUT.1 = -g FUT.2 = -h FUT.3 = -i
This effectively fuses the two categories of tense and person together in each affix, so that you cannot phonologically separate them.
Past | Present | Future | |
1st person | Suffix -a |
Suffix -d |
Suffix -g |
2nd person | Suffix -b |
Suffix -e |
Suffix -h |
2nd person | Suffix -c |
Suffix -f |
Suffix -i |
Here, the suffix
Some languages have a tendency be fusional, whereas others language have a tendency to encode a single grammatical property per affix, known as agglutinative languages. To create an agglutinative system, you need to create two separate tables, one for tense and one for person.
TABLE TYPE = affix part-of-speech = v example-word = learn rows = PaST, PReSent, FUTure PST = -a PRS = -b FUT = -c
TABLE TYPE = affix part-of-speech = v example-word = learn rows = 1st person, 2nd person, 3rd person 1 = -d 2 = -e 3 = -f
In this example, the translation for “I learned” would require the past tense suffix
Multiple example words
If your language has noun genders, you can choose to pull different example words from the dictionary to match the genders, eg:
TABLE TYPE = affix part-of-speech = n example-word M = dog example-word F = cat cols = Masculine, Feminine rows = SinGular, PLural M.SG = Random M.PL = Random F.SG = Random F.PL = Random
This applies the Masculine Singular and Masculine Plural affix to “dog”, and Feminine Singular and Feminine Plural affix to “cat”. Note that need to know the genders of these words beforehand to do this, i.e. the program will not automatically make “dog” masculine just because your table says it’s masculine.
Plain English explanations for rules
If your affixes use complicated sound changes, you may wish explain them in plain English by writing a single double quote
TABLE TYPE = affix part-of-speech = n example-word = dog cols = SinGular, PLural SG = -s PL = IF #C & C# THEN -z ELSE -a "If the word begins and ends in a consonant, add -z to the end. Otherwise add -a to the end
Result:
Singular | Suffix -s |
Plural | If the word begins and ends in a consonant, add -z to the end. Otherwise add -a to the end |
Word tables
Words generated in Word Table automatically get pushed into the main dictionary.
Same as affix tables, you can specify what the word will be using the equals sign:
TABLE TYPE = word part-of-speech = det cols = Masculine, Feminine rows = SinGular, PLural M.SG = el F.SG = la M.PL = los F.PL = las
And you can specify exactly what each word translates to in the dictionary using the ~ sign after the name:
TABLE TYPE = word part-of-speech = det cols = Masculine, Feminine rows = SinGular, PLural M.SG ~ the (masculine singular definite article) = el F.SG ~ the (masculine singular definite article) = la M.PL ~ the (masculine singular definite article) = los F.PL ~ the (masculine singular definite article) = las
Pronoun tables
Some confusion can arise with English pronouns, due to the fact that gender is only expressed in some of its pronouns. English’s 3rd person has three genders: “he”, “she” and “it”. However, all other pronouns are gender neutral: “I”, “we”, “you”, and “they”.
Furthermore, English doesn’t have a singular/plural distinction in the 2nd person “you”, whereas 1st person does (“I” vs “we”) as does 3rd person (“he/she/it” vs “they”).
This inconsistency makes it difficult to divide English pronouns neatly into Vulgar’s rows and columns. The simplest thing may be to put every pronoun own its own row, like this:
TABLE TYPE = word part-of-speech = pron rows = 1st person SinGular, 2nd person SinGular, 3rd person Masculine SinGular, 3rd person Feminie SinGular, 3rd person Neutral SinGular, 1st person PLural, 2nd person PLural, 3rd person PLural 1.SG ~ I = Random 2.SG ~ you = Random 3.M.SG ~ he = Random 3.F.SG ~ she = Random 3.N.SG ~ it = Random 1.PL ~ we = Random 2.PL ~ you = Random 3.PL ~ they = Random
However this is still not the full picture! English has different set of pronouns for “cases”, which change based on who is doing the verb (I, he, we, etc.) vs who the verb is done-to (me, him, us, etc.). Linguists call these the Nominative vs Accusative case, respectively. So you may choose to add an axis for Nominative and Accusative case:
TABLE TYPE = word part-of-speech = pron rows = 1st person SinGular, 2nd person SinGular, 3rd person Masculine SinGular, 3rd person Feminie SinGular, 3rd person Neutral SinGular, 1st person PLural, 2nd person PLural, 3rd person PLural cols = NOMinative, ACCusative 1.SG.NOM ~ I = Random 1.SG.ACC ~ me = Random 2.SG.NOM ~ you = Random 2.SG.ACC ~ you = Random 3.M.SG.NOM ~ he = Random 3.M.SG.ACC ~ him = Random 3.F.SG.NOM ~ she = Random 3.F.SG.ACC ~ her = Random 3.N.SG.NOM ~ it = Random 3.N.SG.ACC ~ it = Random 1.PL.NOM ~ we = Random 1.PL.ACC ~ us = Random 2.PL.NOM ~ you = Random 2.PL.ACC ~ you = Random 3.PL.NOM ~ they = Random 3.PL.ACC ~ them = Random
If you want to make a different pronoun system to English, you need to decide if want your conlang’s pronouns to fit neatly into the rows and columns of a table, or if there will be some level of irregularity, like the English system. Next, regardless of whether they fit neatly into a table or not, you will need to figure out how each conlang pronoun translates to its English equivalent(s). Here is one possibility using a simple “neat fit” system where every conlang pronoun expresses person (1st, 2nd or 3rd) and gender (masculine or feminine) but not number (singular vs plural):
TABLE TYPE = word part-of-speech = pron cols = Masculine, Feminine rows = 1st person, 2nd person, 3rd person M.1 ~ I/we (masculine) = Random M.2 ~ you (masculine) = Random M.3 ~ he/they (masculine) = Random F.1 ~ I/we (feminine) = Random F.2 ~ you (feminine) = Random F.3 ~ she/they (feminine) = Random
Other tricks
Getting words from the dictionary
In the body of the grammar editor, you may pull conlang words from the dictionary using double curly brackets around the English word, eg: {{man}} will be replaced with the conlang word for man. This is helpful if you don’t know the word ahead of time. You can also apply affixes to this, eg: {{man-PL:N}} will add the plural form for nouns (assuming your language has this affix).
(Be aware that although the affix abbreviation would have been
{{Langname}} can be used to pull the language’s name.
Boxed sections
Create boxed off sections in your grammar by typing three dashes
Regular tables
Regular tables can be inserted inside a code-block using Markdown-style formatting:
| Heading 1 | Heading 2 | Heading 3 | |--------------|:---------:|--------------:| | left aligned | centred | right aligned | | normal text | **bold** | *italic* |
Result:
Gloss translations
Code blocks also allow you to create gloss translations (word-for-word and morpheme-to-morpheme translations):
Example:
te wunua molengo-su CASE house old-1SG.POSS my old house
Result:
The 1st line is the of the code is the conlang translation, the 2nd line is the gloss, and the last line (optional) is the plain Enlgish translation. The 1st and 2nd line should have the exact same number of spaces in order for the word-for-word translation. You can optionally put intermediary translations before the last line.
Note: even though this uses affix tags in a similar fashion to other areas in Vulgar, this section does not do the translation for you. Why? Because Vulgar’s affix tag system only partially replicates a proper linguistic gloss. For instance, you can encode an circumfix into a single affix tag. However in a true gloss, the convention is to show a morpheme-to-morpheme correlation, which means the circumfix tag should be shown at the beginning at the end of the word:
Manual translations also allow you to mark the morpheme boundaries in the conlang word, and follow other glossing conventions.