1
0
mirror of https://github.com/fzaninotto/Faker.git synced 2025-03-22 08:19:52 +01:00

Added ua_UA provider

This commit is contained in:
Roman Vasilyev 2012-12-01 20:52:23 +02:00
parent 70c116bc33
commit b0b6eb6029
5 changed files with 534 additions and 0 deletions

View File

@ -0,0 +1,344 @@
<?php
namespace Faker\Provider\ua_UA;
class Address extends \Faker\Provider\Base
{
protected static $cityPrefix = array('місто');
protected static $regionSuffix = array('область');
protected static $streetPrefix = array(
'вул.', 'пров.', 'пл.', 'просп.'
);
protected static $buildingNumber = array('##');
protected static $postcode = array('#####');
protected static $country = array(
'Афганістан',
'Албанія',
'Алжир',
'Андорра',
'Ангола',
'Аргентина',
'Вірменія',
'Австралія',
'Австрія',
'Азербайджан',
'Багамські острови',
'Бахрейн',
'Бангладеш',
'Барбадос',
'Білорусь',
'Бельгія',
'Беліз',
'Бенін',
'Бутан',
'Болівія',
'Боснія і Герцеговина',
'Ботсвана',
'Бразилія',
'Бруней',
'Болгарія',
'Бурунді',
'Камбоджа',
'Камерун',
'Канада',
'Кабо-Верде',
'Центрально-Африканська Республіка',
'Чад',
'Чилі',
'Китай',
'Колумбія',
'Коморські острови',
'Конго',
'Конго, Демократична Республіка',
'Коста-Ріка',
'Хорватія',
'Куба',
'Кіпр',
'Чеська республіка',
'Данія',
'Джибуті',
'Домініка',
'Домініканська Республіка',
'східний Тимор',
'Еквадор',
'Єгипет',
'Сальвадор',
'Екваторіальна Гвінея',
'Еритрея',
'Естонія',
'Ефіопія',
'Фіджі',
'Фінляндія',
'Франція',
'Габон',
'Гамбія',
'Грузія',
'Німеччина',
'Гана',
'Греція',
'Гренада',
'Гватемала',
'Гвінея',
'Гвінея-Бісау',
'Гайана',
'Гаїті',
'Гондурас',
'Угорщина',
'Ісландія',
'Індія',
'Індонезія',
'Іран',
'Ірак',
'Ірландія',
'Ізраїль',
'Італія',
'Ямайка',
'Японія',
'Йорданія',
'Казахстан',
'Кенія',
'Кірібаті',
'Північна Корея',
'Південна Корея',
'Косово',
'Кувейт',
'Киргизія',
'Лаос',
'Латвія',
'Ліван',
'Лесото',
'Ліберія',
'Лівія',
'Ліхтенштейн',
'Литва',
'Люксембург',
'Македонії',
'Мадагаскар',
'Малаві',
'Малайзія',
'Мальдіви',
'Малі',
'Мальта',
'Маршаллові острови',
'Мавританія',
'Маврикій',
'Мексика',
'Мікронезія',
'Молдова',
'Монако',
'Монголія',
'Чорногорія',
'Марокко',
'Мозамбік',
'М\'янма',
'Намібія',
'Науру',
'Непал',
'Нідерланди',
'Нова Зеландія',
'Нікарагуа',
'Нігер',
'Нігерія',
'Норвегія',
'Оман',
'Пакистан',
'Палау',
'Панама',
'Папуа-Нова Гвінея',
'Парагвай',
'Перу',
'Філіппіни',
'Польща',
'Португалія',
'Катар',
'Румунія',
'Російська Федерація',
'Руанда',
'Сент-Кітс і Невіс',
'Сент-Люсія',
'Сент-Вінсент і Гренадіни',
'Самоа',
'Саудівська Аравія',
'Сенегал',
'Сербія',
'Сейшельські острови',
'Сьєрра-Леоне',
'Сінгапур',
'Словаччина',
'Словенія',
'Соломонові острови',
'Сомалі',
'ПАР',
'Іспанія',
'Шрі Ланка',
'Судан',
'Сурінам',
'Свазіленд',
'Швеція',
'Швейцарія',
'Сирія',
'Тайвань',
'Таджикистан',
'Танзанія',
'Таїланд',
'Того',
'Тонга',
'Тринідад і Тобаго',
'Туніс',
'Туреччина',
'Туркменістан',
'Тувалу',
'Уганда',
'Україна',
'Об\'єднані Арабські Емірати',
'Великобританія',
'Сполучені Штати',
'Уругвай',
'Узбекистан',
'Вануату',
'Ватикан',
'Венесуела',
'В\'єтнам',
'Ємен',
'Замбія',
'Зімбабве',
);
protected static $region = array(
'Вінницька',
'Волинська',
'Дніпропетровська',
'Донецька',
'Житомирська',
'Закарпатська',
'Запорізька',
'Івано-Франківська',
'Київська',
'Кіровоградська',
'Луганська',
'Львівська',
'Миколаївська',
'Одеська',
'Полтавська',
'Рівненська',
'Сумська',
'Тернопільська',
'Харківська',
'Херсонська',
'Хмельницька',
'Черкаська',
'Чернівецька',
'Чернігівська'
);
protected static $city = array(
'Вінниця',
'Луцьк',
'Дніпропетровськ',
'Донецьк',
'Житомир',
'Ужгород',
'Запоріжжя',
'Івано-Франківськ',
'Київ',
'Кіровоград',
'Луганськ',
'Львів',
'Миколаїв',
'Одеса',
'Полтава',
'Рівне',
'Суми',
'Тернопіль',
'Харків',
'Херсон',
'Хмельницьк',
'Черкаси',
'Чернівці',
'Чернігів'
);
protected static $street = array(
'Тараса Шевченка',
'Лесі Українки',
'Леніна',
'40 років Перемоги',
'50 років Жовтня',
'Михайла Грушевського',
'Гагаріна',
'Космонавта Попова',
'Генерала Жадова',
'Пацаєва',
'Волкова',
);
protected static $addressFormats = array(
"{{postcode}}, {{cityAndRegion}}, {{streetPrefix}} {{street}}, {{buildingNumber}}",
);
public static function buildingNumber()
{
return static::numerify(static::randomElement(static::$buildingNumber));
}
public function address()
{
$format = static::randomElement(static::$addressFormats);
return $this->generator->parse($format, array());
}
public static function country()
{
return static::randomElement(static::$country);
}
public static function postcode()
{
return static::toUpper(static::bothify(static::randomElement(static::$postcode)));
}
public static function regionSuffix()
{
return static::randomElement(static::$regionSuffix);
}
public static function region()
{
return static::randomElement(static::$region);
}
public static function cityPrefix()
{
return static::randomElement(static::$cityPrefix);
}
public static function city()
{
return static::randomElement(static::$city);
}
/**
* Get city and region together
* We need it because city and region must comply each other in Ukraine
* @example 'Закарпатська область, місто Ужгород'
* @return string
*/
public function cityAndRegion()
{
$regionAndCityNumber = rand(0, count(static::$region) - 1);
$region = static::$region[$regionAndCityNumber];
$city = static::$city[$regionAndCityNumber];
$format = "$region {{regionSuffix}}, {{cityPrefix}} $city";
return $this->generator->parse($format);
}
public static function streetPrefix()
{
return static::randomElement(static::$streetPrefix);
}
public static function street()
{
return static::randomElement(static::$street);
}
}

