Check out our Trello board for upcoming changes!


27 January 2023

  • Fixed: Sound changes involving a single vowel changing that vowel within a diphthong (when it’s the vowel that doesn’t have the diphthong symbol attached to it). Similarly, a single vowel in Illegal Combinations banned a diphthong with that vowel in it.


26 January 2023

  • Fixed: cursor placement issues when Add And Remove Words attempts to auto-fix the notation for the placement of the : and = symbols
  • Fixed: incorrect rule order warnings for sound change rules that change location of stress


23 January 2023

  • Fixed sound change rules with [V +stress] after forward slash not working


22 January 2023

  • Fixed sound change rules that change a stressed vowel (but don’t change the stress location) not working


19 January 2023

Version 11 introduces the ability to change stress location! For example V > [+stress] / #_ changes the stress to the vowel at the start of the word (if a vowel is at the start of a word). This was surprisingly difficult to implement due to the way Vulgar handles secondary stress patterns, which is why it had been put on the back burner for many years (far too long).

For this to work correctly, the rule must be seeking a vowel (not consonant or vowel-consonant combination) and must change only to [+stress]. In grammar tables a stress change rule could be implemented after an affix is added. For example AFFIX = -o; o > [+stress] / _#, this first adds the affix -o then adds the stress to it. The / _# is needed to specially target the final o. Otherwise o > [+stress] would stress the first o in the word (if there is another one).


13 January 2023

  • Sound change rules: writing +close and +open is now valid as distinctive features. This is the same as writing +high and +low respectively; the terms are interchangeable and official IPA actually uses close and open
  • Fixed: unexpected results in sound changes that have trailing commas inside curly brackets, e.g. {a,b,} > c


10 January 2023

  • Fixed: TeX file not exporting noun genders
  • Fixed: some issues with warnings about capitalizing English words in Add And Remove Words


4 January 2023

  • Fixed: alt keys for IPA not replacing highlighted text


31 December 2022

  • Vowel Tones option now becomes disabled when Advanced Word Structure is selected, as tones need to be done through the Advanced Word Structure itself
  • Fixed: words with IPA but no part of speech (no colon symbol) not added to dictionary
  • Fixed: Add And Remove Words no longer warns you that you should not capitalize your English words if you are adding the English word “I”


30 December 2022

  • In IF statements ELSE IF and ELSEIF are now valid syntax; the standard for Vulgarlang is, after the first IF, any subsequent IFs are what most other programming languages call ELSE IF. Because Vulgar is unusual in this regard, some users have assumed ELSE IF works. So now it does!
  • Improvements to default spelling: diacritics are no longer placed above letters that ascend, those being b d f h k l t


24 December 2022

  • Fixed: custom grammar tables values re-setting when changing suffix vs prefix setting
  • Fixed: grammar word table insert a double ~ symbol when the English translation is unable to be figured out automatically


17 December 2022

  • Fixed: Save derived words to Add/Remove Words field does not work if Edit This Language button has already been pressed
  • Fixed: added warning message when trying to save a language or download .csv file before any language has been generated


16 November 2022

  • Added warning message for when users create unnecessary IF statements: eg IF #x THEN #x > y could just be #x > y
  • Fixed: issue when Advanced Word Structure is either given no vowels or no consonants
  • Fixed: issue when Advanced Word Structure is given no phoneme classes at all


11 October 2022

  • Languages without nominative pronouns (I, you, he, she, we, they) now work in Translator. To create a language like this, simple have no nominative pronouns in grammar tables, and instead inflect the doer on of the verb in verb affixes.


8 October 2022

  • Sound changes: added ability to change add word boundaries through sound changes by using > ##. For example e > ## changes all e’s to a space; X* > _##_ reduplicates the whole word with a space between it.
  • Improvements to automatic translation of verb and noun affixes in Grammar Tables
  • Fixed: descriptions of some reduplication rules


5 October 2022

  • Grammar Editor: added ability to insert possessive determiner tables, with auto translation for each cell into English. After selecting Words generated are: possessives you will need to fuse it with other categories, such as person and number. You may also want to put the Possessive value on the cols for a better layout.
  • Fixed: some issues with displaying the Advanced Word Structure affix rules


3 October 2022

  • Grammar Tables: you are now able to manually swap around the values in cols = and rows = after having inserted the table. Previously, this caused errors: the order of the cell glosses below the headings needed to be re-ordered too, eg 1.SG = needed to change to SG.1 =
  • Fixed the default order of Grammar Table glosses to be more consistent with the rows/cols/blocks headings
  • Fixed: Translator failing to translate sentences with articles in them when the language is said to have no articles


1 October 2022

  • Added warning message that custom added words should not be capitalized: default words are not capitalized, and capitalization causes issues when trying to use these words in derived words. However, this message is just a suggestion and can be ignored.
  • Removed Apply as permanent sound changes feature. This feature never altered the Word Structure phonemes; it changed the hard coded IPA in Add and Remove Words and then deleted old sound changes rules (because applying them twice to words could cause unintentional double-ups). This meant any new words simply took on the old Word Structure without the sound changes. Furthermore, the same effect can be achieved by just leaving the sound change data in the settings!


28 September 2022

  • Articles now use the part-of-speech ART, instead of DET (determiner). As articles are a subclass of determiners, you still may use DET for articles.
  • Improved automatic translations for grammar tables for articles and determiners
  • Fixed: bug where the Delete Grammar Table button got stuck and you were unable to add new grammar tables


26 September 2022

  • Improvements to automatic pronoun translation in inserted grammar tables
  • Fixed: capitalization issues with custom values in inserted grammar tables


25 September 2022

  • Fixed: IPA alt keys broken in Grammar Editor
  • Fixed: grammar word glosses doubling up in dictionary if the gloss has no English translation
  • Fixed: Grammar Table errors on custom values that doesn’t have a standardized abbreviation when there is a space in the custom value name


24 September 2022

  • When clicking inside an existing grammar table, the Replace Table section now automatically changes the settings to the correct TABLE TYPE, and part-of-speech, so that you don’t accidentally replace an affix table with a word table, or vice versa
  • Changed Grammar Tables format to use forward slashes instead of commas, to make it easier to read. Eg rows = PaST / PReSent / FUTure instead of rows = PaST, PReSent, FUTure. Commas still work, which makes old settings forwards compatible
  • Changed possessive determiners to be glossed with POSS. Previously “my” (1st person singular possessive determiner) would have been glossed as 1.SG:DET. Now it is POSS.1.SG:DET. This was simply an oversight; the gloss was completely not clear that it was a possessive determiner


22 September 2022

  • Fixed: Load Settings From Previous Session not loading Grammar Editor information in certain circumstances
  • Fixed: some popup messages not working
  • Some loading improvements and backend changes


18 September 2022

  • Added partial support to reload unsaved language from the browser’s cache, in Saving Options > Load Language From Last Session. Currently only reloads data from Vocabulary and Grammar Editor. Planning to gradually add full support
  • Custom grammar tables: new “customize” buttons make it easier to edit custom grammar values


2 September 2022

  • Fixed: diacritic IPA letters sometimes breaking Grammar Table formatting
  • Fixed: letters with diacritics in Grammar Editor being automatically combined into their single Unicode equivalent letter


28 August 2022

  • Added ability to create custom number bases other than just base-10 and base-20


20 August 2022

  • Added ability to do sound changes that go over word boundaries. Cross-word boundaries are represented by ##, for example x > y / _##z means x at the end of a word changes to y when the following word begins with z
  • Fixed: sound changes in [square brackets] not appearing in the translator output
  • Fixed: lagging issues when using CTRL+F on Chrome-based browsers


17 August 2022

  • Fixed: settings files failing to load if the language has Arrange Korean Jamo characters into syllables selected


16 August 2022

  • Fixed: unable to apply custom genders
  • Backend fixes


6 August 2022

  • Fixed: [V +stress] and [V -stress] not working in sound changes


5 August 2022

  • Fixed: Grammar table example word not able to have affixes added to it
  • Fixed: Grammar table example word not able to hook the correct word if the English definition had parenthesis in it, eg: example-word = be (located)


31 July 2022

  • Fixed: Smart Translator not able to figure out the past tense of certain English words
  • Some performance improvements


21 July 2022

  • Fixed: sound changes with +stress not applying to letter-diacritic sequences, e.g. [a +stress] worked but [ã +stress] did not


7 June 2022

  • Fixed: Allow contrastive stress option not selectable when using No Fixed Stress


1 June 2022

  • Fixed: C and V symbols not working in Illegal Combinations
  • Fixed: Ban same syllable twice in a row not working


30 May 2022

  • Fixed: sound changes that use +/-voiced not working, because the standard is +/-voice. Now both voice and voiced work


24 May 2022

  • Fixed: removing words with minus sign (-) not working when colon has spaces between word and part-of-speech, eg -word : n vs -word:n


21 May 2022

  • Fixed: derivational rules using the wrong root word in very rare cases


10 May 2022

  • Fixed: sound changes with subscript numbers after [features] and {curly brackets} not working in some cases
  • Fixed: issue with IF/ELSE rules


8 May 2022

  • Fixed: Long vowels not getting correct spelling when randomly generated
  • Fixed: Analyze Your Own Word Structure adding mid-word consonant clusters to word initial clusters when non-IPA symbols are found in a word
  • Fixed: small fixes to Welsh phonology


2 May 2022

  • Fixed: subscript numbers unable to be used after the forward slash (“in environment of” part) of sound changes, as well as in IF conditions
  • Fixed: issues with negated sound changes (using ! symbol)


30 April 2022

  • Fixed: affix and sound change rules are not displaying properly if they have a semi-colon to chain multiple processes into the one rule
  • Fixed: example sentence for Locative case


28 April 2022

  • Fixed: issue with assimilation rules in Sound Changes
  • Fixed: some grammar table warnings triggering unnecessarily


24 April 2022

  • Fixed: Neuter, Animate and custom noun genders not working in Translator
  • Fixed: Korean Jamo characters not combining in Translator
  • Fixed: Issue with saving new random vocab to an already saved language
  • Fixed: Add Spelling Diacritics button not adding the correct position if not attached to another letter
  • Fixed: settings file name format for Firefox


16 April 2022

  • Changes to Finnish phonology (now excludes loan word phonemes)
  • Fixed crashing issue when Word Patterns don’t use any uppercase phoneme classes


10 April 2022

  • You are now able to use [+plosive] as a feature in sound change rule. Previously this didn’t work because [+stop] was the standard. They are synonymous, and some people are more familiar with the term plosive, so now both are valid.
  • Fixed: applying feature changes to diphthongs caused unexpected error
  • Fixed: issues with assimilation sound change rules for vowels
  • Fixed: issue with putting uppercase letter inside the square brackets into the on the right side of the sound change rule, e.g. C > [C +voice]
  • Fixed: Advanced Affix Patterns that use IF/ELSE statements not displaying properly in the grammar


4 April 2022

  • Fixed: affixes that use the null sign (-∅) literally add the null sign to the word
  • Fixed: Grammar tables not always using the example word with the correct part-of-speech
  • Fixed: adding a new word with the equals sign right after the part-of-speech (with no space) removes the part-of-speech from the dictionary entry


26 March 2022

  • Added warning for when a word table has no word information in a cell
  • Added warning for when an affix rule is accidentally entered into a word table
  • Fixed: incorrect placement of tone diacritics on vowels with double long symbols


19 March 2022

  • Fixed: issue where the app falsely warned that sound change rules are in the wrong order


3 March 2022

  • Fixed issue where the app incorrectly warned user that their Derivational Affix name was incorrectly formatted


2 March 2022

  • Added warnings when Derivational Affix names aren’t formatted properly (must only contain uppercase letters, numbers, and full stops)
  • Part-of-Speech Morphology now checks if the part-of-speech actually exists in the language. This helps pick up on possible misspellings of the rule
  • Added some automatic formatting help for Part-of-Speech Morphology; POSs should be in lower case, eg n = and not N =


20 February 2022

  • Added warning that syllabic consonants need to go in vowel fields


12 February 2022

  • Fixed: some issues with IF THEN statements in Advanced Word Structure Affix patterns
  • Fixed: missing warning message that Part-of-speech Morphology settings cannot be edited after the language has been saved
  • Fixed: Custom added Derivational affixes sometimes not autocapitalizing if you write them in as lower case


22 January 2022

  • Added warning messages when spelling or sound change rules have potential order issues. For example, a > b being applied before ac > d is an order issue; the second rule will never apply because all a‘s have already been changed to b.
  • Fixed: some spelling rule ordering issues for presets for Dutch, German, Irish and Mandarin


15 January 2022

  • Fixed: When using Vowel Harmony (Word Structure option), randomly generated affixes did not produce consistent consonants across the IF and ELSE conditions. For example, you might have ended up with affix rules such as IF {a,e,o} THEN ma- ELSE ʃi-, which basically says “if the word has one set of vowels, then add a certain affix, else add a totally unrelated affix”. Something like IF {a,e,o} THEN ma- ELSE mi- is more desirable, because m is in both conditions.


12 January 2022

  • Added Delete table button for Grammar Editor (appears when you click anywhere inside a grammar table)


5 January 2022

  • It is now valid to create circumfixes by writing a space between hypen (eg pre- -suff) or an underscore between hyphens (pre-_-suff) due to users assuming this is the way to do it. The old way (pre-, -suf) is still valid
  • Added warning for when user assume the way to do infixes is -infix- (see sound change guide chapter on Insertion)


1 January 2022

  • Custom added Derivational affixes now autocapitalize if you write them in as lower case, in order to correct formatting. E.g. writing newaffix = converts to NEWAFFIX =
  • Custom added Derivational affixes now get their own button so that they can be easily inserted into the Derived words field


26 December 2021

  • Added: when typing custom words, Vulgar now automatically adds the part-of-speech for the English word when you press the colon key (:) or equals sign. This only works if the words is in the default vocab list. If it adds the wrong part-of-speech, it can be manually corrected
  • Fixed: sound change rule that targeted a specific stressed vowel would also change that vowel with diacritics, eg [i +stress] matched i and iː
  • Other minor fixes to sound changes


24 December 2021

  • Fixed: [+stress] and [-stress] not working in affix rules
  • Fixed: Adding C or V inside assimilation rule square brackets broke the rule, eg [@place] was valid but [C @place] was not
  • Fixed: CSV download has the conlang column named “Untitled”


20 December 2021

  • Fixed: some freezing issues with Translator
  • Fixed: changing the custom font size no longer also changes Second Spelling size
  • Minor fixes to distinctive feature sound changes


17 December 2021

  • Fixed: no distinctive features matching ɫ
  • Fixed: [+lateral] not matching ɭ
  • Fixed: [+fricative] not matching ɮ, ɬ, ɧ and ʍ
  • Fixed: [+voice] not matching w
  • Fixed: subscript numbers don’t work in Illegal Combinations


12 December 2021

  • Added generic warning message when app freezes
  • Fixed: screen sometimes scrolling too high when clicking Edit This Language


4 December 2021

  • Generate unique name button changed to Generate place/character names to clear up confusion; some users thought it changed the language name
  • Pressing Edit this language takes you to the Vocabulary settings in order to make it slightly more obvious what the button does; there has also been some confusion from users not understanding what the point of the button is
  • Demo version: derivational words are no longer populated to setting when pressing Edit this language as this makes the program throw many warning messages because most of the base words have been removed
  • Fixed: grammar tables that apply to multiple parts of speech cause wrong information to be populated to subsequent tables


30 November 2021

  • Fixed: Irregular spelling of a word no longer applies to homophones of that word
  • Simplified numbers section information to fix inconsistencies in the output, due to not having settings controls for how higher numbers are formed, eg: no ability to control whether 21 should be formed as “twenty one” or “twenty and one” or “one and twenty”, etc. If you want to document this kind of information for your conlang, you should simply write about it the Grammar Editor.


25 November 2021

  • Added ability to make grammar tables apply to more than one part of speech by commas separating them in the table’s code, eg part-of-speech = n, adj applies the same affixes to nouns and adjectives. Note that this does not create two tables (nor should it, since the example word would be a noun in this scenario) it just creates the affixes for adjectives in the backend, ready to used in the Translator. But don’t forget that you can always simply write about your language outside of the grammar tables and mention that “affixes for adjectives pattern the same as nouns”.
  • Fixed English Word Structure incorrectly containing r and ɾ (should only include ɹ)
  • Fixed some issues caused by tabs being used in input


21 November 2021

  • Fixed: Reflect sound changes in spelling not reflected in Second Spelling
  • Translator: fixed “you are” conjugating are 3rd person instead of 2nd person
  • Translator: fixed issue where “:ADJ” is found in current dictionary
  • Translator: fixed compound words being comma separated in the gloss
  • Fixed another derivational word issue


18 November 2021

  • Fixed a derivational word issue


13 November 2021

  • Added option to Reflect sound changes in spelling. Previously, sound changes were always reflected in spelling. Now, by default they are not, which makes it easier to simulate sound changes over time that retain the original spelling, e.g. what happened to English over a few hundred years!
  • Changed the naming of IPA “ALT” keys to “keyboard shortcuts” to avoid connotations of Numpad ALT key codes


10 November 2021

  • Fixed: Sound Changes being applied twice to derived words and words inflected by grammatical affixes/sound changes
  • Fixed: some issues with sound changes and spelling changes involving environments left of the underscore symbol
  • Derived words: added more warning messages for incorrectly formatted derived word formulas
  • Custom Phonemes: tie-bars no longer automatically applied consonant clusters
  • Fixed: error when adding AWS Affix Patterns that don’t have any phoneme classes
  • AWS Affix Patterns can now be left bank; no longer forces you to have any affix patterns


5 November 2021

  • CSV export: when a single conlang words can be translated to multiple English words, the English words are no longer split onto multiple lines/multiple entries


1 November 2021

  • Fixed: adposition feature being blocked by Ad Blockers that interpreted it to mean “ad position”


28 October 2021

  • Added ability to choose adposition
  • Fixed adposition not working in translator


26 October 2021

  • Fixed: Irregular spelling not saved properly when used in combination with Second Spelling
  • Fixed: Vowel Tones feature adding diacritic tones after long vowel symbols


22 October 2021

  • Fixed vowels with relative diacritics not appearing in vowel chart. The following centralized vowels now appear: ä ɒ̈ ɪ̈ ʊ̈; the following lowered: e̞ ø̞ œ̞ ɯ̞, ɤ̞ o̞; and the following raised: ɑ̝ ɒ̝
  • Fixed various less common affricates not appearing the consonant chart
  • Consonant chart: merged epiglottal stop into pharyngeal column
  • No Spelling no longer displays the Numbers section, since the Numbers section only uses the spelling


19 October 2021

  • Grammar Editor: when you click on a grammar table you now have to the option to Replace This Table
  • Fixed some legacy issues with old formatting of Grammar Tables
  • Fixed: unable to expand Add And Remove Words and Derived Words input boxes horizontally
  • Fixed: some layout issues with smaller mobile screens


17 October 2021

  • Advanced Word Structure: If you need more than 26 classes, the following Greek letters can be used: ΓΔΘΛΞΠΣΦΨΩ
  • Fixed: some instances of derived words not working


16 October 2021

  • Added warnings for when derived words cannot find the root word
  • Fixed: default derived words sometimes using wrong part-of-speech of a word
  • Fixed: Custom noun genders with spaces in the name put a space in the abbreviation, eg Non Binary resulted in nn b.; now results in nnb.


11 October 2021

  • Fixed: Number base not saving to settings
  • Fixed: Font issues with HTML file download


10 October 2021

  • Grammar tables: deleting the entire information for a cell (eg, the AFFIX.TAG = part) now creates a totally blank cell. Previously it assumed the user must have accidentally deleted the cell and re-inserted it. This now allows users to deliberately have blank spaces in their grammar tables.
  • Fixed: Reduplication affixes sometimes created even when AWS Affix Patterns don’t allow them
  • Fixed: Phonemes that appear in Word Patterns (and not Phoneme Classes) not added to the phoneme charts
  • Fixed: some incorrect phonemes appearing in “Your Phonemes” buttons when using Advanced Word Structure


9 October 2021

  • Derived words: affix tags with bar symbols (|) would re-randomize which affix the derived word got each time the language was loaded. This resulted in a different word each time. These words will now be hardcoded into the Add And Remove Words section when saved, instead of being left as a derivational formula in the Derived Words section. Same with single use -AFFIX, -SUFFIX and -PREFIX tags.


7 October 2021

  • Added Disable Alt Keys button. Alt Keys are sometimes needed for non-English keyboards
  • Added Alt Key for syllable symbol σ to S key
  • Fixed: Second Spelling not showing up in Translator
  • Fixed: issues with exclamation marks and question marks in Translator
  • Fixed: Translator unable to translate English word “an”
  • Because Smart Translator can only translate one sentence at a time, it now deletes secondary sentences from the input box so that it is more obvious what the output translates to.
  • Fixed: issue where some totally unrelated English definitions were combined into one entry


27 September 2021

  • Add Grammar Tables now automatically inserts a heading for the table (which can be edited after the fact!)
  • Fixed: words with root part-of-speech getting incorrectly saved with the old br part-of-speech
  • Fixed: Max consonants before/after vowel options not working unless Custom Phonemes are being used


23 September 2021

  • Sound changes: added ability to do assimilation rules. For example, n > [@place] / _[@place] means “change n to the place of articulation of the following consonant”. This would change “inpossible” to “impossible” and “inkomplete” to “iŋkomplete”. See sound change page for longer explanation. This feature is experimental, so please point out any bugs you find with it!
  • Noting that the @ symbol used to be used for reduplication (version 10.5.2 and earlier), if you have any old rules that used @ this now needs to be updated to the underscore _. We decided not to make the app update this automatically as we don’t think it’s a very common scenario and should be easy to update manually.
  • Sound changes: fixed difference between C* and (C)* not working in Demo version
  • Changed some spellings of some words from British to US spelling


21 September 2021

  • Number section is no longer listed in the Grammar Editor, since it’s always been something that’s controlled within the Vocabulary settings and merely reflected in the Grammar Editor. A new List numbers in grammar section checkbox can be toggled on and off.
  • Added warnings that changing phonology settings don’t affect anything after a vocabulary is fully loaded into Add And Remove Words
  • If you check off Add And Remove Words after a language has been loaded, the app assumes you also want Remove All Default Words checked off, and does so automatically
  • Fixed some instances of default vocab words not always appearing the dictionary


18 September 2021

  • Added reduplication rules for certain grammar values. E.g. the way to form a plural noun may be to reduplicate the whole word (if fiz means “dog” then fizifz means “dogs”) or part of the word (fifiz to mean “dogs”)
  • Fixed: unable to enter a tone in the Tones section using an alt key shortcut
  • If a user adds only a single Noun Gender they are warned that this is same as a having no gender at all.
  • Temporarily removed certain words that aren’t polysemized with other words. The plan is to re-add these words when they can be polysemized with other words. Eg it doesn’t make sense to have a words for “stunning” that is totally unrelated to “amazing” or some similar synonym


13 September 2021

  • Sound changes: whole match reduplication has been changed from the @ symbol to the underscore _ symbol. The @ symbol was an arbitrary choice which is not used anywhere else in the linguistic world, whereas the underscore conceptually similar to how it’s used after the forward slash. No idea what any of this means? Check out the sound change guide. (Additionally, we are planning to use the @ symbol for something else in an upcoming update.)
  • Sound changes: there is now a difference between using the asterisks with or without round bracket: eg (X)* still matches zero or more “X” in a row, however X* has been changed to match one or more X in a row.
  • Fixed: some warning messages for incorrectly formatted spelling rules
  • Fixed: some Grammar Editor stuff using old ((double brackets)) instead of {{double curly brackets}}
  • Fixed: some incorrect spelling rules for natural language presets

12 September 2021

  • Moved Number base option to below Add And Remove Words and added warning that it can’t be changed after having saved a language
  • Added warning for when custom spelling rule are missing the > symbol
  • Fixed: Advanced Word Structure (AWS) patterns for nouns not being applied to gendered nouns
  • Fixed: AWS Affix Patterns not able to do affixes with a space between the hyphen and the phonemes
  • Fixed: AWS Affix Patterns issue when TABLE TYPE = suffix or TABLE TYPE = prefix, generator was unable to recognise AWS affix patterns that have IF/ELSE statements in them as being prefixes or suffixes, which resulted in incorrect affixes being used


10 September 2021

  • Stress Pattern option changed to drop down menu and moved to bottom of Phonology settings tab
  • Stress Pattern “Random” label changed to blank, so as not to be confused with “No Fixed Stress”
  • Derived words: underscores are now automatically inserted in formulas where it’s obvious that it’s not meant to be a compound word. Background: In formulas for derived words, a space creates a compound word of two different entries, eg newword : n = war god takes the entry for “war” and then the one for “god”. Issues arise when the single entry has a space in it “shut up” (as in ‘to be quite’), in which case the spaces must be replaced by underscores to signify its a single entry newword : n = shut_up. Some users have been observed making this mistake when the entry has comma separated words eg, “able, capable” should be written as able,_capable. The program will now auto correct able, capable to able,_capable.
  • Changed probability of randomly assigning noun gender to the language (previous probability made gender too common)
  • Fixed: animate/inanimate nouns still having old abbreviations applied to them in the dictionary entries (before version 10.5.1 they were ANI/INA, and are now AN/IN)
  • Fixed: some animate nouns not getting animate class applied to them
  • Fixed: Randomly generated animate/inanimate noun tables having no example words
  • Removed Remove Diphthong Symbols checkbox. This option also removed diphthong symbols from IPA, which should technically never happen. For spelling, it is easy enough to create rules to remove the diphthong symbol.

6 September 2021

  • In an effort to simplify the somewhat-overwhelming amount of information presented to users, information about the Word Initial/Mid/Final consonants is no longer displayed in the final output of the language. This information is still easily accessible if you press Edit This Language and go back to the Word Structure option
  • Added warning message for when users accidentally think /y/ is a consonant

5 September 2021

  • Fixed issue where word tables were sometimes treated like affix tables
  • WorldAnvil BBCode: fixed [br] tags not being added, causing some text to be all on one line
  • WorldAnvil BBCode: fixed [alt] tags left in code
  • WorldAnvil BBCode: fixed Second Spelling causing [s2] tags to be left the code

3 September 2021

  • Advanced Word Structure: fixed inability to make word patterns for bound roots using root =
  • Advanced Word Structure: fixed inability to attach diacritics to uppercase phoneme classes in word patterns
  • Advanced Word Structure: fixed Affix Pattern input box not handling precomposed IPA symbols correctly
  • Grammar Editor: fixed randomly generated affix/word in tables a not deduplicating with custom added ones

31 August 2021

  • Fixed: unable to make derived compound words out of three words in a row, eg: new word = one-two-three
  • Fixed: unable to make derived compound words one of the target English definitions has a parenthesis in it, eg: mortgage = life_(lifetime)-debt
  • Fixed: exceptions to rules not working when there is a something on both sides of the underscore eg, a > b / !c_d

29 August 2021

  • Fixed +/-stress feature not working in sound change rules

25 August 2021

  • Added warning that custom Advanced Word Structure phoneme classes cannot be used in Sound Changes
  • Added warning for when a Sound Change rule is missing the forward slash /
  • Fixed: various Sound Change issues involving diacritics
  • Fixed: HTML download having garbled output

24 August 2021

  • Added some common words that were somehow left out of the default vocab
  • Fixed: issue where sound changes could place phonemes in wrong position in IPA chart


21 August 2021

  • Changes to abbreviations: “neuter” gender was N, is now NT (so that it is different to N for “noun”); “animate” was ANI, is now AN; “inanimate” was INA, is now IN.
  • Going through default dictionary to better clarify senses of words, eg “thin (narrow)” vs “thin (slim, slender)”. Also added more random polysemy (both of these tasks are ongoing).
  • Fixed: Basic version Translation accidentally being labelled “Smart” Translator
  • Backend changes


14 August 2021

  • New interface for Insert Grammar Tables
  • Fixed: capitalization issues when inserting custom values into Grammar Tables
  • Fixed: automatic spelling rules not created for Vowel Harmony
  • Fixed: minor spelling mistakes in default vocabulary

11 August 2021

  • Regenerate Language button renamed to Apply New Changes (old label seemed to have caused some confusion with users)
  • Fixed: spelling rules that have multiple replacement possibilities (using bar | symbol) selecting the same replacement for entire word

7 August 2021

  • Sound changes: fixed various issues where “except for” environments had more than one phoneme, e.g. the Vz part not working in the rule x > y / _V !_Vz
  • Added ability to remove custom uploaded font

24 July 2021

  • Fixed some “in environment of” style rules not working
  • Fixed Grammar Tables that have just a single block value not generating properly


22 July 2021

  • Format change: Bound roots now use the part-of-speech root (old files convert br to root). Reason for this change is that some users used root as a placeholder without realising br is a thing, and root is the more obvious choice anyway.
  • We are going through default dictionary to better clarify senses of words, eg “thin (narrow)” vs “thin (slim, slender)”. Also added more random polysemy (both of these tasks are ongoing).
  • Fixed: derived words that have parenthesis in their definition not overriding the default non-derived word.


10 July 2021

  • Sound changes: fixed “last match” >> style changes not working in some specific scenarios
  • Sound changes: fixed “except” ! style changes not working in some specific scenarios
  • Translator: fixed affix buttons disappearing after Re-Generating a language
  • Translator: fixed unable to handle certain English contractions, eg I’ve, he’s, it’s, she’s
  • Custom Noun Genders option: fixed multipliers not working, eg Masculine *2 makes the masculine gender twice as likely to be assigned to a noun as writing it without the multiplier
  • Spelling Rules: fixed app crashing when users incorrectly use = sign instead of > sign, eg x = h instead of x > h
  • Removed broken LaTeX PDF options


4 July 2021

  • Fixed: IF/ELSE style rules now work in global sound changes, as do last match >> and first match << style arrows. Previously these features only worked in affix rules (although they still don’t work in spelling rules)
  • Fixed: edits to language not saved if the language hasn’t been re-generated. We assume that all edits are intended to be saved, even if the user forgets to re-generate before saving!


24 June 2021

  • Sound Change Applier now adds in subscript numbers if they are accidentally omitted, for example: VV > VxV converts to V₁V₂ > V₁xV₂ so that ao will change to axo. Previously, the rule would replace ao with literally VxV. Another example: V > VV converts to V₁ > V₁V₁, so that a changes to aa
  • Spelling rules with a random choice of spelling trigger Edit This Language to hard code irregular spelling into Add And Remove Words
  • Accidental uppercase IPA is converted to correct lowercase in Add and Remove Words, word tables and Language Name (does not work for affixes yet)
  • Fixed: Irregular spelling causing grammar words to enter dictionary twice
  • Fixed: Irregular spelling not working when incorrect IPA is used, eg colon symbol instead of long symbol


21 June 2021

  • Added ability to do irregular spelling for particular words in Add and Remove Words option by putting the spelling in angled brackets <> at the end, eg: english : POS : pronunciation <irregular spelling>. Note that there are a few small issues with this feature at the moment: as soon as you add an affix or sound change to the word it defaults back to the regular spelling rules; irregular spelling will also change the spelling of any homophones
  • Fixed: clicking Edit This Language with Sound Changes checked deleting the entire vocabulary from Add and Remove Words


15 June 2021

  • The app now generates a language even if there aren’t enough phonemes to generate 4000 unique words. Will simply warn you there weren’t enough phonemes and potentially give you lots of homophones. This allows users to experiment with small inventories
  • Add Grammar Table automatically translates cells to English (some gaps exists)
  • Add Grammar Table automatically makes certain affixes null, such as Singular, Present, Nominative, etc (this can still be edited after inserting the table)
  • Fixed derived words that use other derived words as the root not working when the root has a part-of-speech added to it
  • No fixed stress is no longer a randomly chosen option (although it can still be manually selected). This is because there are a few unresolved issues with No fixed stress: the stress location on Derived Words re-randomized each time you generate the language, and there is no standardized way to apply stress to inflected words, which means it re-randomizes each time in the translator. For these reasons, you may want to avoid the No Fixed Stress option.


6 June 2021

  • Revamped Add Grammar Table settings
  • Removed Anglicize randomly generated language names option. This option is on by default, and the English name of the language can be edited after generating if needed
  • Fixed: Translator broken in Basic version
  • Fixed: Translator not recognizing new changes to vocab without re-loading the settings file
  • Fixed: Unable to save Derivational Morphology rules
  • Fixed: saving language not suggesting language name as file name (Chrome and Edge only)


1 June 2021

  • Fixed TABLE TYPE = suffix and TABLE TYPE = prefix not working
  • Fixed Advanced Word Structure not creating automatic spelling rules for consonants
  • Fixed affix tag names unable to have IF, ELSE or THEN anywhere inside the name, e.g. “SHIFT” was an invalid name
  • Fixed warnings sometimes not thrown for invalid IF/ELSE syntax in affix rules


24 May 2021

  • Added ability to create irregular affix tables for specific words. See guide here.


21 May 2021

This is a minor version number update due to a revamp of the Sound Changes feature (in the Phonology tab):

  • Sound Changes with Show Changes in [Square Brackets] and Apply As Permanent Changes checked off allows you to save the pre-changed word forms to the Add And Remove Words section (when you press Edit Language). In the past, having Show Changes in [Square Brackets] and Apply As Permanent Changes checked off did absolutely nothing besides list your theoretical changes in the final output. (This was sort of meant to represent theoretical allomorphy without ever applying it). The new feature gives you yet another avenue to tweak the phonotactics of your language, especially after affixes have been added to derived words.
  • Another big change is that Vulgar no longer selects random sound changes for languages. We know this may upset some people, however these random sound changes were never actually based on good data about likely sound changes from real-world languages. Even how many random changes each language should have was a bit of a wild guess. At best, this was slightly misleading, and at worst it sometimes generated poor sound changes.
  • Fixed: Settings file now saves as .txt instead of .vulgar in order to fix .vulgar files being unrecognized on iPhone devices.


4 May 2021


  • Word Patterns can be multiplied to make them more probable, just like how phonemes can be multiplied, e.g. SSS*3 is a shorthand way of writing out SSS three times
  • Ability to write = -Random to make a random suffix vs = Random- to make a random prefix


  • Hanging issues when custom Derived Words are missing the equals sign
  • Sound change rules adding diacritics to phonemes that already have that diacritic, e.g. V > [+long] adding long symbol to vowels that already have the long symbol
  • Sound changes to something that takes away a diacritic not working, e.g. > [-long]
  • Unable to make a word in word table or affix literally be “random” without it randomizing the output. Note that the correct way to randomize the output it capitalize it as = Random
  • Some issues with Second Spelling Rules with “in environment of” conditions
  • Some issues with file names of HTML/PDF download
  • Removed small caps ᴅ from alt keys (no longer used)
  • Spaces written inside square brackets in Illegal Combinations no longer behave as a separator for a new rule. Eg you can write C[V +high] and program won’t think its two patterns of C[V and then +high]


15 April 2021


  • Bound Roots now use the br for the part-of-speech instead of r, eg water : br, since not all roots are bound roots.
  • Add Grammar Table button now automatically changes “command” to “imperative”, and “distant past/future” changes to “remote past/future”. These are the terms that linguists use


  • Bound Roots not being saved into settings files
  • Ban same syllable twice in a row not working
  • Advanced Word structure: unable to add segments that don’t make up a complete phoneme (eg tone symbols by themselves) to an uppercase class
  • Tone buttons and Alt Keys not working when tone is represented as superscript numbers or diacritics
  • Load Language: .text files not discoverable in input dialogue screen
  • Some heading size issues in grammar section
  • Uppercase C not matching pre-nasalized stops and affricates with tie-bar
  • Arrange Phonemes In Naturalistic Ranking not arranging diphthongs correctly


30 March 2021

  • Fixed: issue where some permissible consonant-vowel combinations are never generated in words
  • Fixed: word for “male” being given neuter gender by default (whoops)


13 March 2021

  • Remove Diphthong Symbols option is now checked off by default. This highlights the importance of using the diphthong symbol when using Advanced Word Structure — two vowels next to each other are not automatically converted into a diphthong in AWS!
  • Stand alone combining diacritics in spelling rules can be attached to the dotted circle symbol (◌) so that the symbol is not floating mid-air, eg: ◌̃ > n
  • Added generic rising and falling buttons to Vowel Tones, and ability to use corresponding diacritic symbols: ◌̌ ◌̂
  • Fixed: automatic spelling rule issues with tie-bar affricates and long vowels
  • Fixed: spelling rules sometimes ordered differently between randomly generating them and pressing Edit This Language
  • Fixed: /ẙ/ not recognized as a valid vowel
  • Fixed: Advanced Word Structure unable to make word patterns for numerals (as a part-of-speech pattern)
  • Fixed: sound changes for final match “>>” not matching diphthongs correctly


19 February 2021

  • Changed default font so that it matches the IPA fallback font a lot better. Also fixes some very minor rendering problems in Firefox.
  • Grammar Editor: formatting for grammar tables has changed, however the old formatting still works (no need to update your old settings files!). AFFIX TABLE is now TABLE TYPE = affix, WORD TABLE is TABLE TYPE = word, etc.
  • Grammar Editor: {{double curly brackets}} now also pull conlang words from the dictionary. Curly brackets find single entries, eg: if there is a single word for 2nd person plural pronoun, {{you all}} would pull it, whereas round bracket method treats each word as separate, so ((you all)) would pull the single word for “you” then “all”.
  • Grammar Editor: fixed empty code blocks displaying incorrect error message
  • Word Structure Analyser converts uppercase letters to lowercase. Since you should be using IPA anyway, uppercase letters can be assumed to be indented as lowercase IPA.
  • Added more random polysemy
  • Fixed: Polysemized words may end up with wrong part-of-speech
  • Fixed: contour tones not combining properly in Vowel Tones field
  • Fixed: some mobile browsers auto-converting regular keyboard spaces to non-line-breaking spaces, which ruins some of the custom code for Grammar Editor, Add/Remove words, etc.


9 February 2021

  • Added border color change around the app for when a language is in edit mode or has been loaded vs. a language that has not in edit mode or has not been saved in any way
  • Custom words can be added without a part-of-speech. The generator still warns you that the POS is missing, however this can be useful for users who are experimenting with a word list and haven’t had time to add part-of-speech information
  • Improvements to derived word function: in cases where the conlang word has polysemy, a derived word formula now always pulls the conlang word that uses the target English word as the first definition (where previously it was possible to pull a conlang word that has the English word not the first definition)
  • Added more random polysemy
  • Fixed: Grammar Tables unable to display χ properly
  • Fixed: minor updates to bring Demo version inline with Full/Pro


19 January 2021

  • Sound Changes: backtick (`) has been replaced by using curly brackets to capture multi symbol patterns that have subscript numbers after them. For example: what was previously `CV`₁`CV`₂ > `CV`₂`CV`₁ is now {CV}₁{CV}₂ > {CV}₂{CV}₁. This is because we wanted subscript numbers to be able to be used with curly bracket sets, eg: {t,l}₁ > {t,l}₁{t,l}₁
  • Sound Changes: added ability to use subscript numbers after distinctive features, which means that something like this is now possible to do: [C +stop]₁[C -stop]₂ > [C -stop]₂[C +stop]₁ / V_
  • Smart Translator now only translates the first sentences given to it (where previously it would simply fail to translate at all)
  • Added warnings for when cell information for Grammar Tables are missing or not formatted properly
  • Fixed: σ* not working in Sound Changes
  • Fixed: clicking Edit This Language or saving a language with Remove Translations selected causes HTML to populate into Add And Remove Words
  • Fixed: clicking Edit This Language with Equiprobable frequency selected does not make phonemes populate to Word Structure
  • Fixed: unable to re-loading a settings file after it’s already been loaded into the program
  • Fixed: custom font not being used in double brackets and Numbers section
  • Fixed: some issues with sound change rules with word boundaries inside curly brackets
  • Fixed: syllabic consonants not working in Advanced Word Structure


9 January 2021

  • Legacy uppercase shorthand phoneme classes are no longer supported as they are non-standard in linguistic literature. Use distinctive feature notation instead. Only valid classes are C for consonant, V for vowel, and X for any phoneme
  • Sound changes: added ability to target particular [+/- stress] vowels, eg [i +stress] targets a stressed /i/
  • Added information about the uses of articles
  • Added more random polysemy
  • Sound changes: -> now equivalent to > (which is also equivalent to writing )
  • Fixed: Illegal combinations not warning you about invalid patterns
  • Fixed: alt key for secondary stress not working
  • Removed Show Frequency Stats option for consonants and vowels. This was mostly needed in older versions of the program just to have the frequency order of randomly generated inventories so that the same word structure could be reproduced later. Edit This Language now covers this function.


28 December 2020

  • Sound changes: Added stress as a distinctive feature, eg: [V +stress] or [V -stress]. This enables you to make changes such as turning unstressed vowels in schwas: [V -stress] > ə. Note that this feature works in Sound Changes but not in affix rules (known bug).
  • New option to chose whether derived words are saved to the derived words field or mixed in with Add/Remove words
  • Fixed: no spelling rules generated for long consonants
  • Fixed: cursor placement issues in Grammar Editor using IPA buttons
  • Fixed: some issues when using semi-colons in affix rules
  • Fixed: LaTeX file not creating dictionary subheadings for digraphs
  • Minor fixes to Demo version


12 December 2020

  • Added Upload custom font feature
  • Added support for sound changes to change to multiple features, eg: C > [-voice +nasal]. Learn more on the sound change guide
  • Vulgar has reverted back to using keyboard g instead of the special IPA symbol ɡ because we realized that the International Phonetic Association considers them both to be valid. Although the use of ɡ is somewhat common, it can cause unnecessary confusion given that most people aren’t aware it’s different to the keyboard g. Old settings files will be automatically converted.
  • Fixed: sound changes in grammar tables unable to do any featural changes


25 November 2020

We’re doing a new major version because of a few changes to Sound Change notation (which includes spelling rules). The changes are being made to in order to use the same notation that linguists use for optional patterns (round brackets). This means we’ve had to shift around how some other notation works to make things work. Although small changes, if you used any of the following, you will need to update your rules, or continue using version 9.

  • As mentioned, optional patterns will now be in round brackets instead of using the question mark: what was a > e / _C?# is now a > e / _(C)#.
  • Star symbol * still makes an optional pattern mean zero or more of that pattern. Although this is not the convention used in linguistic literature, it is extremely useful, as the alternative is to define the maximum number manually, e.g. (C)(C)(C)
  • You can now use subscript numbers (₁₂₃₄₅₆₇₈₉) after an uppercase shorthand letter to mean the same phoneme as the other one, eg: b > p / V₁_V₁ means change b to p between two of the same vowels. Compare with V_V which means between any vowels, same or different. For ease of typing, regular numbers also work e.g. V1_V1.
  • This new subscript number method was previously achieved in Vulgar with what is called “backferences”, which used numbers to refer back to what was captured in round brackets, eg: (V)(V) > 21 swaps the first and second captured vowel in a row around. Under the new system, this would be V₁V₂ > V₂V₁. You may also subscript a whole pattern by enclosing it in backtick (`) quotes: `CV`₁`CV`₂ > `CV`₂`CV`₁
  • Additionally, previously the number zero 0 replaced the whole match with itself. This is now the at symbol @ on its own.
  • Advanced Word Structure: To change probability of optional pattern, write a(S)50% makes the S pattern appear 50% of the time.

Other new features:

  • Fixed: Sound Change Notation not working in Second Spelling option
  • Improved slow generation time when using Second Spelling option
  • Null symbol is now the correct ∅ symbol, instead of the Scandinavian letter Ø. Legacy settings files will be auto converted.
  • New Alt keys: added null symbol ∅ to “O” key, and subscript numbers ₁₂₃₄₅₆₇₈₉ to number keys


31 October 2020

  • Fixed: Expand editor to fit content not always expanding to correct height. Button moved up to where the other editor settings are
  • Fixed: formatting issues when “example-word” does not exist in grammar tables
  • Fixed: Grammar Editor font sizes not working in final output
  • Fixed: formatting issues with aspect heading sizes in Grammar Editor
  • Fixed: example sentence sometimes pulling wrong parts of speech
  • Added more random polysemy


20 October 2020

  • Removed Generate this seed’s language button. The seed number method is notoriously unreliable for regenerating the correct language, and despite warnings not to rely on it, many users did mistakenly rely on it. This will encourage users to save a settings file. This button was only there for legacy reasons and is not really needed anymore.
  • Fixed: language file not saving properly when changes are made to the language without regenerating the language before saving
  • Fixed: some issues with “exceptions to” sound change rules
  • Fixed: Turn Off Smart Translator becoming unselected after generating new language
  • Added null symbol to IPA buttons
  • Minor scrolling and performance improvements in Chrome and Edge


14 October 2020

  • Added more random polysemy
  • Fixes to mobile layout
  • Fixed for Chrome 86: cancelling Save This Language still downloading a settings file
  • Format improvement to downloadable HTML file


