internal/functions/generators/New-SldgPersonName.ps1
|
function New-SldgPersonName { <# .SYNOPSIS Generates realistic person names using locale-specific data. #> [CmdletBinding()] param ( [ValidateSet('First', 'Last', 'Middle', 'Full')] [string]$Type = 'First', [ValidateSet('Male', 'Female', 'Any')] [string]$Gender = 'Any', [string]$Locale, [int]$Count = 1 ) $localeData = Get-SldgLocaleData -Locale $Locale $maleNames = $localeData.MaleNames $femaleNames = $localeData.FemaleNames $lastNames = $localeData.LastNames for ($i = 0; $i -lt $Count; $i++) { $g = if ($Gender -eq 'Any') { @('Male', 'Female') | Get-Random } else { $Gender } $first = if ($g -eq 'Male') { $maleNames | Get-Random } else { $femaleNames | Get-Random } $last = $lastNames | Get-Random switch ($Type) { 'First' { $first } 'Last' { $last } 'Middle' { (($maleNames + $femaleNames) | Get-Random).Substring(0, 1) + '.' } 'Full' { "$first $last" } } } } |