View File

@ -0,0 +1,54 @@
<?php
namespace Faker\Provider\ua_UA;
class Company extends \Faker\Provider\Base
{
protected static $formats = array(
'{{companyName}}', // Вектор
'{{companyPrefix}} "{{companyName}}"', // ТОВ "Інфоком"
'{{companyName}}-{{companySuffix}}"', // Сервіс-Плюс
'{{companyPrefix}} "{{companyName}}-{{companySuffix}}"',// ПАТ "Альфа-Стиль"
);
protected static $urlFormats = array(
'{{companyName}}',
'{{companyName}}-{{companySuffix}}',
);
protected static $companyPrefix = array('ТОВ', 'ПП', 'ПАТ','ПрАТ');
protected static $companySuffix = array('Сервіс','Плюс', 'Груп', 'Стиль', 'Дизайн');
protected static $companyName = array(
'Вектор', 'Едельвейс', 'Смарт', 'Альфа', 'Система', 'Універсал',
'Інфоком', 'Макс', 'Планета', 'Вектор', 'Приват', 'Еко', 'Мега',
'Мегамакс', 'Мульти', 'Майнер'
);
public function company()
{
$format = static::randomElement(static::$formats);
return $this->generator->parse($format);
}
public function companyUrl()
{
$format = static::randomElement(static::$urlFormats);
return $this->generator->parse($format);
}
public static function companyPrefix()
{
return static::randomElement(static::$companyPrefix);
}
public static function companySuffix()
{
return static::randomElement(static::$companySuffix);
}
public static function companyName()
{
return static::randomElement(static::$companyName);
}
}