4 October 2020

  • Changed settings file extension to .vulgar
  • Loading a language changes the browser’s tab title to the language name
  • Added ability to custom multiply noun gender proportions. EG: Feminine*10 makes Feminine 10 times more likely than other listed genders
  • In response to some users getting the formatting wrong, = Random can now be written in all caps as = RANDOM
  • Added more random polysemy
  • Fixed: gender proportions not dropping off naturally when you don’t add a multiplier to them
  • Fixed: unable to have custom genders that contain extended Latin characters in the abbreviation
  • Fixed: format issues in the grammar tables when an example-word is not given
  • Fixed: lateral affricates not showing in consonant chart


27 September 2020

  • Hovering over Affix buttons in Derived Words sections display what the affix tag actually is
  • Removed “undefined” from the default example sentence in cases where not all the words were generated. Often users edit the Grammar Editor and do not create a pronoun table. This means “you” and “your” are “undefined”, which is often erroneously interpreted as being a bug. It’s easier to hide the issue and let the user discover there is not word for “you” when they try to translate something themselves.
  • Added missing sound change options [+ATR], [+RTR], [+palatalized], etc.
  • Fixed: [+long] not working as a sound change
  • Fixed: Your Phonemes not appearing after loading a language
  • Fixed: entering keyboard ‘g’ not translating to IPA ‘g’ in Your Phonemes
  • Fixed: Arrange phonemes in alphabetical order now sorts IPA symbols better
  • Dropped support for Tumblr theme. This is still available for older versions of the program


23 September 2020

  • Translator: hovering over affixes in gloss displays an expansion of what the abbreviation means
  • Added ability to apply “example-word =” to a single cell, eg: “example-word F.SG = cat”, instead of just one whole row/column
  • Remove diphthong and tie bar diacritics now only removes diphthong symbols
  • Added more random polysemy
  • Added prenasalised symbols ᵑ and ᵐ to alt keys
  • Fixed: Smart translator not loaded after generating second language
  • Fixed: prenasalised stops not appearing in consonant chart
  • Fixed: ʔ͡h not appearing in consonant chart
  • Fixed: adding null symbol Ø to illegal combinations causes hanging issues


11 September 2020

  • Grammar editor: added ability to insert regular blank tables (that don’t necessarily have to have anything to do with grammar) using Markdown format. See guide
  • SUFFIX and PREFIX tables: when custom defining the affixes, if you forget to add the ‘-‘ it will be filled in automatically
  • Derivational affixes: TO.CREATE has been renamed a little more generally to NOUN.TO.VERB; LIKELY.TO have been renamed to TENDING.TO — this will not affect previously generated languages
  • Fixed: Vowel Probabilities disables when Advanced Word Structure is selected (since it doesn’t apply in this case!)
  • Fixed: issues with Insert Grammar Table not capitalizing “1st”, “2nd” and “3rd” properly
  • Fixed: spelling rules that don’t actually apply a change, like “e > e”, don’t show up in spelling table


30 August 2020

There have been a lot of format changes to Vulgar in the past few months. Yet again, we have some small changes to Phonological Rule Notation (PRN). Vulgar will convert your old settings to the new version (although there may be some edge cases where things go wrong).

What’s the change? Previously, PRN used round brackets to mean an “optional” pattern, eg: o(C) > u meant “o (and an optional C after it) change to u”. Now, PRN aligns with how RegEx does optional patterns — by adding a question mark after the pattern, eg: o(C)? > u.Why the change? PRN converts to RegEx behind the scenes. In RegEx, round brackets are simply a way of grouping a pattern. Once grouped, there are various different things that can be done to the grouped pattern, beyond just making it optional. By aligning closer to RegEx, we can leverage some of its other features in PRN (such as backreferencing).Furthermore, Vulgar has been using both PRN and pure RegEx in different areas of the program. This is kind of confusing! PRN is more familiar to conlangers, so in version 1 of Vulgar PRN was the only option that we gave to users. But we soon discovered that PRN had problems: It’s never been properly standardized by anyone; it’s just a convention that linguists use in literature, and is rarely actually tested in computer programs. This has lead to some small inconsistencies in how it’s written. But it also lacked a few standardized ways to do things that RegEx has already has already solved for us. So we quickly allowed users to leverage the power of RegEx in spelling rules and affix rules. Despite this, PRN was what your used in the Sound Changes field, because the way it does “in the environment of” changes is much easier for beginners to wrap their heads around.Moving forward, we are going to start encouraging this new (ever so slightly modified) version of PRN as the default way of doing everything: Sound Changes, Spelling Rules and in Affix Rules. Because it can now be used in more than just phonological rules, we are opting to call it more generically “Sound Change Notation”. The important thing to remember is that SCN still always coverts to RegEx behind the scenes, so you can always use RegEx if that’s what you’re used to! In the Sound Change field, you no longer need write “re ” to signify a proper Regex rule.Other changes

  • Derived words: you can now make derived words that act as root words that don’t go into the dictionary, by using the part-of-speech ‘r’. These can be used an intermediary words in other derived words. Eg: you might want to compound some words and then apply a sound changes after the compounding has already happened. This requires two steps, because if it was done in one rule, the sound changing affix would affect only one of the words.
  • What was previously labelled Apply changes is now labelled Apply as permanent changes


26 August 2020

  • Fixed: sound changes not working inside grammar tables
  • Fixed: automatic spelling rules sometimes doubling a diacritics for long vowel rules
  • Fixed: Second spelling not doing rules with stress symbol in them
  • Fixed: ʥ ʨ not appearing in consonant chart
  • Fixed: some IPA symbols with diacritics not displaying in correct column, eg: d̪ not displaying in dental column
  • Fixed: Consonant table – multiple phonemes with diacritics in the same cell may cause voiced / voiceless ordering to be wrong
  • Fixed: style issues with downloaded HTML file (some fonts and table borders)
  • Format change: shorthand rule ᴰ (superscript D) now stands for “any diacritic”, whereas D stands for “any IPA letter without diacritics”
  • Regex: new simplified way to do backreferences — instead of writing $1, $2, etc. you just write 1, 2, etc. Also, you can write 0 instead of $& to replace with the whole match.


21 August 2020

  • Added ability to use grammatical affixes in Derived Words field
  • When using grammatical affixes, there is no need to add the part-of-speech (eg :N) unless it’s actually require for disambiguation from other affixes
  • Advanced Word Structure: if you do not enter any default patterns, it uses all the patterns for parts-of-speech as default patterns
  • Advanced Word Structure: added warning if you don’t enter any affix patterns
  • IPA symbols scroll with screen reduced in size so that it isn’t covering as much of the screen
  • Fixed: IPA symbols scroll with screen not working on mobile
  • Fixed: ŋɡ not getting correct spelling
  • Fixed: hanging issues when no vowels entered into Custom Phonemes or Word Structure
  • Moved location of the two options that only apply to “Custom Phoneme” and not “Word Structure” — those being Add random phonemes to custom selection (upon generation) and Max consonants before and after vowel


15 August 2020

  • Grammar Editor: when using Insert Grammar Table, the capitalized abbreviations of grammatical properties are now automated. EG: writing “singular” automatically converts to “SinGular”
  • Format change: Vulgar now uses proper IPA symbol /ɡ/ instead of /g/. The old g will convert to ɡ where appropriate. This does not break compatibility between versions.
  • Edit This Language: derived words are entered into the derived words field, instead of mixed in the Add and Remove Words field
  • Fixed: derivational affixes not resetting to “= Random” upon refreshing Firefox browser, potentially causing affixes to have incorrect phonologies
  • Fixed: “inclusive” and “exclusive” used wrong abbreviation
  • Fixed: double brackets method to capture pronouns not pulling the correct version of that pronoun in some cases
  • Fixed: double brackets unable to translate compound words
  • Fixed: default spelling rules sometimes having ordering issues
  • Fixed: clicks not displayed in phoneme table
  • Fixed: explanation of Absolutive case
  • Fixed: when adding two custom words that both equal the same conlang word, the generator would re-generate one of them thinking that you want unique words only
  • Fixed: Add and Remove Words not replacing randomly generated word, when the English definition has brackets in it
  • Fixed: some sound changes with diacritics not working when it changes to a feature, eg: x̃ > [+voice]


30 July 2020

  • Added Smart Translator
  • Format change: names of grammar affixes now make a more obvious delineation between the part that indicates what part-of-speech the affix is intended for. So, VERB.PAST is now just PAST*. This change has been done to make it easier for the Smart Translator to understand where affixes should go.
  • Format change: all abbreviations now conform to the abbreviations Max Planck Institute uses and Wikipedia
  • Grammar Editor: when creating agglutinative languages, changing the order of the affix tables in the grammar editor changes the order the affixes are applied in the Smart Translator
  • Manual translator: added the ability to insert grammar words (in upper case) to target specific words, eg: nominative “you” vs accusative “you”
  • Fixed: /w/ incorrectly labelled as labio-velar instead of labial-velar
  • Fixed: affixes that act like words (where the hyphen is separated from the affix by a space) not working in translator
  • Fixed: no translations for article affixes in tables
  • Fixed: affixes with numbers in them not working inside double brackets

* PAST = inside the grammar table and then -PAST:V if you need to use it in the manual trasnlator.


17 July 2020

  • Fixed: Advanced Word Pattern percentages not working for bracketed groups
  • Fixed: after selecting a natural language Word Structure and altering the phonemes, it no longer removes the whole spelling for that language
  • Fixed: No Fixed Stress option creating inconsistent stress locations in translator and in sound changes in square brackets
  • Fixed: Regex patterns with uppercase V and numbered backreferences (eg, $1, $2) not working in some cases
  • Fixed: adding too few phonemes sends an error message that not enough phonemes were added, even when “Add random phonemes to custom selection” is checked
  • Fixed: incorrect probabilities for Perfect aspect outcomes
  • Fixed: no translations given in verb tables that combine person with tense
  • Fixed: spelling issues in English and Portuguese
  • Fixed: format issues caused by using ((double brackets)) inside grammar tables and Show changes between [square brackets]
  • Fixed: Arrange Korean Jamo Characters Into Syllables not working with Second Spelling
  • Fixed: unable to add grammar tables that consist only of columns


9 July 2020

  • Format change: Sound Changes use Phonological Rule Notation (PRN). However, in previous versions, omitting the “in the environment of” symbols (/ _) turned into Regex notation. Unfortunately, this meant it was impossible to do PRN rule that applies everywhere in the word (which is common for evolutionary rules). Now, if you need to write a pure Regex rule, write “re” before the rule e.g. “re p > f”
  • Added Ban same syllable twice in a row
  • Advanced Affix Patterns: can now do patterns that use conditional statements, or sound changes.
  • Derived words: a special affix -AFFIX can be added to words, which creates a different random affix every times it’s used. This can simulate one-off affixes, like how “island” is clearly related to “land” but the prefix “is-” does not exist in any other words. -SUFFIX and -PREFIX are also available.
  • Affix rules: Ability to match multiple conditions in an affix rule using & symbol; eg IF #V & V# THEN … means if begins and ends in a vowel, then apply the rule
  • Affix rules: Ability to do ‘not’ matches using !, eg: IF ! #m THEN … means if does not begin with m
  • Vocab: added more random derived words and compound words
  • Vocab: added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Shorthand symbols: added X for “any phoneme”
  • Settings file can be output with Show The Code option
  • Fixed: Second Spelling option causes errors with CSV export and LaTeX export
  • Fixed: words may form polysemy with the wrong word if the target word is included anywhere in the definition. Eg: if “assemble” is intended to combine with “prepare” it may combine with “cook (prepare food)” instead
  • Fixed: a phonological rule such as e → i changing any kind of e + any diacritic, even though e + any diacritic implies it’s a different phoneme
  • Fixed: “exception rules” like e > i / !_# don’t work if there’s no other environmental conditions (no other underscore)
  • Fixed: auto-translating morophological rules into English did not translate “>>” and “<<” sound changes correctly
  • Fixed: unable to do shorthand uppercase symbols with quantifying regex symbols eg: C+, C*, C{2}
  • Fixed: unable to hook the correct part-of-speech of a word in the translator using ‘:’, eg live:v vs. live:adj
  • Fixed: in translator, ability to use underscore with parenthesis, eg: to translate “our (excluding you)” you can write “our_(excluding_you)”
  • Fixed: spelling rule ([aeiou])(?=ᴅ*ː) turns into ([aeiou])LOOKAHEADᴅ*ː) after pressing Edit This Language
  • Fixed: alphabetizing issue with some compound words
  • Fixed: improvements to Firefox Desktop compatibility (version 78 and higher)


12 June 2020

  • Added Animate/Inanimate gender option (see Grammar > Noun Gender section)
  • Phonological rules: added ability to do exceptions to rules with ! symbol. EG: r → l / !_# means “r changes to l everywhere except at end of word”, t → ts / _i !s_ means “t changes ts before i, except after s” (Chrome browser only)
  • Glosses: ability to do intermediate lines for intermediate translations
  • Added Previous Seed option to regenerate the previous language in case you accidentally generate over it before saving it
  • Grammar editor: Added Expand editor to fit content
  • Shorthand symbols: added O for obstruent, R for sonornat/resonant, Z for continuant, and U for syllable
  • Vocab: added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Improvements to mobile layout
  • Text in translator is not cleared in between generating new languages; this makes it easier to test translate the same sentence over and over
  • Ability to add affix tags with full stop, eg “study.PAST.SG” as opposed to using hyphen “study-PAST.SG”. This does the exact same thing as using hyphen, however a full stop is the convention when representing a sound change, or some kind of morphology where the line between the root word and the affix is not so clear. The hyphen is the convention of representing a clear break between root and affix. Similarly, compound words and phrasal verbs such as “hang out” can be written as “hang.out” when attaching affixes, or in translator.
  • Fixed: Ergative/Absolutive languages give explanations for Nominative and Accusative cases
  • Fixed: after hitting Edit This Language, some spelling rules have diacritics stacked on top of each other
  • Fixed: vowel harmony causes long weird affix rules
  • Fixed: not generating a dedicated neuter pronoun if the language has neuter nouns
  • Fixed: perfect aspect word for ‘finish’ may be undefined
  • Fixed: HTML download not rendering fonts correctly
  • Fixed: adding Grammar Table when cursor is in the middle of another grammar table splits the grammar table in half
  • Fixed: Grammar Table Inserter changing rows (without cols or blocks) into cols
  • Fixed: cursor placement issues in translator when inserting affixes
  • Fixed: errors in Mandarin word structure
  • Fixed: Affix tag names can now use any Unicode uppercase letter
  • Fixed: Translator unable to translate English words with non-ASCII characters in them


13 May 2020

We’ve implemented a few format changes to make Vulgar a little more intuitive. You may have to modify some of your code to be fully work with 9.4, but moving forward we’re hoping to not have to make these kinds of changes again.


  • Vulgar is moving away from using the seed number to save the language! A new Edit This Language button saves the vocab to the Add And Remove Words section and the grammar to the Grammar Editor. This allows you to more easily edit a randomly generated language, and to port languages to newer versions of the app.
  • Grammar tables: axes 1, 2 and 3 have been re-labelled to “columns”, “rows” and “blocks”. These new labels preserve the layout — i.e “column” always makes a column — whereas the old numbered system always made the longest axis the rows. This change was made to better describe was it does.
  • Custom compound words: To create compound words that make one distinct word, now you use hyphen (-) instead of the plus sign: God of War : n = war-god. This change was made because affixes use hyphens, so now there is consistency between the two. To create compound words that make two separate words, you now use an actual space instead of the & sign: God of War : n = war god. (This means that when searching for an entry that comprises of two words, eg “hang out”, you have to write it as hang_out.)
  • Root words: previously you could create root words (that aren’t added to the dictionary but can be used in derivational rules) by adding them as !customRootWordName. Now you add them into Add And Remove Words with the special part-of-speech ‘r’. This change was made to make them align with how full words are added, and because ! has other meanings in Regex.
  • Previously, custom affixes used the > symbol to sound change the final match in the word, whereas regular sound change rules use the > to change every match in the word. For consistency, > now changes every match in custom affixes, whereas you have to use >> to change the final match, and << to change the first match.
  • Similarly, the > had been used in WORD tables to translate each table cell into English. This is now being replaced with the ~ sign. What used to be 1SG.NOM ~ I = yo is now 1SG.NOM ~ I = yo (1st person Singular Nominative cell is the word “I” in English, and the conlang word is “yo”). This change was made to reduce the number of meanings that ‘>’ has, and for easier machine readability.
  • Custom affixes with IF and ELSE statements can now be written on multiple lines (and with indentation) for improved readability. Previously, an explanation of the rule could be written in plain English by writing it on a new line directly below the rule. Now, you must write a double quote mark (“) to signal the start of the explanation. See example here. We have also added ability to do multiple independent IF statements (as opposed to just ELSE IF statements). To do this, separate IF statements by a semi-colon. See example here.

Other new features and bug fixes:

  • Vocab: added optional sci-fi vocab (Pro version only)
  • Vocab: added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Word structures: added Arabic, Hungarian, Indonesian, Irish, Mongolian and Zulu
  • Phonology: added separate table for co-articulated phonemes
  • Phonology: added more variation in randomly chosen consonant clusters. New algorithm also does more to limit excessive consonant clusters in single words.
  • Phonology: added ability to multiply phonemes by decimal numbers (up to one decimal number)
  • Grammar Editor: added system for doing manual glosses, see more info here.
  • WORD tables: conlang side of the equation can use double brackets to pull a word from dictionary (or from a previously generated table) using the double brackets: eg, in a table where you are creating possessive words 3SG.F ~ her = ((she)) means make the word for “her” the same conglang word as “she”.
  • Adding stress symbols to spelling rules automatically checks “Make spelling rules sensitive to stress symbol”
  • Phonological rules: Use sigma sign (σ) to mean “syllable” in phonological rules. This differs slightly from using the syllable boundary symbol (%). For example, g > k _σ would change g to k at the end of a syllable so long as another full syllable follows it (i.e. not at the end of a word). Whereas g > k _% would change g to k and the end of syllable and the end of a word.
  • Phonological rules: added ability to do sound changes that change from a null symbol, eg: Ø > e / p_k
  • Translator: when searching for an entry that comprises of two words, eg “hang out”, translator looks for “hang” and “out”, instead of “hang out”. To pull “hang out”, write it as hang_out.
  • Added new shorthand symbols: capital D = any diacritic, superscript ᴰ = any non-combining diacritic (such as aspiration), and small caps ᴅ = any combining diacritic (ones that attach to the phoneme)
  • Fixed: Translator unable to find words added via Grammar Editor tables
  • Fixed: loading settings with diacritics in grammar tables breaks the table
  • Fixed: Translator unable to find capitalized words in dictionary
  • Fixed: alphabetical order errors with compound words
  • Fixed: SUFFIX and PREFIX tables generate either affix if Advanced Word Structure is selected
  • Fixed: Regex lookbehinds not working in morphological rules
  • Fixed: sound changes that use places of articulation (eg: [+palatal], [+velar]) sometimes mapping to the wrong sound
  • Fixed: sound changes unable to have # symbol inside curly braces
  • Fixed: pure regex sound change rules starting with # symbol not working
  • Fixed: syllabic consonant symbol not attaching to the consonant
  • Fixed: text alignment, indenting and blockquote not working in final output from Grammar Editor
  • Fixed: unable to change fonts in Grammar Editor lists
  • Fixed: some incorrect phonemes in French and Spanish word structure
  • Fixed: various formatting issues in World Anvil BBCode
  • Fixed: having no mid-word consonants throws an ‘undefined’ error
  • Fixed: unable to define custom affixes if their abbreviation comprises of only a single character
  • Fixed: mobile devices autocorrecting three dashes ‘—‘ to ‘—-‘ in Grammar Editor (Vulgar now reads ‘—-‘ as a section break)
  • Fixed: refreshing window in Firefox not resetting default settings properly
  • Fixed: pressing ALT unfocuses you from the input box


1 April 2020

  • Removed Evolve Language option, since Sound Change option now does everything it can do and more. Sound Change applies to the grammar, Evolve button didn’t. From the survey we recently conducted, there is a lot of interest in better Evolution features in general. Moving forward, the process of evolving an language is probably going to focus on using the seed number and adding tweaks into the settings. Right now, I wouldn’t say that Vulgar evolves languages very well, since language evolution is a whole lot more than just sound changes, and the way to do that involves a lot of manual work. But improving the Evolution is going to be a future project.
  • Sound Change and spelling rules either side of an “or” bar symbol | can be multiplied to create a ratio, eg: ʃ > sh*3 | ch*2 | s is the same as ʃ > sh | sh | sh | ch | ch | s
  • Number system added to random grammar
  • Word Structures for natural languages now do spelling, and have more accurate frequency order
  • Added word structures for Welsh and Persian
  • Grammar Editor: you can now use three dashes — to create boxed off sections for your grammar in final output
  • Randomly chosen phonemes now vary in order of frequency. In previous versions, /m/ was always made more frequent than /k/. Now, this order may vary slightly, while still having tenancies to make common phonemes more common.
  • Translator: If a word is not in the dictionary, the translator now passes the word through, as is, instead of translating to ‘undefined’. This helps with translations that involve proper names.
  • Phonotactic Analyser name change to “Word Structure Analyser”; no longer treats any group of vowels as a diphthong, you must specify them with the diphthong symbol
  • Fixed: CSV file not exporting noun gender information
  • Fixed: HTML file not exporting English to Conlang side of the dictionary
  • Fixed: Some specific words could not be remove using Add/Remove Words
  • Fixed: “Apply default spelling rules as well as custom rules” not working
  • Fixed: Grammar tables not inserting at cursor location in Grammar Editor
  • Fixed: Warning that not enough phonemes have been supplied not working in some cases
  • Fixed: “Remove diphthong and tie bar diacritics” turning itself back on in some scenarios
  • Fixed: “Remove diphthong and tie bar diacritics” not applying to Translator and Name Generator
  • Fixed: Affricate shorthand symbol (A) not working
  • Fixed: Randomly chosen phoneme inventories sometimes having double ups
  • Fixed: No automatic spelling for cç and ɟʝ
  • Fixed: “Analyse word structure of your own language” not reading stress symbols properly
  • Fixed: “Analyse word structure of your own language” inserting the old multiplication symbol for phonemes
  • Fixed: Unable to make custom spelling rules that are conditional on diphthong symbol
  • Fixed: Diacritics that go above the IPA letter instead of below not showing up in final output


