mirror of
https://gitlab.com/signalytic/client-external/streamline/streamline-emr.git
synced 2026-09-12 11:11:31 +00:00
resolved conflicts
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Calculator;
|
||||
use Faker\Extension;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*/
|
||||
final class Barcode implements Extension\BarcodeExtension
|
||||
{
|
||||
private Extension\NumberExtension $numberExtension;
|
||||
|
||||
public function __construct(?Extension\NumberExtension $numberExtension = null)
|
||||
{
|
||||
$this->numberExtension = $numberExtension ?: new Number();
|
||||
}
|
||||
|
||||
private function ean(int $length = 13): string
|
||||
{
|
||||
$code = Extension\Helper::numerify(str_repeat('#', $length - 1));
|
||||
|
||||
return sprintf('%s%s', $code, Calculator\Ean::checksum($code));
|
||||
}
|
||||
|
||||
public function ean13(): string
|
||||
{
|
||||
return $this->ean();
|
||||
}
|
||||
|
||||
public function ean8(): string
|
||||
{
|
||||
return $this->ean(8);
|
||||
}
|
||||
|
||||
public function isbn10(): string
|
||||
{
|
||||
$code = Extension\Helper::numerify(str_repeat('#', 9));
|
||||
|
||||
return sprintf('%s%s', $code, Calculator\Isbn::checksum($code));
|
||||
}
|
||||
|
||||
public function isbn13(): string
|
||||
{
|
||||
$code = '97' . $this->numberExtension->numberBetween(8, 9) . Extension\Helper::numerify(str_repeat('#', 9));
|
||||
|
||||
return sprintf('%s%s', $code, Calculator\Ean::checksum($code));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Extension;
|
||||
use Faker\Extension\Helper;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*/
|
||||
final class Color implements Extension\ColorExtension
|
||||
{
|
||||
private Extension\NumberExtension $numberExtension;
|
||||
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private array $safeColorNames = [
|
||||
'black', 'maroon', 'green', 'navy', 'olive',
|
||||
'purple', 'teal', 'lime', 'blue', 'silver',
|
||||
'gray', 'yellow', 'fuchsia', 'aqua', 'white',
|
||||
];
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private array $allColorNames = [
|
||||
'AliceBlue', 'AntiqueWhite', 'Aqua', 'Aquamarine',
|
||||
'Azure', 'Beige', 'Bisque', 'Black', 'BlanchedAlmond',
|
||||
'Blue', 'BlueViolet', 'Brown', 'BurlyWood', 'CadetBlue',
|
||||
'Chartreuse', 'Chocolate', 'Coral', 'CornflowerBlue',
|
||||
'Cornsilk', 'Crimson', 'Cyan', 'DarkBlue', 'DarkCyan',
|
||||
'DarkGoldenRod', 'DarkGray', 'DarkGreen', 'DarkKhaki',
|
||||
'DarkMagenta', 'DarkOliveGreen', 'Darkorange', 'DarkOrchid',
|
||||
'DarkRed', 'DarkSalmon', 'DarkSeaGreen', 'DarkSlateBlue',
|
||||
'DarkSlateGray', 'DarkTurquoise', 'DarkViolet', 'DeepPink',
|
||||
'DeepSkyBlue', 'DimGray', 'DimGrey', 'DodgerBlue', 'FireBrick',
|
||||
'FloralWhite', 'ForestGreen', 'Fuchsia', 'Gainsboro', 'GhostWhite',
|
||||
'Gold', 'GoldenRod', 'Gray', 'Green', 'GreenYellow', 'HoneyDew',
|
||||
'HotPink', 'IndianRed', 'Indigo', 'Ivory', 'Khaki', 'Lavender',
|
||||
'LavenderBlush', 'LawnGreen', 'LemonChiffon', 'LightBlue', 'LightCoral',
|
||||
'LightCyan', 'LightGoldenRodYellow', 'LightGray', 'LightGreen', 'LightPink',
|
||||
'LightSalmon', 'LightSeaGreen', 'LightSkyBlue', 'LightSlateGray', 'LightSteelBlue',
|
||||
'LightYellow', 'Lime', 'LimeGreen', 'Linen', 'Magenta', 'Maroon', 'MediumAquaMarine',
|
||||
'MediumBlue', 'MediumOrchid', 'MediumPurple', 'MediumSeaGreen', 'MediumSlateBlue',
|
||||
'MediumSpringGreen', 'MediumTurquoise', 'MediumVioletRed', 'MidnightBlue',
|
||||
'MintCream', 'MistyRose', 'Moccasin', 'NavajoWhite', 'Navy', 'OldLace', 'Olive',
|
||||
'OliveDrab', 'Orange', 'OrangeRed', 'Orchid', 'PaleGoldenRod', 'PaleGreen',
|
||||
'PaleTurquoise', 'PaleVioletRed', 'PapayaWhip', 'PeachPuff', 'Peru', 'Pink', 'Plum',
|
||||
'PowderBlue', 'Purple', 'Red', 'RosyBrown', 'RoyalBlue', 'SaddleBrown', 'Salmon',
|
||||
'SandyBrown', 'SeaGreen', 'SeaShell', 'Sienna', 'Silver', 'SkyBlue', 'SlateBlue',
|
||||
'SlateGray', 'Snow', 'SpringGreen', 'SteelBlue', 'Tan', 'Teal', 'Thistle', 'Tomato',
|
||||
'Turquoise', 'Violet', 'Wheat', 'White', 'WhiteSmoke', 'Yellow', 'YellowGreen',
|
||||
];
|
||||
|
||||
public function __construct(?Extension\NumberExtension $numberExtension = null)
|
||||
{
|
||||
$this->numberExtension = $numberExtension ?: new Number();
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '#fa3cc2'
|
||||
*/
|
||||
public function hexColor(): string
|
||||
{
|
||||
return '#' . str_pad(dechex($this->numberExtension->numberBetween(1, 16777215)), 6, '0', STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '#ff0044'
|
||||
*/
|
||||
public function safeHexColor(): string
|
||||
{
|
||||
$color = str_pad(dechex($this->numberExtension->numberBetween(0, 255)), 3, '0', STR_PAD_LEFT);
|
||||
|
||||
return sprintf(
|
||||
'#%s%s%s%s%s%s',
|
||||
$color[0],
|
||||
$color[0],
|
||||
$color[1],
|
||||
$color[1],
|
||||
$color[2],
|
||||
$color[2],
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example 'array(0,255,122)'
|
||||
*
|
||||
* @return int[]
|
||||
*/
|
||||
public function rgbColorAsArray(): array
|
||||
{
|
||||
$color = $this->hexColor();
|
||||
|
||||
return [
|
||||
hexdec(substr($color, 1, 2)),
|
||||
hexdec(substr($color, 3, 2)),
|
||||
hexdec(substr($color, 5, 2)),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '0,255,122'
|
||||
*/
|
||||
public function rgbColor(): string
|
||||
{
|
||||
return implode(',', $this->rgbColorAsArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* @example 'rgb(0,255,122)'
|
||||
*/
|
||||
public function rgbCssColor(): string
|
||||
{
|
||||
return sprintf(
|
||||
'rgb(%s)',
|
||||
$this->rgbColor(),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example 'rgba(0,255,122,0.8)'
|
||||
*/
|
||||
public function rgbaCssColor(): string
|
||||
{
|
||||
return sprintf(
|
||||
'rgba(%s,%s)',
|
||||
$this->rgbColor(),
|
||||
$this->numberExtension->randomFloat(1, 0, 1),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example 'blue'
|
||||
*/
|
||||
public function safeColorName(): string
|
||||
{
|
||||
return Helper::randomElement($this->safeColorNames);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example 'NavajoWhite'
|
||||
*/
|
||||
public function colorName(): string
|
||||
{
|
||||
return Helper::randomElement($this->allColorNames);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '340,50,20'
|
||||
*/
|
||||
public function hslColor(): string
|
||||
{
|
||||
return sprintf(
|
||||
'%s,%s,%s',
|
||||
$this->numberExtension->numberBetween(0, 360),
|
||||
$this->numberExtension->numberBetween(0, 100),
|
||||
$this->numberExtension->numberBetween(0, 100),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example array(340, 50, 20)
|
||||
*
|
||||
* @return int[]
|
||||
*/
|
||||
public function hslColorAsArray(): array
|
||||
{
|
||||
return [
|
||||
$this->numberExtension->numberBetween(0, 360),
|
||||
$this->numberExtension->numberBetween(0, 100),
|
||||
$this->numberExtension->numberBetween(0, 100),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Extension;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*/
|
||||
final class Coordinates implements Extension\Extension
|
||||
{
|
||||
private Extension\NumberExtension $numberExtension;
|
||||
|
||||
public function __construct(?Extension\NumberExtension $numberExtension = null)
|
||||
{
|
||||
$this->numberExtension = $numberExtension ?: new Number();
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '77.147489'
|
||||
*
|
||||
* @return float Uses signed degrees format (returns a float number between -90 and 90)
|
||||
*/
|
||||
public function latitude(float $min = -90.0, float $max = 90.0): float
|
||||
{
|
||||
if ($min < -90 || $max < -90) {
|
||||
throw new \LogicException('Latitude cannot be less that -90.0');
|
||||
}
|
||||
|
||||
if ($min > 90 || $max > 90) {
|
||||
throw new \LogicException('Latitude cannot be greater that 90.0');
|
||||
}
|
||||
|
||||
return $this->randomFloat(6, $min, $max);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '86.211205'
|
||||
*
|
||||
* @return float Uses signed degrees format (returns a float number between -180 and 180)
|
||||
*/
|
||||
public function longitude(float $min = -180.0, float $max = 180.0): float
|
||||
{
|
||||
if ($min < -180 || $max < -180) {
|
||||
throw new \LogicException('Longitude cannot be less that -180.0');
|
||||
}
|
||||
|
||||
if ($min > 180 || $max > 180) {
|
||||
throw new \LogicException('Longitude cannot be greater that 180.0');
|
||||
}
|
||||
|
||||
return $this->randomFloat(6, $min, $max);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example array('77.147489', '86.211205')
|
||||
*
|
||||
* @return array{latitude: float, longitude: float}
|
||||
*/
|
||||
public function localCoordinates(): array
|
||||
{
|
||||
return [
|
||||
'latitude' => $this->latitude(),
|
||||
'longitude' => $this->longitude(),
|
||||
];
|
||||
}
|
||||
|
||||
private function randomFloat(int $nbMaxDecimals, float $min, float $max): float
|
||||
{
|
||||
if ($min > $max) {
|
||||
throw new \LogicException('Invalid coordinates boundaries');
|
||||
}
|
||||
|
||||
return $this->numberExtension->randomFloat($nbMaxDecimals, $min, $max);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Extension\DateTimeExtension;
|
||||
use Faker\Extension\GeneratorAwareExtension;
|
||||
use Faker\Extension\GeneratorAwareExtensionTrait;
|
||||
use Faker\Extension\Helper;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*
|
||||
* @since 1.20.0
|
||||
*/
|
||||
final class DateTime implements DateTimeExtension, GeneratorAwareExtension
|
||||
{
|
||||
use GeneratorAwareExtensionTrait;
|
||||
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private array $centuries = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI'];
|
||||
|
||||
private ?string $defaultTimezone = null;
|
||||
|
||||
/**
|
||||
* Get the POSIX-timestamp of a DateTime, int or string.
|
||||
*
|
||||
* @param \DateTime|float|int|string $until
|
||||
*
|
||||
* @return false|int
|
||||
*/
|
||||
private function getTimestamp($until = 'now')
|
||||
{
|
||||
if (is_numeric($until)) {
|
||||
return (int) $until;
|
||||
}
|
||||
|
||||
if ($until instanceof \DateTime) {
|
||||
return $until->getTimestamp();
|
||||
}
|
||||
|
||||
return strtotime(empty($until) ? 'now' : $until);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a DateTime created based on a POSIX-timestamp.
|
||||
*
|
||||
* @param int $timestamp the UNIX / POSIX-compatible timestamp
|
||||
*/
|
||||
private function getTimestampDateTime(int $timestamp): \DateTime
|
||||
{
|
||||
return new \DateTime('@' . $timestamp);
|
||||
}
|
||||
|
||||
private function resolveTimezone(?string $timezone): string
|
||||
{
|
||||
if ($timezone !== null) {
|
||||
return $timezone;
|
||||
}
|
||||
|
||||
return null === $this->defaultTimezone ? date_default_timezone_get() : $this->defaultTimezone;
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal method to set the timezone on a DateTime object.
|
||||
*/
|
||||
private function setTimezone(\DateTime $dateTime, ?string $timezone): \DateTime
|
||||
{
|
||||
$timezone = $this->resolveTimezone($timezone);
|
||||
|
||||
return $dateTime->setTimezone(new \DateTimeZone($timezone));
|
||||
}
|
||||
|
||||
public function dateTime($until = 'now', ?string $timezone = null): \DateTime
|
||||
{
|
||||
return $this->setTimezone(
|
||||
$this->getTimestampDateTime($this->unixTime($until)),
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
public function dateTimeAD($until = 'now', ?string $timezone = null): \DateTime
|
||||
{
|
||||
$min = (PHP_INT_SIZE > 4) ? -62135597361 : -PHP_INT_MAX;
|
||||
|
||||
return $this->setTimezone(
|
||||
$this->getTimestampDateTime($this->generator->numberBetween($min, $this->getTimestamp($until))),
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $timezone = null): \DateTime
|
||||
{
|
||||
$start = $this->getTimestamp($from);
|
||||
$end = $this->getTimestamp($until);
|
||||
|
||||
if ($start > $end) {
|
||||
throw new \InvalidArgumentException('"$from" must be anterior to "$until".');
|
||||
}
|
||||
|
||||
$timestamp = $this->generator->numberBetween($start, $end);
|
||||
|
||||
return $this->setTimezone(
|
||||
$this->getTimestampDateTime($timestamp),
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', ?string $timezone = null): \DateTime
|
||||
{
|
||||
$intervalObject = \DateInterval::createFromDateString($interval);
|
||||
$datetime = $from instanceof \DateTime ? $from : new \DateTime($from);
|
||||
|
||||
$other = (clone $datetime)->add($intervalObject);
|
||||
|
||||
$begin = min($datetime, $other);
|
||||
$end = $datetime === $begin ? $other : $datetime;
|
||||
|
||||
return $this->dateTimeBetween($begin, $end, $timezone);
|
||||
}
|
||||
|
||||
public function dateTimeThisWeek($until = 'sunday this week', ?string $timezone = null): \DateTime
|
||||
{
|
||||
return $this->dateTimeBetween('monday this week', $until, $timezone);
|
||||
}
|
||||
|
||||
public function dateTimeThisMonth($until = 'last day of this month', ?string $timezone = null): \DateTime
|
||||
{
|
||||
return $this->dateTimeBetween('first day of this month', $until, $timezone);
|
||||
}
|
||||
|
||||
public function dateTimeThisYear($until = 'last day of december', ?string $timezone = null): \DateTime
|
||||
{
|
||||
return $this->dateTimeBetween('first day of january', $until, $timezone);
|
||||
}
|
||||
|
||||
public function dateTimeThisDecade($until = 'now', ?string $timezone = null): \DateTime
|
||||
{
|
||||
$year = floor(date('Y') / 10) * 10;
|
||||
|
||||
return $this->dateTimeBetween("first day of january $year", $until, $timezone);
|
||||
}
|
||||
|
||||
public function dateTimeThisCentury($until = 'now', ?string $timezone = null): \DateTime
|
||||
{
|
||||
$year = floor(date('Y') / 100) * 100;
|
||||
|
||||
return $this->dateTimeBetween("first day of january $year", $until, $timezone);
|
||||
}
|
||||
|
||||
public function date(string $format = 'Y-m-d', $until = 'now'): string
|
||||
{
|
||||
return $this->dateTime($until)->format($format);
|
||||
}
|
||||
|
||||
public function time(string $format = 'H:i:s', $until = 'now'): string
|
||||
{
|
||||
return $this->date($format, $until);
|
||||
}
|
||||
|
||||
public function unixTime($until = 'now'): int
|
||||
{
|
||||
return $this->generator->numberBetween(0, $this->getTimestamp($until));
|
||||
}
|
||||
|
||||
public function iso8601($until = 'now'): string
|
||||
{
|
||||
return $this->date(\DateTime::ISO8601, $until);
|
||||
}
|
||||
|
||||
public function amPm($until = 'now'): string
|
||||
{
|
||||
return $this->date('a', $until);
|
||||
}
|
||||
|
||||
public function dayOfMonth($until = 'now'): string
|
||||
{
|
||||
return $this->date('d', $until);
|
||||
}
|
||||
|
||||
public function dayOfWeek($until = 'now'): string
|
||||
{
|
||||
return $this->date('l', $until);
|
||||
}
|
||||
|
||||
public function month($until = 'now'): string
|
||||
{
|
||||
return $this->date('m', $until);
|
||||
}
|
||||
|
||||
public function monthName($until = 'now'): string
|
||||
{
|
||||
return $this->date('F', $until);
|
||||
}
|
||||
|
||||
public function year($until = 'now'): string
|
||||
{
|
||||
return $this->date('Y', $until);
|
||||
}
|
||||
|
||||
public function century(): string
|
||||
{
|
||||
return Helper::randomElement($this->centuries);
|
||||
}
|
||||
|
||||
public function timezone(?string $countryCode = null): string
|
||||
{
|
||||
if ($countryCode) {
|
||||
$timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode);
|
||||
} else {
|
||||
$timezones = \DateTimeZone::listIdentifiers();
|
||||
}
|
||||
|
||||
return Helper::randomElement($timezones);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Extension;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*/
|
||||
final class Number implements Extension\NumberExtension
|
||||
{
|
||||
public function numberBetween(int $min = 0, int $max = 2147483647): int
|
||||
{
|
||||
$int1 = min($min, $max);
|
||||
$int2 = max($min, $max);
|
||||
|
||||
return mt_rand($int1, $int2);
|
||||
}
|
||||
|
||||
public function randomDigit(): int
|
||||
{
|
||||
return $this->numberBetween(0, 9);
|
||||
}
|
||||
|
||||
public function randomDigitNot(int $except): int
|
||||
{
|
||||
$result = $this->numberBetween(0, 8);
|
||||
|
||||
if ($result >= $except) {
|
||||
++$result;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function randomDigitNotZero(): int
|
||||
{
|
||||
return $this->numberBetween(1, 9);
|
||||
}
|
||||
|
||||
public function randomFloat(?int $nbMaxDecimals = null, float $min = 0, ?float $max = null): float
|
||||
{
|
||||
if (null === $nbMaxDecimals) {
|
||||
$nbMaxDecimals = $this->randomDigit();
|
||||
}
|
||||
|
||||
if (null === $max) {
|
||||
$max = $this->randomNumber();
|
||||
|
||||
if ($min > $max) {
|
||||
$max = $min;
|
||||
}
|
||||
}
|
||||
|
||||
if ($min > $max) {
|
||||
$tmp = $min;
|
||||
$min = $max;
|
||||
$max = $tmp;
|
||||
}
|
||||
|
||||
return round($min + $this->numberBetween() / mt_getrandmax() * ($max - $min), $nbMaxDecimals);
|
||||
}
|
||||
|
||||
public function randomNumber(?int $nbDigits = null, bool $strict = false): int
|
||||
{
|
||||
if (null === $nbDigits) {
|
||||
$nbDigits = $this->randomDigitNotZero();
|
||||
}
|
||||
$max = 10 ** $nbDigits - 1;
|
||||
|
||||
if ($max > mt_getrandmax()) {
|
||||
throw new \InvalidArgumentException('randomNumber() can only generate numbers up to mt_getrandmax()');
|
||||
}
|
||||
|
||||
if ($strict) {
|
||||
return $this->numberBetween(10 ** ($nbDigits - 1), $max);
|
||||
}
|
||||
|
||||
return $this->numberBetween(0, $max);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Extension;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*/
|
||||
final class Uuid implements Extension\UuidExtension
|
||||
{
|
||||
private Extension\NumberExtension $numberExtension;
|
||||
|
||||
public function __construct(?Extension\NumberExtension $numberExtension = null)
|
||||
{
|
||||
|
||||
$this->numberExtension = $numberExtension ?: new Number();
|
||||
}
|
||||
|
||||
public function uuid3(): string
|
||||
{
|
||||
// fix for compatibility with 32bit architecture; each mt_rand call is restricted to 32bit
|
||||
// two such calls will cause 64bits of randomness regardless of architecture
|
||||
$seed = $this->numberExtension->numberBetween(0, 2147483647) . '#' . $this->numberExtension->numberBetween(0, 2147483647);
|
||||
|
||||
// Hash the seed and convert to a byte array
|
||||
$val = md5($seed, true);
|
||||
$byte = array_values(unpack('C16', $val));
|
||||
|
||||
// extract fields from byte array
|
||||
$tLo = ($byte[0] << 24) | ($byte[1] << 16) | ($byte[2] << 8) | $byte[3];
|
||||
$tMi = ($byte[4] << 8) | $byte[5];
|
||||
$tHi = ($byte[6] << 8) | $byte[7];
|
||||
$csLo = $byte[9];
|
||||
$csHi = $byte[8] & 0x3f | (1 << 7);
|
||||
|
||||
// correct byte order for big edian architecture
|
||||
if (pack('L', 0x6162797A) == pack('N', 0x6162797A)) {
|
||||
$tLo = (($tLo & 0x000000ff) << 24) | (($tLo & 0x0000ff00) << 8)
|
||||
| (($tLo & 0x00ff0000) >> 8) | (($tLo & 0xff000000) >> 24);
|
||||
$tMi = (($tMi & 0x00ff) << 8) | (($tMi & 0xff00) >> 8);
|
||||
$tHi = (($tHi & 0x00ff) << 8) | (($tHi & 0xff00) >> 8);
|
||||
}
|
||||
|
||||
// apply version number
|
||||
$tHi &= 0x0fff;
|
||||
$tHi |= (3 << 12);
|
||||
|
||||
// cast to string
|
||||
return sprintf(
|
||||
'%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x',
|
||||
$tLo,
|
||||
$tMi,
|
||||
$tHi,
|
||||
$csHi,
|
||||
$csLo,
|
||||
$byte[10],
|
||||
$byte[11],
|
||||
$byte[12],
|
||||
$byte[13],
|
||||
$byte[14],
|
||||
$byte[15],
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Faker\Core;
|
||||
|
||||
use Faker\Extension;
|
||||
use Faker\Provider\DateTime;
|
||||
|
||||
/**
|
||||
* @experimental This class is experimental and does not fall under our BC promise
|
||||
*/
|
||||
final class Version implements Extension\VersionExtension
|
||||
{
|
||||
private Extension\NumberExtension $numberExtension;
|
||||
/**
|
||||
* @var string[]
|
||||
*/
|
||||
private array $semverCommonPreReleaseIdentifiers = ['alpha', 'beta', 'rc'];
|
||||
|
||||
public function __construct(?Extension\NumberExtension $numberExtension = null)
|
||||
{
|
||||
|
||||
$this->numberExtension = $numberExtension ?: new Number();
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents v2.0.0 of the semantic versioning: https://semver.org/spec/v2.0.0.html
|
||||
*/
|
||||
public function semver(bool $preRelease = false, bool $build = false): string
|
||||
{
|
||||
return sprintf(
|
||||
'%d.%d.%d%s%s',
|
||||
$this->numberExtension->numberBetween(0, 9),
|
||||
$this->numberExtension->numberBetween(0, 99),
|
||||
$this->numberExtension->numberBetween(0, 99),
|
||||
$preRelease && $this->numberExtension->numberBetween(0, 1) === 1 ? '-' . $this->semverPreReleaseIdentifier() : '',
|
||||
$build && $this->numberExtension->numberBetween(0, 1) === 1 ? '+' . $this->semverBuildIdentifier() : '',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Common pre-release identifier
|
||||
*/
|
||||
private function semverPreReleaseIdentifier(): string
|
||||
{
|
||||
$ident = Extension\Helper::randomElement($this->semverCommonPreReleaseIdentifiers);
|
||||
|
||||
if ($this->numberExtension->numberBetween(0, 1) !== 1) {
|
||||
return $ident;
|
||||
}
|
||||
|
||||
return $ident . '.' . $this->numberExtension->numberBetween(1, 99);
|
||||
}
|
||||
|
||||
/**
|
||||
* Common random build identifier
|
||||
*/
|
||||
private function semverBuildIdentifier(): string
|
||||
{
|
||||
if ($this->numberExtension->numberBetween(0, 1) === 1) {
|
||||
// short git revision syntax: https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection
|
||||
return substr(sha1(Extension\Helper::lexify('??????')), 0, 7);
|
||||
}
|
||||
|
||||
// date syntax
|
||||
return DateTime::date('YmdHis');
|
||||
}
|
||||
}
|
||||
+242
@@ -0,0 +1,242 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Extension;
|
||||
|
||||
/**
|
||||
* FakerPHP extension for Date-related randomization.
|
||||
*
|
||||
* Functions accepting a date string use the `strtotime()` function internally.
|
||||
*
|
||||
* @experimental
|
||||
*
|
||||
* @since 1.20.0
|
||||
*/
|
||||
interface DateTimeExtension
|
||||
{
|
||||
/**
|
||||
* Get a DateTime object between January 1, 1970, and `$until` (defaults to "now").
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*
|
||||
* @example DateTime('2005-08-16 20:39:21')
|
||||
*/
|
||||
public function dateTime($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a DateTime object for a date between January 1, 0001, and now.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @example DateTime('1265-03-22 21:15:52')
|
||||
*
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeAD($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a DateTime object a random date between `$from` and `$until`.
|
||||
* Accepts date strings that can be recognized by `strtotime()`.
|
||||
*
|
||||
* @param \DateTime|string $from defaults to 30 years ago
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeBetween($from = '-30 years', $until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a DateTime object based on a random date between `$from` and an interval.
|
||||
* Accepts date string that can be recognized by `strtotime()`.
|
||||
*
|
||||
* @param \DateTime|int|string $from defaults to 30 years ago
|
||||
* @param string $interval defaults to 5 days after
|
||||
* @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeInInterval($from = '-30 years', string $interval = '+5 days', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere inside the current week.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone zone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeThisWeek($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere inside the current month.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeThisMonth($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere inside the current year.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeThisYear($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere inside the current decade.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeThisDecade($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere inside the current century.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
* @param string|null $timezone timezone for generated date, fallback to `DateTime::$defaultTimezone` and `date_default_timezone_get()`.
|
||||
*
|
||||
* @see \DateTimeZone
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public function dateTimeThisCentury($until = 'now', ?string $timezone = null): \DateTime;
|
||||
|
||||
/**
|
||||
* Get a date string between January 1, 1970, and `$until`.
|
||||
*
|
||||
* @param string $format DateTime format
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @see https://www.php.net/manual/en/datetime.format.php
|
||||
*/
|
||||
public function date(string $format = 'Y-m-d', $until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a time string (24h format by default).
|
||||
*
|
||||
* @param string $format DateTime format
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @see https://www.php.net/manual/en/datetime.format.php
|
||||
*/
|
||||
public function time(string $format = 'H:i:s', $until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a UNIX (POSIX-compatible) timestamp between January 1, 1970, and `$until`.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*/
|
||||
public function unixTime($until = 'now'): int;
|
||||
|
||||
/**
|
||||
* Get a date string according to the ISO-8601 standard.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*/
|
||||
public function iso8601($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a string containing either "am" or "pm".
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @example 'am'
|
||||
*/
|
||||
public function amPm($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a localized random day of the month.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @example '16'
|
||||
*/
|
||||
public function dayOfMonth($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a localized random day of the week.
|
||||
*
|
||||
* Uses internal DateTime formatting, hence PHP's internal locale will be used (change using `setlocale()`).
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @example 'Tuesday'
|
||||
*
|
||||
* @see setlocale
|
||||
* @see https://www.php.net/manual/en/function.setlocale.php Set a different output language
|
||||
*/
|
||||
public function dayOfWeek($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a random month (numbered).
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @example '7'
|
||||
*/
|
||||
public function month($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a random month.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @see setlocale
|
||||
* @see https://www.php.net/manual/en/function.setlocale.php Set a different output language
|
||||
*
|
||||
* @example 'September'
|
||||
*/
|
||||
public function monthName($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a random year between 1970 and `$until`.
|
||||
*
|
||||
* @param \DateTime|int|string $until maximum timestamp, defaults to "now"
|
||||
*
|
||||
* @example '1987'
|
||||
*/
|
||||
public function year($until = 'now'): string;
|
||||
|
||||
/**
|
||||
* Get a random century, formatted as Roman numerals.
|
||||
*
|
||||
* @example 'XVII'
|
||||
*/
|
||||
public function century(): string;
|
||||
|
||||
/**
|
||||
* Get a random timezone, uses `\DateTimeZone::listIdentifiers()` internally.
|
||||
*
|
||||
* @param string|null $countryCode two-letter ISO 3166-1 compatible country code
|
||||
*
|
||||
* @example 'Europe/Rome'
|
||||
*/
|
||||
public function timezone(?string $countryCode = null): string;
|
||||
}
|
||||
@@ -0,0 +1,985 @@
|
||||
<?php
|
||||
|
||||
namespace Faker;
|
||||
|
||||
use Faker\Container\ContainerInterface;
|
||||
|
||||
/**
|
||||
* @property string $citySuffix
|
||||
*
|
||||
* @method string citySuffix()
|
||||
*
|
||||
* @property string $streetSuffix
|
||||
*
|
||||
* @method string streetSuffix()
|
||||
*
|
||||
* @property string $buildingNumber
|
||||
*
|
||||
* @method string buildingNumber()
|
||||
*
|
||||
* @property string $city
|
||||
*
|
||||
* @method string city()
|
||||
*
|
||||
* @property string $streetName
|
||||
*
|
||||
* @method string streetName()
|
||||
*
|
||||
* @property string $streetAddress
|
||||
*
|
||||
* @method string streetAddress()
|
||||
*
|
||||
* @property string $postcode
|
||||
*
|
||||
* @method string postcode()
|
||||
*
|
||||
* @property string $address
|
||||
*
|
||||
* @method string address()
|
||||
*
|
||||
* @property string $country
|
||||
*
|
||||
* @method string country()
|
||||
*
|
||||
* @property float $latitude
|
||||
*
|
||||
* @method float latitude($min = -90, $max = 90)
|
||||
*
|
||||
* @property float $longitude
|
||||
*
|
||||
* @method float longitude($min = -180, $max = 180)
|
||||
*
|
||||
* @property float[] $localCoordinates
|
||||
*
|
||||
* @method float[] localCoordinates()
|
||||
*
|
||||
* @property int $randomDigitNotNull
|
||||
*
|
||||
* @method int randomDigitNotNull()
|
||||
*
|
||||
* @property mixed $passthrough
|
||||
*
|
||||
* @method mixed passthrough($value)
|
||||
*
|
||||
* @property string $randomLetter
|
||||
*
|
||||
* @method string randomLetter()
|
||||
*
|
||||
* @property string $randomAscii
|
||||
*
|
||||
* @method string randomAscii()
|
||||
*
|
||||
* @property array $randomElements
|
||||
*
|
||||
* @method array randomElements($array = ['a', 'b', 'c'], $count = 1, $allowDuplicates = false)
|
||||
*
|
||||
* @property mixed $randomElement
|
||||
*
|
||||
* @method mixed randomElement($array = ['a', 'b', 'c'])
|
||||
*
|
||||
* @property int|string|null $randomKey
|
||||
*
|
||||
* @method int|string|null randomKey($array = [])
|
||||
*
|
||||
* @property array|string $shuffle
|
||||
*
|
||||
* @method array|string shuffle($arg = '')
|
||||
*
|
||||
* @property array $shuffleArray
|
||||
*
|
||||
* @method array shuffleArray($array = [])
|
||||
*
|
||||
* @property string $shuffleString
|
||||
*
|
||||
* @method string shuffleString($string = '', $encoding = 'UTF-8')
|
||||
*
|
||||
* @property string $numerify
|
||||
*
|
||||
* @method string numerify($string = '###')
|
||||
*
|
||||
* @property string $lexify
|
||||
*
|
||||
* @method string lexify($string = '????')
|
||||
*
|
||||
* @property string $bothify
|
||||
*
|
||||
* @method string bothify($string = '## ??')
|
||||
*
|
||||
* @property string $asciify
|
||||
*
|
||||
* @method string asciify($string = '****')
|
||||
*
|
||||
* @property string $regexify
|
||||
*
|
||||
* @method string regexify($regex = '')
|
||||
*
|
||||
* @property string $toLower
|
||||
*
|
||||
* @method string toLower($string = '')
|
||||
*
|
||||
* @property string $toUpper
|
||||
*
|
||||
* @method string toUpper($string = '')
|
||||
*
|
||||
* @property int $biasedNumberBetween
|
||||
*
|
||||
* @method int biasedNumberBetween($min = 0, $max = 100, $function = 'sqrt')
|
||||
*
|
||||
* @property string $hexColor
|
||||
*
|
||||
* @method string hexColor()
|
||||
*
|
||||
* @property string $safeHexColor
|
||||
*
|
||||
* @method string safeHexColor()
|
||||
*
|
||||
* @property array $rgbColorAsArray
|
||||
*
|
||||
* @method array rgbColorAsArray()
|
||||
*
|
||||
* @property string $rgbColor
|
||||
*
|
||||
* @method string rgbColor()
|
||||
*
|
||||
* @property string $rgbCssColor
|
||||
*
|
||||
* @method string rgbCssColor()
|
||||
*
|
||||
* @property string $rgbaCssColor
|
||||
*
|
||||
* @method string rgbaCssColor()
|
||||
*
|
||||
* @property string $safeColorName
|
||||
*
|
||||
* @method string safeColorName()
|
||||
*
|
||||
* @property string $colorName
|
||||
*
|
||||
* @method string colorName()
|
||||
*
|
||||
* @property string $hslColor
|
||||
*
|
||||
* @method string hslColor()
|
||||
*
|
||||
* @property array $hslColorAsArray
|
||||
*
|
||||
* @method array hslColorAsArray()
|
||||
*
|
||||
* @property string $company
|
||||
*
|
||||
* @method string company()
|
||||
*
|
||||
* @property string $companySuffix
|
||||
*
|
||||
* @method string companySuffix()
|
||||
*
|
||||
* @property string $jobTitle
|
||||
*
|
||||
* @method string jobTitle()
|
||||
*
|
||||
* @property int $unixTime
|
||||
*
|
||||
* @method int unixTime($max = 'now')
|
||||
*
|
||||
* @property \DateTime $dateTime
|
||||
*
|
||||
* @method \DateTime dateTime($max = 'now', $timezone = null)
|
||||
*
|
||||
* @property \DateTime $dateTimeAD
|
||||
*
|
||||
* @method \DateTime dateTimeAD($max = 'now', $timezone = null)
|
||||
*
|
||||
* @property string $iso8601
|
||||
*
|
||||
* @method string iso8601($max = 'now')
|
||||
*
|
||||
* @property string $date
|
||||
*
|
||||
* @method string date($format = 'Y-m-d', $max = 'now')
|
||||
*
|
||||
* @property string $time
|
||||
*
|
||||
* @method string time($format = 'H:i:s', $max = 'now')
|
||||
*
|
||||
* @property \DateTime $dateTimeBetween
|
||||
*
|
||||
* @method \DateTime dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null)
|
||||
*
|
||||
* @property \DateTime $dateTimeInInterval
|
||||
*
|
||||
* @method \DateTime dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null)
|
||||
*
|
||||
* @property \DateTime $dateTimeThisCentury
|
||||
*
|
||||
* @method \DateTime dateTimeThisCentury($max = 'now', $timezone = null)
|
||||
*
|
||||
* @property \DateTime $dateTimeThisDecade
|
||||
*
|
||||
* @method \DateTime dateTimeThisDecade($max = 'now', $timezone = null)
|
||||
*
|
||||
* @property \DateTime $dateTimeThisYear
|
||||
*
|
||||
* @method \DateTime dateTimeThisYear($max = 'now', $timezone = null)
|
||||
*
|
||||
* @property \DateTime $dateTimeThisMonth
|
||||
*
|
||||
* @method \DateTime dateTimeThisMonth($max = 'now', $timezone = null)
|
||||
*
|
||||
* @property string $amPm
|
||||
*
|
||||
* @method string amPm($max = 'now')
|
||||
*
|
||||
* @property string $dayOfMonth
|
||||
*
|
||||
* @method string dayOfMonth($max = 'now')
|
||||
*
|
||||
* @property string $dayOfWeek
|
||||
*
|
||||
* @method string dayOfWeek($max = 'now')
|
||||
*
|
||||
* @property string $month
|
||||
*
|
||||
* @method string month($max = 'now')
|
||||
*
|
||||
* @property string $monthName
|
||||
*
|
||||
* @method string monthName($max = 'now')
|
||||
*
|
||||
* @property string $year
|
||||
*
|
||||
* @method string year($max = 'now')
|
||||
*
|
||||
* @property string $century
|
||||
*
|
||||
* @method string century()
|
||||
*
|
||||
* @property string $timezone
|
||||
*
|
||||
* @method string timezone($countryCode = null)
|
||||
*
|
||||
* @property void $setDefaultTimezone
|
||||
*
|
||||
* @method void setDefaultTimezone($timezone = null)
|
||||
*
|
||||
* @property string $getDefaultTimezone
|
||||
*
|
||||
* @method string getDefaultTimezone()
|
||||
*
|
||||
* @property string $file
|
||||
*
|
||||
* @method string file($sourceDirectory = '/tmp', $targetDirectory = '/tmp', $fullPath = true)
|
||||
*
|
||||
* @property string $randomHtml
|
||||
*
|
||||
* @method string randomHtml($maxDepth = 4, $maxWidth = 4)
|
||||
*
|
||||
* @property string $imageUrl
|
||||
*
|
||||
* @method string imageUrl($width = 640, $height = 480, $category = null, $randomize = true, $word = null, $gray = false, string $format = 'png')
|
||||
*
|
||||
* @property string $image
|
||||
*
|
||||
* @method string image($dir = null, $width = 640, $height = 480, $category = null, $fullPath = true, $randomize = true, $word = null, $gray = false, string $format = 'png')
|
||||
*
|
||||
* @property string $email
|
||||
*
|
||||
* @method string email()
|
||||
*
|
||||
* @property string $safeEmail
|
||||
*
|
||||
* @method string safeEmail()
|
||||
*
|
||||
* @property string $freeEmail
|
||||
*
|
||||
* @method string freeEmail()
|
||||
*
|
||||
* @property string $companyEmail
|
||||
*
|
||||
* @method string companyEmail()
|
||||
*
|
||||
* @property string $freeEmailDomain
|
||||
*
|
||||
* @method string freeEmailDomain()
|
||||
*
|
||||
* @property string $safeEmailDomain
|
||||
*
|
||||
* @method string safeEmailDomain()
|
||||
*
|
||||
* @property string $userName
|
||||
*
|
||||
* @method string userName()
|
||||
*
|
||||
* @property string $password
|
||||
*
|
||||
* @method string password($minLength = 6, $maxLength = 20)
|
||||
*
|
||||
* @property string $domainName
|
||||
*
|
||||
* @method string domainName()
|
||||
*
|
||||
* @property string $domainWord
|
||||
*
|
||||
* @method string domainWord()
|
||||
*
|
||||
* @property string $tld
|
||||
*
|
||||
* @method string tld()
|
||||
*
|
||||
* @property string $url
|
||||
*
|
||||
* @method string url()
|
||||
*
|
||||
* @property string $slug
|
||||
*
|
||||
* @method string slug($nbWords = 6, $variableNbWords = true)
|
||||
*
|
||||
* @property string $ipv4
|
||||
*
|
||||
* @method string ipv4()
|
||||
*
|
||||
* @property string $ipv6
|
||||
*
|
||||
* @method string ipv6()
|
||||
*
|
||||
* @property string $localIpv4
|
||||
*
|
||||
* @method string localIpv4()
|
||||
*
|
||||
* @property string $macAddress
|
||||
*
|
||||
* @method string macAddress()
|
||||
*
|
||||
* @property string $word
|
||||
*
|
||||
* @method string word()
|
||||
*
|
||||
* @property array|string $words
|
||||
*
|
||||
* @method array|string words($nb = 3, $asText = false)
|
||||
*
|
||||
* @property string $sentence
|
||||
*
|
||||
* @method string sentence($nbWords = 6, $variableNbWords = true)
|
||||
*
|
||||
* @property array|string $sentences
|
||||
*
|
||||
* @method array|string sentences($nb = 3, $asText = false)
|
||||
*
|
||||
* @property string $paragraph
|
||||
*
|
||||
* @method string paragraph($nbSentences = 3, $variableNbSentences = true)
|
||||
*
|
||||
* @property array|string $paragraphs
|
||||
*
|
||||
* @method array|string paragraphs($nb = 3, $asText = false)
|
||||
*
|
||||
* @property string $text
|
||||
*
|
||||
* @method string text($maxNbChars = 200)
|
||||
*
|
||||
* @property bool $boolean
|
||||
*
|
||||
* @method bool boolean($chanceOfGettingTrue = 50)
|
||||
*
|
||||
* @property string $md5
|
||||
*
|
||||
* @method string md5()
|
||||
*
|
||||
* @property string $sha1
|
||||
*
|
||||
* @method string sha1()
|
||||
*
|
||||
* @property string $sha256
|
||||
*
|
||||
* @method string sha256()
|
||||
*
|
||||
* @property string $locale
|
||||
*
|
||||
* @method string locale()
|
||||
*
|
||||
* @property string $countryCode
|
||||
*
|
||||
* @method string countryCode()
|
||||
*
|
||||
* @property string $countryISOAlpha3
|
||||
*
|
||||
* @method string countryISOAlpha3()
|
||||
*
|
||||
* @property string $languageCode
|
||||
*
|
||||
* @method string languageCode()
|
||||
*
|
||||
* @property string $currencyCode
|
||||
*
|
||||
* @method string currencyCode()
|
||||
*
|
||||
* @property string $emoji
|
||||
*
|
||||
* @method string emoji()
|
||||
*
|
||||
* @property string $creditCardType
|
||||
*
|
||||
* @method string creditCardType()
|
||||
*
|
||||
* @property string $creditCardNumber
|
||||
*
|
||||
* @method string creditCardNumber($type = null, $formatted = false, $separator = '-')
|
||||
*
|
||||
* @property \DateTime $creditCardExpirationDate
|
||||
*
|
||||
* @method \DateTime creditCardExpirationDate($valid = true)
|
||||
*
|
||||
* @property string $creditCardExpirationDateString
|
||||
*
|
||||
* @method string creditCardExpirationDateString($valid = true, $expirationDateFormat = null)
|
||||
*
|
||||
* @property array $creditCardDetails
|
||||
*
|
||||
* @method array creditCardDetails($valid = true)
|
||||
*
|
||||
* @property string $iban
|
||||
*
|
||||
* @method string iban($countryCode = null, $prefix = '', $length = null)
|
||||
*
|
||||
* @property string $swiftBicNumber
|
||||
*
|
||||
* @method string swiftBicNumber()
|
||||
*
|
||||
* @property string $name
|
||||
*
|
||||
* @method string name($gender = null)
|
||||
*
|
||||
* @property string $firstName
|
||||
*
|
||||
* @method string firstName($gender = null)
|
||||
*
|
||||
* @property string $firstNameMale
|
||||
*
|
||||
* @method string firstNameMale()
|
||||
*
|
||||
* @property string $firstNameFemale
|
||||
*
|
||||
* @method string firstNameFemale()
|
||||
*
|
||||
* @property string $lastName
|
||||
*
|
||||
* @method string lastName($gender = null)
|
||||
*
|
||||
* @property string $title
|
||||
*
|
||||
* @method string title($gender = null)
|
||||
*
|
||||
* @property string $titleMale
|
||||
*
|
||||
* @method string titleMale()
|
||||
*
|
||||
* @property string $titleFemale
|
||||
*
|
||||
* @method string titleFemale()
|
||||
*
|
||||
* @property string $phoneNumber
|
||||
*
|
||||
* @method string phoneNumber()
|
||||
*
|
||||
* @property string $e164PhoneNumber
|
||||
*
|
||||
* @method string e164PhoneNumber()
|
||||
*
|
||||
* @property int $imei
|
||||
*
|
||||
* @method int imei()
|
||||
*
|
||||
* @property string $realText
|
||||
*
|
||||
* @method string realText($maxNbChars = 200, $indexSize = 2)
|
||||
*
|
||||
* @property string $realTextBetween
|
||||
*
|
||||
* @method string realTextBetween($minNbChars = 160, $maxNbChars = 200, $indexSize = 2)
|
||||
*
|
||||
* @property string $macProcessor
|
||||
*
|
||||
* @method string macProcessor()
|
||||
*
|
||||
* @property string $linuxProcessor
|
||||
*
|
||||
* @method string linuxProcessor()
|
||||
*
|
||||
* @property string $userAgent
|
||||
*
|
||||
* @method string userAgent()
|
||||
*
|
||||
* @property string $chrome
|
||||
*
|
||||
* @method string chrome()
|
||||
*
|
||||
* @property string $msedge
|
||||
*
|
||||
* @method string msedge()
|
||||
*
|
||||
* @property string $firefox
|
||||
*
|
||||
* @method string firefox()
|
||||
*
|
||||
* @property string $safari
|
||||
*
|
||||
* @method string safari()
|
||||
*
|
||||
* @property string $opera
|
||||
*
|
||||
* @method string opera()
|
||||
*
|
||||
* @property string $internetExplorer
|
||||
*
|
||||
* @method string internetExplorer()
|
||||
*
|
||||
* @property string $windowsPlatformToken
|
||||
*
|
||||
* @method string windowsPlatformToken()
|
||||
*
|
||||
* @property string $macPlatformToken
|
||||
*
|
||||
* @method string macPlatformToken()
|
||||
*
|
||||
* @property string $iosMobileToken
|
||||
*
|
||||
* @method string iosMobileToken()
|
||||
*
|
||||
* @property string $linuxPlatformToken
|
||||
*
|
||||
* @method string linuxPlatformToken()
|
||||
*
|
||||
* @property string $uuid
|
||||
*
|
||||
* @method string uuid()
|
||||
*/
|
||||
class Generator
|
||||
{
|
||||
protected $providers = [];
|
||||
protected $formatters = [];
|
||||
|
||||
private $container;
|
||||
|
||||
/**
|
||||
* @var UniqueGenerator
|
||||
*/
|
||||
private $uniqueGenerator;
|
||||
|
||||
public function __construct(?ContainerInterface $container = null)
|
||||
{
|
||||
$this->container = $container ?: Container\ContainerBuilder::withDefaultExtensions()->build();
|
||||
}
|
||||
|
||||
/**
|
||||
* @template T of Extension\Extension
|
||||
*
|
||||
* @param class-string<T> $id
|
||||
*
|
||||
* @throws Extension\ExtensionNotFound
|
||||
*
|
||||
* @return T
|
||||
*/
|
||||
public function ext(string $id): Extension\Extension
|
||||
{
|
||||
if (!$this->container->has($id)) {
|
||||
throw new Extension\ExtensionNotFound(sprintf(
|
||||
'No Faker extension with id "%s" was loaded.',
|
||||
$id,
|
||||
));
|
||||
}
|
||||
|
||||
$extension = $this->container->get($id);
|
||||
|
||||
if ($extension instanceof Extension\GeneratorAwareExtension) {
|
||||
$extension = $extension->withGenerator($this);
|
||||
}
|
||||
|
||||
return $extension;
|
||||
}
|
||||
|
||||
public function addProvider($provider)
|
||||
{
|
||||
array_unshift($this->providers, $provider);
|
||||
|
||||
$this->formatters = [];
|
||||
}
|
||||
|
||||
public function getProviders()
|
||||
{
|
||||
return $this->providers;
|
||||
}
|
||||
|
||||
/**
|
||||
* With the unique generator you are guaranteed to never get the same two
|
||||
* values.
|
||||
*
|
||||
* <code>
|
||||
* // will never return twice the same value
|
||||
* $faker->unique()->randomElement(array(1, 2, 3));
|
||||
* </code>
|
||||
*
|
||||
* @param bool $reset If set to true, resets the list of existing values
|
||||
* @param int $maxRetries Maximum number of retries to find a unique value,
|
||||
* After which an OverflowException is thrown.
|
||||
*
|
||||
* @throws \OverflowException When no unique value can be found by iterating $maxRetries times
|
||||
*
|
||||
* @return self A proxy class returning only non-existing values
|
||||
*/
|
||||
public function unique($reset = false, $maxRetries = 10000)
|
||||
{
|
||||
if ($reset || $this->uniqueGenerator === null) {
|
||||
$this->uniqueGenerator = new UniqueGenerator($this, $maxRetries);
|
||||
}
|
||||
|
||||
return $this->uniqueGenerator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a value only some percentage of the time.
|
||||
*
|
||||
* @param float $weight A probability between 0 and 1, 0 means that we always get the default value.
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public function optional(float $weight = 0.5, $default = null)
|
||||
{
|
||||
if ($weight > 1) {
|
||||
trigger_deprecation('fakerphp/faker', '1.16', 'First argument ($weight) to method "optional()" must be between 0 and 1. You passed %f, we assume you meant %f.', $weight, $weight / 100);
|
||||
$weight = $weight / 100;
|
||||
}
|
||||
|
||||
return new ChanceGenerator($this, $weight, $default);
|
||||
}
|
||||
|
||||
/**
|
||||
* To make sure the value meet some criteria, pass a callable that verifies the
|
||||
* output. If the validator fails, the generator will try again.
|
||||
*
|
||||
* The value validity is determined by a function passed as first argument.
|
||||
*
|
||||
* <code>
|
||||
* $values = array();
|
||||
* $evenValidator = function ($digit) {
|
||||
* return $digit % 2 === 0;
|
||||
* };
|
||||
* for ($i=0; $i < 10; $i++) {
|
||||
* $values []= $faker->valid($evenValidator)->randomDigit;
|
||||
* }
|
||||
* print_r($values); // [0, 4, 8, 4, 2, 6, 0, 8, 8, 6]
|
||||
* </code>
|
||||
*
|
||||
* @param ?\Closure $validator A function returning true for valid values
|
||||
* @param int $maxRetries Maximum number of retries to find a valid value,
|
||||
* After which an OverflowException is thrown.
|
||||
*
|
||||
* @throws \OverflowException When no valid value can be found by iterating $maxRetries times
|
||||
*
|
||||
* @return self A proxy class returning only valid values
|
||||
*/
|
||||
public function valid(?\Closure $validator = null, int $maxRetries = 10000)
|
||||
{
|
||||
return new ValidGenerator($this, $validator, $maxRetries);
|
||||
}
|
||||
|
||||
public function seed($seed = null)
|
||||
{
|
||||
if ($seed === null) {
|
||||
mt_srand();
|
||||
} else {
|
||||
mt_srand((int) $seed, self::mode());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://www.php.net/manual/en/migration83.deprecated.php#migration83.deprecated.random
|
||||
*/
|
||||
private static function mode(): int
|
||||
{
|
||||
if (PHP_VERSION_ID < 80300) {
|
||||
return MT_RAND_PHP;
|
||||
}
|
||||
|
||||
return MT_RAND_MT19937;
|
||||
}
|
||||
|
||||
public function format($format, $arguments = [])
|
||||
{
|
||||
return call_user_func_array($this->getFormatter($format), $arguments);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $format
|
||||
*
|
||||
* @return callable
|
||||
*/
|
||||
public function getFormatter($format)
|
||||
{
|
||||
if (isset($this->formatters[$format])) {
|
||||
return $this->formatters[$format];
|
||||
}
|
||||
|
||||
if (method_exists($this, $format)) {
|
||||
$this->formatters[$format] = [$this, $format];
|
||||
|
||||
return $this->formatters[$format];
|
||||
}
|
||||
|
||||
// "Faker\Core\Barcode->ean13"
|
||||
if (preg_match('|^([a-zA-Z0-9\\\]+)->([a-zA-Z0-9]+)$|', $format, $matches)) {
|
||||
$this->formatters[$format] = [$this->ext($matches[1]), $matches[2]];
|
||||
|
||||
return $this->formatters[$format];
|
||||
}
|
||||
|
||||
foreach ($this->providers as $provider) {
|
||||
if (method_exists($provider, $format)) {
|
||||
$this->formatters[$format] = [$provider, $format];
|
||||
|
||||
return $this->formatters[$format];
|
||||
}
|
||||
}
|
||||
|
||||
throw new \InvalidArgumentException(sprintf('Unknown format "%s"', $format));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces tokens ('{{ tokenName }}') with the result from the token method call
|
||||
*
|
||||
* @param string $string String that needs to bet parsed
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function parse($string)
|
||||
{
|
||||
$callback = function ($matches) {
|
||||
return $this->format($matches[1]);
|
||||
};
|
||||
|
||||
return preg_replace_callback('/{{\s?(\w+|[\w\\\]+->\w+?)\s?}}/u', $callback, $string);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random MIME type
|
||||
*
|
||||
* @example 'video/avi'
|
||||
*/
|
||||
public function mimeType()
|
||||
{
|
||||
return $this->ext(Extension\FileExtension::class)->mimeType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random file extension (without a dot)
|
||||
*
|
||||
* @example avi
|
||||
*/
|
||||
public function fileExtension()
|
||||
{
|
||||
return $this->ext(Extension\FileExtension::class)->extension();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a full path to a new real file on the system.
|
||||
*/
|
||||
public function filePath()
|
||||
{
|
||||
return $this->ext(Extension\FileExtension::class)->filePath();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an actual blood type
|
||||
*
|
||||
* @example 'AB'
|
||||
*/
|
||||
public function bloodType(): string
|
||||
{
|
||||
return $this->ext(Extension\BloodExtension::class)->bloodType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random resis value
|
||||
*
|
||||
* @example '+'
|
||||
*/
|
||||
public function bloodRh(): string
|
||||
{
|
||||
return $this->ext(Extension\BloodExtension::class)->bloodRh();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a full blood group
|
||||
*
|
||||
* @example 'AB+'
|
||||
*/
|
||||
public function bloodGroup(): string
|
||||
{
|
||||
return $this->ext(Extension\BloodExtension::class)->bloodGroup();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random EAN13 barcode.
|
||||
*
|
||||
* @example '4006381333931'
|
||||
*/
|
||||
public function ean13(): string
|
||||
{
|
||||
return $this->ext(Extension\BarcodeExtension::class)->ean13();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random EAN8 barcode.
|
||||
*
|
||||
* @example '73513537'
|
||||
*/
|
||||
public function ean8(): string
|
||||
{
|
||||
return $this->ext(Extension\BarcodeExtension::class)->ean8();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random ISBN-10 code
|
||||
*
|
||||
* @see http://en.wikipedia.org/wiki/International_Standard_Book_Number
|
||||
*
|
||||
* @example '4881416324'
|
||||
*/
|
||||
public function isbn10(): string
|
||||
{
|
||||
return $this->ext(Extension\BarcodeExtension::class)->isbn10();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a random ISBN-13 code
|
||||
*
|
||||
* @see http://en.wikipedia.org/wiki/International_Standard_Book_Number
|
||||
*
|
||||
* @example '9790404436093'
|
||||
*/
|
||||
public function isbn13(): string
|
||||
{
|
||||
return $this->ext(Extension\BarcodeExtension::class)->isbn13();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a random number between $int1 and $int2 (any order)
|
||||
*
|
||||
* @example 79907610
|
||||
*/
|
||||
public function numberBetween($int1 = 0, $int2 = 2147483647): int
|
||||
{
|
||||
return $this->ext(Extension\NumberExtension::class)->numberBetween((int) $int1, (int) $int2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a random number between 0 and 9
|
||||
*/
|
||||
public function randomDigit(): int
|
||||
{
|
||||
return $this->ext(Extension\NumberExtension::class)->randomDigit();
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a random digit, which cannot be $except
|
||||
*/
|
||||
public function randomDigitNot($except): int
|
||||
{
|
||||
return $this->ext(Extension\NumberExtension::class)->randomDigitNot((int) $except);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a random number between 1 and 9
|
||||
*/
|
||||
public function randomDigitNotZero(): int
|
||||
{
|
||||
return $this->ext(Extension\NumberExtension::class)->randomDigitNotZero();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a random float number
|
||||
*
|
||||
* @example 48.8932
|
||||
*/
|
||||
public function randomFloat($nbMaxDecimals = null, $min = 0, $max = null): float
|
||||
{
|
||||
return $this->ext(Extension\NumberExtension::class)->randomFloat(
|
||||
$nbMaxDecimals !== null ? (int) $nbMaxDecimals : null,
|
||||
(float) $min,
|
||||
$max !== null ? (float) $max : null,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a random integer with 0 to $nbDigits digits.
|
||||
*
|
||||
* The maximum value returned is mt_getrandmax()
|
||||
*
|
||||
* @param int|null $nbDigits Defaults to a random number between 1 and 9
|
||||
* @param bool $strict Whether the returned number should have exactly $nbDigits
|
||||
*
|
||||
* @example 79907610
|
||||
*/
|
||||
public function randomNumber($nbDigits = null, $strict = false): int
|
||||
{
|
||||
return $this->ext(Extension\NumberExtension::class)->randomNumber(
|
||||
$nbDigits !== null ? (int) $nbDigits : null,
|
||||
(bool) $strict,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a version number in semantic versioning syntax 2.0.0. (https://semver.org/spec/v2.0.0.html)
|
||||
*
|
||||
* @param bool $preRelease Pre release parts may be randomly included
|
||||
* @param bool $build Build parts may be randomly included
|
||||
*
|
||||
* @example 1.0.0
|
||||
* @example 1.0.0-alpha.1
|
||||
* @example 1.0.0-alpha.1+b71f04d
|
||||
*/
|
||||
public function semver(bool $preRelease = false, bool $build = false): string
|
||||
{
|
||||
return $this->ext(Extension\VersionExtension::class)->semver($preRelease, $build);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
protected function callFormatWithMatches($matches)
|
||||
{
|
||||
trigger_deprecation('fakerphp/faker', '1.14', 'Protected method "callFormatWithMatches()" is deprecated and will be removed.');
|
||||
|
||||
return $this->format($matches[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $attribute
|
||||
*
|
||||
* @deprecated Use a method instead.
|
||||
*/
|
||||
public function __get($attribute)
|
||||
{
|
||||
trigger_deprecation('fakerphp/faker', '1.14', 'Accessing property "%s" is deprecated, use "%s()" instead.', $attribute, $attribute);
|
||||
|
||||
return $this->format($attribute);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $method
|
||||
* @param array $attributes
|
||||
*/
|
||||
public function __call($method, $attributes)
|
||||
{
|
||||
return $this->format($method, $attributes);
|
||||
}
|
||||
|
||||
public function __destruct()
|
||||
{
|
||||
$this->seed();
|
||||
}
|
||||
|
||||
public function __wakeup()
|
||||
{
|
||||
$this->formatters = [];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,180 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Guesser;
|
||||
|
||||
use Faker\Provider\Base;
|
||||
|
||||
class Name
|
||||
{
|
||||
protected $generator;
|
||||
|
||||
public function __construct(\Faker\Generator $generator)
|
||||
{
|
||||
$this->generator = $generator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @param int|null $size Length of field, if known
|
||||
*
|
||||
* @return callable|null
|
||||
*/
|
||||
public function guessFormat($name, $size = null)
|
||||
{
|
||||
$name = Base::toLower($name);
|
||||
$generator = $this->generator;
|
||||
|
||||
if (preg_match('/^is[_A-Z]/', $name)) {
|
||||
return static function () use ($generator) {
|
||||
return $generator->boolean();
|
||||
};
|
||||
}
|
||||
|
||||
if (preg_match('/(_a|A)t$/', $name)) {
|
||||
return static function () use ($generator) {
|
||||
return $generator->dateTime();
|
||||
};
|
||||
}
|
||||
|
||||
switch (str_replace('_', '', $name)) {
|
||||
case 'firstname':
|
||||
return static function () use ($generator) {
|
||||
return $generator->firstName();
|
||||
};
|
||||
|
||||
case 'lastname':
|
||||
return static function () use ($generator) {
|
||||
return $generator->lastName();
|
||||
};
|
||||
|
||||
case 'username':
|
||||
case 'login':
|
||||
return static function () use ($generator) {
|
||||
return $generator->userName();
|
||||
};
|
||||
|
||||
case 'email':
|
||||
case 'emailaddress':
|
||||
return static function () use ($generator) {
|
||||
return $generator->email();
|
||||
};
|
||||
|
||||
case 'phonenumber':
|
||||
case 'phone':
|
||||
case 'telephone':
|
||||
case 'telnumber':
|
||||
return static function () use ($generator) {
|
||||
return $generator->phoneNumber();
|
||||
};
|
||||
|
||||
case 'address':
|
||||
return static function () use ($generator) {
|
||||
return $generator->address();
|
||||
};
|
||||
|
||||
case 'city':
|
||||
case 'town':
|
||||
return static function () use ($generator) {
|
||||
return $generator->city();
|
||||
};
|
||||
|
||||
case 'streetaddress':
|
||||
return static function () use ($generator) {
|
||||
return $generator->streetAddress();
|
||||
};
|
||||
|
||||
case 'postcode':
|
||||
case 'zipcode':
|
||||
return static function () use ($generator) {
|
||||
return $generator->postcode();
|
||||
};
|
||||
|
||||
case 'state':
|
||||
return static function () use ($generator) {
|
||||
return $generator->state();
|
||||
};
|
||||
|
||||
case 'county':
|
||||
if ($this->generator->locale == 'en_US') {
|
||||
return static function () use ($generator) {
|
||||
return sprintf('%s County', $generator->city());
|
||||
};
|
||||
}
|
||||
|
||||
return static function () use ($generator) {
|
||||
return $generator->state();
|
||||
};
|
||||
|
||||
case 'country':
|
||||
switch ($size) {
|
||||
case 2:
|
||||
return static function () use ($generator) {
|
||||
return $generator->countryCode();
|
||||
};
|
||||
|
||||
case 3:
|
||||
return static function () use ($generator) {
|
||||
return $generator->countryISOAlpha3();
|
||||
};
|
||||
|
||||
case 5:
|
||||
case 6:
|
||||
return static function () use ($generator) {
|
||||
return $generator->locale();
|
||||
};
|
||||
|
||||
default:
|
||||
return static function () use ($generator) {
|
||||
return $generator->country();
|
||||
};
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'locale':
|
||||
return static function () use ($generator) {
|
||||
return $generator->locale();
|
||||
};
|
||||
|
||||
case 'currency':
|
||||
case 'currencycode':
|
||||
return static function () use ($generator) {
|
||||
return $generator->currencyCode();
|
||||
};
|
||||
|
||||
case 'url':
|
||||
case 'website':
|
||||
return static function () use ($generator) {
|
||||
return $generator->url();
|
||||
};
|
||||
|
||||
case 'company':
|
||||
case 'companyname':
|
||||
case 'employer':
|
||||
return static function () use ($generator) {
|
||||
return $generator->company();
|
||||
};
|
||||
|
||||
case 'title':
|
||||
if ($size !== null && $size <= 10) {
|
||||
return static function () use ($generator) {
|
||||
return $generator->title();
|
||||
};
|
||||
}
|
||||
|
||||
return static function () use ($generator) {
|
||||
return $generator->sentence();
|
||||
};
|
||||
|
||||
case 'body':
|
||||
case 'summary':
|
||||
case 'article':
|
||||
case 'description':
|
||||
return static function () use ($generator) {
|
||||
return $generator->text();
|
||||
};
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\ORM\Doctrine;
|
||||
|
||||
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
|
||||
use Faker\Generator;
|
||||
|
||||
require_once 'backward-compatibility.php';
|
||||
|
||||
class ColumnTypeGuesser
|
||||
{
|
||||
protected $generator;
|
||||
|
||||
public function __construct(Generator $generator)
|
||||
{
|
||||
$this->generator = $generator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Closure|null
|
||||
*/
|
||||
public function guessFormat($fieldName, ClassMetadata $class)
|
||||
{
|
||||
$generator = $this->generator;
|
||||
$type = $class->getTypeOfField($fieldName);
|
||||
|
||||
switch ($type) {
|
||||
case 'boolean':
|
||||
return static function () use ($generator) {
|
||||
return $generator->boolean();
|
||||
};
|
||||
|
||||
case 'decimal':
|
||||
$size = $class->fieldMappings[$fieldName]['precision'] ?? 2;
|
||||
|
||||
return static function () use ($generator, $size) {
|
||||
return $generator->randomNumber($size + 2) / 100;
|
||||
};
|
||||
|
||||
case 'smallint':
|
||||
return static function () use ($generator) {
|
||||
return $generator->numberBetween(0, 65535);
|
||||
};
|
||||
|
||||
case 'integer':
|
||||
return static function () use ($generator) {
|
||||
return $generator->numberBetween(0, 2147483647);
|
||||
};
|
||||
|
||||
case 'bigint':
|
||||
return static function () use ($generator) {
|
||||
return $generator->numberBetween(0, PHP_INT_MAX);
|
||||
};
|
||||
|
||||
case 'float':
|
||||
return static function () use ($generator) {
|
||||
return $generator->randomFloat();
|
||||
};
|
||||
|
||||
case 'string':
|
||||
$size = $class->fieldMappings[$fieldName]['length'] ?? 255;
|
||||
|
||||
return static function () use ($generator, $size) {
|
||||
return $generator->text($size);
|
||||
};
|
||||
|
||||
case 'text':
|
||||
return static function () use ($generator) {
|
||||
return $generator->text();
|
||||
};
|
||||
|
||||
case 'datetime':
|
||||
case 'date':
|
||||
case 'time':
|
||||
return static function () use ($generator) {
|
||||
return $generator->datetime();
|
||||
};
|
||||
|
||||
case 'datetime_immutable':
|
||||
case 'date_immutable':
|
||||
case 'time_immutable':
|
||||
return static function () use ($generator) {
|
||||
return \DateTimeImmutable::createFromMutable($generator->datetime);
|
||||
};
|
||||
|
||||
default:
|
||||
// no smart way to guess what the user expects here
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\ORM\Doctrine;
|
||||
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Faker\Generator;
|
||||
|
||||
require_once 'backward-compatibility.php';
|
||||
|
||||
/**
|
||||
* Service class for populating a database using the Doctrine ORM or ODM.
|
||||
* A Populator can populate several tables using ActiveRecord classes.
|
||||
*/
|
||||
class Populator
|
||||
{
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
protected $batchSize;
|
||||
|
||||
/**
|
||||
* @var Generator
|
||||
*/
|
||||
protected $generator;
|
||||
|
||||
/**
|
||||
* @var ObjectManager|null
|
||||
*/
|
||||
protected $manager;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $entities = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $quantities = [];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $generateId = [];
|
||||
|
||||
/**
|
||||
* Populator constructor.
|
||||
*
|
||||
* @param int $batchSize
|
||||
*/
|
||||
public function __construct(Generator $generator, ?ObjectManager $manager = null, $batchSize = 1000)
|
||||
{
|
||||
$this->generator = $generator;
|
||||
$this->manager = $manager;
|
||||
$this->batchSize = $batchSize;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an order for the generation of $number records for $entity.
|
||||
*
|
||||
* @param mixed $entity A Doctrine classname, or a \Faker\ORM\Doctrine\EntityPopulator instance
|
||||
* @param int $number The number of entities to populate
|
||||
*/
|
||||
public function addEntity($entity, $number, $customColumnFormatters = [], $customModifiers = [], $generateId = false)
|
||||
{
|
||||
if (!$entity instanceof \Faker\ORM\Doctrine\EntityPopulator) {
|
||||
if (null === $this->manager) {
|
||||
throw new \InvalidArgumentException('No entity manager passed to Doctrine Populator.');
|
||||
}
|
||||
$entity = new \Faker\ORM\Doctrine\EntityPopulator($this->manager->getClassMetadata($entity));
|
||||
}
|
||||
$entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
|
||||
|
||||
if ($customColumnFormatters) {
|
||||
$entity->mergeColumnFormattersWith($customColumnFormatters);
|
||||
}
|
||||
$entity->mergeModifiersWith($customModifiers);
|
||||
$this->generateId[$entity->getClass()] = $generateId;
|
||||
|
||||
$class = $entity->getClass();
|
||||
$this->entities[$class] = $entity;
|
||||
$this->quantities[$class] = $number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate the database using all the Entity classes previously added.
|
||||
*
|
||||
* Please note that large amounts of data will result in more memory usage since the the Populator will return
|
||||
* all newly created primary keys after executing.
|
||||
*
|
||||
* @param ObjectManager|null $entityManager A Doctrine connection object
|
||||
*
|
||||
* @return array A list of the inserted PKs
|
||||
*/
|
||||
public function execute($entityManager = null)
|
||||
{
|
||||
if (null === $entityManager) {
|
||||
$entityManager = $this->manager;
|
||||
}
|
||||
|
||||
if (null === $entityManager) {
|
||||
throw new \InvalidArgumentException('No entity manager passed to Doctrine Populator.');
|
||||
}
|
||||
|
||||
$insertedEntities = [];
|
||||
|
||||
foreach ($this->quantities as $class => $number) {
|
||||
$generateId = $this->generateId[$class];
|
||||
|
||||
for ($i = 0; $i < $number; ++$i) {
|
||||
$insertedEntities[$class][] = $this->entities[$class]->execute(
|
||||
$entityManager,
|
||||
$insertedEntities,
|
||||
$generateId,
|
||||
);
|
||||
|
||||
if (count($insertedEntities) % $this->batchSize === 0) {
|
||||
$entityManager->flush();
|
||||
}
|
||||
}
|
||||
$entityManager->flush();
|
||||
}
|
||||
|
||||
return $insertedEntities;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\ORM\Spot;
|
||||
|
||||
use Spot\Locator;
|
||||
|
||||
/**
|
||||
* Service class for populating a database using the Spot ORM.
|
||||
*/
|
||||
class Populator
|
||||
{
|
||||
protected $generator;
|
||||
protected $locator;
|
||||
protected $entities = [];
|
||||
protected $quantities = [];
|
||||
|
||||
/**
|
||||
* Populator constructor.
|
||||
*/
|
||||
public function __construct(\Faker\Generator $generator, ?Locator $locator = null)
|
||||
{
|
||||
$this->generator = $generator;
|
||||
$this->locator = $locator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an order for the generation of $number records for $entity.
|
||||
*
|
||||
* @param string $entityName Name of Entity object to generate
|
||||
* @param int $number The number of entities to populate
|
||||
* @param array $customColumnFormatters
|
||||
* @param array $customModifiers
|
||||
* @param bool $useExistingData Should we use existing rows (e.g. roles) to populate relations?
|
||||
*/
|
||||
public function addEntity(
|
||||
$entityName,
|
||||
$number,
|
||||
$customColumnFormatters = [],
|
||||
$customModifiers = [],
|
||||
$useExistingData = false
|
||||
) {
|
||||
$mapper = $this->locator->mapper($entityName);
|
||||
|
||||
if (null === $mapper) {
|
||||
throw new \InvalidArgumentException('No mapper can be found for entity ' . $entityName);
|
||||
}
|
||||
$entity = new EntityPopulator($mapper, $this->locator, $useExistingData);
|
||||
|
||||
$entity->setColumnFormatters($entity->guessColumnFormatters($this->generator));
|
||||
|
||||
if ($customColumnFormatters) {
|
||||
$entity->mergeColumnFormattersWith($customColumnFormatters);
|
||||
}
|
||||
$entity->mergeModifiersWith($customModifiers);
|
||||
|
||||
$this->entities[$entityName] = $entity;
|
||||
$this->quantities[$entityName] = $number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populate the database using all the Entity classes previously added.
|
||||
*
|
||||
* @param Locator $locator A Spot locator
|
||||
*
|
||||
* @return array A list of the inserted PKs
|
||||
*/
|
||||
public function execute($locator = null)
|
||||
{
|
||||
if (null === $locator) {
|
||||
$locator = $this->locator;
|
||||
}
|
||||
|
||||
if (null === $locator) {
|
||||
throw new \InvalidArgumentException('No entity manager passed to Spot Populator.');
|
||||
}
|
||||
|
||||
$insertedEntities = [];
|
||||
|
||||
foreach ($this->quantities as $entityName => $number) {
|
||||
for ($i = 0; $i < $number; ++$i) {
|
||||
$insertedEntities[$entityName][] = $this->entities[$entityName]->execute(
|
||||
$insertedEntities,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $insertedEntities;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,389 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider;
|
||||
|
||||
class DateTime extends Base
|
||||
{
|
||||
protected static $century = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI', 'XVII', 'XVIII', 'XIX', 'XX', 'XXI'];
|
||||
|
||||
protected static $defaultTimezone = null;
|
||||
|
||||
/**
|
||||
* @param \DateTime|float|int|string $max
|
||||
*
|
||||
* @return false|int
|
||||
*/
|
||||
protected static function getMaxTimestamp($max = 'now')
|
||||
{
|
||||
if (is_numeric($max)) {
|
||||
return (int) $max;
|
||||
}
|
||||
|
||||
if ($max instanceof \DateTime) {
|
||||
return $max->getTimestamp();
|
||||
}
|
||||
|
||||
return strtotime(empty($max) ? 'now' : $max);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a timestamp between January 1, 1970, and now
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return int
|
||||
*
|
||||
* @example 1061306726
|
||||
*/
|
||||
public static function unixTime($max = 'now')
|
||||
{
|
||||
return self::numberBetween(0, static::getMaxTimestamp($max));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a datetime object for a date between January 1, 1970 and now
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
* @param string $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*
|
||||
* @example DateTime('2005-08-16 20:39:21')
|
||||
*/
|
||||
public static function dateTime($max = 'now', $timezone = null)
|
||||
{
|
||||
return static::setTimezone(
|
||||
new \DateTime('@' . static::unixTime($max)),
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a datetime object for a date between January 1, 001 and now
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*
|
||||
* @example DateTime('1265-03-22 21:15:52')
|
||||
*/
|
||||
public static function dateTimeAD($max = 'now', $timezone = null)
|
||||
{
|
||||
$min = (PHP_INT_SIZE > 4 ? -62135597361 : -PHP_INT_MAX);
|
||||
|
||||
return static::setTimezone(
|
||||
new \DateTime('@' . self::numberBetween($min, static::getMaxTimestamp($max))),
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* get a date string formatted with ISO8601
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example '2003-10-21T16:05:52+0000'
|
||||
*/
|
||||
public static function iso8601($max = 'now')
|
||||
{
|
||||
return static::date(\DateTime::ISO8601, $max);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a date string between January 1, 1970 and now
|
||||
*
|
||||
* @param string $format
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example '2008-11-27'
|
||||
*/
|
||||
public static function date($format = 'Y-m-d', $max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format($format);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a time string (24h format by default)
|
||||
*
|
||||
* @param string $format
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example '15:02:34'
|
||||
*/
|
||||
public static function time($format = 'H:i:s', $max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format($format);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a DateTime object based on a random date between two given dates.
|
||||
* Accepts date strings that can be recognized by strtotime().
|
||||
*
|
||||
* @param \DateTime|string $startDate Defaults to 30 years ago
|
||||
* @param \DateTime|string $endDate Defaults to "now"
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*
|
||||
* @example DateTime('1999-02-02 11:42:52')
|
||||
*/
|
||||
public static function dateTimeBetween($startDate = '-30 years', $endDate = 'now', $timezone = null)
|
||||
{
|
||||
$startTimestamp = $startDate instanceof \DateTime ? $startDate->getTimestamp() : strtotime($startDate);
|
||||
$endTimestamp = static::getMaxTimestamp($endDate);
|
||||
|
||||
if ($startTimestamp > $endTimestamp) {
|
||||
throw new \InvalidArgumentException('Start date must be anterior to end date.');
|
||||
}
|
||||
|
||||
$timestamp = self::numberBetween($startTimestamp, $endTimestamp);
|
||||
|
||||
return static::setTimezone(
|
||||
new \DateTime('@' . $timestamp),
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a DateTime object based on a random date between one given date and
|
||||
* an interval
|
||||
* Accepts date string that can be recognized by strtotime().
|
||||
*
|
||||
* @param \DateTime|string $date Defaults to 30 years ago
|
||||
* @param string $interval Defaults to 5 days after
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*
|
||||
* @example dateTimeInInterval('1999-02-02 11:42:52', '+ 5 days')
|
||||
*
|
||||
* @see http://php.net/manual/en/timezones.php
|
||||
* @see http://php.net/manual/en/function.date-default-timezone-get.php
|
||||
*/
|
||||
public static function dateTimeInInterval($date = '-30 years', $interval = '+5 days', $timezone = null)
|
||||
{
|
||||
$intervalObject = \DateInterval::createFromDateString($interval);
|
||||
$datetime = $date instanceof \DateTime ? $date : new \DateTime($date);
|
||||
$otherDatetime = clone $datetime;
|
||||
$otherDatetime->add($intervalObject);
|
||||
|
||||
$begin = min($datetime, $otherDatetime);
|
||||
$end = $datetime === $begin ? $otherDatetime : $datetime;
|
||||
|
||||
return static::dateTimeBetween(
|
||||
$begin,
|
||||
$end,
|
||||
$timezone,
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere within a century.
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
public static function dateTimeThisCentury($max = 'now', $timezone = null)
|
||||
{
|
||||
return static::dateTimeBetween('-100 year', $max, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere within a decade.
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
public static function dateTimeThisDecade($max = 'now', $timezone = null)
|
||||
{
|
||||
return static::dateTimeBetween('-10 year', $max, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere inside the current year.
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
public static function dateTimeThisYear($max = 'now', $timezone = null)
|
||||
{
|
||||
return static::dateTimeBetween('first day of january this year', $max, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a date time object somewhere within a month.
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
* @param string|null $timezone time zone in which the date time should be set, default to DateTime::$defaultTimezone, if set, otherwise the result of `date_default_timezone_get`
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
public static function dateTimeThisMonth($max = 'now', $timezone = null)
|
||||
{
|
||||
return static::dateTimeBetween('-1 month', $max, $timezone);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a string containing either "am" or "pm".
|
||||
*
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 'am'
|
||||
*/
|
||||
public static function amPm($max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format('a');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example '22'
|
||||
*/
|
||||
public static function dayOfMonth($max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format('d');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 'Tuesday'
|
||||
*/
|
||||
public static function dayOfWeek($max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format('l');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example '7'
|
||||
*/
|
||||
public static function month($max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format('m');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 'September'
|
||||
*/
|
||||
public static function monthName($max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format('F');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime|int|string $max maximum timestamp used as random end limit, default to "now"
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example '1987'
|
||||
*/
|
||||
public static function year($max = 'now')
|
||||
{
|
||||
return static::dateTime($max)->format('Y');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*
|
||||
* @example 'XVII'
|
||||
*/
|
||||
public static function century()
|
||||
{
|
||||
return static::randomElement(static::$century);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*
|
||||
* @example 'Europe/Paris'
|
||||
*/
|
||||
public static function timezone(?string $countryCode = null)
|
||||
{
|
||||
if ($countryCode) {
|
||||
$timezones = \DateTimeZone::listIdentifiers(\DateTimeZone::PER_COUNTRY, $countryCode);
|
||||
} else {
|
||||
$timezones = \DateTimeZone::listIdentifiers();
|
||||
}
|
||||
|
||||
return static::randomElement($timezones);
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal method to set the time zone on a DateTime.
|
||||
*
|
||||
* @param string|null $timezone
|
||||
*
|
||||
* @return \DateTime
|
||||
*/
|
||||
private static function setTimezone(\DateTime $dt, $timezone)
|
||||
{
|
||||
return $dt->setTimezone(new \DateTimeZone(static::resolveTimezone($timezone)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets default time zone.
|
||||
*
|
||||
* @param string $timezone
|
||||
*/
|
||||
public static function setDefaultTimezone($timezone = null)
|
||||
{
|
||||
static::$defaultTimezone = $timezone;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets default time zone.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public static function getDefaultTimezone()
|
||||
{
|
||||
return static::$defaultTimezone;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $timezone
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
private static function resolveTimezone($timezone)
|
||||
{
|
||||
return (null === $timezone) ? ((null === static::$defaultTimezone) ? date_default_timezone_get() : static::$defaultTimezone) : $timezone;
|
||||
}
|
||||
}
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\de_AT;
|
||||
|
||||
use Faker\Provider\DateTime;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
protected static $maleNameFormats = [
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{titleMale}} {{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}} {{suffix}}',
|
||||
'{{titleMale}} {{firstNameMale}} {{lastName}} {{suffix}}',
|
||||
];
|
||||
|
||||
protected static $femaleNameFormats = [
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}} {{suffix}}',
|
||||
'{{titleFemale}} {{firstNameFemale}} {{lastName}} {{suffix}}',
|
||||
];
|
||||
|
||||
/**
|
||||
* 60 most popular names in 1985, 1995, 2005 and 2015
|
||||
* {@link} https://www.statistik.at/wcm/idc/idcplg?IdcService=GET_NATIVE_FILE&RevisionSelectionMethod=LatestReleased&dDocName=115199
|
||||
*/
|
||||
protected static $firstNameMale = [
|
||||
'Adrian', 'Alexander', 'Andreas', 'Anton',
|
||||
'Ben', 'Benedikt', 'Benjamin', 'Bernd', 'Bernhard',
|
||||
'Christian', 'Christoph', 'Christopher', 'Clemens',
|
||||
'Daniel', 'David', 'Dominik',
|
||||
'Elias', 'Emil', 'Erik',
|
||||
'Fabian', 'Fabio', 'Felix', 'Finn', 'Florian', 'Franz',
|
||||
'Gabriel', 'Georg', 'Gerald', 'Gerhard', 'Gernot', 'Gregor', 'Günther',
|
||||
'Hannes', 'Harald', 'Helmut', 'Herbert',
|
||||
'Jakob', 'Jan', 'Johann', 'Johannes', 'Jonas', 'Jonathan', 'Josef', 'Joseph', 'Julian', 'Justin', 'Jürgen',
|
||||
'Karl', 'Kevin', 'Kilian', 'Klaus', 'Konstantin',
|
||||
'Leo', 'Leon', 'Lorenz', 'Luca', 'Luis', 'Lukas',
|
||||
'Manfred', 'Manuel', 'Marc', 'Marcel', 'Marco', 'Mario', 'Markus', 'Martin', 'Marvin', 'Matteo', 'Matthias', 'Max', 'Maximilian', 'Michael', 'Moritz',
|
||||
'Nico', 'Nicolas', 'Niklas', 'Noah',
|
||||
'Oliver', 'Oskar',
|
||||
'Pascal', 'Patrick', 'Patrik', 'Paul', 'Peter', 'Philipp',
|
||||
'Ralph', 'Raphael', 'Reinhard', 'René', 'Richard', 'Robert', 'Roland', 'Roman',
|
||||
'Samuel', 'Sandro', 'Sascha', 'Sebastian', 'Simon', 'Stefan',
|
||||
'Theo', 'Theodor', 'Thomas', 'Tim', 'Tobias',
|
||||
'Valentin', 'Vincent',
|
||||
'Werner', 'Wolfgang',
|
||||
];
|
||||
|
||||
/**
|
||||
* 60 most popular names in 1985, 1995, 2005 and 2015
|
||||
* {@link} https://www.statistik.at/wcm/idc/idcplg?IdcService=GET_NATIVE_FILE&RevisionSelectionMethod=LatestReleased&dDocName=115199
|
||||
*/
|
||||
protected static $firstNameFemale = [
|
||||
'Alexandra', 'Alexandrea', 'Algelika', 'Alina', 'Amelie', 'Andrea', 'Angelina', 'Anita', 'Anja', 'Anna', 'Anna-Lena', 'Annika', 'Astrid',
|
||||
'Barbara', 'Bettina', 'Bianca', 'Birgit',
|
||||
'Carina', 'Caroline', 'Celina', 'Chiara', 'Christina', 'Christine', 'Clara', 'Claudia', 'Cornelia',
|
||||
'Daniela', 'Denise', 'Doris',
|
||||
'Elena', 'Elisa', 'Elisabeth', 'Ella', 'Emely', 'Emilia', 'Emily', 'Emma', 'Eva', 'Eva-Maria',
|
||||
'Franziska',
|
||||
'Hanna', 'Hannah', 'Helena',
|
||||
'Ines', 'Iris', 'Isabel', 'Isabella',
|
||||
'Jacqueline', 'Jacquline', 'Jana', 'Janine', 'Jasmin', 'Jennifer', 'Jessica', 'Johanna', 'Julia',
|
||||
'Karin', 'Katharina', 'Katrin', 'Kerstin',
|
||||
'Lara', 'Larissa', 'Laura', 'Lea', 'Lena', 'Leonie', 'Lilly', 'Lina', 'Lisa', 'Livia', 'Luisa',
|
||||
'Magdalena', 'Maja', 'Manuela', 'Maria', 'Marie', 'Marion', 'Marlene', 'Martina', 'Melanie', 'Melina', 'Mia', 'Michaela', 'Michelle', 'Miriam', 'Mona', 'Monika',
|
||||
'Nadine', 'Natalie', 'Nicole', 'Nina', 'Nora',
|
||||
'Patricia', 'Paula', 'Petra', 'Pia',
|
||||
'Rebecca', 'Rosa',
|
||||
'Sabine', 'Sabrina', 'Sandra', 'Sarah', 'Selina', 'Silvia', 'Simone', 'Sonja', 'Sophia', 'Sophie', 'Stefanie', 'Susanne',
|
||||
'Tamara', 'Tanja', 'Theresa',
|
||||
'Valentina', 'Valerie', 'Vanessa', 'Verena', 'Viktoria',
|
||||
'Yvonne',
|
||||
];
|
||||
|
||||
/**
|
||||
* Top 500 Names from a phone directory (February 2004)
|
||||
* {@link} https://de.wiktionary.org/w/index.php?title=Verzeichnis:Deutsch/Namen/die_h%C3%A4ufigsten_Nachnamen_%C3%96sterreichs
|
||||
*/
|
||||
protected static $lastName = [
|
||||
'Abraham', 'Achleitner', 'Adam', 'Aichinger', 'Aigner', 'Albrecht', 'Altmann', 'Amann', 'Amon', 'Angerer', 'Arnold', 'Artner', 'Aschauer', 'Auer', 'Augustin', 'Auinger',
|
||||
'Bacher', 'Bachler', 'Bachmann', 'Bader', 'Baier', 'Barth', 'Bartl', 'Bauer', 'Baumann', 'Baumgartner', 'Bayer', 'Beck', 'Beer', 'Berger', 'Bergmann', 'Bernhard', 'Bichler', 'Binder', 'Bischof', 'Bock', 'Bogner', 'Brandl', 'Brandner', 'Brandstetter', 'Brandstätter', 'Braun', 'Brenner', 'Bruckner', 'Brugger', 'Brunner', 'Buchberger', 'Buchegger', 'Bucher', 'Buchinger', 'Buchner', 'Burger', 'Burgstaller', 'Burtscher', 'Böck', 'Böhm', 'Bösch',
|
||||
'Danner', 'Denk', 'Deutsch', 'Dietrich', 'Dobler', 'Doppler', 'Dorner', 'Draxler',
|
||||
'Eberharter', 'Eberl', 'Ebner', 'Ecker', 'Eder', 'Edlinger', 'Egger', 'Eibl', 'Eichberger', 'Eichinger', 'Eigner', 'Erhart', 'Ernst', 'Ertl',
|
||||
'Falkner', 'Fasching', 'Feichtinger', 'Fellner', 'Fiala', 'Fichtinger', 'Fiedler', 'Fink', 'Fischer', 'Fleischhacker', 'Forster', 'Forstner', 'Frank', 'Franz', 'Friedl', 'Friedrich', 'Fritsch', 'Fritz', 'Fröhlich', 'Frühwirth', 'Fuchs', 'Führer', 'Fürst',
|
||||
'Gabriel', 'Gangl', 'Gartner', 'Gasser', 'Gassner', 'Geiger', 'Geisler', 'Geyer', 'Glaser', 'Glatz', 'Gmeiner', 'Grabner', 'Graf', 'Gratzer', 'Greiner', 'Grill', 'Gritsch', 'Gross', 'Groß', 'Gruber', 'Grünwald', 'Gschwandtner', 'Gutmann',
|
||||
'Haas', 'Haberl', 'Hackl', 'Hafner', 'Hagen', 'Hager', 'Hahn', 'Haider', 'Haidinger', 'Haller', 'Hammer', 'Hammerl', 'Handl', 'Handler', 'Harrer', 'Hartl', 'Hartmann', 'Haslinger', 'Hauer', 'Hauser', 'Heindl', 'Heinrich', 'Hemetsberger', 'Herbst', 'Hermann', 'Herzog', 'Hinterberger', 'Hinteregger', 'Hinterleitner', 'Hirsch', 'Hochreiter', 'Hofbauer', 'Hofer', 'Hoffmann', 'Hofmann', 'Hofstätter', 'Holzer', 'Holzinger', 'Holzmann', 'Horvath', 'Huber', 'Huemer', 'Hufnagl', 'Humer', 'Hummer', 'Hutter', 'Hämmerle', 'Hödl', 'Höfler', 'Höller', 'Hölzl', 'Hörmann', 'Hütter',
|
||||
'Jahn', 'Jandl', 'Janisch', 'Jovanovic', 'Jung', 'Jungwirth', 'Jäger',
|
||||
'Kainz', 'Kaiser', 'Kaltenbrunner', 'Kapeller', 'Kargl', 'Karl', 'Karner', 'Kastner', 'Kaufmann', 'Kellner', 'Kern', 'Kerschbaumer', 'Kirchmair', 'Kirchner', 'Klammer', 'Klein', 'Klinger', 'Klug', 'Knapp', 'Knoll', 'Koch', 'Kofler', 'Kogler', 'Kohl', 'Koller', 'Kollmann', 'Konrad', 'Kopp', 'Kovacs', 'Kraft', 'Krainer', 'Kramer', 'Krammer', 'Kraus', 'Kremser', 'Krenn', 'Kreuzer', 'Kronberger', 'Kröll', 'Kugler', 'Kummer', 'Kurz', 'Köberl', 'Köck', 'Köhler', 'König',
|
||||
'Lackner', 'Lamprecht', 'Lang', 'Langer', 'Lechner', 'Lederer', 'Leeb', 'Lehner', 'Leitgeb', 'Leitner', 'Lengauer', 'Lenz', 'Lettner', 'Lindner', 'List', 'Loidl', 'Lorenz', 'Ludwig', 'Luger', 'Lukas', 'Lutz', 'Löffler',
|
||||
'Mader', 'Maier', 'Maierhofer', 'Mair', 'Mairhofer', 'Mandl', 'Markovic', 'Martin', 'Maurer', 'Mayer', 'Mayerhofer', 'Mayr', 'Mayrhofer', 'Meier', 'Meixner', 'Messner', 'Meyer', 'Mitterer', 'Moosbrugger', 'Moser', 'Muhr', 'Mühlbacher', 'Müller', 'Müllner',
|
||||
'Nagl', 'Nemeth', 'Neubauer', 'Neuhauser', 'Neuhold', 'Neumann', 'Neumayer', 'Neuner', 'Neuwirth', 'Nikolic', 'Novak', 'Nowak', 'Nussbaumer', 'Nußbaumer',
|
||||
'Ofner', 'Ortner', 'Oswald', 'Ott',
|
||||
'Paar', 'Pacher', 'Pammer', 'Paul', 'Payer', 'Peer', 'Penz', 'Peter', 'Petrovic', 'Petz', 'Pfeffer', 'Pfeifer', 'Pfeiffer', 'Pfister', 'Pfleger', 'Pichler', 'Pilz', 'Pinter', 'Pirker', 'Plank', 'Plattner', 'Platzer', 'Pointner', 'Pokorny', 'Pollak', 'Posch', 'Prem', 'Prinz', 'Probst', 'Pucher', 'Putz', 'Pöll', 'Pölzl', 'Pöschl', 'Pühringer',
|
||||
'Raab', 'Rabl', 'Rainer', 'Rath', 'Rauch', 'Rausch', 'Rauscher', 'Rauter', 'Rechberger', 'Redl', 'Reich', 'Reichl', 'Reindl', 'Reiner', 'Reinisch', 'Reischl', 'Reisinger', 'Reiter', 'Reiterer', 'Renner', 'Resch', 'Richter', 'Rieder', 'Riedl', 'Riedler', 'Rieger', 'Riegler', 'Rieser', 'Ritter', 'Rosenberger', 'Roth', 'Rupp',
|
||||
'Sailer', 'Sattler', 'Sauer', 'Schachinger', 'Schachner', 'Schaffer', 'Schaller', 'Scharf', 'Schatz', 'Schauer', 'Scheiber', 'Schenk', 'Scheucher', 'Schiefer', 'Schiller', 'Schindler', 'Schlager', 'Schlögl', 'Schmid', 'Schmidt', 'Schmied', 'Schnabl', 'Schneeberger', 'Schneider', 'Schober', 'Scholz', 'Schranz', 'Schreiber', 'Schreiner', 'Schubert', 'Schuh', 'Schuller', 'Schulz', 'Schuster', 'Schwab', 'Schwaiger', 'Schwaighofer', 'Schwarz', 'Schweiger', 'Schweighofer', 'Schön', 'Schöpf', 'Schütz', 'Seebacher', 'Seidl', 'Siegl', 'Simon', 'Singer', 'Sommer', 'Sonnleitner', 'Spitzer', 'Springer', 'Stadler', 'Stangl', 'Stark', 'Staudinger', 'Steger', 'Steinbauer', 'Steinberger', 'Steindl', 'Steiner', 'Steininger', 'Steinkellner', 'Steinlechner', 'Steinwender', 'Stelzer', 'Stern', 'Steurer', 'Stocker', 'Stockinger', 'Strasser', 'Strauss', 'Strauß', 'Strobl', 'Stummer', 'Sturm', 'Stöckl', 'Stöger', 'Suppan', 'Swoboda', 'Szabo',
|
||||
'Thaler', 'Thaller', 'Thurner', 'Tischler', 'Toth', 'Traxler', 'Trimmel', 'Trummer',
|
||||
'Ulrich', 'Unger', 'Unterberger', 'Unterweger', 'Urban',
|
||||
'Varga', 'Vogel', 'Vogl',
|
||||
'Wachter', 'Wagner', 'Walch', 'Walcher', 'Wallner', 'Walter', 'Weber', 'Wechselberger', 'Wegscheider', 'Weidinger', 'Weigl', 'Weinberger', 'Weiss', 'Weiß', 'Weninger', 'Werner', 'Wieland', 'Wieser', 'Wiesinger', 'Wild', 'Wilhelm', 'Wimmer', 'Windisch', 'Winkler', 'Winter', 'Wirth', 'Wittmann', 'Wolf', 'Wurm', 'Wurzer',
|
||||
'Zach', 'Zangerl', 'Zauner', 'Zechner', 'Zehetner', 'Zeilinger', 'Zeller', 'Zenz', 'Ziegler', 'Zimmermann', 'Zöhrer',
|
||||
];
|
||||
|
||||
protected static $titleMale = ['Herr', 'Dr.', 'Mag.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.'];
|
||||
protected static $titleFemale = ['Frau', 'Dr.', 'Maga.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.'];
|
||||
|
||||
protected static $suffix = ['B.Sc.', 'B.A.', 'B.Eng.', 'MBA.'];
|
||||
|
||||
/**
|
||||
* @example 'PhD'
|
||||
*/
|
||||
public static function suffix()
|
||||
{
|
||||
return static::randomElement(static::$suffix);
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a random Austrian Social Security number.
|
||||
*
|
||||
* @see https://de.wikipedia.org/wiki/Sozialversicherungsnummer#.C3.96sterreich
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public static function ssn(?\DateTime $birthdate = null)
|
||||
{
|
||||
$birthdate = $birthdate ?? DateTime::dateTimeThisCentury();
|
||||
|
||||
$birthDateString = $birthdate->format('dmy');
|
||||
|
||||
do {
|
||||
$consecutiveNumber = (string) self::numberBetween(100, 999);
|
||||
|
||||
$verificationNumber = (
|
||||
(int) $consecutiveNumber[0] * 3
|
||||
+ (int) $consecutiveNumber[1] * 7
|
||||
+ (int) $consecutiveNumber[2] * 9
|
||||
+ (int) $birthDateString[0] * 5
|
||||
+ (int) $birthDateString[1] * 8
|
||||
+ (int) $birthDateString[2] * 4
|
||||
+ (int) $birthDateString[3] * 2
|
||||
+ (int) $birthDateString[4] * 1
|
||||
+ (int) $birthDateString[5] * 6
|
||||
) % 11;
|
||||
} while ($verificationNumber == 10);
|
||||
|
||||
return sprintf('%s%s%s', $consecutiveNumber, $verificationNumber, $birthDateString);
|
||||
}
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\en_AU;
|
||||
|
||||
class Internet extends \Faker\Provider\Internet
|
||||
{
|
||||
protected static $freeEmailDomain = ['gmail.com', 'yahoo.com', 'hotmail.com', 'yahoo.com.au', 'hotmail.com.au'];
|
||||
protected static $tld = ['com', 'com.au', 'org', 'org.au', 'net', 'net.au', 'biz', 'info', 'edu', 'edu.au'];
|
||||
}
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\en_GB;
|
||||
|
||||
class Company extends \Faker\Provider\Company
|
||||
{
|
||||
public const VAT_PREFIX = 'GB';
|
||||
public const VAT_TYPE_DEFAULT = 'vat';
|
||||
public const VAT_TYPE_BRANCH = 'branch';
|
||||
public const VAT_TYPE_GOVERNMENT = 'gov';
|
||||
public const VAT_TYPE_HEALTH_AUTHORITY = 'health';
|
||||
|
||||
/**
|
||||
* UK VAT number
|
||||
*
|
||||
* This method produces numbers that are _reasonably_ representative
|
||||
* of those issued by government
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/VAT_identification_number#VAT_numbers_by_country
|
||||
*/
|
||||
public static function vat(?string $type = null): string
|
||||
{
|
||||
switch ($type) {
|
||||
case static::VAT_TYPE_BRANCH:
|
||||
return static::generateBranchTraderVatNumber();
|
||||
|
||||
case static::VAT_TYPE_GOVERNMENT:
|
||||
return static::generateGovernmentVatNumber();
|
||||
|
||||
case static::VAT_TYPE_HEALTH_AUTHORITY:
|
||||
return static::generateHealthAuthorityVatNumber();
|
||||
|
||||
default:
|
||||
return static::generateStandardVatNumber();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Standard
|
||||
* 9 digits (block of 3, block of 4, block of 2)
|
||||
*
|
||||
* This uses the format introduced November 2009 onward where the first
|
||||
* block starts from 100 and the final two digits are generated via a the
|
||||
* modulus 9755 algorithm
|
||||
*/
|
||||
private static function generateStandardVatNumber(): string
|
||||
{
|
||||
$firstBlock = static::numberBetween(100, 999);
|
||||
$secondBlock = static::randomNumber(4, true);
|
||||
|
||||
return sprintf(
|
||||
'%s%d %d %d',
|
||||
static::VAT_PREFIX,
|
||||
$firstBlock,
|
||||
$secondBlock,
|
||||
static::calculateModulus97($firstBlock . $secondBlock),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Health authorities
|
||||
* the letters HA then 3 digits from 500 to 999 (e.g. GBHA599)
|
||||
*/
|
||||
private static function generateHealthAuthorityVatNumber(): string
|
||||
{
|
||||
return sprintf(
|
||||
'%sHA%d',
|
||||
static::VAT_PREFIX,
|
||||
static::numberBetween(500, 999),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Branch traders
|
||||
* 12 digits (as for 9 digits, followed by a block of 3 digits)
|
||||
*/
|
||||
private static function generateBranchTraderVatNumber(): string
|
||||
{
|
||||
return sprintf(
|
||||
'%s %d',
|
||||
static::generateStandardVatNumber(),
|
||||
static::randomNumber(3, true),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Government departments
|
||||
* the letters GD then 3 digits from 000 to 499 (e.g. GBGD001)
|
||||
*/
|
||||
private static function generateGovernmentVatNumber(): string
|
||||
{
|
||||
return sprintf(
|
||||
'%sGD%s',
|
||||
static::VAT_PREFIX,
|
||||
str_pad((string) static::numberBetween(0, 499), 3, '0', STR_PAD_LEFT),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply a Modulus97 algorithm to an input
|
||||
*
|
||||
* @see https://library.croneri.co.uk/cch_uk/bvr/43-600
|
||||
*/
|
||||
public static function calculateModulus97(string $input, bool $use9755 = true): string
|
||||
{
|
||||
$digits = str_split($input);
|
||||
|
||||
if (count($digits) !== 7) {
|
||||
throw new \InvalidArgumentException();
|
||||
}
|
||||
$multiplier = 8;
|
||||
$sum = 0;
|
||||
|
||||
foreach ($digits as $digit) {
|
||||
$sum += (int) $digit * $multiplier;
|
||||
--$multiplier ;
|
||||
}
|
||||
|
||||
if ($use9755) {
|
||||
$sum = $sum + 55;
|
||||
}
|
||||
|
||||
while ($sum > 0) {
|
||||
$sum -= 97;
|
||||
}
|
||||
$sum = $sum * -1;
|
||||
|
||||
return str_pad((string) $sum, 2, '0', STR_PAD_LEFT);
|
||||
}
|
||||
}
|
||||
+182
@@ -0,0 +1,182 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\en_ZA;
|
||||
|
||||
use Faker\Calculator\Luhn;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
protected static $maleNameFormats = [
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{titleMale}} {{firstNameMale}} {{lastName}}',
|
||||
];
|
||||
|
||||
protected static $femaleNameFormats = [
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
|
||||
];
|
||||
|
||||
protected static $firstNameMale = [
|
||||
'Abraham', 'Adriaan', 'Adrian', 'Ahmed', 'Alan', 'Albert', 'Alex', 'Alexander', 'Alfred', 'Allan', 'Andile', 'Andre', 'Andrew',
|
||||
'André', 'Anthony', 'Anton', 'Arnold', 'Arthur', 'Ayanda', 'Barry', 'Ben', 'Benjamin', 'Bernard', 'Bongani', 'Bradley',
|
||||
'Brandon', 'Brent', 'Brett', 'Brian', 'Bruce', 'Bryan', 'Carel', 'Carl', 'Charl', 'Charles', 'Chris', 'Christiaan',
|
||||
'Christian', 'Christo', 'Christopher', 'Clifford', 'Clint', 'Clinton', 'Clive', 'Colin', 'Conrad', 'Cornelius', 'Craig', 'Daniel',
|
||||
'Darren', 'Dave', 'David', 'Dean', 'Dennis', 'Deon', 'Derek', 'Desmond', 'Dirk', 'Donald', 'Donovan', 'Douglas',
|
||||
'Edward', 'Edwin', 'Emmanuel', 'Eric', 'Ernest', 'Etienne', 'Eugene', 'Francis', 'Francois', 'Frank', 'Frans', 'Frederick',
|
||||
'Gabriel', 'Gareth', 'Garth', 'Gary', 'Gavin', 'George', 'Gerald', 'Gerhard', 'Gerrit', 'Gert', 'Gideon', 'Godfrey',
|
||||
'Gordon', 'Graham', 'Grant', 'Greg', 'Gregory', 'Hannes', 'Heinrich', 'Hendrik', 'Hennie', 'Henry', 'Herman', 'Ian',
|
||||
'Innocent', 'Isaac', 'Itumeleng', 'Ivan', 'Jabulani', 'Jaco', 'Jacob', 'Jacques', 'James', 'Jan', 'Jason', 'Jeffrey',
|
||||
'Jeremy', 'Jerome', 'Joe', 'Johan', 'Johann', 'Johannes', 'John', 'Jonathan', 'Joseph', 'Juan', 'Julian', 'Justin',
|
||||
'Keith', 'Kenneth', 'Kevin', 'Kgomotso', 'Kobus', 'Kyle', 'Lawrence', 'Lee', 'Leon', 'Leonard', 'Lloyd', 'Louis',
|
||||
'Lucas ', 'Lucky', 'Malcolm', 'Mandla', 'Marc', 'Marco', 'Mario', 'Marius', 'Mark', 'Martin', 'Matthew', 'Mduduzi',
|
||||
'Michael', 'Mike', 'Mogamat', 'Mohamed', 'Mohammed', 'Morne', 'Morné', 'Moses', 'Mr. ', 'Muhammad', 'Musa', 'Nathan',
|
||||
'Neil', 'Neo', 'Neville', 'Nicholas', 'Nick', 'Nico', 'Nigel', 'Nkululeko', 'Norman', 'Ntokozo', 'Patrick', 'Paul',
|
||||
'Peter', 'Petrus', 'Philip', 'Phillip', 'Pierre', 'Pieter', 'Prince', 'Raymond', 'Rene', 'René', 'Riaan', 'Ricardo',
|
||||
'Richard', 'Rob', 'Robert', 'Rodney', 'Roger', 'Ronald', 'Roy', 'Rudi', 'Russell', 'Ryan', 'Sam', 'Samuel',
|
||||
'Sandile', 'Sean', 'Shane', 'Shaun', 'Shawn', 'Sibusiso', 'Simon', 'Simone', 'Simphiwe', 'Siphiwe', 'Sipho', 'Siyabonga',
|
||||
'Sizwe', 'Stanley', 'Stefan', 'Stephan', 'Stephen', 'Steve', 'Steven', 'Stuart', 'Tebogo', 'Terence', 'Thabang', 'Thabiso',
|
||||
'Thabo', 'Thando', 'Thapelo', 'Themba', 'Theo', 'Thomas', 'Timothy', 'To ', 'Tony', 'Trevor', 'Tshepo', 'Tsholofelo',
|
||||
'Vernon', 'Victor', 'Vincent', 'Walter', 'Warren', 'Wayne', 'Werner', 'Wesley', 'Willem', 'William', 'Willie', 'Wynand',
|
||||
'Xolani', 'Yusuf', 'andries', 'barend', 'contact', 'dumisani', 'jacobus', 'kabelo', 'kagiso', 'karabo', 'lesego', 'marthinus',
|
||||
'mashudu', 'next', 'nhlanhla', 'nicolaas', 'nkosinathi', 'personal', 'sello', 'sifiso', 'takalani', 'teboho', 'thulani', 'tumelo',
|
||||
'vusi', 'your',
|
||||
// below are unknown gender firstnames
|
||||
'Andries', 'Babalwa', 'Barend', 'Bulelwa', 'Contact ', 'Dumisani', 'Fikile', 'Jacobus', 'Kabelo', 'Kagiso', 'Karabo', 'Kelebogile', 'Lesego',
|
||||
'Lindiwe', 'Marthinus', 'Mashudu', 'Next', 'Nhlanhla', 'Nicolaas', 'Nkosinathi', 'Nompumelelo', 'Nonhlanhla', 'Nonkululeko', 'Nosipho', 'Nozipho',
|
||||
'Personal', 'Phumzile', 'Refiloe', 'Sello', 'Sibongile', 'Sifiso', 'Siphokazi', 'Takalani', 'Teboho', 'Thandeka', 'Thandi', 'Thembi',
|
||||
'Thulani', 'Tumelo', 'Unathi', 'Vusi', 'Vuyokazi', 'Yolandi', 'Your', 'Zandile',
|
||||
];
|
||||
|
||||
protected static $firstNameFemale = [
|
||||
'Abigail', 'Adele', 'Alicia', 'Alison', 'Amanda', 'Andiswa', 'Andrea', 'Angela', 'Angelique', 'Anita', 'Anna', 'Anne', 'Anthea',
|
||||
'Antoinette', 'Asanda', 'Ashley', 'Aubrey', 'Barbara', 'Belinda', 'Beverley', 'Bianca', 'Boitumelo', 'Bongiwe', 'Brenda', 'Bronwyn',
|
||||
'Busisiwe', 'Candice', 'Carla', 'Carmen', 'Carol', 'Caroline', 'Catherine', 'Cecilia', 'Celeste', 'Chantal', 'Chantel', 'Chantelle',
|
||||
'Charlene', 'Charlotte', 'Charmaine', 'Cheryl', 'Christina', 'Christine', 'Cindy', 'Claire', 'Claudia', 'Colleen', 'Cynthia', 'Danie',
|
||||
'Danielle', 'Debbie', 'Deborah', 'Denise', 'Desiree', 'Diane', 'Dimakatso', 'Dineo', 'Duduzile', 'Elaine', 'Elizabeth', 'Estelle',
|
||||
'Esther ', 'Faith', 'Fatima', 'Fiona', 'Gail', 'Gillian', 'Gloria', 'Grace', 'Gugu', 'Gugulethu', 'Heather', 'Heidi',
|
||||
'Helen', 'Ingrid', 'Irene', 'Jackie', 'Jacqueline', 'Jane', 'Janet', 'Janine', 'Jean', 'Jeanette ', 'Jennifer', 'Jenny',
|
||||
'Jessica', 'Johanna', 'Joyce', 'Juanita', 'Judith', 'Julia', 'Julie', 'Karen', 'Karin', 'Katlego', 'Kelly', 'Kim',
|
||||
'Laura', 'Lauren', 'Lebogang', 'Lebohang', 'Lee-ann', 'Leigh', 'Lerato', 'Lesley', 'Liezel', 'Linda', 'Lisa', 'Lizelle',
|
||||
'Lorraine', 'Louise', 'Lungile', 'Lydia', 'Lynette', 'Lynn', 'Mandisa', 'Mandy', 'Margaret', 'Maria', 'Marlene', 'Martha',
|
||||
'Mary', 'Maureen', 'Mbali', 'Megan', 'Melanie', 'Melissa', 'Michelle', 'Miss', 'Monica', 'Monique', 'Mpho', 'Nadia',
|
||||
'Nadine', 'Natalie', 'Natasha', 'Nicola', 'Nicole', 'Nicolene', 'Nicolette', 'Nokuthula', 'Nomfundo', 'Nomsa', 'Nthabiseng', 'Olivia',
|
||||
'Palesa', 'Pamela', 'Patience', 'Patricia', 'Pearl', 'Phindile ', 'Portia', 'Precious', 'Priscilla', 'Prudence', 'Rachel', 'Rebecca',
|
||||
'Refilwe', 'Robin', 'Robyn', 'Ronel', 'Roxanne', 'Ruth', 'Samantha', 'Sandra', 'Sarah', 'Shannon', 'Sharon', 'Shirley',
|
||||
'Sonja', 'Stephanie', 'Susan', 'Sydney', 'Sylvia', 'Tania', 'Tanya', 'Taryn', 'Tasneem', 'Thato', 'Theresa', 'Tracey',
|
||||
'Tracy', 'Tshegofatso', 'Tshepiso', 'Ursula', 'Vanessa', 'Veronica', 'Victoria', 'Wendy', 'Yolanda', 'Yvette', 'Yvonne', 'Zama',
|
||||
'Zanele', 'Zelda', 'babalwa', 'bulelwa', 'fikile', 'kelebogile', 'lindiwe', 'nompumelelo', 'nonhlanhla', 'nonkululeko', 'nosipho', 'nozipho',
|
||||
'phumzile', 'refiloe', 'sibongile', 'siphokazi', 'thandeka', 'thandi', 'thembi', 'unathi', 'vuyokazi', 'yolandi', 'zandile',
|
||||
// below are unknown gender firstnames
|
||||
'Andries', 'Babalwa', 'Barend', 'Bulelwa', 'Contact ', 'Dumisani', 'Fikile', 'Jacobus', 'Kabelo', 'Kagiso', 'Karabo', 'Kelebogile', 'Lesego',
|
||||
'Lindiwe', 'Marthinus', 'Mashudu', 'Next', 'Nhlanhla', 'Nicolaas', 'Nkosinathi', 'Nompumelelo', 'Nonhlanhla', 'Nonkululeko', 'Nosipho', 'Nozipho',
|
||||
'Personal', 'Phumzile', 'Refiloe', 'Sello', 'Sibongile', 'Sifiso', 'Siphokazi', 'Takalani', 'Teboho', 'Thandeka', 'Thandi', 'Thembi',
|
||||
'Thulani', 'Tumelo', 'Unathi', 'Vusi', 'Vuyokazi', 'Yolandi', 'Your', 'Zandile',
|
||||
];
|
||||
|
||||
protected static $lastName = [
|
||||
'Naidoo', 'Govender', 'Pillay', 'Smith', 'Botha', 'van der Merwe', 'Jacobs', 'Moodley', 'Singh', 'Ndlovu', 'Dlamini',
|
||||
'Pretorius', 'Williams', 'Khumalo', 'du Plessis', 'Nkosi', 'Coetzee', 'Venter', 'Nel', 'Fourie', 'Van Wyk', 'Chetty',
|
||||
'Smit', 'Kruger', 'Van Zyl', 'Sithole', 'du Toit', 'Adams', 'van Niekerk', 'Reddy', 'Khan', 'Meyer', 'Mahlangu', 'Abrahams',
|
||||
'Mokoena', 'Erasmus', 'Dube', 'Louw', 'Le Roux', 'Steyn', 'Tshabalala', 'Swanepoel', 'Naicker', 'Marais', 'Joubert',
|
||||
'Baloyi', 'Petersen', 'Davids', 'Viljoen', 'Maharaj', 'Details', 'Swart', 'Radebe', 'Potgieter', 'van der Westhuizen',
|
||||
'Move', 'Strydom', 'Mkhize', 'Olivier', 'Du Preez', 'Van Rooyen', 'Brown', 'Engelbrecht', 'Oosthuizen', 'Hendricks',
|
||||
'Ngwenya', 'van der Walt', 'Johnson', 'Thomas', 'Van Heerden', 'Ngcobo', 'de Beer', 'Khoza', 'Barnard', 'Ferreira',
|
||||
'Muller', 'Mazibuko', 'Zulu', 'Moyo', 'Zwane', 'Maseko', 'Chauke', 'Bezuidenhout', 'De Villiers', 'Jones', 'Buthelezi',
|
||||
'Mthembu', 'Jordaan', 'Molefe', 'Mofokeng', 'Burger', 'Visser', 'Daniels', 'Maluleke', 'Pienaar', 'Martin', 'Cloete',
|
||||
'Prinsloo', 'Mathebula', 'Janse van Rensburg', 'Grobler', 'Wilson', 'Ncube', 'Gumede', 'Ngobeni', 'Moloi', 'Kekana',
|
||||
'Mhlongo', 'Mbatha', 'Nxumalo', 'Theron', 'Snyman', 'Phiri', 'Sibiya', 'Ntuli', 'Van Den Berg', 'Mabaso', 'Bester',
|
||||
'Isaacs', 'Labuschagne', 'Jansen', 'Pieterse', 'Vorster', 'De Wet', 'Schoeman', 'De Klerk', 'Groenewald', 'Sibanda',
|
||||
'Rossouw', 'Van Rensburg', 'Naidu', 'De Jager', 'van Staden', 'Scheepers', 'Nhlapo', 'Nkuna', 'Kotze', 'Mtshali',
|
||||
'Modise', 'Ismail', 'Van Schalkwyk', 'Padayachee', 'Taylor', 'Thompson', 'Motaung', 'Booysen', 'Patel', 'Harris',
|
||||
'Joseph', 'Mthethwa', 'Arendse', 'Vilakazi', 'Lombard', 'Roberts', 'Steenkamp', 'Roux', 'Gouws', 'Botes', 'De Kock',
|
||||
'Lewis', 'James', 'Mnisi', 'Mohamed', 'Africa', 'Wessels', 'Badenhorst', 'Miller', 'Hlongwane', 'Hlatshwayo', 'Vermeulen',
|
||||
'Kunene', 'Liebenberg', 'Alexander', 'Mudau', 'Myburgh', 'van Tonder', 'Hattingh', 'Mhlanga', 'Francis', 'Mkhwanazi',
|
||||
'Basson', 'Boshoff', 'Scott', 'Xaba', 'De Lange', 'Mphahlele', 'Ebrahim', 'Cele', 'Matlala', 'Beukes', 'Coetzer',
|
||||
'Nkomo', 'Ledwaba', 'Ndaba', 'Parker', 'Els', 'Green', 'Mnguni', 'Scholtz', 'King', 'Anderson', 'Langa', 'Mulaudzi',
|
||||
'Simelane', 'Jackson', 'Shabangu', 'Mostert', 'Dhlamini', 'Geldenhuys', 'Ngubane', 'Skosana', 'Bekker', 'Phillips',
|
||||
'Brits', 'Mahomed', 'Human', 'Peters', 'George', 'Cronje', 'Sibeko', 'Swartz', 'Jooste', 'Matthews', 'Du Plooy',
|
||||
'Roos', 'Van Vuuren', 'Esterhuizen', 'Masuku', 'Mabunda', 'Lawrence', 'Moses', 'Fisher', 'Visagie', 'Solomon', 'Naude',
|
||||
'Gerber', 'Campbell', 'Lubbe', 'Van Dyk', 'Vermaak', 'Kubheka', 'Malan', 'da Silva', 'White', 'Malatji', 'Mashaba',
|
||||
'Edwards', 'Banda', 'Greyling', 'Dreyer', 'Hadebe', 'Fredericks', 'Mdluli', 'Maritz', 'Zondi', 'Masemola', 'Mabasa',
|
||||
'Fortuin', 'Shabalala', 'Bosman', 'Brink', 'Ndhlovu', 'Moonsamy', 'Mogale', 'Tsotetsi', 'Mabena', 'Morris', 'Mitchell',
|
||||
'Morgan', 'Gordon', 'Robinson', 'Dladla', 'Kriel', 'Young', 'Moloto', 'Mabuza', 'Richards', 'Sibanyoni', 'Stevens',
|
||||
'Pather', 'Mngomezulu', 'Masango', 'Solomons', 'Mlambo', 'Shongwe', 'Mthombeni', 'Lourens', 'Zungu', 'Mamabolo',
|
||||
'Watson', 'Opperman', 'Stander', 'Nair', 'Twala', 'Uys', 'Letsoalo', 'Clark', 'Wright', 'Mohlala', 'Cupido', 'Delport',
|
||||
'Sibisi', 'Terblanche', 'Motloung', 'De Bruyn', 'Davis', 'Ndou', 'Bothma', 'Benjamin', 'Jansen van Vuuren', 'Rikhotso',
|
||||
'Majola', 'Pietersen', 'Mashego', 'Herbst', 'van Deventer', 'Conradie', 'Khanyile', 'Msibi', 'Mchunu', 'Buys', 'Malinga',
|
||||
'Britz', 'Bailey', 'Cilliers', 'Goosen', 'Walker', 'Schutte', 'Salie', 'Samuels', 'Davies', 'Nkabinde', 'Robertson',
|
||||
'Lee', 'Perumal', 'Mbele', 'Greeff', 'Brand', 'Manuel', 'Nyathi', 'Kumar', 'Moore', 'Masilela', 'Bell', 'Mohale',
|
||||
'Hill', 'Maree', 'Ross', 'Bouwer', 'Ellis', 'Kemp', 'Mpofu', 'Wood', 'Stewart', 'Ahmed', 'Peter', 'Slabbert', 'Nortje',
|
||||
'Murray', 'Van Aswegen', 'De Bruin', 'Collins', 'Blignaut', 'Van Der Berg', 'Modiba', 'Jonker', 'Hall', 'Mouton',
|
||||
'Allie', 'Van Jaarsveld', 'Minnaar', 'Street', 'Maake', 'Zondo', 'Koekemoer', 'Koen', 'Claassen', 'Khosa', 'Barnes',
|
||||
'Bosch', 'Mncube', 'Marx', 'Ntombela', 'Nell', 'Makhubela', 'Jansen van Rensburg', 'Evans', 'Clarke', 'Strauss',
|
||||
'Mokone', 'Moosa', 'Neethling', 'September', 'Madonsela', 'Willemse', 'Mashigo', 'Simpson', 'Otto', 'Legodi', 'Mlangeni',
|
||||
'Mokwena', 'Andrews', 'Mashele', 'Gounden', 'Zuma', 'Msomi', 'Ngema', 'Bennett', 'Baker', 'Ntshangase', 'Nene',
|
||||
'Magagula', 'Tladi', 'Xulu', 'Müller', 'Laubscher', 'Maluleka', 'May', 'Rautenbach', 'Ndebele', 'Grobbelaar', 'Henning',
|
||||
'Carstens', 'Maleka', 'Odendaal', 'Kok', 'Oliver', 'Cassim', 'Van Eeden', 'Lottering', 'Mavuso', 'Mashinini', 'Kumalo',
|
||||
'Mathe', 'Taljaard', 'Molepo', 'David', 'Shezi', 'Turner', 'Oberholzer', 'Motsepe', 'Alberts', 'Adonis', 'van den Heever',
|
||||
'van der Linde', 'Marshall', 'Hugo', 'Thwala', 'Park', 'Cooper', 'Nelson', 'John', 'Anthony', 'Adam', 'Naudé', 'Harrison',
|
||||
'Mulder', 'Enslin', 'Truter', 'Khuzwayo', 'Makhanya', 'Harmse', 'Loubser', 'Kleynhans', 'Paul', 'Nieuwoudt', 'Horn',
|
||||
'Vosloo', 'Wentzel', 'Munyai', 'Kelly', 'Walters', 'Nzimande', 'Hoosen', 'Mkhabela', 'Madlala', 'Saunders', 'Palmer',
|
||||
'Hughes', 'Hanekom', 'Ally', 'Schmidt', 'Butler', 'Mtsweni', 'Maphumulo', 'Manamela', 'Hoffman', 'Wolmarans', 'Duma',
|
||||
'Pule', 'Hlophe', 'Miya', 'Moagi',
|
||||
];
|
||||
|
||||
protected static $titleMale = ['Mr.', 'Dr.', 'Prof.', 'Rev.', 'Hon.'];
|
||||
|
||||
protected static $titleFemale = ['Mrs.', 'Ms.', 'Miss', 'Dr.', 'Prof.', 'Rev.', 'Hon.'];
|
||||
|
||||
protected static $licenceCodes = ['A', 'A1', 'B', 'C', 'C1', 'C2', 'EB', 'EC', 'EC1', 'I', 'L', 'L1'];
|
||||
|
||||
/**
|
||||
* @see https://en.wikipedia.org/wiki/National_identification_number#South_Africa
|
||||
*
|
||||
* @param bool $citizen
|
||||
* @param string $gender
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function idNumber(?\DateTime $birthdate = null, $citizen = true, $gender = null)
|
||||
{
|
||||
if (!$birthdate) {
|
||||
$birthdate = $this->generator->dateTimeThisCentury();
|
||||
}
|
||||
$birthDateString = $birthdate->format('ymd');
|
||||
|
||||
switch (strtolower($gender ?: '')) {
|
||||
case static::GENDER_FEMALE:
|
||||
$genderDigit = self::numberBetween(0, 4);
|
||||
|
||||
break;
|
||||
|
||||
case static::GENDER_MALE:
|
||||
$genderDigit = self::numberBetween(5, 9);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
$genderDigit = self::numberBetween(0, 9);
|
||||
}
|
||||
$sequenceDigits = str_pad(self::randomNumber(3), 3, 0, STR_PAD_BOTH);
|
||||
$citizenDigit = ($citizen === true) ? '0' : '1';
|
||||
$raceDigit = self::numberBetween(8, 9);
|
||||
|
||||
$partialIdNumber = $birthDateString . $genderDigit . $sequenceDigits . $citizenDigit . $raceDigit;
|
||||
|
||||
return $partialIdNumber . Luhn::computeCheckDigit($partialIdNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see https://en.wikipedia.org/wiki/Driving_licence_in_South_Africa
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function licenceCode()
|
||||
{
|
||||
return static::randomElement(static::$licenceCodes);
|
||||
}
|
||||
}
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\fi_FI;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
protected static $maleNameFormats = [
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{firstNameMale}} {{lastName}}',
|
||||
'{{titleMale}} {{firstNameMale}} {{lastName}}',
|
||||
];
|
||||
|
||||
protected static $femaleNameFormats = [
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{firstNameFemale}} {{lastName}}',
|
||||
'{{titleFemale}} {{firstNameFemale}} {{lastName}}',
|
||||
];
|
||||
|
||||
protected static $firstNameMale = [
|
||||
'Aleksi', 'Anssi', 'Antero', 'Antti', 'Ari', 'Arttu', 'Daniel', 'Eero', 'Eetu', 'Elias', 'Elmo', 'Emil', 'Erkki',
|
||||
'Hampus', 'Hannu', 'Harri', 'Heikki', 'Helmi', 'Henri', 'Hermanni', 'Ilja', 'Jaakko', 'Jake', 'Jani', 'Janne',
|
||||
'Jari', 'Jarno', 'Jere', 'Jeremy', 'Jesper', 'Jesse', 'Jimi', 'Joakim', 'Joel', 'Joona', 'Joonas', 'Juha',
|
||||
'Juho', 'Jukka', 'Julius', 'Jussi', 'Justus', 'Juuso', 'Kalle', 'Kasperi', 'Konsta', 'Kristian', 'Lassi', 'Leevi',
|
||||
'Leo', 'Levin', 'Luca', 'Lukas', 'Magnus', 'Marko', 'Markus', 'Matias', 'Matti', 'Miika', 'Mika', 'Mikael',
|
||||
'Mikko', 'Neo', 'Nico', 'Niklas', 'Niko', 'Oliver', 'Oskari', 'Ossi', 'Otto', 'Paavo', 'Pasi', 'Patrik',
|
||||
'Paulus', 'Peetu', 'Pekka', 'Pertti', 'Petri', 'Petteri', 'Pyry', 'Rami', 'Rasmus', 'Riku', 'Risto', 'Roope',
|
||||
'Saku', 'Sami', 'Samu', 'Samuel', 'Samuli', 'Santeri', 'Taneli', 'Tatu', 'Teemu', 'Teppo', 'Tero', 'Timo',
|
||||
'Tomi', 'Tommi', 'Topi', 'Touko', 'Tuomas', 'Tuomo', 'Tuukka', 'Tuukka', 'Valtteri', 'Veli', 'Viljo', 'Ville',
|
||||
'Aake', 'Aapeli', 'Aapo', 'Aappo', 'Aarni', 'Aaro', 'Aatto', 'Aatu', 'Akseli', 'Aku', 'Antton', 'Artturi',
|
||||
'Aune', 'Beeda', 'Briitta', 'Eeli', 'Eelis', 'Eemeli', 'Ekku', 'Eljas', 'Erkko', 'Iiro', 'Ilmari', 'Isto',
|
||||
'Jirko', 'Joonatan', 'Jore', 'Junnu', 'Jusu', 'Kaste', 'Kauto', 'Luukas', 'Nuutti', 'Onni', 'Osmo', 'Pekko',
|
||||
'Sampo', 'Santtu', 'Sauli', 'Simo', 'Sisu', 'Teijo', 'Unto', 'Urho', 'Veeti', 'Veikko', 'Vilho', 'Werneri', 'Wiljami',
|
||||
|
||||
];
|
||||
|
||||
protected static $firstNameFemale = [
|
||||
'Aada', 'Ada', 'Aina', 'Aino', 'Aki', 'Aliisa', 'Amalia', 'Amanda', 'Amelia', 'Amira', 'Anissa', 'Anita', 'Anna',
|
||||
'Anne', 'Anni', 'Anniina', 'Annu', 'Anu', 'Asta', 'Atte', 'Atte', 'Aura', 'Aurora', 'Bella', 'Cara',
|
||||
'Celina', 'Christa', 'Christel', 'Clara', 'Cornelia', 'Dani', 'Eija', 'Elea', 'Elina', 'Elisa', 'Elise', 'Ella',
|
||||
'Ellen', 'Elma', 'Emilia', 'Emma', 'Emmi', 'Enna', 'Erja', 'Esa', 'Essi', 'Eva', 'Eveliina', 'Fanni',
|
||||
'Fiona', 'Hanna', 'Heidi', 'Heli', 'Helinä', 'Henna', 'Hilda', 'Hilja', 'Hilla', 'Hilma', 'Iida', 'Iina',
|
||||
'Iiris', 'Ilona', 'Inka', 'Inkeri', 'Inna', 'Isabella', 'Jade', 'Jami', 'Janette', 'Janika', 'Janina', 'Janita',
|
||||
'Janna', 'Janni', 'Jasmiina', 'Jenna', 'Jenni', 'Jessica', 'Johanna', 'Joni', 'Jonna', 'Julia', 'Juulia', 'Kaija',
|
||||
'Karla', 'Karri', 'Kati', 'Katja', 'Katri', 'Kia', 'Kimi', 'Kirsi', 'Krista', 'Lari', 'Laura', 'Lauri',
|
||||
'Lea', 'Lila', 'Linnea', 'Lotta', 'Lumina', 'Maarit', 'Maia', 'Maija', 'Maiju', 'Maisa', 'Mari', 'Maria',
|
||||
'Meeri', 'Meri', 'Mette', 'Mia', 'Milla', 'Mimi', 'Mimosa', 'Minna', 'Mira', 'Mirella', 'Miska', 'Nadja',
|
||||
'Natalia', 'Nea', 'Neea', 'Nella', 'Nia', 'Niina', 'Noora', 'Olga', 'Olivia', 'Oona', 'Outi', 'Paula',
|
||||
'Pauliina', 'Petra', 'Pia', 'Piia', 'Pinja', 'Päivi', 'Reeta', 'Reetta', 'Riikka', 'Riina', 'Ritva', 'Roni',
|
||||
'Ronja', 'Sanna', 'Sari', 'Satu', 'Seija', 'Sirpa', 'Siru', 'Susanna', 'Tanja', 'Tara', 'Taru', 'Tea',
|
||||
'Terhi', 'Tiia', 'Tiina', 'Tiiu', 'Tinja', 'Veera', 'Vili', 'Vilma', 'Wilma', 'Aamu', 'Aliina', 'Annilotta',
|
||||
'Eerika', 'Eeva', 'Eevi', 'Eliina', 'Elviira', 'Emmaliina', 'Enni', 'Ennika', 'Helmiina', 'Henniina',
|
||||
'Hertta', 'Hilppa', 'Iia', 'Iita', 'Jadessa', 'Jemina', 'Jenika', 'Jermia', 'Jooa', 'Juttamari', 'Kaisla',
|
||||
'Kaisu', 'Loviisa', 'Malla', 'Martta', 'Matleena', 'Miina', 'Mimmu', 'Minea', 'Minttu', 'Mirva', 'Nelli', 'Ninni',
|
||||
'Oliivia', 'Peppi', 'Pihla', 'Pirkko', 'Riia', 'Roosa', 'Taika', 'Venla', 'Viivi', 'Vilja',
|
||||
];
|
||||
|
||||
protected static $lastName = [
|
||||
'Aakula', 'Aalto', 'Aaltonen', 'Aarnio', 'Aaronen', 'Aavikkola', 'Ahmala', 'Aho', 'Ahokas', 'Ahola', 'Ahomaa', 'Ahonen', 'Ahoniemi', 'Ahopelto', 'Ahovaara', 'Ahtila', 'Ahtiluoto', 'Ahtio', 'Ahtisaari', 'Ahto', 'Ahtola', 'Ahtonen', 'Ahtorinne', 'Aija', 'Aijala', 'Ainola', 'Aitio', 'Aitolahti', 'Aitomaa', 'Aittasalmi', 'Akkala', 'Akkanen', 'Alahuhta', 'Alajoki', 'Alajärvi', 'Alanen', 'Alatalo', 'Alasalmi', 'Alapuro', 'Alhola', 'Alijoki', 'Ankkala', 'Ankkuri', 'Annala', 'Annunen', 'Anttila', 'Anttinen', 'Anttonen', 'Ara', 'Arhila', 'Arhinmäki', 'Arhosuo', 'Arinen', 'Arjamaa', 'Arjanen', 'Arkkila', 'Armio', 'Arnio', 'Aronen', 'Arosuo', 'Arponen', 'Arvola', 'Asikainen', 'Astala', 'Attila', 'Aunela', 'Aura', 'Auramies', 'Auranen', 'Autio', 'Auvinen', 'Auvola', 'Avonius', 'Avotie',
|
||||
'Bräysy',
|
||||
'Davidsainen', 'Dufva',
|
||||
'Eerikäinen', 'Eerola', 'Einel', 'Eino', 'Einola', 'Einonen', 'Ekman', 'Ekola', 'Ellilä', 'Ellinen', 'Elomaa', 'Eloharju', 'Eloranta', 'Eno', 'Enola', 'Enäjärvi', 'Erkinjuntti', 'Erkkilä', 'Erkkinen', 'Erkko', 'Erkkola', 'Ernamo', 'Erola', 'Eronen', 'Ervola', 'Eräharju', 'Erämaja', 'Eränen', 'Eskelinen', 'Eskelä', 'Eskola', 'Evelä', 'Evilä',
|
||||
'Filppula', 'Finni', 'Frändilä', 'Fränti',
|
||||
'Haahka', 'Haahkola', 'Haanpää', 'Haapakorpi', 'Haapala', 'Haapanen', 'Haaparanta', 'Haapasalmi', 'Haapasalo', 'Haapkylä', 'Haapoja', 'Haataja', 'Haavisto', 'Haikala', 'Haikara', 'Hakala', 'Hakkarainen', 'Hakki', 'Hakula', 'Halinen', 'Halkola', 'Halkonen', 'Halla', 'Hallaper', 'Hallapuro', 'Hallikainen', 'Hallila', 'Hallonen', 'Halme', 'Halmela', 'Halmelahti', 'Halonen', 'Halttunen', 'Hammas', 'Hanhela', 'Hanhinen', 'Hannula', 'Hannunen', 'Hapola', 'Harjamäki', 'Harju', 'Harjula', 'Harjunpää', 'Harkimo', 'Hautakangas', 'Hautakoski', 'Hautala', 'Hautamäki', 'Haverinen', 'Havukoski', 'Heikkilä', 'Heikkinen', 'Heimola', 'Heinälä', 'Heiskanen', 'Heiskari', 'Helenius', 'Helinen', 'Helismaa', 'Helmel', 'Helovirta', 'Helppolainen', 'Helstel', 'Hellgren', 'Hentinen', 'Hento', 'Hepomäki', 'Heponen', 'Herranen', 'Hervanta', 'Hervanto', 'Hekkaharju', 'Hiesu', 'Hietala', 'Hietanen', 'Hiltunen', 'Heintikainen', 'Hirvelä', 'Hirvi', 'Hirvikangas', 'Hirvonen', 'Hoikkala', 'Hoikkanen', 'Holappa', 'Holkeri', 'Hongisto', 'Honkanen', 'Hovi', 'Huhta', 'Huhtala', 'Hukkala', 'Huopainen', 'Huotari', 'Huovinen', 'Huttunen', 'Huuhka', 'Huurinainen', 'Huusko', 'Huvinen', 'Hyppölä', 'Hyppönen', 'Hytölä', 'Hyypiä', 'Hyyppä', 'Häkkinen', 'Häkämies', 'Hämäläinen', 'Hänninen', 'Härkönen',
|
||||
'Ihalainen', 'Ikola', 'Ikonen', 'Ilmarinen', 'Ilomäki', 'Iloniemi', 'Ilvesniemi', 'Immonen', 'Inkeri', 'Inkinen', 'Isoluoma', 'Isomäki', 'Isotalo', 'Itkonen', 'Itävaara', 'Itävuori',
|
||||
'Jaakkola', 'Jaakkonen', 'Jaakonmaa', 'Jaatinen', 'Jakkila', 'Jalonen', 'Jauhiainen', 'Jauho', 'Joenhaara', 'Johto', 'Jokelainen', 'Jokihaara', 'Jokimies', 'Jokinen', 'Jortikka', 'Joru', 'Junkkari', 'Juntti', 'Juppi', 'Jurva', 'Jurvala', 'Jurvanen', 'Jussila', 'Juustinen', 'Juuti', 'Juvanen', 'Juvonen', 'Jylhä', 'Jänis', 'Jäppinen', 'Järvelä', 'Jääskeläinen',
|
||||
'Kaakko', 'Kaikkonen', 'Kainulainen', 'Kaista', 'Kaivola', 'Kakkola', 'Kakkonen', 'Kalinainen', 'Kalkkinen', 'Kalliala', 'Kallio', 'Kaillomäki', 'Kalmo', 'Kalvo', 'Kamari', 'Kamppinen', 'Kanala', 'Kangaskorte', 'Kangassalo', 'Kannelmaa', 'Kannelmäki', 'Kantele', 'Kantola', 'Kapanen', 'Karalahti', 'Karhu', 'Karjalainen', 'Karpela', 'Karppinen', 'Karukoski', 'Karvonen', 'Katainen', 'Kataja', 'Kauhala', 'Kaukovaara', 'Kauppala', 'Kauppinen', 'Kaurismäki', 'Kekkonen', 'Kerava', 'Kerttula', 'Keskinen', 'Keskioja', 'Ketola', 'Ketonen', 'Kettula', 'Kieli', 'Kiianen', 'Kiille', 'Kimalainen', 'Kiiski', 'Kinnula', 'Kinnunen', 'Kiskonen', 'Kissala', 'Kivi', 'Kiviniemi', 'Kivistö', 'Koirala', 'Koivisto', 'Koivula', 'Koivulehto', 'Koivuniemi', 'Kokkonen', 'Kolehmainen', 'Komulainen', 'Konttinen', 'Kontunen', 'Korhonen', 'Koriseva', 'Kortesjärvi', 'Koskela', 'Koskelainen', 'Kosonen', 'Kotanen', 'Koukkula', 'Kouvonen', 'Kovalainen', 'Krapu', 'Krekelä', 'Kujala', 'Kujanpää', 'Kukkala', 'Kukkamäki', 'Kukkonen', 'Kultala', 'Kumpula', 'Kumpulainen', 'Kunnas', 'Kuoppala', 'Kuosmanen', 'Kurkela', 'Kurki', 'Kuusijärvi', 'Kyllönen', 'Kynsijärvi', 'Kynsilehto', 'Kärki', 'Kärkkäinen',
|
||||
'Laakkola', 'Laakkonen', 'Laakso', 'Laaksonen', 'Laatikainen', 'Lahdenpää', 'Laine', 'Lainela', 'Lakka', 'Lampinen', 'Lappalainen', 'Lassinen', 'Laurila', 'Lauronen', 'Lavola', 'Lehmälä', 'Lehtimäki', 'Lehtinen', 'Lehtisalo', 'Lehto', 'Lehtonen', 'Leino', 'Lepistö', 'Lepomäki', 'Leppilampi', 'Leppäkorpi', 'Leppälä', 'Leppävirta', 'Leskinen', 'Liimatainen', 'Lind', 'Linnala', 'Linnamäki', 'Lippo', 'Litmanen', 'Litvala', 'Liukkonen', 'Loiri', 'Lukkari', 'Lumme', 'Luoma', 'Luukkonen', 'Lyly', 'Lyytikäinen', 'Lähteenmäki', 'Lämsä',
|
||||
'Maahinen', 'Made', 'Maijala', 'Makkonen', 'Malmi', 'Malmivaara', 'Mannila', 'Manninen', 'Mannonen', 'Mansikka-aho', 'Mansikkaoja', 'Marila', 'Marjala', 'Marjamäki', 'Marjola', 'Marjomaa', 'Marjonen', 'Markkanen', 'Markkula', 'Markuksela', 'Markus', 'Martikainen', 'Marttinen', 'Masala', 'Masanen', 'Matomäki', 'Mattila', 'Maunula', 'Maunola', 'Melasniemi', 'Merelä', 'Merilä', 'Meriläinen', 'Merimaa', 'Metsoja', 'Metsälampi', 'Metsäoja', 'Mielonen', 'Miettinen', 'Mikkola', 'Mikkonen', 'Muhonen', 'Mujunen', 'Murola', 'Mustapää', 'Mustonen', 'Muurinen', 'Myllymäki', 'Myllypuro', 'Myllys', 'Mylläri', 'Mäenpää', 'Mäkelä', 'Mäki', 'Mäkinen', 'Mäntylä', 'Määttä', 'Möttönen',
|
||||
'Naula', 'Naulapää', 'Neuvonen', 'Nevala', 'Niemelä', 'Niemi', 'Nieminen', 'Niemistö', 'Niinimaa', 'Niinistö', 'Niiranen', 'Nikkanen', 'Nikkilä', 'Nikula', 'Nikulainen', 'Niskala', 'Nisukangas', 'Niukkanen', 'Nokelainen', 'Nokkonen', 'Notkonen', 'Nousiainen', 'Nukka', 'Nummelin', 'Nuotio', 'Nurkkala', 'Nurmela', 'Nurmi', 'Nurminiemi', 'Nurminen', 'Nuutti', 'Nykänen', 'Nyman', 'Närvälä', 'Näätänen',
|
||||
'Oikkonen', 'Oikonen', 'Oinonen', 'Oja', 'Ojala', 'Ojamäki', 'Ojanen', 'Ojaniemi', 'Oksala', 'Oksanen', 'Ollikainen', 'Ollila', 'Ollinen', 'Oravainen', 'Oravala', 'Otsamo', 'Outinen', 'Ovaska',
|
||||
'Paajanen', 'Paakkanen', 'Paananen', 'Paasikivi', 'Paasilinna', 'Paasonen', 'Paavola', 'Pahajoki', 'Pahkasalo', 'Pajumäki', 'Pajunen', 'Pakarinen', 'Pakkala', 'Pakola', 'Pallas', 'Paloheimo', 'Palola', 'Palomäki', 'Parkkonen', 'Pekkala', 'Pekkarinen', 'Pelkonen', 'Peltomaa', 'Pennanen', 'Pennilä', 'Pentikäinen', 'Penttilä', 'Perniö', 'Pesola', 'Pesonen', 'Peuranen', 'Peuraniemi', 'Pietilä', 'Piippola', 'Piirainen', 'Pikkarainen', 'Pirttijärvi', 'Pirttikangas', 'Pitkämäki', 'Pohtamo', 'Porkkala', 'Poronen', 'Poropudas', 'Puhakainenä', 'Puhakka', 'Pukkila', 'Pulli', 'Puolakka', 'Puuperä', 'Pyykkö', 'Pyykkönen', 'Päivälä', 'Päivärinta', 'Pääkkönen', 'Pöllönen', 'Pöntinen', 'Pöysti',
|
||||
'Raappana', 'Raatikainen', 'Raatila', 'Rahka', 'Rahkala', 'Raiskio', 'Raitanen', 'Raittila', 'Rajamäki', 'Ramu', 'Ranta', 'Rantamaa', 'Rapala', 'Rasila', 'Rasmus', 'Rauhala', 'Rauhanen', 'Rautaporras', 'Rautavirta', 'Rautio', 'Rehu', 'Reinikainen', 'Reinikka', 'Rekomaa', 'Repo', 'Repola', 'Riihimäki', 'Riikonen', 'Rimmanen', 'Rinne', 'Rinta', 'Rintamäki', 'Ristilä', 'Ritari', 'Rokko', 'Ronkainen', 'Roponen', 'Ruhanen', 'Rumpunen', 'Runtti', 'Ruohoniemi', 'Ruonala', 'Ruonansuu', 'Ruotsalainen', 'Ruuhonen', 'Ruuskari', 'Ruusula', 'Ruutti', 'Ryhänen', 'Ryti', 'Ryysyläinen', 'Räikkönen', 'Räisänen', 'Räsänen',
|
||||
'Saanila', 'Saarela', 'Saarenheimo', 'Saari', 'Saarikivi', 'Saarnio', 'Saarnivaara', 'Saastamoinen', 'Saikkonen', 'Saksala', 'Salenius', 'Salmela', 'Salmelainen', 'Salo', 'Salolainen', 'Salonen', 'Saloranta', 'Samulin', 'Sannala', 'Santanen', 'Saraste', 'Sarasvuo', 'Saukko', 'Savioja', 'Savolainen', 'Selänne', 'Seppelin', 'Seppänen', 'Seppälä', 'Servo', 'Setänen', 'Siekkinen', 'Sievinen', 'Sihvonen', 'Siira', 'Siltonen', 'Sikala', 'Silakka', 'Sillanpää', 'Siltala', 'Silvennoinen', 'Simo', 'Simonen', 'Sinnemäki', 'Sipilä', 'Sipola', 'Sirkesalo', 'Sirviö', 'Raiski', 'Soikkeli', 'Soini', 'Sonninen', 'Soppela', 'Sorajoki', 'Sormunen', 'Sorsa', 'Suhonen', 'Suikkala', 'Summanen', 'Suomela', 'Suominen', 'Suosalo', 'Susiluoto', 'Sutinen', 'Suuronen', 'Suutarinen', 'Suvela', 'Sydänmäki', 'Syrjä', 'Syrjälä', 'Säkkinen', 'Särkkä',
|
||||
'Taavettila', 'Taavila', 'Taavitsainen', 'Taipale', 'Takkala', 'Takkula', 'Tamminen', 'Tammisto', 'Tanskanen', 'Tapio', 'Tapola', 'Tarvainen', 'Taskinen', 'Tastula', 'Tauriainen', 'Tenkanen', 'Teppo', 'Tervo', 'Tervonen', 'Teräsniska', 'Tiainen', 'Tiilikainen', 'Timonen', 'Toijala', 'Toikkanen', 'Toivanen', 'Tokkola', 'Tolonen', 'Torkkeli', 'Tuisku', 'Tukiainen', 'Tulkki', 'Tuomela', 'Tuominen', 'Tuomisto', 'Tuppurainen', 'Turpeinen', 'Turunen', 'Tuutti', 'Tynkkynen', 'Typpö', 'Tyrninen', 'Törrö', 'Törrönen',
|
||||
'Ukkola', 'Ulvila', 'Unhola', 'Uosukainen', 'Urhonen', 'Uronen', 'Urpalainen', 'Urpilainen', 'Utriainen', 'Uusikari', 'Uusikylä', 'Uusisalmi', 'Uusitalo',
|
||||
'Vaara', 'Vahala', 'Vahanen', 'Vahvanen', 'Vainio', 'Valjakka', 'Valo', 'Valtanen', 'Vanhanen', 'Vanhoja', 'Varjus', 'Vartiainen', 'Vasala', 'Vauhkonen', 'Veijonen', 'Veini', 'Vennala', 'Vennamo', 'Vepsäläinen', 'Vesa', 'Vesuri', 'Veteläinen', 'Vierikko', 'Vihtanen', 'Viikate', 'Viinanen', 'Viinikka', 'Vilhola', 'Viljanen', 'Vilkkula', 'Vilpas', 'Virkkula', 'Virkkunen', 'Virolainen', 'Virtala', 'Voutilainen', 'Vuokko', 'Vuorenpää', 'Vuorikoski', 'Vuorinen', 'Vähälä', 'Väisälä', 'Väisänen', 'Välimaa', 'Välioja', 'Väyrynen', 'Väätänen',
|
||||
'Wettenranta', 'Wiitanen', 'Wirtanen', 'Wiskari',
|
||||
'Ylijälä', 'Yliannala', 'Ylijoki', 'Ylikangas', 'Ylioja', 'Ylitalo', 'Ylppö', 'Yläjoki', 'Yrjänen', 'Yrjänä', 'Yrjölä', 'Yrttiaho', 'Yömaa',
|
||||
'Äijälä', 'Ämmälä', 'Änäkkälä', 'Äyräs', 'Äärynen',
|
||||
'Översti', 'Öysti', 'Öörni',
|
||||
];
|
||||
|
||||
protected static $titleMale = ['Hra.', 'Tri.'];
|
||||
|
||||
protected static $titleFemale = ['Rva.', 'Nti.', 'Tri.'];
|
||||
|
||||
/**
|
||||
* National Personal Identity Number (Henkilötunnus)
|
||||
*
|
||||
* @see http://www.finlex.fi/fi/laki/ajantasa/2010/20100128
|
||||
*
|
||||
* @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
|
||||
*
|
||||
* @return string on format DDMMYYCZZZQ, where DDMMYY is the date of birth, C the century sign, ZZZ the individual number and Q the control character (checksum)
|
||||
*/
|
||||
public function personalIdentityNumber(?\DateTime $birthdate = null, $gender = null)
|
||||
{
|
||||
$checksumCharacters = '0123456789ABCDEFHJKLMNPRSTUVWXY';
|
||||
|
||||
if (!$birthdate) {
|
||||
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
|
||||
}
|
||||
$datePart = $birthdate->format('dmy');
|
||||
|
||||
switch ((int) ($birthdate->format('Y') / 100)) {
|
||||
case 18:
|
||||
$centurySign = '+';
|
||||
|
||||
break;
|
||||
|
||||
case 19:
|
||||
$centurySign = '-';
|
||||
|
||||
break;
|
||||
|
||||
case 20:
|
||||
$centurySign = 'A';
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
throw new \InvalidArgumentException('Year must be between 1800 and 2099 inclusive.');
|
||||
}
|
||||
|
||||
$randomDigits = self::numberBetween(0, 89);
|
||||
|
||||
if ($gender && $gender == static::GENDER_MALE) {
|
||||
if ($randomDigits === 0) {
|
||||
$randomDigits .= static::randomElement([3, 5, 7, 9]);
|
||||
} else {
|
||||
$randomDigits .= static::randomElement([1, 3, 5, 7, 9]);
|
||||
}
|
||||
} elseif ($gender && $gender == static::GENDER_FEMALE) {
|
||||
if ($randomDigits === 0) {
|
||||
$randomDigits .= static::randomElement([2, 4, 6, 8]);
|
||||
} else {
|
||||
$randomDigits .= static::randomElement([0, 2, 4, 6, 8]);
|
||||
}
|
||||
} else {
|
||||
if ($randomDigits === 0) {
|
||||
$randomDigits .= self::numberBetween(2, 9);
|
||||
} else {
|
||||
$randomDigits .= (string) static::numerify('#');
|
||||
}
|
||||
}
|
||||
$randomDigits = str_pad($randomDigits, 3, '0', STR_PAD_LEFT);
|
||||
|
||||
$checksum = $checksumCharacters[(int) ($datePart . $randomDigits) % strlen($checksumCharacters)];
|
||||
|
||||
return $datePart . $centurySign . $randomDigits . $checksum;
|
||||
}
|
||||
}
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\fr_FR;
|
||||
|
||||
class PhoneNumber extends \Faker\Provider\PhoneNumber
|
||||
{
|
||||
// Phone numbers can't start by 00 in France
|
||||
// 01 is the most common prefix
|
||||
protected static $formats = [
|
||||
'+33 (0)1 ## ## ## ##',
|
||||
'+33 (0)1 ## ## ## ##',
|
||||
'+33 (0)2 ## ## ## ##',
|
||||
'+33 (0)3 ## ## ## ##',
|
||||
'+33 (0)4 ## ## ## ##',
|
||||
'+33 (0)5 ## ## ## ##',
|
||||
'+33 (0)6 {{phoneNumber06WithSeparator}}',
|
||||
'+33 (0)7 {{phoneNumber07WithSeparator}}',
|
||||
'+33 (0)8 {{phoneNumber08WithSeparator}}',
|
||||
'+33 (0)9 ## ## ## ##',
|
||||
'+33 1 ## ## ## ##',
|
||||
'+33 1 ## ## ## ##',
|
||||
'+33 2 ## ## ## ##',
|
||||
'+33 3 ## ## ## ##',
|
||||
'+33 4 ## ## ## ##',
|
||||
'+33 5 ## ## ## ##',
|
||||
'+33 6 {{phoneNumber06WithSeparator}}',
|
||||
'+33 7 {{phoneNumber07WithSeparator}}',
|
||||
'+33 8 {{phoneNumber08WithSeparator}}',
|
||||
'+33 9 ## ## ## ##',
|
||||
'01########',
|
||||
'01########',
|
||||
'02########',
|
||||
'03########',
|
||||
'04########',
|
||||
'05########',
|
||||
'06{{phoneNumber06}}',
|
||||
'07{{phoneNumber07}}',
|
||||
'08{{phoneNumber08}}',
|
||||
'09########',
|
||||
'01 ## ## ## ##',
|
||||
'01 ## ## ## ##',
|
||||
'02 ## ## ## ##',
|
||||
'03 ## ## ## ##',
|
||||
'04 ## ## ## ##',
|
||||
'05 ## ## ## ##',
|
||||
'06 {{phoneNumber06WithSeparator}}',
|
||||
'07 {{phoneNumber07WithSeparator}}',
|
||||
'08 {{phoneNumber08WithSeparator}}',
|
||||
'09 ## ## ## ##',
|
||||
];
|
||||
|
||||
// Mobile phone numbers start by 06 and 07
|
||||
// 06 is the most common prefix
|
||||
protected static $mobileFormats = [
|
||||
'+33 (0)6 {{phoneNumber06WithSeparator}}',
|
||||
'+33 6 {{phoneNumber06WithSeparator}}',
|
||||
'+33 (0)7 {{phoneNumber07WithSeparator}}',
|
||||
'+33 7 {{phoneNumber07WithSeparator}}',
|
||||
'06{{phoneNumber06}}',
|
||||
'07{{phoneNumber07}}',
|
||||
'06 {{phoneNumber06WithSeparator}}',
|
||||
'07 {{phoneNumber07WithSeparator}}',
|
||||
];
|
||||
|
||||
protected static $serviceFormats = [
|
||||
'+33 (0)8 {{phoneNumber08WithSeparator}}',
|
||||
'+33 8 {{phoneNumber08WithSeparator}}',
|
||||
'08 {{phoneNumber08WithSeparator}}',
|
||||
'08{{phoneNumber08}}',
|
||||
];
|
||||
|
||||
protected static $e164Formats = [
|
||||
'+33#########',
|
||||
];
|
||||
|
||||
public function phoneNumber06()
|
||||
{
|
||||
$phoneNumber = $this->phoneNumber06WithSeparator();
|
||||
|
||||
return str_replace(' ', '', $phoneNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* Only 0601 to 0638, 0640 to 0689, 0695 and 0698 to 0699 are acceptable prefixes with 06
|
||||
*
|
||||
* @see https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/la-numerotation.html#c8961
|
||||
* @see https://www.itu.int/itu-t/nnp/#/numbering-plans?country=France%C2%A0&code=33
|
||||
*/
|
||||
public function phoneNumber06WithSeparator()
|
||||
{
|
||||
$regex = '([0-24-8]\d|3[0-8]|9[589])( \d{2}){3}';
|
||||
|
||||
return static::regexify($regex);
|
||||
}
|
||||
|
||||
public function phoneNumber07()
|
||||
{
|
||||
$phoneNumber = $this->phoneNumber07WithSeparator();
|
||||
|
||||
return str_replace(' ', '', $phoneNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* Only 0730 to 0789 are acceptable prefixes with 07
|
||||
*
|
||||
* @see https://www.arcep.fr/la-regulation/grands-dossiers-thematiques-transverses/la-numerotation.html#c8961
|
||||
* @see https://www.itu.int/itu-t/nnp/#/numbering-plans?country=France%C2%A0&code=33
|
||||
*/
|
||||
public function phoneNumber07WithSeparator()
|
||||
{
|
||||
$regex = '([3-8]\d)( \d{2}){3}';
|
||||
|
||||
return static::regexify($regex);
|
||||
}
|
||||
|
||||
public function phoneNumber08()
|
||||
{
|
||||
$phoneNumber = $this->phoneNumber08WithSeparator();
|
||||
|
||||
return str_replace(' ', '', $phoneNumber);
|
||||
}
|
||||
|
||||
/**
|
||||
* Valid formats for 08:
|
||||
*
|
||||
* 0# ## ## ##
|
||||
* 1# ## ## ##
|
||||
* 2# ## ## ##
|
||||
* 91 ## ## ##
|
||||
* 92 ## ## ##
|
||||
* 93 ## ## ##
|
||||
* 97 ## ## ##
|
||||
* 98 ## ## ##
|
||||
* 99 ## ## ##
|
||||
*
|
||||
* Formats 089(4|6)## ## ## are valid, but will be
|
||||
* attributed when other 089 resource ranges are exhausted.
|
||||
*
|
||||
* @see https://www.arcep.fr/index.php?id=8146#c9625
|
||||
* @see https://issuetracker.google.com/u/1/issues/73269839
|
||||
*/
|
||||
public function phoneNumber08WithSeparator()
|
||||
{
|
||||
$regex = '([012]\d|(9[1-357-9])( \d{2}){3}';
|
||||
|
||||
return static::regexify($regex);
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '0601020304'
|
||||
*/
|
||||
public function mobileNumber()
|
||||
{
|
||||
$format = static::randomElement(static::$mobileFormats);
|
||||
|
||||
return static::numerify($this->generator->parse($format));
|
||||
}
|
||||
|
||||
/**
|
||||
* @example '0891951357'
|
||||
*/
|
||||
public function serviceNumber()
|
||||
{
|
||||
$format = static::randomElement(static::$serviceFormats);
|
||||
|
||||
return static::numerify($this->generator->parse($format));
|
||||
}
|
||||
}
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\kk_KZ;
|
||||
|
||||
class Company extends \Faker\Provider\Company
|
||||
{
|
||||
protected static $companyNameFormats = [
|
||||
'{{companyPrefix}} {{companyNameElement}}',
|
||||
'{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}',
|
||||
'{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}',
|
||||
'{{companyPrefix}} {{companyNameElement}}{{companyNameElement}}{{companyNameElement}}{{companyNameSuffix}}',
|
||||
];
|
||||
|
||||
protected static $companyPrefixes = [
|
||||
'АҚ', 'ЖШС', 'ЖАҚ',
|
||||
];
|
||||
|
||||
protected static $companyNameSuffixes = [
|
||||
'Құрылыс', 'Машина', 'Бұзу', '-М', 'Лизинг', 'Страх', 'Ком', 'Телеком',
|
||||
];
|
||||
|
||||
protected static $companyElements = [
|
||||
'Қазақ', 'Кітап', 'Цемент', 'Лифт', 'Креп', 'Авто', 'Теле', 'Транс', 'Алмаз', 'Метиз',
|
||||
'Мотор', 'Қаз', 'Тех', 'Сантех', 'Алматы', 'Астана', 'Электро',
|
||||
];
|
||||
|
||||
/**
|
||||
* @example 'ЖШС АлматыТелеком'
|
||||
*/
|
||||
public function company()
|
||||
{
|
||||
$format = static::randomElement(static::$companyNameFormats);
|
||||
|
||||
return $this->generator->parse($format);
|
||||
}
|
||||
|
||||
public static function companyPrefix()
|
||||
{
|
||||
return static::randomElement(static::$companyPrefixes);
|
||||
}
|
||||
|
||||
public static function companyNameElement()
|
||||
{
|
||||
return static::randomElement(static::$companyElements);
|
||||
}
|
||||
|
||||
public static function companyNameSuffix()
|
||||
{
|
||||
return static::randomElement(static::$companyNameSuffixes);
|
||||
}
|
||||
|
||||
/**
|
||||
* National Business Identification Numbers
|
||||
*
|
||||
* @see http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fbus_business%2Ffor_businessmen%2Farticle%2Fbusiness_identification_number&lang=en
|
||||
*
|
||||
* @return string 12 digits, like 150140000019
|
||||
*/
|
||||
public static function businessIdentificationNumber(?\DateTime $registrationDate = null)
|
||||
{
|
||||
if (!$registrationDate) {
|
||||
$registrationDate = \Faker\Provider\DateTime::dateTimeThisYear();
|
||||
}
|
||||
|
||||
$dateAsString = $registrationDate->format('ym');
|
||||
$legalEntityType = (string) self::numberBetween(4, 6);
|
||||
$legalEntityAdditionalType = (string) self::numberBetween(0, 3);
|
||||
$randomDigits = (string) static::numerify('######');
|
||||
|
||||
return $dateAsString . $legalEntityType . $legalEntityAdditionalType . $randomDigits;
|
||||
}
|
||||
}
|
||||
+265
@@ -0,0 +1,265 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\kk_KZ;
|
||||
|
||||
use Faker\Provider\DateTime;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
public const GENDER_MALE = 0;
|
||||
public const GENDER_FEMALE = 1;
|
||||
|
||||
public const CENTURY_19TH = 0;
|
||||
public const CENTURY_20TH = 1;
|
||||
public const CENTURY_21ST = 2;
|
||||
|
||||
public const MALE_CENTURY_19TH = 1;
|
||||
public const MALE_CENTURY_20TH = 3;
|
||||
public const MALE_CENTURY_21ST = 5;
|
||||
|
||||
public const FEMALE_CENTURY_19TH = 2;
|
||||
public const FEMALE_CENTURY_20TH = 4;
|
||||
public const FEMALE_CENTURY_21ST = 6;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public static $firstSequenceBitWeights = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public static $secondSequenceBitWeights = [3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2];
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
public static $genderCenturyMap = [
|
||||
self::GENDER_MALE => [
|
||||
self::CENTURY_19TH => self::MALE_CENTURY_19TH,
|
||||
self::CENTURY_20TH => self::MALE_CENTURY_20TH,
|
||||
self::CENTURY_21ST => self::MALE_CENTURY_21ST,
|
||||
],
|
||||
self::GENDER_FEMALE => [
|
||||
self::CENTURY_19TH => self::FEMALE_CENTURY_19TH,
|
||||
self::CENTURY_20TH => self::FEMALE_CENTURY_20TH,
|
||||
self::CENTURY_21ST => self::FEMALE_CENTURY_21ST,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $maleNameFormats = [
|
||||
'{{lastName}}ұлы {{firstNameMale}}',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $femaleNameFormats = [
|
||||
'{{lastName}}қызы {{firstNameFemale}}',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see http://koshpendi.kz/index.php/nomad/imena/
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $firstNameMale = [
|
||||
'Аылғазы',
|
||||
'Әбдіқадыр',
|
||||
'Бабағожа',
|
||||
'Ғайса',
|
||||
'Дәмен',
|
||||
'Егізбек',
|
||||
'Жазылбек',
|
||||
'Зұлпықар',
|
||||
'Игісін',
|
||||
'Кәдіржан',
|
||||
'Қадырқан',
|
||||
'Латиф',
|
||||
'Мағаз',
|
||||
'Нармағамбет',
|
||||
'Оңалбай',
|
||||
'Өндіріс',
|
||||
'Пердебек',
|
||||
'Рақат',
|
||||
'Сағындық',
|
||||
'Танабай',
|
||||
'Уайыс',
|
||||
'Ұйықбай',
|
||||
'Үрімбай',
|
||||
'Файзрахман',
|
||||
'Хангелді',
|
||||
'Шаттық',
|
||||
'Ыстамбақы',
|
||||
'Ібни',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see http://koshpendi.kz/index.php/nomad/imena/
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $firstNameFemale = [
|
||||
'Асылтас',
|
||||
'Әужа',
|
||||
'Бүлдіршін',
|
||||
'Гүлшаш',
|
||||
'Ғафура',
|
||||
'Ділдә',
|
||||
'Еркежан',
|
||||
'Жібек',
|
||||
'Зылиқа',
|
||||
'Ирада',
|
||||
'Күнсұлу',
|
||||
'Қырмызы',
|
||||
'Ләтипа',
|
||||
'Мүштәри',
|
||||
'Нұршара',
|
||||
'Орынша',
|
||||
'Өрзия',
|
||||
'Перизат',
|
||||
'Рухия',
|
||||
'Сындыбала',
|
||||
'Тұрсынай',
|
||||
'Уәсима',
|
||||
'Ұрқия',
|
||||
'Үрия',
|
||||
'Фируза',
|
||||
'Хафиза',
|
||||
'Шырынгүл',
|
||||
'Ырысты',
|
||||
'Іңкәр',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see http://koshpendi.kz/index.php/nomad/imena/
|
||||
* @see https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D0%B7%D0%B0%D1%85%D1%81%D0%BA%D0%B0%D1%8F_%D1%84%D0%B0%D0%BC%D0%B8%D0%BB%D0%B8%D1%8F
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $lastName = [
|
||||
'Адырбай',
|
||||
'Әжібай',
|
||||
'Байбөрі',
|
||||
'Ғизат',
|
||||
'Ділдабек',
|
||||
'Ешмұхамбет',
|
||||
'Жігер',
|
||||
'Зікірия',
|
||||
'Иса',
|
||||
'Кунту',
|
||||
'Қыдыр',
|
||||
'Лұқпан',
|
||||
'Мышырбай',
|
||||
'Нысынбай',
|
||||
'Ошақбай',
|
||||
'Өтетілеу',
|
||||
'Пірәлі',
|
||||
'Рүстем',
|
||||
'Сырмұхамбет',
|
||||
'Тілеміс',
|
||||
'Уәлі',
|
||||
'Ұлықбек',
|
||||
'Үстем',
|
||||
'Фахир',
|
||||
'Хұсайын',
|
||||
'Шілдебай',
|
||||
'Ыстамбақы',
|
||||
'Ісмет',
|
||||
];
|
||||
|
||||
/**
|
||||
* Note! When calculating individual identification number
|
||||
* 2000-01-01 - 2000-12-31 counts as 21th century
|
||||
* 1900-01-01 - 1900-12-31 counts as 20th century
|
||||
*
|
||||
* @param int $year
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private static function getCenturyByYear($year)
|
||||
{
|
||||
if (($year >= 2100) || ($year < 1800)) {
|
||||
throw new \InvalidArgumentException('Unexpected century');
|
||||
}
|
||||
|
||||
if ($year >= 2000) {
|
||||
return self::CENTURY_21ST;
|
||||
}
|
||||
|
||||
if ($year >= 1900) {
|
||||
return self::CENTURY_20TH;
|
||||
}
|
||||
|
||||
return self::CENTURY_19TH;
|
||||
}
|
||||
|
||||
/**
|
||||
* National Individual Identification Numbers
|
||||
*
|
||||
* @see http://egov.kz/wps/portal/Content?contentPath=%2Fegovcontent%2Fcitizen_migration%2Fpassport_id_card%2Farticle%2Fiin_info&lang=en
|
||||
* @see https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%B2%D0%B8%D0%B4%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9_%D0%BD%D0%BE%D0%BC%D0%B5%D1%80
|
||||
*
|
||||
* @param int $gender
|
||||
*
|
||||
* @return string 12 digits, like 780322300455
|
||||
*/
|
||||
public static function individualIdentificationNumber(?\DateTime $birthDate = null, $gender = self::GENDER_MALE)
|
||||
{
|
||||
if (!$birthDate) {
|
||||
$birthDate = DateTime::dateTimeBetween();
|
||||
}
|
||||
|
||||
do {
|
||||
$population = self::numberBetween(1000, 2000);
|
||||
$century = self::getCenturyByYear((int) $birthDate->format('Y'));
|
||||
|
||||
$iin = $birthDate->format('ymd');
|
||||
$iin .= (string) self::$genderCenturyMap[$gender][$century];
|
||||
$iin .= (string) $population;
|
||||
$checksum = self::checkSum($iin);
|
||||
} while ($checksum === 10);
|
||||
|
||||
return $iin . (string) $checksum;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $iinValue
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public static function checkSum($iinValue)
|
||||
{
|
||||
$controlDigit = self::getControlDigit($iinValue, self::$firstSequenceBitWeights);
|
||||
|
||||
if ($controlDigit === 10) {
|
||||
return self::getControlDigit($iinValue, self::$secondSequenceBitWeights);
|
||||
}
|
||||
|
||||
return $controlDigit;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $iinValue
|
||||
* @param array $sequence
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
protected static function getControlDigit($iinValue, $sequence)
|
||||
{
|
||||
$sum = 0;
|
||||
|
||||
for ($i = 0; $i <= 10; ++$i) {
|
||||
$sum += (int) $iinValue[$i] * $sequence[$i];
|
||||
}
|
||||
|
||||
return $sum % 11;
|
||||
}
|
||||
}
|
||||
+390
@@ -0,0 +1,390 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\lt_LT;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
protected static $maleNameFormats = [
|
||||
'{{firstNameMale}} {{lastNameMale}}',
|
||||
];
|
||||
|
||||
protected static $femaleNameFormats = [
|
||||
'{{firstNameFemale}} {{lastNameFemale}}',
|
||||
];
|
||||
|
||||
protected static $lastNameFormat = [
|
||||
'{{firstNameMale}}',
|
||||
'{{firstNameFemale}}',
|
||||
];
|
||||
|
||||
protected static $titleMale = ['p.', 'ponas'];
|
||||
|
||||
protected static $titleFemale = ['p.', 'ponia', 'panelė'];
|
||||
|
||||
/**
|
||||
* @see https://lt.wikipedia.org/wiki/S%C4%85ra%C5%A1as:Lietuvoje_paplit%C4%99_vardai
|
||||
*/
|
||||
protected static $firstNameMale = [
|
||||
'Abramas', 'Abraomas', 'Achilas', 'Adalbertas', 'Adamas', 'Adas', 'Adolfas', 'Adolis', 'Adomas',
|
||||
'Adrijus', 'Agatas', 'Agnius', 'Aidas', 'Ainius', 'Aistis', 'Aivaras', 'Akimas', 'Akvilinas', 'Albertas', 'Albrechtas',
|
||||
'Albinas', 'Aldonas', 'Aleksandras', 'Aleksas', 'Alenas', 'Alfas', 'Alfonsas', 'Alfredas', 'Algimantas', 'Algirdas',
|
||||
'Algis', 'Alius', 'Almantas', 'Almis', 'Almonas', 'Aloyzas', 'Alpas', 'Alpis', 'Alvidas', 'Alvydas', 'Ambraziejus',
|
||||
'Anatolijus', 'Anatolis', 'Andreas', 'Andriejus', 'Andrius', 'Andžejus', 'Anicetas', 'Anisimas', 'Antanas', 'Antonas',
|
||||
'Antonijus', 'Antonis', 'Anupras', 'Anzelmas', 'Apolinaras', 'Apolonijus', 'Aras', 'Arijus', 'Arimantas', 'Aristarchas',
|
||||
'Aristidas', 'Arkadijus', 'Armantas', 'Arminas', 'Arnas', 'Arnoldas', 'Aronas', 'Arsenas', 'Arsenijus', 'Artas',
|
||||
'Artiomas', 'Artūras', 'Arūnas', 'Arvaidas', 'Arvydas', 'Astijus', 'Audrius', 'Audrys', 'Audronius', 'Augis',
|
||||
'Augustas', 'Augustinas', 'Aurelijus', 'Aurimas', 'Aušrius', 'Aušrys', 'Ąžuolas', 'Balys', 'Baltazaras', 'Baltramiejus',
|
||||
'Baltrus', 'Banguolis', 'Bartas', 'Bartvydas', 'Bazilijus', 'Benas', 'Benediktas', 'Benonas', 'Benius', 'Benjaminas',
|
||||
'Bernardas', 'Beržas', 'Bijūnas', 'Bogdanas', 'Boguslavas', 'Boleslavas', 'Boleslovas', 'Bonifacas', 'Borisas',
|
||||
'Bronislavas', 'Bronislovas', 'Bronius', 'Brunas', 'Brunonas', 'Cecilijus', 'Celestinas', 'Cezaris', 'Chaimas',
|
||||
'Charitonas', 'Ciprijonas', 'Česius', 'Česlovas', 'Čiogintas', 'Dainius', 'Daivis', 'Dalius', 'Damijonas', 'Danas',
|
||||
'Dangerutis', 'Danielius', 'Danila', 'Danius', 'Darijus', 'Darius', 'Dariušas', 'Daumantas', 'Davidas', 'Deimantas',
|
||||
'Deividas', 'Deivis', 'Demetrijus', 'Demjanas', 'Denis', 'Denisas', 'Dimitrijus', 'Diomidas', 'Dionizas', 'Dmitrijus',
|
||||
'Dobilas', 'Donatas', 'Domantas', 'Domas', 'Dominykas', 'Donaldas', 'Dovydas', 'Dovilis', 'Dovis', 'Drąsius',
|
||||
'Drąsutis', 'Džeraldas', 'Džiraldas', 'Džiugas', 'Džonis', 'Edgaras', 'Edmundas', 'Eduardas', 'Edvardas', 'Edvinas',
|
||||
'Egidijus', 'Eidimantas', 'Eidminas', 'Eidvydas', 'Eimantas', 'Eimis', 'Einius', 'Eivydas', 'Eldaras', 'Eligijus',
|
||||
'Elijus', 'Elmantas', 'Emanuelis', 'Emilis', 'Emilijonas', 'Emilijus', 'Enrikas', 'Erazmas', 'Erdvilas', 'Erichas',
|
||||
'Erikas', 'Ernestas', 'Ervinas', 'Eugenijus', 'Eugeniušas', 'Evaldas', 'Fabijus', 'Faustas', 'Fedoras', 'Felicijonas',
|
||||
'Felicijus', 'Feliksas', 'Ferdinandas', 'Filipas', 'Fiodoras', 'Foma', 'Flavijus', 'Florijonas', 'Francas',
|
||||
'Francišekas', 'Fredas', 'Fridrikas', 'Gabrielis', 'Gabrielius', 'Gailimantas', 'Gailius', 'Galmantas', 'Gasparas',
|
||||
'Gaudenis', 'Gaudrimas', 'Gaudvydas', 'Gavrila', 'Gavrilas', 'Gedas', 'Gedgaudas', 'Gediminas', 'Gedmantas', 'Gedmas',
|
||||
'Gedminas', 'Gedvaldas', 'Gedvydas', 'Gedvilas', 'Geivydas', 'Genadijus', 'Gendrius', 'Genrichas', 'Georgijus',
|
||||
'Geraldas', 'Gerardas', 'Gerdas', 'Gerimantas', 'Germanas', 'Germantas', 'Gerutis', 'Gervydas', 'Giedrius', 'Gilbertas',
|
||||
'Gintaras', 'Gintas', 'Gintis', 'Gintautas', 'Girėnas', 'Girius', 'Girmantas', 'Girvydas', 'Gitanas', 'Gytautas',
|
||||
'Gytis', 'Gordejus', 'Gotfridas', 'Gracijonas', 'Gracijus', 'Gražvydas', 'Grigalius', 'Grigas', 'Grigorijus', 'Gunaras',
|
||||
'Gustas', 'Gustavas', 'Gustis', 'Gvidas', 'Gvidonas', 'Haraldas', 'Haris', 'Haroldas', 'Hektoras', 'Helmutas',
|
||||
'Henrikas', 'Henris', 'Herbertas', 'Herkus', 'Hermanas', 'Hilarijus', 'Horacijus', 'Horstas', 'Hubertas', 'Ignacas',
|
||||
'Ignas', 'Ignotas', 'Igoris', 'Ilja', 'Imantas', 'Indrius', 'Ingvaras', 'Inocentas', 'Ipolitas', 'Irenijus', 'Irmantas',
|
||||
'Irtautas', 'Irvydas', 'Isaakas', 'Isakas', 'Ivanas', 'Izidorius', 'Izoldas', 'Jacekas', 'Jakovas', 'Jakubas', 'Janas',
|
||||
'Janis', 'Jankelis', 'Janušas', 'Jaroslavas', 'Jaunius', 'Jaunutis', 'Jegoras', 'Jemeljanas', 'Jeronimas', 'Jevgenijus',
|
||||
'Ježis', 'Joanas', 'Jogaila', 'Jogintas', 'Jogirdas', 'Jokimas', 'Jokūbas', 'Jolantas', 'Jomantas', 'Jonaras', 'Jonas',
|
||||
'Jonis', 'Joris', 'Jorūnas', 'Josifas', 'Jotautas', 'Jovaldas', 'Jovaras', 'Jovitas', 'Judrius', 'Julijonas', 'Julijus',
|
||||
'Julius', 'Juljanas', 'Juozapas', 'Juozapatas', 'Juozas', 'Juras', 'Jurgis', 'Jurijus', 'Jūras', 'Jūris', 'Justas',
|
||||
'Justinas', 'Juvencijus', 'Juzefas', 'Kajetonas', 'Kajus', 'Kalikstas', 'Kalnius', 'Kamilis', 'Kaributas', 'Karlas',
|
||||
'Karolis', 'Karpas', 'Kasparas', 'Kastantas', 'Kastytis', 'Kazimieras', 'Kazys', 'Kęstas', 'Kęstautas', 'Kęstutis',
|
||||
'Kimas', 'Kipras', 'Kiprijonas', 'Kirilas', 'Klaudas', 'Klaudijus', 'Klemas', 'Klemensas', 'Klementas', 'Kleopas',
|
||||
'Klevas', 'Klimas', 'Klimentijus', 'Kondratas', 'Konradas', 'Konstantinas', 'Kornelijus', 'Kostas', 'Kovas', 'Kozmas',
|
||||
'Krescencijus', 'Kristijonas', 'Kristinas', 'Kristoforas', 'Kristupas', 'Ksaveras', 'Kšištofas', 'Kuprijanas', 'Laimis',
|
||||
'Laimonas', 'Laimutis', 'Laisvydas', 'Laisvis', 'Laisvūnas', 'Lauras', 'Laurentijus', 'Laurynas', 'Lauris',
|
||||
'Lavrentijus', 'Leandras', 'Leonardas', 'Leonas', 'Leonidas', 'Leopoldas', 'Levas', 'Libertas', 'Linas', 'Lionginas',
|
||||
'Liubartas', 'Liubomiras', 'Liucijonas', 'Liucijus', 'Liudas', 'Liudvigas', 'Liudvikas', 'Liūtas', 'Liutauras',
|
||||
'Livijus', 'Lozorius', 'Lukas', 'Lukrecijus', 'Makaras', 'Makarijus', 'Maksas', 'Maksimas', 'Maksimilijonas',
|
||||
'Mamertas', 'Manfredas', 'Mangirdas', 'Mantas', 'Mantautas', 'Mantrimas', 'Mantvydas', 'Maratas', 'Marcelijus ',
|
||||
'Marcelinas', 'Marcelius', 'Marekas', 'Margiris', 'Marianas', 'Marijonas', 'Marijus', 'Marinas', 'Marius', 'Markas',
|
||||
'Martas', 'Martinas', 'Martynas', 'Matas', 'Mateušas', 'Matvejus', 'Mažvydas', 'Mečislavas', 'Mečislovas', 'Mečys',
|
||||
'Medardas', 'Medas', 'Mefodijus', 'Melanijus', 'Melchioras', 'Mendelis', 'Merkys', 'Merūnas', 'Michalas', 'Michailas',
|
||||
'Miglius', 'Mikalojus', 'Mikas', 'Mikolajus', 'Milanas', 'Mildas', 'Milvydas', 'Mindaugas', 'Minijus', 'Mykolas',
|
||||
'Mingaudas', 'Mintaras', 'Miroslavas', 'Modestas', 'Morkus', 'Motiejus', 'Mozė', 'Naglis', 'Napalis', 'Napalys',
|
||||
'Napoleonas', 'Napolis', 'Narcizas', 'Narimantas', 'Narsutis', 'Narvydas', 'Natanas', 'Natas', 'Naumas', 'Nauris',
|
||||
'Nazaras', 'Nazarijus', 'Nedas', 'Neimantas', 'Neivydas', 'Nemunas', 'Nerijus', 'Nerimantas', 'Nerimas', 'Neringas',
|
||||
'Nerius', 'Nidas', 'Nikandras', 'Nikas', 'Nikiforas', 'Nikita', 'Nikodemas', 'Nikola', 'Nikolajus', 'Nilas', 'Nojus',
|
||||
'Nomedas', 'Norbertas', 'Normanas', 'Normantas', 'Nortautas', 'Norvydas', 'Norvilas', 'Oktavijus', 'Olegas', 'Orestas',
|
||||
'Orintas', 'Oskaras', 'Osmundas', 'Osvaldas', 'Otas', 'Otilijus', 'Otonas', 'Ovidijus', 'Palemonas', 'Palmyras',
|
||||
'Patricijus', 'Patrikas', 'Paulis', 'Paulius', 'Petras', 'Pijus', 'Pilypas', 'Pilėnas', 'Piotras', 'Platonas',
|
||||
'Polikarpas', 'Polis', 'Povilas', 'Pranas', 'Pranciškus', 'Putinas', 'Radvila', 'Rafaelis', 'Rafailas', 'Rafalas',
|
||||
'Raigardas', 'Raimondas', 'Raimundas', 'Rainoldas', 'Ralfas', 'Ramintas', 'Ramonas', 'Ramūnas', 'Rapolas', 'Rasius',
|
||||
'Raulis', 'Redas', 'Regimantas', 'Reginaldas', 'Reinhardas', 'Remas', 'Remigijus', 'Renaldas', 'Renatas', 'Renius',
|
||||
'Richardas', 'Ričardas', 'Rikardas', 'Rimantas', 'Rimas', 'Rimgaudas', 'Rimtas', 'Rimtautas', 'Rimtis', 'Rimvydas',
|
||||
'Rinatas', 'Ryšardas', 'Rytas', 'Rytautas', 'Rytis', 'Robertas', 'Robinas', 'Rodrigas', 'Rokas', 'Rolandas', 'Rolfas',
|
||||
'Romanas', 'Romas', 'Romualdas', 'Ronaldas', 'Rostislavas', 'Rubenas', 'Rudolfas', 'Rufas', 'Rufinas', 'Rupertas',
|
||||
'Ruslanas', 'Rūtenis', 'Sabinas', 'Sakalas', 'Saliamonas', 'Salvijus', 'Samuelis', 'Samsonas', 'Samuilas', 'Sandras',
|
||||
'Santaras', 'Saulenis', 'Saulius', 'Sava', 'Sebastijonas', 'Semas', 'Semionas', 'Serafinas', 'Serapinas', 'Sergejus',
|
||||
'Sergijus', 'Seržas', 'Severas', 'Severinas', 'Sidas', 'Sidoras', 'Sigis', 'Sigitas', 'Sigizmundas', 'Sikstas',
|
||||
'Silverijus', 'Silvestras', 'Silvijus', 'Simas', 'Simeonas', 'Simonas', 'Sirvydas', 'Skaidrius', 'Skaistis',
|
||||
'Skalmantas', 'Skalvis', 'Skirgaila', 'Skirmantas', 'Skomantas', 'Sonetas', 'Stanislavas', 'Stanislovas', 'Stasys',
|
||||
'Stasius', 'Stepas', 'Stefanas', 'Stepanas', 'Steponas', 'Svajūnas', 'Svajus', 'Sviatoslavas', 'Šarūnas', 'Šiaurys',
|
||||
'Švitrigaila', 'Tadas', 'Tadeušas', 'Tamošius', 'Tarasas', 'Tauras', 'Tautginas', 'Tautrimas', 'Tautvydas', 'Tedas',
|
||||
'Telesforas', 'Teisius', 'Teisutis', 'Teodoras', 'Teofilis', 'Terentijus', 'Tiberijus', 'Timas', 'Timotiejus',
|
||||
'Timotis', 'Timūras', 'Titas', 'Tomas', 'Tomašas', 'Tonis', 'Traidenis', 'Trofimas', 'Tumas', 'Ugnius', 'Ulrikas',
|
||||
'Uosis', 'Urbonas', 'Utenis', 'Ubaldas', 'Ūdrys', 'Ūkas', 'Vacys', 'Vacius', 'Vaclovas', 'Vadimas', 'Vaidas',
|
||||
'Vaidevutis', 'Vaidila', 'Vaidis', 'Vaidotas', 'Vaidutis', 'Vaigaudas', 'Vaigirdas', 'Vainius', 'Vainoras', 'Vaitiekus',
|
||||
'Vaižgantas', 'Vakaris', 'Valdas', 'Valdemaras', 'Valdimantas', 'Valdis', 'Valentas', 'Valentinas', 'Valerijonas',
|
||||
'Valerijus', 'Valys', 'Valius', 'Valteris', 'Vasaris', 'Vasilijus', 'Venantas', 'Verneris', 'Vėjas', 'Vėjūnas',
|
||||
'Venjaminas', 'Vergilijus', 'Vestas', 'Viačeslavas', 'Vidas', 'Vydas', 'Vidimantas', 'Vydimantas', 'Vidmantas',
|
||||
'Vydmantas', 'Viesulas', 'Vygaudas', 'Vigilijus', 'Vygintas', 'Vygirdas', 'Vykantas', 'Vykintas', 'Viktas', 'Viktoras',
|
||||
'Viktorijus', 'Viktorinas', 'Vilenas', 'Vilgaudas', 'Vilhelmas', 'Vilijus', 'Vilius', 'Vylius', 'Vilmantas', 'Vilmas',
|
||||
'Vilnius', 'Viltaras', 'Viltautas', 'Viltenis', 'Vincas', 'Vincentas', 'Vingaudas', 'Virgaudas', 'Virgilijus',
|
||||
'Virginijus', 'Virgintas', 'Virgis', 'Virgius', 'Virmantas', 'Vismantas', 'Visvaldas', 'Visvaldis', 'Vitalijus',
|
||||
'Vitalis', 'Vitalius', 'Vitas', 'Vitoldas', 'Vygandas', 'Vygantas', 'Vykintas', 'Vytaras', 'Vytautas', 'Vytas',
|
||||
'Vytenis', 'Vytis', 'Vyturys', 'Vladas', 'Vladimiras', 'Vladislavas', 'Vladislovas', 'Vladlenas', 'Voicechas',
|
||||
'Voldemaras', 'Vsevolodas', 'Zacharijus', 'Zakarijus', 'Zbignevas', 'Zdislavas', 'Zenius', 'Zenonas', 'Zigfridas',
|
||||
'Zygfridas', 'Zigmantas', 'Zigmas', 'Zygmuntas', 'Zinovijus', 'Žanas', 'Žeimantas', 'Žilvinas', 'Žibartas', 'Žybartas',
|
||||
'Žydrius', 'Žydrūnas', 'Žygaudas', 'Žygimantas', 'Žygintas', 'Žygis', 'Žymantas', 'Žvaigždžius',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see https://lt.wikipedia.org/wiki/S%C4%85ra%C5%A1as:Lietuvoje_paplit%C4%99_vardai
|
||||
*/
|
||||
protected static $firstNameFemale = [
|
||||
'Ada', 'Adelė', 'Adelija', 'Adelina', 'Adolfa', 'Adolfina',
|
||||
'Adriana', 'Adrija', 'Adrijana', 'Agata', 'Agnė', 'Agnetė', 'Agnieška', 'Agnietė', 'Agnija',
|
||||
'Agota', 'Agripina', 'Aida', 'Aidė', 'Aimana', 'Aimantė', 'Aina', 'Ainė', 'Airė', 'Airida', 'Aistė',
|
||||
'Aistra', 'Aitra', 'Aivara', 'Akvilė', 'Akvilina', 'Alana', 'Alanta', 'Alberta', 'Albertina',
|
||||
'Albina', 'Alda', 'Aldona', 'Alė', 'Aleksandra', 'Aleksandrina', 'Aleksė', 'Aleta', 'Alfonsė',
|
||||
'Alfonsa', 'Alfreda', 'Algė', 'Algimanta', 'Algimantė', 'Algina', 'Algirdė', 'Algutė', 'Alicija',
|
||||
'Alina', 'Aliodija', 'Aliona', 'Alisa', 'Alma', 'Aloyza', 'Alona', 'Alva', 'Alvyda', 'Alvydė',
|
||||
'Alvita', 'Amalija', 'Amanda', 'Ana', 'Anastasija', 'Anastazija', 'Andrė', 'Andrėja', 'Andžela',
|
||||
'Anė', 'Anelė', 'Aneta', 'Anetė', 'Angelė', 'Angelina', 'Aniceta', 'Antanina', 'Antonida',
|
||||
'Antonija', 'Antonina', 'Anzelma', 'Apolinarija', 'Apolonija', 'Ara', 'Ariadnė', 'Arija',
|
||||
'Arimantė', 'Arina', 'Aristida', 'Armina', 'Arminta', 'Arnė', 'Arnolda', 'Arūnė', 'Arvydė', 'Asta',
|
||||
'Astija', 'Astra', 'Astrida', 'Ašara', 'Atėnė', 'Audra', 'Audrė', 'Audronė', 'Augustė', 'Augustina',
|
||||
'Augutė', 'Auksė', 'Auksuolė', 'Aura', 'Aurėja', 'Aurelija', 'Aurora', 'Austė', 'Austėja', 'Austra',
|
||||
'Aušra', 'Aušrinė', 'Banga', 'Banguolė', 'Barbara', 'Barbora', 'Bargailė', 'Bartė', 'Basia',
|
||||
'Beata', 'Beatričė', 'Benedikta', 'Benė', 'Benigna', 'Benita', 'Benjamina', 'Bernadeta', 'Bernarda',
|
||||
'Bernardina', 'Berta', 'Beta', 'Biruta', 'Birutė', 'Bytautė', 'Bitė', 'Boleslava', 'Boleslova',
|
||||
'Brigita', 'Bronė', 'Bronislava', 'Bronislova', 'Božena', 'Cecilė', 'Cecilija', 'Celestina',
|
||||
'Celina', 'Cezarija', 'Cilė', 'Cintija', 'Dagmara', 'Dagna', 'Dagnė', 'Daina', 'Dainė', 'Dainora',
|
||||
'Daiva', 'Daivita', 'Daivutė', 'Dalė', 'Dalia', 'Dalija', 'Dalytė', 'Dana', 'Danė', 'Dangė',
|
||||
'Dangerutė', 'Dangira', 'Daniela', 'Danielė', 'Danguolė', 'Danuta', 'Danutė', 'Darata', 'Daria',
|
||||
'Darija', 'Darja', 'Daugailė', 'Daumantė', 'Debora', 'Deima', 'Deimantė', 'Deivė', 'Deivilė',
|
||||
'Demetra', 'Diana', 'Dijana', 'Dina', 'Dinara', 'Dita', 'Ditė', 'Doloresa', 'Doma', 'Domantė',
|
||||
'Domicelė', 'Dominika', 'Dominyka', 'Dona', 'Donalda', 'Donata', 'Dora', 'Dorota', 'Dorotė',
|
||||
'Dorotėja', 'Dovilė', 'Džeinė', 'Džeralda', 'Džesika', 'Džilda', 'Džina', 'Džiugė', 'Džiuginta',
|
||||
'Džiulija', 'Džiuljeta', 'Džordana', 'Džulija', 'Edita', 'Eglė', 'Egida', 'Egidija', 'Eidvilė',
|
||||
'Eimantė', 'Einara', 'Eiva', 'Ela', 'Elada', 'Elė', 'Elegija', 'Elena', 'Eleonora', 'Elfrida',
|
||||
'Elija', 'Elytė', 'Eliza', 'Elma', 'Elona', 'Elvira', 'Elvyra', 'Elza', 'Elzė', 'Elžbieta', 'Ema',
|
||||
'Emanuelė', 'Emilė', 'Emilija', 'Enrika', 'Erdvilė', 'Erika', 'Ermina', 'Erna', 'Ernesta',
|
||||
'Ernestina', 'Ervina', 'Esmeralda', 'Estela', 'Estera', 'Eufrozina', 'Eugenija', 'Eulalija', 'Eva',
|
||||
'Evalda', 'Evelina', 'Fabija', 'Faina', 'Faustina', 'Felicija', 'Felicita', 'Feliksa', 'Fernanda',
|
||||
'Filomena', 'Freda', 'Frida', 'Gabeta', 'Gabija', 'Gabriela', 'Gabrielė', 'Gailė', 'Gailiūtė',
|
||||
'Gailutė', 'Gaiva', 'Gaivilė', 'Gaja', 'Galia', 'Galina', 'Gaudencija', 'Gaudrė', 'Geda',
|
||||
'Gedimina', 'Gediminė', 'Gedmantė', 'Gedmintė', 'Gedvyda', 'Geida', 'Geismantė', 'Geistė', 'Gelena',
|
||||
'Gėlė', 'Gelmė', 'Gema', 'Gena', 'Genadija', 'Gendrė', 'Genė', 'Genovaitė', 'Genovefa', 'Genutė',
|
||||
'Georgina', 'Gerarda', 'Gerda', 'Germantė', 'Gerta', 'Gertė', 'Gertruda', 'Gertrūda', 'Geta',
|
||||
'Giedra', 'Giedrė', 'Gilda', 'Gilė', 'Gilija', 'Gilma', 'Gina', 'Gintara', 'Gintarė', 'Gintautė',
|
||||
'Gintė', 'Girstautė', 'Girstė', 'Gita', 'Gitana', 'Gitė', 'Gytė', 'Gizela', 'Glorija', 'Gluosnė',
|
||||
'Goda', 'Gotautė', 'Gotė', 'Gracija', 'Grasilda', 'Gražina', 'Gražyna', 'Gražvyda', 'Greta',
|
||||
'Grėtė', 'Grita', 'Grytė', 'Gunda', 'Guoda', 'Gustė', 'Gustina', 'Halina', 'Hana', 'Helena',
|
||||
'Henrika', 'Helga', 'Henrieta', 'Henrietė', 'Herma', 'Hiacinta', 'Hilda', 'Honorata', 'Hortenzija',
|
||||
'Ida', 'Idalija', 'Ieva', 'Ievutė', 'Ignė', 'Ignota', 'Ilma', 'Ilmena', 'Ilona', 'Ilzė', 'Imantė',
|
||||
'Ina', 'Indra', 'Indraja', 'Indrė', 'Inesa', 'Ineta', 'Inga', 'Ingita', 'Ingė', 'Ingeborga',
|
||||
'Ingrida', 'Ira', 'Irena', 'Irida', 'Iridė', 'Irina', 'Irma', 'Irmanta', 'Irmantė', 'Irmina',
|
||||
'Irmutė', 'Irta', 'Irtautė', 'Irutė', 'Isabela', 'Iva', 'Ivana', 'Ivona', 'Iveta', 'Iza', 'Izabela',
|
||||
'Izabelė', 'Izidė', 'Izidora', 'Izolda', 'Jadzė', 'Jadviga', 'Jadvyga', 'Jana', 'Janė', 'Janina',
|
||||
'Januarija', 'Jaunė', 'Jaunutė', 'Jekaterina', 'Jelena', 'Jelizaveta', 'Jeronima', 'Jevdokija',
|
||||
'Jieva', 'Joana', 'Jogailė', 'Jogilė', 'Jogintė', 'Jola', 'Jolanta', 'Joleta', 'Jolita', 'Jomantė',
|
||||
'Jomilė', 'Jonė', 'Jorė', 'Jorigė', 'Jorūnė', 'Jotvingė', 'Jovilė', 'Jovita', 'Judita', 'Judra',
|
||||
'Judrė', 'Julė', 'Juliana', 'Julija', 'Julijana', 'Julijona', 'Julita', 'Julytė', 'Juozapina',
|
||||
'Juozapota', 'Juozė', 'Jura', 'Jūra', 'Jūrė', 'Jūratė', 'Jurga', 'Jurgė', 'Jurgina', 'Jurgita',
|
||||
'Justė', 'Justina', 'Juta', 'Juventa', 'Juzefa', 'Kaja', 'Kamila', 'Kamilė', 'Karina', 'Karla',
|
||||
'Karmela', 'Karolė', 'Karolina', 'Kasia', 'Kastė', 'Kastytė', 'Katarina', 'Katažina', 'Katažyna',
|
||||
'Katerina', 'Katia', 'Katrė', 'Kazė', 'Kazimiera', 'Kazimira', 'Kazytė', 'Kęstė', 'Kira', 'Klara',
|
||||
'Klarisa', 'Klaudija', 'Klema', 'Klementina', 'Kleopa', 'Kleopatra', 'Klotilda', 'Konstancija',
|
||||
'Konstantina', 'Kornelija', 'Kostė', 'Kotryna', 'Krista', 'Kristė', 'Kristijona', 'Kristina',
|
||||
'Krystyna', 'Ksavera', 'Ksaverija', 'Ksenija', 'Kunigunda', 'Lada', 'Laima', 'Laimė', 'Laimona',
|
||||
'Laimutė', 'Laisvė', 'Laisvyda', 'Laisvydė', 'Laisvūnė', 'Lana', 'Lara', 'Larisa', 'Lauma', 'Laura',
|
||||
'Laurena', 'Laurentina', 'Lauryna', 'Leandra', 'Leda', 'Leila', 'Lėja', 'Lelija', 'Lena',
|
||||
'Leokadija', 'Leona', 'Leonarda', 'Leonė', 'Leonida', 'Leonija', 'Leonila', 'Leonilė', 'Leonora',
|
||||
'Leontina', 'Leopolda', 'Leta', 'Lėta', 'Leticija', 'Leva', 'Levutė', 'Liana', 'Liauda', 'Liberta',
|
||||
'Lida', 'Lidija', 'Liepa', 'Lijana', 'Lilė', 'Liliana', 'Lilija', 'Lilijana', 'Lina', 'Linda',
|
||||
'Lingailė', 'Linė', 'Lionė', 'Liongina', 'Liuba', 'Liubarta', 'Liubovė', 'Liucė', 'Liucilė',
|
||||
'Liucina', 'Liucija', 'Liuda', 'Liudmila', 'Liudvika', 'Liūnė', 'Liutaura', 'Liva', 'Liveta',
|
||||
'Livija', 'Liza', 'Lizaveta', 'Lola', 'Lolita', 'Longina', 'Lora', 'Lorena', 'Loreta', 'Lorija',
|
||||
'Lucyna', 'Luisa', 'Luiza', 'Luknė', 'Lukrecija', 'Magda', 'Magdalena', 'Magdė', 'Maja', 'Malda',
|
||||
'Malgožata', 'Malvina', 'Mamerta', 'Mamertina', 'Mantautė', 'Mantė', 'Mantvydė', 'Manuela', 'Mara',
|
||||
'Marcė', 'Marcelė', 'Marcelija', 'Marcelina', 'Marcijona', 'Marė', 'Marilė', 'Margita', 'Margarita',
|
||||
'Mariana', 'Marija', 'Marijona', 'Marina', 'Marita', 'Marytė', 'Marta', 'Martina', 'Martyna',
|
||||
'Matilda', 'Matriona', 'Mažvydė', 'Mečislava', 'Mečislova', 'Meda', 'Medeina', 'Medėja', 'Megana',
|
||||
'Megė', 'Meilė', 'Meilutė', 'Melanija', 'Melda', 'Melisa', 'Mėnulė', 'Mėta', 'Michalina', 'Miglė',
|
||||
'Mika', 'Mikalina', 'Mykolė', 'Mila', 'Milda', 'Mildutė', 'Milena', 'Milvydė', 'Mindaugė',
|
||||
'Mingailė', 'Minija', 'Mintara', 'Mintarė', 'Mintautė', 'Mintė', 'Mira', 'Mirga', 'Modesta', 'Mona',
|
||||
'Monika', 'Morta', 'Nadė', 'Nadia', 'Nadežda', 'Nadiežda', 'Naktis', 'Narciza', 'Nastasija',
|
||||
'Nastazija', 'Nastė', 'Nastia', 'Natalija', 'Nata', 'Neda', 'Neimantė', 'Nela', 'Nelė', 'Nemira',
|
||||
'Nemunė', 'Nendrė', 'Neringa', 'Nerita', 'Nida', 'Nijolė', 'Nika', 'Nikė', 'Nila', 'Nilė', 'Nina',
|
||||
'Ninelė', 'Noja', 'Nomeda', 'Nona', 'Nora', 'Norberta', 'Norma', 'Norgailė', 'Normantė', 'Nortė',
|
||||
'Norvyda', 'Norvilė', 'Odeta', 'Ofelija', 'Oksana', 'Oktavija', 'Oktiabrina', 'Olga', 'Olimpiada',
|
||||
'Olimpija', 'Oliva', 'Olivija', 'Ona', 'Onė', 'Onorata', 'Onutė', 'Oresta', 'Orinta', 'Otilija',
|
||||
'Ovidija', 'Palma', 'Palmira', 'Palmyra', 'Pamela', 'Pasaka', 'Patricija', 'Paula', 'Paulė',
|
||||
'Paulina', 'Pelagėja', 'Pelagija', 'Petra', 'Petrė', 'Petronė', 'Petronėlė', 'Petrutė', 'Pija',
|
||||
'Polė', 'Polina', 'Povilė', 'Pranciška', 'Pranė', 'Praskovja', 'Prima', 'Pulcherija', 'Rachilė',
|
||||
'Rada', 'Radmila', 'Radvyda', 'Radvilė', 'Rafaela', 'Rafaelė', 'Raimonda', 'Raimunda', 'Raistė',
|
||||
'Rakelė', 'Ramybė', 'Raminta', 'Ramona', 'Ramunė', 'Ramūnė', 'Ramutė', 'Rasa', 'Raselė', 'Rasė',
|
||||
'Rasytė', 'Rasuolė', 'Rasvita', 'Rebeka', 'Reda', 'Rėda', 'Rega', 'Regimanta', 'Regimantė',
|
||||
'Regina', 'Rema', 'Remigija', 'Rena', 'Renalda', 'Renata', 'Renatė', 'Renė', 'Ričarda', 'Rikarda',
|
||||
'Rima', 'Rimanta', 'Rimantė', 'Rimgailė', 'Rimgaudė', 'Rimtautė', 'Rimtė', 'Rimutė', 'Rimvyda',
|
||||
'Rimvydė', 'Rimvilė', 'Rina', 'Ringa', 'Ringailė', 'Rita', 'Ryta', 'Ritė', 'Rytė', 'Roberta',
|
||||
'Robertina', 'Rolanda', 'Roma', 'Romana', 'Romė', 'Romina', 'Romualda', 'Rosita', 'Roza',
|
||||
'Rozalija', 'Rožė', 'Rufina', 'Rugilė', 'Ruslana', 'Rusnė', 'Rūstė', 'Ruta', 'Rūta', 'Rūtelė',
|
||||
'Rūtenė', 'Rūtilė', 'Sabina', 'Sabrina', 'Salė', 'Salomėja', 'Salvė', 'Salvija', 'Salvinija',
|
||||
'Samanta', 'Sandra', 'Santara', 'Sauga', 'Saulė', 'Saulena', 'Saulenė', 'Saulytė', 'Saulutė',
|
||||
'Selena', 'Selma', 'Serafina', 'Serafima', 'Serena', 'Severija', 'Severina', 'Sibilė', 'Siga',
|
||||
'Sigita', 'Sigrida', 'Sigutė', 'Silva', 'Silverija', 'Silvestra', 'Silvija', 'Sima', 'Simona',
|
||||
'Sintė', 'Sintija', 'Siuzana', 'Skaidra', 'Skaidrė', 'Skaiste', 'Skaiva', 'Skalvė', 'Skirgailė',
|
||||
'Skirma', 'Skirmanta', 'Skirmantė', 'Skolastika', 'Smilga', 'Smiltė', 'Snaigė', 'Snežana', 'Sniegė',
|
||||
'Sniegena', 'Snieguolė', 'Sofa', 'Sofija', 'Solveiga', 'Sonata', 'Soneta', 'Sonia', 'Sotera',
|
||||
'Stanislava', 'Stanislova', 'Staselė', 'Stasė', 'Stefa', 'Stefanija', 'Stela', 'Stepė', 'Sulamita',
|
||||
'Svaja', 'Svajonė', 'Sveta', 'Svetlana', 'Šalna', 'Šalnė', 'Šarlota', 'Šarūnė', 'Šatrija', 'Šilė',
|
||||
'Šviesa', 'Šviesė', 'Švitrigailė', 'Taika', 'Taisa', 'Taisija', 'Tamara', 'Tania', 'Tatjana',
|
||||
'Taura', 'Tautė', 'Tautvydė', 'Teklė', 'Teodora', 'Teofilė', 'Tera', 'Teresė', 'Tereza', 'Terezija',
|
||||
'Tesa', 'Tilija', 'Tina', 'Toma', 'Ugnė', 'Ula', 'Ulė', 'Ulijona', 'Uljana', 'Ulrika', 'Una',
|
||||
'Undinė', 'Unė', 'Uoginta', 'Ursula', 'Uršula', 'Uršulė', 'Urtė', 'Ūla', 'Upė', 'Vacė', 'Vaclava',
|
||||
'Vaclova', 'Vaida', 'Vaidota', 'Vaidotė', 'Vaidilutė', 'Vaiga', 'Vaigalė', 'Vainora', 'Vaiva',
|
||||
'Vakarė', 'Valda', 'Valdemara', 'Valdė', 'Valdonė', 'Valentina', 'Valeriana', 'Valerija',
|
||||
'Valerijona', 'Valia', 'Valė', 'Vanda', 'Varvara', 'Vasa', 'Vasara', 'Vasarė', 'Vasilisa', 'Vėja',
|
||||
'Vėjūnė', 'Venanta', 'Vena', 'Venera', 'Venta', 'Vera', 'Verena', 'Vergilija', 'Verutė', 'Veronika',
|
||||
'Vesta', 'Vėtra', 'Vida', 'Vyda', 'Vidmanta', 'Vidmantė', 'Vydmantė', 'Vidimanta', 'Vigilija',
|
||||
'Vygantė', 'Vygintė', 'Vija', 'Vijolė', 'Vika', 'Vykintė', 'Vikta', 'Viktė', 'Viktorija',
|
||||
'Viktorina', 'Vilena', 'Vilė', 'Vylė', 'Vilhelma', 'Vilhelmina', 'Vilija', 'Vilma', 'Vilmanta',
|
||||
'Vilmantė', 'Vilnė', 'Viltara', 'Viltautė', 'Viltė', 'Viltenė', 'Vilūnė', 'Vincė', 'Vincenta',
|
||||
'Vincentė', 'Viola', 'Violeta', 'Violina', 'Virdžinija', 'Virga', 'Virginija', 'Virmantė',
|
||||
'Vismantė', 'Vita', 'Vyta', 'Vitalė', 'Vitalija', 'Vytautė', 'Vitė', 'Vytė', 'Vytenė', 'Vlada',
|
||||
'Vladė', 'Vladislava', 'Vladislova', 'Vladlena', 'Vilita', 'Zabelė', 'Zanė', 'Zelma', 'Zenė',
|
||||
'Zigfrida', 'Zigmantė', 'Zylė', 'Zina', 'Zinaida', 'Zita', 'Zofija', 'Zoja', 'Zosė', 'Zuzana',
|
||||
'Žana', 'Žaneta', 'Žara', 'Žeimantė', 'Žemyna', 'Žibuoklė', 'Žibutė', 'Žiedė', 'Živilė', 'Žydrė',
|
||||
'Žydronė', 'Žydrūnė', 'Žygimantė', 'Žyginta', 'Žilvinė', 'Žymantė', 'Žoržeta',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see http://www.horoskopai.lt/gaires/populiariausios-pavardes-lietuvoje/
|
||||
*/
|
||||
protected static $lastNameMale = [
|
||||
'Kazlauskas', 'Jankauskas', 'Petrauskas', 'Stankevičius', 'Vasiliauskas', 'Žukauskas', 'Butkus',
|
||||
'Kateiva', 'Paulauskas', 'Urbonas', 'Kavaliauskas', 'Baranauskas', 'Pocius', 'Sakalauskas',
|
||||
];
|
||||
|
||||
/**
|
||||
* @see http://www.horoskopai.lt/gaires/populiariausios-pavardes-lietuvoje/
|
||||
*/
|
||||
protected static $lastNameFemale = [
|
||||
'Kazlauskienė', 'Jankauskienė', 'Petrauskienė', 'Stankevičienė', 'Vasiliauskienė', 'Paulauskienė',
|
||||
'Žukauskienė', 'Urbonienė', 'Kavaliauskienė', 'Navickienė', 'Kazlauskaitė', 'Jankauskaitė', 'Stankevičiūtė',
|
||||
'Petrauskaitė', 'Vasiliauskaitė', 'Butkutė', 'Pociūtė', 'Lukoševičiūtė', 'Balčiūnaitė', 'Kavaliauskaitė',
|
||||
];
|
||||
|
||||
/**
|
||||
* @param string|null $gender 'male', 'female' or null for any
|
||||
*
|
||||
* @example 'Doe'
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function lastName($gender = null)
|
||||
{
|
||||
if ($gender === static::GENDER_MALE) {
|
||||
return static::lastNameMale();
|
||||
}
|
||||
|
||||
if ($gender === static::GENDER_FEMALE) {
|
||||
return static::lastNameFemale();
|
||||
}
|
||||
|
||||
return $this->generator->parse(static::randomElement(static::$lastNameFormat));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return male last name
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 'Vasiliauskas'
|
||||
*/
|
||||
public function lastNameMale()
|
||||
{
|
||||
return static::randomElement(static::$lastNameMale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return female last name
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 'Žukauskaitė'
|
||||
*/
|
||||
public function lastNameFemale()
|
||||
{
|
||||
return static::randomElement(static::$lastNameFemale);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return driver license number
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 12345678
|
||||
*/
|
||||
public function driverLicence()
|
||||
{
|
||||
return $this->bothify('########');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return passport number
|
||||
*
|
||||
* @return string
|
||||
*
|
||||
* @example 12345678
|
||||
*/
|
||||
public function passportNumber()
|
||||
{
|
||||
return $this->bothify('########');
|
||||
}
|
||||
|
||||
/**
|
||||
* National Personal Identity number (asmens kodas)
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/National_identification_number#Lithuania
|
||||
* @see https://lt.wikipedia.org/wiki/Asmens_kodas
|
||||
*
|
||||
* @param string $gender [male|female]
|
||||
* @param string $randomNumber three integers
|
||||
*
|
||||
* @return string on format XXXXXXXXXXX
|
||||
*/
|
||||
public function personalIdentityNumber($gender = 'male', ?\DateTime $birthdate = null, $randomNumber = '')
|
||||
{
|
||||
if (!$birthdate) {
|
||||
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
|
||||
}
|
||||
|
||||
$genderNumber = ($gender == 'male') ? 1 : 0;
|
||||
$firstNumber = (int) floor($birthdate->format('Y') / 100) * 2 - 34 - $genderNumber;
|
||||
|
||||
$datePart = $birthdate->format('ymd');
|
||||
$randomDigits = (string) (!$randomNumber || strlen($randomNumber) < 3) ? static::numerify('###') : substr($randomNumber, 0, 3);
|
||||
$partOfPerosnalCode = $firstNumber . $datePart . $randomDigits;
|
||||
|
||||
$sum = self::calculateSum($partOfPerosnalCode, 1);
|
||||
$liekana = $sum % 11;
|
||||
|
||||
if ($liekana !== 10) {
|
||||
$lastNumber = $liekana;
|
||||
|
||||
return $firstNumber . $datePart . $randomDigits . $lastNumber;
|
||||
}
|
||||
|
||||
$sum = self::calculateSum($partOfPerosnalCode, 2);
|
||||
$liekana = $sum % 11;
|
||||
|
||||
$lastNumber = ($liekana !== 10) ? $liekana : 0;
|
||||
|
||||
return $firstNumber . $datePart . $randomDigits . $lastNumber;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculate the sum of personal code
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/National_identification_number#Lithuania
|
||||
* @see https://lt.wikipedia.org/wiki/Asmens_kodas
|
||||
*
|
||||
* @param string $numbers
|
||||
* @param int $time [1|2]
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
private static function calculateSum($numbers, $time = 1)
|
||||
{
|
||||
if ($time == 1) {
|
||||
$multipliers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1];
|
||||
} else {
|
||||
$multipliers = [3, 4, 5, 6, 7, 8, 9, 1, 2, 3];
|
||||
}
|
||||
|
||||
$sum = 0;
|
||||
|
||||
for ($i = 1; $i <= 10; ++$i) {
|
||||
$sum += ((int) $numbers[$i - 1]) * $multipliers[$i - 1];
|
||||
}
|
||||
|
||||
return (int) $sum;
|
||||
}
|
||||
}
|
||||
+173
@@ -0,0 +1,173 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\lv_LV;
|
||||
|
||||
use Faker\Provider\DateTime;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
/**
|
||||
* {@link} http://vardunozime.lv/names-male
|
||||
*/
|
||||
protected static $firstNameMale = [
|
||||
'Acons', 'Adalberts', 'Adelions', 'Adeljans', 'Adeļjons', 'Adgars', 'Adis', 'Ado', 'Adonis', 'Adoniss', 'Adrians', 'Adriāns', 'Adris', 'Afanasijs', 'Agatons', 'Agejs', 'Agijs', 'Aģis', 'Agnārs', 'Agnis', 'Agris', 'Agrits', 'Agrons', 'Agurs', 'Ahmads', 'Ahmeds', 'Ahto', 'Aidars', 'Aidis', 'Aigars', 'Aigijs', 'Aigils', 'Aigis', 'Aigo', 'Aigvars', 'Ailands', 'Aimo', 'Ainards', 'Ainārs', 'Ainars', 'Ainis', 'Aino', 'Airats', 'Airiks', 'Airis', 'Airtons', 'Aivalds', 'Aivars', 'Aivārs', 'Aivijs', 'Aivils', 'Aivis', 'Aivo', 'Akims', 'Ako', 'Akselis', 'Aksels', 'Alans', 'Alberts', 'Albīns', 'Albins', 'Aldijs', 'Aldis', 'Aldonis', 'Aldons', 'Aldris', 'Aleksandris', 'Aleksandrs', 'Aleksejs', 'Aleksis', 'Alekss', 'Alens', 'Alēns', 'Alereins', 'Alesandrs', 'Alfejs', 'Alfijs', 'Alfins', 'Alfons', 'Alfonss', 'Alfrēds', 'Alfreds', 'Alfrīds', 'Alfrids', 'Alfs', 'Algarts', 'Algers', 'Alģerts', 'Alģimants', 'Aļģirds', 'Algirds', 'Alģirds', 'Aļģirts', 'Alģirts', 'Alģis', 'Aļģis', 'Aliks', 'Aļiks', 'Alis', 'Alisters', 'Allans', 'Allens', 'Almands', 'Almants', 'Almārs', 'Almonds', 'Alnars', 'Alnis', 'Alnors', 'Aloīzijs', 'Aloizis', 'Aloizs', 'Aloīzs', 'Alons', 'Alsis', 'Altairs', 'Alvaro', 'Alvars', 'Alvids', 'Alvijs', 'Alvils', 'Alvīns', 'Alvis', 'Alvits', 'Amandis', 'Amands', 'Ambrozijs', 'Amijs', 'Amirans', 'Amirs', 'Amunds', 'Anārs', 'Anastāsijs', 'Anastāzijs', 'Anatolijs', 'Anatols', 'Ancis', 'Andars', 'Andejs', 'Anders', 'Anderss', 'Andijs', 'Andis', 'Ando', 'Andreass', 'Andrejans', 'Andrejs', 'Andrējs', 'Andress', 'Andriāns', 'Andrievs', 'Andrijans', 'Andrijs', 'Andris', 'Androns', 'Andrs', 'Andrus', 'Andruss', 'Andulis', 'Andžejs', 'Andzelms', 'Andželo', 'Andžs', 'Anfims', 'Angarijs', 'Anicets', 'Anis', 'Anrī', 'Anrijs', 'Anris', 'Anriss', 'Anselms', 'Ansis', 'Anšlavs', 'Antans', 'Antars', 'Antis', 'Antonijs', 'Antonio', 'Antons', 'Antris', 'Ants', 'Antuans', 'Anufrijs', 'Anvars', 'Anzelms', 'Anžijs', 'Apolinārijs', 'Apolinārs', 'Apolons', 'Aralds', 'Arams', 'Arčijs', 'Arčils', 'Ardis', 'Ards', 'Aress', 'Aretijs', 'Arets', 'Argils', 'Argo', 'Argods', 'Argons', 'Argots', 'Arguts', 'Arialds', 'Arians', 'Ariels', 'Arigo', 'Arijs', 'Ariko', 'Arilds', 'Arimands', 'Arīns', 'Arions', 'Aris', 'Ariss', 'Aristīds', 'Aristons', 'Arkādijs', 'Arlijs', 'Armando', 'Armands', 'Armanis', 'Armans', 'Armants', 'Armass', 'Armens', 'Armīds', 'Armīns', 'Armins', 'Armis', 'Arnis', 'Arno', 'Arnolds', 'Arnotijs', 'Arnulfs', 'Arsenijs', 'Arsēnijs', 'Arsens', 'Arsēns', 'Arsentijs', 'Artemijs', 'Artēmijs', 'Artijs', 'Artiks', 'Artis', 'Artjoms', 'Arts', 'Artūrs', 'Arturs', 'Arvalds', 'Arveds', 'Arvēds', 'Arvīds', 'Arvids', 'Arvils', 'Arvīns', 'Arvis', 'Arvo', 'Askolds', 'Asmunds', 'Astērijs', 'Astrīds', 'Atāls', 'Atanazijs', 'Atis', 'Atstars', 'Atvars', 'Audars', 'Audris', 'Augmants', 'Augustīns', 'Augusts', 'Aurelijs', 'Aurēlijs', 'Aurels', 'Auseklis', 'Ausmis', 'Ausmunds', 'Austris', 'Austrums',
|
||||
'Ādams', 'Ādolfs', 'Ārends', 'Ārens', 'Ārijs', 'Āriks', 'Āris', 'Ārons', 'Ārvaldis', 'Ārvalds', 'Āvo',
|
||||
'Baldūrs', 'Balvis', 'Bartolomejs', 'Bārtulis', 'Bazils', 'Bendžamins', 'Benedikts', 'Benijs', 'Benito', 'Benjāmiņš', 'Benjamins', 'Benno', 'Beno', 'Bens', 'Berils', 'Bernads', 'Bernards', 'Bernārs', 'Bernats', 'Bernhards', 'Bertolds', 'Bertrams', 'Berts', 'Bērtulis', 'Bierants', 'Billijs', 'Bils', 'Bogdans', 'Boļeslavs', 'Bonaventūrs', 'Bonifācijs', 'Bonifātijs', 'Bonifats', 'Bonijs', 'Borislavs', 'Boriss', 'Braiens', 'Braijens', 'Brains', 'Brencis', 'Brendons', 'Brets', 'Bronis', 'Broņislavs', 'Bronislavs', 'Brunis', 'Bruno', 'Brunons', 'Brūss',
|
||||
'Čariijs', 'Čarlzs', 'Česlavs',
|
||||
'Censonis', 'Censons', 'Centis', 'Centonis', 'Ceronis', 'Cerons', 'Cēzars', 'Cezars', 'Cildis', 'Cildonis', 'Ciprians', 'Ciprijans',
|
||||
'Dabris', 'Dacis', 'Dadzis', 'Dafnis', 'Dagmārs', 'Dagnijs', 'Dagnis', 'Dāgs', 'Dags', 'Daiens', 'Daigars', 'Daigonis', 'Dailis', 'Dailonis', 'Dailons', 'Daimonds', 'Daimons', 'Dainārs', 'Dainarts', 'Dainis', 'Dainors', 'Dairis', 'Daivis', 'Damārs', 'Damirs', 'Danats', 'Daneks', 'Dāniels', 'Daniēls', 'Daniels', 'Daniils', 'Daņiils', 'Danijs', 'Daņils', 'Danils', 'Danis', 'Danko', 'Dans', 'Dārgs', 'Dārijs', 'Daris', 'Dato', 'Daumands', 'Daumants', 'Dāvids', 'Dāvīds', 'Dāvis', 'Dāvs', 'Deils', 'Deimonds', 'Deimons', 'Deinis', 'Deins', 'Deivids', 'Deivijs', 'Deivis', 'Deivs', 'Dementijs', 'Deniels', 'Denijs', 'Deņiss', 'Deniss', 'Dens', 'Dēvids', 'Dēvijs', 'Didrihs', 'Didriķis', 'Didzis', 'Didžus', 'Digmārs', 'Dijs', 'Dikijs', 'Diks', 'Dimants', 'Dimārs', 'Dimitrijs', 'Dinards', 'Dinārs', 'Dinijs', 'Dinis', 'Dino', 'Dins', 'Dīns', 'Dionisijs', 'Dionizijs', 'Dīters', 'Ditmārs', 'Dmitrijs', 'Domeniks', 'Dominiks', 'Donalds', 'Donats', 'Donāts', 'Dravis', 'Drosmiņš', 'Drosmis', 'Drošvaldis', 'Drošvaris', 'Druvaldis', 'Druvalds', 'Druvārs', 'Druvinalds', 'Druvis', 'Druvvaldis', 'Druvvalds', 'Džastins', 'Džeims', 'Džeimss', 'Džems', 'Džemss', 'Džeralds', 'Džerijs', 'Dzidris', 'Dzilvars', 'Džims', 'Dzintars', 'Dzintārs', 'Dzintis', 'Dzintris', 'Džo', 'Džonatans', 'Džonijs', 'Džonis', 'Džons', 'Džordans', 'Džordijs', 'Džordžs',
|
||||
'Eberhards', 'Edgards', 'Edgars', 'Edgārs', 'Edijs', 'Ediks', 'Edilberts', 'Edis', 'Edmans', 'Edmārs', 'Edmonds', 'Edmons', 'Edmunds', 'Edmunts', 'Eduards', 'Eduārds', 'Eduars', 'Edvards', 'Edvārts', 'Edvijs', 'Edvīns', 'Edvins', 'Edžus', 'Egberts', 'Egdijs', 'Egerts', 'Egidijs', 'Egijs', 'Egīls', 'Egils', 'Eginhards', 'Egīns', 'Egits', 'Eglis', 'Eglons', 'Egmārs', 'Egmonds', 'Egmonts', 'Egnārs', 'Ego', 'Egons', 'Eidis', 'Eigits', 'Einards', 'Einārs', 'Einars', 'Einarts', 'Einis', 'Eino', 'Eiženijs', 'Eižens', 'Elands', 'Elāns', 'Elārs', 'Elčins', 'Eldars', 'Eldijs', 'Elens', 'Elerts', 'Elfrīds', 'Elgars', 'Elgasts', 'Elgons', 'Eliass', 'Eliašs', 'Elijass', 'Elijašs', 'Elijs', 'Elīns', 'Elīss', 'Eljašs', 'Elmārs', 'Elmars', 'Elmo', 'Elmonds', 'Elmuts', 'Elnurs', 'Eltons', 'Elvars', 'Elvigs', 'Elvijs', 'Elvings', 'Elvīns', 'Elvīrs', 'Elvis', 'Elviss', 'Elvo', 'Emanuels', 'Emanuils', 'Emeralds', 'Emerihs', 'Emeriks', 'Emijs', 'Emilians', 'Emilijans', 'Emīlijs', 'Emīlis', 'Emiljans', 'Emīls', 'Emils', 'Emmanuels', 'Enārs', 'Endijs', 'Endo', 'Endrijs', 'Engelberts', 'Engus', 'Enijs', 'Enno', 'Enoks', 'Enrijs', 'Enriko', 'Enriks', 'Eralds', 'Erasts', 'Erberts', 'Erhards', 'Eriands', 'Eriens', 'Erihs', 'Eriks', 'Erims', 'Erlends', 'Ermanis', 'Ermans', 'Ermīns', 'Ernando', 'Ernests', 'Ernis', 'Ernsts', 'Ero', 'Ervids', 'Ervijs', 'Ervils', 'Ervīns', 'Ervins', 'Ervis', 'Esams', 'Etjēns', 'Euģenijs', 'Euģēnijs', 'Eugenijs', 'Eugēnijs', 'Euzebijs', 'Evalds', 'Evarists', 'Evars', 'Evarts', 'Eventijs', 'Everts', 'Evgēnijs', 'Evgenijs', 'Evģēnijs', 'Evģenijs', 'Evijs',
|
||||
'Ērihs', 'Ēriks', 'Ērmanis', 'Ēro', 'Ēvalds',
|
||||
'Fabiāns', 'Fabijāns', 'Fadejs', 'Falks', 'Farhads', 'Farids', 'Fedors', 'Fedots', 'Felicians', 'Felicijans', 'Fēlikss', 'Felikss', 'Feodors', 'Ferdinands', 'Ferencs', 'Ferijs', 'Fernands', 'FīIips', 'Filips', 'Fjodors', 'Floriāns', 'Florijans', 'Florijs', 'Francis', 'Francišeks', 'Francisks', 'Francs', 'Franeks', 'Franks', 'Franļišeks', 'Frederiks', 'Fredijs', 'Fredis', 'Freds', 'Frementijs', 'Frenks', 'Fricis', 'Fridberts', 'Frideriks', 'Frīdis', 'Fridis', 'Frīdrihs', 'Fritjofs',
|
||||
'Gabriels', 'Gabriēls', 'Gaidars', 'Gaidis', 'Gaidonis', 'Gaidvars', 'Gaismonis', 'Gaismons', 'Gaitis', 'Gaits', 'Garlībs', 'Gastons', 'Gatiņš', 'Gatis', 'Gavrils', 'Gedimins', 'Gelārijs', 'Genādijs', 'Gennādijs', 'Georgijs', 'Georgs', 'Geralds', 'Gerards', 'Gerasims', 'Gerds', 'Gerhards', 'Geronīms', 'Gerts', 'Gido', 'Gidons', 'Gijs', 'Gilarijs', 'Gilberts', 'Ginārs', 'Gintārs', 'Gintauts', 'Ginters', 'Gintis', 'Gints', 'Gits', 'Gļebs', 'Glens', 'Godfrīds', 'Godvars', 'Gordejs', 'Gorijs', 'Gotards', 'Gotfrīds', 'Gothards', 'Gracijans', 'Grants', 'Grats', 'Gregors', 'Grigorijs', 'Grigors', 'Gudmunds', 'Gunards', 'Gunārs', 'Gunars', 'Gunarts', 'Gundaris', 'Gundars', 'Gundis', 'Gundolfs', 'Gunis', 'Gunivaldis', 'Gunivalds', 'Gunnars', 'Guno', 'Guntars', 'Guntārs', 'Guntis', 'Guntris', 'Gunts', 'Gunvaldis', 'Gunvalds', 'Gunvaris', 'Gunvars', 'Gurijs', 'Gustavs', 'Gusts', 'Gutars', 'Gvidis', 'Gvido', 'Gvidons',
|
||||
'Ģederts', 'Ģedimins', 'Ģintars', 'Ģints', 'Ģirts',
|
||||
'Haldons', 'Haldors', 'Hamilkārs', 'Hanss', 'Haralds', 'Hārdijs', 'Hardis', 'Harijs', 'Haris', 'Haritons', 'Harlijs', 'Harolds', 'Hartvigs', 'Harvijs', 'Hedijs', 'Hedvigs', 'Heincs', 'Heindrihs', 'Heinis', 'Heino', 'Heinrihs', 'Heinriks', 'Heldurs', 'Helijs', 'Heliodors', 'Helmārs', 'Helmī', 'Helmuts', 'Helmūts', 'Helvigs', 'Helvijs', 'Helvis', 'Hendrihs', 'Hendriks', 'Henno', 'Henrihs', 'Henrijs', 'Henriks', 'Herberts', 'Hermanis', 'Hermans', 'Hermunds', 'Herolds', 'Heronīms', 'Hevijs', 'Hieronims', 'Higo', 'Hilards', 'Hilārijs', 'Hilārs', 'Hilmārs', 'Hipolits', 'Holgers', 'Honorads', 'Horens', 'Horsts', 'Huans', 'Hūberts', 'Hugo',
|
||||
'Ievalds', 'Igars', 'Igmārs', 'Ignars', 'Ignātijs', 'Ignats', 'Ignāts', 'Igo', 'Igors', 'Igvars', 'Ihtiandrs', 'Ikars', 'Ilards', 'Ilārijs', 'Ilārs', 'Ildars', 'Ildefons', 'Ilgards', 'Ilgārs', 'Ilgarts', 'Ilgmārs', 'Ilgmars', 'Ilgonis', 'Ilgons', 'Ilgvalds', 'Ilgvards', 'Ilgvaris', 'Ilgvars', 'Ilgvārs', 'Illo', 'Ilmārs', 'Ilmars', 'Ilo', 'Ilons', 'Ilvars', 'Ilvārs', 'Ilvers', 'Ilvis', 'Imants', 'Imanuels', 'Imārs', 'Imarts', 'Inārijs', 'Inārs', 'Inars', 'Inarts', 'Indars', 'Indriķis', 'Indriks', 'Indris', 'Indulis', 'Induls', 'Inesis', 'Ingars', 'Ingārs', 'Ingemārs', 'Ingerts', 'Ingmārs', 'Ingmars', 'Ingo', 'Ingolfs', 'Ingomars', 'Inguards', 'Inguns', 'Ingūns', 'Ingurds', 'Ingurs', 'Ingus', 'Inguss', 'Ingvards', 'Ingvars', 'Ingvilds', 'Inmārs', 'Innocentijs', 'Ino', 'Inolds', 'Inrigo', 'Intars', 'Intārs', 'Intis', 'Ints', 'Invalds', 'Invars', 'Ipolits', 'Iraidis', 'Iraklijs', 'Irenejs', 'Irenijs', 'Irēnijs', 'Irinejs', 'Irmants', 'Ironijs', 'Irvalds', 'Irvings', 'Irvīns', 'Ismails', 'Itallo', 'Itālo', 'Itārs', 'Itvars', 'Ivalds', 'Ivans', 'Ivars', 'Ivārs', 'Iverts', 'Ivis', 'Ivo', 'Ivs', 'Izidors',
|
||||
'Īvis',
|
||||
'Jaceks', 'Jakims', 'Jakobs', 'Jakovs', 'Jākubs', 'Jalmars', 'Janeks', 'Jānis', 'Janis', 'Janošs', 'Jāns', 'Janušs', 'Jaroslavs', 'Jautris', 'Jāzeps', 'Jazeps', 'Jefims', 'Jegors', 'Jēkabs', 'Jelisejs', 'Jemeļjans', 'Jermolajs', 'Jeronīms', 'Jeroslavs', 'Jevgēņijs', 'Jevgēnijs', 'Jevgeņijs', 'Jevgenijs', 'Jevģēnijs', 'Jevģenijs', 'Jēzups', 'Jezups', 'Joahims', 'Joakims', 'Joans', 'Johans', 'Jolands', 'Jolants', 'Jonatāns', 'Jonijs', 'Jons', 'Jordans', 'Jorens', 'Jorēns', 'Jovars', 'Jozefs', 'Jozs', 'Juhans', 'Jukums', 'Juliāns', 'Jūliāns', 'Jūlijans', 'Jūlijs', 'Julijs', 'Jūliuss', 'Juļjāns', 'Jumis', 'Jūnijs', 'Jurands', 'Jureks', 'Jurģis', 'Jurijs', 'Juriks', 'Juris', 'Jūris', 'Jūsmiņš', 'Justīns', 'Justs', 'Jūtvaldis', 'Juvents', 'Juzefs',
|
||||
'Kaido', 'Kaivis', 'Kajs', 'Kālebs', 'Kaliksts', 'Kalins', 'Kalvis', 'Kamils', 'Kardijs', 'Karels', 'Karens', 'Karims', 'Kārlis', 'Karolis', 'Karols', 'Karps', 'Kaspars', 'Kazemirs', 'Kazimirs', 'Kazis', 'Kazmers', 'Keits', 'Kenets', 'Kerijs', 'Kestutis', 'Kevins', 'Kims', 'Kirils', 'Klaidis', 'Klaids', 'Klāss', 'Klaudijs', 'Klāvs', 'Klemans', 'Klemens', 'Klemenss', 'Klementijs', 'Klementīns', 'Klements', 'Klimans', 'Klimentijs', 'Klods', 'Knuts', 'Komēlijs', 'Kondrāts', 'Konrāds', 'Konrads', 'Konrands', 'Konrāts', 'Konstantīns', 'Konstantins', 'Kornelijs', 'Kreigs', 'Krišjānis', 'Krišjāns', 'Krišs', 'Kristafors', 'Kristaps', 'Kristars', 'Kristens', 'Kristers', 'Kristiāns', 'Kristians', 'Kristijāns', 'Kristjānis', 'Kristjans', 'Kristo', 'Kristofers', 'Kristofors', 'Kristofs', 'Krists', 'Krišus', 'Krīvs', 'Ksaverijs', 'Ksavērijs', 'Ksavers', 'Kuno', 'Kurbads', 'Kurbats', 'Kurts',
|
||||
'Labrencis', 'Lāčplēsis', 'Ladislavs', 'Laimdotis', 'Laimdots', 'Laimiņš', 'Laimis', 'Laimnesis', 'Laimonds', 'Laimonis', 'Laimons', 'Laimonts', 'Laimstars', 'Laimutis', 'Laimzieds', 'Lainis', 'Landijs', 'Larijs', 'Larions', 'Laris', 'Lars', 'Larss', 'Lato', 'Latvis', 'Laurentijs', 'Laurijs', 'Lauris', 'Lavrentijs', 'Leino', 'Lenards', 'Lenārs', 'Lenarts', 'Lennijs', 'Leo', 'Leonardo', 'Leonards', 'Leonārs', 'Leongīns', 'Leonhards', 'Leonīds', 'Leonids', 'Leons', 'Leontijs', 'Leontīns', 'Leopolds', 'Levijs', 'Liards', 'Liberijs', 'Līgonis', 'Līgotnis', 'Lilians', 'Linards', 'Linārs', 'Linarts', 'Lindons', 'Linerts', 'Lins', 'Linus', 'Linuss', 'Livars', 'Līvis', 'Līvs', 'Lonards', 'Lonarts', 'Longins', 'Lorands', 'Lorens', 'Lorenss', 'Lorijs', 'Lotārs', 'Lotars', 'Luciāns', 'Lucijāns', 'Ludis', 'Lūdolfs', 'Ludoviks', 'Ludvigs', 'Ludviķis', 'Ludviks', 'Luijs', 'Luiss', 'Lūkass',
|
||||
'Ļevs',
|
||||
'Madars', 'Madis', 'Magnus', 'Magnuss', 'Maigonis', 'Maigons', 'Maigurs', 'Maikls', 'Maiks', 'Mairis', 'Mairolds', 'Mairs', 'Maksimiliāns', 'Maksims', 'Maksis', 'Makss', 'Maldis', 'Maldonis', 'Malvis', 'Mamerts', 'Manfreds', 'Manfrēds', 'Marats', 'Mārcis', 'Marcis', 'Mareks', 'Marģeris', 'Marģers', 'Marģis', 'Margo', 'Margonis', 'Margons', 'Margots', 'Marguss', 'Marguts', 'Marians', 'Mariens', 'Marijans', 'Mārijs', 'Mariks', 'Mario', 'Māris', 'Maris', 'Mariss', 'Mariuss', 'Marjans', 'Marjus', 'Marko', 'Marks', 'Markus', 'Markuss', 'Maro', 'Marsels', 'Mārtiņš', 'Martins', 'Martiņs', 'Marts', 'Mārts', 'Mateass', 'Matejs', 'Mateuss', 'Mateušs', 'Matiass', 'Matis', 'Matīss', 'Matvejs', 'Maurīcijs', 'Mečeslavs', 'Mečislavs', 'Medards', 'Medarts', 'Mefodijs', 'Meikols', 'Meikulis', 'Meikuls', 'Meinards', 'Meinhards', 'Meldris', 'Mereks', 'Mervils', 'Metjū', 'Metodijs', 'Mežvaldis', 'Mieriņš', 'Miermīlis', 'Miernesis', 'Miervaldis', 'Miervalds', 'Mihaels', 'Mihails', 'Mikaels', 'Miķelis', 'Miķēlis', 'Miks', 'Mikus', 'Milāns', 'Milvards', 'Milvars', 'Mindaugs', 'Mintauts', 'Miroslavs', 'Mišels', 'Modests', 'Modis', 'Modrinš', 'Modris', 'Montis', 'Monts', 'Monvīds', 'Monvids', 'Morics', 'Moriss', 'Mudijs', 'Mudiņš', 'Mudis', 'Mudris', 'Mundis', 'Mundris', 'Muntis', 'Murads', 'Muslims',
|
||||
'Naidžels', 'Nameisis', 'Namejs', 'Napoleons', 'Narciss', 'Nareks', 'Narimans', 'Narimants', 'Natans', 'Nauris', 'Neils', 'Nesters', 'Nestors', 'Nevils', 'Nikandrs', 'Nikifors', 'Nikijs', 'Niklāss', 'Niklāvs', 'Niklavs', 'Niko', 'Nikodems', 'Nikodēms', 'Nikodims', 'Nikolajs', 'Nikolass', 'Niks', 'Nils', 'Nīls', 'Nilss', 'Nolāns', 'Noldis', 'Norberts', 'Nords', 'Noris', 'Norītis', 'Norlands', 'Normands', 'Normans', 'Normants', 'Normens', 'Normuds', 'Normunds',
|
||||
'Ņikifors', 'Ņikita',
|
||||
'Odisejs', 'Odums', 'Ogists', 'Ojārs', 'Oktavians', 'Olafs', 'Olands', 'Olārs', 'Olavs', 'Oļegs', 'Olevs', 'Olģerds', 'Oļģerts', 'Olgerts', 'Olis', 'Olivers', 'Olmars', 'Omārs', 'Oniks', 'Ontons', 'Onufrijs', 'Orests', 'Orfejs', 'Ornets', 'Ortando', 'Osips', 'Oskars', 'Osmars', 'Ostins', 'Osvaldis', 'Osvalds', 'Otārs', 'Otis', 'Oto', 'Otomārs', 'Otomars',
|
||||
'Patricijs', 'Patriks', 'Paulis', 'Pauls', 'Pāvels', 'Pāvils', 'Pavils', 'Pāvuls', 'Pērs', 'Persijs', 'Pēteris', 'Pēters', 'Petro', 'Petrs', 'Pijs', 'Pīters', 'Pits', 'Pius', 'Pjotrs', 'Platons', 'Plūdonis', 'Polikarps', 'Pols', 'Prans',
|
||||
'Radimins', 'Radions', 'Radislavs', 'Radomirs', 'Radvilis', 'Radvils', 'Rafaels', 'Rafaēls', 'Rafails', 'Rafiks', 'Ragnārs', 'Rahmats', 'Raiders', 'Raido', 'Raiens', 'Raigards', 'Raigo', 'Railands', 'Raimis', 'Raimo', 'Raimonds', 'Raimons', 'Raimunds', 'Rainars', 'Rainers', 'Rainis', 'Rainolds', 'Raitis', 'Raits', 'Raivis', 'Raivo', 'Raldis', 'Ralfs', 'Ramērs', 'Ramils', 'Ramiro', 'Ramons', 'Randolfs', 'Rašids', 'Rasmuss', 'Raulis', 'Rauls', 'Reds', 'Redženalds', 'Redžinalds', 'Reginalds', 'Regīns', 'Regnalds', 'Regnārs', 'Regnolds', 'Rego', 'Reimārs', 'Reimo', 'Reinards', 'Reinārs', 'Reiners', 'Reinhards', 'Reinholds', 'Reinis', 'Reino', 'Reinolds', 'Reinvalds', 'Remberts', 'Remigijs', 'Remijs', 'Remirs', 'Remo', 'Rems', 'Renalds', 'Renards', 'Renārs', 'Renars', 'Renarts', 'Renato', 'Renāts', 'Renats', 'Rendijs', 'Renijs', 'Renno', 'Reno', 'Renolds', 'Rens', 'Reons', 'Rets', 'Revs', 'Ričards', 'Ričijs', 'Ričs', 'Rids', 'Rigo', 'Rigonds', 'Rihards', 'Riho', 'Rikardo', 'Rikijs', 'Riks', 'Rimands', 'Rimants', 'Rimars', 'Rimonds', 'Rimons', 'Rinaldo', 'Rinalds', 'Rinalts', 'Rinards', 'Rinārs', 'Rinats', 'Ringo', 'Ringolds', 'Rinolds', 'Rio', 'Rišars', 'Ritmars', 'Ritums', 'Ritvaldis', 'Ritvalds', 'Ritvars', 'Rivo', 'Rjuriks', 'Roalds', 'Roans', 'Robērs', 'Roberto', 'Roberts', 'Robijs', 'Robins', 'Rodijs', 'Rodions', 'Rodrigo', 'Rodžers', 'Rojs', 'Rokijs', 'Roko', 'Rolands', 'Rolāns', 'Rolfs', 'Rolijs', 'Romalds', 'Romands', 'Romāns', 'Romans', 'Romants', 'Romass', 'Romēns', 'Romeo', 'Romis', 'Roms', 'Romualds', 'Romulds', 'Romunds', 'Romuss', 'Romvalds', 'Ronaldo', 'Ronalds', 'Ronijs', 'Ronvalds', 'Rorijs', 'Rostams', 'Rostislavs', 'Rovens', 'Rubens', 'Rudiards', 'Rūdis', 'Rūdolfs', 'Rudolfs', 'Ruriks', 'Rūsiņš', 'Ruslands', 'Ruslāns', 'Rustams',
|
||||
'Saīds', 'Saigits', 'Saimons', 'Sairis', 'Saivis', 'Salamons', 'Salimons', 'Sallijs', 'Salomons', 'Salvijs', 'Salvis', 'Salvo', 'Samirs', 'Samsons', 'Samuels', 'Samuēls', 'Samvels', 'Sančo', 'Sandars', 'Sanders', 'Sandijs', 'Sandis', 'Sando', 'Sandors', 'Sandrino', 'Sandris', 'Sandro', 'Sandrs', 'Sandus', 'Sanduss', 'Sangvids', 'Sanijs', 'Santijs', 'Santis', 'Santo', 'Santoss', 'Sarmis', 'Saulceris', 'Saulgaitis', 'Saulis', 'Saulstars', 'Sauļus', 'Saulvedis', 'Savelijs', 'Sebastians', 'Sebastijans', 'Sebastjans', 'Sedriks', 'Seimanis', 'Seldzis', 'Selvijs', 'Selvīns', 'Selvis', 'Semions', 'Semjons', 'Sendijs', 'Sentis', 'Serafims', 'Sergejs', 'Sergo', 'Seržs', 'Severīns', 'Severins', 'Severjans', 'Sidars', 'Sidnejs', 'Sidors', 'Sigismunds', 'Sigits', 'Sigizmunds', 'Sigmārs', 'Sigmunds', 'Signijs', 'Signis', 'Sigords', 'Sigunds', 'Sigurds', 'Sigurts', 'Sigvards', 'Sigvars', 'Sigvarts', 'Silards', 'Silvars', 'Silvers', 'Silvesters', 'Silvestris', 'Silvestrs', 'Silvis', 'Sīmanis', 'Simeons', 'Simions', 'Simons', 'Sindijs', 'Singurs', 'Sintijs', 'Sirdsvaldis', 'Skaidris', 'Skaudris', 'Smaidonis', 'Smailis', 'Smuidris', 'Solomons', 'Solvis', 'Sondars', 'Sondris', 'Spartaks', 'Spēkonis', 'Spodris', 'Spricis', 'Staldzis', 'Staņislavs', 'Stanislavs', 'Stasis', 'Stass', 'Stefans', 'Stefāns', 'Steinārs', 'Stenlijs', 'Stepans', 'Stepons', 'Stīvens', 'Svenis', 'Svens', 'Svetoslavs', 'Svjatoslavs',
|
||||
'Šandors',
|
||||
'Tadeušs', 'Tagils', 'Tahirs', 'Taivo', 'Tālavs', 'Tālis', 'Tālivaldis', 'Tālivalds', 'Tālrids', 'Tālrīts', 'Tālrits', 'Tāls', 'Tālvaldis', 'Tamārs', 'Tarass', 'Taunis', 'Tautmīlis', 'Tautvaldis', 'Tautvaris', 'Tedijs', 'Tedis', 'Teldijs', 'Telesfors', 'Tenis', 'Teo', 'Teobalds', 'Teodors', 'Teofils', 'Teovils', 'Terijs', 'Tihons', 'Tils', 'Timofejs', 'Timotejs', 'Tims', 'Timurs', 'Tits', 'Tobijs', 'Toivo', 'Tomass', 'Tomašs', 'Tomijs', 'Toms', 'Tonijs', 'Toralfs', 'Torolfs', 'Tors', 'Torvalds', 'Treviss', 'Trofims', 'Tumašs', 'Turaids', 'Tūrs',
|
||||
'Udo', 'Uģis', 'Ugo', 'Ulams', 'Uldis', 'Uldriķis', 'Ulfs', 'Uljans', 'Uļjans', 'Ulrihs', 'Ulriks', 'Ulvars', 'Ulvis', 'Umberts', 'Undalgs', 'Undis', 'Ungars', 'Uno', 'Uvis',
|
||||
'Vaclavs', 'Vadims', 'Vagifs', 'Vahtangs', 'Vaidelotis', 'Vaidis', 'Vaino', 'Vairis', 'Vaironis', 'Vairons', 'Vaits', 'Vaivars', 'Valdeko', 'Valdeks', 'Valdemārs', 'Valdemars', 'Valdimārts', 'Valdimirs', 'Valdis', 'Valdmiers', 'Valdonis', 'Valdons', 'Valds', 'Valeks', 'Valentijs', 'Valentīns', 'Valentins', 'Valents', 'Valeriāns', 'Valerijāns', 'Valērijs', 'Valerijs', 'Valerjāns', 'Valfrīds', 'Valgudis', 'Valijs', 'Valteris', 'Valters', 'Valtīns', 'Valtis', 'Valts', 'Varaidotis', 'Varaidots', 'Varfolomejs', 'Varimands', 'Varimants', 'Varis', 'Varonis', 'Vasīlijs', 'Vasils', 'Večeslavs', 'Večislavs', 'Veidols', 'Veiko', 'Veimārs', 'Veino', 'Velards', 'Velerjans', 'Vello', 'Venancijs', 'Venantijs', 'Venceslavs', 'Venčeslavs', 'Vencislavs', 'Vendijs', 'Venedikts', 'Veners', 'Veno', 'Ventis', 'Vents', 'Verners', 'Vernis', 'Vernons', 'Veronis', 'Vestards', 'Vicents', 'Vidards', 'Vidars', 'Vidarts', 'Videvuds', 'Videvuts', 'Vidis', 'Vidmands', 'Vidmants', 'Vidmunds', 'Vido', 'Vidulis', 'Vidvars', 'Vidvedis', 'Vidvuds', 'Vidvuts', 'Viestards', 'Viestars', 'Viestarts', 'Viesturis', 'Viesturs', 'Vieturs', 'Vīgants', 'Vigars', 'Vigelijs', 'Vigilijs', 'Vīgo', 'Vigors', 'Vigorts', 'Vigurds', 'Vijārs', 'Vijtauts', 'Vikars', 'Vikentijs', 'Vikijs', 'Viktorijs', 'Viktors', 'Vilārs', 'Vilberts', 'Vilemons', 'Vilens', 'Vilfrīds', 'Vilhelmīns', 'Vilhelms', 'Vilibalds', 'Viliberts', 'Vilijs', 'Vīlips', 'Vilis', 'Viljams', 'Villems', 'Villijs', 'Vilmārs', 'Vilmars', 'Vilnis', 'Viļums', 'Viļus', 'Vinārs', 'Vincens', 'Vincentijs', 'Vincents', 'Vinceslavs', 'Vincs', 'Viners', 'Vinets', 'Vinifreds', 'Vinolds', 'Vinsents', 'Vintārs', 'Vints', 'Virgilijs', 'Virginijs', 'Viskants', 'Vismands', 'Vismants', 'Visvaldis', 'Visvalds', 'Visvaris', 'Visvars', 'Vitālijs', 'Vitalijs', 'Vitālis', 'Vitaliss', 'Vitāls', 'Vitars', 'Vitauts', 'Vītauts', 'Vitis', 'Vito', 'Vitolds', 'Vitols', 'Vitors', 'Vits', 'Vitus', 'Vivaldis', 'Vivanto', 'Vizbulis', 'Vizulis', 'Vjačeslavs', 'Vladeks', 'Vladilens', 'Vladimirs', 'Vladis', 'Vladislavs', 'Vladlens', 'Vlads', 'Vmcis', 'Voicehs', 'Voiceks', 'Voicihs', 'Voiciks', 'Voičiks', 'Voitiks', 'Voldemārs', 'Voldemars', 'Voldis', 'Voldmārs', 'Volfgangs', 'Volfreds', 'Volfrīds', 'Volfs', 'Volmārs', 'Vsevolods', 'Vudis', 'Vudro', 'Vulmārs',
|
||||
'Zaigonis', 'Zālamans', 'Zalamons', 'Zāmuels', 'Zandars', 'Zanders', 'Zandis', 'Zbigņevs', 'Zdeneks', 'Zelmars', 'Zemgus', 'Zemvaldis', 'Zemvalds', 'Zenons', 'Zezostris', 'Ziedonis', 'Ziedons', 'Zigfrīds', 'Zigfrids', 'Zigis', 'Zigismunds', 'Zigizmunds', 'Zigmans', 'Zigmants', 'Zigmāris', 'Zigmārs', 'Zigmars', 'Zigmonds', 'Zigmonts', 'Zigmunds', 'Zigmunts', 'Zigo', 'Zigonis', 'Zigrīds', 'Zigrids', 'Zigurds', 'Zigurts', 'Zigvards', 'Zilgars', 'Zinaidis', 'Zinaids', 'Zinovijs', 'Zintars', 'Zintauts', 'Zintis', 'Zinturs',
|
||||
'Žaks', 'Žanis', 'Žanno', 'Žano', 'Žans', 'Ženijs', 'Žerārs', 'Žoržs', 'Žozefs',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@link} http://vardunozime.lv/names-female
|
||||
*/
|
||||
protected static $firstNameFemale = [
|
||||
'Ada', 'Adala', 'Adalberta', 'Adela', 'Adelaida', 'Adelaide', 'Adele', 'Adelfina', 'Adelgunde', 'Adelheida', 'Adelheide', 'Adelija', 'Adēlija', 'Adelīna', 'Adelina', 'Adija', 'Adīna', 'Adīne', 'Adonija', 'Adriāna', 'Adrija', 'Aelita', 'Afanasija', 'Afra', 'Afrodīte', 'Agafija', 'Agata', 'Agate', 'Agāte', 'Agija', 'Agika', 'Agita', 'Aglikerija', 'Agna', 'Agnda', 'Agne', 'Agnesa', 'Agnese', 'Agnesija', 'Agneška', 'Agņeška', 'Agneta', 'Agnete', 'Agneze', 'Agnēze', 'Agnija', 'Agnita', 'Agra', 'Agreda', 'Agrida', 'Agrija', 'Agrina', 'Agripina', 'Agrita', 'Agrīte', 'Agunda', 'Aīda', 'Aida', 'Aiga', 'Aigija', 'Aigita', 'Aigula', 'Aija', 'Aila', 'Ailenda', 'Aili', 'Ailija', 'Ailita', 'Aina', 'Aināra', 'Ainita', 'Aira', 'Airida', 'Airika', 'Airīna', 'Airisa', 'Airita', 'Airite', 'Aisma', 'Aista', 'Aiva', 'Aivija', 'Aivika', 'Aivita', 'Ajita', 'Akilina', 'Aksenija', 'Akulina', 'Akuļina', 'Akvelīna', 'Akvelina', 'Akvilīna', 'Ala', 'Alaida', 'Alba', 'Alberta', 'Albertīna', 'Albertīne', 'Albertine', 'Albīna', 'Albina', 'Albīne', 'Alda', 'Aldija', 'Aldīna', 'Aldona', 'Aldone', 'Aldonija', 'Aldra', 'Aleftīna', 'Aleftine', 'Aleksa', 'Aleksandra', 'Aleksandrīna', 'Aleksandrine', 'Alena', 'Alēna', 'Alerina', 'Alesja', 'Aleta', 'Alevtīna', 'Alevtīne', 'Alfa', 'Alfija', 'Alfonija', 'Alfra', 'Alfrīda', 'Ali', 'Alīcija', 'Alīda', 'Alida', 'Alīde', 'Alīdija', 'Alija', 'Alika', 'Alimpiada', 'Alīna', 'Alina', 'Aļina', 'Alīne', 'Alīsa', 'Alise', 'Alīse', 'Alīsija', 'Alita', 'Alla', 'Allija', 'Alma', 'Almāra', 'Alna', 'Alodija', 'Aloīda', 'Aloiza', 'Aloizija', 'Aļona', 'Alondra', 'Alta', 'Alva', 'Alvija', 'Alvika', 'Alvīna', 'Alvīne', 'Alvine', 'Alvinija', 'Alvita', 'Alžbeta', 'Amalda', 'Amālija', 'Amanda', 'Amanta', 'Amantija', 'Amaranda', 'Amaranta', 'Amarilla', 'Amelija', 'Amēlija', 'Amelita', 'Amenta', 'Amīda', 'Amilda', 'Ammonārija', 'Amrita', 'Ana', 'Aņa', 'Anabella', 'Anaita', 'Anāra', 'Anastasija', 'Anastāsija', 'Anastāzija', 'Anata', 'Anatolija', 'Ance', 'Anda', 'Andija', 'Andīna', 'Andina', 'Andīne', 'Andra', 'Andre', 'Andrelita', 'Andreta', 'Andriāna', 'Andrija', 'Andrijana', 'Andrika', 'Andrita', 'Andromeda', 'Andžela', 'Andželika', 'Andželīna', 'Andželita', 'Andžella', 'Ane', 'Aneka', 'Aņela', 'Aneļa', 'Anēla', 'Anela', 'Anēle', 'Anēlija', 'Anelija', 'Anemarija', 'Anese', 'Aneta', 'Anete', 'Anfija', 'Anfisa', 'Anga', 'Angeļa', 'Angela', 'Angelija', 'Angelika', 'Angēlika', 'Angelīna', 'Angelita', 'Anhelita', 'Aniceta', 'Anija', 'Anika', 'Anisija', 'Aņisija', 'Aņisja', 'Anita', 'Anitra', 'Ankatrina', 'Anlīza', 'Anlīze', 'Anlizeta', 'Anmāra', 'Anmarija', 'Anna', 'Annamarija', 'Anne', 'Annele', 'Annelija', 'Annemarija', 'Anneta', 'Annete', 'Annija', 'Annika', 'Anniņa', 'Anrita', 'Anta', 'Antainna', 'Antija', 'Antonela', 'Antonīda', 'Antonija', 'Antoņina', 'Antonīna', 'Antra', 'Antuaneta', 'Antuanete', 'Aņuta', 'Anžela', 'Anželika', 'Anželina', 'Anželita', 'Anžella', 'Anzelma', 'Apolinārija', 'Apolonija', 'Aralda', 'Aranta', 'Areta', 'Arfa', 'Argija', 'Argita', 'Argunda', 'Ariadna', 'Ariadne', 'Ariāna', 'Arianda', 'Ariandra', 'Arianna', 'Arīda', 'Arieta', 'Arija', 'Arimanda', 'Arīna', 'Arisa', 'Aristīda', 'Arita', 'Arjana', 'Arkādija', 'Arlita', 'Arma', 'Armanda', 'Armīda', 'Armilda', 'Arne', 'Arnīda', 'Arnija', 'Arnika', 'Arnita', 'Arta', 'Artemida', 'Artija', 'Arvaldina', 'Arvīda', 'Arvīde', 'Arvita', 'Asija', 'Asja', 'Asma', 'Asna', 'Asnate', 'Asnāte', 'Asne', 'Asola', 'Aspāzija', 'Asterija', 'Astērija', 'Astra', 'Astrīda', 'Astrida', 'Astrīde', 'Astrīte', 'Asunta', 'Ata', 'Atala', 'Atēna', 'Auce', 'Auda', 'Augenija', 'Augusta', 'Auguste', 'Augustīna', 'Augustīne', 'Aura', 'Aurēlija', 'Aurelija', 'Aurika', 'Aurora', 'Ausma', 'Aušra', 'Aušra', 'Austra', 'Austrīte', 'Avelīna', 'Avija', 'Avita', 'Aviva', 'Azanda', 'Azella',
|
||||
'Ādolfina', 'Ādolfīne', 'Āra', 'Ārija', 'Ārika', 'Ārite', 'Ārvalda',
|
||||
'Baiba', 'Balva', 'Banga', 'Baņuta', 'Barba', 'Bārbala', 'Barbala', 'Barbara', 'Barbola', 'Bažena', 'Beāta', 'Beāte', 'Beate', 'Beatrisa', 'Beatrise', 'Bekija', 'Belinda', 'Bella', 'Bemadita', 'Benedikta', 'Beneventa', 'Benigna', 'Benija', 'Benilda', 'Benita', 'Benjamina', 'Benoventa', 'Berenika', 'Berita', 'Bernada', 'Bernāde', 'Bernadeta', 'Bernadete', 'Bernadina', 'Bernadīne', 'Bernadīte', 'Bernarda', 'Bernarde', 'Bernardīna', 'Bernedīne', 'Berta', 'Beruta', 'Beta', 'Betija', 'Betsija', 'Bianka', 'Bille', 'Biminita', 'Binija', 'Binnija', 'Birgita', 'Biruta', 'Birute', 'Bitīte', 'Blāzma', 'Bogumila', 'Boļeslava', 'Bonaventūra', 'Bonifācija', 'Bonija', 'Bonoventura', 'Borbala', 'Borbola', 'Borbula', 'Borghilde', 'Božena', 'Brenda', 'Breta', 'Briāna', 'Bridžita', 'Brigita', 'Brina', 'Brinda', 'Brita', 'Brīva', 'Brīve', 'Brīvīte', 'Broņa', 'Bronhilda', 'Bronija', 'Broņislava', 'Bronislava', 'Brunhilda', 'Brunhilde', 'Brunita',
|
||||
'Čarita', 'Čelsija', 'Čereta', 'Česlava', 'Čezeta',
|
||||
'Cecīlija', 'Cecilija', 'Celerīna', 'Celīna', 'Centa', 'Centolla', 'Cera', 'Cerība', 'Cezarija', 'Cicilija', 'Ciedra', 'Cilda', 'Cilija', 'Cilina', 'Cilmija', 'Cilnija', 'Cina', 'Cintija', 'Cirēnija',
|
||||
'Dace', 'Dacija', 'Dacīte', 'Daglta', 'Dagmāra', 'Dagmara', 'Dagna', 'Dagne', 'Dagnija', 'Dagnita', 'Daidze', 'Daiga', 'Daigone', 'Daija', 'Daila', 'Daile', 'Daimona', 'Daina', 'Dainavīte', 'Dainida', 'Dainita', 'Dainīte', 'Dainuvīte', 'Daira', 'Dairita', 'Daiva', 'Dajana', 'Dālija', 'Dana', 'Dane', 'Daneta', 'Danica', 'Danida', 'Daniela', 'Dāniela', 'Daniēla', 'Daniella', 'Danija', 'Danika', 'Daņila', 'Danita', 'Danna', 'Danuta', 'Daņuta', 'Danute', 'Dārija', 'Darina', 'Darja', 'Dārta', 'Dārte', 'Debora', 'Dedze', 'Deina', 'Deivija', 'Deizija', 'Delfīna', 'Delfīne', 'Demija', 'Denija', 'Denisa', 'Denise', 'Denīza', 'Denīze', 'Denora', 'Dēvija', 'Dezija', 'Dēzija', 'Diāna', 'Diana', 'Diandra', 'Dianna', 'Diāra', 'Dida', 'Digna', 'Digne', 'Dina', 'Dīna', 'Dināra', 'Dineta', 'Dinija', 'Dinnija', 'Dita', 'Dite', 'Dolita', 'Dollija', 'Doloresa', 'Dome', 'Domenika', 'Domicela', 'Domicele', 'Domicelija', 'Domicella', 'Domija', 'Dominika', 'Domna', 'Domuse', 'Donāta', 'Donāte', 'Donicela', 'Donvina', 'Dora', 'Dore', 'Doreta', 'Dorina', 'Dorisa', 'Dorita', 'Dorota', 'Doroteja', 'Dorotija', 'Dorta', 'Dorte', 'Drosma', 'Drosme', 'Dūda', 'Džamila', 'Džana', 'Džaneta', 'Džanete', 'Džanita', 'Džasmīna', 'Džastina', 'Džeina', 'Dzeja', 'Dzelde', 'Džellija', 'Dzelme', 'Džema', 'Džemma', 'Džena', 'Dženeta', 'Dženete', 'Dženifera', 'Dženija', 'Dženita', 'Džeralda', 'Džeraldīne', 'Džesija', 'Džesika', 'Dzestra', 'Dzidra', 'Dzidrite', 'Dziedra', 'Dziesma', 'Džigunda', 'Džilda', 'Dzīle', 'Džina', 'Dzine', 'Džineta', 'Džinita', 'Dzinta', 'Dzintara', 'Dzintāra', 'Dzintārija', 'Dzintra', 'Dzirkstīte', 'Džoanna', 'Džoija', 'Džoja', 'Džovita', 'Džudīte', 'Džūlija', 'Džuljeta',
|
||||
'Eba', 'Eda', 'Ede', 'Edija', 'Edīta', 'Edīte', 'Edite', 'Edla', 'Edmonda', 'Edna', 'Eduarda', 'Edviga', 'Edvija', 'Edvīna', 'Edvīne', 'Efeja', 'Ega', 'Egida', 'Egija', 'Egīna', 'Egita', 'Egle', 'Egmonta', 'Eifrozine', 'Eila', 'Eina', 'Eiženija', 'Eižēnija', 'Eļa', 'Elāna', 'Elda', 'Elektra', 'Elena', 'Elēna', 'Elenora', 'Eleonora', 'Elfa', 'Elfija', 'Elfrīda', 'Elfrida', 'Elfrīde', 'Elga', 'Elgita', 'Elīda', 'Elija', 'Elika', 'Elīna', 'Elina', 'Elīne', 'Elionora', 'Elīsa', 'Elise', 'Elita', 'Elite', 'Elīza', 'Eliza', 'Elīzabeta', 'Elizabete', 'Elīzabete', 'Elizaveta', 'Elizavete', 'Elizbete', 'Elize', 'Ella', 'Ellana', 'Ellena', 'Ellija', 'Elma', 'Elmāra', 'Elmija', 'Elmīna', 'Elmīne', 'Elmīra', 'Elmira', 'Elna', 'Elnāra', 'Elneta', 'Elona', 'Elta', 'Elva', 'Elvi', 'Elviga', 'Elvija', 'Elvīna', 'Elvīne', 'Elvīra', 'Elvira', 'Elvisa', 'Elvita', 'Elza', 'Elzabeta', 'Elžbeta', 'Ema', 'Emanuēla', 'Emarita', 'Emerenciana', 'Emerencija', 'Emerencijana', 'Emerenta', 'Emerentiana', 'Emerentina', 'Emerentīne', 'Emerita', 'Emertijana', 'Emija', 'Emilda', 'Emiliana', 'Emīlija', 'Emilija', 'Emilijana', 'Emīlja', 'Emiljana', 'Emīra', 'Emirita', 'Emma', 'Emme', 'Ena', 'Enda', 'Endija', 'Endžija', 'Ene', 'Enerita', 'Engelīna', 'Enīda', 'Enija', 'Enina', 'Enita', 'Ennata', 'Ennija', 'Enrija', 'Enrika', 'Enriketa', 'Enta', 'Envija', 'Era', 'Erena', 'Erēna', 'Eridana', 'Erika', 'Erīna', 'Erita', 'Erma', 'Ermīna', 'Ermīne', 'Ermionija', 'Ermonija', 'Erna', 'Erneste', 'Ernestīna', 'Ernestīne', 'Ernestine', 'Ernita', 'Ervīna', 'Ervita', 'Esēnija', 'Esfira', 'Esija', 'Esmeralda', 'Esmeralde', 'Estella', 'Estera', 'Estere', 'Estra', 'Eta', 'Etele', 'Etelvīne', 'Etere', 'Eteri', 'Etīna', 'Euģenija', 'Euģēnija', 'Eugenija', 'Eugēnija', 'Eulālija', 'Eva', 'Evalina', 'Eve', 'Evelīna', 'Evelina', 'Evelīne', 'Evelita', 'Everika', 'Everita', 'Evgēnija', 'Evgenija', 'Evģēnija', 'Evģenija', 'Evī', 'Evija', 'Evika', 'Evisa', 'Evita', 'Evrika',
|
||||
'Ēra', 'Ērika', 'Ēstere', 'Ēva', 'Ēvī', 'Ēvija', 'Ēvisa',
|
||||
'Faina', 'Fanija', 'Fannija', 'Farida', 'Fatima', 'Fatina', 'Fatma', 'Feja', 'Feliciāna', 'Felicianna', 'Felīcija', 'Felicijana', 'Felicita', 'Felicjana', 'Felonija', 'Fenija', 'Feodora', 'Feodosija', 'Feona', 'Feonija', 'Fetna', 'Fevronija', 'Filemona', 'Filgita', 'Filicija', 'Filimona', 'Fiļimona', 'Filimonija', 'Filiomena', 'Filipina', 'Filomeja', 'Filomena', 'Filumena', 'Fionija', 'Flora', 'Florence', 'Florentija', 'Florentīna', 'Florentīne', 'Floriana', 'Florija', 'Florijana', 'Fortunata', 'Frančeska', 'Franciska', 'Franciška', 'Frančiska', 'Fransuāza', 'Františka', 'Franuse', 'Fraskita', 'Frederika', 'Frensisa', 'Frīda', 'Frida', 'Friderika', 'Fridriha',
|
||||
'Gabija', 'Gabriēla', 'Gabriela', 'Gabriele', 'Gabriella', 'Gaida', 'Gaidite', 'Gaija', 'Gaisma', 'Gaismīte', 'Gaismone', 'Gaita', 'Galina', 'Gaļina', 'Ganda', 'Geda', 'Gēda', 'Gedra', 'Geila', 'Gelija', 'Gēlija', 'Gelinta', 'Genefa', 'Generoza', 'Genija', 'Genita', 'Genovaite', 'Genovefa', 'Genoveja', 'Genovera', 'Genoveva', 'Gentra', 'Genuvefa', 'Geraldina', 'Gerarda', 'Gerda', 'Geronima', 'Gertija', 'Gertrūda', 'Gertrūde', 'Gertrude', 'Gesta', 'Gianeja', 'Giedra', 'Gija', 'Gina', 'Gināra', 'Gineta', 'Ginita', 'Ginta', 'Gintija', 'Gita', 'Gitāna', 'Gitija', 'Gizela', 'Glafīra', 'Glaima', 'Glauda', 'Gledisa', 'Glenda', 'Glendija', 'Glikerija', 'Glita', 'Glorija', 'Gonda', 'Gotlība', 'Grācija', 'Grasilda', 'Grata', 'Gražina', 'Greta', 'Grēta', 'Grieta', 'Grietina', 'Grineta', 'Grinete', 'Grita', 'Grizelda', 'Gudrīte', 'Gudruna', 'Gulnara', 'Guļnara', 'Guna', 'Gunāra', 'Gunavefa', 'Gunda', 'Gundega', 'Gundija', 'Gundra', 'Gunefa', 'Guneta', 'Gunita', 'Gunitra', 'Gunmāra', 'Gunta', 'Guntiņa', 'Guntra', 'Gusta', 'Guste', 'Gvenda', 'Gvida', 'Gvidālija',
|
||||
'Ģēda', 'Ģenovefa', 'Ģertcuda', 'Ģertrūda', 'Ģertrūde', 'Ģertrude', 'Ģiedra', 'Ģinta',
|
||||
'Haida', 'Haide', 'Halina', 'Halīna', 'Hanelita', 'Hanna', 'Hannelore', 'Hannija', 'Hanzija', 'Haralda', 'Hardija', 'Harija', 'Harina', 'Harita', 'Haritina', 'Heda', 'Hedija', 'Hedviga', 'Heidija', 'Helēna', 'Helena', 'Helēne', 'Helene', 'Helga', 'Helge', 'Helgi', 'Helgrīda', 'Hēlija', 'Helita', 'Helju', 'Hella', 'Hellēna', 'Hellija', 'Helma', 'Helmija', 'Helmīna', 'Helmīne', 'Helmīra', 'Helmute', 'Helta', 'Helvi', 'Helvija', 'Helvita', 'Henija', 'Henisa', 'Henita', 'Hennija', 'Henrieta', 'Henriete', 'Henrija', 'Henrika', 'Henrita', 'Hēra', 'Hera', 'Herenija', 'Herita', 'Herma', 'Hermīna', 'Hermīne', 'Hermine', 'Heronija', 'Heronima', 'Herta', 'Hervita', 'Hetija', 'Hiacinta', 'Hilarija', 'Hilda', 'Hildegarde', 'Hildura', 'Hilga', 'Hilja', 'Hilma', 'Honorata', 'Honoreta', 'Hortenzija', 'Hulda',
|
||||
'Ida', 'Ideja', 'Idilija', 'Idra', 'Ieva', 'Ieviņa', 'Igeta', 'Igila', 'Igita', 'Ignese', 'Igunda', 'Ija', 'Ilāna', 'Ilanda', 'Ilanta', 'Ilāra', 'Ilārija', 'Ilda', 'Ildra', 'Ildze', 'Ileana', 'Ilga', 'Ilgnese', 'Ilgona', 'Iliana', 'Ilija', 'Ilita', 'Ilizana', 'Ilizane', 'Iļja', 'Iljana', 'Iļjana', 'Illa', 'Illarija', 'Illuminata', 'Ilma', 'Ilmara', 'Ilme', 'Ilmija', 'Ilna', 'Ilona', 'Ilonda', 'Ilone', 'Ilonija', 'Iluta', 'Ilva', 'Ilveta', 'Ilvija', 'Ilvīra', 'Ilvita', 'Ilza', 'Ilze', 'Ilzīte', 'Ima', 'Imalda', 'Imanda', 'Imandra', 'Imanta', 'Imelda', 'Imgarde', 'Imre', 'Imula', 'Ina', 'Inaida', 'Ināra', 'Inara', 'Inārija', 'Inarta', 'Inatra', 'Inda', 'Indīra', 'Indra', 'Inelda', 'Inesa', 'Inese', 'Inesīte', 'Ineta', 'Inete', 'Inga', 'Inge', 'Ingeborga', 'Ingemāra', 'Ingera', 'Ingēra', 'Ingerūda', 'Ingeta', 'Ingita', 'Ingmāra', 'Ingra', 'Ingre', 'Ingreta', 'Ingrīda', 'Ingrida', 'Ingrita', 'Inguna', 'Ingūna', 'Ingunda', 'Ingūra', 'Inguta', 'Ingvilda', 'Inija', 'Inita', 'Initra', 'Inna', 'Innara', 'Inneta', 'Inota', 'Inta', 'Intra', 'Inuta', 'Inveiga', 'Ira', 'Iraīda', 'Iraida', 'Iraisa', 'Irbe', 'Irēna', 'Irena', 'Irene', 'Irēne', 'Irīda', 'Irida', 'Irija', 'Irina', 'Irīna', 'Irisa', 'Irita', 'Irma', 'Irme', 'Irmgarda', 'Irmgarde', 'Irmiņa', 'Irmīna', 'Irmīne', 'Irmtrauta', 'Irmtraute', 'Irta', 'Iruta', 'Irute', 'Irvita', 'Irži', 'Isma', 'Ita', 'Itija', 'Iva', 'Ivaise', 'Ivanda', 'Ivande', 'Ivanna', 'Ivāra', 'Ivase', 'Ivena', 'Iverta', 'Iveta', 'Ivete', 'Ivika', 'Ivita', 'Ivona', 'Ivonda', 'Ivonija', 'Ivonna', 'Iza', 'Izabela', 'Izabella', 'Izanda', 'Izaura', 'Izīda', 'Izolda', 'Izolde',
|
||||
'Īda', 'Īģe', 'Īna', 'Īra', 'Īrisa', 'Īva', 'Īvija',
|
||||
'Jacinta', 'Jadviga', 'Jadvīga', 'Jadze', 'Jakobīna', 'Jalanta', 'Jana', 'Jāna', 'Janeka', 'Janeta', 'Janete', 'Janika', 'Janīna', 'Janina', 'Jaņīna', 'Janita', 'Janna', 'Janta', 'Januārija', 'Jaroslava', 'Jasmīna', 'Jasmīne', 'Jausma', 'Jautra', 'Jautrīte', 'Jāzepa', 'Jazepata', 'Jazupata', 'Jedviga', 'Jefimija', 'Jefrosīnija', 'Jekaterīna', 'Jeļena', 'Jeļizabeta', 'Jelizabeta', 'Jelizaveta', 'Jeļizaveta', 'Jelizavete', 'Jeļizavete', 'Jella', 'Jesija', 'Jeta', 'Jete', 'Jevdokija', 'Jevgēņija', 'Jevģenija', 'Jevģēnija', 'Jevgēnija', 'Jevgenija', 'Jevgeņija', 'Jevlampija', 'Jevženija', 'Jevžēnija', 'Jezufata', 'Jezupata', 'Jezupate', 'Joana', 'Joanna', 'Jogita', 'Johana', 'Johanna', 'Jolanda', 'Jolanta', 'Jolita', 'Jonita', 'Jovita', 'Jozefa', 'Jozefata', 'Jozefīna', 'Jozefīne', 'Juanna', 'Judīte', 'Jugita', 'Jūla', 'Jūle', 'Jūliāna', 'Jūļiana', 'Julianija', 'Jūlianna', 'Jūlija', 'Julija', 'Jūlijana', 'Julijanna', 'Julita', 'Juļjana', 'Juna', 'Jūnija', 'Junita', 'Junna', 'Junona', 'Junora', 'Junta', 'Juranta', 'Jūrāte', 'Jureta', 'Jurgita', 'Jurika', 'Jurita', 'Jūsma', 'Justa', 'Justīna', 'Justīne', 'Justine', 'Justīnija', 'Juta', 'Juvita', 'Juzefa', 'Juzefata', 'Juzefate', 'Juzefīna', 'Juzefine', 'Juzepa', 'Juzepata', 'Juzepate', 'Juzufata',
|
||||
'Kadrija', 'Kaija', 'Kaira', 'Kaiva', 'Kamēlija', 'Kamena', 'Kamila', 'Kamīlija', 'Kamilla', 'Kamita', 'Kandida', 'Karalina', 'Karena', 'Kārija', 'Karīna', 'Kārina', 'Karinē', 'Karīne', 'Karita', 'Karla', 'Karlīna', 'Karlina', 'Karlīne', 'Karmena', 'Karmene', 'Karola', 'Karolīna', 'Karolīne', 'Karulina', 'Kasandra', 'Katalīna', 'Katarīna', 'Katažina', 'Kate', 'Katerīna', 'Katija', 'Katiņa', 'Katra', 'Katre', 'Katri', 'Katrīna', 'Katrina', 'Katrīne', 'Katriona', 'Kazimerina', 'Kazimira', 'Kazimirina', 'Kazmerina', 'Kazmirina', 'Kecija', 'Keisija', 'Keita', 'Keitija', 'Kelija', 'Kellija', 'Kendija', 'Kerija', 'Kerola', 'Kerolaina', 'Kerolaine', 'Kersti', 'Kerstina', 'Keta', 'Kēta', 'Kete', 'Kēte', 'Ketija', 'Ketlīna', 'Ketrija', 'Ketrīna', 'Kilikeja', 'Kima', 'Kimberiija', 'Kintija', 'Kira', 'Kitija', 'Klāra', 'Klara', 'Klaudija', 'Klavdija', 'Klementīna', 'Klementīne', 'Klementine', 'Kleofa', 'Kleopatra', 'Kleotilda', 'Klēra', 'Klimentīna', 'Klinta', 'Klitija', 'Klodija', 'Klotilde', 'Koleta', 'Konkordija', 'Konstance', 'Konstancija', 'Konstantija', 'Konstantīna', 'Konstantīne', 'Konsuela', 'Konsuella', 'Kora', 'Korina', 'Kornēlija', 'Kornelija', 'Krista', 'Kriste', 'Kristela', 'Kristena', 'Kristiāna', 'Kristiana', 'Kristiāne', 'Kristianna', 'Kristija', 'Kristijana', 'Kristilla', 'Kristīna', 'Kristīne', 'Kristine', 'Ksaverija', 'Ksavērija', 'Ksenija', 'Ksēnija', 'Kunegunda', 'Kunigunda', 'Kuzma',
|
||||
'Ķērsta', 'Ķersta',
|
||||
'Lada', 'Laija', 'Laila', 'Lailita', 'Laima', 'Laimdota', 'Laimiņa', 'Laimīte', 'Laimrita', 'Laimrota', 'Laimute', 'Laina', 'Laine', 'Laineta', 'Laira', 'Laisve', 'Lala', 'Lalita', 'Lana', 'Lāna', 'Landa', 'Langina', 'Largija', 'Larija', 'Larina', 'Larisa', 'Lāse', 'Lāsma', 'Lasma', 'Lāsmiņa', 'Late', 'Latvīte', 'Lauma', 'Laumīte', 'Laura', 'Laure', 'Laurentīna', 'Laureta', 'Laurita', 'Lavīze', 'Lea', 'Leāna', 'Leāra', 'Leida', 'Leila', 'Leina', 'Lelda', 'Lelde', 'Lena', 'Lēna', 'Lendija', 'Lengina', 'Lenija', 'Lenita', 'Lenora', 'Lenvija', 'Leokādija', 'Leokadija', 'Leolita', 'Leona', 'Leonāra', 'Leonarda', 'Leonārija', 'Leone', 'Leongīna', 'Leongīne', 'Leonīda', 'Leonida', 'Leonide', 'Leonija', 'Leonila', 'Leonilla', 'Leonita', 'Leonora', 'Leonorija', 'Leontija', 'Leontīna', 'Leontīne', 'Leontine', 'Leopoldina', 'Letīcija', 'Levantīna', 'Levita', 'Lia', 'Liāna', 'Liana', 'Lianda', 'Lianta', 'Liāra', 'Lība', 'Liberata', 'Lida', 'Līda', 'Lidija', 'Lidita', 'Liega', 'Liena', 'Liene', 'Lienīte', 'Liesma', 'Līga', 'Ligija', 'Ligindra', 'Ligita', 'Lija', 'Līksma', 'Lilana', 'Lili', 'Liliāna', 'Liliana', 'Lilianna', 'Lilija', 'Līlija', 'Lilijana', 'Lilioza', 'Lilita', 'Lilja', 'Liljana', 'Lilli', 'Lillija', 'Lillita', 'Līna', 'Lina', 'Linarda', 'Linda', 'Linde', 'Lindija', 'Līne', 'Lineta', 'Linita', 'Linna', 'Liona', 'Lioneta', 'Lionija', 'Lipija', 'Lira', 'Līrija', 'Lisa', 'Lisija', 'Lita', 'Līva', 'Liva', 'Liveta', 'Līvija', 'Livija', 'Livita', 'Liza', 'Līza', 'Lizabete', 'Lizbete', 'Līze', 'Lize', 'Lizelote', 'Lizeta', 'Lizete', 'Līzete', 'Līziņa', 'Logina', 'Logita', 'Loida', 'Lola', 'Lolija', 'Lolita', 'Lollija', 'Lone', 'Longīna', 'Lonija', 'Lonita', 'Lonnija', 'Lontīne', 'Lora', 'Loransa', 'Loreina', 'Lorena', 'Lorēna', 'Lorensa', 'Lorenta', 'Loreta', 'Lorete', 'Lorija', 'Lorika', 'Lorina', 'Lorita', 'Lota', 'Lote', 'Loveta', 'Luāna', 'Lucianna', 'Lūcija', 'Lucija', 'Lucijana', 'Ludmila', 'Ludmilla', 'Ludovika', 'Ludviga', 'Ludvika', 'Ludvisa', 'Ludvise', 'Ludvisija', 'Lueta', 'Lugra', 'Luīza', 'Luīze', 'Luize', 'Lukrecija', 'Lukrēcija', 'Lūlija', 'Lusija', 'Lusja',
|
||||
'Ļoņa', 'Ļubova', 'Ļudgarda', 'Ļudvise',
|
||||
'Madaļa', 'Madara', 'Madare', 'Made', 'Madelaina', 'Madlena', 'Madlēna', 'Mafalda', 'Magda', 'Magdalēna', 'Magdalena', 'Magdaliene', 'Magdalina', 'Magnolija', 'Magone', 'Magrieta', 'Magrita', 'Maida', 'Maiga', 'Maigone', 'Maija', 'Maila', 'Maima', 'Maina', 'Maira', 'Mairina', 'Mairita', 'Mairite', 'Mairuta', 'Makrina', 'Malānija', 'Malda', 'Maldiņa', 'Māle', 'Malgonija', 'Malgožata', 'Malle', 'Malva', 'Malvīna', 'Malvīne', 'Malvine', 'Manda', 'Manefa', 'Manuela', 'Māra', 'Maranda', 'Maranta', 'Marcela', 'Marčela', 'Marcelina', 'Marcella', 'Marciana', 'Marcianna', 'Marčija', 'Marcijana', 'Marcijanna', 'Māre', 'Mareka', 'Māreta', 'Marfa', 'Marga', 'Margareta', 'Margarēta', 'Margarieta', 'Margarita', 'Mārģieta', 'Margieta', 'Margita', 'Margnta', 'Margota', 'Margote', 'Margreta', 'Margrieta', 'Marguta', 'Marī', 'Mariana', 'Marianna', 'Mārica', 'Mariela', 'Mārieta', 'Marija', 'Marijana', 'Marijanna', 'Marijeta', 'Marika', 'Mārika', 'Marina', 'Marīna', 'Mariona', 'Marisa', 'Marita', 'Mārita', 'Maritana', 'Mārīte', 'Marīte', 'Marjama', 'Marjana', 'Marjanna', 'Marjeta', 'Marlēna', 'Marlena', 'Marsela', 'Marseljēza', 'Marsella', 'Marta', 'Mārta', 'Martijana', 'Martīna', 'Maruta', 'Māruta', 'Marute', 'Matilda', 'Matilde', 'Matrjona', 'Matrona', 'Mazalda', 'Mečislava', 'Medeja', 'Mega', 'Megija', 'Mehribana', 'Melānija', 'Melanija', 'Meldra', 'Melija', 'Melinda', 'Melisa', 'Melisandra', 'Melita', 'Melitina', 'Melizanda', 'Melizande', 'Menarda', 'Mendija', 'Meralda', 'Meri', 'Merīda', 'Mērija', 'Merija', 'Merilina', 'Merita', 'Merseda', 'Mersēda', 'Mersedesa', 'Meta', 'Mēta', 'Mētra', 'Mīce', 'Midite', 'Miervalda', 'Mihailina', 'Mihaļina', 'Mihalīna', 'Mija', 'Mikaela', 'Mikalina', 'Mīla', 'Milāna', 'Milda', 'Mildreda', 'Mīle', 'Milēna', 'Milena', 'Milica', 'Milija', 'Milita', 'Millija', 'Milona', 'Milvija', 'Mimoza', 'Mina', 'Minadora', 'Mindora', 'Minjona', 'Minna', 'Mira', 'Mirabella', 'Miralda', 'Miranda', 'Mirdza', 'Mirga', 'Mirjāma', 'Mirjana', 'Miroslava', 'Mirta', 'Mišela', 'Moda', 'Modesta', 'Modra', 'Modrīte', 'Molija', 'Mollija', 'Mona', 'Monda', 'Monija', 'Monika', 'Monna', 'Monrita', 'Monta', 'Monvida', 'Mora', 'Morēna', 'Mudīte', 'Mudra', 'Mudrīte', 'Munda', 'Mundra', 'Mundrīte', 'Munise', 'Mūza',
|
||||
'Nadežda', 'Nadija', 'Nadīna', 'Nadina', 'Nadīne', 'Naila', 'Naina', 'Naira', 'Nameda', 'Nana', 'Nanda', 'Nanete', 'Nanija', 'Nannija', 'Nansija', 'Naomi', 'Nāra', 'Narcise', 'Narciza', 'Nargisa', 'Nargiza', 'Nārija', 'Narine', 'Nastasija', 'Nastja', 'Nata', 'Natalī', 'Natālija', 'Natalija', 'Nataļja', 'Natalja', 'Nate', 'Natela', 'Natella', 'Naula', 'Necija', 'Neda', 'Neila', 'Neļa', 'Nelda', 'Nelija', 'Nelima', 'Nelita', 'Nella', 'Nellija', 'Nena', 'Nensija', 'Neonila', 'Neonilla', 'Nērika', 'Neringa', 'Neta', 'Niāra', 'Niceta', 'Nida', 'Nigra', 'Nija', 'Nijole', 'Nika', 'Nikija', 'Nikita', 'Nikola', 'Nikoleta', 'Nila', 'Nilda', 'Nilija', 'Niluta', 'Nimmija', 'Nīna', 'Ninele', 'Ninella', 'Nineta', 'Ninona', 'Niola', 'Nīra', 'Nita', 'Noela', 'Nominanda', 'Nona', 'Nonna', 'Nora', 'Norgita', 'Norika', 'Noriņa', 'Norīte', 'Norma', 'Normanta', 'Normunda', 'Norvalda',
|
||||
'Ņina', 'Ņīna',
|
||||
'Odeta', 'Odita', 'Odrija', 'Ofēlija', 'Oksana', 'Oksāna', 'Oktāvija', 'Olesija', 'Oļesija', 'Olesja', 'Oļesja', 'Olga', 'Olgita', 'Olija', 'Olimpiada', 'Olimpija', 'Olina', 'Olita', 'Olīva', 'Olīvija', 'Olivija', 'Ollija', 'Olrita', 'Olvija', 'Olvita', 'Omula', 'Ona', 'Oneta', 'Oniksa', 'Onufrija', 'Orhideja', 'Orīda', 'Ornella', 'Ortenzija', 'Ortija', 'Oskarīna', 'Otālija', 'Otīlija', 'Otilija',
|
||||
'Paija', 'Palmīra', 'Pamela', 'Pārsla', 'Pārsliņa', 'Patrīcija', 'Patricija', 'Paula', 'Pauleta', 'Paulīna', 'Paulīne', 'Pauline', 'Pavlīna', 'Pavlīne', 'Pegija', 'Pelageja', 'Pērie', 'Petra', 'Petronela', 'Petronele', 'Petronelija', 'Petronella', 'Petronellija', 'Petrunela', 'Petruneļa', 'Petrunele', 'Petrunelija', 'Pilimona', 'Pireta', 'Polīna', 'Poļina', 'Potencija', 'Praskovja', 'Proskovja', 'Pudencija', 'Pudentija',
|
||||
'Rada', 'Radmila', 'Radu', 'Raēle', 'Ragnēda', 'Ragnija', 'Raida', 'Raiena', 'Raija', 'Raima', 'Raimija', 'Raimona', 'Raimonda', 'Raina', 'Rainelda', 'Rainelde', 'Raisa', 'Raisma', 'Raita', 'Raiva', 'Raivita', 'Raja', 'Raksana', 'Ralda', 'Ramīna', 'Ramona', 'Ramuna', 'Ramune', 'Ramute', 'Rana', 'Ranāte', 'Randa', 'Randija', 'Raneta', 'Ranita', 'Ranta', 'Rasa', 'Rasita', 'Rasma', 'Rasmīte', 'Rasulīte', 'Rauza', 'Ravena', 'Ravita', 'Rebeka', 'Regija', 'Regīna', 'Regina', 'Reģīna', 'Regita', 'Reičela', 'Reina', 'Rena', 'Rēna', 'Renalda', 'Renāta', 'Renāte', 'Renate', 'Rendija', 'Renē', 'Reneta', 'Renija', 'Renita', 'Renta', 'Reta', 'Revita', 'Rezēda', 'Rezenda', 'Rezija', 'Rēzija', 'Rianda', 'Riandra', 'Rieta', 'Rigmora', 'Rigonda', 'Rikarda', 'Rima', 'Rimanta', 'Rimma', 'Rimona', 'Rimonda', 'Rimvalda', 'Rina', 'Rinalda', 'Rineta', 'Rinete', 'Ringla', 'Rinta', 'Rinvalda', 'Riona', 'Rita', 'Ritija', 'Ritma', 'Roberta', 'Robertīne', 'Robija', 'Robina', 'Rode', 'Roēna', 'Rogate', 'Roksana', 'Rolanda', 'Rolande', 'Rolanta', 'Rolita', 'Roma', 'Romalda', 'Romanda', 'Romānija', 'Romāra', 'Romena', 'Romēna', 'Rometa', 'Romija', 'Romina', 'Romualda', 'Romuta', 'Romvalda', 'Rona', 'Ronalda', 'Ronta', 'Rosita', 'Rosma', 'Rosvita', 'Rota', 'Rovena', 'Rovēna', 'Roza', 'Rozālija', 'Rozalija', 'Roze', 'Rozemarija', 'Rozita', 'Rozīte', 'Rozmarija', 'Rozvita', 'Ruāna', 'Ruda', 'Rudi', 'Rudīte', 'Rufina', 'Rusanda', 'Ruslana', 'Rusudana', 'Rūta', 'Ruta', 'Rūte', 'Rūtiņa', 'Ruzanna', 'Ruze',
|
||||
'Sabīna', 'Sabīne', 'Sabine', 'Sabrīna', 'Sagita', 'Saida', 'Saiga', 'Saija', 'Saila', 'Sailita', 'Saimona', 'Saira', 'Sairita', 'Saiva', 'Saksija', 'Salda', 'Salimona', 'Salimonija', 'Sallija', 'Salma', 'Salme', 'Salome', 'Salomeja', 'Salomija', 'Salvija', 'Samanta', 'Samīra', 'Sana', 'Sanda', 'Sandija', 'Sandita', 'Sandra', 'Sandrīte', 'Saneta', 'Sangrita', 'Sanija', 'Sanita', 'Sanlija', 'Sannija', 'Santa', 'Santana', 'Santija', 'Santra', 'Sāra', 'Sarika', 'Sarita', 'Sarma', 'Sarme', 'Sarmīte', 'Sārtīte', 'Saulcerīte', 'Saule', 'Saulgaida', 'Saulīte', 'Saulstarīte', 'Saulvija', 'Sava', 'Savina', 'Savita', 'Seila', 'Selēna', 'Selga', 'Sēlija', 'Selīna', 'Selita', 'Sella', 'Sellija', 'Selma', 'Selva', 'Senda', 'Sendija', 'Sendra', 'Senija', 'Senora', 'Serafima', 'Serafina', 'Serena', 'Serlana', 'Sevda', 'Severīna', 'Sholastika', 'Sholostika', 'Siandra', 'Sianta', 'Siāra', 'Sibilla', 'Sidija', 'Sidnija', 'Sidonija', 'Sigeta', 'Sigija', 'Sigita', 'Siglinda', 'Siglinde', 'Sigma', 'Signa', 'Signe', 'Signeja', 'Signejana', 'Signese', 'Signeta', 'Signija', 'Signita', 'Sigrīda', 'Sigrija', 'Sigrūna', 'Siguta', 'Sigute', 'Sijanda', 'Silga', 'Silja', 'Silva', 'Silvana', 'Silvestra', 'Silveta', 'Silvija', 'Silvita', 'Simona', 'Simoneta', 'Sinatra', 'Sinda', 'Sindija', 'Sindra', 'Singa', 'Singita', 'Singrita', 'Singūna', 'Sinilga', 'Sinita', 'Sinta', 'Sinti', 'Sintija', 'Sirdsvalda', 'Sirdvalda', 'Sīringa', 'Sirje', 'Sivija', 'Sjuzanna', 'Skaidra', 'Skaidre', 'Skaidrīte', 'Skara', 'Skārleta', 'Skolastika', 'Skolestika', 'Skolostika', 'Slanda', 'Smaida', 'Smaidiņa', 'Smaidīte', 'Smaidra', 'Smuidra', 'Smuidrīte', 'Snežana', 'Sņežana', 'Sņežanna', 'Snežanna', 'Sniedze', 'Sniedzīte', 'Sniga', 'Sofija', 'Sofja', 'Solanža', 'Solita', 'Solomeja', 'Solomija', 'Solomonija', 'Solumeja', 'Solvega', 'Solvēga', 'Solveiga', 'Solveta', 'Solvija', 'Solvita', 'Soņa', 'Sondra', 'Sonija', 'Sonita', 'Sonora', 'Sorenta', 'Spārīte', 'Spīdola', 'Spodra', 'Spodrīte', 'Spulga', 'Staņislava', 'Stanislava', 'Stase', 'Stasija', 'Stasja', 'Stefanīda', 'Stefānija', 'Stefanija', 'Steidzīte', 'Steiga', 'Stella', 'Stepanīda', 'Stepānija', 'Stīna', 'Stīne', 'Strauja', 'Straumīte', 'Strauta', 'Sulamīte', 'Susanna', 'Suzana', 'Suzanna', 'Svanhilda', 'Sveta', 'Svetlana',
|
||||
'Šarlota', 'Šarlote', 'Šeila', 'Šeila', 'Šeilija', 'Šelda', 'Šellija', 'Širiija', 'Širleja',
|
||||
'Tabita', 'Tabite', 'Tahmina', 'Taīda', 'Taiga', 'Taila', 'Taimira', 'Taisa', 'Taisija', 'Taive', 'Tāla', 'Tāle', 'Tālija', 'Talija', 'Talita', 'Tālivalda', 'Tālrita', 'Tamāra', 'Tamara', 'Taņa', 'Tanita', 'Tatjana', 'Tea', 'Teika', 'Teiksma', 'Tekla', 'Telma', 'Teodora', 'Teofīla', 'Teofile', 'Teofīlija', 'Teresa', 'Terēsa', 'Terese', 'Terēse', 'Terēsija', 'Teresija', 'Terēza', 'Tereza', 'Terēze', 'Tereze', 'Terezija', 'Terēzija', 'Tesa', 'Tija', 'Tikla', 'Tīksma', 'Tilla', 'Tillija', 'Tīna', 'Tina', 'Tince', 'Tira', 'Toņa', 'Tone', 'Tonija', 'Tonita', 'Tora', 'Trauta', 'Trautiņa', 'Treisija', 'Trīna', 'Trīne', 'Trūde', 'Trūta', 'Trūte', 'Tullija', 'Turaida', 'Tusnelda',
|
||||
'Uga', 'Ulda', 'Uldze', 'Ulita', 'Uljana', 'Uļjana', 'Ulla', 'Ullija', 'Ulrika', 'Ulvija', 'Ulvita', 'Una', 'Unda', 'Undija', 'Undīna', 'Undīne', 'Undita', 'Unigunde', 'Unija', 'Unita', 'Urdze', 'Urdziņa', 'Ursula', 'Uršula', 'Uršule', 'Urzula', 'Ustinija', 'Ustiņja', 'Uva', 'Uve', 'Uzbete',
|
||||
'Ūna', 'Ūnika', 'Ūva',
|
||||
'Vaclava', 'Vaida', 'Vaila', 'Vaileta', 'Vaira', 'Vairita', 'Vairīte', 'Vaiva', 'Vaļa', 'Valda', 'Valdona', 'Valdone', 'Valentija', 'Valentīna', 'Valentina', 'Valentīne', 'Valeriana', 'Valerianna', 'Valērija', 'Valerija', 'Valerijana', 'Valerjana', 'Valfrīda', 'Valīda', 'Valija', 'Valisa', 'Valita', 'Vallida', 'Vallija', 'Valma', 'Valta', 'Valtra', 'Valtraude', 'Valtrauta', 'Valtraute', 'Valve', 'Vanda', 'Vandze', 'Vaneranda', 'Vanesa', 'Vanese', 'Varenika', 'Varita', 'Varite', 'Varonika', 'Varvara', 'Vasilisa', 'Večella', 'Vega', 'Vegita', 'Veikla', 'Veiksma', 'Velda', 'Veldra', 'Veldza', 'Veldze', 'Velga', 'Velita', 'Velonija', 'Velta', 'Velte', 'Veltija', 'Veņa', 'Vena', 'Vēna', 'Vencislava', 'Venda', 'Vendeta', 'Vendija', 'Venefrīda', 'Venēra', 'Venera', 'Veneranda', 'Venerande', 'Veneta', 'Venija', 'Venīna', 'Veniranda', 'Venita', 'Venjamina', 'Venta', 'Vera', 'Vēra', 'Veranika', 'Verēna', 'Verena', 'Vergenija', 'Verija', 'Verita', 'Veronija', 'Veronika', 'Vēsma', 'Vēsmiņa', 'Veta', 'Vētra', 'Viāna', 'Vianta', 'Vicenta', 'Vida', 'Vidaga', 'Vidaija', 'Vide', 'Vīdega', 'Vīga', 'Vigda', 'Vigeta', 'Vigija', 'Viģīlija', 'Vigilija', 'Vigita', 'Vigra', 'Vija', 'Vijolīte', 'Vika', 'Vikija', 'Viktora', 'Viktorija', 'Viktorina', 'Vila', 'Vilenta', 'Vilfrida', 'Vilhelma', 'Vilhelmīna', 'Vilhelmīne', 'Vilhelmine', 'Vilija', 'Vilita', 'Vilja', 'Viljanta', 'Villija', 'Vilma', 'Vilonija', 'Vilora', 'Vīna', 'Vinca', 'Vincenta', 'Vincentīna', 'Vincentīne', 'Vīne', 'Vineta', 'Vinete', 'Vingra', 'Vinifreda', 'Vinija', 'Vinita', 'Vinnija', 'Vinta', 'Vintra', 'Viola', 'Violanda', 'Violanta', 'Violenta', 'Violeta', 'Viorika', 'Virdžinija', 'Virēna', 'Virga', 'Virgenija', 'Virgīna', 'Virgīne', 'Virgīnija', 'Virginija', 'Virģīnija', 'Virma', 'Virta', 'Visija', 'Visma', 'Visvalda', 'Vita', 'Vitālija', 'Vitalina', 'Vitalisa', 'Vitija', 'Vitnija', 'Vitolda', 'Viva', 'Vivanta', 'Viveja', 'Viveta', 'Viviāna', 'Viviana', 'Vivija', 'Vivina', 'Vivita', 'Vizbule', 'Vizbulīte', 'Vizma', 'Vlada', 'Vladilena', 'Vladimira', 'Vladislava', 'Vladlena', 'Volga',
|
||||
'Zabīne', 'Zaiga', 'Zallija', 'Zana', 'Zanda', 'Zandra', 'Zane', 'Zanga', 'Zanita', 'Zanna', 'Zanza', 'Zara', 'Zarina', 'Zelda', 'Zelga', 'Zelma', 'Zelta', 'Zeltiņa', 'Zeltīte', 'Zemfira', 'Zemīra', 'Zemlita', 'Zena', 'Zenaida', 'Zenita', 'Zenobija', 'Zenona', 'Zenta', 'Zēra', 'Zeta', 'Zete', 'Zetiņa', 'Zidija', 'Zidonija', 'Zidra', 'Ziedīte', 'Ziednese', 'Ziedone', 'Ziedonija', 'Ziedvalda', 'Ziga', 'Zigda', 'Zigeta', 'Zigfrīda', 'Zigfrida', 'Zigija', 'Zigita', 'Zigma', 'Zigmāra', 'Zigmunda', 'Zigna', 'Zigne', 'Zigra', 'Zigrīda', 'Zigrida', 'Zigrita', 'Zīle', 'Zilga', 'Zilgma', 'Zilgme', 'Zīlīte', 'Zilva', 'Zilvija', 'Zina', 'Zinaīda', 'Zinaida', 'Zinda', 'Zindra', 'Zinīda', 'Zinija', 'Zinovija', 'Zinta', 'Zintra', 'Zira', 'Zita', 'Zlata', 'Zofija', 'Zoja', 'Zola', 'Zolija', 'Zosja', 'Zuzana', 'Zuzanna', 'Zuze', 'Zvaigznīte',
|
||||
'Žaklīna', 'Žaklina', 'Žaklīne', 'Žana', 'Žaneta', 'Žanete', 'Žanija', 'Žanna', 'Žanneta', 'Žene', 'Ženija', 'Žermēna', 'Žermena', 'Žozefina', 'Žuanete', 'Žubīte',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@link} https://lv.wikipedia.org/wiki/Kategorija:Latvie%C5%A1u_uzv%C4%81rdi
|
||||
*/
|
||||
protected static $lastName = [
|
||||
'Abuls', 'Aizupe', 'Akmentiņš', 'Alksnis', 'Alunāns', 'Ancāns', 'Andžāns', 'Ankipāns', 'Aparjode', 'Apine', 'Apinis', 'Aploks', 'Apse', 'Apsītis', 'Arājs', 'Asars', 'Astra', 'Augstkalns', 'Augškalns', 'Auniņš', 'Auns', 'Auškāps', 'Auziņa', 'Auziņš', 'Avens', 'Avens', 'Avotiņš', 'Avots',
|
||||
'Ābele', 'Ābelīte', 'Ābola', 'Āboliņa', 'Āboliņš', 'Ābols', 'Āboltiņa', 'Āboltiņš', 'Ārgalis',
|
||||
'Bajārs', 'Baldzēns', 'Bāliņa', 'Bāliņš', 'Balode', 'Balodis', 'Baltgailis', 'Baltiņš', 'Banga', 'Bārbale', 'Bārda', 'Bargais', 'Barkāns', 'Barons', 'Baušķenieks', 'Bebris', 'Berģis', 'Bertāns', 'Bērziņa', 'Bērziņš', 'Bērzkalns', 'Bērzs', 'Bētiņš', 'Biezais', 'Birkavs', 'Birkerts', 'Birze', 'Birznieks', 'Bisenieks', 'Bite', 'Bitenieks', 'Bļodnieks', 'Bojārs', 'Brasla', 'Breikšs', 'Brencēns', 'Brice', 'Briede', 'Briedis', 'Broks', 'Brože', 'Buiķis', 'Buks', 'Bulis', 'Bumbiere', 'Burvis', 'Butāne', 'Butkus',
|
||||
'Cālītis', 'Caune', 'Caunītis', 'Celmiņa', 'Celmiņš', 'Celms', 'Ceplītis', 'Cērps', 'Cielēns', 'Ciemiņš', 'Cipruss', 'Cipulis', 'Cīrulis',
|
||||
'Čaklais', 'Čakste', 'Čevers', 'Čukste',
|
||||
'Dāboliņš', 'Daiders', 'Dālderis', 'Dambis', 'Dārziņš', 'Dārznieks', 'Deglavs', 'Dimants', 'Dobelis', 'Draviņš', 'Dravnieks', 'Dubra', 'Dukure', 'Dukurs', 'Dumpe', 'Dumpis', 'Dzelme', 'Dzelzītis', 'Dzenis', 'Dzenītis', 'Dzērve', 'Dzintars', 'Dzirne', 'Džeriņš',
|
||||
'Egle', 'Eglīte', 'Eglītis', 'Eiduka', 'Eisaks', 'Elksne', 'Endzelīna', 'Endzelīns', 'Endziņš', 'Eniņš', 'Ezeriņš',
|
||||
'Ēķis', 'Ērglis',
|
||||
'Freimanis',
|
||||
'Gaigals', 'Gaile', 'Gailis', 'Gailītis', 'Galviņš', 'Garanča', 'Gauja', 'Goba', 'Goppers', 'Gorkšs', 'Grantiņš', 'Graudiņš', 'Grauds', 'Grava', 'Grāvelis', 'Greste', 'Grēviņš', 'Grīva', 'Grūbe', 'Gruzītis', 'Gulbe', 'Gulbis',
|
||||
'Ģīlis', 'Ģirģens',
|
||||
'Igaunis', 'Ikauniece', 'Ikaunieks', 'Indriksone', 'Indriksons', 'Irbe',
|
||||
'Īvāns',
|
||||
'Jankausks', 'Jaudzems', 'Jaunzeme', 'Jaunzemis', 'Jaunzems', 'Jurjāns', 'Jūsmiņš',
|
||||
'Kadiķis', 'Kaijaks', 'Kaktiņš', 'Kalējs', 'Kalna', 'Kalnbērzs', 'Kalniņa', 'Kalniņš', 'Kalnozols', 'Kalns', 'Kalpaks', 'Kambala', 'Kantāns', 'Kants', 'Kaņeps', 'Karašausks', 'Kārkliņa', 'Kārkliņš', 'Kauliņš', 'Kauls', 'Kazlausks', 'Kazričs', 'Kirmuška', 'Kivlenieks', 'Klētniece', 'Klišāns', 'Kļava', 'Kļaviņa', 'Kļaviņš', 'Kociņš', 'Kokina', 'Kokins', 'Kokle', 'Kozlovskis', 'Kramiņš', 'Krastiņa', 'Krastiņš', 'Krauklis', 'Krieviņš', 'Krievs', 'Krollis', 'Krūkliņš', 'Krūmiņa', 'Krūmiņš', 'Krustiņš', 'Kubiļus', 'Kubuliņa', 'Kugrēns', 'Kukainis', 'Kukule', 'Kukulis', 'Kūlis', 'Kundziņš', 'Kurpnieks', 'Kursītis', 'Kusiņš', 'Kušķis', 'Kvēps',
|
||||
'Ķemere', 'Ķempe', 'Ķēniņš', 'Ķibilds', 'Ķuzis',
|
||||
'Ladusāns', 'Lāce', 'Lācis', 'Lagzdiņš', 'Laime', 'Laimiņš', 'Laizāne', 'Laizāns', 'Lapainis', 'Lapiņš', 'Lapsa', 'Latvis', 'Lauks', 'Lauskis', 'Laviņa', 'Laviņš', 'Lazda', 'Lazdiņš', 'Legzdiņš', 'Leitāns', 'Leitis', 'Leja', 'Lejiņš', 'Lejnieks', 'Lībietis', 'Līce', 'Līdaka', 'Lieģis', 'Lielais', 'Lielgalvis', 'Liepa', 'Liepiņa', 'Liepiņš', 'Liepkalne', 'Linga', 'Liniņš', 'Ločmele', 'Ločmelis', 'Logina', 'Logins', 'Loze', 'Lujāns', 'Lūkins', 'Lūriņa', 'Lūsis',
|
||||
'Ļaksa',
|
||||
'Mangulis', 'Matīsa', 'Mauriņa', 'Mediņš', 'Mednis', 'Melbārde', 'Melbārdis', 'Mellupe', 'Melngailis', 'Mētra', 'Mežaraups', 'Mežciems', 'Mežlauks', 'Mežulis', 'Miezis', 'Miezītis', 'Miglinieks', 'Misāns', 'Miķelsons', 'Muceniece', 'Mucenieks', 'Muciņš', 'Muižniece', 'Muižnieks', 'Muktupāvela', 'Muktupāvels', 'Mūrniece', 'Mūrnieks',
|
||||
'Neretniece', 'Niedra', 'Niedre',
|
||||
'Oliņš', 'Osis', 'Oškalns', 'Ošs', 'Ozola', 'Ozoliņa', 'Ozoliņš', 'Ozols',
|
||||
'Pabērzs', 'Paegle', 'Pauļuks', 'Pelšs', 'Peniķis', 'Petrausks', 'Pīrāgs', 'Plaude', 'Plaudis', 'Plotnieks', 'Plūme', 'Pļaviņš', 'Pļavniece', 'Podnieks', 'Poikāns', 'Polis', 'Pormalis', 'Prauliņa', 'Prauliņš', 'Priede', 'Priedīte', 'Pūce', 'Pujāts', 'Puķe', 'Pumpurs', 'Pūpols', 'Pupurs', 'Puriņš', 'Purnis', 'Purviņš', 'Putniņa', 'Putniņš', 'Putra',
|
||||
'Radziņa', 'Radziņš', 'Rancāns', 'Raņķis', 'Rapa', 'Rausis', 'Reinika', 'Reiniks', 'Reizniece', 'Repše', 'Riekstiņš', 'Rijnieks', 'Rītiņš', 'Robežnieks', 'Roga', 'Rokpelnis', 'Ronis', 'Roze', 'Roziņš', 'Rozītis', 'Rožlapa', 'Rubene', 'Rubenis', 'Rudzīte', 'Rudzītis', 'Rullis', 'Rūmnieks', 'Rūtiņš',
|
||||
'Sabonis', 'Saliņš', 'Salmiņš', 'Salnis', 'Saulietis', 'Saulīte', 'Saulītis', 'Sedlenieks', 'Segliņa', 'Segliņš', 'Seile', 'Seiļs', 'Sesks', 'Siliņa', 'Siliņš', 'Sīlis', 'Sīmanis', 'Sirmais', 'Skābardis', 'Skalbe', 'Skrastiņa', 'Skrastiņš', 'Skride', 'Skrinda', 'Skudra', 'Skuja', 'Skujenieks', 'Skujiņa', 'Skujiņš', 'Skulme', 'Sodums', 'Spridzāns', 'Sproģe', 'Sproģis', 'Sprūdžs', 'Spūlis', 'Stabiņš', 'Stalts', 'Staprāns', 'Stepiņš', 'Stradiņš', 'Straumanis', 'Straume', 'Straupe', 'Strautmane', 'Strautmanis', 'Strautnieks', 'Strazdiņš', 'Strazds', 'Strēlis', 'Strēlnieks', 'Strods', 'Sudmalis', 'Sudraba', 'Sukurs', 'Sukuts',
|
||||
'Šķēle', 'Šnepsts',
|
||||
'Tauriņš', 'Teilāne', 'Tērauda', 'Timma', 'Tīruma', 'Titāns', 'Turss',
|
||||
'Upenieks', 'Upītis', 'Upmale', 'Urtāns', 'Ušpelis', 'Uzuliņš',
|
||||
'Ūdentiņš', 'Ūders', 'Ūdre', 'Ūdris',
|
||||
'Vācietis', 'Vairogs', 'Vaišļa', 'Vaivods', 'Vanags', 'Varslavāns', 'Vasarietis', 'Vazdika', 'Vazdiks', 'Vecozols', 'Vecumnieks', 'Vecvagars', 'Vērdiņš', 'Vīgante', 'Vīksna', 'Vīksne', 'Vilcāne', 'Vilciņa', 'Vilciņš', 'Vilkaste', 'Vilks', 'Viļums', 'Vimba', 'Vītola', 'Vītoliņš', 'Vītols',
|
||||
'Zaķis', 'Zāle', 'Zālīte', 'Zālītis', 'Zaļupe', 'Zariņa', 'Zariņš', 'Zelčs', 'Zeltiņa', 'Zeltiņš', 'Zemdega', 'Zemgals', 'Zemītis', 'Zemzaris', 'Ziedonis', 'Ziemele', 'Ziemelis', 'Zīle', 'Zirnis', 'Znotiņš', 'Zvagulis', 'Zvejnieks', 'Zviedris', 'Zvirbulis', 'Zvirgzdiņš',
|
||||
'Žagars', 'Žukausks',
|
||||
];
|
||||
|
||||
public function driverLicence()
|
||||
{
|
||||
return static::bothify('??######');
|
||||
}
|
||||
|
||||
public function passportNumber()
|
||||
{
|
||||
return static::bothify('??#######');
|
||||
}
|
||||
|
||||
/**
|
||||
* National Personal Identity number (personas kods)
|
||||
*
|
||||
* @see https://en.wikipedia.org/wiki/National_identification_number#Latvia
|
||||
*
|
||||
* @return string on format XXXXXX-XXXXX
|
||||
*/
|
||||
public function personalIdentityNumber(?\DateTime $birthdate = null)
|
||||
{
|
||||
if (!$birthdate) {
|
||||
$birthdate = DateTime::dateTimeThisCentury();
|
||||
}
|
||||
|
||||
$year = $birthdate->format('Y');
|
||||
|
||||
if ($year >= 2000 && $year <= 2099) {
|
||||
$century = 2;
|
||||
} elseif ($year >= 1900 && $year <= 1999) {
|
||||
$century = 1;
|
||||
} else {
|
||||
$century = 0;
|
||||
}
|
||||
|
||||
$datePart = $birthdate->format('dmy');
|
||||
$serialNumber = static::numerify('###');
|
||||
|
||||
$partialNumberSplit = str_split($datePart . $century . $serialNumber);
|
||||
|
||||
$idDigitValidator = [1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
|
||||
$total = 0;
|
||||
|
||||
foreach ($partialNumberSplit as $key => $digit) {
|
||||
if (isset($idDigitValidator[$key])) {
|
||||
$total += $idDigitValidator[$key] * (int) $digit;
|
||||
}
|
||||
}
|
||||
|
||||
$checksumDigit = (1101 - $total) % 11 % 10;
|
||||
|
||||
return $datePart . '-' . $century . $serialNumber . $checksumDigit;
|
||||
}
|
||||
}
|
||||
+335
@@ -0,0 +1,335 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\nb_NO;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
protected static $formats = [
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}-{{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}-{{lastName}}',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Norwegian female first names
|
||||
*
|
||||
* @see http://spraakbanken.gu.se/statistik/lbfnamnalf.phtml
|
||||
*/
|
||||
protected static $firstNameFemale = [
|
||||
'Abida', 'Abigail', 'Abir', 'Ada', 'Adel', 'Adelaine', 'Adele', 'Adelen', 'Adelin', 'Adelina', 'Adeline',
|
||||
'Adiba', 'Adila', 'Adile', 'Adina', 'Adine', 'Adisa', 'Admira', 'Adna', 'Adriana', 'Aferdita', 'Afshan',
|
||||
'Agata', 'Agate', 'Agathe', 'Agda', 'Agne', 'Agnes', 'Agnete', 'Agnethe', 'Agnieszka', 'Agny', 'Ahlam', 'Aicha',
|
||||
'Aida', 'Aija', 'Aileen', 'Aili', 'Ailin', 'Aime', 'Aimée', 'Aina', 'Aino', 'Aisha', 'Aiste', 'Ajna',
|
||||
'Albertine', 'Aldona', 'Aleena', 'Aleksandra', 'Alena', 'Alette', 'Alexandra', 'Alfhild', 'Alia', 'Alice',
|
||||
'Alida', 'Alina', 'Aline', 'Alis', 'Alise', 'Alison', 'Aliza', 'Allis', 'Alma', 'Almira', 'Alva', 'Alvhild',
|
||||
'Alvilde', 'Alyssa', 'Alaa', 'Amabel', 'Amal', 'Amalie', 'Amanda', 'Amber', 'Ambjørg', 'Amelia', 'Amelie',
|
||||
'Amie', 'Amila', 'Amina', 'Aminda', 'Amira', 'Amna', 'Amporn', 'Amra', 'Amy', 'An', 'Ana', 'Anab', 'Anabelle',
|
||||
'Anastasia', 'Anbjørg', 'Andrea', 'Andrine', 'Ane', 'Aneta', 'Anett', 'Anette', 'Angela', 'Angelica',
|
||||
'Angelina', 'Angunn', 'Anh', 'Anikken', 'Anila', 'Anine', 'Anisa', 'Anita', 'Anitra', 'Anja', 'Anke', 'Anlaug',
|
||||
'Ann', 'Anna', 'Annabel', 'Annabelle', 'Annbjørg', 'Anne', 'Anneke', 'Anneli', 'Annelise', 'Annemarie',
|
||||
'Annette', 'Annfrid', 'Anni', 'Annicken', 'Annie', 'Annika', 'Anniken', 'Annka', 'Annlaug', 'Annveig', 'Anny',
|
||||
'Antje', 'Antoinette', 'Anya', 'April', 'Ardita', 'Ariana', 'Ariel', 'Ariela', 'Arina', 'Arja', 'Arlene',
|
||||
'Arna', 'Arnbjørg', 'Arnhild', 'Arnlaug', 'Asbjørg', 'Asha', 'Aslaug', 'Asma', 'Asta', 'Astri', 'Astrid',
|
||||
'Athene', 'Atina', 'Aud', 'Audhild', 'Audny', 'Audrey', 'Aurora', 'Ayan', 'Ayla', 'Ayleen', 'Aylin', 'Ayse',
|
||||
'Azra', 'Babette', 'Barbara', 'Barbro', 'Beate', 'Beatrice', 'Belinda', 'Bella', 'Benedicte', 'Benedikte',
|
||||
'Benny', 'Bente', 'Bergdis', 'Bergfrid', 'Bergliot', 'Bergljot', 'Berit', 'Bernadette', 'Berta', 'Berthe',
|
||||
'Bertine', 'Beth', 'Betina', 'Betine', 'Betsy', 'Bettina', 'Betty', 'Betzy', 'Bianca', 'Bibbi', 'Bibi',
|
||||
'Birgit', 'Birgitta', 'Birgitte', 'Birte', 'Birthe', 'Bitten', 'Bjørg', 'Bjørghild', 'Blanca', 'Bodil',
|
||||
'Bolette', 'Bonnie', 'Borghild', 'Borgny', 'Bozena', 'Brigitte', 'Brit', 'Brita', 'Britt', 'Bryngjerd',
|
||||
'Brynhild', 'Bushra', 'Caisa', 'Camilla', 'Carina', 'Carita', 'Carla', 'Carlota', 'Carmen', 'Carol', 'Carola',
|
||||
'Carolina', 'Caroline', 'Cassandra', 'Catalina', 'Catarina', 'Cate', 'Catherina', 'Cathinka', 'Cathrine',
|
||||
'Catrine', 'Cecilia', 'Cecilie', 'Celine', 'Chanette', 'Chantal', 'Charlotte', 'Chi', 'Chloe', 'Christel',
|
||||
'Christiane', 'Christin', 'Christina', 'Christine', 'Cicilie', 'Cilje', 'Cindy', 'Clara', 'Claudia', 'Connie',
|
||||
'Conny', 'Constance', 'Cora', 'Cordelia', 'Corina', 'Cornelia', 'Cornelie', 'Cristel', 'Cristina', 'Cynthia',
|
||||
'Dagfrid', 'Dagmar', 'Dagne', 'Dagny', 'Dagrun', 'Daisy', 'Dana', 'Daniella', 'Danielle', 'Danuta', 'Daria',
|
||||
'Dea', 'Debora', 'Denise', 'Derya', 'Desirée', 'Diana', 'Diane', 'Dianne', 'Dilan', 'Dina', 'Dolores', 'Donna',
|
||||
'Dora', 'Dordi', 'Doreen', 'Doris', 'Dorit', 'Dorota', 'Dorothea', 'Dorte', 'Dorthe', 'Dorthea', 'Dragana',
|
||||
'Drude', 'Dung', 'Dyrhild', 'Dyveke', 'Ea', 'Ebba', 'Ece', 'Edda', 'Edel', 'Edit', 'Edith', 'Edle', 'Edna',
|
||||
'Edny', 'Edvarda', 'Edvine', 'Eileen', 'Eilin', 'Einy', 'Eir', 'Eira', 'Eirian', 'Eiril', 'Eirin', 'Eirunn',
|
||||
'Eivor', 'Ekaterina', 'Elaine', 'Elbjørg', 'Eldbjørg', 'Eldfrid', 'Eldrid', 'Elea', 'Eleanora', 'Elen', 'Elena',
|
||||
'Elenora', 'Elfi', 'Elfrid', 'Elfrida', 'Eli', 'Elia', 'Elida', 'Elin', 'Elina', 'Eline', 'Elinor', 'Elisa',
|
||||
'Elisabet', 'Elisabeth', 'Elise', 'Elizabeth', 'Ella', 'Elle', 'Ellen', 'Ellida', 'Ellinor', 'Ellisiv', 'Elma',
|
||||
'Elna', 'Elsa', 'Else', 'Elsebeth', 'Elsie', 'Elvine', 'Elvira', 'Elzbieta', 'Eman', 'Embla', 'Emelie', 'Emely',
|
||||
'Emilie', 'Emilija', 'Emily', 'Emina', 'Emma', 'Emmy', 'Ena', 'Enid', 'Enya', 'Erica', 'Erika', 'Erle', 'Erna',
|
||||
'Esma', 'Ester', 'Esther', 'Ethel', 'Eva', 'Evangeline', 'Evelina', 'Evelyn', 'Evi', 'Evie', 'Evita', 'Evy',
|
||||
'Eydis', 'Eyvor', 'Fadumo', 'Faisa', 'Faiza', 'Fanny', 'Farah', 'Farhiya', 'Fariba', 'Farida', 'Farzana',
|
||||
'Fatima', 'Fay', 'Felicia', 'Feliza', 'Fernanda', 'Filippa', 'Fiona', 'Florence', 'Fozia', 'Frances',
|
||||
'Franciska', 'Franziska', 'Frederika', 'Fredrikke', 'Freja', 'Frid', 'Frida', 'Fride', 'Frigg', 'Frøy', 'Frøya',
|
||||
'Frøydis', 'Gabrielle', 'Galina', 'Geirhild', 'Georgine', 'Gerd', 'Gerda', 'Gertrud', 'Ghazala', 'Gidske',
|
||||
'Gina', 'Gine', 'Gisela', 'Giske', 'Gisken', 'Gitte', 'Gjerd', 'Gjertine', 'Gjertrud', 'Gjøril', 'Gjørild',
|
||||
'Gloria', 'Grace', 'Greta', 'Grete', 'Grethe', 'Gro', 'Gry', 'Gudjørg', 'Gudlaug', 'Gudny', 'Gudrid', 'Gudrun',
|
||||
'Gudveig', 'Gul', 'Gulla', 'Gullborg', 'Gun', 'Gunbjørg', 'Gunda', 'Gunhild', 'Gunlaug', 'Gunn', 'Gunnbjørg',
|
||||
'Gunnel', 'Gunnhild', 'Gunnlaug', 'Gunnveig', 'Gunnvor', 'Gunnvår', 'Gunvor', 'Guri', 'Gurine', 'Guro', 'Gusta',
|
||||
'Gustava', 'Gyda', 'Gyri', 'Gyrid', 'Gøril', 'Hacer', 'Hafsa', 'Haldis', 'Halimo', 'Halina', 'Hallbjørg',
|
||||
'Halldis', 'Hallfrid', 'Hamida', 'Hana', 'Hanan', 'Hang', 'Hanna', 'Hanne', 'Hansine', 'Harda', 'Harriet',
|
||||
'Hatice', 'Hava', 'Hawa', 'Heather', 'Hedda', 'Hedvig', 'Hege', 'Heidi', 'Heidrun', 'Heike', 'Helen', 'Helena',
|
||||
'Helene', 'Helga', 'Helin', 'Hella', 'Helle', 'Helma', 'Hennie', 'Henny', 'Henriette', 'Herbjørg', 'Herborg',
|
||||
'Herdis', 'Herlaug', 'Hermine', 'Hiba', 'Hibo', 'Hilary', 'Hild', 'Hilde', 'Hildegunn', 'Hildur', 'Hillevi',
|
||||
'Hilma', 'Hina', 'Hjørdis', 'Hoa', 'Hong', 'Huda', 'Hue', 'Hulda', 'Huong', 'Hæge', 'Iben', 'Ida', 'Idun',
|
||||
'Idunn', 'Ifrah', 'Ildri', 'Ildrid', 'Ilona', 'Ilse', 'Iman', 'Ina', 'Indira', 'Ine', 'Ines', 'Inga', 'Inge',
|
||||
'Ingebjørg', 'Ingeborg', 'Ingegerd', 'Ingelin', 'Inger', 'Inger-Lise', 'Ingerid', 'Ingfrid', 'Inghild',
|
||||
'Ingjerd', 'Ingrid', 'Ingrun', 'Ingrunn', 'Ingunn', 'Ingveig', 'Ingvild', 'Irene', 'Iris', 'Irja', 'Irma',
|
||||
'Irmelin', 'Isa', 'Isabel', 'Isadora', 'Iselin', 'Ivana', 'Ivarda', 'Iwona', 'Izabela', 'Jacqueline', 'Jamila',
|
||||
'Jane', 'Janette', 'Janicke', 'Janken', 'Janne', 'Jarlfrid', 'Jaroslaw', 'Jasmin', 'Jean', 'Jeanette', 'Jeanne',
|
||||
'Jelena', 'Jenni', 'Jennifer', 'Jenny', 'Jessica', 'Jill', 'Jo', 'Jocelyn', 'Jofrid', 'Johanna', 'Johanne',
|
||||
'Jolanta', 'Jone', 'Jorid', 'Jorun', 'Jorunn', 'Josefine', 'Joyce', 'Judit', 'Judith', 'Julia', 'Julie', 'June',
|
||||
'Juni', 'Jytte', 'Jøran', 'Kai', 'Kaia', 'Kaisa', 'Kamila', 'Kamilla', 'Karen', 'Kari', 'Karianne', 'Karin',
|
||||
'Karina', 'Karine', 'Karita', 'Karoline', 'Katarina', 'Kate', 'Kathinka', 'Kathleen', 'Kathrine', 'Kaya',
|
||||
'Kelly', 'Kerstin', 'Khadija', 'Khadra', 'Khalida', 'Kim', 'Kine', 'Kirsten', 'Kirsti', 'Kitty', 'Kjellaug',
|
||||
'Kjellfrid', 'Kjellrun', 'Kjersti', 'Kjerstin', 'Klara', 'Konstanse', 'Kornelia', 'Kristi', 'Kristin',
|
||||
'Kristina', 'Kristine', 'Laila', 'Lana', 'Lara', 'Larissa', 'Laura', 'Lea', 'Leah', 'Leia', 'Leikny', 'Leila',
|
||||
'Lena', 'Lene', 'Leona', 'Leyla', 'Lidia', 'Lilian', 'Lill', 'Lillian', 'Lilly', 'Lina', 'Linda', 'Line',
|
||||
'Linea', 'Linh', 'Linn', 'Linnea', 'Lisa', 'Lisbeth', 'Lise', 'Liss', 'Liv', 'Live', 'Liza', 'Loma', 'Lone',
|
||||
'Lotta', 'Lotte', 'Louise', 'Lovise', 'Lucia', 'Ludmila', 'Luna', 'Lydia', 'Lykke', 'Mabel', 'Madeleine',
|
||||
'Magda', 'Magdalena', 'Magdalene', 'Magna', 'Magnhild', 'Magni', 'Mai', 'Maia', 'Maiken', 'Mailen', 'Maj',
|
||||
'Maja', 'Malene', 'Mali', 'Malin', 'Maren', 'Margareta', 'Margareth', 'Margarita', 'Marge', 'Margit', 'Margot',
|
||||
'Margrete', 'Margrethe', 'Marguerite', 'Margy', 'Mari', 'Maria', 'Marianne', 'Marie', 'Mariell', 'Marilyn',
|
||||
'Marina', 'Marion', 'Marit', 'Marlene', 'Marta', 'Marte', 'Martha', 'Martine', 'Mary', 'Mathea', 'Mathilde',
|
||||
'Maud', 'May', 'Maya', 'Maylen', 'Melanie', 'Melina', 'Melinda', 'Melissa', 'Melita', 'Mercedes', 'Merete',
|
||||
'Mette', 'Mia', 'Michaela', 'Mildrid', 'Milena', 'Milla', 'Mille', 'Mina', 'Mira', 'Miranda', 'Miriam', 'Moa',
|
||||
'Mona', 'Monica', 'Monika', 'Monja', 'Muna', 'Munira', 'My', 'Märta', 'Märtha', 'Møyfrid', 'Målfrid', 'Nada',
|
||||
'Nadia', 'Nadine', 'Nadja', 'Naima', 'Nancy', 'Nanna', 'Naomi', 'Nasreen', 'Nasrin', 'Natalie', 'Nathalie',
|
||||
'Nazia', 'Nelly', 'Ngoc', 'Nicole', 'Nikita', 'Niklas', 'Nikoline', 'Nimo', 'Nina', 'Noomi', 'Noor', 'Nor',
|
||||
'Nora', 'Norunn', 'Oda', 'Oddbjørg', 'Oddfrid', 'Oddlaug', 'Oddny', 'Oddrun', 'Oddveig', 'Oksana', 'Olaug',
|
||||
'Olga', 'Olina', 'Oline', 'Olivia', 'Othilie', 'Otilie', 'Palma', 'Pamela', 'Patricia', 'Paula', 'Pauline',
|
||||
'Peggy', 'Perly', 'Pernille', 'Petra', 'Phuong', 'Pia', 'Rachel', 'Ragna', 'Ragne', 'Ragnfrid', 'Ragnhild',
|
||||
'Ragni', 'Rahma', 'Rakel', 'Ramona', 'Randi', 'Rania', 'Ranja', 'Ranveig', 'Rebecca', 'Rebekka', 'Regine',
|
||||
'Reidun', 'Renate', 'Renée', 'Riborg', 'Rigmor', 'Rina', 'Rine', 'Rita', 'Ronja', 'Rosa', 'Rose', 'Rukhsana',
|
||||
'Runa', 'Rut', 'Ruth', 'Rønnaug', 'Saba', 'Sabine', 'Sabrina', 'Sadia', 'Safia', 'Saga', 'Sahra', 'Saima',
|
||||
'Sally', 'Salma', 'Samantha', 'Samina', 'Samira', 'Sana', 'Sandra', 'Sanja', 'Sanna', 'Sara', 'Sarah', 'Selina',
|
||||
'Selma', 'Serina', 'Shabana', 'Shahnaz', 'Shamim', 'Sharon', 'Shazia', 'Sheila', 'Shirin', 'Shirley', 'Shukri',
|
||||
'Sidsel', 'Sigfrid', 'Signe', 'Sigrid', 'Sigrun', 'Silje', 'Silvia', 'Simona', 'Simone', 'Sina', 'Siren',
|
||||
'Siri', 'Siril', 'Sissel', 'Siv', 'Snefrid', 'Sofia', 'Sofie', 'Sol', 'Solbjørg', 'Solfrid', 'Solgunn',
|
||||
'Sollaug', 'Solrun', 'Solveig', 'Solvor', 'Sonja', 'Sophie', 'Stella', 'Stina', 'Stine', 'Sumaya', 'Sunniva',
|
||||
'Susanne', 'Svanaug', 'Svanhild', 'Svetlana', 'Sygni', 'Sylvi', 'Synnøve', 'Sølvi', 'Tahira', 'Tale', 'Tamara',
|
||||
'Tania', 'Tanja', 'Tanya', 'Tara', 'Taran', 'Tatiana', 'Tea', 'Terese', 'Thale', 'Thanh', 'Thao', 'Thea',
|
||||
'Thelma', 'Theodora', 'Therese', 'Thi', 'Thilde', 'Thina', 'Thine', 'Thora', 'Thorbjørg', 'Thordis', 'Thorild',
|
||||
'Thu', 'Thuy', 'Thyra', 'Tia', 'Tiffany', 'Tilde', 'Tina', 'Tindra', 'Tine', 'Tiril', 'Toini', 'Tomine', 'Tone',
|
||||
'Tonje', 'Tora', 'Torbjørg', 'Tordis', 'Torgny', 'Torgun', 'Torgunn', 'Torhild', 'Tori', 'Toril', 'Torild',
|
||||
'Torlaug', 'Torny', 'Torunn', 'Tove', 'Toya', 'Trine', 'Trude', 'Turid', 'Tuva', 'Tuyet', 'Tyra', 'Ulla',
|
||||
'Ulrikke', 'Una', 'Undis', 'Une', 'Unn', 'Unni', 'Ursula', 'Uzma', 'Valentina', 'Vanessa', 'Vanja', 'Vebjørg',
|
||||
'Velaug', 'Venche', 'Vendela', 'Vera', 'Veronica', 'Veslemøy', 'Vibeke', 'Victoria', 'Vida', 'Vigdis',
|
||||
'Viktoria', 'Vilde', 'Vilhelmina', 'Vilja', 'Villemo', 'Vilma', 'Viola', 'Virginia', 'Vivi', 'Vivian', 'Vår',
|
||||
'Vårin', 'Wanda', 'Wanja', 'Wenche', 'Wendy', 'Wera', 'Weronika', 'Wibecke', 'Wibeke', 'Wigdis', 'Wilde',
|
||||
'Wilma', 'Winnie', 'Xuan', 'Yasmin', 'Ylva', 'Yngvild', 'Yvonne', 'Zahida', 'Zahra', 'Zainab', 'Zara',
|
||||
'Zuzanna', 'Øydis', 'Øyvor', 'Ågot', 'Aasa', 'Aase', 'Åse', 'Åshild', 'Aashild', 'Åslaug', 'Åsne', 'Åsta',
|
||||
'Aasta',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Norwegian male first names
|
||||
*
|
||||
* @see http://www.mammanett.no/navn/leksikon/alle?field_name_sex_value=m&title=
|
||||
*/
|
||||
protected static $firstNameMale = [
|
||||
'Abbas', 'Abdallah', 'Abdelaziz', 'Abdelkader', 'Abdi', 'Abdiasis', 'Abdifatah', 'Abdikadir', 'Abdinasir',
|
||||
'Abdirahim', 'Abdirahman', 'Abdirashid', 'Abdirizak', 'Abdul', 'Abdulahi', 'Abdulkadir', 'Abdullah',
|
||||
'Abdullahi', 'Abdulqadir', 'Abdurahman', 'Abed', 'Abel', 'Abid', 'Abraham', 'Absalon', 'Abu', 'Abubakar',
|
||||
'Adam', 'Adan', 'Adeel', 'Adelheid', 'Adelsten', 'Adem', 'Aden', 'Adham', 'Adi', 'Adil', 'Adis', 'Adler',
|
||||
'Admir', 'Adnan', 'Adrian', 'Afanasi', 'Afrim', 'Afshin', 'Agim', 'Agmund', 'Agnar', 'Agvald', 'Ahmad',
|
||||
'Ahmed', 'Aiden', 'Ailo', 'Aimar', 'Aime', 'Ajdin', 'Ajmal', 'Akam', 'Akbar', 'Akram', 'Aksel', 'Alain', 'Alan',
|
||||
'Alban', 'Albert', 'Alberto', 'Albin', 'Albrecht', 'Alejandro', 'Aleksander', 'Alen', 'Alessandro', 'Alex',
|
||||
'Alexander', 'Alexsander', 'Alf', 'Alfred', 'Algirdas', 'Algot', 'Ali', 'Allan', 'Almar', 'Almas', 'Almaz',
|
||||
'Almir', 'Altin', 'Alv', 'Alvald', 'Alvar', 'Alvaro', 'Alvfinn', 'Alvgeir', 'Alvin', 'Alvis', 'Alaa', 'Amadeus',
|
||||
'Aman', 'Amandus', 'Amanuel', 'Amar', 'Ambjørn', 'Ambros', 'Ambrosius', 'Amel', 'Amer', 'Amin', 'Amir', 'Ammar',
|
||||
'Amund', 'An', 'Anas', 'Anbjørn', 'Anders', 'Andi', 'Andor', 'André', 'Andreas', 'Andres', 'Andrew', 'Andris',
|
||||
'Andrzej', 'Andy', 'Anh', 'Anil', 'Annar', 'Anselm', 'Ansgar', 'Anskar', 'Anstein', 'Anthon', 'Anthony',
|
||||
'Anton', 'Antonio', 'Antonius', 'Anwar', 'Aram', 'Ard', 'Are', 'Arent', 'Ari', 'Arian', 'Ariel', 'Arild',
|
||||
'Arkadiusz', 'Armand', 'Armin', 'Arn', 'Arnald', 'Arnar', 'Arnbjørn', 'Arndor', 'Arne', 'Arnfinn', 'Arnfred',
|
||||
'Arngrim', 'Arnljot', 'Arnold', 'Arnolf', 'Arnor', 'Arnstein', 'Arnt', 'Arnulf', 'Arnulv', 'Arnvid', 'Aron',
|
||||
'Arslan', 'Arthur', 'Artur', 'Arun', 'Arunas', 'Arve', 'Arvid', 'Arvin', 'Asad', 'Asbjørn', 'Asgeir', 'Asif',
|
||||
'Ask', 'Askjel', 'Aslak', 'Aslan', 'Asle', 'Asmund', 'Astor', 'Atif', 'Atle', 'Attila', 'Audbjørn', 'Audfinn',
|
||||
'Audun', 'Augun', 'August', 'Augustin', 'Axel', 'Aziz', 'Bajram', 'Balder', 'Bao', 'Barry', 'Bart',
|
||||
'Bartlomiej', 'Bartol', 'Bastian', 'Bekim', 'Ben', 'Bendik', 'Benedikt', 'Bengt', 'Benjamin', 'Benny', 'Bent',
|
||||
'Berent', 'Berge', 'Berger', 'Bergfinn', 'Bergsvein', 'Berhane', 'Bernhard', 'Bernt', 'Bert', 'Bertel',
|
||||
'Bertil', 'Bertin', 'Bertold', 'Bertram', 'Bertrand', 'Besim', 'Besnik', 'Bilal', 'Bill', 'Birger', 'Birk',
|
||||
'Bjarne', 'Bjart', 'Bjarte', 'Bjartmar', 'Bjørge', 'Bjørk', 'Bjørn', 'Bjørnar', 'Bjørnulv', 'Blerim', 'Bo',
|
||||
'Bob', 'Bobby', 'Bodolv', 'Bodvar', 'Bogdan', 'Boguslaw', 'Borgar', 'Borger', 'Boris', 'Bork', 'Bosse',
|
||||
'Botolv', 'Boye', 'Brage', 'Brede', 'Bredo', 'Brian', 'Brigt', 'Brikt', 'Broder', 'Bror', 'Bruno', 'Bryan',
|
||||
'Brynar', 'Brynjar', 'Brynjulf', 'Brynjulv', 'Bujar', 'Burhan', 'Byrge', 'Børge', 'Børje', 'Børre', 'Bård',
|
||||
'Calvin', 'Carl', 'Carsten', 'Caspar', 'Casper', 'Caspian', 'Cato', 'Cay', 'Cecil', 'Cengiz', 'Cesar', 'Chan',
|
||||
'Chand', 'Charles', 'Charlie', 'Chi', 'Chris', 'Chrisander', 'Christen', 'Christer', 'Christian', 'Christoffer',
|
||||
'Christopher', 'Claes', 'Clas', 'Claude', 'Claudio', 'Claus', 'Clemens', 'Clement', 'Cliff', 'Clive', 'Colin',
|
||||
'Cong', 'Conrad', 'Constantin', 'Cornelis', 'Cornelius', 'Craig', 'Cristian', 'Cristoffer', 'Curt', 'Cyril',
|
||||
'Czeslaw', 'Dag', 'Dagfinn', 'Dagmøy', 'Damian', 'Damir', 'Dan', 'Dani', 'Danial', 'Daniel', 'Danish',
|
||||
'Dankert', 'Danny', 'Dario', 'Dariusz', 'Darko', 'Darren', 'Dat', 'David', 'Davy', 'Dean', 'Dejan', 'Denis',
|
||||
'Dennis', 'Derek', 'Derrick', 'Detlef', 'Diako', 'Dick', 'Didrik', 'Diego', 'Dieter', 'Dietmar', 'Dilan',
|
||||
'Dimitrios', 'Dines', 'Dino', 'Dirk', 'Ditlev', 'Ditmar', 'Dmitri', 'Dmitry', 'Dominic', 'Dominik', 'Don',
|
||||
'Donald', 'Douglas', 'Dragan', 'Dung', 'Dusan', 'Duy', 'Dylan', 'Dyre', 'Earl', 'Ebbe', 'Edd', 'Eddie', 'Eddy',
|
||||
'Edgar', 'Edgard', 'Edin', 'Edmond', 'Edmund', 'Edvard', 'Edvin', 'Edward', 'Edwin', 'Ege', 'Egil', 'Egon',
|
||||
'Egzon', 'Ehsan', 'Eigil', 'Eilef', 'Eilert', 'Eilev', 'Eilif', 'Eiliv', 'Einar', 'Eindride', 'Einvald',
|
||||
'Eirik', 'Eivind', 'Ekrem', 'Eldar', 'Eli', 'Elias', 'Elif', 'Ellef', 'Elleif', 'Elling', 'Elliot', 'Elmar',
|
||||
'Elmer', 'Elnar', 'Elton', 'Elvin', 'Elvis', 'Emanuel', 'Embret', 'Embrik', 'Emil', 'Emir', 'Emmanuel', 'Emre',
|
||||
'Emrik', 'Endre', 'Ener', 'Enes', 'Enevold', 'Engebret', 'Engel', 'Enis', 'Enok', 'Enrico', 'Enrique', 'Enver',
|
||||
'Erik', 'Erland', 'Erlend', 'Erling', 'Ernst', 'Ervin', 'Erwin', 'Esben', 'Eskil', 'Eskild', 'Espen', 'Esten',
|
||||
'Eugen', 'Evald', 'Even', 'Evert', 'Eyolf', 'Eystein', 'Eyvind', 'Fabian', 'Fahad', 'Faisal', 'Falk', 'Farah',
|
||||
'Farhad', 'Farhan', 'Farid', 'Fartein', 'Faruk', 'Farzan', 'Faste', 'Fastolv', 'Felix', 'Feliz', 'Ferdinand',
|
||||
'Filip', 'Finn', 'Finnbjørn', 'Finngard', 'Finngeir', 'Finnvard', 'Flamur', 'Flemming', 'Florian', 'Folke',
|
||||
'Francis', 'Frank', 'Frans', 'Frants', 'Frantz', 'Fred', 'Freddie', 'Freddy', 'Frede', 'Frederick', 'Frederik',
|
||||
'Fredrick', 'Fredrik', 'Fridleiv', 'Fridtjof', 'Frikk', 'Fritjof', 'Fritjov', 'Frits', 'Fritz', 'Frode',
|
||||
'Frøystein', 'Fuad', 'Fuat', 'Gabriel', 'Gard', 'Gardar', 'Gary', 'Gaute', 'Geir', 'Geirmund', 'Geirr',
|
||||
'Geirstein', 'Geirulv', 'Geoffrey', 'Georg', 'Gerald', 'Gerard', 'Gerd', 'Gerhard', 'Gerrit', 'Gerry', 'Gert',
|
||||
'Gholam', 'Ghulam', 'Gilbert', 'Gintaras', 'Gisle', 'Gjermund', 'Gjert', 'Gjøran', 'Gladys', 'Glen', 'Glenn',
|
||||
'Godtfred', 'Goran', 'Gordon', 'Gorm', 'Grant', 'Gregard', 'Greger', 'Gregor', 'Gregorius', 'Gregory', 'Grim',
|
||||
'Grimar', 'Grzegorz', 'Gudbrand', 'Gudkjell', 'Gudleiv', 'Gudmund', 'Gudvin', 'Gulbrand', 'Gullik', 'Gunder',
|
||||
'Gunleik', 'Gunnar', 'Gunne', 'Gunnerius', 'Gunnleif', 'Gunnleiv', 'Gunnstein', 'Gunnvald', 'Gunstein',
|
||||
'Gunvald', 'Gustav', 'Guttorm', 'Guy', 'Gynter', 'Gøran', 'Gösta', 'Hadi', 'Hagbart', 'Hai', 'Hakan', 'Hakon',
|
||||
'Haldor', 'Halfdan', 'Halfrid', 'Halgeir', 'Halil', 'Halldor', 'Hallgeir', 'Hallstein', 'Hallvard', 'Halvard',
|
||||
'Halvdan', 'Halvor', 'Hamid', 'Hamza', 'Hanad', 'Hans', 'Harald', 'Haroon', 'Harry', 'Hartvig', 'Hasan',
|
||||
'Hassan', 'Hasse', 'Hauk', 'Hector', 'Heike', 'Hein', 'Heine', 'Helge', 'Heljar', 'Helmer', 'Heming', 'Henki',
|
||||
'Henning', 'Henri', 'Henrik', 'Henry', 'Herbert', 'Herbjørn', 'Herleif', 'Herman', 'Hermann', 'Hermod',
|
||||
'Hermund', 'Herstein', 'Hieu', 'Hilbert', 'Hildegard', 'Hilmar', 'Hjalmar', 'Hoang', 'Hogne', 'Holger',
|
||||
'Hossein', 'Houssein', 'Hroar', 'Hubert', 'Hugo', 'Hung', 'Hussain', 'Hussein', 'Huu', 'Huy', 'Hågen', 'Håkon',
|
||||
'Haakon', 'Hårek', 'Håvald', 'Håvar', 'Håvard', 'Haavard', 'Ian', 'Iben', 'Ibrahim', 'Idar', 'Idris', 'Igor',
|
||||
'Ilir', 'Ilyas', 'Iman', 'Imbert', 'Immanuel', 'Imre', 'Ingar', 'Ingard', 'Inge', 'Ingebret', 'Ingebrigt',
|
||||
'Ingemar', 'Ingemund', 'Ingmar', 'Ingnar', 'Ingolf', 'Ingolv', 'Ingvald', 'Ingvar', 'Ingvard', 'Ingve',
|
||||
'Ioannis', 'Iqra', 'Irfan', 'Isa', 'Isach', 'Isak', 'Ismail', 'Ismet', 'Istvan', 'Ivan', 'Ivar', 'Iver', 'Jack',
|
||||
'Jacob', 'Jahn', 'Jakob', 'Jalal', 'Jamal', 'James', 'Jan', 'Jani', 'Jannik', 'Jarand', 'Jardar', 'Jarl',
|
||||
'Jarle', 'Jason', 'Jasper', 'Jean', 'Jeffrey', 'Jens', 'Jeppe', 'Jeremias', 'Jermund', 'Jerry', 'Jerzy',
|
||||
'Jesper', 'Jesus', 'Jetmund', 'Jim', 'Jimmy', 'Jiri', 'Jo', 'Joachim', 'Joakim', 'Joar', 'Joe', 'Joel',
|
||||
'Jogeir', 'Johan', 'Johannes', 'John', 'Johnny', 'Jokum', 'Jomar', 'Jon', 'Jonas', 'Jonatan', 'Jonathan',
|
||||
'Jone', 'Jonny', 'Joralf', 'Jorge', 'Jorulf', 'Josef', 'Joshua', 'Jostein', 'Josva', 'Juan', 'Juel', 'Jul',
|
||||
'Julian', 'Julius', 'Just', 'Jürgen', 'Jøran', 'Jørg', 'Jørgen', 'Jørn', 'Jørund', 'Kadir', 'Kai', 'Kalle',
|
||||
'Kamal', 'Kamran', 'Karel', 'Karelius', 'Karim', 'Karl', 'Karlo', 'Karstein', 'Karsten', 'Kasim', 'Kaspar',
|
||||
'Kasper', 'Kato', 'Kay', 'Kazimierz', 'Keith', 'Kemal', 'Ken', 'Kennet', 'Kenneth', 'Kent', 'Ketil', 'Kevin',
|
||||
'Khalid', 'Khalil', 'Kian', 'Kim', 'Kimberly', 'Kittil', 'Kjartan', 'Kjell', 'Kjerand', 'Kjetil', 'Kjølv',
|
||||
'Klas', 'Klaus', 'Klemet', 'Kleng', 'Knut', 'Kolbein', 'Kolbjørn', 'Kolfinn', 'Konrad', 'Konstantin',
|
||||
'Kornelius', 'Kris', 'Kristen', 'Krister', 'Kristian', 'Kristofer', 'Kristoffer', 'Ksenia', 'Kurt', 'Kyrre',
|
||||
'Kåre', 'Lage', 'Lambert', 'Lars', 'Lasse', 'Laurent', 'Laurentius', 'Lauri', 'Laurits', 'Lauritz', 'Lavrans',
|
||||
'Leander', 'Lech', 'Leidulf', 'Leidulv', 'Leif', 'Leik', 'Leiv', 'Lennart', 'Leo', 'Leon', 'Leonard',
|
||||
'Leonhard', 'Leopold', 'Levi', 'Levord', 'Lewis', 'Liam', 'Liban', 'Lidvar', 'Linus', 'Livar', 'Lloyd',
|
||||
'Lodvar', 'Lodve', 'Loke', 'Lorents', 'Lorentz', 'Lothar', 'Louis', 'Lucas', 'Ludolf', 'Ludvig', 'Ludvik',
|
||||
'Lukas', 'Lyder', 'Maciej', 'Mads', 'Magnar', 'Magne', 'Magnus', 'Mahad', 'Mahamed', 'Majid', 'Malcolm',
|
||||
'Malfred', 'Malte', 'Malthe', 'Malvin', 'Manfred', 'Manuel', 'Marc', 'Marcel', 'Marco', 'Marcus', 'Marenius',
|
||||
'Margido', 'Marius', 'Mark', 'Markus', 'Martin', 'Martinius', 'Martinus', 'Marvin', 'Mathias', 'Matias',
|
||||
'Mats', 'Matteus', 'Mattias', 'Mattis', 'Maurice', 'Maurits', 'Mauritz', 'Max', 'Maximilian', 'Mehmet',
|
||||
'Melkior', 'Melvin', 'Michael', 'Michel', 'Mikael', 'Mikkel', 'Mikkjel', 'Milan', 'Milo', 'Mindor', 'Minh',
|
||||
'Miroslaw', 'Mirsad', 'Mirza', 'Moa', 'Modolv', 'Modulf', 'Mogens', 'Mohammad', 'Mohamoud', 'Mons', 'Morgan',
|
||||
'Morits', 'Moritz', 'Morris', 'Morten', 'Mostafa', 'Muhamed', 'Muhammad', 'Muhammed', 'Murat', 'Mustafa',
|
||||
'Narve', 'Nasir', 'Nathaniel', 'Neil', 'Neri', 'Ngoc', 'Nicholas', 'Niclas', 'Nicolai', 'Nicolas', 'Niels',
|
||||
'Nikolai', 'Nikolas', 'Nikolaus', 'Nils', 'Njål', 'Noa', 'Noah', 'Noman', 'Noralf', 'Norbert', 'Nordahl',
|
||||
'Norma', 'Norman', 'Normann', 'Norodd', 'Norvald', 'Notto', 'Nup', 'Odd', 'Oddbjørn', 'Oddgeir', 'Oddleif',
|
||||
'Oddmund', 'Oddvar', 'Oddvin', 'Odin', 'Ola', 'Olaf', 'Olai', 'Olav', 'Ole', 'Oleg', 'Oliver', 'Oluf', 'Olve',
|
||||
'Omar', 'Ommund', 'Oscar', 'Oskar', 'Osman', 'Osmund', 'Osvald', 'Ottar', 'Otto', 'Ove', 'Pablo', 'Palle',
|
||||
'Palmer', 'Patrick', 'Patrik', 'Paul', 'Paulus', 'Peder', 'Pelle', 'Per', 'Perry', 'Peter', 'Petrus', 'Petter',
|
||||
'Philip', 'Piotr', 'Poul', 'Povel', 'Preben', 'Paal', 'Pål', 'Quoc', 'Rachid', 'Radoslaw', 'Rafael', 'Ragnar',
|
||||
'Ragnvald', 'Raimond', 'Rainer', 'Ralf', 'Ralph', 'Randolf', 'Randulf', 'Rashid', 'Rasmus', 'Ravn', 'Raymond',
|
||||
'Rayner', 'Reidar', 'Reidulf', 'Reidulv', 'Reier', 'Reimar', 'Rein', 'Reinert', 'Reinhard', 'Reinhold',
|
||||
'Reiulf', 'Remi', 'Remy', 'René', 'Reza', 'Richard', 'Rikard', 'Rino', 'Roald', 'Roar', 'Robert', 'Robin',
|
||||
'Rodney', 'Roger', 'Roland', 'Rolf', 'Rolv', 'Roman', 'Romund', 'Ronald', 'Ronnie', 'Ronny', 'Roy', 'Ruben',
|
||||
'Rudi', 'Rudolf', 'Runar', 'Rune', 'Ryan', 'Rådmund', 'Sabah', 'Said', 'Sainab', 'Sakarias', 'Salah', 'Salam',
|
||||
'Salmund', 'Salomon', 'Salve', 'Sam', 'Samir', 'Samson', 'Samuel', 'Sander', 'Scott', 'Sean', 'Sebastian',
|
||||
'Sebjørn', 'Selmar', 'Selmer', 'Sergio', 'Serkan', 'Seveld', 'Severin', 'Sevrin', 'Shahid', 'Sigbjørn',
|
||||
'Sigfred', 'Sigmund', 'Sigurd', 'Sigvald', 'Sigvard', 'Sigvart', 'Sigve', 'Silias', 'Simen', 'Simon', 'Sindre',
|
||||
'Sivert', 'Sjur', 'Skage', 'Skjalg', 'Skjold', 'Skule', 'Slawomir', 'Snorre', 'Sofus', 'Sondre', 'Stanislaw',
|
||||
'Stanley', 'Stefan', 'Steffen', 'Stein', 'Steinar', 'Steinbjørn', 'Steingrim', 'Steinkjell', 'Steinulv', 'Sten',
|
||||
'Stephan', 'Steve', 'Steven', 'Stian', 'Stig', 'Storm', 'Sture', 'Sturla', 'Sturle', 'Styrk', 'Stål', 'Ståle',
|
||||
'Sune', 'Svale', 'Svein', 'Sveinar', 'Sveinulf', 'Sveinung', 'Sven', 'Svend', 'Sverre', 'Syed', 'Sylfest',
|
||||
'Sylvester', 'Synne', 'Syver', 'Syvert', 'Sæbjørn', 'Sølve', 'Søren', 'Saad', 'Såmund', 'Tadeusz', 'Tage',
|
||||
'Tahir', 'Tallak', 'Talleiv', 'Tan', 'Tarald', 'Tariq', 'Tarje', 'Tarjei', 'Ted', 'Tedd', 'Teddy', 'Teis',
|
||||
'Tellef', 'Tengel', 'Teo', 'Teodor', 'Terje', 'Terjei', 'Terkel', 'Thai', 'Thanh', 'Theis', 'Theo', 'Theodor',
|
||||
'Thien', 'Thom', 'Thomas', 'Thor', 'Thoralf', 'Thorbjørn', 'Thord', 'Thore', 'Thorkild', 'Thorleif', 'Thormod',
|
||||
'Thorolf', 'Thorstein', 'Thorvald', 'Tidemann', 'Tim', 'Timothy', 'Tinius', 'Tinus', 'Tjerand', 'Tobben',
|
||||
'Tobias', 'Toivo', 'Tollak', 'Tollef', 'Tolleif', 'Tolleiv', 'Tom', 'Tomas', 'Tommy', 'Tony', 'Tor', 'Toralf',
|
||||
'Torben', 'Torbjørn', 'Tord', 'Tore', 'Torfinn', 'Torgard', 'Torgeir', 'Torger', 'Torgil', 'Torgils', 'Torgny',
|
||||
'Torgrim', 'Torje', 'Torjus', 'Torkel', 'Torkil', 'Torkild', 'Torkjel', 'Torleif', 'Torleik', 'Tormod',
|
||||
'Tormund', 'Torodd', 'Torolf', 'Torolv', 'Torry', 'Torstein', 'Torsten', 'Torvald', 'Tov', 'Trang', 'Tristan',
|
||||
'Tron', 'Trond', 'Troy', 'Truls', 'Trygg', 'Trygve', 'Trym', 'Tuan', 'Ture', 'Tønnes', 'Tørres', 'Ulf', 'Ulrik',
|
||||
'Ulv', 'Ulvar', 'Ulvgeir', 'Umar', 'Une', 'Uno', 'Usman', 'Vagn', 'Valborg', 'Valdemar', 'Valentin', 'Valter',
|
||||
'Vebjørn', 'Vegar', 'Vegard', 'Vegeir', 'Vemund', 'Verner', 'Vetle', 'Victor', 'Vidar', 'Vidkunn', 'Viet',
|
||||
'Vigbjørn', 'Viggo', 'Vigleik', 'Vigulv', 'Viking', 'Viktor', 'Vilfred', 'Vilgot', 'Vilhelm', 'Viljar',
|
||||
'Villads', 'Villum', 'Villy', 'Vincent', 'Vinjar', 'Vladimir', 'Vladislav', 'Vrål', 'Waldemar', 'Waleed',
|
||||
'Walid', 'Walter', 'Wayne', 'Werner', 'Wictor', 'Widar', 'Wieslaw', 'Wiggo', 'Wiktor', 'Wilfred', 'Wilhelm',
|
||||
'William', 'Willy', 'Wilmar', 'Wojciech', 'Wolfgang', 'Wollert', 'Yasin', 'Yasir', 'Yngvar', 'Yngve', 'Yonas',
|
||||
'Younes', 'Yousef', 'Yousuf', 'Yrjan', 'Zahid', 'Zakaria', 'Zbigniew', 'Zdzislaw', 'Zoran', 'Zygmunt',
|
||||
'Øistein', 'Øivind', 'Ørjan', 'Ørjar', 'Ørn', 'Ørnulf', 'Ørnulv', 'Ørvar', 'Østen', 'Øyolv', 'Øystein',
|
||||
'Øyvind', 'Ådne', 'Aage', 'Åge', 'Aake', 'Åke', 'Åmund', 'Åne', 'Ånen', 'Ånon', 'Ånund', 'Aaron', 'Åskjell',
|
||||
'Åsleif', 'Åsleik', 'Åsleiv', 'Åsmund', 'Aasmund', 'Åsulv', 'Åsvald', 'Åvar',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Norwegian common last names (200 first from the link)
|
||||
*
|
||||
* @see http://www.ssb.no/befolkning/statistikker/navn/aar/2015-01-27?fane=tabell&sort=nummer&tabell=216066
|
||||
*/
|
||||
protected static $lastName = [
|
||||
'Aas', 'Aase', 'Aasen', 'Abrahamsen', 'Ahmed', 'Ali', 'Amundsen', 'Andersen', 'Andersson', 'Andreassen',
|
||||
'Andresen', 'Antonsen', 'Arnesen', 'Aune', 'Bakke', 'Bakken', 'Berg', 'Berge', 'Berger', 'Berntsen',
|
||||
'Birkeland', 'Bjerke', 'Bjørnstad', 'Borge', 'Borgen', 'Breivik', 'Brekke', 'Bråten', 'Bråthen', 'Bye', 'Bø',
|
||||
'Bøe', 'Carlsen', 'Christensen', 'Christiansen', 'Dahl', 'Dahle', 'Dale', 'Dalen', 'Danielsen', 'Edvardsen',
|
||||
'Egeland', 'Eide', 'Eikeland', 'Eilertsen', 'Eliassen', 'Ellingsen', 'Engebretsen', 'Engen', 'Enger', 'Eriksen',
|
||||
'Evensen', 'Fjeld', 'Foss', 'Fosse', 'Fossum', 'Fredriksen', 'Gabrielsen', 'Gjerde', 'Gulbrandsen', 'Gundersen',
|
||||
'Gustavsen', 'Haaland', 'Haga', 'Hagen', 'Halvorsen', 'Hammer', 'Hamre', 'Hansen', 'Hanssen', 'Hassan', 'Haug',
|
||||
'Hauge', 'Haugen', 'Haugland', 'Helgesen', 'Helland', 'Helle', 'Henriksen', 'Hermansen', 'Hoel', 'Hoff',
|
||||
'Holen', 'Holm', 'Holmen', 'Hovland', 'Håland', 'Ingebrigtsen', 'Isaksen', 'Iversen', 'Jacobsen', 'Jakobsen',
|
||||
'Jansen', 'Jensen', 'Jenssen', 'Johannesen', 'Johannessen', 'Johansen', 'Johansson', 'Johnsen', 'Jonassen',
|
||||
'Jørgensen', 'Karlsen', 'Khan', 'Knudsen', 'Knutsen', 'Kolstad', 'Kristensen', 'Kristiansen', 'Kristoffersen',
|
||||
'Kvam', 'Kvamme', 'Langeland', 'Larsen', 'Lie', 'Lien', 'Lorentzen', 'Ludvigsen', 'Lund', 'Lunde', 'Løken',
|
||||
'Madsen', 'Magnussen', 'Martinsen', 'Mathisen', 'Mikalsen', 'Mikkelsen', 'Moe', 'Moen', 'Mohamed', 'Monsen',
|
||||
'Mortensen', 'Myhre', 'Myklebust', 'Møller', 'Nguyen', 'Nielsen', 'Nikolaisen', 'Nilsen', 'Nilssen', 'Nordby',
|
||||
'Nygaard', 'Nygård', 'Næss', 'Olsen', 'Ottesen', 'Paulsen', 'Pedersen', 'Petersen', 'Pettersen', 'Rasmussen',
|
||||
'Ruud', 'Rønning', 'Rønningen', 'Samuelsen', 'Sand', 'Sandberg', 'Sande', 'Sandnes', 'Sandvik', 'Simonsen',
|
||||
'Sivertsen', 'Sletten', 'Solbakken', 'Solberg', 'Solheim', 'Solli', 'Solvang', 'Steen', 'Stene', 'Stokke',
|
||||
'Strand', 'Strøm', 'Sunde', 'Sveen', 'Svendsen', 'Syversen', 'Sæther', 'Sætre', 'Sørensen', 'Sørlie', 'Tangen',
|
||||
'Teigen', 'Thomassen', 'Thoresen', 'Thorsen', 'Tollefsen', 'Torgersen', 'Torp', 'Tran', 'Tveit', 'Vik', 'Viken',
|
||||
'Wang', 'Wiik', 'Wilhelmsen', 'Wold', 'Ødegaard', 'Ødegård', 'Øien',
|
||||
];
|
||||
|
||||
/**
|
||||
* National Personal Identity number (personnummer)
|
||||
*
|
||||
* @see https://no.wikipedia.org/wiki/Personnummer
|
||||
*
|
||||
* @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
|
||||
*
|
||||
* @return string on format DDMMYY#####
|
||||
*/
|
||||
public function personalIdentityNumber(?\DateTime $birthdate = null, $gender = null)
|
||||
{
|
||||
if (!$birthdate) {
|
||||
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
|
||||
}
|
||||
$datePart = $birthdate->format('dmy');
|
||||
|
||||
/**
|
||||
* @todo These number should be random based on birth year
|
||||
*
|
||||
* @see http://no.wikipedia.org/wiki/F%C3%B8dselsnummer
|
||||
*/
|
||||
$randomDigits = (string) static::numerify('##');
|
||||
|
||||
switch ($gender) {
|
||||
case static::GENDER_MALE:
|
||||
$genderDigit = static::randomElement([1, 3, 5, 7, 9]);
|
||||
|
||||
break;
|
||||
|
||||
case static::GENDER_FEMALE:
|
||||
$genderDigit = static::randomElement([0, 2, 4, 6, 8]);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
$genderDigit = (string) static::numerify('#');
|
||||
}
|
||||
|
||||
$digits = $datePart . $randomDigits . $genderDigit;
|
||||
|
||||
/**
|
||||
* @todo Calculate modulo 11 of $digits
|
||||
*
|
||||
* @see http://no.wikipedia.org/wiki/F%C3%B8dselsnummer
|
||||
*/
|
||||
$checksum = (string) static::numerify('##');
|
||||
|
||||
return $digits . $checksum;
|
||||
}
|
||||
}
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace Faker\Provider\sv_SE;
|
||||
|
||||
use Faker\Calculator\Luhn;
|
||||
|
||||
class Person extends \Faker\Provider\Person
|
||||
{
|
||||
protected static $formats = [
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}} {{lastName}}',
|
||||
'{{firstName}} {{lastName}}-{{lastName}}',
|
||||
'{{firstName}} {{firstName}} {{lastName}}-{{lastName}}',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Swedish female first names
|
||||
*
|
||||
* @see http://spraakbanken.gu.se/statistik/lbfnamnalf.phtml
|
||||
*/
|
||||
protected static $firstNameFemale = [
|
||||
|
||||
'Ada', 'Adela', 'Adele', 'Adéle', 'Adelia', 'Adina', 'Adolfina', 'Agda', 'Agnes', 'Agneta', 'Aina', 'Aino', 'Albertina', 'Alexandra', 'Alfhild', 'Alfrida', 'Alice', 'Alida', 'Ally', 'Alma', 'Alva', 'Amalia', 'Amanda', 'Andrea', 'Anette', 'Angela', 'Anita', 'Anja', 'Ann', 'Anna', 'Anna-Carin', 'Anna-Greta', 'Anna-Karin', 'Anna-Lena', 'Anna-Lisa', 'Anna-Maria', 'Anna-Stina', 'Anne', 'Anneli', 'Annelie', 'Annette', 'Anne-Charlotte', 'Anne-Marie', 'Anni', 'Annica', 'Annie', 'Annika', 'Annikki', 'Anny', 'Ann-Britt', 'Ann-Charlott', 'Ann-Charlotte', 'Ann-Christin', 'Ann-Christine', 'Ann-Katrin', 'Ann-Kristin', 'Ann-Louise', 'Ann-Margret', 'Ann-Mari', 'Ann-Marie', 'Ann-Sofi', 'Ann-Sofie', 'Antonia', 'Arvida', 'Asta', 'Astrid', 'Augusta', 'Aurora', 'Axelia', 'Axelina',
|
||||
'Barbro', 'Beata', 'Beatrice', 'Beda', 'Berit', 'Bernhardina', 'Berta', 'Betty', 'Birgit', 'Birgitta', 'Blenda', 'Bodil', 'Boel', 'Borghild', 'Brita', 'Britt', 'Britta', 'Britt-Inger', 'Britt-Louise', 'Britt-Mari', 'Britt-Marie',
|
||||
'Camilla', 'Carin', 'Carina', 'Carita', 'Carola', 'Carolina', 'Caroline', 'Catarina', 'Catharina', 'Cathrine', 'Catrin', 'Cecilia', 'Charlott', 'Charlotta', 'Charlotte', 'Christel', 'Christin', 'Christina', 'Christine', 'Clara', 'Clary', 'Constance', 'Cristina',
|
||||
'Daga', 'Dagmar', 'Dagny', 'Daisy', 'Davida', 'Desideria', 'Desirée', 'Diana', 'Disa', 'Dora', 'Doris', 'Dorotea',
|
||||
'Ebba', 'Edit', 'Edith', 'Edla', 'Eira', 'Eivor', 'Ejvor', 'Elaine', 'Eleonor', 'Eleonora', 'Elfrida', 'Elida', 'Elin', 'Elina', 'Elinor', 'Elisabet', 'Elisabeth', 'Elise', 'Ella', 'Ellen', 'Ellinor', 'Elly', 'Elma', 'Elna', 'Elsa', 'Else', 'Else-Marie', 'Elsi', 'Elsie', 'Elsy', 'Elvi', 'Elvira', 'Elvy', 'Emelia', 'Emerentia', 'Emilia', 'Emma', 'Emmy', 'Erika', 'Erna', 'Ester', 'Estrid', 'Ethel', 'Eufemia', 'Eugenia', 'Eva', 'Eva-Britt', 'Eva-Lena', 'Eva-Lotta', 'Eva-Marie', 'Evelina', 'Evelyn', 'Evy', 'Ewa',
|
||||
'Fanny', 'Florence', 'Fredrika', 'Frida', 'Frideborg',
|
||||
'Gabriella', 'Gerd', 'Gerda', 'Gertie', 'Gertrud', 'Gisela', 'Greta', 'Gudrun', 'Gull', 'Gullan', 'Gullbritt', 'Gulli', 'Gullvi', 'Gully', 'Gull-Britt', 'Gun', 'Gunborg', 'Gunbritt', 'Gunda', 'Gunhild', 'Gunilla', 'Gunn', 'Gunnel', 'Gunni', 'Gunvor', 'Gun-Britt', 'Gurli', 'Gustava', 'Gärd', 'Görel', 'Göta',
|
||||
'Hanna', 'Harriet', 'Hedvig', 'Helen', 'Helén', 'Helena', 'Helene', 'Heléne', 'Helfrid', 'Helga', 'Helmi', 'Helny', 'Henny', 'Henrietta', 'Henriette', 'Herta', 'Hilda', 'Hildegard', 'Hildur', 'Hillevi', 'Hilma', 'Hjördis', 'Hulda',
|
||||
'Ida', 'Ines', 'Inez', 'Inga', 'Ingalill', 'Inga-Britt', 'Inga-Lena', 'Inga-Lill', 'Inga-Lisa', 'Inga-Maj', 'Ingbritt', 'Ingeborg', 'Ingegerd', 'Ingegärd', 'Ingela', 'Inger', 'Ingrid', 'Ingvor', 'Ing-Britt', 'Ing-Mari', 'Ing-Marie', 'Iréne', 'Irene', 'Iris', 'Irma', 'Isabella',
|
||||
'Jane', 'Janet', 'Jeanette', 'Jenny', 'Jessica', 'Johanna', 'Josefina', 'Judit', 'Judith', 'Julia', 'Juliana', 'Justina',
|
||||
'Kaarina', 'Kajsa', 'Karin', 'Karina', 'Karla', 'Karola', 'Karolina', 'Katarina', 'Katharina', 'Katrin', 'Katrina', 'Kersti', 'Kerstin', 'Klara', 'Konstantia', 'Kornelia', 'Kristin', 'Kristina', 'Kristine',
|
||||
'Laila', 'Laura', 'Leila', 'Lena', 'Leontina', 'Liisa', 'Lilian', 'Lill', 'Lillemor', 'Lillian', 'Lilly', 'Linda', 'Linnéa', 'Linnea', 'Lisa', 'Lisbet', 'Lisbeth', 'Liselott', 'Liselotte', 'Lise-Lott', 'Lise-Lotte', 'Lizzie', 'Lola', 'Louise', 'Lovisa', 'Lucia', 'Lydia',
|
||||
'Madeleine', 'Madelene', 'Magda', 'Magdalena', 'Magnhild', 'Maj', 'Maja', 'Majbritt', 'Majken', 'Majlis', 'Majvor', 'Maj-Britt', 'Maj-Lis', 'Malin', 'Malvina', 'Margaret', 'Margareta', 'Margareth', 'Margaretha', 'Margit', 'Margita', 'Margot', 'Margret', 'Margreta', 'Mari', 'Maria', 'Mariana', 'Mariann', 'Marianne', 'Marie', 'Mariette', 'Marie-Louise', 'Marika', 'Marina', 'Marion', 'Marit', 'Marita', 'Mari-Ann', 'Marja', 'Marjatta', 'Marlene', 'Marta', 'Martha', 'Martina', 'Mary', 'Mathilda', 'Matilda', 'Maud', 'May', 'Mia', 'Mildred', 'Mimmi', 'Mirjam', 'Mona', 'Monica', 'Monika', 'Märit', 'Märta', 'Märtha',
|
||||
'Naemi', 'Naima', 'Nancy', 'Nanna', 'Nanny', 'Natalia', 'Nelly', 'Nina', 'Nora',
|
||||
'Olga', 'Olivia', 'Ottilia',
|
||||
'Paula', 'Paulina', 'Pauline', 'Pernilla', 'Petra', 'Petronella', 'Pia',
|
||||
'Ragna', 'Ragnhild', 'Rakel', 'Rebecka', 'Regina', 'Renée', 'Rigmor', 'Rita', 'Rosa', 'Rose', 'Rose-Marie', 'Rosita', 'Ros-Mari', 'Ros-Marie', 'Runa', 'Rut', 'Ruth',
|
||||
'Sabina', 'Saga', 'Sally', 'Sara', 'Selma', 'Serafia', 'Sibylla', 'Sigbritt', 'Signe', 'Signhild', 'Sigrid', 'Siri', 'Siv', 'Sofi', 'Sofia', 'Sofie', 'Solbritt', 'Solveig', 'Solvig', 'Sonja', 'Stina', 'Susann', 'Susanna', 'Susanne', 'Suzanne', 'Svea', 'Sylvia', 'Synnöve', 'Syster',
|
||||
'Tea', 'Tekla', 'Terese', 'Teresia', 'Therése', 'Therese', 'Theresia', 'Thyra', 'Tina', 'Tora', 'Torborg', 'Tove', 'Tyra',
|
||||
'Ulla', 'Ulla-Britt', 'Ulla-Britta', 'Ulrica', 'Ulrika', 'Ursula',
|
||||
'Valborg', 'Vanja', 'Vega', 'Vendela', 'Vendla', 'Vera', 'Veronica', 'Veronika', 'Victoria', 'Viktoria', 'Vilhelmina', 'Vilma', 'Viola', 'Virginia', 'Vivan', 'Viveca', 'Viveka', 'Vivi', 'Vivian', 'Viviann', 'Vivianne', 'Vivi-Ann', 'Vivi-Anne',
|
||||
'Wilhelmina',
|
||||
'Ylva', 'Yvonne',
|
||||
'Åsa', 'Åse',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Swedish male first names
|
||||
*
|
||||
* @see http://spraakbanken.gu.se/statistik/lbfnamnalf.phtml
|
||||
*/
|
||||
protected static $firstNameMale = [
|
||||
'Abraham', 'Adam', 'Adrian', 'Agaton', 'Agne', 'Albert', 'Albin', 'Aldor', 'Alex', 'Alexander', 'Alexis', 'Alexius', 'Alf', 'Alfons', 'Alfred', 'Algot', 'Allan', 'Alrik', 'Alvar', 'Alve', 'Amandus', 'Anders', 'André', 'Andreas', 'Anselm', 'Anshelm', 'Antero', 'Anton', 'Antonius', 'Arne', 'Arnold', 'Aron', 'Arthur', 'Artur', 'Arvid', 'Assar', 'Astor', 'August', 'Augustin', 'Axel',
|
||||
'Bengt', 'Bengt-Göran', 'Bengt-Olof', 'Bengt-Åke', 'Benny', 'Berndt', 'Berne', 'Bernhard', 'Bernt', 'Bert', 'Berth', 'Berthold', 'Bertil', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bo', 'Boris', 'Bror', 'Bruno', 'Brynolf', 'Börje',
|
||||
'Carl', 'Carl-Axel', 'Carl-Erik', 'Carl-Gustaf', 'Carl-Gustav', 'Carl-Johan', 'Charles', 'Christer', 'Christian', 'Claes', 'Claes-Göran', 'Clarence', 'Clas', 'Conny', 'Crister', 'Curt',
|
||||
'Dag', 'Dan', 'Daniel', 'David', 'Dennis', 'Dick', 'Donald', 'Douglas',
|
||||
'Ebbe', 'Eddie', 'Eddy', 'Edgar', 'Edmund', 'Edvard', 'Edvin', 'Efraim', 'Egon', 'Eilert', 'Einar', 'Eje', 'Ejnar', 'Elias', 'Elis', 'Ellert', 'Elmer', 'Elof', 'Elon', 'Elov', 'Elving', 'Elvir', 'Emanuel', 'Emil', 'Enar', 'Engelbert', 'Engelbrekt', 'Enok', 'Erhard', 'Eric', 'Erik', 'Erland', 'Erling', 'Ernfrid', 'Ernst', 'Esbjörn', 'Eskil', 'Eugén', 'Eugen', 'Evald', 'Eve', 'Evert',
|
||||
'Fabian', 'Felix', 'Ferdinand', 'Filip', 'Fingal', 'Finn', 'Folke', 'Frank', 'Frans', 'Franz', 'Fred', 'Fredrik', 'Fridolf', 'Friedrich', 'Fritiof', 'Fritjof', 'Frits', 'Fritz',
|
||||
'Gabriel', 'Georg', 'George', 'Gerhard', 'Gert', 'Gideon', 'Gilbert', 'Gillis', 'Glenn', 'Gottfrid', 'Gotthard', 'Greger', 'Gudmund', 'Gunder', 'Gunnar', 'Gustaf', 'Gustav', 'Göran', 'Görgen', 'Gösta', 'Göte',
|
||||
'Hadar', 'Halvar', 'Halvard', 'Hans', 'Hans-Erik', 'Hans-Olof', 'Hans-Åke', 'Harald', 'Hardy', 'Harry', 'Hartvig', 'Hasse', 'Heinrich', 'Heinz', 'Helge', 'Helmer', 'Henning', 'Henric', 'Henrik', 'Henry', 'Herbert', 'Heribert', 'Herman', 'Hilbert', 'Hilding', 'Hilmer', 'Hjalmar', 'Holger', 'Holmfrid', 'Hubert', 'Hugo', 'Håkan',
|
||||
'Inge', 'Ingemar', 'Ingmar', 'Ingvald', 'Ingvar', 'Isak', 'Isidor', 'Ivan', 'Ivar',
|
||||
'Jack', 'Jacob', 'Jakob', 'James', 'Jan', 'Janne', 'Jan-Eric', 'Jan-Erik', 'Jan-Olof', 'Jan-Olov', 'Jan-Ove', 'Jan-Åke', 'Jarl', 'Jean', 'Jens', 'Jerker', 'Jerry', 'Jesper', 'Jim', 'Jimmy', 'Joachim', 'Joacim', 'Joakim', 'Joel', 'Johan', 'Johannes', 'John', 'Johnny', 'Johny', 'Jon', 'Jonas', 'Jonny', 'Josef', 'Juhani', 'Julius', 'Justus', 'Jöns', 'Jörgen',
|
||||
'Kai', 'Kaj', 'Kalevi', 'Karl', 'Karl-Axel', 'Karl-Erik', 'Karl-Gunnar', 'Karl-Gustaf', 'Karl-Gustav', 'Karl-Johan', 'Kennert', 'Kennet', 'Kenneth', 'Kenny', 'Kent', 'Kenth', 'Kjell', 'Kjell-Åke', 'Klas', 'Knut', 'Konrad', 'Konstantin', 'Krister', 'Kristian', 'Kristoffer', 'Kurt', 'Kåre',
|
||||
'Lage', 'Lambert', 'Lars', 'Lars-Eric', 'Lars-Erik', 'Lars-Gunnar', 'Lars-Göran', 'Lars-Olof', 'Lars-Olov', 'Lars-Ove', 'Lars-Åke', 'Laurentius', 'Leander', 'Leif', 'Lennart', 'Leo', 'Leon', 'Leonard', 'Leopold', 'Levi', 'Levin', 'Linné', 'Linus', 'Lorentz', 'Louis', 'Ludvig',
|
||||
'Magni', 'Magnus', 'Malkolm', 'Malte', 'Manfred', 'Manne', 'Marcus', 'Markus', 'Martin', 'Mathias', 'Mats', 'Matti', 'Mattias', 'Matts', 'Maurits', 'Mauritz', 'Max', 'Melker', 'Micael', 'Michael', 'Mickael', 'Mikael', 'Morgan', 'Måns', 'Mårten',
|
||||
'Napoleon', 'Natanael', 'Nicklas', 'Niclas', 'Niklas', 'Nikolaus', 'Nils', 'Nils-Erik', 'Nore',
|
||||
'Odd', 'Ola', 'Olaus', 'Olav', 'Olavi', 'Ole', 'Oliver', 'Olle', 'Olof', 'Olov', 'Orvar', 'Oscar', 'Oskar', 'Ossian', 'Osvald', 'Otto', 'Ove', 'Owe',
|
||||
'Patric', 'Patrick', 'Patrik', 'Paul', 'Peder', 'Per', 'Percy', 'Per-Anders', 'Per-Arne', 'Per-Erik', 'Per-Ola', 'Per-Olof', 'Per-Olov', 'Per-Åke', 'Peter', 'Petrus', 'Petter', 'Pierre', 'Pontus', 'Pär',
|
||||
'Ragnar', 'Ragnvald', 'Ralf', 'Ralph', 'Raymond', 'Reidar', 'Reine', 'Reinhold', 'Reino', 'Richard', 'Rickard', 'Rikard', 'Robert', 'Roger', 'Roine', 'Roland', 'Rolf', 'Ronald', 'Ronnie', 'Ronny', 'Roy', 'Ruben', 'Rudolf', 'Runar', 'Rune', 'Runo', 'Rutger',
|
||||
'Salomon', 'Sam', 'Samuel', 'Sanfrid', 'Sebastian', 'Set', 'Seth', 'Seved', 'Severin', 'Sigfrid', 'Sigmund', 'Signar', 'Sigurd', 'Sigvard', 'Simon', 'Sivert', 'Sixten', 'Sonny', 'Staffan', 'Stanley', 'Stefan', 'Stellan', 'Sten', 'Stephan', 'Steve', 'Stig', 'Sture', 'Sune', 'Svante', 'Sven', 'Sven-Erik', 'Sven-Olof', 'Sven-Olov', 'Sven-Åke', 'Sverker', 'Sölve', 'Sören',
|
||||
'Tage', 'Ted', 'Teodor', 'Theodor', 'Thomas', 'Thor', 'Thorbjörn', 'Thord', 'Thore', 'Thorsten', 'Thorvald', 'Thure', 'Tobias', 'Toivo', 'Tom', 'Tomas', 'Tommy', 'Tonny', 'Tony', 'Tor', 'Torbjörn', 'Tord', 'Tore', 'Torgny', 'Torkel', 'Torsten', 'Torvald', 'Tryggve', 'Ture', 'Tyko',
|
||||
'Ulf', 'Ulrik', 'Uno', 'Urban',
|
||||
'Valdemar', 'Valentin', 'Valfrid', 'Vallentin', 'Valter', 'Veine', 'Verner', 'Victor', 'Vidar', 'Viggo', 'Viking', 'Viktor', 'Vilgot', 'Vilhelm', 'Villiam', 'Villy', 'Vincent', 'Vitalis',
|
||||
'Waldemar', 'Walter', 'Werner', 'Wilhelm', 'William', 'Willy',
|
||||
'Yngve',
|
||||
'Åke',
|
||||
'Örjan', 'Östen',
|
||||
];
|
||||
|
||||
/**
|
||||
* @var array Swedish common last names
|
||||
*
|
||||
* @see http://www.scb.se/sv_/Hitta-statistik/Statistik-efter-amne/Befolkning/Amnesovergripande-statistik/Namnstatistik/30898/2012A01x/Samtliga-folkbokforda--Efternamn-topplistor/Efternamn-topp-100/
|
||||
*/
|
||||
protected static $lastName = [
|
||||
|
||||
'Abrahamsson', 'Andersson', 'Andreasson', 'Arvidsson', 'Axelsson',
|
||||
'Bengtsson', 'Berg', 'Berggren', 'Berglund', 'Bergman', 'Bergqvist', 'Bergström', 'Björk', 'Björklund', 'Blom', 'Blomqvist',
|
||||
'Claesson',
|
||||
'Dahlberg', 'Danielsson',
|
||||
'Engström', 'Ek', 'Eklund', 'Ekström', 'Eliasson', 'Eriksson',
|
||||
'Falk', 'Forsberg', 'Fransson', 'Fredriksson',
|
||||
'Gunnarsson', 'Gustafsson',
|
||||
'Hansen', 'Hansson', 'Hedlund', 'Hellström', 'Henriksson', 'Hermansson', 'Holm', 'Holmberg', 'Holmgren', 'Holmqvist', 'Håkansson',
|
||||
'Isaksson', 'Ivarsson',
|
||||
'Jakobsson', 'Jansson', 'Johansson', 'Jonasson', 'Jonsson', 'Jönsson',
|
||||
'Karlsson',
|
||||
'Larsson', 'Lind', 'Lindberg', 'Lindgren', 'Lindholm', 'Lindqvist', 'Lindström', 'Lund', 'Lundberg', 'Lundgren', 'Lundin', 'Lundqvist', 'Lundström', 'Löfgren',
|
||||
'Magnusson', 'Martinsson', 'Mattsson', 'Månsson', 'Mårtensson',
|
||||
'Nilsson', 'Norberg', 'Nordin', 'Nordström', 'Nyberg', 'Nyström',
|
||||
'Olofsson', 'Olsson',
|
||||
'Persson', 'Pettersson', 'Pålsson',
|
||||
'Samuelsson', 'Sandberg', 'Sandström', 'Sjöberg', 'Sjögren', 'Ström', 'Strömberg', 'Sundberg', 'Sundqvist', 'Sundström', 'Svensson', 'Söderberg',
|
||||
'Viklund',
|
||||
'Wallin', 'Wikström',
|
||||
'Åberg', 'Åkesson', 'Åström',
|
||||
'Öberg',
|
||||
];
|
||||
|
||||
/**
|
||||
* National Personal Identity number (personnummer)
|
||||
*
|
||||
* @see http://en.wikipedia.org/wiki/Personal_identity_number_(Sweden)
|
||||
*
|
||||
* @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
|
||||
*
|
||||
* @return string on format XXXXXX-XXXX
|
||||
*/
|
||||
public function personalIdentityNumber(?\DateTime $birthdate = null, $gender = null)
|
||||
{
|
||||
if (!$birthdate) {
|
||||
$birthdate = \Faker\Provider\DateTime::dateTimeThisCentury();
|
||||
}
|
||||
$datePart = $birthdate->format('ymd');
|
||||
$randomDigits = $this->getBirthNumber($gender);
|
||||
|
||||
$checksum = Luhn::computeCheckDigit($datePart . $randomDigits);
|
||||
|
||||
return $datePart . '-' . $randomDigits . $checksum;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $gender Person::GENDER_MALE || Person::GENDER_FEMALE
|
||||
*
|
||||
* @return string of three digits
|
||||
*/
|
||||
protected function getBirthNumber($gender = null)
|
||||
{
|
||||
if ($gender && $gender === static::GENDER_MALE) {
|
||||
return (string) static::numerify('##') . static::randomElement([1, 3, 5, 7, 9]);
|
||||
}
|
||||
|
||||
$zeroCheck = static function ($callback) {
|
||||
do {
|
||||
$randomDigits = $callback();
|
||||
} while ($randomDigits === '000');
|
||||
|
||||
return $randomDigits;
|
||||
};
|
||||
|
||||
if ($gender && $gender === static::GENDER_FEMALE) {
|
||||
return $zeroCheck(static function () {
|
||||
return (string) static::numerify('##') . static::randomElement([0, 2, 4, 6, 8]);
|
||||
});
|
||||
}
|
||||
|
||||
return $zeroCheck(static function () {
|
||||
return (string) static::numerify('###');
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user