View File

@ -0,0 +1,32 @@
<?php
namespace Faker\Provider\ua_UA;
class Internet extends \Faker\Provider\Internet
{
protected static $tld = array('ua', 'com.ua', 'org.ua', 'net.ua', 'com', 'net', 'org');
protected static $freeEmailDomain = array('gmail.com', 'mail.ru', 'ukr.net', 'i.ua', 'rambler.ru');
/**
* @example 'roman93'
*/
public function userName()
{
$format = static::randomElement(static::$userNameFormats);
return static::toLower(static::bothify(
Utils::cyrillicToLatin($this->generator->parse($format))
)
);
}
/**
* @example 'smart-dizayn'
*/
public function domainWord()
{
$company = $this->generator->format('companyUrl');
$company = str_replace(' ', '-', $company);
$company = Utils::cyrillicToLatin($company);
return $company;
}
}

View File

@ -0,0 +1,74 @@
<?php
namespace Faker\Provider\ua_UA;
class Person extends \Faker\Provider\Person
{
protected static $formats = array(
'{{firstName}} {{middleName}} {{lastName}}',
'{{lastName}} {{firstName}} {{middleName}}',
);
protected static $firstName = array(
'Олександр', 'Олексій', 'Дмитро', 'Сергій', 'Андрій', 'Антон',
'Віталий', 'Володимир', 'Денис', 'Євген', 'Іван', 'Ігор',
'Костянтин', 'Максим', 'Михайло', 'Миколай', 'Роман', 'Анатолій',
'Аркадій', 'Арсеній', 'Богдан', 'Болеслав', 'Борис',
'Вадим', 'Валентин', 'Валерій', 'Василь', 'Віктор',
'Владислав', 'Всеволод', 'В\'ячеслав', 'Генадій', 'Георгій', 'Григорій',
'Давид', 'Дан', 'Данил', 'Данило', 'Єгор', 'Єфим',
'Захар', 'Илля', 'Йосиф', 'Кирило', 'Лаврентій', 'Лев', 'Леонід', 'Макар',
'Марк', 'Мирослав', 'Назар', 'Микита', 'Олег', 'Петро', 'Платон',
'Ростислав', 'Руслан', 'Савва', 'Сава', 'Святослав', 'Семен', 'Степан',
'Тарас', 'Тимофій', 'Федір', 'Фелікс', 'Юлій', 'Юрій', 'Ян', 'Ярослав',
);
protected static $middleName = array(
'Олександрович', 'Олексійович', 'Андрійович', 'Євгенович',
'Сергійович', 'Іванович', 'Федорович', 'Тарасович', 'Васильович', 'Романович'
);
protected static $lastName = array(
'Антоненко',
'Василенко',
'Васильчук',
'Васильєв',
'Гнатюк',
'Дмитренко',
'Захарчук',
'Іванченко',
'Микитюк',
'Павлюк',
'Панасюк',
'Петренко',
'Романченко',
'Сергієнко',
'Середа',
'Таращук',
'Боднаренко',
'Броваренко',
'Броварчук',
'Кравченко',
'Кравчук',
'Крамаренко',
'Крамарчук',
'Мельниченко',
'Мірошниченко',
'Шевченко',
'Шевчук',
'Шинкаренко',
'Пономаренко',
'Пономарчук',
);
/**
* Return middle name
* @example 'Іванович'
* @access public
* @return string Middle name
*/
public function middleName()
{
return static::randomElement(static::$middleName);
}
}

View File

@ -0,0 +1,30 @@
<?php
namespace Faker\Provider\ua_UA;
class PhoneNumber extends \Faker\Provider\PhoneNumber
{
protected static $formats = array(
// International format (mobile)
'+38050#######',
'+38096#######',
'+38067#######',
'+38093#######',
'+38063#######',
'+38099#######',
// Internal country format (mobile)
'050#######',
'096#######',
'067#######',
'093#######',
'063#######',
'099#######',
// More generic formats
'+380#######',
'+38(0##)#######',
'+38(0###)######'
);
}