name static method

String name({
  1. String? gender,
  2. bool includeMiddleName = true,
  3. Locale? locale,
})

Generate a random name based on locale and gender.

Implementation

static String name(
    {String? gender, bool includeMiddleName = true, Locale? locale}) {
  // Get the device's locale
  final localeString = locale?.toString() ?? getDeviceLocale();

  final names = localizedNames[localeString] ?? localizedNames['en']!;

  // If gender is not provided, choose randomly between 'male' or 'female'
  gender ??= _random.nextBool() ? 'male' : 'female';

  final firstName = names[gender]?[_random.nextInt(names[gender]!.length)] ??
      names['male']![_random.nextInt(names['male']!.length)];
  final lastName =
      names['lastNames']![_random.nextInt(names['lastNames']!.length)];

  return includeMiddleName && names.containsKey('middleNames')
      ? '$firstName ${names['middleNames']![_random.nextInt(names['middleNames']!.length)]}$lastName'
      : '$firstName $lastName';
}