19 February 2020

  • Change: Alt key to generate new language is now ALT+Enter to accommodate for diacritics getting ALT keys. See full list here.
  • Added Unique Name Generator (under Translator)
  • Added Affix Patterns in Advanced Word Structure option
  • Custom affixes: if you want a null affix you now write “ADVERB =” instead of “ADVERB = -“
  • Grammar editor: added Cinzel and Alata as font options
  • New LaTeX template. See info here
  • Translator now lists other possible translations for words (previously it only displayed the first translation it found)
  • Translator can differentiate between a word with different parts of speech if you specify it. Example: “change:v” vs “change:n” for verb and noun forms respectively.
  • Tone can now be represented as diacritics (although this method is inherently more limiting, as it cannot represent contours)
  • Improvements to default spelling choices
  • Fixed: Advanced Word Structure syllable patterns could only equal one pattern, eg S = CV was valid, but S = CV CVC was not valid
  • Fixed: LaTeX output not working in 9.3
  • Fixed: removing default word from dictionary generating a slightly different dictionary even with seed number
  • Fixed: custom added nouns with gender sometimes not overriding the default word
  • Fixed: some spacing issues in grammar editor
  • Fixed: some words having wrong part-of-speech in CSV and PDF output
  • Fixed: word boundary # symbol not working in some instanced in affix/sound change rules.
  • Fixed: No Spelling option makes it so that the language can’t be exported to HTML/PDF/etc
  • Fixed: Latin-1 Supplement characters may be used in Affix Tag names, eg these ones: ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ
  • FIxed: unable to use $& in phonological rules
  • Fixed: custom affix names unable to start with a digit
  • Fixed: incorrect probabilities for Nominative/Accusative vs Ergaitive/Absolutive
  • Fixed: definitions with commas inside parenthesis splitting up English to Conlang definitions in wrong place in HTML and LaTeX output
  • Fixed: Translator outputting IPA incorrectly when using Show changes between [square brackets]
  • Fixed: HTML file having no table borders in grammar section
  • Fixed: Convert Spelling with Diacritics into Single Characters option not actually working


12 January 2020

  • Added ability to explain custom affix rules in plain English by simply writing it on the line below the rule. See example here.
  • Added Convert spelling with diacritics into single characters option. This converts a letter + diacritic combination into the single Unicode character (only if the character exists)
  • Added an expansion of part-of-speech abbreviations to the top of dictionary
  • Seed number auto-populates to Generate This Seed’s Language
  • Vocab: Added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Vocab: Added more default derived words
  • Derived words: Vulgar shows warnings if you spell an affix tag wrong (previously, it assumed you were trying to make a new random affix)
  • Grammar editor: Added Noto Sans as default font. Changed monospace font to Roboto Mono.
  • Grammar editor: Added ability to re-insert default Phonological Rules list
  • Word Structure: Added Swahili
  • Fixed: Adding a custom word that already exists in the default dictionary now stops that word from having polysemy with any other word. EG: custom adding “look : v” means it will never be combined with the same word as “see”.
  • Fixed: unable to derive a word from one part of speech to another part of speech without adding any affixes, e.g. study:n = study:v
  • Fixed: When defining advanced word patterns, the part of speech can be written in full like “noun =” (previously it has to be the abbreviation “n =”)
  • Fixed: ç being converted to c in final output
  • Fixed: incorrect audio for ʌ and ɔ
  • Fixed: ɥ not displaying in consonant chart
  • Fixed: changed font of grammar table to Noto Sans in order to be IPA friendly
  • Fixed: colon (:) not being converted to long symbol (ː) when used in grammar table affix rules
  • Fixed: some syntax errors in IF ELSE statements causing hanging issues
  • Fixed: some errors with phonological rules when phoneme converts to something that is made up two or more characters; also improved performance speed when applying phonological rules to the point that it barely slows generation time anymore
  • Fixed: translator not working if any bullet point lists are written in the grammar editor
  • Fixed: translator being unable to translate words if they are written with sentence case capitalization; this also fixes translator not being able to translate “I”
  • Fixed: second spelling alternating between first and second spelling for each in translator and compound words
  • Fixed: second spelling causing anglicized language to have a space in it
  • Fixed: potential issues with custom derived words applying affix to incorrect base word
  • Fixed: Remove Words sometimes not removing all instances of the word, also being unable to remove word entries with parentheses in them
  • Fixed: settings file not saving with .txt extension in Firefox
  • Fixed: Part of speech morphology: incorrectly displayed in derivational morphology list
  • Fixed: Users can no longer Word Patterns that make the whole pattern optional, as this may generate words with no phonemes at all. Such patterns are automatically filtered out before word generation
  • Fixed: positioning issues when clicking on and off some input boxes


6 December 2019

  • World Anvil collaboration: World Anvil now has the option to create searchable dictionaries, and Vulgar’s CSV output can be used to bulk upload your vocabulary into a World Anvil language!
  • Derivational affix changes: names of default derivational affixes have been changed to be better describe their function, and more rules have been added; derivational affixes now have their own input box; added option to not display list of derivational morphology in final output
  • Vocab: default color terms are automatically divided up differently. Eg: a language may use the same word for “yellow” and “red”, or “blue” and “green”, or may have dedicated words “light blue” vs “dark blue” as opposed to a single word for blue; added various other forms of polysemy
  • Advanced Word Structure: added ability to make word patterns for individual parts of speech
  • Removed requirement for affix tables to have a part-of-speech
  • Characters with precomposed diacritics (i.e. the ones on mobile keyboards) are now automatically converted to valid IPA
  • Added aspiration and other superscript IPA symbols (ⁿʷˠˤʲ) to the ALT key function
  • Fixed: ALT keys not cycling through IPA properly in Grammar Editor
  • Fixed: ALT+Equals not generating new language in Firefox
  • Fixed: CSV putting some translations in wrong column
  • Fixed: automatic spelling rules sometimes having ordering issues that would cause double changes to the spelling
  • Fixed: some custom added words not deduplicating if they are already in the default vocab
  • Fixed: illegal combinations sometimes not applying to the language name
  • Fixed: comma erroneously added after the part-of-speech of some entries in the dictionary
  • Fixed: issues with trailing white space in phonological rules


11 November 2019

  • Added ability to save language in BBCode format, which can be copy pasted in the worldbuilding platform World Anvil
  • Symbol to multiply phonemes has changed from = to *. The equals sign has too many other uses, and star * is used for multiplication in programming languages, so this makes more sense anyway.
  • Advanced Word Structure: Enabled used of * multiplication
  • Vocab: Added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Vocab: added possessive determiners (my, your, his, her, our their) which were sorely missing from the grammar section
  • Grammar editor: all default sections (phonology, spelling, example sentence, etc) are now automatically removed when using the Grammar editor, taking an ‘opt in’ approach instead of an ‘opt out’ approach
  • Translator: shows IPA under spelled sentence
  • Translator: improvements to translating words that aren’t exact matches in the dictionary, eg: definitions that have added information in parentheses
  • Translator: buttons that insert the affixes now insert at cursor location
  • Changed vowel table style to be easier to export to HTML / BB code
  • Fixed: If not enough Advanced Word Patterns have been entered to generate 4000 unique words, a warning message will display
  • Fixed: another possible hanging issue caused by having a small phoneme inventory
  • Fixed: bug where conlang words couldn’t be assigned more than two English words as translation
  • Fixed: not using Anglicize language name in some parts of the output


12 October 2019

  • Advanced Word Structure classes can be multi-phoneme strings eg: A = ari los ma. Previously they could only be made up of single phonemes all separated by a space
  • Grammar editor: Using double brackets to pull word from dictionary now returns just the spelling of the word with no formatting
  • Fixed: Vowel Probabilities causing hanging issues
  • Fixed: Display issues with shorthand symbols in spelling rules & Apply default spelling rules as well as custom rules checked
  • Fixed: Issue with ALT keys sometimes not populating to Grammar Editor
  • Fixed: Advanced Word Structure showing incorrect syllable structure and phoneme frequency info in final output
  • Fixed: Advanced Word Structure not showing “Your Phonemes” list in Spelling section


2 October 2019

  • The new Advanced Word Structure: What was previously “Advanced Word Structure” is now called “Word Structure” and the new Advanced Word Structure is a whole new method of defining words, which enables you to define phoneme classes and how they pattern in words. This gives you even finer control over the formation of words, specifically of how syllables are formed.
  • Spelling rules: added Arrange Korean Jamo characters in syllables. For people using the Korean script, you can now map IPA symbols to Hangul Jamo letters and they will combine into correct Hangul syllables in the final output
  • Vocab: Added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Settings file: now saves with date and time in file name
  • Fixed: clicking “naturalistic ranking” or “natural with randomness” auto-checked “fast dropoff” even when “medium” was checked
  • Fixed: cursor placement of Your Phonemes buttons in custom spelling area
  • Fixed: Adding words with += method producing wrong word
  • Fixed: Save as Custom Words Format no longer uses += method, which means you don’t have to check Remove all default words (although it’s advisable)


8 September 2019

  • Phoneme frequencies changed to Dropoff rate, which is now a choice between a fast, medium and equiprobable dropoff. What was previously “Naturalistic” is now labelled “fast” and the default is “medium”. Although “fast” uses formulas based on actual research on ranked phoneme frequency, I was finding it a little unsatisfying with long lists of consonants clusters, because the right-most entries were so rare that they never even appear in the dictionary.
  • Settings file saves with language name in filename
  • Fixed: Various styling problems with the final output of the Grammar Editor
  • Fixed: Custom words not overriding words that happen to be in the default derived word list
  • Fixed: Custom conlang word will not be randomly generated for another English word
  • Fixed: Derived word missing from vocab in evolved languages
  • Fixed: Issues with saving checkboxes to settings file
  • Fixed: Your Phonemes sometimes not behaving as expected
  • Fixed: Words appearing in sample sentence as “undefined”
  • Fixed: Minor styling problems with Save file as HTML


20 August 2019

  • Vocab: Added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Gramamr editor: Re-inserting default grammar sections now uses the black code block format instead of ((double brackets)) and there’s buttons to insert them automatically.
  • Gramamr editor: Added ability to remove default Spelling and Phonology section. This allows for maximum customization of the documentation of your language; you are not longer restricted to the default way that Vulgar presents the information. Also added ability to re-insert Consoant table, Vowel table, Spelling table into your custom documentation.
  • Gramamr editor: You may add affixes in double brackets when pulling words from the dictionary, eg: ((dog-NOUN.PL)). This can be done so long as the affix has already been created in a table above it. Affixation can also be used in the ‘inflect =’ part of the affix table, eg: inflect = dog-NOUN.TO.ADJ. This feature has actually exited since 9.1 but was accidentally not advertised.
  • Affix tables: Added ability to inflect different word based on gender. Writting ‘inflect M = dog’ only applies to word ‘dog’ to masculine cells in the table. See guide for more.
  • Affix tables: Added ability to specify what the inflected example translate to inside the table using the same method as in Word tables, eg: ‘NOUN.SG > dog’ and ‘NOUN.PL > dogs’
  • Affix tables: Randomly generated tables now automatically deduplicate words/affixes within in the table.
  • Gender: in a language with Masculine and/or Feminine gender, gendered words (such a man/woman, brother/sister, king/queen, etc) now automatically take the correct gender
  • Illegal Combinations: Adding a single phoneme to Illegal Combinations now removes it from vowel/consonant chart; acts as a blacklist for phonemes when letting the program decide
  • Custom vowels: Any consonant can be added to the edges of vowels to make a diphthong. Where previously only semivowels were valid, now something like ‘ar’ counts as a valid vowel
  • Removed Phoneme Frequencies “random” option because it performed basically the same function as Arrange Phonemes In “natural with randomness”
  • Fixed: Pronunciation and spelling being listed in wrong columns when using custom spelling
  • Fixed: question mark appearing in spelling rules table when tie bar is present anywhere in phonemes
  • Fixed: only first syllabic consonants in custom vowel input box showing up in word generation
  • Fixed: unable to control syllabic consonant frequencies
  • Fixed: syllabic consonants not populating to Your Phonemes section
  • Fixed: Ban same vowel twice in a row not working for syllabic consonants
  • Fixed: Ban same vowel twice in a row not working for 2nd vowel group
  • Fixed: Ban same vowel twice in a row not working for half long, extra short, double long, and in some diphthongs with length symbols
  • Fixed: Phonotactic Analyser not inserting phonemes in correct frequency from left to right
  • Fixed: Arrange phonemes in removing diphthongs with semivowels
  • Fixed: Certain combinations of consonant clusters at end of word being cut off in IPA
  • Fixed: Random grammar tables having underscores in the headings
  • Fixed: Noun section appearing even when it has no information
  • Fixed: Tone information not being documented in Vowel section of final output
  • Fixed: Shorthand symbol for stop (S) matching affricates with tie bar
  • Fixed: Shorthand symbol for diphthongs (M) not matching triphthongs and some diphthongs with length symbols
  • Fixed: Part-of-speech morphology sometimes not working


