2402 changed files with 77702 additions and 27609 deletions
File diff suppressed because it is too large
@ -0,0 +1 @@ |
|||
../symfony/var-dumper/Resources/bin/var-dump-server |
File diff suppressed because it is too large
@ -1,5 +1,35 @@ |
|||
# Change Log |
|||
|
|||
## [2.2.0] - 2018-06-05 |
|||
### Added |
|||
- Added support for steps larger than field ranges (#6) |
|||
## Changed |
|||
- N/A |
|||
### Fixed |
|||
- Fixed validation for numbers with leading 0s (#12) |
|||
|
|||
## [2.1.0] - 2018-04-06 |
|||
### Added |
|||
- N/A |
|||
### Changed |
|||
- Upgraded to PHPUnit 6 (#2) |
|||
### Fixed |
|||
- Refactored timezones to deal with some inconsistent behavior (#3) |
|||
- Allow ranges and lists in same expression (#5) |
|||
- Fixed regression where literals were not converted to their numerical counterpart (#) |
|||
|
|||
## [2.0.0] - 2017-10-12 |
|||
### Added |
|||
- N/A |
|||
|
|||
### Changed |
|||
- Dropped support for PHP 5.x |
|||
- Dropped support for the YEAR field, as it was not part of the cron standard |
|||
|
|||
### Fixed |
|||
- Reworked validation for all the field types |
|||
- Stepping should now work for 1-indexed fields like Month (#153) |
|||
|
|||
## [1.2.0] - 2017-01-22 |
|||
### Added |
|||
- Added IDE, CodeSniffer, and StyleCI.IO support |
@ -1,4 +1,4 @@ |
|||
Copyright (c) 2011 Michael Dowling <mtdowling@gmail.com> and contributors |
|||
Copyright (c) 2011 Michael Dowling <mtdowling@gmail.com>, 2016 Chris Tankersley <chris@ctankersley.com>, and contributors |
|||
|
|||
Permission is hereby granted, free of charge, to any person obtaining a copy |
|||
of this software and associated documentation files (the "Software"), to deal |
@ -0,0 +1,35 @@ |
|||
{ |
|||
"name": "dragonmantank/cron-expression", |
|||
"type": "library", |
|||
"description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due", |
|||
"keywords": ["cron", "schedule"], |
|||
"license": "MIT", |
|||
"authors": [ |
|||
{ |
|||
"name": "Michael Dowling", |
|||
"email": "mtdowling@gmail.com", |
|||
"homepage": "https://github.com/mtdowling" |
|||
}, |
|||
{ |
|||
"name": "Chris Tankersley", |
|||
"email": "chris@ctankersley.com", |
|||
"homepage": "https://github.com/dragonmantank" |
|||
} |
|||
], |
|||
"require": { |
|||
"php": ">=7.0.0" |
|||
}, |
|||
"require-dev": { |
|||
"phpunit/phpunit": "~6.4" |
|||
}, |
|||
"autoload": { |
|||
"psr-4": { |
|||
"Cron\\": "src/Cron/" |
|||
} |
|||
}, |
|||
"autoload-dev": { |
|||
"psr-4": { |
|||
"Tests\\": "tests/Cron/" |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,278 @@ |
|||
<?php |
|||
|
|||
namespace Cron; |
|||
|
|||
/** |
|||
* Abstract CRON expression field |
|||
*/ |
|||
abstract class AbstractField implements FieldInterface |
|||
{ |
|||
/** |
|||
* Full range of values that are allowed for this field type |
|||
* @var array |
|||
*/ |
|||
protected $fullRange = []; |
|||
|
|||
/** |
|||
* Literal values we need to convert to integers |
|||
* @var array |
|||
*/ |
|||
protected $literals = []; |
|||
|
|||
/** |
|||
* Start value of the full range |
|||
* @var integer |
|||
*/ |
|||
protected $rangeStart; |
|||
|
|||
/** |
|||
* End value of the full range |
|||
* @var integer |
|||
*/ |
|||
protected $rangeEnd; |
|||
|
|||
|
|||
public function __construct() |
|||
{ |
|||
$this->fullRange = range($this->rangeStart, $this->rangeEnd); |
|||
} |
|||
|
|||
/** |
|||
* Check to see if a field is satisfied by a value |
|||
* |
|||
* @param string $dateValue Date value to check |
|||
* @param string $value Value to test |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isSatisfied($dateValue, $value) |
|||
{ |
|||
if ($this->isIncrementsOfRanges($value)) { |
|||
return $this->isInIncrementsOfRanges($dateValue, $value); |
|||
} elseif ($this->isRange($value)) { |
|||
return $this->isInRange($dateValue, $value); |
|||
} |
|||
|
|||
return $value == '*' || $dateValue == $value; |
|||
} |
|||
|
|||
/** |
|||
* Check if a value is a range |
|||
* |
|||
* @param string $value Value to test |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isRange($value) |
|||
{ |
|||
return strpos($value, '-') !== false; |
|||
} |
|||
|
|||
/** |
|||
* Check if a value is an increments of ranges |
|||
* |
|||
* @param string $value Value to test |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isIncrementsOfRanges($value) |
|||
{ |
|||
return strpos($value, '/') !== false; |
|||
} |
|||
|
|||
/** |
|||
* Test if a value is within a range |
|||
* |
|||
* @param string $dateValue Set date value |
|||
* @param string $value Value to test |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isInRange($dateValue, $value) |
|||
{ |
|||
$parts = array_map(function($value) { |
|||
$value = trim($value); |
|||
$value = $this->convertLiterals($value); |
|||
return $value; |
|||
}, |
|||
explode('-', $value, 2) |
|||
); |
|||
|
|||
|
|||
return $dateValue >= $parts[0] && $dateValue <= $parts[1]; |
|||
} |
|||
|
|||
/** |
|||
* Test if a value is within an increments of ranges (offset[-to]/step size) |
|||
* |
|||
* @param string $dateValue Set date value |
|||
* @param string $value Value to test |
|||
* |
|||
* @return bool |
|||
*/ |
|||
public function isInIncrementsOfRanges($dateValue, $value) |
|||
{ |
|||
$chunks = array_map('trim', explode('/', $value, 2)); |
|||
$range = $chunks[0]; |
|||
$step = isset($chunks[1]) ? $chunks[1] : 0; |
|||
|
|||
// No step or 0 steps aren't cool |
|||
if (is_null($step) || '0' === $step || 0 === $step) { |
|||
return false; |
|||
} |
|||
|
|||
// Expand the * to a full range |
|||
if ('*' == $range) { |
|||
$range = $this->rangeStart . '-' . $this->rangeEnd; |
|||
} |
|||
|
|||
// Generate the requested small range |
|||
$rangeChunks = explode('-', $range, 2); |
|||
$rangeStart = $rangeChunks[0]; |
|||
$rangeEnd = isset($rangeChunks[1]) ? $rangeChunks[1] : $rangeStart; |
|||
|
|||
if ($rangeStart < $this->rangeStart || $rangeStart > $this->rangeEnd || $rangeStart > $rangeEnd) { |
|||
throw new \OutOfRangeException('Invalid range start requested'); |
|||
} |
|||
|
|||
if ($rangeEnd < $this->rangeStart || $rangeEnd > $this->rangeEnd || $rangeEnd < $rangeStart) { |
|||
throw new \OutOfRangeException('Invalid range end requested'); |
|||
} |
|||
|
|||
// Steps larger than the range need to wrap around and be handled slightly differently than smaller steps |
|||
if ($step >= $this->rangeEnd) { |
|||
$thisRange = [$this->fullRange[$step % count($this->fullRange)]]; |
|||
} else { |
|||
$thisRange = range($rangeStart, $rangeEnd, $step); |
|||
} |
|||
|
|||
return in_array($dateValue, $thisRange); |
|||
} |
|||
|
|||
/** |
|||
* Returns a range of values for the given cron expression |
|||
* |
|||
* @param string $expression The expression to evaluate |
|||
* @param int $max Maximum offset for range |
|||
* |
|||
* @return array |
|||
*/ |
|||
public function getRangeForExpression($expression, $max) |
|||
{ |
|||
$values = array(); |
|||
$expression = $this->convertLiterals($expression); |
|||
|
|||
if (strpos($expression, ',') !== false) { |
|||
$ranges = explode(',', $expression); |
|||
$values = []; |
|||
foreach ($ranges as $range) { |
|||
$expanded = $this->getRangeForExpression($range, $this->rangeEnd); |
|||
$values = array_merge($values, $expanded); |
|||
} |
|||
return $values; |
|||
} |
|||
|
|||
if ($this->isRange($expression) || $this->isIncrementsOfRanges($expression)) { |
|||
if (!$this->isIncrementsOfRanges($expression)) { |
|||
list ($offset, $to) = explode('-', $expression); |
|||
$offset = $this->convertLiterals($offset); |
|||
$to = $this->convertLiterals($to); |
|||
$stepSize = 1; |
|||
} |
|||
else { |
|||
$range = array_map('trim', explode('/', $expression, 2)); |
|||
$stepSize = isset($range[1]) ? $range[1] : 0; |
|||
$range = $range[0]; |
|||
$range = explode('-', $range, 2); |
|||
$offset = $range[0]; |
|||
$to = isset($range[1]) ? $range[1] : $max; |
|||
} |
|||
$offset = $offset == '*' ? $this->rangeStart : $offset; |
|||
if ($stepSize >= $this->rangeEnd) { |
|||
$values = [$this->fullRange[$stepSize % count($this->fullRange)]]; |
|||
} else { |
|||
for ($i = $offset; $i <= $to; $i += $stepSize) { |
|||
$values[] = (int)$i; |
|||
} |
|||
} |
|||
sort($values); |
|||
} |
|||
else { |
|||
$values = array($expression); |
|||
} |
|||
|
|||
return $values; |
|||
} |
|||
|
|||
protected function convertLiterals($value) |
|||
{ |
|||
if (count($this->literals)) { |
|||
$key = array_search($value, $this->literals); |
|||
if ($key !== false) { |
|||
return $key; |
|||
} |
|||
} |
|||
|
|||
return $value; |
|||
} |
|||
|
|||
/** |
|||
* Checks to see if a value is valid for the field |
|||
* |
|||
* @param string $value |
|||
* @return bool |
|||
*/ |
|||
public function validate($value) |
|||
{ |
|||
$value = $this->convertLiterals($value); |
|||
|
|||
// All fields allow * as a valid value |
|||
if ('*' === $value) { |
|||
return true; |
|||
} |
|||
|
|||
if (strpos($value, '/') !== false) { |
|||
list($range, $step) = explode('/', $value); |
|||
return $this->validate($range) && filter_var($step, FILTER_VALIDATE_INT); |
|||
} |
|||
|
|||
// Validate each chunk of a list individually |
|||
if (strpos($value, ',') !== false) { |
|||
foreach (explode(',', $value) as $listItem) { |
|||
if (!$this->validate($listItem)) { |
|||
return false; |
|||
} |
|||
} |
|||
return true; |
|||
} |
|||
|
|||
if (strpos($value, '-') !== false) { |
|||
if (substr_count($value, '-') > 1) { |
|||
return false; |
|||
} |
|||
|
|||
$chunks = explode('-', $value); |
|||
$chunks[0] = $this->convertLiterals($chunks[0]); |
|||
$chunks[1] = $this->convertLiterals($chunks[1]); |
|||
|
|||
if ('*' == $chunks[0] || '*' == $chunks[1]) { |
|||
return false; |
|||
} |
|||
|
|||
return $this->validate($chunks[0]) && $this->validate($chunks[1]); |
|||
} |
|||
|
|||
if (!is_numeric($value)) { |
|||
return false; |
|||
} |
|||
|
|||
if (is_float($value) || strpos($value, '.') !== false) { |
|||
return false; |
|||
} |
|||
|
|||
// We should have a numeric by now, so coerce this into an integer |
|||
$value = (int) $value; |
|||
|
|||
return in_array($value, $this->fullRange, true); |
|||
} |
|||
} |
@ -0,0 +1,139 @@ |
|||
<?php |
|||
|
|||
namespace Cron\Tests; |
|||
|
|||
use Cron\DayOfWeekField; |
|||
use Cron\HoursField; |
|||
use Cron\MinutesField; |
|||
use Cron\MonthField; |
|||
use PHPUnit\Framework\TestCase; |
|||
|
|||
/** |
|||
* @author Michael Dowling <mtdowling@gmail.com> |
|||
*/ |
|||
class AbstractFieldTest extends TestCase |
|||
{ |
|||
/** |
|||
* @covers \Cron\AbstractField::isRange |
|||
*/ |
|||
public function testTestsIfRange() |
|||
{ |
|||
$f = new DayOfWeekField(); |
|||
$this->assertTrue($f->isRange('1-2')); |
|||
$this->assertFalse($f->isRange('2')); |
|||
} |
|||
|
|||
/** |
|||
* @covers \Cron\AbstractField::isIncrementsOfRanges |
|||
*/ |
|||
public function testTestsIfIncrementsOfRanges() |
|||
{ |
|||
$f = new DayOfWeekField(); |
|||
$this->assertFalse($f->isIncrementsOfRanges('1-2')); |
|||
$this->assertTrue($f->isIncrementsOfRanges('1/2')); |
|||
$this->assertTrue($f->isIncrementsOfRanges('*/2')); |
|||
$this->assertTrue($f->isIncrementsOfRanges('3-12/2')); |
|||
} |
|||
|
|||
/** |
|||
* @covers \Cron\AbstractField::isInRange |
|||
*/ |
|||
public function testTestsIfInRange() |
|||
{ |
|||
$f = new DayOfWeekField(); |
|||
$this->assertTrue($f->isInRange('1', '1-2')); |
|||
$this->assertTrue($f->isInRange('2', '1-2')); |
|||
$this->assertTrue($f->isInRange('5', '4-12')); |
|||
$this->assertFalse($f->isInRange('3', '4-12')); |
|||
$this->assertFalse($f->isInRange('13', '4-12')); |
|||
} |
|||
|
|||
/** |
|||
* @covers \Cron\AbstractField::isInIncrementsOfRanges |
|||
*/ |
|||
public function testTestsIfInIncrementsOfRangesOnZeroStartRange() |
|||
{ |
|||
$f = new MinutesField(); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('3', '3-59/2')); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('13', '3-59/2')); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('15', '3-59/2')); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('14', '*/2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('2', '3-59/13')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('14', '*/13')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('14', '3-59/2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '2-59')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '*')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('0', '*/0')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('1', '*/0')); |
|||
|
|||
$this->assertTrue($f->isInIncrementsOfRanges('4', '4/1')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('14', '4/1')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('34', '4/1')); |
|||
} |
|||
|
|||
/** |
|||
* @covers \Cron\AbstractField::isInIncrementsOfRanges |
|||
*/ |
|||
public function testTestsIfInIncrementsOfRangesOnOneStartRange() |
|||
{ |
|||
$f = new MonthField(); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('3', '3-12/2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('13', '3-12/2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('15', '3-12/2')); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('3', '*/2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '*/3')); |
|||
$this->assertTrue($f->isInIncrementsOfRanges('7', '*/3')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('14', '3-12/2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '2-12')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '2')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('3', '*')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('0', '*/0')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('1', '*/0')); |
|||
|
|||
$this->assertTrue($f->isInIncrementsOfRanges('4', '4/1')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('14', '4/1')); |
|||
$this->assertFalse($f->isInIncrementsOfRanges('34', '4/1')); |
|||
} |
|||
|
|||
/** |
|||
* @covers \Cron\AbstractField::isSatisfied |
|||
*/ |
|||
public function testTestsIfSatisfied() |
|||
{ |
|||
$f = new DayOfWeekField(); |
|||
$this->assertTrue($f->isSatisfied('12', '3-13')); |
|||
$this->assertFalse($f->isSatisfied('15', '3-7/2')); |
|||
$this->assertTrue($f->isSatisfied('12', '*')); |
|||
$this->assertTrue($f->isSatisfied('12', '12')); |
|||
$this->assertFalse($f->isSatisfied('12', '3-11')); |
|||
$this->assertFalse($f->isSatisfied('12', '3-7/2')); |
|||
$this->assertFalse($f->isSatisfied('12', '11')); |
|||
} |
|||
|
|||
/** |
|||
* Allows ranges and lists to coexist in the same expression |
|||
* |
|||
* @see https://github.com/dragonmantank/cron-expression/issues/5 |
|||
*/ |
|||
public function testAllowRangesAndLists() |
|||
{ |
|||
$expression = '5-7,11-13'; |
|||
$f = new HoursField(); |
|||
$this->assertTrue($f->validate($expression)); |
|||
} |
|||
|
|||
/** |
|||
* Makes sure that various types of ranges expand out properly |
|||
* |
|||
* @see https://github.com/dragonmantank/cron-expression/issues/5 |
|||
*/ |
|||
public function testGetRangeForExpressionExpandsCorrectly() |
|||
{ |
|||
$f = new HoursField(); |
|||
$this->assertSame([5, 6, 7, 11, 12, 13], $f->getRangeForExpression('5-7,11-13', 23)); |
|||
$this->assertSame(['5', '6', '7', '11', '12', '13'], $f->getRangeForExpression('5,6,7,11,12,13', 23)); |
|||
$this->assertSame([0, 6, 12, 18], $f->getRangeForExpression('*/6', 23)); |
|||
$this->assertSame([5, 11], $f->getRangeForExpression('5-13/6', 23)); |
|||
} |
|||
} |
@ -0,0 +1,51 @@ |
|||
<?php |
|||
|
|||
namespace Cron\Tests; |
|||
|
|||
use Cron\MinutesField; |
|||
use DateTime; |
|||
use PHPUnit\Framework\TestCase; |
|||
|
|||
/** |
|||
* @author Michael Dowling <mtdowling@gmail.com> |
|||
*/ |
|||
class MinutesFieldTest extends TestCase |
|||
{ |
|||
/** |
|||
* @covers \Cron\MinutesField::validate |
|||
*/ |
|||
public function testValidatesField() |
|||
{ |
|||
$f = new MinutesField(); |
|||
$this->assertTrue($f->validate('1')); |
|||
$this->assertTrue($f->validate('*')); |
|||
$this->assertFalse($f->validate('*/3,1,1-12')); |
|||
} |
|||
|
|||
/** |
|||
* @covers \Cron\MinutesField::increment |
|||
*/ |
|||
public function testIncrementsDate() |
|||
{ |
|||
$d = new DateTime('2011-03-15 11:15:00'); |
|||
$f = new MinutesField(); |
|||
$f->increment($d); |
|||
$this->assertSame('2011-03-15 11:16:00', $d->format('Y-m-d H:i:s')); |
|||
$f->increment($d, true); |
|||
$this->assertSame('2011-03-15 11:15:00', $d->format('Y-m-d H:i:s')); |
|||
} |
|||
|
|||
/** |
|||
* Various bad syntaxes that are reported to work, but shouldn't. |
|||
* |
|||
* @author Chris Tankersley |
|||
* @since 2017-08-18 |
|||
*/ |
|||
public function testBadSyntaxesShouldNotValidate() |
|||
{ |
|||
$f = new MinutesField(); |
|||
$this->assertFalse($f->validate('*-1')); |
|||
$this->assertFalse($f->validate('1-2-3')); |
|||
$this->assertFalse($f->validate('-1')); |
|||
} |
|||
} |
@ -0,0 +1,52 @@ |
|||
<?php |
|||
|
|||
namespace Faker\Calculator; |
|||
|
|||
use InvalidArgumentException; |
|||
|
|||
class TCNo |
|||
{ |
|||
/** |
|||
* Generates Turkish Identity Number Checksum |
|||
* Gets first 9 digit as prefix and calcuates checksums |
|||
* |
|||
* https://en.wikipedia.org/wiki/Turkish_Identification_Number |
|||
* |
|||
* @param string $identityPrefix |
|||
* @return string Checksum (two digit) |
|||
*/ |
|||
public static function checksum($identityPrefix) |
|||
{ |
|||
if (strlen((string)$identityPrefix) !== 9) { |
|||
throw new InvalidArgumentException('Argument should be an integer and should be 9 digits.'); |
|||
} |
|||
|
|||
$oddSum = 0; |
|||
$evenSum = 0; |
|||
|
|||
$identityArray = array_map('intval', str_split($identityPrefix)); // Creates array from int |
|||
foreach ($identityArray as $index => $digit) { |
|||
if ($index % 2 == 0) { |
|||
$evenSum += $digit; |
|||
} else { |
|||
$oddSum += $digit; |
|||
} |
|||
} |
|||
|
|||
$tenthDigit = (7 * $evenSum - $oddSum) % 10; |
|||
$eleventhDigit = ($evenSum + $oddSum + $tenthDigit) % 10; |
|||
|
|||
return $tenthDigit . $eleventhDigit; |
|||
} |
|||
|
|||
/** |
|||
* Checks whether an TCNo has a valid checksum |
|||
* |
|||
* @param string $tcNo |
|||
* @return boolean |
|||
*/ |
|||
public static function isValid($tcNo) |
|||
{ |
|||
return self::checksum(substr($tcNo, 0, -2)) === substr($tcNo, -2, 2); |
|||
} |
|||
} |
@ -0,0 +1,708 @@ |
|||
<?php |
|||
|
|||
namespace Faker\Provider\ms_MY; |
|||
|
|||
use \Faker\Generator; |
|||
|
|||
class Address extends \Faker\Provider\Address |
|||
{ |
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Addresses_in_Malaysia |
|||
*/ |
|||
protected static $addressFormats = array( |
|||
'{{streetAddress}}, {{township}}, {{townState}}', |
|||
); |
|||
|
|||
protected static $streetAddressFormats = array( |
|||
'{{buildingPrefix}}{{buildingNumber}}, {{streetName}}' |
|||
); |
|||
|
|||
/** |
|||
* Most of the time 'No.' is not needed, and 'Lot' is less used. |
|||
*/ |
|||
protected static $buildingPrefix = array( |
|||
'','','','','','', |
|||
'No. ','No. ','No. ', |
|||
'Lot ', |
|||
); |
|||
|
|||
protected static $buildingNumber = array( |
|||
'%','%','%', |
|||
'%#','%#','%#','%#', |
|||
'%##', |
|||
'%-%', |
|||
'?-##-##', |
|||
'%?-##' |
|||
); |
|||
|
|||
protected static $streetNameFormats = array( |
|||
'{{streetPrefix}} %', |
|||
'{{streetPrefix}} %/%', |
|||
'{{streetPrefix}} %/%#', |
|||
'{{streetPrefix}} %/%?', |
|||
'{{streetPrefix}} %/%#?', |
|||
'{{streetPrefix}} %?', |
|||
'{{streetPrefix}} %#?', |
|||
'{{streetPrefix}} {{streetSuffix}}', |
|||
'{{streetPrefix}} {{streetSuffix}} %', |
|||
'{{streetPrefix}} {{streetSuffix}} %/%', |
|||
'{{streetPrefix}} {{streetSuffix}} %/%#', |
|||
'{{streetPrefix}} {{streetSuffix}} %/%?', |
|||
'{{streetPrefix}} {{streetSuffix}} %/%#?', |
|||
'{{streetPrefix}} {{streetSuffix}} %?', |
|||
'{{streetPrefix}} {{streetSuffix}} %#?', |
|||
); |
|||
|
|||
protected static $townshipFormats = array( |
|||
'{{townshipPrefix}} {{townshipSuffix}}', |
|||
'{{townshipPrefix}} {{townshipSuffix}}', |
|||
'{{townshipPrefix}} {{townshipSuffix}}', |
|||
'{{townshipPrefix}} {{townshipSuffix}}', |
|||
'{{townshipPrefix}} {{townshipSuffix}}', |
|||
'{{townshipPrefix}} {{townshipSuffix}}', |
|||
'{{townshipPrefixAbbr}}%', |
|||
'{{townshipPrefixAbbr}}%#', |
|||
'{{townshipPrefixAbbr}}%#?', |
|||
); |
|||
|
|||
/** |
|||
* 'Jalan' & 'Jln' are more frequently used than 'Lorong' |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur#Standard_translations |
|||
*/ |
|||
protected static $streetPrefix = array( |
|||
'Jln','Jln', |
|||
'Jalan','Jalan','Jalan', |
|||
'Lorong' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_roads_in_Kuala_Lumpur |
|||
* @link https://en.wikipedia.org/wiki/List_of_roads_in_Ipoh |
|||
* @link https://en.wikipedia.org/wiki/Transportation_in_Seremban#Inner_city_roads |
|||
* @link https://en.wikipedia.org/wiki/List_of_streets_in_George_Town,_Penang |
|||
*/ |
|||
protected static $streetSuffix = array( |
|||
'Air Itam','Alor','Ampang','Ampang Hilir','Anson','Ariffin', |
|||
'Bangsar','Baru','Bellamy','Birch','Bijih Timah','Bukit Aman','Bukit Bintang','Bukit Petaling','Bukit Tunku', |
|||
'Cantonment','Cenderawasih','Chan Sow Lin','Chow Kit','Cinta','Cochrane','Conlay', |
|||
'D. S. Ramanathan','Damansara','Dang Wangi','Davis','Dewan Bahasa','Dato Abdul Rahman','Dato\'Keramat','Dato\' Maharaja Lela','Doraisamy', |
|||
'Eaton', |
|||
'Faraday', |
|||
'Galloway','Genting Klang','Gereja', |
|||
'Hang Jebat','Hang Kasturi','Hang Lekir','Hang Lekiu','Hang Tuah','Hospital', |
|||
'Imbi','Istana', |
|||
'Jelutong', |
|||
'Kampung Attap','Kebun Bunga','Kedah','Keliling','Kia Peng','Kinabalu','Kuala Kangsar','Kuching', |
|||
'Ledang','Lembah Permai','Loke Yew','Lt. Adnan','Lumba Kuda', |
|||
'Madras','Magazine','Maharajalela','Masjid','Maxwell','Mohana Chandran','Muda', |
|||
'P. Ramlee','Padang Kota Lama','Pahang','Pantai Baharu','Parlimen','Pasar','Pasar Besar','Perak','Perdana','Petaling','Prangin','Pudu','Pudu Lama', |
|||
'Raja','Raja Abdullah','Raja Chulan','Raja Laut','Rakyat','Residensi','Robson', |
|||
'S.P. Seenivasagam','Samarahan 1','Selamat','Sempadan','Sentul','Serian 1','Sasaran','Sin Chee','Sultan Abdul Samad','Sultan Azlan Shah','Sultan Iskandar','Sultan Ismail','Sultan Sulaiman','Sungai Besi','Syed Putra', |
|||
'Tan Cheng Lock','Thambipillay','Tugu','Tuanku Abdul Halim','Tuanku Abdul Rahman','Tun Abdul Razak','Tun Dr Ismail','Tun H S Lee','Tun Ismail','Tun Perak','Tun Razak','Tun Sambanthan', |
|||
'U-Thant','Utama', |
|||
'Vermont','Vivekananda', |
|||
'Wan Kadir','Wesley','Wisma Putra', |
|||
'Yaacob Latif','Yap Ah Loy','Yap Ah Shak','Yap Kwan Seng','Yew', |
|||
'Zaaba','Zainal Abidin' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Petaling_Jaya_city_sections |
|||
* @link https://en.wikipedia.org/wiki/UEP_Subang_Jaya#History |
|||
*/ |
|||
protected static $townshipPrefixAbbr = array( |
|||
'SS','Seksyen ','PJS','PJU','USJ ', |
|||
); |
|||
|
|||
/** |
|||
* 'Bandar' and 'Taman' are the most common township prefix |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Johor > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Kedah > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Kelantan > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Melaka > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Perak > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Penang > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Selangor > Townships |
|||
* @link https://en.wikipedia.org/wiki/Template:Terengganu > Townships |
|||
*/ |
|||
protected static $townshipPrefix = array( |
|||
'Alam','Apartment','Ara', |
|||
'Bandar','Bandar','Bandar','Bandar','Bandar','Bandar', |
|||
'Bandar Bukit','Bandar Seri','Bandar Sri','Bandar Baru','Batu','Bukit', |
|||
'Desa','Damansara', |
|||
'Kampung','Kampung Baru','Kampung Baru','Kondominium','Kota', |
|||
'Laman','Lembah', |
|||
'Medan', |
|||
'Pandan','Pangsapuri','Petaling','Puncak', |
|||
'Seri','Sri', |
|||
'Taman','Taman','Taman','Taman','Taman','Taman', |
|||
'Taman Desa', |
|||
); |
|||
protected static $townshipSuffix = array( |
|||
'Aman','Amanjaya','Anggerik','Angkasa','Antarabangsa','Awan', |
|||
'Bahagia','Bangsar','Baru','Belakong','Bendahara','Bestari','Bintang','Brickfields', |
|||
'Casa','Changkat','Country Heights', |
|||
'Damansara','Damai','Dato Harun','Delima','Duta', |
|||
'Flora', |
|||
'Gembira','Genting', |
|||
'Harmoni','Hartamas', |
|||
'Impian','Indah','Intan', |
|||
'Jasa','Jaya', |
|||
'Keramat','Kerinchi','Kiara','Kinrara','Kuchai', |
|||
'Laksamana', |
|||
'Mahkota','Maluri','Manggis','Maxwell','Medan','Melawati','Menjalara','Meru','Mulia','Mutiara', |
|||
'Pahlawan','Perdana','Pertama','Permai','Pelangi','Petaling','Pinang','Puchong','Puteri','Putra', |
|||
'Rahman','Rahmat','Raya','Razak','Ria', |
|||
'Saujana','Segambut','Selamat','Selatan','Semarak','Sentosa','Seputeh','Setapak','Setia Jaya','Sinar','Sungai Besi','Sungai Buaya','Sungai Long','Suria', |
|||
'Tasik Puteri','Tengah','Timur','Tinggi','Tropika','Tun Hussein Onn','Tun Perak','Tunku', |
|||
'Ulu','Utama','Utara', |
|||
'Wangi', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Template:Greater_Kuala_Lumpur |
|||
* @link https://en.wikipedia.org/wiki/Template:Johor |
|||
* @link https://en.wikipedia.org/wiki/Template:Kedah |
|||
* @link https://en.wikipedia.org/wiki/Template:Kelantan |
|||
* @link https://en.wikipedia.org/wiki/Template:Labuan |
|||
* @link https://en.wikipedia.org/wiki/Template:Melaka |
|||
* @link https://en.wikipedia.org/wiki/Template:Negeri_Sembilan |
|||
* @link https://en.wikipedia.org/wiki/Template:Pahang |
|||
* @link https://en.wikipedia.org/wiki/Template:Perak |
|||
* @link https://en.wikipedia.org/wiki/Template:Perlis |
|||
* @link https://en.wikipedia.org/wiki/Template:Penang |
|||
* @link https://en.wikipedia.org/wiki/Template:Sabah |
|||
* @link https://en.wikipedia.org/wiki/Template:Sarawak |
|||
* @link https://en.wikipedia.org/wiki/Template:Selangor |
|||
* @link https://en.wikipedia.org/wiki/Template:Terengganu |
|||
*/ |
|||
protected static $towns = array( |
|||
'johor' => array( |
|||
'Ayer Hitam', |
|||
'Batu Pahat','Bukit Gambir','Bukit Kepong','Bukit Naning', |
|||
'Desaru', |
|||
'Endau', |
|||
'Gelang Patah','Gemas Baharu', |
|||
'Iskandar Puteri', |
|||
'Jementah','Johor Lama','Johor Bahru', |
|||
'Kempas','Kluang','Kota Iskandar','Kota Tinggi','Kukup','Kulai', |
|||
'Labis ','Larkin','Layang-Layang', |
|||
'Mersing','Muar', |
|||
'Pagoh','Paloh','Parit Jawa','Pasir Gudang','Pekan Nanas','Permas Jaya','Pontian Kechil', |
|||
'Renggam', |
|||
'Segamat','Senai','Simpang Renggam','Skudai','Sri Gading', |
|||
'Tangkak','Tebrau', |
|||
'Ulu Tiram', |
|||
'Yong Peng', |
|||
), |
|||
'kedah' => array( |
|||
'Alor Setar', |
|||
'Baling','Bukit Kayu Hitam', |
|||
'Changlun', |
|||
'Durian Burung', |
|||
'Gurun', |
|||
'Jitra', |
|||
'Kepala Batas','Kuah','Kuala Kedah','Kuala Ketil','Kulim', |
|||
'Langgar','Lunas', |
|||
'Merbok', |
|||
'Padang Serai','Pendang', |
|||
'Serdang','Sintok','Sungai Petani', |
|||
'Tawar, Baling', |
|||
'Yan', |
|||
), |
|||
'kelantan' => array( |
|||
'Bachok','Bunut Payong', |
|||
'Dabong', |
|||
'Gua Musang', |
|||
'Jeli', |
|||
'Ketereh','Kota Bharu','Kuala Krai', |
|||
'Lojing', |
|||
'Machang', |
|||
'Pasir Mas','Pasir Puteh', |
|||
'Rantau Panjang', |
|||
'Salor', |
|||
'Tok Bali', |
|||
'Wakaf Bharu','Wakaf Che Yeh', |
|||
), |
|||
'kl' => array( |
|||
'Ampang', |
|||
'Bandar Tasik Selatan','Bandar Tun Razak','Bangsar','Batu','Brickfields','Bukit Bintang','Bukit Jalil','Bukit Tunku', |
|||
'Cheras','Chow Kit', |
|||
'Damansara Town Centre','Dang Wangi','Desa Petaling','Desa Tun Hussein Onn', |
|||
'Jinjang', |
|||
'Kampung Baru','Kampung Kasipillay','Kampung Pandan','Kampung Sungai Penchala','Kepong','KLCC','Kuchai Lama', |
|||
'Lake Gardens','Lembah Pantai', |
|||
'Medan Tuanku','Mid Valley City','Mont Kiara', |
|||
'Pantai Dalam','Pudu', |
|||
'Salak South','Segambut','Semarak','Sentul','Setapak','Setiawangsa','Seputeh','Sri Hartamas','Sri Petaling','Sungai Besi', |
|||
'Taman Desa','Taman Melawati','Taman OUG','Taman Tun Dr Ismail','Taman U-Thant','Taman Wahyu','Titiwangsa','Tun Razak Exchange', |
|||
'Wangsa Maju', |
|||
), |
|||
'labuan' => array( |
|||
'Batu Manikar', |
|||
'Kiamsam', |
|||
'Layang-Layang', |
|||
'Rancha-Rancha' |
|||
), |
|||
'melaka' => array( |
|||
'Alor Gajah', |
|||
'Bandaraya Melaka','Batu Berendam','Bukit Beruang','Bukit Katil', |
|||
'Cheng', |
|||
'Durian Tunggal', |
|||
'Hang Tuah Jaya', |
|||
'Jasin', |
|||
'Klebang', |
|||
'Lubuk China', |
|||
'Masjid Tanah', |
|||
'Naning', |
|||
'Pekan Asahan', |
|||
'Ramuan China', |
|||
'Simpang Ampat', |
|||
'Tanjung Bidara','Telok Mas', |
|||
'Umbai', |
|||
), |
|||
'nsembilan' => array( |
|||
'Ayer Kuning','Ampangan', |
|||
'Bahau','Batang Benar', |
|||
'Chembong', |
|||
'Dangi', |
|||
'Gemas', |
|||
'Juasseh', |
|||
'Kuala Pilah', |
|||
'Labu','Lenggeng','Linggi', |
|||
'Mantin', |
|||
'Nilai', |
|||
'Pajam','Pedas','Pengkalan Kempas','Port Dickson', |
|||
'Rantau','Rompin', |
|||
'Senawang','Seremban','Sungai Gadut', |
|||
'Tampin','Tiroi', |
|||
), |
|||
'pahang' => array( |
|||
'Bandar Tun Razak','Bentong','Brinchang','Bukit Fraser','Bukit Tinggi', |
|||
'Chendor', |
|||
'Gambang','Genting Highlands','Genting Sempah', |
|||
'Jerantut', |
|||
'Karak','Kemayan','Kota Shahbandar','Kuala Lipis','Kuala Pahang','Kuala Rompin','Kuantan', |
|||
'Lanchang','Lubuk Paku', |
|||
'Maran','Mengkuang','Mentakab', |
|||
'Nenasi', |
|||
'Panching', |
|||
'Pekan','Penor', |
|||
'Raub', |
|||
'Sebertak','Sungai Lembing', |
|||
'Tanah Rata','Tanjung Sepat','Tasik Chini','Temerloh','Teriang','Tringkap', |
|||
), |
|||
'penang' => array( |
|||
'Air Itam', |
|||
'Balik Pulau','Batu Ferringhi','Batu Kawan','Bayan Lepas','Bukit Mertajam','Butterworth', |
|||
'Gelugor','George Town', |
|||
'Jelutong', |
|||
'Kepala Batas', |
|||
'Nibong Tebal', |
|||
'Permatang Pauh','Pulau Tikus', |
|||
'Simpang Ampat', |
|||
'Tanjung Bungah','Tanjung Tokong', |
|||
), |
|||
'perak' => array( |
|||
'Ayer Tawar', |
|||
'Bagan Serai','Batu Gajah','Behrang','Bidor','Bukit Gantang','Bukit Merah', |
|||
'Changkat Jering','Chemor','Chenderiang', |
|||
'Damar Laut', |
|||
'Gerik','Gopeng','Gua Tempurung', |
|||
'Hutan Melintang', |
|||
'Ipoh', |
|||
'Jelapang', |
|||
'Kamunting','Kampar','Kuala Kangsar', |
|||
'Lekir','Lenggong','Lumut', |
|||
'Malim Nawar','Manong','Menglembu', |
|||
'Pantai Remis','Parit','Parit Buntar','Pasir Salak','Proton City', |
|||
'Simpang Pulai','Sitiawan','Slim River','Sungai Siput','Sungkai', |
|||
'Taiping','Tambun','Tanjung Malim','Tanjung Rambutan','Tapah','Teluk Intan', |
|||
'Ulu Bernam', |
|||
), |
|||
'perlis' => array( |
|||
'Arau', |
|||
'Beseri', |
|||
'Chuping', |
|||
'Kaki Bukit','Kangar','Kuala Perlis', |
|||
'Mata Ayer', |
|||
'Padang Besar', |
|||
'Sanglang','Simpang Empat', |
|||
'Wang Kelian', |
|||
), |
|||
'putrajaya' => array( |
|||
'Precinct 1','Precinct 4','Precinct 5', |
|||
'Precinct 6','Precinct 8','Precinct 10', |
|||
'Precinct 11','Precinct 12','Precinct 13', |
|||
'Precinct 16','Precinct 18','Precinct 19', |
|||
), |
|||
'sabah' => array( |
|||
'Beaufort','Bingkor', |
|||
'Donggongon', |
|||
'Inanam', |
|||
'Kinabatangan','Kota Belud','Kota Kinabalu','Kuala Penyu','Kimanis','Kundasang', |
|||
'Lahad Datu','Likas','Lok Kawi', |
|||
'Manggatal', |
|||
'Nabawan', |
|||
'Papar','Pitas', |
|||
'Ranau', |
|||
'Sandakan','Sapulut','Semporna','Sepanggar', |
|||
'Tambunan','Tanjung Aru','Tawau','Tenom','Tuaran', |
|||
'Weston', |
|||
), |
|||
'sarawak' => array( |
|||
'Asajaya', |
|||
'Ba\'kelalan','Bario','Batu Kawa','Batu Niah','Betong','Bintulu', |
|||
'Dalat','Daro', |
|||
'Engkilili', |
|||
'Julau', |
|||
'Kapit','Kota Samarahan','Kuching', |
|||
'Lawas','Limbang','Lubok Antu', |
|||
'Marudi','Matu','Miri', |
|||
'Oya', |
|||
'Pakan', |
|||
'Sadong Jaya','Sematan','Sibu','Siburan','Song','Sri Aman','Sungai Tujoh', |
|||
'Tanjung Kidurong','Tanjung Manis','Tatau', |
|||
), |
|||
'selangor' => array( |
|||
'Ampang','Assam Jawa', |
|||
'Balakong','Bandar Baru Bangi','Bandar Baru Selayang','Bandar Sunway','Bangi','Banting','Batang Kali','Batu Caves','Bestari Jaya','Bukit Lanjan', |
|||
'Cheras','Cyberjaya', |
|||
'Damansara','Dengkil', |
|||
'Ijok', |
|||
'Jenjarom', |
|||
'Kajang','Kelana Jaya','Klang','Kuala Kubu Bharu','Kuala Selangor','Kuang', |
|||
'Lagong', |
|||
'Morib', |
|||
'Pandamaran','Paya Jaras','Petaling Jaya','Port Klang','Puchong', |
|||
'Rasa','Rawang', |
|||
'Salak Tinggi','Sekinchan','Selayang','Semenyih','Sepang','Serendah','Seri Kembangan','Shah Alam','Subang','Subang Jaya','Sungai Buloh', |
|||
'Tanjung Karang','Tanjung Sepat', |
|||
'Ulu Klang','Ulu Yam', |
|||
), |
|||
'terengganu' => array( |
|||
'Ajil', |
|||
'Bandar Ketengah Jaya','Bandar Permaisuri','Bukit Besi','Bukit Payong', |
|||
'Chukai', |
|||
'Jerteh', |
|||
'Kampung Raja','Kerteh','Kijal','Kuala Besut','Kuala Berang','Kuala Dungun','Kuala Terengganu', |
|||
'Marang','Merchang', |
|||
'Pasir Raja', |
|||
'Rantau Abang', |
|||
'Teluk Kalung', |
|||
'Wakaf Tapai', |
|||
) |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/States_and_federal_territories_of_Malaysia |
|||
*/ |
|||
protected static $states = array( |
|||
'johor' => array( |
|||
'Johor Darul Ta\'zim', |
|||
'Johor' |
|||
), |
|||
'kedah' => array( |
|||
'Kedah Darul Aman', |
|||
'Kedah' |
|||
), |
|||
'kelantan' => array( |
|||
'Kelantan Darul Naim', |
|||
'Kelantan' |
|||
), |
|||
'kl' => array( |
|||
'KL', |
|||
'Kuala Lumpur', |
|||
'WP Kuala Lumpur' |
|||
), |
|||
'labuan' => array( |
|||
'Labuan' |
|||
), |
|||
'melaka' => array( |
|||
'Malacca', |
|||
'Melaka' |
|||
), |
|||
'nsembilan' => array( |
|||
'Negeri Sembilan Darul Khusus', |
|||
'Negeri Sembilan' |
|||
), |
|||
'pahang' => array( |
|||
'Pahang Darul Makmur', |
|||
'Pahang' |
|||
), |
|||
'penang' => array( |
|||
'Penang', |
|||
'Pulau Pinang' |
|||
), |
|||
'perak' => array( |
|||
'Perak Darul Ridzuan', |
|||
'Perak' |
|||
), |
|||
'perlis' => array( |
|||
'Perlis Indera Kayangan', |
|||
'Perlis' |
|||
), |
|||
'putrajaya' => array( |
|||
'Putrajaya' |
|||
), |
|||
'sabah' => array( |
|||
'Sabah' |
|||
), |
|||
'sarawak' => array( |
|||
'Sarawak' |
|||
), |
|||
'selangor' => array( |
|||
'Selangor Darul Ehsan', |
|||
'Selangor' |
|||
), |
|||
'terengganu' => array( |
|||
'Terengganu Darul Iman', |
|||
'Terengganu' |
|||
) |
|||
); |
|||
|
|||
/** |
|||
* @link https://ms.wikipedia.org/wiki/Senarai_negara_berdaulat |
|||
*/ |
|||
protected static $country = array( |
|||
'Abkhazia','Afghanistan','Afrika Selatan','Republik Afrika Tengah','Akrotiri dan Dhekelia','Albania','Algeria','Amerika Syarikat','Andorra','Angola','Antigua dan Barbuda','Arab Saudi','Argentina','Armenia','Australia','Austria','Azerbaijan', |
|||
'Bahamas','Bahrain','Bangladesh','Barbados','Belanda','Belarus','Belgium','Belize','Benin','Bhutan','Bolivia','Bonaire','Bosnia dan Herzegovina','Botswana','Brazil','Brunei Darussalam','Bulgaria','Burkina Faso','Burundi', |
|||
'Cameroon','Chad','Chile','Republik Rakyat China','Republik China di Taiwan','Colombia','Comoros','Republik Demokratik Congo','Republik Congo','Kepulauan Cook','Costa Rica','Côte d\'Ivoire (Ivory Coast)','Croatia','Cuba','Curaçao','Cyprus','Republik Turki Cyprus Utara','Republik Czech', |
|||
'Denmark','Djibouti','Dominika','Republik Dominika', |
|||
'Ecuador','El Salvador','Emiriah Arab Bersatu','Eritrea','Estonia', |
|||
'Kepulauan Faroe','Fiji','Filipina','Finland', |
|||
'Gabon','Gambia','Georgia','Ghana','Grenada','Greece (Yunani)','Guatemala','Guinea','Guinea-Bissau','Guinea Khatulistiwa','Guiana Perancis','Guyana', |
|||
'Habsyah (Etiopia)','Haiti','Honduras','Hungary', |
|||
'Iceland','India','Indonesia','Iran','Iraq','Ireland','Israel','Itali', |
|||
'Jamaika','Jepun','Jerman','Jordan', |
|||
'Kanada','Kazakhstan','Kemboja','Kenya','Kiribati','Korea Selatan','Korea Utara','Kosovo','Kuwait','Kyrgyzstan', |
|||
'Laos','Latvia','Lesotho','Liberia','Libya','Liechtenstein','Lithuania','Lubnan','Luxembourg', |
|||
'Macedonia','Madagaskar','Maghribi','Malawi','Malaysia','Maldives','Mali','Malta','Kepulauan Marshall','Mauritania','Mauritius','Mesir','Mexico','Persekutuan Micronesia','Moldova','Monaco','Montenegro','Mongolia','Mozambique','Myanmar', |
|||
'Namibia','Nauru','Nepal','New Zealand','Nicaragua','Niger','Nigeria','Niue','Norway', |
|||
'Oman','Ossetia Selatan', |
|||
'Pakistan','Palau','Palestin','Panama','Papua New Guinea','Paraguay','Perancis','Peru','Poland','Portugal', |
|||
'Qatar', |
|||
'Romania','Russia','Rwanda', |
|||
'Sahara Barat','Saint Kitts dan Nevis','Saint Lucia','Saint Vincent dan Grenadines','Samoa','San Marino','São Tomé dan Príncipe','Scotland','Senegal','Sepanyol','Serbia','Seychelles','Sierra Leone','Singapura','Slovakia','Slovenia','Kepulauan Solomon','Somalia','Somaliland','Sri Lanka','Sudan','Sudan Selatan','Suriname','Swaziland','Sweden','Switzerland','Syria', |
|||
'Tajikistan','Tanjung Verde','Tanzania','Thailand','Timor Leste','Togo','Tonga','Transnistria','Trinidad dan Tobago','Tunisia','Turki','Turkmenistan','Tuvalu', |
|||
'Uganda','Ukraine','United Kingdom','Uruguay','Uzbekistan', |
|||
'Vanuatu','Kota Vatican','Venezuela','Vietnam', |
|||
'Yaman', |
|||
'Zambia','Zimbabwe', |
|||
); |
|||
|
|||
/** |
|||
* Return a building prefix |
|||
* |
|||
* @example 'No.' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function buildingPrefix() |
|||
{ |
|||
return static::randomElement(static::$buildingPrefix); |
|||
} |
|||
|
|||
/** |
|||
* Return a building number |
|||
* |
|||
* @example '123' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function buildingNumber() |
|||
{ |
|||
return static::toUpper(static::lexify(static::numerify(static::randomElement(static::$buildingNumber)))); |
|||
} |
|||
|
|||
/** |
|||
* Return a street prefix |
|||
* |
|||
* @example 'Jalan' |
|||
*/ |
|||
public function streetPrefix() |
|||
{ |
|||
$format = static::randomElement(static::$streetPrefix); |
|||
|
|||
return $this->generator->parse($format); |
|||
} |
|||
|
|||
/** |
|||
* Return a complete streename |
|||
* |
|||
* @example 'Jalan Utama 7' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function streetName() |
|||
{ |
|||
$format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$streetNameFormats)))); |
|||
|
|||
return $this->generator->parse($format); |
|||
} |
|||
|
|||
/** |
|||
* Return a randown township |
|||
* |
|||
* @example Taman Bahagia |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function township() |
|||
{ |
|||
$format = static::toUpper(static::lexify(static::numerify(static::randomElement(static::$townshipFormats)))); |
|||
|
|||
return $this->generator->parse($format); |
|||
} |
|||
|
|||
/** |
|||
* Return a township prefix abbreviation |
|||
* |
|||
* @example 'USJ' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function townshipPrefixAbbr() |
|||
{ |
|||
return static::randomElement(static::$townshipPrefixAbbr); |
|||
} |
|||
|
|||
/** |
|||
* Return a township prefix |
|||
* |
|||
* @example 'Taman' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function townshipPrefix() |
|||
{ |
|||
return static::randomElement(static::$townshipPrefix); |
|||
} |
|||
|
|||
/** |
|||
* Return a township suffix |
|||
* |
|||
* @example 'Bahagia' |
|||
*/ |
|||
public function townshipSuffix() |
|||
{ |
|||
return static::randomElement(static::$townshipSuffix); |
|||
} |
|||
|
|||
/** |
|||
* Return a postcode based on state |
|||
* |
|||
* @example '55100' |
|||
* @link https://en.wikipedia.org/wiki/Postal_codes_in_Malaysia#States |
|||
* |
|||
* @param null|string $state 'state' or null |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function postcode($state = null) |
|||
{ |
|||
$format = array( |
|||
'perlis' => array( // (01000 - 02800) |
|||
'0' . mt_rand(1000, 2800) |
|||
), |
|||
'kedah' => array( // (05000 - 09810) |
|||
'0' . mt_rand(5000, 9810) |
|||
), |
|||
'penang' => array( // (10000 - 14400) |
|||
mt_rand(10000, 14400) |
|||
), |
|||
'kelantan' => array( // (15000 - 18500) |
|||
mt_rand(15000, 18500) |
|||
), |
|||
'terengganu' => array( // (20000 - 24300) |
|||
mt_rand(20000, 24300) |
|||
), |
|||
'pahang' => array( // (25000 - 28800 | 39000 - 39200 | 49000, 69000) |
|||
mt_rand(25000, 28800), |
|||
mt_rand(39000, 39200), |
|||
mt_rand(49000, 69000) |
|||
), |
|||
'perak' => array( // (30000 - 36810) |
|||
mt_rand(30000, 36810) |
|||
), |
|||
'selangor' => array( // (40000 - 48300 | 63000 - 68100) |
|||
mt_rand(40000, 48300), |
|||
mt_rand(63000, 68100) |
|||
), |
|||
'kl' => array( // (50000 - 60000) |
|||
mt_rand(50000, 60000), |
|||
), |
|||
'putrajaya' => array( // (62000 - 62988) |
|||
mt_rand(62000, 62988) |
|||
), |
|||
'nsembilan' => array( // (70000 - 73509) |
|||
mt_rand(70000, 73509) |
|||
), |
|||
'melaka' => array( // (75000 - 78309) |
|||
mt_rand(75000, 78309) |
|||
), |
|||
'johor' => array( // (79000 - 86900) |
|||
mt_rand(79000, 86900) |
|||
), |
|||
'labuan' => array( // (87000 - 87033) |
|||
mt_rand(87000, 87033) |
|||
), |
|||
'sabah' => array( // (88000 - 91309) |
|||
mt_rand(88000, 91309) |
|||
), |
|||
'sarawak' => array( // (93000 - 98859) |
|||
mt_rand(93000, 98859) |
|||
) |
|||
); |
|||
|
|||
$postcode = is_null($state) ? static::randomElement($format) : $format[$state]; |
|||
return (string)static::randomElement($postcode); |
|||
} |
|||
|
|||
/** |
|||
* Return the complete town address with matching postcode and state |
|||
* |
|||
* @example 55100 Bukit Bintang, Kuala Lumpur |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function townState() |
|||
{ |
|||
$state = static::randomElement(array_keys(static::$states)); |
|||
$postcode = static::postcode($state); |
|||
$town = static::randomElement(static::$towns[$state]); |
|||
$state = static::randomElement(static::$states[$state]); |
|||
|
|||
return $postcode . ' ' . $town . ', ' . $state; |
|||
} |
|||
|
|||
/** |
|||
* Return a random city (town) |
|||
* |
|||
* @example 'Ampang' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function city() |
|||
{ |
|||
$state = static::randomElement(array_keys(static::$towns)); |
|||
return static::randomElement(static::$towns[$state]); |
|||
} |
|||
|
|||
/** |
|||
* Return a random state |
|||
* |
|||
* @example 'Johor' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function state() |
|||
{ |
|||
$state = static::randomElement(array_keys(static::$states)); |
|||
return static::randomElement(static::$states[$state]); |
|||
} |
|||
} |
@ -0,0 +1,105 @@ |
|||
<?php |
|||
|
|||
namespace Faker\Provider\ms_MY; |
|||
|
|||
class Company extends \Faker\Provider\Company |
|||
{ |
|||
protected static $formats = array( |
|||
'{{companyName}} {{companySuffix}}', |
|||
'{{industry}} {{lastNameMalay}} {{companySuffix}}', |
|||
'{{industry}} {{firstNameMaleChinese}} {{companySuffix}}', |
|||
'{{industry}} {{firstNameMaleIndian}} {{companySuffix}}', |
|||
); |
|||
|
|||
/** |
|||
* There are more Private Limited Companies(Sdn Bhd) than Public Listed Companies(Berhad) |
|||
* |
|||
* @link http://www.risscorporateservices.com/types-of-business-entities.html |
|||
*/ |
|||
protected static $companySuffix = array( |
|||
'Berhad', |
|||
'Bhd', |
|||
'Bhd.', |
|||
'Enterprise', |
|||
'Sdn Bhd','Sdn Bhd','Sdn Bhd','Sdn Bhd', |
|||
'Sdn. Bhd.','Sdn. Bhd.','Sdn. Bhd.','Sdn. Bhd.' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_companies_of_Malaysia |
|||
*/ |
|||
protected static $companies = array( |
|||
'Adventa','AirAsia','AmBank','Astro Malaysia Holdings','Astro Radio','Axiata', |
|||
'Berjaya Group','Bonia','Boustead Holdings','BSA Manufacturing','Bufori','Bumiputra-Commerce Holdings','Bursa Malaysia', |
|||
'Capital Dynamics','Celcom','CIMB', |
|||
'Digi Telecommunications','DRB-HICOM', |
|||
'Edaran Otomobil Nasional (EON)', |
|||
'Friendster', |
|||
'Gamuda','Genting Group','Golden Hope','Golden Screen Cinemas','Guthrie', |
|||
'HELP International Corporation', |
|||
'iMoney.my','IOI Group','Iskandar Investment','The Italian Baker', |
|||
'Jaring','JobStreet.com','Johor Corporation','Johor Land', |
|||
'Khazanah Nasional','Khind Holdings','KLCC Properties','Keretapi Tanah Melayu (KTM)','Konsortium Transnasional (KTB)','Kulim (Malaysia)', |
|||
'Lam Eng Rubber','Lion Group', |
|||
'Magnum Corporation','Maybank','Malaysia Airlines','Malaysia Airports','Marrybrown','Maxis Communications','MBO Cinemas','Media Prima','MIMOS','MISC','Modenas','MUI Group','Mydin', |
|||
'NAZA Group','New Straits Times Press', |
|||
'OYL Industries', |
|||
'Parkson','Pensonic','Permodalan Nasional','Perodua','Petronas','PLUS','Pos Malaysia','Prasarana Malaysia','Proton Holdings','Public Bank', |
|||
'Ramly Group','Ranhill Holdings','Resort World','RHB Bank','Royal Selangor', |
|||
'Scientex Incorporated','Scomi','Sime Darby','SIRIM','Sunway Group','Supermax', |
|||
'Tan Chong Motor','Tanjong','Tenaga Nasional','Telekom Malaysia(TM)','TGV Cinemas','Top Glove', |
|||
'U Mobile','UEM Group','UMW Holdings', |
|||
'VADS','ViTrox', |
|||
'Wasco Energy', |
|||
'YTL Corporation' |
|||
); |
|||
|
|||
/** |
|||
* @link http://www.daftarsyarikat.biz/perkhidmatan-dan-konsultasi/pendaftaran-lesen-kementerian-kewangan/senarai-kod-bidang/ |
|||
*/ |
|||
protected static $industry = array( |
|||
'Agen Pengembaraan','Agen Penghantaran','Agen Perkapalan','Agensi Kredit Dan Pemfaktoran','Air','Akseso Kenderaan','Aksesori','Aksesori Jentera Berat','Aksesori Penghubung Dan Telekomunikasi','Aksesori Senjata Api','Akuatik','Akustik Dan Gelombang','Alat Forensik Dan Aksesori','Alat Gani','Alat Ganti','Alat Ganti Dan Kelengkapan Bot','Alat Hawa Dingin','Alat Hawa Dingin Kenderaan','Alat Kebombaan','Alat Kelengkapan Perubatan','Alat Keselamatan, Perlindungan Dan Kawalan Perlindungan Dan Kawalan','Alat Muzik Dan Aksesori','Alat Muzik, Kesenian dan Aksesori','Alat Penghasil Nyalaan','Alat penyelamat','Alat Penyimpan Tenaga Dan Aksesori','Alat Perhubungan','Alat Semboyan','Alat-Alat Marin','Alatganti Dan Kelengkapan Pesawat','Alatulis','Animation','Anti Kakis','Artis Dan Penghibur Profesional','Audio Visual', |
|||
'Bagasi Dan Beg dari kulit','Bahan Api Nuklear','Bahan Bacaan','Bahan Bacaan Terbitan Luar Negara','Bahan Bakar','Bahan Binaan','Bahan dan Peralatan Solekan dan Andaman','Bahan Letupan','Bahan Peledak','Bahan Pelincir','Bahan pembungkusan','Bahan Pencuci Dan Pembersihan','Bahan Pendidikan','Bahan Penerbitan Elektronik Dan Muzik','Bahan Surih, Drafting Dan Alat Lukis','Bahan Tambah','Bahan Tarpaulin Dan Kanvas','Baik Pulih Kasut Dan Barangan Kulit','Baikpulih Barang-Barang Logam','Baja Dan Nutrien Tumbuhan','Baka','Bangunan','Bantuan Kecemasan DanAmbulan','Bantuan Kemanusiaan','Barangan Hiasan Dalaman Dan Aksesori','Barangan PVC','Barge','Bas','Basah','Basikal','Bekalan Pejabat Dan Alatulis','Bekas','Belon Panas','Benih Semaian','Bill Board','Bioteknologi','Bot','Bot Malim','Bot Tunda','Brangan Logam','Broker Insuran','Broker Perkapalan','Bunga Api Dan Mercun','Butang Dan Bekalan Jahitan', |
|||
'Cat','Cenderamata Dan Hadiah','Cetakan Hologram','Cetakan Keselamatan','Chalet','Cloud Seeding','Complete Rounds','Customization and maintenance including data', |
|||
'Dadah Berjadual','Dan Aksesori','Darat','Dasar Dan Peraturan','Data management –Provide services including Disaster','Dll','DNA','Dobi','Dokumentasi Dan Panduarah', |
|||
'Elektronik','Empangan','Enjin Kenderaan','Enjin, Komponen Enjin Dan Aksesori','Entry, data processing', |
|||
'Fabrik','Faksimili','Feri','Filem dan Mikrofilem','Filem Siap Untuk Tayangan','Fotografi', |
|||
'Gas','Gas Turbine','Geographic Information System','Geologi','Graphic Design', |
|||
'Habitat Dan Tempat Kurungan Haiwan','Haiwan Ternakan, Bukan Ternakan dan Akuatik','Hak Harta Intelek','Hardware','Hardware','Hardware and Software leasing','Hasil Sampingan Dan Sisa Perladangan','Helikopter','Hiasan Dalaman','Hiasan Jalan','Hidrografi','Homestay','Hortikultur','Hotel','Hubungan Antarabangsa','Hutan Dan Ladang Hutan', |
|||
'ICT security and firewall, Encryption, PKI, Anti Virus','Industri','Infrastructure','Internet', |
|||
'Jentera','Jentera Berat','Jentera Berat','Jet Ski', |
|||
'Kabel Elektrik Dan Aksesori','Kain','Kajian Telekomunikasi','Kakitangan Iktisas','Kakitangan Separa Iktisas','Kamera dan Aksesori','Kanvas','Kapal','Kapal Angkasa Dan Alatganti','Kapal Laut','Kapal Selam','Kapal Selam','Kapal Terbang','Kawalan Keselamatan','Kawalan Serangga Perosak, Anti Termite','Kawasan','Kayu','Kediaman','Kelengkapan','Kelengkapan Dan Aksesori','Kelengkapan Hospital Dan Makmal','Kelengkapan Pakaian','Kelengkapan Sasaran','Kemudahan Awam','Kemudahan Awam','Kenderaan','Kenderaan Bawah 3 Ton','Kenderaan Ber Rel Dan kereta Kabel','Kenderaan Jenazah','Kenderaan Kegunaan Khusus','Kenderaan Kegunaan Khusus','Kenderaan Melebihi 3Ton','Kenderaan Rekreasi','Kenderaan Udara','Kereta','Kerja Pembaikan Kapal Angkasa','Kerja-Kerja Khusus','Kerja-kerja Mengetuk dan Mengecat','Kerja-Kerja Pembaikan Kenderaan Ber Rel Dan Kereta Kabel','Kerja-Kerja Penyelenggaraan Sistem Kenderaan','Kertas','Kertas Komputer','Khidmat Guaman','Khidmat Latihan, Tenaga Pengajar dan Moderator','Khidmat Udara','Kit Pendidikan','Kodifikasi','Kolam Kumbahan','Komponen Dan Aksesori Elektrik','Komponen Enjin Pembakaran Dalaman','Kontena','Kotak','Kren','Kunci, Perkakasan Perlindungan Dan Aksesori','Kusyen dan Bumbung', |
|||
'Label','Ladang','Lagu','Lain-lain Media Pengiklanan','Laminating','Lampu, Komponen Lampu Dan Aksesori','Laut','Lesen','LIDAR','Lilin','Logam','Lokomotif Dan Troli Elektrik','Lori', |
|||
'Maintenance','Makanan','Makanan Bermasak','Makanan Bermasak','Makanan Dan Bahan Mentah Kering','Makanan dan Minuman','Makanan Haiwan','Makmal','Malim Kapal','Marker','Mechanisation System','Media Cetak','Media Elektronik','Medium Penyimpanan','Membaik Pulih Bateri','Membaik Pulih Tayar','Membaik Pulih TempatDuduk','Membaiki Buff Fuel Tank','Membaikpulih BahanTerbitan Dan Manuskrip','Membekal Air','Membeli Barang Lusuh Perlu Permit','Membeli Barang Lusuh Tanpa Permit','Membersih Kawasan','Membersih Kenderaan','Membersih Pantai','Memproses Air','Memproses Filem','Menangkap','Mencetak Borang','Mencetak Buku, Majalah, Laporan Akhbar','Mencetak Continuous Stationery Forms','Mencetak Fail, Kad Perniagaan Dan Kad Ucapan','Mencetak Label, Poster dan Pelekat','Mencetak Label, Poster, Pelekat dan Iron On','Mencuci Kolam Renang','Menembak Haiwan','Mengangkat Sampah','Mengangkut Mayat','Mengikat Dan Melepas Tali Kapal','Menjahit Bukan Pakaian','Menjahit Pakaian Dan Kelengkapan','Menjilid Kulit Keras','Menjilid Kulit Lembut','Menyelam','Mereka-Cipta Dan Seni Halus','Mesin Dan Kelengkapan Bengkel','Mesin dan Kelengkapan Khusus','Mesin dan peralatan makmal','Mesin dan Peralatan Pejabat','Mesin dan Peralatan Woksyop','Mesin Pengimbas','Mesin-Mesin Pejabat','Mesin-Mesin Pejabat Dan Aksesori','Minuman Tambahan','Motel','Motor Dan Alat Ubah','Motosikal','Multimedia-products services and maintenance','Multimodal Transport Operator', |
|||
'Negotiator','Networking-supply','Nylon', |
|||
'Oceanografi', |
|||
'P.A Sistem Dan Alat Muzik','Paip Air Dan Komponen','Paip Dan Kelengkapan','Pakaian','Pakaian Keselamatan, Kelengkapan Dan Aksesori','Pakaian Sukan Dan Aksesori','Palet','Pameran pertunjukan, taman hiburan dan karnival','Papan Tanda dan Aksesori','Pejabat','Pekakas Perubatan Pakai Buang','Pelancar Misil Dan Roket','Pelupusan Dan Perawatan Sisa berbahaya','Pelupusan Dan Perawatan Sisa tidak berbahaya','Pelupusan dan Rawatan Sisa Radio Aktif dan Nuklear','Peluru Berpandu','Peluru Dan Bom','Pemadam Api','Pembaikan Alat Keselamatan','Pembaikan Kenderaan Yang Tidak Berenjin','Pembajaan','Pembersihan Bangunan Dan Pejabat','Pembersihan Tumpahan Minyak','Pembuat','Pembuat','Pembuat Keselamatan','Pembungkusan','Pembungkusan Dan Penyimpanan','Pemeliharaan Bahan Bahan Sejarah Dan Tempat Bersejarah','Pemetaan','Pemetaan Utiliti Bawah Tanah','Pemilik Kapal','Pemungut Hutang','Pencahayaan','Pencelup','Pencucuh','Penerbitan Elektronik Atas Talian','Pengangkutan Lori','Pengatur Huruf','Pengeluaran Filem','Pengenalan Dan Pas Keselamatan Bersalut','Penghantar Notis','Penghantaran Dokumen','Pengkomersilan','Pengurusan Jenazah Dan Kelengkapan','Pengurusan Kewangan Dan Korporat','Pengurusan Pelabuhan','Penjana Kuasa','Pensijilan dan Pengiktirafan','Penterjemahan','Penulisan – Semua Jenis Penulisan','Penyediaan Akaun dan Pengauditan','Penyediaan Pentas','Penyelenggaraan','Penyelenggaraan Kapal Terbang','Penyelenggaraan Misil','Penyelenggaraan Simulator Helikopter','Penyelenggaraan Simulator Kapal','Penyelenggaraan Simulator Kapal Terbang','PenyelenggaraanHelikopter','Penyelenggaran Dan Pembaikan Senjata','Penyiaran','Penyiasat Persendirian','Penyimpanan Rekod', |
|||
'Perabot','Perabot Jalan Raya','Perabot Pejabat','Perabot, Perabot Makmal dan Kelengkapan Berasaskan','Peralatan','Peralatan Dan Kelengkapan Hospital','Peralatan Dan Kelengkapan Pertanian','Peralatan Dan Kelengkapan Perubatan','Peralatan Dan Perkakas Domestik','Peralatan Kawalan Api','Peralatan Kawalan Keselamatan','Peralatan Keselamatan','Peralatan Keselamatan dan Senjata','Peralatan Makmal Pengukuran, Pencerapan Dan Sukat','Peralatan Makmal serta Aksesori','Peralatan Marin','Peralatan Memancing','Peralatan Memburu','Peralatan Pemantauan Dan Pengesanan','Peralatan Pemprosesan Fotografi, Mikrofilem','Peralatan Pengawalan Perosak Tanaman','Peralatan Percetakan Serta Aksesori','Peralatan Perindustrian Hiliran','Peralatan Perindustrian Huluan','Peralatan Perkhemahan Dan Aktiviti Luar','Peralatan Servis Dan Selenggara','Peralatan Sistem Bunyi, Pembesar Suara dan Projektor','Peralatan Sistem Kumbahan Dan Aksesori','Peralatan Sukan','Peralatan Untuk Orang Kurang Upaya Dan Pemulihan','Perhubungan','Perikanan Dan Akuakultur','Perkakas','Perkakas Elektrik Dan Aksesori','Perkakas Elektronik Dan Aksesori','Perkakasan Dan Bahan Kebersihan Diri Dan Mandian, Kelengkapan Bilik Air','Perkakasan Penyuntingan','Perkhidmatan Fotostat','Perkhidmatan Mel Pukal','Permainan','Perosak, Rumpai','Persembahan','Pertanian','Perundingan','Pesakit','Pesawat','Pesawat Udara','Pest Control','Pestaria','Pewarna','Pisah Warna','Plastik','Plastik','Printers, storage area network','Production Testing, Surface Well Testing and Wire Line Services','Pump','Pusat Latihan','Pvc', |
|||
'Racun Berjadual','Racun Serangga','Radar Dan Alatganti','Rakaman','Rawatan Hutan','Reaktor dan Instrumen Nuklear','Rekabentuk Percetakan','Renting','Resort','Roket Dan Sub Sistem, Pelancar','Rotan','Ruang Niaga','Rumah Kediaman','Rumah Tumpangan', |
|||
'Salvage Boat','Sampan','Sampel dan Sampel Awetan Haiwan','Sand Blasting Dan Mengecat Untuk Kapal','Satelit','Satelit Dan Alatganti','Semua Peralatan Sukatan','Senjata Api','Serangga','Sesalur','Shelf packages including maintenance','Ship Chandling','Ship Trimming','Simulator','Simulator Bot','Simulator serta lain-lain','Sisa Perawatan','Sistem Elektrik','Sistem Elektronik','Sistem Pencegah Kebakaran','Sistem Perhubungan','Sistem, Peralatan, Alat Ganti Keretapi Dan Aksesori','Software','Solekan','Split','Stesen Janakuasa, Peralatan','Stevedor','Stor','Sub Sistem Roket','Sukan','Sumber Air','Sungai','Syarikat Insuran','Syarikat pelelong awam','System development', |
|||
'Tag','Talian Paip','Taman','Tanaman','Tanda Dan Stiker','Tangki','Tasik','Tatahias Haiwan','Teknologi Hijau','Teknologi Maklumat Dan Komunikasi','Tekstil','Tekstil Guna Semula Kakitangan','Tekstil Pakai Buang Kakitangan','Telecommunication','Telekomunikasi','Telly Clerk','Tempat Letak Kereta','Tenaga Buruh','Ternakan','Terusan','Topografi','Trailer Dan Aksesori','Tukun Tiruan','Tumbuhan', |
|||
'Ubat Haiwan','Ubat Tidak Berjadual','Ujian Makmal','Ukuran', |
|||
'Varnishing', |
|||
'WAN','Wayar Elektrik Dan Aksesori','Wireless' |
|||
); |
|||
|
|||
/** |
|||
* Return a random company name |
|||
* |
|||
* @example 'AirAsia' |
|||
*/ |
|||
public static function companyName() |
|||
{ |
|||
return static::randomElement(static::$companies); |
|||
} |
|||
|
|||
/** |
|||
* Return a random industry |
|||
* |
|||
* @example 'Automobil' |
|||
*/ |
|||
public static function industry() |
|||
{ |
|||
return static::randomElement(static::$industry); |
|||
} |
|||
} |
@ -0,0 +1,169 @@ |
|||
<?php |
|||
|
|||
namespace Faker\Provider\ms_MY; |
|||
|
|||
class Miscellaneous extends \Faker\Provider\Miscellaneous |
|||
{ |
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia |
|||
*/ |
|||
protected static $jpjNumberPlateFormats = array( |
|||
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}', |
|||
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}', |
|||
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}', |
|||
'{{peninsularPrefix}}{{validAlphabet}}{{validAlphabet}} {{numberSequence}}', |
|||
'W{{validAlphabet}}{{validAlphabet}} {{numberSequence}} {{validAlphabet}}', |
|||
'KV {{numberSequence}} {{validAlphabet}}', |
|||
'{{sarawakPrefix}} {{numberSequence}} {{validAlphabet}}', |
|||
'{{sabahPrefix}} {{numberSequence}} {{validAlphabet}}', |
|||
'{{specialPrefix}} {{numberSequence}}', |
|||
); |
|||
|
|||
/** |
|||
* Some alphabet has higher frequency that coincides with the current number |
|||
* of registrations. E.g. W = Wilayah Persekutuan |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format |
|||
*/ |
|||
protected static $peninsularPrefix = array( |
|||
'A','A','B','C','D','F','J','J','K','M','N','P','P','R','T','V', |
|||
'W','W','W','W','W','W', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format_2 |
|||
*/ |
|||
protected static $sarawakPrefix = array( |
|||
'QA','QK','QB','QC','QL','QM','QP','QR','QS','QT' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format_3 |
|||
*/ |
|||
protected static $sabahPrefix = array( |
|||
'SA','SAA','SAB','SAC','SB','SD','SG', |
|||
'SK','SL','SS','SSA','ST','STA','SU' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Commemorative_plates |
|||
*/ |
|||
protected static $specialPrefix = array( |
|||
'1M4U', |
|||
'A1M', |
|||
'BAMbee', |
|||
'Chancellor', |
|||
'G','G1M','GP','GT', |
|||
'Jaguh', |
|||
'K1M','KRISS', |
|||
'LOTUS', |
|||
'NAAM','NAZA','NBOS', |
|||
'PATRIOT','Perdana','PERFECT','Perodua','Persona','Proton','Putra','PUTRAJAYA', |
|||
'RIMAU', |
|||
'SAM','SAS','Satria','SMS','SUKOM', |
|||
'T1M','Tiara','TTB', |
|||
'U','US', |
|||
'VIP', |
|||
'WAJA', |
|||
'XIIINAM','XOIC','XXVIASEAN','XXXIDB', |
|||
'Y' |
|||
); |
|||
|
|||
/** |
|||
* Chances of having an empty alphabet will be 1/24 |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Malaysia#Current_format |
|||
*/ |
|||
protected static $validAlphabets = array( |
|||
'A','B','C','D','E','F', |
|||
'G','H','J','K','L','M', |
|||
'N','P','Q','R','S','T', |
|||
'U','V','W','X','Y','' |
|||
); |
|||
|
|||
/** |
|||
* Return a valid Malaysia JPJ(Road Transport Department) vehicle licence plate number |
|||
* |
|||
* @example 'WKN 2368' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function jpjNumberPlate() |
|||
{ |
|||
$formats = static::toUpper(static::lexify(static::bothify(static::randomElement(static::$jpjNumberPlateFormats)))); |
|||
|
|||
return $this->generator->parse($formats); |
|||
} |
|||
|
|||
/** |
|||
* Return Peninsular prefix alphabet |
|||
* |
|||
* @example 'W' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function peninsularPrefix() |
|||
{ |
|||
return static::randomElement(static::$peninsularPrefix); |
|||
} |
|||
|
|||
/** |
|||
* Return Sarawak state prefix alphabet |
|||
* |
|||
* @example 'QA' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function sarawakPrefix() |
|||
{ |
|||
return static::randomElement(static::$sarawakPrefix); |
|||
} |
|||
|
|||
/** |
|||
* Return Sabah state prefix alphabet |
|||
* |
|||
* @example 'SA' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function sabahPrefix() |
|||
{ |
|||
return static::randomElement(static::$sabahPrefix); |
|||
} |
|||
|
|||
/** |
|||
* Return specialty licence plate prefix |
|||
* |
|||
* @example 'G1M' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function specialPrefix() |
|||
{ |
|||
return static::randomElement(static::$specialPrefix); |
|||
} |
|||
|
|||
/** |
|||
* Return a valid license plate alphabet |
|||
* |
|||
* @example 'A' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function validAlphabet() |
|||
{ |
|||
return static::randomElement(static::$validAlphabets); |
|||
} |
|||
|
|||
/** |
|||
* Return a valid number sequence between 1 and 9999 |
|||
* |
|||
* @example '1234' |
|||
* |
|||
* @return @integer |
|||
*/ |
|||
public static function numberSequence() |
|||
{ |
|||
return mt_rand(1, 9999); |
|||
} |
|||
} |
@ -0,0 +1,244 @@ |
|||
<?php |
|||
|
|||
namespace Faker\Provider\ms_MY; |
|||
|
|||
class Payment extends \Faker\Provider\Payment |
|||
{ |
|||
protected static $bankFormats = array( |
|||
'{{localBank}}', |
|||
'{{foreignBank}}', |
|||
'{{governmentBank}}' |
|||
); |
|||
|
|||
/** |
|||
* @link http://www.muamalat.com.my/consumer-banking/internet-banking/popup-ibg.html |
|||
*/ |
|||
protected static $bankAccountNumberFormats = array( |
|||
'##########', |
|||
'###########', |
|||
'############', |
|||
'#############', |
|||
'##############', |
|||
'###############', |
|||
'################', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia |
|||
*/ |
|||
protected static $localBanks = array( |
|||
'Affin Bank', |
|||
'Alliance Bank', |
|||
'AmBank', |
|||
'CIMB Bank', |
|||
'Hong Leong Bank ', |
|||
'Maybank', |
|||
'Public Bank', |
|||
'RHB Bank' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia#List_of_foreign_banks_(commercial) |
|||
*/ |
|||
protected static $foreignBanks = array( |
|||
'Bangkok Bank Berhad', |
|||
'Bank of America Malaysia Berhad', |
|||
'Bank of China (Malaysia) Berhad', |
|||
'Bank of Tokyo-Mitsubishi UFJ (Malaysia) Berhad', |
|||
'BNP Paribas Malaysia Berhad', |
|||
'China Construction Bank', |
|||
'Citibank Berhad', |
|||
'Deutsche Bank (Malaysia) Berhad', |
|||
'HSBC Bank Malaysia Berhad', |
|||
'India International Bank (Malaysia) Berhad', |
|||
'Industrial and Commercial Bank of China (Malaysia) Berhad', |
|||
'J.P. Morgan Chase Bank Berhad', |
|||
'Mizuho Bank (Malaysia) Berhad', |
|||
'National Bank of Abu Dhabi Malaysia Berhad', |
|||
'OCBC Bank (Malaysia) Berhad', |
|||
'Standard Chartered Bank Malaysia Berhad', |
|||
'Sumitomo Mitsui Banking Corporation Malaysia Berhad', |
|||
'The Bank of Nova Scotia Berhad', |
|||
'United Overseas Bank (Malaysia) Bhd.' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia#Development_Financial_Institutions_(Government-owned_banks)_(full_list) |
|||
*/ |
|||
protected static $governmentBanks = array( |
|||
'Agro Bank Malaysia', |
|||
'Bank Pembangunan Malaysia Berhad (BPMB) (The development bank of Malaysia)', |
|||
'Bank Rakyat', |
|||
'Bank Simpanan Nasional', |
|||
'Credit Guarantee Corporation Malaysia Berhad (CGC)', |
|||
'Export-Import Bank of Malaysia Berhad (Exim Bank)', |
|||
'Malaysia Debt Ventures Berhad', |
|||
'Malaysian Industrial Development Finance Berhad (MIDF)', |
|||
'SME Bank Berhad', |
|||
'Sabah Development Bank Berhad (SDB)', |
|||
'Sabah Credit Corporation (SCC)', |
|||
'Tabung Haji', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_banks_in_Malaysia#Investment-Link_Funds_(Insurance_Companies_-_Takaful_included) |
|||
*/ |
|||
protected static $insuranceCompanies = array( |
|||
'AIA Malaysia', |
|||
'AIG Malaysia', |
|||
'Allianz Malaysia', |
|||
'AXA AFFIN Life Insurance', |
|||
'Berjaya General Insurance', |
|||
'Etiqa Insurance', |
|||
'Great Eastern Insurance', |
|||
'Hong Leong Assurance', |
|||
'Kurnia Insurans Malaysia', |
|||
'Manulife Malaysia Insurance', |
|||
'MSIG Malaysia', |
|||
'Prudential Malaysia', |
|||
'Tokio Marine Life Malaysia Insurance', |
|||
'UNI.ASIA General Insurance', |
|||
'Zurich Insurance Malaysia', |
|||
); |
|||
|
|||
/** |
|||
* @link http://www.bankswiftcode.org/malaysia/ |
|||
*/ |
|||
protected static $swiftCodes = array( |
|||
'ABNAMY2AXXX','ABNAMYKLPNG','ABNAMYKLXXX','AFBQMYKLXXX','AIBBMYKLXXX', |
|||
'AISLMYKLXXX','AMMBMYKLXXX','ARBKMYKLXXX', |
|||
'BIMBMYKLXXX','BISLMYKAXXX','BKCHMYKLXXX','BKKBMYKLXXX','BMMBMYKLXXX', |
|||
'BNMAMYKLXXX','BNPAMYKAXXX','BOFAMY2XLBN','BOFAMY2XXXX','BOTKMYKAXXX', |
|||
'BOTKMYKXXXX', |
|||
'CHASMYKXKEY','CHASMYKXXXX','CIBBMYKAXXX','CIBBMYKLXXX','CITIMYKLJOD', |
|||
'CITIMYKLLAB','CITIMYKLPEN','CITIMYKLXXX','COIMMYKLXXX','CTBBMYKLXXX', |
|||
'DABEMYKLXXX','DBSSMY2AXXX','DEUTMYKLBLB','DEUTMYKLGMO','DEUTMYKLISB', |
|||
'DEUTMYKLXXX', |
|||
'EIBBMYKLXXX','EOBBMYKLXXX','EXMBMYKLXXX', |
|||
'FEEBMYKAXXX', |
|||
'HBMBMYKLXXX','HDSBMY2PSEL','HDSBMY2PXXX','HLBBMYKLIBU','HLBBMYKLJBU', |
|||
'HLBBMYKLKCH','HLBBMYKLPNG','HLBBMYKLXXX','HLIBMYKLXXX','HMABMYKLXXX', |
|||
'HSBCMYKAXXX','HSTMMYKLGWS','HSTMMYKLXXX', |
|||
'KAFBMYKLXXX','KFHOMYKLXXX', |
|||
'MBBEMYKAXXX','MBBEMYKLBAN','MBBEMYKLBBG','MBBEMYKLBWC','MBBEMYKLCSD', |
|||
'MBBEMYKLIPH','MBBEMYKLJOB','MBBEMYKLKEP','MBBEMYKLKIN','MBBEMYKLKLC', |
|||
'MBBEMYKLMAL','MBBEMYKLPEN','MBBEMYKLPGC','MBBEMYKLPJC','MBBEMYKLPJY', |
|||
'MBBEMYKLPKG','MBBEMYKLPSG','MBBEMYKLPUD','MBBEMYKLSAC','MBBEMYKLSBN', |
|||
'MBBEMYKLSHA','MBBEMYKLSUB','MBBEMYKLWSD','MBBEMYKLXXX','MBBEMYKLYSL', |
|||
'MFBBMYKLXXX','MHCBMYKAXXX', |
|||
'NOSCMY2LXXX','NOSCMYKLXXX', |
|||
'OABBMYKLXXX','OCBCMYKLXXX','OSKIMYKLXXX', |
|||
'PBBEMYKLXXX','PBLLMYKAXXX','PCGLMYKLXXX','PERMMYKLXXX','PHBMMYKLXXX', |
|||
'PTRDMYKLXXX','PTROMYKLFSD','PTROMYKLXXX', |
|||
'RHBAMYKLXXX','RHBBMYKAXXX','RHBBMYKLXXX','RJHIMYKLXXX', |
|||
'SCBLMYKXLAB','SCBLMYKXXXX','SMBCMYKAXXX', |
|||
'UIIBMYKLXXX','UOVBMYKLCND','UOVBMYKLXXX', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Malaysian_ringgit |
|||
*/ |
|||
protected static $currencySymbol = array( |
|||
'RM' |
|||
); |
|||
|
|||
/** |
|||
* Return a Malaysian Bank |
|||
* |
|||
* @example 'Maybank' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function bank() |
|||
{ |
|||
$formats = static::randomElement(static::$bankFormats); |
|||
|
|||
return $this->generator->parse($formats); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Bank account number |
|||
* |
|||
* @example '1234567890123456' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public function bankAccountNumber() |
|||
{ |
|||
$formats = static::randomElement(static::$bankAccountNumberFormats); |
|||
|
|||
return static::numerify($formats); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Local Bank |
|||
* |
|||
* @example 'Public Bank' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function localBank() |
|||
{ |
|||
return static::randomElement(static::$localBanks); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Foreign Bank |
|||
* |
|||
* @example 'Citibank Berhad' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function foreignBank() |
|||
{ |
|||
return static::randomElement(static::$foreignBanks); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Government Bank |
|||
* |
|||
* @example 'Bank Simpanan Nasional' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function governmentBank() |
|||
{ |
|||
return static::randomElement(static::$governmentBanks); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian insurance company |
|||
* |
|||
* @example 'AIA Malaysia' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function insurance() |
|||
{ |
|||
return static::randomElement(static::$insuranceCompanies); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Bank SWIFT Code |
|||
* |
|||
* @example 'MBBEMYKLXXX' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function swiftCode() |
|||
{ |
|||
return static::toUpper(static::lexify(static::randomElement(static::$swiftCodes))); |
|||
} |
|||
|
|||
/** |
|||
* Return the Malaysian currency symbol |
|||
* |
|||
* @example 'RM' |
|||
* |
|||
* @return @string |
|||
*/ |
|||
public static function currencySymbol() |
|||
{ |
|||
return static::randomElement(static::$currencySymbol); |
|||
} |
|||
} |
@ -0,0 +1,813 @@ |
|||
<?php |
|||
namespace Faker\Provider\ms_MY; |
|||
|
|||
use Faker\Provider\DateTime; |
|||
use Faker\Generator; |
|||
|
|||
class Person extends \Faker\Provider\Person |
|||
{ |
|||
protected static $firstNameFormat = array( |
|||
'{{firstNameMaleMalay}}', |
|||
'{{firstNameFemaleMalay}}', |
|||
'{{firstNameMaleChinese}}', |
|||
'{{firstNameFemaleChinese}}', |
|||
'{{firstNameMaleIndian}}', |
|||
'{{firstNameFemaleIndian}}', |
|||
'{{firstNameMaleChristian}}', |
|||
'{{firstNameFemaleChristian}}', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Malaysian_names |
|||
*/ |
|||
protected static $maleNameFormats = array( |
|||
//Malay |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}', |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}}', |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}} bin {{titleMaleMalay}}{{lastNameMalay}}', |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}', |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}', |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} bin {{titleMaleMalay}}{{firstNameMaleMalay}}', |
|||
'{{muhammadName}}{{haji}}{{titleMaleMalay}}{{firstNameMaleMalay}} bin {{titleMaleMalay}}{{lastNameMalay}}', |
|||
//Chinese |
|||
'{{lastNameChinese}} {{firstNameMaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameMaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameMaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameMaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameMaleChinese}}', |
|||
'{{firstNameMaleChristian}} {{lastNameChinese}} {{firstNameMaleChinese}}', |
|||
//Indian |
|||
'{{initialIndian}} {{firstNameMaleIndian}}', |
|||
'{{initialIndian}} {{lastNameIndian}}', |
|||
'{{firstNameMaleIndian}} a/l {{firstNameMaleIndian}}', |
|||
'{{firstNameMaleIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}', |
|||
'{{firstNameMaleIndian}} {{lastNameIndian}} a/l {{lastNameIndian}}', |
|||
'{{firstNameMaleIndian}} {{lastNameIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}', |
|||
'{{firstNameMaleIndian}} {{lastNameIndian}}', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Malaysian_names |
|||
*/ |
|||
protected static $femaleNameFormats = array( |
|||
//Malay |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}', |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}}', |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}} binti {{titleMaleMalay}}{{lastNameMalay}}', |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} {{lastNameMalay}}', |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}} {{lastNameMalay}}', |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} binti {{titleMaleMalay}}{{firstNameMaleMalay}}', |
|||
'{{nurName}}{{hajjah}}{{firstNameFemaleMalay}} binti {{titleMaleMalay}}{{lastNameMalay}}', |
|||
//Chinese |
|||
'{{lastNameChinese}} {{firstNameFemaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameFemaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameFemaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameFemaleChinese}}', |
|||
'{{lastNameChinese}} {{firstNameFemaleChinese}}', |
|||
'{{firstNameFemaleChristian}} {{lastNameChinese}} {{firstNameFemaleChinese}}', |
|||
//Indian |
|||
'{{initialIndian}}{{firstNameFemaleIndian}}', |
|||
'{{initialIndian}}{{lastNameIndian}}', |
|||
'{{firstNameFemaleIndian}} a/l {{firstNameMaleIndian}}', |
|||
'{{firstNameFemaleIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}', |
|||
'{{firstNameFemaleIndian}} {{lastNameIndian}} a/l {{firstNameMaleIndian}}', |
|||
'{{firstNameFemaleIndian}} {{lastNameIndian}} a/l {{firstNameMaleIndian}} {{lastNameIndian}}', |
|||
'{{firstNameFemaleIndian}} {{lastNameIndian}}', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malay_people |
|||
* @link https://samttar.edu.my/senarai-nama-pelajar-2016/ |
|||
* @link http://smkspkl.edu.my/senarai-nama-pelajar |
|||
*/ |
|||
protected static $firstNameMaleMalay = array( |
|||
'A','A.r','A\'fif','A\'zizul','Ab','Abadi','Abas','Abd','Abd.','Abd.rahim','Abdel','Abdul','Abdull','Abdullah','Abdulloh','Abu','Adam','Adi','Adib','Adil','Adnan','Ady','Adzmin','Afandy','Afif','Afiq','Afza','Agus','Ahmad','Ahmat','Ahmed','Ahwali','Ahyer','Aidid','Aidil','Aiman','Aimman','Ainol','Ainuddin','Ainul','Aizad','Aizam','Aizat','Aizuddin','Ajis','Ajmal','Ajwad','Akhmal','Akid','Akif','Akmal','Al','Al-afnan','Al-muazrar','Alfian','Ali','Alias','Alif','Aliff','Alilah','Alin','Allif','Amaanullah','Amami','Aman','Amar','Ameershah','Amier','Amierul','Amil','Amin','Aminuddin','Amir','Amiruddin','Amirul','Ammar','Amran','Amri','Amru','Amrullah','Amsyar','Anas','Andri','Aniq','Anuar','Anuwar','Anwar','Aqeel','Aqif','Aqil','Arash','Arbani','Arefin','Arief','Arif','Arifen','Ariff','Ariffin','Arifin','Armi','Ashraf','Ashraff','Ashrof','Ashrul','Aslam','Asmawi','Asmin','Asmuri','Asraf','Asri','Asrialif','Asror','Asrul','Asymawi','Asyraaf','Asyraf','Atan','Athari','Awaludin','Awira','Azam','Azely','Azfar','Azhan','Azhar','Azhari','Azib','Azim','Aziz','Azizan','Azizul','Azizulhasni','Azlan','Azlee','Azli','Azman','Azmi','Azmie','Azmin','Aznan','Aznizam','Azraai','Azri','Azrie','Azrien','Azril','Azrin','Azrul','Azry','Azuan', |
|||
'Badri','Badrullesham','Baharin','Baharuddin','Bahrul','Bakri','Basaruddin','Basiran','Basirin','Basri','Basyir','Bazli','Borhan','Buang','Budi','Bukhari','Bukharudin','Bustaman','Buyung', |
|||
'Chailan', |
|||
'Dahalan','Dailami','Dan','Danial','Danie','Daniel','Danien','Danish','Darimin','Darul','Darus','Darwisy','Dhiyaulhaq','Diah','Djuhandie','Dolbahrin','Dolkefli','Dzikri','Dzul','Dzulfahmi','Dzulfikri','Dzulkarnaen', |
|||
'Eazriq','Effendi','Ehza','Eizkandar','Ekhsan','Elyas','Enidzullah','Ezam','Ezani', |
|||
'Fadhil','Fadly','Fadzil','Fadziruddin','Fadzli','Fahmi','Faiq','Fairuz','Faisal','Faiz','Faizal','Faizurrahman','Fakhrul','Fakhrullah','Farham','Farhan','Farid','Faris','Farisan','Fariz','Fasil','Fateh','Fathi','Fathuddin','Fathul','Fauzan','Fauzi','Fauzul','Fawwaz','Fazal','Fazly','Fazreen','Fazril','Fendi','Fikri','Fikrie','Fikrul','Firdaus','Fithri','Fitiri','Fitri','Fuad', |
|||
'Ghazali', |
|||
'Habib','Haddad','Hadi','Hadif','Hadzir','Haffize','Haffizi','Hafidzuddin','Hafis','Hafiy','Hafiz','Hafizan','Hafizhan','Hafizi','Hafizsyakirin','Hafizuddin','Haikal','Haiqal','Hairol','Hairollkahar','Hairuddin','Hairul','Hairun','Haisyraf','Haizan','Hakeem','Hakim','Hakimi','Hakimie','Halidan','Haliem','Halim','Hamdani','Hamidoon','Hamizan','Hamka','Hamzah','Hanafi','Hanif','Hanit','Hannan','Haqeem','Haqimie','Harez','Haris','Harith','Hariz','Harmaini','Harraz','Harun','Hasan','Hashim','Hasif','Hasnul','Hasrin','Hasrol','Hassan','Hasyim','Haszlan','Hayani','Hazim','Haziq','Haziqh','Hazrie','Hazrul','Hazwan','Hazzam','Helmy','Hermansah','Hidayat','Hidayatullah','Hilmi','Hisam','Hisammudin','Hisyam','Hj','Hoirussalam','Humadu','Hurmin','Husain','Husaini','Husnul','Hussein','Hussin','Huzaifi','Huzaimi','Huzzaini', |
|||
'Ibnu','Ibrahim','Idham','Idlan','Idris','Idrus','Idzwan','Ielman','Ighfar','Ihsan','Ikhmal','Ikhwan','Ikmal','Ilham','Ilhan','Illias','Ilman','Iman','Imran','Indra','Innamul','Iqbal','Iqwan','Iraman','Irfan','Irman','Irsyad','Isa','Ishak','Ishaq','Iskandar','Isma','Ismail','Ismaon','Isyraq','Iwan','Iyad','Izam','Izdihar','Izlan','Izuhail','Izwan','Izz','Izzan','Izzat','Izzikry','Izzuddin','Izzul', |
|||
'Ja\'afer','Jaf','Jaferi','Jafree','Jafri','Jahari','Jalani','Jamal','Jamali','Jamalludin','Jamaluddin','Jamekon','Jamil','Jamsare','Jani','Jasin','Jasni','Jebat','Jefrie','Johari','Joharudin','Jumat','Junaidi', |
|||
'Kamal','Kamaruddin','Kamarudin','Kamarul','Kamaruzain','Kamaruzaman','Kamaruzzaman','Kasim','Kasturi','Kemat','Khadzromi','Khairi','Khairil','Khairin','Khairiz','Khairol','Khairubi','Khairudin','Khairul','Khairulnizam','Khairun','Khairurrazi','Khalilul','Khasmadi','Khasri','Khatta','Khirul','Khoirul','Kholis','Khusaini','Khuzairey','Kutni', |
|||
'Latiff','Lazim','Lokman','Loqman','Lufty','Lukman','Luqman','Luqmanul','Luthfi','Luthfie', |
|||
'M.','Maamor','Madfaizal','Mahadhir','Mahatdir','Mahmusin','Mansor','Marlizam','Martonis','Mastura','Mat','Mazlan','Mazmin','Mazwan','Md','Md.','Megat','Meor','Midoon','Mie','Mikhail','Mirza','Misbun','Miskan','Misran','Miza','Mohlim','Mohmad','Mokhtar','Mokhzani','Moktar','Mu\'izzuddin','Muazzam','Mubarak','Muhaimen','Muhaimi','Muhammad','Muhd','Muid','Muizzuddin','Muizzudin','Mukhtar','Mukhriz','Mukminin','Murad','Murshid','Mus\'ab','Musa','Musiran','Muslim','Mustafa','Mustain','Mustaqim','Musyrif','Muszaphar','Muzami','Muzamil','Muzhafar','Muzzammil', |
|||
'Na\'imullah','Nabil','Naderi','Nadzeri','Naim','Najhan','Najib','Najmi','Nakimie','Naqib','Naqiuddin','Narul','Nasaruddin','Nashrul','Nasimuddin','Nasir','Nasiruddin','Nasri','Nasrizal','Nasruddin','Nasrul','Nasrullah','Naufal','Nawawi','Nazari','Nazaruddin','Nazarul','Nazeem','Nazeri','Nazhan','Nazim','Nazlan','Nazmi','Nazren','Nazri','Nazril','Nazrin','Nazrul','Nazzab','Ngadinin','Ngasiman','Ngatri','Nik','Nizam','Nizan','Nizar','Noor','Noordin','Noorizman','Nor','Norain','Norazman','Norazmi','Nordanish','Nordiarman','Nordin','Norfadli','Norfahmi','Norhakim','Norhan','Norhisham','Norsilan','Nur','Nur\'irfaan','Nurakmal','Nurhanafi','Nurhazrul','Nurul','Nuwair','Nuzrul','Nuzul', |
|||
'Omar','Omri','Osama','Osman','Othman', |
|||
'Pauzi','Puadi','Putra', |
|||
'Qairil','Qays','Qusyairi', |
|||
'R','Radin','Radzi','Radzuan','Rafael','Raffioddin','Rafiee','Rafiq','Rafizal','Rahim','Raihan','Raja','Rakmat','Ramdan','Ramlan','Ramli','Rash','Rashdan','Rashid','Rashidi','Rasid','Raulah','Rausyan','Razak','Razali','Razemi','Razif','Razlan','Razuan','Redzuan','Redzuawan','Redzwan','Rehan','Rehman','Rezal','Ridhuan','Ridwan','Ridza','Ridzuan','Ridzwan','Rifqi','Rizal','Rizli','Rohaizad','Rohaizal','Rohman','Roosmadi','Roseli','Roslan','Roslee','Rosli','Roslin','Rosman','Rosnan','Rossafizal','Rozi','Rukaini','Rukmanihakim','Ruknuddin','Ruslan','Rusli','Rusman', |
|||
'S.rozli','Sabana','Sabqi','Sabri','Sadili','Sadri','Saf\'han','Saffrin','Safie','Safiy','Safrizal','Safuan','Safwan','Sahamudin','Saharil','Said','Saidan','Saidin','Saif','Saiful','Saifullah','Saifullizan','Saipol','Sakri','Salamon','Salihin','Salimi','Salleh','Samad','Samani','Sameer','Samiun','Samsul','Samsur','Sanorhizam','Sardine','Sarudin','Sarwati','Saufishazwi','Sazali','Selamat','Senon','Shafarizal','Shafie','Shafiq','Shah','Shahamirul','Shaharudin','Shaheila','Shaheizy','Shahfiq','Shahmi','Shahnon','Shahquzaifi','Shahril','Shahrin','Shahrizal','Shahrol','Shahru','Shahrul','Shahrulnaim','Shahrun','Shahrunizam','Shahzwan','Shaiful','Shaikh','Shakif','Shakir','Sham','Shameer','Shamhazli','Shamil','Shamizan','Shamizul','Shamsuddin','Shamsudin','Shamsul','Shamsuri','Shamsuzlynn','Shapiein','Sharafuddin','Shari','Sharif','Sharifuddin','Sharifudin','Sharil','Sharizal','Sharsham','Sharudin','Sharul','Shaugi','Shauqi','Shawal','Shazwan','Sheikh','Shmsul','Shohaimi','Shukri','Sirajuddin','Sofian','Sohaini','Solehen','Solekhan','Solleh','Sualman','Subbahi','Subkhiddin','Sudarrahman','Sudirman','Suhaimi','Sukarni','Sukhairi','Sukri','Sukymi','Sulaiman','Sulhan','Suzaili','Suzaman','Syafiq','Syahaziq','Syahid','Syahir','Syahmi','Syahrial','Syahriman','Syahru','Syahzuan','Syakir','Syakirin','Syakirul','Syamirul','Syamsol','Syaqirin','Syarafuddin','Syawal','Syawalludin','Syazani','Syazwan','Syed','Syid','Syukri','Syuqeri', |
|||
'Tajuddin','Takiudin','Talha','Tarmizi','Tasripin','Taufek','Taufik','Tayib','Termizi','Thalahuddin','Thaqif','Tunan', |
|||
'Umair','Umar','Usman', |
|||
'W','Wafi','Wafiq','Wan','Wazir','Wazzirul','Wi', |
|||
'Yani','Yaqzan','Yazid','Yunos','Yusaini','Yusfaisal','Yushafiq','Yusni','Yusof','Yusoff','Yusri','Yussof','Yusuf', |
|||
'Zabayudin','Zabidi','Zahari','Zahid','Zahiruddin','Zahrul','Zaid','Zaidi','Zainal','Zaini','Zainodin','Zainordin','Zainuddin','Zainul','Zairy','Zaiyon','Zakaria','Zaki','Zakii','Zakri','Zakwan','Zambri','Zamre','Zamri','Zamrul','Zan','Zaqiyuddin','Zar\'ai','Zarif','Zariq','Zarith','Zarul','Zaukepli','Zawawi','Zharaubi','Zikri','Zikril','Zikry','Zizi','Zol','Zolkifle','Zubair','Zubir','Zufayri','Zufrie','Zuheeryrizal','Zuhri','Zuki','Zul','Zulfadhli','Zulfadli','Zulfahmi','Zulfaqar','Zulfaqqar','Zulfikar','Zulhaikal','Zulhakim','Zulhakimi','Zulhelmi','Zulhilmi','Zulkapli','Zulkarnain','Zulkefli','Zulkfli','Zulkifli','Zulkipli','Zulman','Zuri' |
|||
); |
|||
protected static $firstNameFemaleMalay = array( |
|||
'\'Abidah','\'Alyaa','\'Aqilah','\'Atiqah','\'Afiqah','\'Alia','\'Aqilah','A\'ishah','A\'in','A\'zizah','Abdah','Abiatul','Adani','Adawiyah','Adha','Adharina','Adhwa','Adibah','Adilah','Adilla','Adina','Adini','Adira','Adlina','Adlyna','Adriana','Adzlyana','Afifa','Afifah','Afina','Afiqah','Afiza','Afrina','Afzan','Ahda','Aida','Aidatul','Aidila','Aifa','Aiman','Aimi','Aimuni','Ain','Aina','Ainaa','Ainaanasuha','Aini','Ainin','Ainn','Ainnaziha','Ainul','Ainun','Ainur','Airin','Aishah','Aisya','Aisyah','Aiza','Akmal','Aleeya','Aleeza','Aleya','Aleza','Alia','Aliaa','Aliah','Aliffa','Aliffatus','Alina','Alis','Alisya','Aliya','Alkubra','Alleisya','Ally','Alya','Alyaa','Amalia','Amalien','Amalin','Amalina','Amani','Amanina','Amiera','Aminy','Amira','Amirah','Amisha','Amrina','Amylia','Amyra','An-nur','Anas','Andani','Andi','Anesha','Ani','Aninafishah','Anis','Anisah','Anisha','Anissa','Aniza','Anna','Anne','Antaza','Aqeem','Aqeera','Aqila','Aqilah','Arfahrina','Ariana','Ariena','Ariessa','Arifah','Arina','Ariqah','Arissa','Arisya','Armira','Arwina','Aryani','Ashika','Ashriyana','Asiah','Asma\'rauha','Asmaa\'','Asmaleana','Asniati','Asnie','Asniza','Aswana','Asy','Asyiqin','Asykin','Athirah','Atifa','Atifah','Atifahajar','Atikah','Atiqa','Atiqah','Atirah','Atyqah','Auni','Awatif','Awatiff','Ayesha','Ayu','Ayuni','Ayunie','Az','Azashahira','Aziah','Aziemah','Azika','Azira','Azizah','Azliah','Azliatul','Azlin','Azlina','Azmina','Azni','Azrah','Azrina','Azua','Azuin','Azwa','Azwani','Azyan','Azyyati', |
|||
'Badrina','Bahirah','Balqis','Basyirah','Batrisya','Batrisyia','Bilqis','Bismillah', |
|||
'Camelia','Cempaka', |
|||
'Dalila','Dalili','Damia','Dania','Danish','Darlina','Darwisyah','Deni','Dhani','\'Dhiya','Diana','Dianah','Dini','Diyana','Diyanah','Dylaila', |
|||
'Eizzah','Eliya','Ellynur','Elpiya','Elyana','Elysha','Ema','Emylia','Erika','Eva','Ezzatul', |
|||
'Faathihah','Fadhilah','Fadzliana','Fahda','Fahimah','Fahira','Fairuz','Faizah','Faiznur','Faizyani','Fakhira','Falah','Faqihah','Fara','Faradieba','Farah','Faraheira','Farahin','Farahiyah','Farahtasha','Farha','Farhah','Farhana','Faridatul','Fariha','Farina','Farisah','Farisha','Farrah','Fartinah','Farzana','Fasehah','Fasha','Fateha','Fatehah','Fathiah','Fathiha','Fathihah','Fathimah','Fatiha','Fatihah','Fatimatul','Fatin','Fatini','Fauziah','Faza','Fazlina','Fezrina','Filza','Filzah','Firzanah','Fitrah','Fitri','Fitriah','Fizra', |
|||
'Hadfina','Hadiyatul','Hafezah','Hafidzah','Hafieza','Hafizah','Hahizah','Hajar','Hakimah','Halimatul','Halimatussa\'diah','Halisah','Hamira','Hamizah','Hana','Hanaani','Hanani','Hani','Hanim','Hanini','Hanis','Hanisah','Hanna','Hannan','Hannani','Hanni','Hanun','Harma','Hasmalinda','Hasya','Hasyimah','Hayani','Hayati','Hayatul','Hayaty','Hazira','Hazirah','Hazmeera','Hazwani','Hazwanie','Herlina','Herliyana','Hidayah','Hidzwati','Huda','Humaira','Hureen','Husna','Husnina', |
|||
'Ida','Iffah','Iklil','Ili','Ilyana','Iman','Imelda','Insyira','Insyirah','Intan','\'Irdhina','Irdina','\'Irdina','Irsa','Iryani','\'Isdmah','Islamiah','Isnur','Izaiti','Izati','Izatie','Izatul','Izaty','Izlin','\'Izzah','Izzah','Izzani','Izzati','Izzatul','Izzaty','Izziani', |
|||
'Jaf','Jajuenne','Jani','Jannah','Jannatul','Jaslina','Jihan','Ju','Julia','Juliana','Juliya', |
|||
'Kamarlia','Kamelia','Kausthar','Kauthar','Khadijah','Khahirah','Khairina','Khairun','Khairunisa','Khairunnisa','Khairunnisak','Khaleeda','Khaleisya','Khaliesah','Khalisa','Khodijah', |
|||
'Laila','Liana','Lina','Lisa','Liyana', |
|||
'Madihah','Maheran','Mahfuzah','Mahirah','Maisara','Maisarah','Maizatul','Malihah','Mardhiah','Mariam','Marina','Mariska','Marlina','Marni','Maryam','Mas','Mashitah','Masitah','Mastura','Maswah','Masyikah','Masyitah','Maszlina','Mawaddah','Maya','Mazdiyana','Mazlyn','Melisa','Melissa','Mimi','Mira','Mirsha','Miskon','Miza','Muazzah','Mumtaz','Mursyidah','Muti\'ah','Muyassarah','Muzainah','Mysara','Mysarah', |
|||
'Nabihah','Nabila','Nabilah','Nabilla','Nabillah','Nadhilah','Nadhirah','Nadhrah','Nadia','Nadiah','Nadiatun','Nadilla','Nadira','Nadirah','Nadwah','Nadzirah','Nafisah','Nafizah','Najah','Najian','Najiha','Najihah','Najla','Najwa','Najwani','Naliny','Naqibahuda','Nashrah','Nashuha','Nasliha','Nasrin','Nasuha','Natasa','Natasha','Natasya','Nathasa','Natrah','Naurah','Nayli','Nazatul','Nazihah','Nazira','Nazirah','Nazura','Nazurah','Nikmah','Nina','Nisa','Nisak','Nisrina','Noorain','Noorazmiera','Noorfarzanah','Noornazratul','Norafizah','Norain','Noraisyah','Noralia','Noranisa','Noratasha','Nordhiya','Nordiana','Norelliana','Norerina','Norfaezah','Norfahanna','Norhafiza','Norhamiza','Norhidayah','Noridayu','Norliyana','Norsakinah','Norshaera','Norshahirah','Norshuhailah','Norsolehah','Norsuhana','Norsyafiqah','Norsyahirah','Norsyamimie','Norsyarah','Norsyazmira','Norsyazwani','Norsyuhada','Norul','Noryshah', |
|||
'Nuradilah','Nurafifah','Nurafrina','Nurain','Nuraina','Nuralia','Nuraliah','Nuralifah','Nuralya','Nurani','Nuranisya','Nuraqilah','Nurarisha','Nurasyikin','Nuratiqah','Nuraveena','Nureen','Nurfaatihah','Nurfadlhlin','Nurfaizah','Nurfarah','Nurfarahin','Nurfarhana','Nurfarrah','Nurfatehah','Nurfatiha','Nurfatin','Nurfirzanah','Nurfitrah','Nurfizatul','Nurhafizah','Nurhajar','Nurhani','Nurhanida','Nurhanis','Nurhanisah','Nurhanna','Nurhawa','Nurhazwani','Nurhazzimah','Nurhidayah','Nurhidayatul','Nurhuda','Nurilyani','Nurin','Nurjazriena','Nurmuzdalifah','Nurnajiha','Nurnatasha','Nurnazhimah','Nurnazhirah','Nurqurratuain','Nursabrina','Nursahira','Nursarah','Nursarwindah','Nursham','Nurshammeza','Nursofiah','Nursuhaila','Nursyaffira','Nursyafika','Nursyahindah','Nursyakirah','Nursyarina','Nursyazwani','Nursyazwina','Nursyuhadah','Nurulhuda','Nurulsyahida','Nurun','Nurwadiyah','Nurwahidah','Nurzafira','Nurzarith','Nurzulaika', |
|||
'Pesona','Puteri','Putri', |
|||
'Qairina','Qamarina','Qasrina','Qhistina','Qistina','Quintasya','Qurratu','Qurratuaini','Qurratul', |
|||
'Rabi\'atul','Rabiatul','Rafidah','Rahiemah','Rahmah','Raihah','Raihana','Raihanah','Raja','Rashmi','Rasyaratul','Rasyiqah','Rasyiqqah','Raudatul','Ridiatul','Rieni','Rifhan','Rihhadatul','Ros','Rosalinda','Rosyadah','Rusyda','Rusydina', |
|||
'Sa\'adah','Saadiah','Sabrina','Safi','Safiah','Safiyah','Sahira','Saidatul','Sakinah','Sakirah','Salwa','Sameera','Sarah','Sarwati','Sasya','Serene','Sha','Shabariah','Shafiah','Shafiera','Shafikah','Shafinaz','Shafiqa','Shafiqah','Shah','Shahida','Shahidah','Shahiera','Shahila','Shahira','Shahirah','Shahrazy','Shahrina','Shakilah','Shakinah','Shalina','Shameera','Shamila','Shamimie','Shamira','Shar\'fiera','Sharifah','Sharizah','Shauqina','Shayira','Shazana','Shazieda','Shazlien','Shazwana','Shazwani','Shonia','Shuhada','Siti','Siti','Siti','Siti','Siti','Siti','Sitti','Sofea','Sofeah','Soffia','Sofia','Sofiya','Sofiyah','Sofya','Solehah','Sopie','Suaidah','Suhada','Suhadah','Suhaida','Suhaila','Suhailah','Suhaina','Suhana','Suhani','Sulaiha','Sumayyah','Suraya','Suziyanis','Syaffea','Syafika','Syafikah','Syafina','Syafiqa','Syafiqah','Syafirah','Syafiyah','Syafiyana','Syahada','Syahadatullah','Syahera','Syaherah','Syahidah','Syahidatul','Syahiera','Syahira','Syahirah','Syahmimi','Syahmina','Syahzani','Syaidatul','Syairah','Syakila','Syakira','Syakirah','Syamien','Syamilah','Syamimi','Syamina','Syamirah','Syara','Syarafana','Syarafina','Syarah','Syarina','Syasyabila','Syauqina','Syaza','Syazana','Syazliya','Syazmin','Syazryana','Syazwana','Syazwani','Syazwanie','Syazwina','Syifa\'','Syuhada','Syuhada`','Syuhaida','Syuhaidah', |
|||
'Taqiah','Tasnim','Tengku','Tihany', |
|||
'Umairah','Umi','Umira','Ummi', |
|||
'Wadiha','Wafa','Waheeda','Wahida','Wahidah','Wan','Wardatul','Wardina','Wardinah','Wazira','Weni', |
|||
'Yasmeen','Yasmin','Yetri','Yunalis','Yusra','Yusrinaa','Yusyilaaida', |
|||
'Zaffan','Zafirah','Zaharah','Zahirah','Zahrah','Zahrak','Zaidalina','Zaidatulkhoiriyah','Zainab','Zainatul','Zakdatul','Zatalini','Zati','Zayani','Zeqafazri','Zilhaiza','Zubaidah','Zulaika','Zulaikha' |
|||
); |
|||
protected static $lastNameMalay = array( |
|||
'\'Aizat','A\'liyyuddin','Abas','Abdillah','Abdullah','Abidin','Adam','Adha','Adham','Adi','Adieka','Adip','Adli','Adnan','Adrus','Afandi','Afiq','Afizi','Afnan','Afsyal','Ahmad','Ahwali','Aidi','Aidil','Aiman','Aizad','Aizam','Aizat','Ajllin','Ajmal','Akashah','Akasyah','Akbar','Akhmal','Akid','Akif','Akmal','Al-amin','Al-hakim','Albukhary','Ali','Alias','Alif','Alimi','Aliuddin','Amaluddin','Amin','Aminnudin','Aminrullah','Aminuddin','Amiran','Amiruddin','Amirul','Amirullah','Ammar','Ammer','Amni','Amran','Amri','Amry','Amsyar','Amzah','Anam','Anaqi','Andalis','Anuar','Anwar','Apizan','Aqashah','Aqil','Arfan','Arfandi','Arias','Arief','Arif','Ariff','Ariffin','Arifin','Arifuddin','Arman','Arshad','Arziman','As','Asa','Ashraf','Ashraff','Asmadi','Asmar','Asmawi','Asri','Asyraf','Asyran','Asyrani','Aszahari','Awal','Awalluddin','Awaluddin','Awaludin','Awira','Ayyadi','Azahar','Azahari','Azam','Azhan','Azhar','Azhari','Azim','Aziz','Azizan','Azizi','Azizy','Azlan','Azlansyhah','Azli','Azlim','Azman','Azmee','Azmi','Azmin','Aznai','Azni','Azraai','Azrai','Azri','Azril','Azrin','Azriq','Azrul','Azuan', |
|||
'Badrulhisham','Baha','Bahaman','Bahari','Baharin','Baharruddin','Baharuddin','Baharudin','Bahri','Bahrin','Bahrodin','Bakar','Bakri','Bakry','Bakti','Basaruddin','Bashah','Basri','Basyir','Batisah','Bella','Berman','Borhan','Buhari','Bukhari', |
|||
'Chai', |
|||
'Dahalan','Dahari','Dahlan','Daiman','Daneal','Daniael','Danial','Daniel','Danish','Darmawi','Daryusman','Daud','Dazila','Din','Dini','Djuhandie','Dolkefli','Draman','Dzikri','Dzolkefli','Dzulkifli','Dzullutfi', |
|||
'Effendi','Effindi','Ekhsan','Elfin','Erfan', |
|||
'Fadhil','Fadhilah','Fadil','Fadillah','Fadlullah','Fadzil','Faez','Fahi','Fahim','Fahmi','Fahmie','Fairos','Fairuz','Faiser','Faiz','Faizal','Faizul','Faizun','Fakhri','Fakhrurrazi','Fareesnizra','Fareez','Farhan','Farid','Farihan','Faris','Farris','Fathi','Fatullah','Faudzi','Fauzi','Fauzy','Fayyad','Fazal','Fazil','Fazira','Fikri','Firdaus','Firdoz','Fiteri','Fitri','Fuad','Fuart','Fuzi', |
|||
'Garapar','Ghani','Ghazi', |
|||
'Haddi','Hadi','Hadzis','Haeizan','Hafandi','Hafiz','Hafizam','Hafizee','Hafizh','Hafizi','Hafizuddin','Haidie','Haikal','Haiqal','Hairizan','Hairuddin','Hairulnizam','Hairunnezam','Haizam','Haizan','Hajar','Hakam','Hakiem','Hakim','Hakimi','Hakimie','Halib','Halil','Halim','Halin','Hamdan','Hamdani','Hamid','Hamidi','Hamizie','Hamizuddin','Hamjah','Hammani','Hamzah','Hanafi','Hanafia','Hanief','Hanif','Hanifah','Haniff','Hanim','Hapani','Haqim','Haqimi','Haramaini','Hardinal','Hariff','Haris','Harith','Hariz','Harmaini','Harman','Haron','Harris','Haruddin','Harun','Hasadi','Hasan','Hasbi','Hasbullah','Hashan','Hasif','Hasim','Hasmawi','Hasnan','Hasri','Hassan','Hassim','Hassimon','Haszlan','Hazambi','Hazaril','Hazim','Hazimie','Haziq','Hazizan','Hazlin','Hazre','Hazrin','Hazrol','Helmi','Hi\'qal','Hikmee','Hilmi','Hisam','Hisham','Hishhram','Hizam','Husaini','Husin','Husna','Husni','Hussin','Huzaify','Huzain', |
|||
'Ibrahim','Idham','Idris','\'Iffat','Ifwat','Ikhmal','Ikhram','Ikhwan','Ikmal','Ikram','Ilman','Iman','Imran','Imtiyaz','Iqbal','Iqmal','Irfan','Irham','Irsyad','Is\'ad','Isa','Isfarhan','Ishak','Ishsyal','Iskandar','Ismadi','Ismail','Ismayudin','Isroman','Isyrafi','Izad','Izam','Izani','Izman','Izwan','Izzat','Izzuddin','Izzudin', |
|||
'Jainal','Jaini','Jamahari','Jamal','Jamaluddin','Jamaludin','Jaman','Jamri','Jani','Jasni','Jaya','Jeffri','Jefri','Jelani','Jemadin','Johan','Johari','Juhari','Jumat','Junaidi', |
|||
'Kahar','Kamal','Kamaruddin','Kamarudin','Kamarul','Kamaruzaman','Kamil','Kamslian','Karzin','Kasim','Kasturi','Khafiz','Khairani','Khairuddin','Khaleed','Khaliq','Khan','Kharmain','Khatta','Khilmi','Khir-ruddin','Khirulrezal','Khusaini', |
|||
'Latif','Latip','Lazim','Lukman', |
|||
'Maarof','Mahadi','Mahat','Mahathir','Mahmudin','Mahmusin','Mahyuddin','Mahyus','Majid','Malek','Malik','Maliki','Mamhuri','Man','Manaf','Manan','Manap','Mansor','Margono','Martunus','Maruzi','Marzuki','Maserun','Maskor','Maslan','Maswari','Maszuni','Mazalan','Mazlan','Midali','Mikhail','Mirza','Miskan','Miskoulan','Mislan','Misnan','Mizan','Mohhidin','Mohsin','Mokhtar','Moktar','Molkan','Mon','Montahar','Mossanif','Mu','Muaddib','Muain','Muhaimi','Muhaimin','Muhdi','Muiz','Mujamek','Mukmin','Mukromin','Muneer','Muqriz','Murad','Murshed','Murshidi','Musa','Muslim','Musliman','Mustafa','Mustapha','Mustaqim','Musyrif','Mutaali','Mutalib','Muti\'i','Muzamil','Muzammil', |
|||
'Na\'im','Nabil','Nadzri','Nafiz','Naim','Najhi','Najib','Najmi','Najmuddin','Naqiyuddin','Nasaruddin','Nashriq','Nasiman','Nasir','Nasrodin','Nasrullah','Naufal','Nawawi','Nazairi','Nazar','Nazarudin','Nazeri','Nazhan','Nazirin','Nazmi','Nazree','Nazri','Nazrin','Nazry','Ngadenan','Ngadun','Niszan','Nizam','Noh','Noor','Noordin','Noorhakim','Noorismadi','Noorizman','Nor','Noradhzmi','Noraffendi','Noraslan','Norazam','Norazim','Norazman','Norazmi','Nordin','Norhisam','Norhisham','Norizal','Norizan','Norlisam','Normansah','Norrizam','Norsilan','Norzamri','Nurfairuz','Nurhaliza','Nurnaim', |
|||
'Omar','Osman','Othman', |
|||
'Pa\'aing','Pauzi','Pisol','Putra','Putra', |
|||
'Qayum','Qayyum','Qayyuum','Qusyairi', |
|||
'Ra\'ais','Radzi','Raffioddin','Raffiq','Rafi','Rafizal','Rahamad','Rahim','Rahman','Rahmat','Rais','Raizal','Raman','Ramdan','Ramdzan','Ramlan','Ramlee','Ramli','Ramly','Rani','Ranjit','Raqi','Rashid','Rashidi','Rashidin','Rasid','Rassid','Rasyid','Razak','Razali','Raze','Razi','Razin','Razlan','Razman','Redha','Redzuan','Rembli','Remi','Ridduan','Ridhwan','Ridzuan','Ridzwan','Rifin','Rifqi','Rifqie','Rithwan','Rizal','Rizuan','Rizwan','Robani','Rohaizan','Rohem','Rohman','Ros','Rosdan','Roshman','Roslan','Roslee','Rosli','Rosly','Rosmawi','Rosnan','Rossaimi','Rostam','Rostan','Roszainal','Rozi','Rubi','Rusdi','Ruslan','Rusli','Rustam','Rusyaidi', |
|||
'Sa\'ari','Saad','Sabaruddin','Sabarudin','Sabki','Sabri','Sabrie','Safee','Saffuan','Safie','Safingi','Safrifarizal','Safrizal','Safwan','Sahidi','Sahril','Sahroni','Saifuddin','Saifudin','Saifulzakher','Saifuzin','Saihun','Saizol','Sakdon','Sakri','Salam','Saleh','Salehudin','Salim','Salleh','Salman','Sam','Samad','Samae','Samah','Saman','Samsani','Samsuddin','Samsul','Samsuri','Sandha','Sani','Sanorhizam','Sapuan','Sarim','Satar','Saudi','Sazali','Sedek','Selamat','Senon','Sha\'ril','Shabana','Shafei','Shafie','Shafiq','Shah','Shaharuddin','Shaharudin','Shahiman','Shahrazy','Shahrizan','Shaidi','Shaifuddin','Shaihuddin','Sham','Shameer','Shamizan','Shamsuddin','Shamsudin','Shamsul','Shapiein','Sharasan','Sharif','Sharifudin','Shariman','Sharin','Sharollizam','Sharum','Shazani','Shazman','Shmsul','Shobi','Shueib','Shukor','Shukri','Sidek','Sinuzulan','Soberi','Sobirin','Sofi','Solehin','Solekhan','Sonan','Suami','Subhi','Subzan','Sudirman','Sueib','Sufi','Sufian','Suhaimi','Suhiman','Sukarsek','Sulaiman','Sulong','Suraji','Surya','Sutrisno','Suz\'ian','Suzaimi','Syafiq','Syafrin','Syahir','Syahmi','Syahril','Syahrin','Syakir','Syamil','Syauqi','Syazwan','Syukran','Syukri','Syuraih', |
|||
'Tajudin','Takiudin','Talib','Taqiuddin','Tarjuddin','Tarmizi','Tarudin','Taufek','Thaqif','Tuah','Tukimin','Tumiran', |
|||
'Ubaidillah','Ulum','Umar','Usman','Usri','Uzair', |
|||
'Wafi','Wahab','Wahbillah','Wahid','Wahidan','Wahidin','Wardi','Wasil','Wazif','Wildani', |
|||
'Ya\'accob','Yaacob','Yaakob','Yaacup','Yacob','Yahaya','Yahya','Yajid','Yamani','Yanis','Yaqin','Yasin','Yazid','Yunus','Yusaini','Yusihasbi','Yusni','Yusof','Yusoff','Yusri','Yusrin','Yusseri','Yussof','Yusuf','Yuszelan','Yuzli', |
|||
'Zafran','Zahani','Zahar','Zahareman','Zahari','Zahin','Zaid','Zaidi','Zailan','Zailani','Zaimi','Zaiminuddin','Zain','Zainal','Zaini','Zainorazman','Zainordin','Zainuddin','Zainudin','Zainul-\'alam','Zainun','Zainuri','Zairi','Zairulaizam','Zakaria','Zaki','Zakir','Zakuan','Zakwan','Zam','Zamanhuri','Zamani','Zamhari','Zamran','Zamre','Zamree','Zamri','Zamzuri','Zani','Zar\'ai','Zawawi','Zawi','Zazlan','Zehnei','Zhafran','Zihni','Zikry','Zin','Zizi','Zol','Zolkafeli','Zolkifli','Zuanuar','Zubair','Zubir','Zufayri','Zuhaili','Zuki','Zukri','Zulamin','Zulfadhli','Zulfikar','Zulfikri','Zulhazril','Zulhelmi','Zulkafli','Zulkanine','Zulkarnaen','Zulkefle','Zulkefli','Zulkernain','Zulkhairie','Zulkifli','Zulqurnainin','Zumali','Zuraidi','Zuri','Zuwairi', |
|||
); |
|||
|
|||
/** |
|||
* Note: The empty elements are for names without the title, chances increase by number of empty elements. |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Muhammad_(name) |
|||
*/ |
|||
protected static $muhammadName = array('', '', '', '', 'Mohamad ','Mohamed ','Mohammad ','Mohammed ','Muhamad ','Muhamed ','Muhammad ','Muhammed ','Muhammet ','Mohd '); |
|||
/** |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Noor_(name) |
|||
*/ |
|||
protected static $nurName = array('', '', '', '', 'Noor ', 'Nor ', 'Nur ', 'Nur ', 'Nur ', 'Nurul ','Nuur '); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Malaysian_names#Haji_or_Hajjah |
|||
*/ |
|||
protected static $haji = array('', '', '', '', 'Haji ', 'Hj '); |
|||
protected static $hajjah = array('', '', '', '', 'Hajjah ', 'Hjh '); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Malay_styles_and_titles |
|||
*/ |
|||
protected static $titleMaleMalay = array('', '', '', '', '', '', 'Syed ','Wan ','Nik ','Che '); |
|||
|
|||
/** |
|||
* Chinese family name or surname |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/List_of_common_Chinese_surnames |
|||
* @link https://en.wikipedia.org/wiki/Hundred_Family_Surnames |
|||
* |
|||
*/ |
|||
protected static $lastNameChinese = array( |
|||
'An','Ang','Au','Au-Yong','Aun','Aw', |
|||
'Bai','Ban','Bok','Bong', |
|||
'Ch\'ng','Cha','Chai','Cham','Chan','Chang','Cheah','Cheam','Chee','Chen','Cheng','Cheok','Cheong','Chew','Chia','Chiam','Chiang', |
|||
'Chieng','Chiew','Chin','Ching','Chong','Choong','Chou','Chow','Choy','Chu','Chua','Chuah','Chung', |
|||
'Dee','Die','Ding', |
|||
'Ee','En','Eng','Er','Ewe', |
|||
'Fam','Fan','Fang','Feng','Foo','Foong', |
|||
'Gan','Gao','Gee','Gnai','Go','Goh','Gong','Guan','Gun', |
|||
'H\'ng','Hang','Hao','Haw','Hee','Heng','Hew','Hiew','Hii','Ho','Hoo','Hong','Hooi','Hui', |
|||
'Jong', |
|||
'Kam','Kang','Kar','Kee','Khoo','Khor','Khu','Kia','Kim','King','Ko','Koay','Koh','Kok','Kong','Kow','Kwok','Kwong','Ku','Kua','Kuan','Kum', |
|||
'Lah','Lai','Lam','Lau','Law','Leau','Lee','Leng','Leong','Leow','Leung','Lew','Li','Lian','Liang','Liao','Liew','Lim','Ling','Liong','Liow', |
|||
'Lo','Loh','Loi','Lok','Loke','Loo','Looi','Low','Lu','Luo','Lum','Lye', |
|||
'Ma','Mah','Mak','Meng','Mok', |
|||
'Neo','Neoh','New','Ng','Nga','Ngan','Ngeh','Ngeow','Ngo','Ngu','Nguei','Nii', |
|||
'Ong','Oo','Ooi','Oon','Oong','OuYang', |
|||
'P\'ng','Pang','Phang','Phoon','Phor','Phua','Phuah','Poh','Poon', |
|||
'Qian','Qu','Quah','Quak','Quan','Quek', |
|||
'Sam','Sau','Seah','See','Seetho','Seng','Seoh','Seow','Shee','Shi','Shum','Sia','Siah','Siao','Siauw','Siaw','Siew','Sim','Sin','Sio','Siong','Siow','Siu','Soh','Song','Soo','Soon','Su','Sum', |
|||
'T\'ng','Tai','Tam','Tan','Tay','Tang','Tea','Tee','Teh','Tek','Teng','Teo','Teoh','Tern','Tew','Tey','Thang','Thew','Thong','Thoo','Thum','Thun','Ting','Tiong','Toh','Tong','Tse','Tung', |
|||
'Vong', |
|||
'Wah','Waiy','Wan','Wee','Wen','Wong','Woo','Woon','Wu', |
|||
'Xia','Xiong','Xu', |
|||
'Yam','Yao','Yiaw','Ying','Yip','Yang','Yap','Yau','Yee','Yen','Yeo','Yeoh','Yeong','Yeow','Yep','Yew','Yong','Yow','You','Yu','Yuan','Yuen', |
|||
'Zhong','Zhang','Zheng','Zhu','Zu' |
|||
); |
|||
|
|||
/** |
|||
* Chinese second character |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Chinese_given_name |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent |
|||
*/ |
|||
protected static $firstNameChinese = array( |
|||
'Ah','Ai','Aik','An','Ann','Ang','Au','Aun','Aw', |
|||
'Bae','Bai','Bak','Ban','Bang','Bao','Bau','Bee','Beh','Bei','Ben','Beng','Bi','Bik','Bin','Bing','Bo','Bok','Bong','Boo','Boon','Bow','Bu','Bui','Buk','Bun','Bung', |
|||
'Cai','Car','Caw','Cee','Ceh','Cek','Cen','Cer', |
|||
'Cha','Chah','Chai','Chak','Cham','Chan','Chang','Chao','Chap','Char','Chat','Chau','Chaw', |
|||
'Chea','Cheah','Cheam','Chean','Cheang','Chee','Cheen','Chek','Chen','Cheng','Cheok','Cheong','Cher','Chet','Chew', |
|||
'Chi','Chia','Chih','Chik','Chin','Ching','Chio','Chit','Chiu', |
|||
'Cho','Choi','Chok','Chon','Chong','Choo','Chooi','Choon','Choong','Chor','Chou','Chow','Choy', |
|||
'Chu','Chua','Chuah','Chuan','Chua','Chui','Chuk','Chum','Chun','Chung','Chuo','Chye', |
|||
'Da','Dai','Dan','Dang','Dao','Dau','Dee','Deng','Di','Dim','Din','Ding','Diong','Do','Dong','Doo','Dou','Du','Dui','Duo', |
|||
'Ee','Eh','En','Enn','Er','Ern','Eu','Ew', |
|||
'Fa','Fah','Fai','Fam','Fan','Fang','Fat','Fatt','Fay','Faye','Fee','Fei','Fen','Feng','Fern','Fey','Fok','Fon','Fong','Foo','Foon','Foong','Fu','Fui','Fuk','Fun','Fung', |
|||
'Gai','Gak','Gam','Gan','Gao','Gau','Gee','Gek','Geng','Gi','Giap','Gin','Git','Go','Goh','Gok','Gon','Gong','Goo','Goon','Gu','Gui','Guk','Gun','Gung','Gunn', |
|||
'Ha','Haa','Hah','Hai','Han','Hang','Hao','Har','Haw','He','Hee','Hei','Hen','Heng','Heong','Her','Hew','Hi','Hii','Hin','Hing','Hiong','Hiu', |
|||
'Ho','Hoe','Hoi','Hok','Hom','Hon','Hong','Hoo','Hooi','Hook','Hoon','Hoong','Hor','Hou','How','Hoy','Hu','Hua','Huan','Huang','Hue','Hui','Hun','Hung','Huo','Hup', |
|||
'Jan','Jang','Jao','Jee','Jei','Jen','Jeng','Jeong','Jer','Jet','Jett','Jeu','Ji','Jia','Jian','Jiang','Jie','Jien','Jiet','Jim','Jin','Jing','Jio','Jiong','Jit','Jiu', |
|||
'Jo','Joe','Jong','Joo','Joon','Joong','Joy','Ju','Jun','Jung','Jye', |
|||
'Ka','Kaa','Kah','Kai','Kak','Kam','Kan','Kang','Kao','Kap','Kar','Kat','Kau','Kaw','Kay','Ke','Kean','Keang','Keat','Kee','Kei','Kek','Ken','Keng','Ker','Keu','Kew','Key', |
|||
'Kha','Khai','Khan','Khang','Khar','Khaw','Khay','Khean','Kheang','Khee','Khi','Khia','Khian','Khiang','Kho','Khoh','Khoi','Khoo','Khor','Khu','Khum','Khung', |
|||
'Ki','Kia','Kian','Kiang','Kiap','Kiat','Kien','Kiet','Kim','Kin','King','Kit','Ko','Koe','Koh','Koi','Kok','Kong','Koo','Koong','Koor','Kor','Kou','Kow','Koy', |
|||
'Ku','Kua','Kuang','Kui','Kum','Kun','Kung','Kuo','Kuong','Kuu', |
|||
'La','Lai','Lak','Lam','Lan','Lang','Lao','Lap','Lar','Lat','Lau','Law','Lay', |
|||
'Le','Lea','Lean','Leang','Leat','Lee','Leen','Leet','Lei','Lein','Leik','Leiu','Lek','Len','Leng','Leon','Leong','Leow','Ler','Leu','Leung','Lew','Lex','Ley', |
|||
'Li','Liah','Lian','Liang','Liao','Liat','Liau','Liaw','Lie','Liek','Liem','Lien','Liet','Lieu','Liew','Lih','Lik','Lim','Lin','Ling','Lio','Lion','Liong','Liow','Lip','Lit','Liu', |
|||
'Lo','Loh','Loi','Lok','Long','Loo','Looi','Look','Loon','Loong','Lor','Lou','Low','Loy', |
|||
'Lu','Lua','Lui','Luk','Lum','Lun','Lung','Luo','Lup','Luu', |
|||
'Ma','Mae','Mag','Mah','Mai','Mak','Man','Mang','Mao','Mar','Mat','Mau','Maw','May','Me','Mea','Mee','Meg','Meh','Mei','Mek','Mel','Men','Meu','Mew', |
|||
'Mi','Mie','Miin','Miing','Min','Ming','Miu','Mo','Moh','Moi','Mok','Mon','Mong','Moo','Moon','Moong','Mou','Mow','Moy','Mu','Mua','Mui','Mum','Mun','Muu', |
|||
'Na','Naa','Nah','Nai','Nam','Nan','Nao','Nau','Nee','Nei','Neng','Neo','Neu','New','Nga','Ngah','Ngai','Ngan','Ngao','Ngau','Ngaw','Ngo','Ngu','Ni','Nian','Niang','Niao','Niau','Nien','Nik','Nin','Niu','Nong','Nyet', |
|||
'Oh','Oi','Ong','Onn','Oo','Ooi', |
|||
'Pah','Pai','Pak','Pam','Pan','Pang','Pao','Pat','Pau','Paw','Pay','Peh','Pei','Peik','Pek','Pen','Peng','Pey', |
|||
'Phang','Pheng','Phong','Pik','Pin','Ping','Po','Poh','Pok','Pom','Pong','Pooi','Pou','Pow','Pu','Pua','Puah','Pui','Pun', |
|||
'Qi','Qin','Qing','Qiu','Qu','Quan','Quay','Quen','Qui','Quek','Quok', |
|||
'Rei','Ren','Rin','Ring','Rinn','Ron','Rong','Rou','Ru','Rui','Ruo', |
|||
'Sai','Sam','San','Sang','Say','Sha','Shak','Sham','Shan','Shang','Shao','Shar','Shau','Shaw','Shay','She','Shea','Shee','Shei','Shek','Shen','Sher','Shew','Shey','Shi','Shia','Shian','Shiang','Shiao','Shie','Shih','Shik','Shim','Shin','Shing','Shio','Shiu', |
|||
'Sho','Shok','Shong','Shoo','Shou','Show','Shu','Shui','Shuk','Shum','Shun','Shung','Shuo','Si','Sia','Siah','Siak','Siam','Sian','Siang','Siao','Siau','Siaw','Sien','Sieu','Siew','Sih','Sik','Sim','Sin','Sing','Sio','Siong','Siou','Siow','Sit','Siu', |
|||
'So','Soh','Soi','Sok','Son','Song','Soo','Soon','Soong','Sou','Sow','Su','Suan','Suang','Sue','Suen','Sui','Suk','Sum','Sun','Sung','Suo', |
|||
'Ta','Tai','Tak','Tam','Tan','Tang','Tao','Tar','Tat','Tatt','Tau','Tay','Tea','Teak','Tean','Tee','Teh','Tei','Tek','Ten','Teng','Teo','Teoh','Ter','Tet','Teu','Tew','Tey', |
|||
'Tha','Thai','Tham','Thang','Thau','Thay','Thee','Theo','Ther','Thew','They','Thia','Thian','Thien','Tho','Thok','Thong','Thoo','Thor','Thou','Thu','Thuk','Thum','Thung','Thur','Ti','Tia','Tiah','Tiak','Tiam','Tian','Tiang','Tiek','Tien','Tik','Tim','Tin','Ting','Tio','Tiong','Tiu', |
|||
'To','Toh','Tok','Tong','Too','Tor','Tou','Tow','Tu','Tuk','Tung', |
|||
'Ung', |
|||
'Vin','Von','Voon', |
|||
'Wa','Wah','Wai','Wan','Wang','Way','Wee','Wei','Wen','Weng','Wey','Whay','Whey','Wi','Win','Wing','Wo','Woh','Woi','Wok','Won','Wong','Woo','Woon','Wu','Wui', |
|||
'Xi','Xia','Xiah','Xian','Xiang','Xiao','Xiau','Xie','Xin','Xing','Xiong','Xiu','Xu','Xun', |
|||
'Yam','Yan','Yang','Yao','Yat','Yatt','Yau','Yaw','Ye','Yee','Yen','Yeng','Yeo','Yeoh','Yeong','Yep','Yet','Yeu','Yew','Yi','Yih','Yii','Yik','Yin','Ying','Yip','Yit','Yo','Yok','Yon','Yong','Yoo','You','Yow','Yu','Yuan','Yue','Yuen','Yuet','Yuk','Yun','Yung','Yup','Yut','Yutt', |
|||
'Za','Zai','Zang','Zao','Zau','Zea','Zeah','Zed','Zee','Zen','Zeng','Zeo','Zet', |
|||
'Zha','Zhai','Zhan','Zhang','Zhao','Zhau','Zhee','Zhen','Zheng','Zhet','Zhi','Zhong','Zhu','Zhung', |
|||
'Zi','Zia','Ziah','Ziak','Zian','Ziang','Ziao','Ziau','Zit','Zo','Zoe','Zou','Zu','Zui','Zuk','Zung', |
|||
); |
|||
|
|||
/** |
|||
* Chinese male third character |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Chinese_given_name |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent |
|||
*/ |
|||
protected static $firstNameMaleChinese = array( |
|||
'Aik','Ang','Au','Aun', |
|||
'Bak','Ban','Bang','Bao','Bau','Ben','Beng','Bing','Bok','Bong','Boo','Boon','Bow','Buk','Bun','Bung', |
|||
'Chai','Chak','Chan','Chang','Chao','Chap','Chat','Chau','Chaw', |
|||
'Cheah','Chee','Cheen','Chek','Chen','Cheong','Cher','Chet','Chew', |
|||
'Chia','Chih','Chik','Chin','Ching','Chit','Chiu', |
|||
'Cho','Choi','Chok','Chon','Chong','Choo','Chooi','Choon','Choong','Chor','Chou','Chow','Choy', |
|||
'Chua','Chuah','Chuan','Chua','Chui','Chuk','Chum','Chun','Chung','Chuo','Chye', |
|||
'Dan','Dao','Dau','Dee','Deng','Di','Dim','Din','Diong','Dong','Dou','Du','Dui','Duo', |
|||
'Eu','Ew', |
|||
'Fai','Fam','Fat','Fatt','Fee','Feng','Fok','Fon','Fong','Foo','Foon','Foong','Fu','Fui','Fuk', |
|||
'Gai','Gak','Gam','Gan','Gao','Gau','Gee','Gek','Geng','Giap','Gin','Git','Go','Goh','Gok','Gon','Gong','Gu','Guk','Gun','Gung','Gunn', |
|||
'Hai','Han','Hang','Har','Haw','Hei','Hen','Heng','Hing', |
|||
'Ho','Hoe','Hoi','Hok','Hom','Hon','Hong','Hoo','Hook','Hoon','Hoong','Hor','Hou','How','Hoy','Hu','Huan','Huang','Hun','Hung','Huo','Hup', |
|||
'Jeong','Jer','Jet','Jett','Jeu','Ji','Jian','Jiang','Jiet','Jim','Jin','Jio','Jiong','Jit','Jiu','Jo','Joe','Joong','Jung','Jye', |
|||
'Kai','Kan','Kang','Kao','Kap','Kau','Kaw','Kean','Keang','Keat','Kek','Ken','Keng','Ker','Keu','Kew', |
|||
'Khai','Khan','Khang','Khaw','Khean','Kheang','Khia','Khian','Khiang','Kho','Khoh','Khoi','Khoo','Khu','Khung', |
|||
'Kia','Kian','Kiang','Kiap','Kiat','Kien','Kiet','Kin','King','Kit','Ko','Koi','Kok','Kong','Koo','Koong','Koor','Kou','Kow','Koy', |
|||
'Ku','Kuang','Kui','Kun','Kung','Kuo','Kuong','Kuu', |
|||
'Lak','Lam','Lang','Lao','Lap','Lar','Lat','Lau','Law', |
|||
'Lean','Leang','Leat','Lee','Leet','Leik','Leiu','Lek','Len','Leon','Leong','Leow','Leung','Lew','Lex', |
|||
'Liang','Liao','Liat','Liau','Liaw','Liek','Liem','Liet','Lieu','Liew','Lih','Lik','Lim','Lio','Lion','Liong','Liow','Lip','Lit','Liu', |
|||
'Lo','Loh','Loi','Lok','Long','Loo','Looi','Look','Loon','Loong','Lor','Lou','Low','Loy', |
|||
'Lu','Luk','Lum','Lun','Lung','Lup', |
|||
'Man','Mang','Mao','Mar','Mat','Mau','Maw','Mek','Men', |
|||
'Mo','Mok','Mon','Mong','Moong','Mou','Mow','Mu', |
|||
'Nam','Nan','Nau','Neng','Neo','Neu','Ngai','Ngao','Ngau','Ngaw','Ngo','Niao','Niau','Nien','Nik','Niu','Nyet', |
|||
'Oh','Oi','Ong','Onn','Oo', |
|||
'Pah','Pai','Pak','Pang','Pao','Pat','Pau','Paw','Pen','Peng', |
|||
'Phang','Pheng','Phong','Pok','Pou','Pow','Pu','Pua','Puah', |
|||
'Quan','Quen','Quek','Quok', |
|||
'Ren','Ron', |
|||
'Sai','Sam','San','Sang','Shak','Sham','Shang','Shao','Shau','Shaw','Shek','Shen','Shiang','Shih','Shik','Shim','Shing','Shio','Shiu', |
|||
'Sho','Shong','Shoo','Shou','Show','Shun','Shung','Shuo','Siam','Siang','Siau','Siaw','Sieu','Sih','Sik','Sing','Sio','Siong','Siou','Siow','Sit', |
|||
'Son','Song','Soon','Soong','Sou','Sow','Suang','Sum','Sung','Suo', |
|||
'Ta','Tak','Tan','Tang','Tao','Tar','Tat','Tatt','Tau','Teak','Tean','Tee','Teh','Tei','Tek','Ten','Teng','Teo','Teoh','Ter','Tet','Teu','Tew', |
|||
'Tha','Thai','Tham','Thang','Thau','Thay','Thee','Theo','Ther','Thew','They','Thian','Thien','Tho','Thok','Thong','Thoo','Thor','Thou','Thu','Thuk','Thum','Thung','Thur','Tiak','Tiam','Tian','Tiang','Tiek','Tien','Tik','Tim','Tin','Tio','Tiong','Tiu', |
|||
'To','Toh','Tok','Tong','Too','Tor','Tou','Tow','Tu','Tuk','Tung', |
|||
'Ung', |
|||
'Vin','Von', |
|||
'Wa','Wah','Wai','Wang','Way','Wee','Wei','Weng','Whay','Win','Wing','Wo','Woh','Woi','Wok','Won','Wong','Woo','Wu','Wui', |
|||
'Xiang','Xiong', |
|||
'Yang','Yao','Yat','Yatt','Yau','Yaw','Ye','Yeng','Yeo','Yeoh','Yeong','Yet','Yih','Yii','Yik','Yip','Yit','Yo','Yok','Yon','Yong','Yoo','You','Yow','Yu','Yuen','Yuet','Yuk','Yut','Yutt', |
|||
'Za','Zai','Zang','Zao','Zau','Zea','Zeah','Zed','Zee','Zen','Zeng','Zeo','Zet', |
|||
'Zha','Zhai','Zhan','Zhang','Zhao','Zhau','Zhee','Zheng','Zhet','Zhong','Zhu','Zhung', |
|||
'Ziak','Zian','Ziang','Ziao','Ziau','Zit','Zuk','Zung', |
|||
); |
|||
|
|||
/** |
|||
* Chinese female third character |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Chinese_given_name |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent |
|||
*/ |
|||
protected static $firstNameFemaleChinese = array( |
|||
'Ai','An','Ann','Aw', |
|||
'Bae','Bai','Bee','Beh','Bei','Bi','Bik','Bin','Bui', |
|||
'Cai','Cee','Cen','Cham','Cheam','Chean','Cheang','Cheng','Cheok','Chi','Ching','Chio','Chu', |
|||
'Dai','Dang','Ding','Do','Doo', |
|||
'Ee','En','Enn','Er','Ern', |
|||
'Fah','Fan','Fang','Fay','Faye','Fei','Fen','Fern','Fey','Fong','Fun','Fung', |
|||
'Gi','Goo','Goon','Gui', |
|||
'Ha','Haa','Hah','Hao','He','Hee','Heong','Her','Hew','Hi','Hii','Hin','Hiong','Hiu','Hooi','Hua','Hue','Hui', |
|||
'Jan','Jang','Jao','Jee','Jei','Jen','Jeng','Jia','Jie','Jien','Jing','Jong','Joo','Joon','Joy','Ju','Jun', |
|||
'Ka','Kaa','Kah','Kak','Kam','Kar','Kat','Kay','Ke','Kee','Kei','Key', |
|||
'Kha','Khar','Khay','Khee','Khi','Khor','Khum', |
|||
'Ki','Kim','Koe','Koh','Kor','Kum','Kua', |
|||
'Lai','Lan','Lay', |
|||
'Le','Lea','Leen','Lei','Lein','Leng','Ler','Leu','Ley', |
|||
'Li','Liah','Lian','Lie','Lien','Lin','Ling', |
|||
'Lua','Lui','Luo','Luu', |
|||
'Ma','Mae','Mag','Mah','Mai','Mak','May','Me','Mea','Mee','Meg','Meh','Mei','Mel','Meu','Mew', |
|||
'Mi','Mie','Miin','Miing','Min','Ming','Miu','Moh','Moi','Moo','Moon','Moy','Mua','Mui','Mum','Mun','Muu', |
|||
'Na','Naa','Nah','Nai','Nao','Nee','Nei','New','Nga','Ngah','Ngan','Ngu','Ni','Nian','Niang','Nin','Nong', |
|||
'Ooi', |
|||
'Pam','Pan','Pay','Peh','Pei','Peik','Pek','Pey','Pik','Pin','Ping','Po','Poh','Pom','Pong','Pooi','Pui','Pun', |
|||
'Qi','Qin','Qing','Qiu','Qu','Quay','Qui', |
|||
'Rei','Rin','Ring','Rinn','Rong','Rou','Ru','Rui','Ruo', |
|||
'Say','Sha','Shan','Shar','Shay','She','Shea','Shee','Shei','Sher','Shew','Shey','Shi','Shia','Shian','Shiao','Shie','Shin', |
|||
'Shok','Shu','Shui','Shuk','Shum','Si','Sia','Siah','Siak','Sian','Siao','Sien','Siew','Sim','Sin','Siu', |
|||
'So','Soh','Soi','Sok','Soo','Su','Suan','Sue','Suen','Sui','Suk','Sun', |
|||
'Tai','Tam','Tay','Tea','Teng','Tey','Thia','Ti','Tia','Tiah','Ting', |
|||
'Voon', |
|||
'Wan','Wen','Wey','Whey','Wi','Woon', |
|||
'Xi','Xia','Xiah','Xian','Xiao','Xiau','Xie','Xin','Xing','Xiu','Xu','Xun', |
|||
'Yam','Yan','Yee','Yen','Yep','Yeu','Yew','Yi','Yin','Ying','Yong','Yuan','Yue','Yuen','Yun','Yung','Yup', |
|||
'Zhen','Zhi','Zi','Zia','Ziah','Zo','Zoe','Zou','Zu','Zui', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Chinese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Cantonese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Chaoshanese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Chinese_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_English_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Hakka_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Hockchew_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Hokkien_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_people_of_Peranakan_descent |
|||
* @link https://en.wikipedia.org/wiki/Category:Malaysian_politicians_of_Chinese_descent |
|||
*/ |
|||
protected static $firstNameMaleChristian = array( |
|||
'Aaron','Addy','Adrian','Alex','Amos','Anthony', |
|||
'Bernard','Billy', |
|||
'Chris','Christopher','Colin', |
|||
'Danell','Daniel','Danny','David','Douglas', |
|||
'Eddie','Eddy','Edmund','Eric', |
|||
'Francis','Frankie', |
|||
'Gary','Gavin','George','Gregory', |
|||
'Henry', |
|||
'Isaac', |
|||
'James','Jason','Jeff','Jeffrey','Jimmy','John','Jonathan','Josiah','Julian', |
|||
'Kevin','Kris', |
|||
'Mark','Martin','Mavin','Melvin','Michael', |
|||
'Nathaniel','Nelson','Nicholas', |
|||
'Peter','Philip', |
|||
'Richard','Robert','Roger','Ronny','Rynn', |
|||
'Shaun','Simon','Stephen','Steven', |
|||
'Terry','Tony', |
|||
'Victor','Vince','Vincent', |
|||
'Welson','William','Willie', |
|||
); |
|||
protected static $firstNameFemaleChristian = array( |
|||
'Alice','Alyssa','Amber','Amy','Andrea','Angelica','Angie','Apple','Aslina', |
|||
'Bernice','Betty','Boey','Bonnie', |
|||
'Caemen','Carey','Carmen','Carrie','Cindy', |
|||
'Debbie', |
|||
'Elaine','Elena', |
|||
'Felixia','Fish','Freya', |
|||
'Genervie','Gin', |
|||
'Hannah','Heidi','Helena', |
|||
'Janet','Jemie','Jess','Jesseca','Jessie','Joanna','Jolene','Joyce','Juliana', |
|||
'Karen','Kathleen', |
|||
'Lilian','Linda','Lydia','Lyndel', |
|||
'Maria','Marilyn','Maya','Meeia','Melinda','Melissa','Michelle','Michele', |
|||
'Nadia','Natalie','Nicole', |
|||
'Penny', |
|||
'Phyllis', |
|||
'Quincy', |
|||
'Rachel','Rena','Rose', |
|||
'Samantha','Sarah','Sheena','Sherine','Shevon','Sonia','Stella', |
|||
'Teresa','Tiffany','Tracy','Tricia', |
|||
'Vera','Violet','Vivian','Vivien', |
|||
'Yvonne', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people |
|||
*/ |
|||
protected static $initialIndian = array( |
|||
'B. ','B. C. ', |
|||
'C. ', |
|||
'D. ','D. R. ','D. S. ', |
|||
'E. ', |
|||
'G. ', |
|||
'K. ','K. L. ','K. R.','K. S. ', |
|||
'M. ','M. G. ','M. G. G. ','M. K. ', |
|||
'N. ','N. K. ', |
|||
'P. ', |
|||
'R. ','R. G. ','R. S. ', |
|||
'S. ','S. A. ', |
|||
'T. ', |
|||
'V. ','V. T. ', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/K._L._Devaser |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people |
|||
*/ |
|||
protected static $firstNameMaleIndian = array( |
|||
'Anbil','Ananda','Arasu','Arul','Arulraj','Arumugam','Ash', |
|||
'Babu','Balachandra','Balasubramaniam','Balden','Baljit','Baltej','Bishan', |
|||
'Canagasabai','Cecil','Chakra','Chanturu', |
|||
'Depan','Darma Raja','Devaki','Devamany','Devan','Devasagayam','Diljit','Doraisingam', |
|||
'Ganesh','Ganga','Gengadharan','Gobalakrishnan','Gobind','Gopinathan','Govindasamy','Gunasekaran','Gurmit', |
|||
'Haran','Harikrish','Hiresh','Huzir', |
|||
'Indi', |
|||
'Jagdeep','Janil','Jeevandran','Jegathesan','Jeyakumar','Jomo Kwame', |
|||
'Kamal','Kamalanathan','Kanagaraj','Kandasamy','Kandiah','Karamjit','Karnail','Karpal','Kasi','Kasinather','Kavi','Kavidhai','Kishor','Krishen','Krishnamoorthy','Krishnamurthi','Krishnasamy','Kulasegaran','Kumar','Kumutha','Kuhan','Kunanlan','Kundan Lal','Kunjiraman', |
|||
'Loganathan', |
|||
'Magendran','Maha','Mahadev','Mahaletchumy','Mahathir','Maniam','Manickavasagam','Manikavasagam','Manjit','Manogaran','Manoharan','Manrick','Marimuthu','Merican','Mogan','Mohanadas','Munshi','Murugayan','Murugesan','Mutahir', |
|||
'Nadarajan','Nandakumar','Nanthakumar','Naraina','Nethaji','Ninian', |
|||
'Padathan','Palanivel','Param','Paramjit','Pavandeep','Praboo','Pragash','Premnath','Prema','Pria','Puvaneswaran', |
|||
'Rabinder','Rajagobal','Rajesh','Rajeswary','Rajiv','Rakesh','Rama','Ramasamy','Ramesh','Ramkarpal','Ramon','Rattan','Ravichandran','Rehman','Renuga','Rohan','Rueben', |
|||
'Saarvindran','Samy','Sanisvara','Sanjay','Santhara','Santokh','Sarath','Saravanan','Sarjit','Sasikumar','Satwant','Selvakkumar','Selvaraju','Serbegeth','Shan','Shankar','Shanmugam','Sittampalam','Sivakumar','Sivarasa','Solamalay','Sothinathan','Subramaniam','Sukhjit','Sumisha','Surendran','Suresh','Suriaprakash', |
|||
'Tatparanandam','Tanasekharan','Thamboosamy','Thamil','Thayaparan','Thirumurugan','Thirunavuk', |
|||
'Uthayakumar', |
|||
'Varatharaju','Veenod','Veerappan','Veerappen','Veloo','Vasudevan','Vellu','Viatilingam','Vijandren','Vinod','Vishnu','Vivasvan', |
|||
'Waythamoorthy','Weeratunge', |
|||
'Yosri','Yugendran', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people |
|||
*/ |
|||
protected static $firstNameFemaleIndian = array( |
|||
'Ambiga','Anaika','Anand','Anita','Asha','Athi', |
|||
'Gheetha', |
|||
'Haanii', |
|||
'Janaky', |
|||
'Kasthuriraani','Kavita','Kiran', |
|||
'Melinder', |
|||
'Nithya', |
|||
'Prashanthini','Preeta','Priya','Pushpa', |
|||
'Ramya','Rani','Rasammah','Renuga', |
|||
'Sangeeta','Sannatasah','Saraswati','Shamini','Shanthi','Shanti','Shoba','Shuba','Siva','Sutheaswari','Swarna','Sybil', |
|||
'Thanuja','Theiviya','Thripura', |
|||
'Umasundari','Uthaya', |
|||
'Vijaya', |
|||
'Zabrina', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_politicians_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/List_of_Malaysian_sportspeople_of_Indian_descent |
|||
* @link https://en.wikipedia.org/wiki/Tamil_Malaysians#Notable_people |
|||
*/ |
|||
protected static $lastNameIndian = array( |
|||
'Alagaratnam','Ambumamee','Ammasee','Ampalavanar','Ananthan','Arivanathan','Arujunan','Arumugam','Asirvatham','Autherapady', |
|||
'Balakrishnan','Balan','Bamadhaj','Bastianpillai','Bhullar','Bhupalan', |
|||
'Chandran','Cumaraswamy','Chelvan','Chengara', |
|||
'Dairiam','Davies','Devaraj','Devandran','Devaser','Dhaliwal','Dharmalingam','Dhillon', |
|||
'Elavarasan', |
|||
'Fernandes','Fernandez', |
|||
'Ganapathy','Ganesan','Gnanalingam','Goundar','Govindasamy','Gunalan','Gurusamy', |
|||
'Haridas', |
|||
'Iyer', |
|||
'Jaidka','Jassal','Jayaram','Jayaseelan','Jayawardene','Jeevananthan', |
|||
'Kaliappan','Kamalesvaran','Kandasamy','Karathu','Kathigasu','Kathiripillai','Kaveri','Kayveas','Krishnan','Krishnasamy','Kumar','Kumaresan','Kumari','Kunalan','Kundargal','Kuppusamy', |
|||
'Lakshmi','Linggam','Lourdenadin', |
|||
'Madhavan','Mahathevan','Malayalam','Manicka','Manikavasagam','Marimuthu','Menon','Mohinder','Moorthy','Mudukasan','Muniandy','Munisamy','Munusamy','Murugan','Murugeson', |
|||
'Nadarajah','Nagapan','Nagappan','Nagaraj','Nagarajan','Nahappan','Naidu','Nair','Namasivayam','Narayan','Navaratnam','Navarednam','Nayar','Nijhar', |
|||
'Pakiam','Palaniappan','Palanisamy','Panchanathan','Pandithan','Parthiban','Pathmanaban','Patto','Pereira','Perera','Periasamy','Perumal','Pillai','Pillay','Ponnusamy','Prakash','Puaneswaran','Purushothaman','Puspanathan','Puthucheary', |
|||
'Raj Kaur','Rajakumar','Rajan','Rajannaidu','Rajendra','Rajendran','Rajhans','Raju','Ramachandra','Ramadas','Ramadass','Ramanathan','Ramani','Ramasamy','Raj','Rao','Rasiah','Ratnam','Ravindran','Rayer','Retinam','Rishyakaran','Robbat', |
|||
'Sachithanandan','Sakadivan','Sakwati','Samarasan','Sambanthan','Sandrakasi','Sangalimuthu','Saniru','Sankar','Saravanan','Sathasivam','Sathianathan','Saunthararajah','Seenivasagam','Sekhar','Sellan','Selvanayagam','Selvarajoo','Selvaratnam','Shanmuganathan','Shanmugaratnam','Shekhar','Shivraj','Shree','Sidhu','Sinnandavar','Sinnathamby','Sinnathuray','Sivanesan','Singh','Sivalingam','Sivanesan','Shankar','Sodhy','Somasundram','Sooryapparad','Soti','Sreenevasan','Subramaniam','Sundram','Suppiah','Surendran', |
|||
'Thajudeen','Thalalla','Thambu','Thanabalasingam','Thanenthiran','Theseira','Thevandran','Thiru','Thirunavukarasu','Thivy','Thuraisingham','Tikaram', |
|||
'Vadaketh','Vadiveloo','Vanajah','Varman','Vasudevan','Veeran','Veerasamy','Veerasenan','Veerathan','Veetil','Velappan','Vello','Vengatarakoo','Vethamuthu','Viswalingam', |
|||
'Xavier', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Malay_styles_and_titles |
|||
*/ |
|||
protected static $titleMale = array('En.','Dr.','Prof.','Datuk','Dato\'','Datuk Seri','Dato\' Sri','Tan Sri','Tun'); |
|||
protected static $titleFemale = array('Pn.','Cik','Dr.','Prof.','Datin','Datin Paduka','Datin Paduka Seri','Puan Sri','Toh Puan'); |
|||
|
|||
/** |
|||
* Return a Malay male first name |
|||
* |
|||
* @example 'Ahmad' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameMaleMalay() |
|||
{ |
|||
return static::randomElement(static::$firstNameMaleMalay); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay female first name |
|||
* |
|||
* @example 'Adibah' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameFemaleMalay() |
|||
{ |
|||
return static::randomElement(static::$firstNameFemaleMalay); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay last name |
|||
* |
|||
* @example 'Abdullah' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function lastNameMalay() |
|||
{ |
|||
return static::randomElement(static::$lastNameMalay); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay male 'Muhammad' name |
|||
* |
|||
* @example 'Muhammad' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function muhammadName() |
|||
{ |
|||
return static::randomElement(static::$muhammadName); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay female 'Nur' name |
|||
* |
|||
* @example 'Nur' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function nurName() |
|||
{ |
|||
return static::randomElement(static::$nurName); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay male 'Haji' title |
|||
* |
|||
* @example 'Haji' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function haji() |
|||
{ |
|||
return static::randomElement(static::$haji); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay female 'Hajjah' title |
|||
* |
|||
* @example 'Hajjah' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function hajjah() |
|||
{ |
|||
return static::randomElement(static::$hajjah); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malay title |
|||
* |
|||
* @example 'Syed' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function titleMaleMalay() |
|||
{ |
|||
return static::randomElement(static::$titleMaleMalay); |
|||
} |
|||
|
|||
/** |
|||
* Return a Chinese last name |
|||
* |
|||
* @example 'Lim' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function lastNameChinese() |
|||
{ |
|||
return static::randomElement(static::$lastNameChinese); |
|||
} |
|||
|
|||
/** |
|||
* Return a Chinese male first name |
|||
* |
|||
* @example 'Goh Tong' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameMaleChinese() |
|||
{ |
|||
return static::randomElement(static::$firstNameChinese) . ' ' . static::randomElement(static::$firstNameMaleChinese); |
|||
} |
|||
|
|||
/** |
|||
* Return a Chinese female first name |
|||
* |
|||
* @example 'Mew Choo' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameFemaleChinese() |
|||
{ |
|||
return static::randomElement(static::$firstNameChinese) . ' ' . static::randomElement(static::$firstNameFemaleChinese); |
|||
} |
|||
|
|||
/** |
|||
* Return a Christian male name |
|||
* |
|||
* @example 'Aaron' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameMaleChristian() |
|||
{ |
|||
return static::randomElement(static::$firstNameMaleChristian); |
|||
} |
|||
|
|||
/** |
|||
* Return a Christian female name |
|||
* |
|||
* @example 'Alice' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameFemaleChristian() |
|||
{ |
|||
return static::randomElement(static::$firstNameFemaleChristian); |
|||
} |
|||
|
|||
/** |
|||
* Return an Indian initial |
|||
* |
|||
* @example 'S. ' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function initialIndian() |
|||
{ |
|||
return static::randomElement(static::$initialIndian); |
|||
} |
|||
|
|||
/** |
|||
* Return an Indian male first name |
|||
* |
|||
* @example 'Arumugam' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameMaleIndian() |
|||
{ |
|||
return static::randomElement(static::$firstNameMaleIndian); |
|||
} |
|||
|
|||
/** |
|||
* Return an Indian female first name |
|||
* |
|||
* @example 'Ambiga' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function firstNameFemaleIndian() |
|||
{ |
|||
return static::randomElement(static::$firstNameFemaleIndian); |
|||
} |
|||
|
|||
/** |
|||
* Return an Indian last name |
|||
* |
|||
* @example 'Subramaniam' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function lastNameIndian() |
|||
{ |
|||
return static::randomElement(static::$lastNameIndian); |
|||
} |
|||
|
|||
/** |
|||
* Return a random last name |
|||
* |
|||
* @example 'Lee' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function lastName() |
|||
{ |
|||
$formats = array( |
|||
'{{lastNameMalay}}', |
|||
'{{lastNameChinese}}', |
|||
'{{lastNameIndian}}', |
|||
); |
|||
|
|||
return $this->generator->parse(static::randomElement($formats)); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian I.C. No. |
|||
* |
|||
* @example '890123-45-6789' |
|||
* |
|||
* @link https://en.wikipedia.org/wiki/Malaysian_identity_card#Structure_of_the_National_Registration_Identity_Card_Number_(NRIC) |
|||
* |
|||
* @param string|null $gender 'male', 'female' or null for any |
|||
* @param bool|string|null $hyphen true, false, or any separator characters |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function myKadNumber($gender = null, $hyphen = false) |
|||
{ |
|||
// year of birth |
|||
$yy = mt_rand(0, 99); |
|||
|
|||
// month of birth |
|||
$mm = DateTime::month(); |
|||
|
|||
// day of birth |
|||
$dd = DateTime::dayOfMonth(); |
|||
|
|||
// place of birth (1-59 except 17-20) |
|||
while (in_array(($pb = mt_rand(1, 59)), array(17, 18, 19, 20))) { |
|||
}; |
|||
|
|||
// random number |
|||
$nnn = mt_rand(0, 999); |
|||
|
|||
// gender digit. Odd = MALE, Even = FEMALE |
|||
$g = mt_rand(0, 9); |
|||
//Credit: https://gist.github.com/mauris/3629548 |
|||
if ($gender === static::GENDER_MALE) { |
|||
$g = $g | 1; |
|||
} elseif ($gender === static::GENDER_FEMALE) { |
|||
$g = $g & ~1; |
|||
} |
|||
|
|||
// formatting with hyphen |
|||
if ($hyphen === true) { |
|||
$hyphen = "-"; |
|||
} else if ($hyphen === false) { |
|||
$hyphen = ""; |
|||
} |
|||
|
|||
return sprintf("%02d%02d%02d%s%02d%s%03d%01d", $yy, $mm, $dd, $hyphen, $pb, $hyphen, $nnn, $g); |
|||
} |
|||
} |
@ -0,0 +1,217 @@ |
|||
<?php |
|||
|
|||
namespace Faker\Provider\ms_MY; |
|||
|
|||
class PhoneNumber extends \Faker\Provider\PhoneNumber |
|||
{ |
|||
protected static $formats = array( |
|||
'{{mobileNumber}}', |
|||
'{{fixedLineNumber}}', |
|||
'{{voipNumber}}' |
|||
); |
|||
|
|||
protected static $plusSymbol = array( |
|||
'+' |
|||
); |
|||
|
|||
protected static $countryCodePrefix = array( |
|||
'6' |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony |
|||
*/ |
|||
protected static $zeroOneOnePrefix = array('10','11','12','13','14','15','16','17','18','19','20','22','23','32'); |
|||
protected static $zeroOneFourPrefix = array('2','3','4','5','6','7','8','9'); |
|||
protected static $zeroOneFivePrefix = array('1','2','3','4','5','6','9'); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony |
|||
*/ |
|||
protected static $mobileNumberFormatsWithFormatting = array( |
|||
'010-### ####', |
|||
'011-{{zeroOneOnePrefix}}## ####', |
|||
'012-### ####', |
|||
'013-### ####', |
|||
'014-{{zeroOneFourPrefix}}## ####', |
|||
'016-### ####', |
|||
'017-### ####', |
|||
'018-### ####', |
|||
'019-### ####', |
|||
); |
|||
|
|||
protected static $mobileNumberFormats = array( |
|||
'010#######', |
|||
'011{{zeroOneOnePrefix}}######', |
|||
'012#######', |
|||
'013#######', |
|||
'014{{zeroOneFourPrefix}}######', |
|||
'016#######', |
|||
'017#######', |
|||
'018#######', |
|||
'019#######', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Geographic_area_codes |
|||
*/ |
|||
protected static $fixedLineNumberFormatsWithFormatting = array( |
|||
'03-#### ####', |
|||
'04-### ####', |
|||
'05-### ####', |
|||
'06-### ####', |
|||
'07-### ####', |
|||
'08#-## ####', |
|||
'09-### ####', |
|||
); |
|||
|
|||
protected static $fixedLineNumberFormats = array( |
|||
'03########', |
|||
'04#######', |
|||
'05#######', |
|||
'06#######', |
|||
'07#######', |
|||
'08#######', |
|||
'09#######', |
|||
); |
|||
|
|||
/** |
|||
* @link https://en.wikipedia.org/wiki/Telephone_numbers_in_Malaysia#Mobile_phone_codes_and_IP_telephony |
|||
*/ |
|||
protected static $voipNumberWithFormatting = array( |
|||
'015-{{zeroOneFivePrefix}}## ####' |
|||
); |
|||
|
|||
protected static $voipNumber = array( |
|||
'015{{zeroOneFivePrefix}}######' |
|||
); |
|||
|
|||
/** |
|||
* Return a Malaysian Mobile Phone Number. |
|||
* |
|||
* @example '+6012-345-6789' |
|||
* |
|||
* @param bool $countryCodePrefix true, false |
|||
* @param bool $formatting true, false |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function mobileNumber($countryCodePrefix = true, $formatting = true) |
|||
{ |
|||
if ($formatting) { |
|||
$format = static::randomElement(static::$mobileNumberFormatsWithFormatting); |
|||
} else { |
|||
$format = static::randomElement(static::$mobileNumberFormats); |
|||
} |
|||
|
|||
if ($countryCodePrefix) { |
|||
return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); |
|||
} else { |
|||
return static::numerify($this->generator->parse($format)); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Return prefix digits for 011 numbers |
|||
* |
|||
* @example '10' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function zeroOneOnePrefix() |
|||
{ |
|||
return static::numerify(static::randomElement(static::$zeroOneOnePrefix)); |
|||
} |
|||
|
|||
/** |
|||
* Return prefix digits for 014 numbers |
|||
* |
|||
* @example '2' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function zeroOneFourPrefix() |
|||
{ |
|||
return static::numerify(static::randomElement(static::$zeroOneFourPrefix)); |
|||
} |
|||
|
|||
/** |
|||
* Return prefix digits for 015 numbers |
|||
* |
|||
* @example '1' |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function zeroOneFivePrefix() |
|||
{ |
|||
return static::numerify(static::randomElement(static::$zeroOneFivePrefix)); |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Fixed Line Phone Number. |
|||
* |
|||
* @example '+603-4567-8912' |
|||
* |
|||
* @param bool $countryCodePrefix true, false |
|||
* @param bool $formatting true, false |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function fixedLineNumber($countryCodePrefix = true, $formatting = true) |
|||
{ |
|||
if ($formatting) { |
|||
$format = static::randomElement(static::$fixedLineNumberFormatsWithFormatting); |
|||
} else { |
|||
$format = static::randomElement(static::$fixedLineNumberFormats); |
|||
} |
|||
|
|||
if ($countryCodePrefix) { |
|||
return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); |
|||
} else { |
|||
return static::numerify($this->generator->parse($format)); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian VoIP Phone Number. |
|||
* |
|||
* @example '+6015-678-9234' |
|||
* |
|||
* @param bool $countryCodePrefix true, false |
|||
* @param bool $formatting true, false |
|||
* |
|||
* @return string |
|||
*/ |
|||
public function voipNumber($countryCodePrefix = true, $formatting = true) |
|||
{ |
|||
if ($formatting) { |
|||
$format = static::randomElement(static::$voipNumberWithFormatting); |
|||
} else { |
|||
$format = static::randomElement(static::$voipNumber); |
|||
} |
|||
|
|||
if ($countryCodePrefix) { |
|||
return static::countryCodePrefix($formatting) . static::numerify($this->generator->parse($format)); |
|||
} else { |
|||
return static::numerify($this->generator->parse($format)); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* Return a Malaysian Country Code Prefix. |
|||
* |
|||
* @example '+6' |
|||
* |
|||
* @param bool $formatting true, false |
|||
* |
|||
* @return string |
|||
*/ |
|||
public static function countryCodePrefix($formatting = true) |
|||
{ |
|||
if ($formatting) { |
|||
return static::randomElement(static::$plusSymbol) . static::randomElement(static::$countryCodePrefix); |
|||
} else { |
|||
return static::randomElement(static::$countryCodePrefix); |
|||
} |
|||
} |
|||
} |
File diff suppressed because it is too large
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue