randino

randino for Dart

license pub package

πŸ“˜ randino.cdget.com

Every option and every example, with Dart picked in the sidebar. This README is just the quick start.


randino generates random person names and nicknames in the language you ask for.

  • Person names read like names people actually carry β€” κΉ€λ―Όμ€€, Emma Clover, Иванов Иван β€” and come with their English pronunciation. 9 languages.
  • Nicknames are the handles you would pick for a game or a website β€” λ©‹μ§„μ‚¬μž, MistyOwl, 고양이꼬리. Built from everyday words across fourteen themes, never from person names.
  • Every parameter is named and optional, and a null enum means "every one of them" β€” randomName() on its own works.
  • Pure Dart, no dependencies. It imports nothing but dart:math, so it runs on the VM, on the web and inside Flutter on every platform.

This is the Dart half. The npm package is the other one, and the two generate from the same datasets under the same rules. They version independently, so this package's number and the npm one's will not always agree.

Install

dart pub add randino

Requires Dart 3.7 or newer (Flutter 3.29). There is nothing else to install.

Person names

import 'package:randino/randino.dart';

randomName();
// ['Emma Clover']

randomName(language: NameLanguage.ko, count: 3);
// ['κΉ€νƒœμœ€', 'μ›λ™ν˜', 'μ‘°μ§„μš°']

randomName(language: NameLanguage.ko, script: NameScript.roman);
// ['Kim Minjun']

randomName(
  language: NameLanguage.en,
  gender: NameGender.female,
  includeMiddleName: true,
);
// ['Grace Amelia Bennett']

randomNameDetails(language: NameLanguage.ko).first;
// NameDetail(μ—¬λ―Έμ£Ό, Yeo Miju, ko, female)
Parameter Type Default
language NameLanguage? null β€” every one
gender NameGender? null β€” one per name
count int 1
style int (0 real … 100 invented) 0
minLength / maxLength int? language
includeSurname bool true
includeMiddleName bool false
script NameScript NameScript.native
startsWith String? null
unique bool false

randomNameDetails takes the same parameters except script, and returns a NameDetail β€” native, roman, language and gender β€” for each name.

Nicknames

randomNickname(language: NicknameLanguage.ko, count: 3);
// ['였래된곰', 'μ˜μ›ν•œλ„λ§ˆλ±€', 'κ·€μ—¬μš΄μ‹ ν™”λ‹€λ°œ']

randomNickname(language: NicknameLanguage.en, count: 2);
// ['FoggyHillside', 'CraneVoyage']

randomNickname(language: NicknameLanguage.ko, theme: NicknameTheme.animal, count: 2);
// ['κΉŠμ€μ—°μ–΄', 'ν•˜μ–€μ—¬μš°κ°ˆκΈ°']

randomNickname(language: NicknameLanguage.ko, uniqueSuffix: true, count: 2);
// ['달λ ₯_U7aNZ', 'μ‘°μš©ν•œλ°”κ΅¬λ‹ˆ_RUKAP']

randomNickname(baseWord: '고양이', count: 3);
// ['ν•˜μ–€κ³ μ–‘μ΄', 'κ³ μ–‘μ΄λ°”λžŒ', 'κ·€μ—¬μš΄κ³ μ–‘μ΄λΏ”']

randomNicknameDetails(language: NicknameLanguage.ko, uniqueSuffix: true).first;
// NicknameDetail(였래된발견_zVShs, [였래된, 발견], ko, concept)
Parameter Type Default
language NicknameLanguage? null β€” every one
theme NicknameTheme? null β€” every one
count int 1
style int (0 real … 100 invented) 0
minLength / maxLength int? language
includeModifier bool true
wordSeparator String? language
baseWord String? null
uniqueSuffix bool false
uniqueSuffixLength int 5
uniqueSuffixSeparator String '_'
uniqueSuffixCharset String? built-in
startsWith String? null
unique bool false

Themes: animal, object, nature, plant, gem, concept, myth, job, music, place, food, sport, vehicle, product.

Helpers and constants

nameLengthRange(language: NameLanguage.ko); // LengthRange(3, 3)
nameLengthRange(language: NameLanguage.en, includeMiddleName: true); // LengthRange(12, 24)
nameSupportsMiddleName(NameLanguage.ko); // false
nameSupportsRoman(NameLanguage.en); // false
nicknameLengthRange(language: NicknameLanguage.ko); // LengthRange(1, 12)

nameLanguages, nicknameLanguages and nicknameThemes list what the generators accept; nameCountMax, nameLengthMin / Max, nicknameCountMax, nicknameLengthMin / Max, nicknameSuffixLengthMax and nicknameSuffixCharset are the bounds every parameter is clamped to.

Differences from the npm package

The two generate the same output from the same data, and only the surface is Dart's rather than JavaScript's.

npm pub.dev
One options object Named parameters
language: 'ko' language: NameLanguage.ko
language: 'all' (the default) language left out, or null
[number, number] LengthRange, which compares by value
NameDetail / NicknameDetail interfaces The same two names, as classes

Development

dart pub get
dart test
dart analyze
dart format .

License

MIT Β© CDGet

Libraries

randino
randino generates random person names and nicknames in the language you ask for.