23 July 2019

  • Added new Rich Text Editor for Free Form Grammar (renamed to “Grammar editor”). Note that this may make previous settings files incompatible with 9.1
  • Added more random polysemy (where one conlang word translates to two or more different but related words in English)
  • Added ability to click into input boxes without having to manually click the on/off slider
  • Added ability to pull dictionary words into anywhere in the Grammar Editor using ((double brackets)). EG: Writing ((dog)) anywhere in a paragraph pulls the word for dog from the dictionary.
  • Phonological changes: Added Show changed form separately [between square brackets] option, which is now unchecked by default. When unchecked, the phonological changes get applied to the IPA between the forward slashes, and no sqaure bracket version is shown. Additionally, the final spelling works from the changed form of the word, so the spelling rules may need to account for those changes. However, when checked, it works exactly the same as it used to be.
  • Removed Illegal combinations are sensitive to stress symbol. It now automatically checks each rule for stress symbols, and adjusts accordingly.
  • Change alphabet order can be used without having to select Custom spelling
  • Added more phoneme arrangement options
  • Added support for all non-standard secondary articulation IPA symbols, now that the new Noto font has fixed the sizing for them. They won’t get their own buttons, but they can always be copy-pasted in.
  • Added support for superscript symbols to be pre-articulation, such as ᵐb ʰt
  • Added stress symbol buttons in Extra articulation symbols
  • Tweaks to various consonant probabilities to be better reflect real world data
  • Adding a diphthong diacritic or tie bar diacritic to custom phonemes automatically unchecks Remove diphthong and tie bar diacritics
  • Changed “affricate tie” symbol to “tie bar” (it’s not always used with affricates)
  • Insert new grammar table has suffix and prefix checkbox
  • Changes to automatic spelling choices: retroflex consonants spelled with underdot
  • Added Show frequency stats options. This will allow you to tweak the frequencies on some phonemes while still keeping the naturalistic dropoff rate mostly in tact
  • Fixed: default spelling incorrectly putting diacritic markers on short vowels when there is a long-vowel equivalent
  • Fixed affricate shorthand symbol (A) matching non-affricates that have a tie bar
  • Fixed affricates that use tie bar not showing up in consonant chart
  • Fixed double-up affricate tie bars when they have been added manually
  • Fixed issues caused by trying to remove words that aren’t in the default dictionary
  • Fixed issues with long symbols (ː) being removed from output
  • Fixed Evolve button changing alphabet order and not obeying custom alphabet order
  • Fixed issues with semivowels in diphthongs, which could cause incorrect affixes and double up words.
  • Fixed vowel tone buttons adding contour lines when superscript number option is selected
  • Fixed some hanging issues relating to Phonological Rules
  • Fixed curved apostrophe symbol being confused with ejective symbol. Curved apostrophe symbol is now automatically converted to ejective symbol.
  • Fixed Ban same vowel twice in a row not banning double-up diphthongs
  • Fixed bug where using $& in affix rules causing display issues in the affix tables
  • Fixed PDF subtitle resetting to “A definitive dictionary” after each new language
  • Fixed Change alphabet order sometimes making minor ordering errors
  • Fixed randomly generated affixes not accounting for vowel harmony
  • Fixed bug when removing words: some words could not be removed if they always appear with another word (eg: “buy, purchase”)
  • Fixed being unable to put shorthand (uppercase) symbols inside RegEx square brackets
  • Changed to US spelling for default dictionary (the Oxford style spelling seemed to be satisfying no one, since its kind of a mix of British and US spelling)


29 May 2019

  • Format change: WORD TABLE’s default definition is now All abbreviations translate to, and it comes out in the code a little different.
  • Format change: In order to weight the probability of phonemes, you now have write p=3, instead of p3 (to make /p/ three times more probable, for example). This is to improve readability. Writing the phonemes out multiple times is still an option.
  • More work on derived words. Trying to move away from always doing things how English does things. For one of many examples: “beautiful” may be derived from the base word “beauty”, as English does, or the other way around where the base word is “beautiful”, as Spanish does. This is an ongoing thing!
  • Removed various unintentional double-up words in default dictionary (note: some double up words are intentional! English may have two words for the exact same concept “woods” and “forest”. Vulgar sometimes simulates this phenomenon)
  • Fixed word final consonants not working
  • Fixed Vowel Probabilities at end of word not working
  • Fixed bug where grammar changed when adding new words to existing language
  • Fixed issue where custom added conlang words could not be two words
  • Fixed bug where various default words may not end up in the final dictionary
  • Fixed Free-Form-Grammar underscores appearing in table headings
  • Fixed bug where some diacritics could end up in dictionary even when not supposed to
  • Fixed some diacritic placement issues. Some diacritic buttons populate above or to the side of phonemes with descenders: eg m̥ vs ŋ̊, and b̟ vs β˖
  • Fixed Free-Form-Grammar spacing issues between headings and paragraphs
  • Fixed minor typos in grammar section
  • Removed pop-up questions marks from HTML output file


12 May 2019

  • Free Form Grammar changes: you now have to write axis 1 = instead of just 1 = (and same for axis 2 and 3). This is so that 1 = can be reserved for when an affix abbreviates to just the number 1, like for ‘1st_person’. Additionally, labels can have an underscore, which will be replaced with a space in the table column/row.
  • Free Form Grammar: added ability to individually re-insert randomly generated sections into the free form grammar by writing ((Nouns)), ((Verbs)), etc. This allows you to pick and choose which sections you want to customise, without having to re-write the whole grammar.
  • Free Form Grammar: Writing ((Langname)) will be replaced with the anglicized language name (useful if you don’t know what the language name will be ahead of time).
  • Free Form Grammar: You can now write SUFFIX TABLE and PREFIX TABLE (in place of AFFIX TABLE) to specify which -fix the whole table should be. Force all affixes to be… option will only apply when not using Free Form Grammar, or to AFFIX TABLE.
  • Added Ergative/Absolutive cases to randomly generated grammar
  • Added more polysemy possibilities to vocabulary
  • Added ability for tone to be represented with superscript numbers ¹²³⁴⁵ (1 being extra low, 5 being extra high). Although this is not standard IPA, it seems to be what conlangers use more often, since very few fonts support the contour lines. It’s probably less ugly too. Also removed contour line buttons, as these were not an exhaustive list (pretty much any combination of tones is possible). But you can easily create the contours by adding them together.
  • Changed singular affixes to generate as “no affix” in most instances
  • Added various options to remove elements from the final display: Remove all translations (still generates conlang words), No spelling and Remove forward slashes around IPA
  • Improved dictionary alphabetization: dictionary no longer sorted by Unicode order. Unicode does dumb things like puts capital Z before lower case a. Vulgar now uses the browser’s language settings to alphabetize; capitals will be correctly ordered, and it even puts most of the IPA in more intuitive orders, like æ comes in between a and b.
  • Fixed Change alphabet order producing ordering errors when not all letters are specified. You can now enter a partial letter list: letters given will be ordered first, letter not given will be ordered based on browser’s language settings
  • Fixed Noun Case input box not working
  • Fixed Noun Cases and Noun Genders not saving to settings file
  • Fixed not being able to specify no noun genders
  • Fixed Illegal Combinations not applying to the language name and free form grammar words
  • Fixed input box height issue with Firefox
  • Fixed warning error message sometimes popping up for no reason
  • Fixed Vowel Probabilities resetting to default values when toggling on and off
  • Fixed languages with no word initial consonants throwing errors
  • Fixed “Your Phonemes” buttons not populating to second spelling input box
  • Fixed not able to use | symbol in Evolve Language rules, and fixed rules from always having to account for stress symbols
  • Fixed nasal release diacritic not displaying
  • Fixed 2nd vowel harmony group not able to handle syllabic consonants
  • Fixed bugs related to IF statements not applying correctly without ELSE condition
  • Fixed custom words not overriding the default word in some rare cases
  • Fixed single geminate (long) consonants from being permissible consonant clusters (if a language has geminates, they typically appear in more than one consonant).


6 April 2019

  • Added Free Form Grammar, which allows you to create any kind of grammatical property. Also allows you to use all affixes in the Translator.
  • Added custom Noun genders
  • Added ability to force all affixes to be prefixes or suffixes
  • Added ability to apply tones to all vowels, instead of applying tone to single vowels (see Advanced Phonology section)
  • Shorten average word length option has been removed, as this is now the default option and it only had a minor effect anyway
  • Algorithm tweaked to better select a balanced vowel inventory when using **Add random phonemes to the custom selection (upon generation)**
  • Uppercase shorthand symbols can now be used in spelling rules and illegal combinations. This is to create uniformity so that anywhere RegEx can be used, shorthand symbols can be used too.
  • When deriving words, if the word root word you’re looking for has two possible parts-of-speech, there is now ability to (optionally) specify which part of speech you want. Eg “laughing:v = laugh:v-PROGRESSIVE” takes the verb form of “laugh”, if there was also a noun form.
  • Added No stress at all option
  • Phonological rules that have a stress symbol will automatically be sensitive to the stress symbol, and thus Make phonological rules sensitive to stress symbol has been removed. This means that you can make rules that deal with stress without having to make every rule account for the stress symbol.
  • Don’t allow words to differ only by stress location changed to Allow contrastive stress
  • If you add a custom word and specify its stress, the stress is no longer deleted in favour of the “correct” stress. If you don’t specify the stress, then the correct stress will be applied.
  • Fixed bug where No Fixed Stress option was causing double up words
  • Fixed Change alphabet order sometimes causing hanging issues
  • Change alphabet order can now properly alphabetize letters with diacritics as well as digraphs (double letters)
  • Fixed spelling diacritic buttons not populating to Change alphabet order and Second spelling fields
  • Fixed derivational sound changes with shorthand symbols not working
  • Fixed θ and β not appearing in consonant chart
  • Fixed stress and capitalization issues when making custom language names that are two or more words
  • Fixed custom morphological rules that only consist of sound changes throwing errors
  • Fixed custom morphological rules with | symbol not displaying in grammar section
  • Fixed spelling rules doubling up in some scenarios