function range(end) { }. document.getElementById('allowContrastiveStress').disabled = this.checked; found = dict[swapped]; document.getElementById('allowContrastiveStress').disabled = !this.checked; {'attributes':{'code-block':true},'insert':'\n'} if (conTrans) equals = ' = ((' + conTrans[label] + '))'; ); CC++; Add or modify affixes (Read the affix guide): Create affixes for parts-of-speech. lastFocused('wordInitialConsonants'); for (let i = 0; i < axes.length; i++) { let disabledFont = '#5f6b6f'; ')]; let label = x; } On the newer, second site (RollForFantasy.com), Wait, there's even more! Performance & security by Cloudflare, Please complete the security check to access. content.push( Separate words by space or new line. axisnames = ['rows']; let upperlinetag = rg_allLowerCase.test(property) ? if (conTrans) equals = ' = ((' + conTrans[label] + '))'; ); if (engTrans) exampleWord = ' ~ ' + findTranslation(engTrans, [x, y]); {'insert': 'example-word N = ' + exampleWord[2]}, // pass styleBackground(ID, disabledGrey); if (document.getElementById('noFixedStress').checked) { In this article, you'll find a list of 60 of the most awesome sounding words in the English language, plus cool words that start with the letter "Z," a list of silly words, some commonly misused words, words that sound funky and awkward, and more! axes.sort(function(a, b) { divID.style.display = 'block'; content.push( These patterns are used for affixes when they equal "Random", Arrange phonemes in: naturalistic ranking | natural with randomness | alphabetical | previous, Vowel tones Applies tone to all vowels. if (index > -1) list[index] = replacer; function toggleDiv(divID, messageID, showMessage, hideMessage, forceONOFF) { return document.querySelector('input[name="' + name + '"]:checked').value; for (let i = 0; i < end; i++) { Click the button to generate more technobabble. ); for (let property of tagLines) { function setHTML(ID, string) { } if (found || swapped) return found || swapped; Create unique languages for your race of peoples in the click of a button! modal.style.display = 'block'; if (typeof exampleWord == 'string') { } function lastFocused(ID) { list.push(i); tabs.splice(tabs.indexOf(displayTab), 1); build → building), all consonants are deleted at the end of a word, Create custom classes of phonemes with single upper case letters. Trial the demo version with a 200 word output. if (!staticAxes) { // if added by the generator This city name generator will give you 10 random city names. + tag[2] + '.' content.push( let buttons = ['phonologyTabButton', 'spellingTabButton', 'vocabTabButton', 'grammarTabButton', 'saveTabButton']; abbreviation = (abbreviation != null) {'insert': 'example-word = ' + exampleWord}, divID = document.getElementById(divID); {'insert': 'example-word ' + F + ' = ' + exampleWord[1]}, tag = tag.slice(1); } } content.push( let equals = (nulls.includes(label)) ? ' content.push( let thisLine = []; for (let i = index + 1; i < list.length; i++) { content.push( } modal.style.display = 'none'; extra high | high | mid | low | extra low. ); The names are generated almost completely randomly, with the exception of predefined endings, so some names might not be what you'd expect for a city name. } The names are generated almost completely randomly, with the exception of predefined endings, so some names might not be what you'd expect for a city name. =' : ' = Random'; document.getElementById(ID).value = ''; function openWordStructure() { ? axes = [axes[0], axes[1]]; axes = [axes[0]]; ')]; upperLine.push(upperlinetag); Look no further! } Left-most are more common. let F = 'F'; City name generator . } Analysing with Equiprobable dropoff rate will give you the exact frequencies. English consonants: b d f ɡ h j k l m n ŋ p ɹ s t v w z ʃ ʒ ʧ ʤ θ ð - add allEnglish vowels (US): ɑ æ ɛ ɜː iː ɪ ɔ u ʊ ʌ aɪ aʊ eɪ oʊ ɔɪ - add all, All consonants: b ɓ β ʙ c ç d ɖ ɗ ʣ ʥ ʤ f ɸ ɡ ɠ ɢ ʛ ɰ h ɦ ħ ɧ ɥ ʜ j ʝ ɟ ʄ k l ɫ ɬ ɮ ɭ ʟ m ɱ n ɳ ɲ ŋ ɴ p q r ɹ ɾ ɽ ɻ ɺ ʁ ʀ s ʂ ɕ ʃ t ʈ ʦ ʨ ʧ v ⱱ ʋ w ʍ x ɣ χ ʎ z ʐ ʑ ʒ θ ð ʔ ʡ ʕ ʢ ʘ ǀ ǃ ǂ ǁAll vowels: a æ ɑ ɒ ɐ e ɛ ɜ ɞ ə i ɨ ɪ y ʏ ø ɘ ɵ œ ɶ ɤ o ɔ u ʉ ʊ ɯ ʌ, Extra articulation symbols: advanced | advanced tongue root | apical | aspirated | breathy | centralized | dental | diphthong | ejective | extra-short | half-long | labialized | laminal | lateral release | linguolabial | long | lowered | mid-centralized | nasal | nasal release | null | palatalized | pharyngealized | raised | retracted | retracted tongue root | rhotacized | round (less) | round (more) | stress (primary) | stress (secondary) | syllabic consonant | tie bar | unreleased stop | velarized | vocal fry | voiced | voiceless Vowel tones: extra high | high | mid | low | extra low. {'attributes':{'code-block':true},'insert':'\n'} let index = list.indexOf(replaced); } 10 new random names. However, due to all the different possible combinations, there's plenty of names for all sorts of genres. We’ve found 50 awesome and totally free futuristic fonts you can use to design. } } Vulgar uses the International Phonetic Alphabet (IPA) and various other linguistic terminology. for (let i of range(tabs)) { if (content) document.getElementById('inner-' + ID).classList.add('bounce-in'); If you use genders in the Grammar Editor, they need to be reflected here too. let conFocus = 'customConsonants'; {'attributes':{'code-block':true},'insert':'\n'}, modal.style.display = 'none'; } {'insert': label + exampleWord + equals}, Photofunia has now made it easy with a retro wave text generator. Sound changes and conditional affixes can be created - see this guide. {'attributes':{'code-block':true},'insert':'\n\n'} } Noun genders Add or remove genders for dictionary words. }); if (showMessage) messageID.innerHTML = showMessage; {'attributes':{'code-block':true},'insert':'\n\n'} Which, in terms of variety and catering to different genres, is great, but could mean you might have to click a few extra times to find what you're looking for, especially if you're a bit unlucky. Planted so far: 61480 document.getElementById('predictable-pattern').style.display = 'block'; + tag[1]; {'insert': label + exampleWord + equals}, {'attributes':{'code-block':true},'insert':'\n'} =' : ' = Random'; if (content) { English word : part-of-speech = conlang word (in IPA), Part-of-speech (that these affixes are used on), analyse word structure of your own language, Adjective → noun (the quality of being [adj]), Adjective → verb (to make something [adj]), Noun → adjective (having the quality of [noun]), Noun → adjective relating to noun (e.g. ^.^ ').replace(/^\.+|\.+$/g, '') conFocus = ID; Enter phonemes separated by spaces. + tag[0]; Vugar is a constructed language (conlang) generator for fantasy writers and role players. =' : ' = Random'; found = dict[tag.join('. if (document.getElementById('wordStructure').checked == false) { toggleDiv('IPAsymbols_bottom'); modal = document.getElementById(ID); let label = x + '.' {'insert' : tableType + ' TABLE'}, vowFocus = ID; } {'attributes':{'code-block':true},'insert':'\n'}, } else { // AFFIX let equals = (nulls.includes(label)) ? ' } Vulgarlang.com © . Classes can also be combinations of other classes, such as, Note: in other sections of Vulgar, upper case letters have, Word patterns are made of phoneme classes (as defined above), Patterns for particular parts-of-speech can be added after the default patterns (. let label = x + '.' window.onclick = function(event) { return list; Read the Grammar editor guide for more tricks and tips. The art above has kindly been submitted by Dave B., click to visit his website. } if (!axes.length) return []; // do not add empty tables! let swapped = tag[1] + '.' thisLine.push(abbreviation); Use IPA symbols only. function setInput(ID, string) { Enter permissible consonants and consonant clusters here. let CC = 0; If you are on a personal connection, like at home, you can run an anti-virus scan on your device to make sure it is not infected with malware. function findTranslation(dict, tag) { This city name generator will give you 10 random city names. function getRadioID(form, name) { tags.push(thisLine); • if (button.checked) return button.id; Check out these futuristic fonts if you want a modern design. if (modal && event.target == modal) { for (let x of tags[0]) { Word Structure Analyser (available in full version) analyses the frequency and locations of phonemes in any chunk of text and populates the result to the Advanced Word Structure fields. property.toUpperCase() : property; function clearInput(ID) { let vowFocus = 'customVowels'; } They can be great for naming your website, business, product or project. messageID = document.getElementById(messageID); axes = [axes[0], axes[2], axes[1]]; agnosticFocus = ID; let appCSSlink = document.createElement('link');