Last active
January 21, 2019 10:53
-
-
Save ryx/ce24ca0629d4950a524b1e2588d5809d to your computer and use it in GitHub Desktop.
Random (German) Name Generator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Creates "contemporary" german (mainly female) names, with a little bit of fun added ;) | |
* | |
* Examples: | |
* Gerna-Bertomine Braunlens | |
* Brunlamunde Ringer-Rot | |
* Joladane zu Paffeneier | |
* Jora Wollenlens-Schiss | |
* Lata Krachling | |
* Klonlaela Grün-Eichelhorst | |
* Siefumine Wollenner-Schmidthagen | |
* Nalalane Braun-Füllfeld | |
* Gerdalinde von Braun | |
*/ | |
function getRnd(arr) { | |
return arr[parseInt(Math.random() * arr.length, 10)] | |
} | |
function generateFirstName() { | |
const chunksFore = ['Ber', 'Brun', 'Sieg', 'Mecht', 'Mi', 'Jo', 'Sie','Jaqcue', 'Lo', 'So', 'La', 'Ro', 'Ro', 'Er', 'Ger', 'Paula', 'Man', 'Klau', 'Klon', 'Fer', 'Na', 'Nu']; | |
const chunksMiddle = ['ta', 'to', 'na', 'mi', 'ca', 'schi', 're', 'ra', 'fu', 'se', 'na', 'da', 'la']; | |
const chunksBack = ['linde', 'hilde', 'friede', 'solde', 'ela', 'lena', 'nate', 'line', 'dana', 'dane', 'phie', 'munde', 'dine', 'dia', 'dula', 'lane', 'mine']; | |
return getRnd(chunksFore) + getRnd(chunksMiddle) + (Math.random() > 0.25 ? getRnd(chunksBack) : ''); | |
} | |
function generateLastName() { | |
const chunksFore = ['Müller', 'Meyer', 'Meisel', 'Wallen', 'Wollen', 'Schmidt', 'Schiss', 'Rosen', 'Paffen', 'Schulz', 'Rin', 'Holz', 'Hasel', 'Eichel', 'Feld', 'Rans', 'Schwanz', 'Schwarz', 'Braun', 'Gelb', 'Grün', 'Rot', 'Fer', 'Schwei', 'Fisch', 'Helm', 'Brun', 'Hohe', 'Hohen', 'Suck', 'Ross', 'Kack', 'Minz', 'Bech', 'Pech', 'Krach', 'Loch', 'Füll', 'Kiff', 'Pfeffer']; | |
const chunksBack = ['hausen', 'haus', 'heim', 'feld', 'felt', 'puss', 'punz', 'furz', 'hagen', 'lens', 'stein', 'horst', 'dorf', 'stedt', 'hans', 'wald', 'wolt', 'ling', 'furcht', 'berg', 'ger', 'ler', 'men', 'gerd', 'gert', 'fried', 'eier', 'acker', 'furt', 'lind', 'ner', 'horn', 'egger', 'fluss', 'gras']; | |
let name = getRnd(chunksFore) + (Math.random() > 0.5 ? getRnd(chunksBack) : ''); | |
// add second name via connector? | |
if (Math.random() >= 0.33) { | |
name += '-' + getRnd(chunksFore) + (Math.random() > 0.5 ? getRnd(chunksBack) : ''); | |
} | |
return name; | |
} | |
function generateName() { | |
const firstName = generateFirstName() + (Math.random() >= 0.9 ? `-${generateFirstName()}` : ''); | |
const lastName = (Math.random() < 0.1 ? `${getRnd(['von', 'zu', 'an'])} ` : '') + generateLastName(); | |
return firstName + ' ' + lastName; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment