Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for es_CO locale #893

Open
wants to merge 1 commit into
base: 2.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions src/Provider/es_CO/Address.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
<?php

namespace Faker\Provider\es_CO;

class Address extends \Faker\Provider\Address
{
protected static $cityPrefix = [
'San', 'Villa', 'El', 'Los', 'La', 'Las', 'Santa', 'Puerto', 'Boca', 'Nueva', 'Santo', 'Pueblo', 'Ciudad', 'Monte', 'Campo', 'Bahía'
];

protected static $citySuffix = [
'de Antioquia', 'del Norte', 'del Sur', 'del Este', 'del Oeste', 'de los Ángeles', 'de la Sierra', 'del Carmen', 'del Mar', 'del Rosario', 'de los Santos', 'de las Flores', 'del Sol', 'del Valle', 'del Río', 'del Lago', 'del Monte', 'del Campo'
];

protected static $buildingNumber = ['%##', '%#', '%'];

protected static $streetPrefix = ['Calle', 'Carrera', 'Avenida', 'Diagonal', 'Transversal'];

protected static $cityNames = [
'Bogotá', 'Medellín', 'Cali', 'Barranquilla', 'Cartagena', 'Bucaramanga', 'Pereira', 'Manizales', 'Santa Marta', 'Ibagué', 'Cúcuta', 'Armenia', 'Pasto', 'Villavicencio', 'Montería', 'Valledupar'
];

protected static $postcode = ['#####'];

protected static $community = [
'Amazonas', 'Antioquia', 'Arauca', 'Atlántico', 'Bolívar', 'Boyacá', 'Caldas', 'Caquetá', 'Casanare', 'Cauca', 'Cesar', 'Chocó', 'Córdoba', 'Cundinamarca', 'Guainía', 'Guaviare', 'Huila', 'La Guajira', 'Magdalena', 'Meta', 'Nariño', 'Norte de Santander', 'Putumayo', 'Quindío', 'Risaralda', 'San Andrés y Providencia', 'Santander', 'Sucre', 'Tolima', 'Valle del Cauca', 'Vaupés', 'Vichada'
];

protected static $state = [
'Amazonas', 'Antioquia', 'Arauca', 'Atlántico', 'Bolívar', 'Boyacá', 'Caldas', 'Caquetá', 'Casanare', 'Cauca', 'Cesar', 'Chocó', 'Córdoba', 'Cundinamarca', 'Guainía', 'Guaviare', 'Huila', 'La Guajira', 'Magdalena', 'Meta', 'Nariño', 'Norte de Santander', 'Putumayo', 'Quindío', 'Risaralda', 'San Andrés y Providencia', 'Santander', 'Sucre', 'Tolima', 'Valle del Cauca', 'Vaupés', 'Vichada'
];

protected static $country = [
'Afganistán', 'Albania', 'Alemania', 'Andorra', 'Angola', 'Antigua y Barbuda', 'Arabia Saudí', 'Argelia', 'Argentina', 'Armenia', 'Australia', 'Austria', 'Azerbaiyán',
'Bahamas', 'Bangladés', 'Barbados', 'Baréin', 'Belice', 'Benín', 'Bielorrusia', 'Birmania', 'Bolivia', 'Bosnia-Herzegovina', 'Botsuana', 'Brasil', 'Brunéi Darusalam', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Bután', 'Bélgica',
'Cabo Verde', 'Camboya', 'Camerún', 'Canadá', 'Catar', 'Chad', 'Chile', 'China', 'Chipre', 'Ciudad del Vaticano', 'Colombia', 'Comoras', 'Congo', 'Corea del Norte', 'Corea del Sur', 'Costa Rica', 'Costa de Marfil', 'Croacia', 'Cuba',
'Dinamarca', 'Dominica',
'Ecuador', 'Egipto', 'El Salvador', 'Emiratos Árabes Unidos', 'Eritrea', 'Eslovaquia', 'Eslovenia', 'España', 'Estados Unidos de América', 'Estonia', 'Etiopía',
'Filipinas', 'Finlandia', 'Fiyi', 'Francia',
'Gabón', 'Gambia', 'Georgia', 'Ghana', 'Granada', 'Grecia', 'Guatemala', 'Guinea', 'Guinea Ecuatorial', 'Guinea-Bisáu', 'Guyana',
'Haití', 'Honduras', 'Hungría',
'India', 'Indonesia', 'Irak', 'Irlanda', 'Irán', 'Islandia', 'Islas Marshall', 'Islas Salomón', 'Israel', 'Italia',
'Jamaica', 'Japón', 'Jordania',
'Kazajistán', 'Kenia', 'Kirguistán', 'Kiribati', 'Kuwait',
'Laos', 'Lesoto', 'Letonia', 'Liberia', 'Libia', 'Liechtenstein', 'Lituania', 'Luxemburgo', 'Líbano',
'Macedonia', 'Madagascar', 'Malasia', 'Malaui', 'Maldivas', 'Mali', 'Malta', 'Marruecos', 'Mauricio', 'Mauritania', 'Micronesia', 'Moldavia', 'Mongolia', 'Montenegro', 'Mozambique', 'México', 'Mónaco',
'Namibia', 'Nauru', 'Nepal', 'Nicaragua', 'Nigeria', 'Noruega', 'Nueva Zelanda', 'Níger',
'Omán',
'Pakistán', 'Palaos', 'Panamá', 'Papúa Nueva Guinea', 'Paraguay', 'Países Bajos', 'Perú', 'Polonia', 'Portugal',
'Reino Unido', 'Reino Unido de Gran Bretaña e Irlanda del Norte', 'República Centroafricana', 'República Checa', 'República Democrática del Congo', 'República Dominicana', 'Ruanda', 'Rumanía', 'Rusia',
'Samoa', 'San Cristóbal y Nieves', 'San Marino', 'San Vicente y las Granadinas', 'Santa Lucía', 'Santo Tomé y Príncipe', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leona', 'Singapur', 'Siria', 'Somalia', 'Sri Lanka', 'Suazilandia', 'Sudáfrica', 'Sudán', 'Suecia', 'Suiza', 'Surinam',
'Tailandia', 'Tanzania', 'Tayikistán', 'Timor Oriental', 'Togo', 'Tonga', 'Trinidad y Tobago', 'Turkmenistán', 'Turquía', 'Tuvalu', 'Túnez',
'Ucrania', 'Uganda', 'Uruguay', 'Uzbekistán',
'Vanuatu', 'Venezuela', 'Vietnam',
'Yemen', 'Yibuti',
'Zambia', 'Zimbabue',
];
protected static $cityFormats = [
'{{cityPrefix}} {{lastName}} {{citySuffix}}',
'{{cityPrefix}} {{lastName}}',
'{{lastName}} {{citySuffix}}',
];
protected static $streetNameFormats = [
'{{streetPrefix}} {{firstName}}',
'{{streetPrefix}} {{lastName}}',
];
protected static $streetAddressFormats = [
'{{streetName}}, {{buildingNumber}}, {{secondaryAddress}}',
];
protected static $addressFormats = [
'{{streetAddress}}, {{postcode}}, {{city}}',
];
protected static $secondaryAddressFormats = ['Bajos', 'Ático #º', 'Entre suelo #º', 'Bajo #º', '#º', '#º A', '#º B', '#º C', '#º D', '#º E', '#º F', '##º A', '##º B', '##º C', '##º D', '##º E', '##º F', '#º #º', '##º #º'];

/**
* @example 'Avenida'
*/
public static function streetPrefix()
{
return static::randomElement(static::$streetPrefix);
}

/**
* @example 'Villa'
*/
public static function cityPrefix()
{
return static::randomElement(static::$cityPrefix);
}

/**
* @example '3ºA'
*/
public static function secondaryAddress()
{
return static::numerify(static::randomElement(static::$secondaryAddressFormats));
}

/**
* @example 'Calle'
*/
public static function community()
{
return static::randomElement(static::$community);
}

public static function state()
{
return static::randomElement(static::$state);
}

public function city()
{
return static::randomElement(static::$cityNames);
}

public function streetName()
{
return static::randomElement(static::$streetPrefix) . ' ' . static::bothify(static::randomElement(static::$buildingNumber));
}
}
49 changes: 49 additions & 0 deletions src/Provider/es_CO/Color.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?php

namespace Faker\Provider\es_CO;

class Color extends \Faker\Provider\Color
{
protected static $safeColorNames = [
'amarillo',
'azul marino',
'azul',
'blanco',
'celeste',
'gris',
'lima',
'magenta',
'marrón',
'morado',
'negro',
'plata',
'turquesa',
'verde',
'verde oliva',
'rojo',
'naranja',
'rosa',
'violeta',
'beige',
'azul claro',
'ocre',
'salmon',
'fucsia',
'café',
'lavanda',
'granate',
'cian',
'púrpura',
'azul rey',
'verde menta',
'coral',
'vino',
'champán'
];

public static function colorName()
{
return static::randomElement(static::$safeColorNames);
}

}
93 changes: 93 additions & 0 deletions src/Provider/es_CO/Company.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
<?php

namespace Faker\Provider\es_CO;

class Company extends \Faker\Provider\Company
{
protected static $formats = [
'{{companyPrefix}} {{lastName}} {{companySuffix}}',
'{{companyPrefix}} {{lastName}}',
'{{companyPrefix}} {{lastName}}-{{lastName}}',
'{{lastName}}-{{lastName}} {{companySuffix}}',
'{{lastName}} y {{lastName}} {{companySuffix}}',
'{{lastName}} de {{lastName}} {{companySuffix}}',
'{{lastName}}, {{lastName}} y {{lastName}} {{companySuffix}}',
'{{lastName}}-{{lastName}}',
'{{lastName}} y {{lastName}}',
'{{lastName}} de {{lastName}}',
];

protected static $catchPhraseWords = [
['Innovadora', 'Avanzada', 'Automatizada', 'Balanceada', 'Centrada en el cliente', 'Configurable', 'Descentralizada', 'Digitalizada', 'Diversa', 'Optimizada', 'Personalizada', 'Proactiva', 'Responsiva', 'Sincronizada', 'Sostenible', 'Vertical'],
['24/7', 'de última generación', 'orientada a resultados', 'a medida', 'flexible', 'global', 'integrada', 'interactiva', 'multicanal', 'robusta', 'transparente', 'virtual'],
['soluciones', 'servicios', 'tecnologías', 'plataformas', 'redes', 'sistemas', 'infraestructuras', 'portales', 'estrategias', 'modelos', 'procesos', 'métricas', 'sinergias']
];

protected static $bsWords = [
['implementar', 'utilizar', 'integrar', 'optimizar', 'transformar', 'habilitar', 'orquestar', 'impulsar', 'sinergizar', 'desplegar', 'monetizar'],
['proactivo', 'robusto', 'escalable', 'innovador', 'estratégico', 'global', 'virtual', 'dinámico', 'interactivo', 'eficiente', 'distribuido', 'extensible'],
['soluciones', 'plataformas', 'infraestructuras', 'tecnologías', 'modelos', 'estrategias', 'sistemas', 'redes', 'métricas', 'procesos']
];

protected static $companyPrefix = [
'Asociación', 'Corporación', 'Empresa', 'Fundación', 'Grupo', 'Instituto', 'Organización', 'Servicios', 'Soluciones', 'Tecnologías', 'Viajes'
];

protected static $companySuffix = [
'S.A.S.', 'S.A.', 'Ltda.', 'E.U.', 'Coop.', 'S. en C.', 'S.C.A.', 'S. de R.L.', 'S. en C. por A.', 'Cía.', 'Fundación'
];

/**
* @example 'Grupo'
*/
public static function companyPrefix()
{
return static::randomElement(static::$companyPrefix);
}

/**
* @example 'S.A.S.'
*/
public static function companySuffix()
{
return static::randomElement(static::$companySuffix);
}

/**
* @example 'Innovadora plataforma de soluciones'
*/
public function catchPhrase()
{
$result = [];

foreach (static::$catchPhraseWords as &$word) {
$result[] = static::randomElement($word);
}

return implode(' ', $result);
}

/**
* @example 'implementar soluciones escalables'
*/
public function bs()
{
$result = [];

foreach (static::$bsWords as &$word) {
$result[] = static::randomElement($word);
}

return implode(' ', $result);
}

/**
* @example 'Asociación García S.A.S.'
*/
public function company()
{
$format = static::randomElement(static::$formats);

return $this->generator->parse($format);
}
}
14 changes: 14 additions & 0 deletions src/Provider/es_CO/Internet.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?php

namespace Faker\Provider\es_CO;

class Internet extends \Faker\Provider\Internet
{
protected static $freeEmailDomain = [
'gmail.com', 'hotmail.com', 'yahoo.com', 'live.com', 'outlook.com', 'icloud.com', 'terra.com', 'etb.net.co', 'une.net.co'
];

protected static $tld = [
'com', 'com', 'com', 'net', 'org', 'co', 'com.co', 'gov.co', 'edu.co'
];
}
39 changes: 39 additions & 0 deletions src/Provider/es_CO/Payment.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?php

namespace Faker\Provider\es_CO;

class Payment extends \Faker\Provider\Payment
{
private static $vatMap = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];

/**
* Generate a random bank account number for Colombia.
*
* @param string $prefix
* @param string $countryCode
* @param int $length
*
* @return string
*/
public static function bankAccountNumber($prefix = '', $countryCode = 'CO', $length = 10)
{
return $prefix . static::numerify(str_repeat('#', $length));
}

/**
* Número de Identificación Tributaria (NIT)
*
* @example '9001234567'
*
* @see https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_tributaria
*
* @return string NIT Number
*/
public static function vat()
{
$number = static::numerify('#########');
$checkDigit = static::randomElement(self::$vatMap);

return $number . $checkDigit;
}
}
Loading