# person ------------------------------------
person_es_ES = R6Class(
"person_es_ES",
inherit = person_en_US,
cloneable = FALSE,
private = list(
formats_male = c(
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {prefix} {last_name}',
'{first_name_male} {last_name}-{last_name}',
'{first_name_male} {first_name_male} {last_name} {last_name}'),
formats_female = c(
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {prefix} {last_name}',
'{first_name_female} {last_name}-{last_name}',
'{first_name_female} {first_name_female} {last_name} {last_name}'),
formats = c(
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name} {last_name}',
'{first_name_male} {last_name}',
'{first_name_male} {prefix} {last_name}',
'{first_name_male} {last_name}-{last_name}',
'{first_name_male} {first_name_male} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name} {last_name}',
'{first_name_female} {last_name}',
'{first_name_female} {prefix} {last_name}',
'{first_name_female} {last_name}-{last_name}',
'{first_name_female} {first_name_female} {last_name} {last_name}'),
first_names_male = c(
"Antonio",
"Jose",
"Manuel",
"Francisco",
"Juan",
"David",
"Jose Antonio",
"Jose Luis",
"Javier",
"Jes\u00fas",
"Francisco Javier",
"Daniel",
"Carlos",
"Miguel",
"Rafael",
"Jose Manuel",
"Alejandro",
"Pedro",
"\u00c1ngel",
"Miguel \u00e1ngel",
"Jose Maria",
"Fernando",
"Lu\u00eds",
"Pablo",
"Sergio",
"Jorge",
"Alberto",
"Juan Carlos",
"Juan Jos\u00e9",
"Diego",
"Alvaro",
"Adri\u00e1n",
"Juan Antonio",
"Enrique",
"Raul",
"Ramon",
"Vicente",
"Ivan",
"Ruben",
"Andr\u00e9s",
"Joaquin",
"\u00d3scar",
"Juan Manuel",
"Santiago",
"Eduardo",
"Victor",
"Roberto",
"Jaime",
"Francisco Jose",
"Ignacio",
"Mario",
"Alfonso",
"Salvador",
"Ricardo",
"Jordi",
"Marcos",
"Emilio",
"Julian",
"Julio",
"Guillermo",
"Tom\u00e1s",
"Gabriel",
"Agust\u00edn",
"Jose Miguel",
"Felix",
"Jose Ramon",
"Gonzalo",
"Marc",
"Mohamed",
"Joan",
"Hugo",
"Ismael",
"Cristian",
"Nicol\u00e1s",
"Mariano",
"Josep",
"Domingo",
"Samuel",
"Juan Francisco",
"Alfredo",
"Sebastian",
"Aitor",
"Jose Carlos",
"Martin",
"Felipe",
"Cesar",
"Hector",
"Jose Angel",
"Jose Ignacio",
"Victor Manuel",
"Gregorio",
"Luis Miguel",
"Iker",
"Jose Francisco",
"Juan Luis",
"Albert",
"Lorenzo",
"Alex",
"Xavier",
"Rodrigo"
),
first_names_female = c(
"Mar\u00eda",
"Carmen",
"Ana",
"Isabel",
"Dolores",
"Pilar",
"Josefa",
"Teresa",
"Rosa",
"Cristina",
"\u00c1ngeles",
"Antonia",
"Laura",
"Francisca",
"Elena",
"Mercedes",
"Luisa",
"Marta",
"Concepci\u00f3n",
"Rosario",
"Luc\u00eda",
"Juana",
"Manuela",
"Sara",
"Paula",
"Raquel",
"Beatriz",
"Eva",
"Patricia",
"Victoria",
"Rocio",
"Encarnacion",
"Julia",
"Belen",
"Silvia",
"Esther",
"Andrea",
"Montserrat",
"Nuria",
"Angela",
"Irene",
"Inmaculada",
"M\u00f3nica",
"Sandra",
"Margarita",
"Yolanda",
"Alba",
"Sonia",
"Alicia",
"Mar",
"Susana",
"Marina",
"Amparo",
"Natalia",
"Nieves",
"Gloria",
"Claudia",
"Soledad",
"Ines",
"Lourdes",
"Ver\u00f3nica",
"Carolina",
"Luz",
"Consuelo",
"Noelia",
"Asunci\u00f3n",
"Lorena",
"Sofia",
"Milagros",
"Catalina",
"Esperanza",
"Olga",
"Alejandra",
"Carla",
"Emilia",
"F\u00e1tima",
"Aurora",
"Blanca",
"Magdalena",
"Miriam",
"Lidia",
"Nerea",
"Clara",
"Daniela",
"Anna",
"Celia",
"Elisa",
"Eugenia",
"Josefina",
"Virginia",
"Purificaci\u00f3n",
"Vanesa",
"Remedios",
"Trinidad",
"Gema",
"Adriana",
"Vicenta",
"Mireia",
"Bego\u00f1a"
),
first_names = c(
"Antonio",
"Jose",
"Manuel",
"Francisco",
"Juan",
"David",
"Jose Antonio",
"Jose Luis",
"Javier",
"Jes\u00fas",
"Francisco Javier",
"Daniel",
"Carlos",
"Miguel",
"Rafael",
"Jose Manuel",
"Alejandro",
"Pedro",
"\u00c1ngel",
"Miguel \u00e1ngel",
"Jose Maria",
"Fernando",
"Lu\u00eds",
"Pablo",
"Sergio",
"Jorge",
"Alberto",
"Juan Carlos",
"Juan Jos\u00e9",
"Diego",
"Alvaro",
"Adri\u00e1n",
"Juan Antonio",
"Enrique",
"Raul",
"Ramon",
"Vicente",
"Ivan",
"Ruben",
"Andr\u00e9s",
"Joaquin",
"\u00d3scar",
"Juan Manuel",
"Santiago",
"Eduardo",
"Victor",
"Roberto",
"Jaime",
"Francisco Jose",
"Ignacio",
"Mario",
"Alfonso",
"Salvador",
"Ricardo",
"Jordi",
"Marcos",
"Emilio",
"Julian",
"Julio",
"Guillermo",
"Tom\u00e1s",
"Gabriel",
"Agust\u00edn",
"Jose Miguel",
"Felix",
"Jose Ramon",
"Gonzalo",
"Marc",
"Mohamed",
"Joan",
"Hugo",
"Ismael",
"Cristian",
"Nicol\u00e1s",
"Mariano",
"Josep",
"Domingo",
"Samuel",
"Juan Francisco",
"Alfredo",
"Sebastian",
"Aitor",
"Jose Carlos",
"Martin",
"Felipe",
"Cesar",
"Hector",
"Jose Angel",
"Jose Ignacio",
"Victor Manuel",
"Gregorio",
"Luis Miguel",
"Iker",
"Jose Francisco",
"Juan Luis",
"Albert",
"Lorenzo",
"Alex",
"Xavier",
"Rodrigo",
"Mar\u00eda",
"Carmen",
"Ana",
"Isabel",
"Dolores",
"Pilar",
"Josefa",
"Teresa",
"Rosa",
"Cristina",
"\u00c1ngeles",
"Antonia",
"Laura",
"Francisca",
"Elena",
"Mercedes",
"Luisa",
"Marta",
"Concepci\u00f3n",
"Rosario",
"Luc\u00eda",
"Juana",
"Manuela",
"Sara",
"Paula",
"Raquel",
"Beatriz",
"Eva",
"Patricia",
"Victoria",
"Rocio",
"Encarnacion",
"Julia",
"Belen",
"Silvia",
"Esther",
"Andrea",
"Montserrat",
"Nuria",
"Angela",
"Irene",
"Inmaculada",
"M\u00f3nica",
"Sandra",
"Margarita",
"Yolanda",
"Alba",
"Sonia",
"Alicia",
"Mar",
"Susana",
"Marina",
"Amparo",
"Natalia",
"Nieves",
"Gloria",
"Claudia",
"Soledad",
"Ines",
"Lourdes",
"Ver\u00f3nica",
"Carolina",
"Luz",
"Consuelo",
"Noelia",
"Asunci\u00f3n",
"Lorena",
"Sofia",
"Milagros",
"Catalina",
"Esperanza",
"Olga",
"Alejandra",
"Carla",
"Emilia",
"F\u00e1tima",
"Aurora",
"Blanca",
"Magdalena",
"Miriam",
"Lidia",
"Nerea",
"Clara",
"Daniela",
"Anna",
"Celia",
"Elisa",
"Eugenia",
"Josefina",
"Virginia",
"Purificaci\u00f3n",
"Vanesa",
"Remedios",
"Trinidad",
"Gema",
"Adriana",
"Vicenta",
"Mireia",
"Bego\u00f1a"
),
last_names = c(
"Abad",
"Abascal",
"Abella",
"Abell\u00e1n",
"Abril",
"Acedo",
"Acero",
"Acevedo",
"Acosta",
"Acu\u00f1a",
"Adadia",
"Ad\u00e1n",
"Aguado",
"Agudo",
"Aguilar",
"Aguilera",
"Aguil\u00f3",
"Aguirre",
"Agullo",
"Agust\u00ed",
"Agust\u00edn",
"Alarc\u00f3n",
"Alba",
"Alberdi",
"Albero",
"Alberola",
"Alberto",
"Alcalde",
"Alcal\u00e1",
"Alcaraz",
"Alcolea",
"Alc\u00e1ntara",
"Alc\u00e1zar",
"Alegre",
"Alegria",
"Alemany",
"Alem\u00e1n",
"Alfaro",
"Alfonso",
"Aliaga",
"Aller",
"Almagro",
"Almansa",
"Almaz\u00e1n",
"Almeida",
"Alonso",
"Alsina",
"Alvarado",
"Alvarez",
"Amador",
"Amat",
"Amaya",
"Amig\u00f3",
"Amo",
"Amor",
"Amores",
"Amor\u00f3s",
"Anaya",
"Andrade",
"Andres",
"Andreu",
"Andr\u00e9s",
"Anglada",
"Anguita",
"Angulo",
"Ant\u00f3n",
"Ant\u00fanez",
"Aparicio",
"Aragon\u00e9s",
"Arag\u00f3n",
"Aramburu",
"Arana",
"Aranda",
"Araujo",
"Arce",
"Arco",
"Arcos",
"Arellano",
"Arenas",
"Arias",
"Ariza",
"Ari\u00f1o",
"Arjona",
"Armas",
"Armengol",
"Arnaiz",
"Arnal",
"Arnau",
"Aroca",
"Arranz",
"Arregui",
"Arribas",
"Arrieta",
"Arroyo",
"Arteaga",
"Artigas",
"Ar\u00e9valo",
"Asenjo",
"Asensio",
"Atienza",
"Avil\u00e9s",
"Ayala",
"Ayll\u00f3n",
"Ayuso",
"Azcona",
"Aznar",
"Azorin",
"Bad\u00eda",
"Baena",
"Baeza",
"Balaguer",
"Ballester",
"Ballesteros",
"Baquero",
"Barba",
"Barbero",
"Barber\u00e1",
"Barcel\u00f3",
"Barco",
"Barrag\u00e1n",
"Barral",
"Barranco",
"Barreda",
"Barrena",
"Barrera",
"Barriga",
"Barrio",
"Barrios",
"Barros",
"Barroso",
"Bartolom\u00e9",
"Bar\u00f3",
"Bar\u00f3n",
"Bas",
"Bastida",
"Batalla",
"Batlle",
"Bautista",
"Bauz\u00e0",
"Bayo",
"Bayona",
"Bay\u00f3n",
"Ba\u00f1os",
"Becerra",
"Bejarano",
"Belda",
"Bellido",
"Bello",
"Belmonte",
"Beltran",
"Beltr\u00e1n",
"Benavent",
"Benavente",
"Benavides",
"Benet",
"Benitez",
"Benito",
"Ben\u00edtez",
"Berenguer",
"Bermejo",
"Bermudez",
"Berm\u00fadez",
"Bernad",
"Bernal",
"Bernat",
"Berrocal",
"Bertr\u00e1n",
"Bilbao",
"Blanca",
"Blanch",
"Blanco",
"Blanes",
"Blasco",
"Blazquez",
"Bl\u00e1zquez",
"Boada",
"Boix",
"Bola\u00f1os",
"Bonet",
"Bonilla",
"Borja",
"Borrego",
"Borrell",
"Borr\u00e1s",
"Bosch",
"Botella",
"Bou",
"Bravo",
"Briones",
"Bru",
"Buend\u00eda",
"Bueno",
"Burgos",
"Busquets",
"Bustamante",
"Bustos",
"B\u00e1ez",
"B\u00e1rcena",
"Caballero",
"Cabanillas",
"Caba\u00f1as",
"Cabello",
"Cabeza",
"Cabezas",
"Cabo",
"Cabrera",
"Cabrero",
"Cadenas",
"Cal",
"Calatayud",
"Calderon",
"Calder\u00f3n",
"Calleja",
"Calvet",
"Calvo",
"Calzada",
"Camacho",
"Camino",
"Campillo",
"Campo",
"Campos",
"Campoy",
"Camps",
"Canales",
"Canals",
"Canet",
"Cano",
"Cantero",
"Cant\u00f3n",
"Caparr\u00f3s",
"Capdevila",
"Carbajo",
"Carballo",
"Carbonell",
"Carb\u00f3",
"Cardona",
"Carlos",
"Carmona",
"Carnero",
"Caro",
"Carpio",
"Carranza",
"Carrasco",
"Carrera",
"Carreras",
"Carretero",
"Carre\u00f1o",
"Carrillo",
"Carri\u00f3n",
"Carro",
"Carvajal",
"Casado",
"Casal",
"Casals",
"Casanova",
"Casanovas",
"Casares",
"Casas",
"Cases",
"Casta\u00f1eda",
"Castej\u00f3n",
"Castell",
"Castellanos",
"Castells",
"Castell\u00f3",
"Castilla",
"Castillo",
"Castrillo",
"Castro",
"Catal\u00e1",
"Catal\u00e1n",
"Cazorla",
"Ca\u00f1as",
"Ca\u00f1ellas",
"Ca\u00f1ete",
"Ca\u00f1izares",
"Cepeda",
"Cerd\u00e1",
"Cerd\u00e1n",
"Cerezo",
"Cerro",
"Cervantes",
"Cervera",
"Chac\u00f3n",
"Chamorro",
"Chaparro",
"Chaves",
"Checa",
"Chico",
"Cid",
"Cifuentes",
"Cisneros",
"Clavero",
"Clemente",
"Cobo",
"Cobos",
"Coca",
"Codina",
"Coello",
"Coll",
"Collado",
"Colom",
"Coloma",
"Colomer",
"Comas",
"Company",
"Conde",
"Conesa",
"Contreras",
"Corbacho",
"Cordero",
"Cornejo",
"Corominas",
"Coronado",
"Corral",
"Correa",
"Cortes",
"Cortina",
"Cort\u00e9s",
"Costa",
"Crespi",
"Crespo",
"Criado",
"Cruz",
"Cuadrado",
"Cuenca",
"Cuervo",
"Cuesta",
"Cueto",
"Cuevas",
"Cu\u00e9llar",
"C\u00e1ceres",
"C\u00e1mara",
"C\u00e1novas",
"C\u00e1rdenas",
"C\u00e9spedes",
"C\u00f3rdoba",
"C\u00f3zar",
"Dalmau",
"Daza",
"Delgado",
"Diaz",
"Diego",
"Diez",
"Di\u00e9guez",
"Domingo",
"Dominguez",
"Dom\u00e9nech",
"Dom\u00ednguez",
"Donaire",
"Donoso",
"Duarte",
"Due\u00f1as",
"Duque",
"Duran",
"Dur\u00e1n",
"D\u00e1vila",
"D\u00edaz",
"D\u00edez",
"Echevarr\u00eda",
"Echeverr\u00eda",
"Egea",
"Elorza",
"El\u00edas",
"Enr\u00edquez",
"Escalona",
"Escamilla",
"Escobar",
"Escolano",
"Escribano",
"Escriv\u00e1",
"Escudero",
"Espada",
"Esparza",
"Espa\u00f1a",
"Espa\u00f1ol",
"Espejo",
"Espinosa",
"Esteban",
"Esteve",
"Estevez",
"Estrada",
"Est\u00e9vez",
"Exposito",
"Exp\u00f3sito",
"Fabra",
"Fabregat",
"Fajardo",
"Falc\u00f3",
"Falc\u00f3n",
"Farr\u00e9",
"Feijoo",
"Feliu",
"Fernandez",
"Fern\u00e1ndez",
"Ferrando",
"Ferrer",
"Ferrera",
"Ferreras",
"Ferrero",
"Ferr\u00e1n",
"Ferr\u00e1ndez",
"Ferr\u00e1ndiz",
"Figueras",
"Figueroa",
"Figuerola",
"Fiol",
"Flor",
"Flores",
"Folch",
"Fonseca",
"Font",
"Fortuny",
"Franch",
"Francisco",
"Franco",
"Frutos",
"Fr\u00edas",
"Fuente",
"Fuentes",
"Fuertes",
"Fuster",
"F\u00e1bregas",
"Gabald\u00f3n",
"Galan",
"Galiano",
"Galindo",
"Gallardo",
"Gallart",
"Gallego",
"Gallo",
"Galvez",
"Galv\u00e1n",
"Gal\u00e1n",
"Garay",
"Garcia",
"Garc\u00e9s",
"Garc\u00eda",
"Gargallo",
"Garmendia",
"Garrido",
"Garriga",
"Garz\u00f3n",
"Gasc\u00f3n",
"Gaya",
"Gelabert",
"Gibert",
"Gil",
"Gilabert",
"Gimenez",
"Gimeno",
"Gim\u00e9nez",
"Giner",
"Giralt",
"Girona",
"Gir\u00f3n",
"Gisbert",
"Godoy",
"Goicoechea",
"Gomez",
"Gomila",
"Gomis",
"Gonzalez",
"Gonzalo",
"Gonz\u00e1lez",
"Gordillo",
"Go\u00f1i",
"Gracia",
"Granados",
"Grande",
"Gras",
"Grau",
"Gual",
"Guardia",
"Guardiola",
"Guerra",
"Guerrero",
"Guijarro",
"Guillen",
"Guill\u00e9n",
"Guitart",
"Gutierrez",
"Guti\u00e9rrez",
"Guzman",
"Guzm\u00e1n",
"G\u00e1lvez",
"G\u00e1mez",
"G\u00e1rate",
"G\u00f3mez",
"Haro",
"Heras",
"Heredia",
"Hernandez",
"Hernando",
"Hern\u00e1ndez",
"Herranz",
"Herrera",
"Herrero",
"Hervia",
"Herv\u00e1s",
"Hidalgo",
"Hierro",
"Higueras",
"Hoyos",
"Hoz",
"Huerta",
"Huertas",
"Huguet",
"Hurtado",
"Ibarra",
"Iba\u00f1ez",
"Iborra",
"Ib\u00e1\u00f1ez",
"Iglesia",
"Iglesias",
"Infante",
"Iniesta",
"Iriarte",
"Isern",
"Izaguirre",
"Izquierdo",
"I\u00f1iguez",
"Jara",
"Jaume",
"Ja\u00e9n",
"Jerez",
"Jimenez",
"Jim\u00e9nez",
"Jord\u00e1",
"Jord\u00e1n",
"Jove",
"Jover",
"Juan",
"Juli\u00e1",
"Juli\u00e1n",
"Jurado",
"Ju\u00e1rez",
"J\u00e1uregui",
"J\u00f3dar",
"Lago",
"Laguna",
"Lamas",
"Landa",
"Lara",
"Larra\u00f1aga",
"Larrea",
"Lasa",
"Lastra",
"Leal",
"Ledesma",
"Leiva",
"Leon",
"Lerma",
"Le\u00f3n",
"Lillo",
"Linares",
"Llabr\u00e9s",
"Llad\u00f3",
"Llamas",
"Llano",
"Llanos",
"Lled\u00f3",
"Llobet",
"Llopis",
"Llorens",
"Llorente",
"Lloret",
"Lluch",
"Lobato",
"Lobo",
"Lopez",
"Lorenzo",
"Losa",
"Losada",
"Lozano",
"Lucas",
"Lucena",
"Luj\u00e1n",
"Lumbreras",
"Luna",
"Luque",
"Luz",
"Lu\u00eds",
"L\u00f3pez",
"Machado",
"Macias",
"Mac\u00edas",
"Madrid",
"Madrigal",
"Maestre",
"Maldonado",
"Malo",
"Mancebo",
"Manj\u00f3n",
"Manrique",
"Manso",
"Manuel",
"Manzanares",
"Manzano",
"Marco",
"Marcos",
"Marin",
"Mariscal",
"Mari\u00f1o",
"Marquez",
"Marqu\u00e9s",
"Marti",
"Martin",
"Martinez",
"Martorell",
"Mart\u00ed",
"Mart\u00edn",
"Mart\u00ednez",
"Mar\u00ed",
"Mar\u00edn",
"Mas",
"Mascar\u00f3",
"Mata",
"Matas",
"Mate",
"Mateo",
"Mateos",
"Mateu",
"Mayo",
"Mayol",
"Mayoral",
"Maza",
"Medina",
"Melero",
"Mel\u00e9ndez",
"Mena",
"Mendez",
"Mendiz\u00e1bal",
"Mendoza",
"Menendez",
"Men\u00e9ndez",
"Mercader",
"Merino",
"Mesa",
"Miguel",
"Milla",
"Mill\u00e1n",
"Mir",
"Miralles",
"Miranda",
"Mir\u00f3",
"Moles",
"Molina",
"Moliner",
"Molins",
"Moll",
"Monreal",
"Montalb\u00e1n",
"Monta\u00f1a",
"Montenegro",
"Montero",
"Montes",
"Montesinos",
"Montoya",
"Montserrat",
"Mora",
"Moraleda",
"Morales",
"Morante",
"Morata",
"Morcillo",
"Morell",
"Moreno",
"Morera",
"Morillo",
"Mor\u00e1n",
"Mosquera",
"Moya",
"Mulet",
"Mur",
"Murcia",
"Murillo",
"Muro",
"Mu\u00f1oz",
"M\u00e1rmol",
"M\u00e1rquez",
"M\u00e9ndez",
"M\u00ednguez",
"M\u00fagica",
"M\u00fa\u00f1iz",
"Nadal",
"Naranjo",
"Narv\u00e1ez",
"Navarrete",
"Navarro",
"Navas",
"Nebot",
"Neira",
"Nevado",
"Nicolau",
"Nicol\u00e1s",
"Nieto",
"Ni\u00f1o",
"Nogueira",
"Noguera",
"Nogu\u00e9s",
"Noriega",
"Novoa",
"Nu\u00f1ez",
"N\u00fa\u00f1ez",
"Oca\u00f1a",
"Ochoa",
"Ojeda",
"Oliva",
"Olivares",
"Oliver",
"Olivera",
"Oliveras",
"Oliv\u00e9",
"Oller",
"Olmedo",
"Olmo",
"Ord\u00f3\u00f1ez",
"Orozco",
"Ortega",
"Ortiz",
"Ortu\u00f1o",
"Osorio",
"Osuna",
"Otero",
"Pablo",
"Pacheco",
"Padilla",
"Pag\u00e8s",
"Palacio",
"Palacios",
"Palau",
"Pallar\u00e8s",
"Palma",
"Palmer",
"Palomar",
"Palomares",
"Palomino",
"Palomo",
"Paniagua",
"Pardo",
"Paredes",
"Pareja",
"Parejo",
"Parra",
"Pascual",
"Pastor",
"Pati\u00f1o",
"Pav\u00f3n",
"Paz",
"Pazos",
"Pedraza",
"Pedrero",
"Pedro",
"Pedrosa",
"Peinado",
"Peir\u00f3",
"Pelayo",
"Pellicer",
"Pel\u00e1ez",
"Pera",
"Peral",
"Perales",
"Peralta",
"Perea",
"Pereira",
"Perell\u00f3",
"Perera",
"Perez",
"Pe\u00f1a",
"Pe\u00f1alver",
"Pe\u00f1as",
"Pi",
"Pina",
"Pineda",
"Pinedo",
"Pinilla",
"Pino",
"Pinto",
"Pintor",
"Piquer",
"Pizarro",
"Pi\u00f1a",
"Pi\u00f1eiro",
"Pi\u00f1ol",
"Pla",
"Plana",
"Planas",
"Plaza",
"Pol",
"Polo",
"Pomares",
"Pombo",
"Ponce",
"Pons",
"Pont",
"Porcel",
"Porras",
"Porta",
"Portero",
"Portillo",
"Posada",
"Pou",
"Poza",
"Pozo",
"Pozuelo",
"Prada",
"Prado",
"Prat",
"Prats",
"Priego",
"Prieto",
"Puente",
"Puerta",
"Puga",
"Puig",
"Pujadas",
"Pujol",
"Pulido",
"P\u00e1ez",
"P\u00e9rez",
"Quero",
"Querol",
"Quesada",
"Quevedo",
"Quintana",
"Quintanilla",
"Quintero",
"Quiroga",
"Quir\u00f3s",
"Ramirez",
"Ramis",
"Ramos",
"Ram\u00edrez",
"Ram\u00f3n",
"Raya",
"Real",
"Rebollo",
"Recio",
"Redondo",
"Reguera",
"Reig",
"Reina",
"Requena",
"Revilla",
"Rey",
"Reyes",
"Riba",
"Ribas",
"Ribera",
"Ribes",
"Ricart",
"Rico",
"Riera",
"Rinc\u00f3n",
"Rios",
"Ripoll",
"Riquelme",
"Rius",
"Rivas",
"Rivera",
"Rivero",
"Robledo",
"Robles",
"Roca",
"Rocamora",
"Rocha",
"Roda",
"Rodrigo",
"Rodriguez",
"Rodr\u00edguez",
"Roig",
"Rojas",
"Roldan",
"Rold\u00e1n",
"Roma",
"Roman",
"Romero",
"Romeu",
"Rom\u00e1n",
"Ropero",
"Ros",
"Rosa",
"Rosado",
"Rosales",
"Rosell",
"Rosell\u00f3",
"Rossell\u00f3",
"Roura",
"Rovira",
"Royo",
"Rozas",
"Ruano",
"Rubio",
"Rueda",
"Ruiz",
"R\u00edo",
"R\u00edos",
"R\u00f3denas",
"Saavedra",
"Sabater",
"Sacrist\u00e1n",
"Saez",
"Sainz",
"Sala",
"Salamanca",
"Salas",
"Salazar",
"Salcedo",
"Salda\u00f1a",
"Sales",
"Salgado",
"Salinas",
"Salmer\u00f3n",
"Salom",
"Salvador",
"Salv\u00e0",
"Samper",
"Sanabria",
"Sanchez",
"Sancho",
"Sandoval",
"Sanjuan",
"Sanmart\u00edn",
"Sanmiguel",
"Sans",
"Santamaria",
"Santamar\u00eda",
"Santana",
"Santiago",
"Santos",
"Sanz",
"Sarabia",
"Sarmiento",
"Sastre",
"Saura",
"Sebasti\u00e1n",
"Seco",
"Sedano",
"Segarra",
"Segovia",
"Segura",
"Segu\u00ed",
"Serna",
"Serra",
"Serrano",
"Sevilla",
"Sevillano",
"Sierra",
"Silva",
"Sim\u00f3",
"Sobrino",
"Sola",
"Solana",
"Solano",
"Soler",
"Solera",
"Solsona",
"Sol\u00e9",
"Sol\u00eds",
"Somoza",
"Soria",
"Soriano",
"Sosa",
"Sotelo",
"Soto",
"Suarez",
"Sureda",
"Su\u00e1rez",
"S\u00e1enz",
"S\u00e1ez",
"S\u00e1nchez",
"Taboada",
"Talavera",
"Tamarit",
"Tamayo",
"Tapia",
"Tejada",
"Tejedor",
"Tejera",
"Tejero",
"Tello",
"Tena",
"Tenorio",
"Terr\u00f3n",
"Teruel",
"Tirado",
"Toledo",
"Tolosa",
"Tomas",
"Tom\u00e1s",
"Tom\u00e9",
"Tormo",
"Toro",
"Torralba",
"Torre",
"Torrecilla",
"Torrens",
"Torrent",
"Torrents",
"Torres",
"Torrijos",
"Tovar",
"Trillo",
"Trujillo",
"Tudela",
"Tur",
"T\u00e9llez",
"Ugarte",
"Ure\u00f1a",
"Uriarte",
"Uribe",
"Urrutia",
"Ur\u00eda",
"Valbuena",
"Valc\u00e1rcel",
"Valderrama",
"Vald\u00e9s",
"Valencia",
"Valenciano",
"Valent\u00edn",
"Valenzuela",
"Valera",
"Valero",
"Vall",
"Valle",
"Vallejo",
"Valls",
"Vall\u00e9s",
"Valverde",
"Vaquero",
"Vara",
"Varela",
"Vargas",
"Vazquez",
"Vega",
"Velasco",
"Vel\u00e1zquez",
"Vendrell",
"Vera",
"Verdejo",
"Verdugo",
"Verd\u00fa",
"Vergara",
"Viana",
"Vicens",
"Vicente",
"Vidal",
"Vigil",
"Vila",
"Vilalta",
"Vilanova",
"Vilaplana",
"Vilar",
"Villa",
"Villalba",
"Villalobos",
"Villalonga",
"Villanueva",
"Villar",
"Villaverde",
"Villegas",
"Villena",
"Vives",
"Vizca\u00edno",
"Vi\u00f1a",
"Vi\u00f1as",
"V\u00e1zquez",
"V\u00e9lez",
"Yuste",
"Y\u00e1\u00f1ez",
"Zabala",
"Zabaleta",
"Zamora",
"Zamorano",
"Zapata",
"Zaragoza",
"Zorrilla",
"Zurita",
"\u00c1guila",
"\u00c1lamo",
"\u00c1lvarez",
"\u00c1lvaro",
"\u00c1ngel",
"\u00c1vila"
),
prefixes = c('de', 'del')
)
)
# address -----------------------------
address_es_ES = R6Class(
"address_es_ES",
inherit = address_es,
cloneable = FALSE,
private = list(
first_names = (person_es_ES$new())$.__enclos_env__$private$first_names,
last_names = (person_es_ES$new())$.__enclos_env__$private$last_names,
first_name = (person_es_ES$new())$first_name,
last_name = (person_es_ES$new())$last_name,
building_number_formats = c('%', '%#', '%#', '%#', '%##'),
street_prefixes = c(
"Plaza",
"Calle",
"Avenida",
"Via",
"Vial",
"Rambla",
"Glorieta",
"Urbanizaci\u00f3n",
"Callej\u00f3n",
"Ca\u00f1ada",
"Alameda",
"Acceso",
"C.",
"Ronda",
"Pasaje",
"Cuesta",
"Pasadizo",
"Paseo",
"Camino"
),
postcode_formats = c('#####'),
states = c(
"\u00c1lava",
"Albacete",
"Alicante",
"Almer\u00eda",
"Asturias",
"\u00c1vila",
"Badajoz",
"Baleares",
"Barcelona",
"Burgos",
"C\u00e1ceres",
"C\u00e1diz",
"Cantabria",
"Castell\u00f3n",
"Ceuta",
"Ciudad",
"C\u00f3rdoba",
"Cuenca",
"Girona",
"Granada",
"Guadalajara",
"Guip\u00fazcoa",
"Huelva",
"Huesca",
"Ja\u00e9n",
"La Coru\u00f1a",
"La Rioja",
"Las Palmas",
"Le\u00f3n",
"Lleida",
"Lugo",
"Madrid",
"M\u00e1laga",
"Melilla",
"Murcia",
"Navarra",
"Ourense",
"Palencia",
"Pontevedra",
"Salamanca",
"Santa Cruz de Tenerife",
"Segovia",
"Sevilla",
"Soria",
"Tarragona",
"Teruel",
"Toledo",
"Valencia",
"Valladolid",
"Vizcaya",
"Zamora",
"Zaragoza"
),
city_formats = '{state_name}',
street_name_formats = c(
'{street_prefix} {first_name} {last_name}',
'{street_prefix} de {first_name} {last_name}'),
street_address_formats = c(
'{street_name} {building_number}',
'{street_name} {building_number} {secondary_address}'),
address_formats = "{street_address}\n{city}, {postcode}",
secondary_address_formats = c('Apt. ##', 'Piso #', 'Puerta #')
),
public = list(
state_name = function(){
return(private$random_element(private$states))
},
street_prefix = function(){
return(private$random_element(private$street_prefixes))
},
secondary_address = function(){
return(private$numerify(private$random_element(
private$secondary_address_formats)))
},
state = function(){
return(private$random_element(private$states))
}
)
)
# phone_number ------------------------
phone_number_es_ES = R6Class(
"phone_number_es_ES",
inherit = phone_number_init,
cloneable = FALSE,
private = list(
formats = c(
'+34 ### ### ###',
'+34 #########',
'+34 ### ## ## ##',
'+34### ### ###',
'+34#########',
'+34### ## ## ##'
)
)
)
# ssn -----------------------------
ssn_es_ES = R6Class(
"ssn_es_ES",
inherit = ssn_init,
cloneable = FALSE,
private = list(
# A Faker provider for the Spanish VAT IDs and DOIs
vat_id_formats = c(
'ES?########',
'ES########?',
'ES?#######?'
),
calculate_control_doi = function(doi) {
# Calculate the letter that corresponds to the end of a DOI
# :param doi: calculated value so far needing a control character
# :return: DOI control character
lookup = c(
'T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F',
'P', 'D', 'X', 'B', 'N', 'J', 'Z', 'S',
'Q', 'V', 'H', 'L', 'C', 'K', 'E'
)
return(lookup[(as.integer(doi) %% 23) + 1])
},
calculate_control_cif = function(cif) {
# Calculate the letter that corresponds to the end of a CIF
# :param cif: calculated value so far needing a control character
# :return: CIF control character
# Code was converted from the minified js of: https://generadordni.es/
temp1 = 0
cif = str_split(cif, "")[[1]]
first_chr = cif[1]
cif_value = cif[2 : length(cif)]
for (i in seq(cif_value)) {
char = cif_value[i]
if (i %% 2){
temp2 = str_split(as.integer(char)*2, "")[[1]]
temp1 = sum(temp1, as.integer(temp2))
} else {
temp1 = temp1 + as.integer(char)
}
}
if (temp1 > 10) {
temp1 = as.integer(str_sub(temp1, -1, -1))
}
temp1 = 10 - (temp1 %% 10)
letters1 = c('F', 'J', 'K', 'N', 'P', 'Q',
'R', 'S', 'U', 'V', 'W')
letters2 = c('A', 'B', 'C', 'D', 'E',
'G', 'H', 'L', 'M')
if (first_chr %in% letters1){
return(str_count(64 + temp1))
} else {
if (first_chr %in% letters2) {
temp1 = ifelse(temp1 == 10, 0, temp1)
return(temp1)
} else {
return(private$calculate_control_doi(cif))
}
}
}
),
public = list(
vat_id = function(){
# http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
# :return: a random Spanish VAT ID
return(private$bothify(private$random_element(private$vat_id_formats)))
},
nie = function() {
# https://es.wikipedia.org/wiki/N%C3%BAmero_de_identidad_de_extranjero
# :return: a random Spanish NIE
first_chr = sample(seq(0, 2), 1)
doi_body = sprintf("%07d", round(runif(1, min = 0, max = 9999999)))
control = private$calculate_control_doi(
str_c(first_chr, doi_body)
)
temp = str_c(c("X", "Y", "Z")[first_chr + 1],
doi_body, control, collapse = "")
return(temp)
},
nif = function(){
# https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal
# :return: NIF
# generate a number of a maximum of 8 characters long
nie_body = round(runif(1, min = 0, max = 99999999))
temp = sprintf("%08d", nie_body)
temp = str_c(temp, private$calculate_control_doi(as.character(nie_body)))
return(temp)
},
cif = function(){
# https://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal
# :return: a random Spanish CIF
letters = c(
'A', 'B', 'C', 'D', 'E', 'F',
'G', 'H', 'J', 'N', 'P', 'Q',
'R', 'S', 'U', 'V', 'W'
)
first_chr = sample(letters, 1)
doi_body = sprintf("%07d", round(runif(1, min = 0, max = 9999999)))
cif = str_c(first_chr, doi_body)
return(str_c(cif, private$calculate_control_cif(cif)))
},
doi = function() {
# https://es.wikipedia.org/wiki/Identificador_de_objeto_digital
# :return: a random Spanish CIF or NIE or NIF
choices = sample(c("self$cif", "self$nie", "self$nif"), 1)
temp = eval(parse(text = choices))
return(temp())
}
)
)
# company ---------------------------------
company_es_ES = R6Class(
"company_es_ES",
inherit = company_en_US,
cloneable = FALSE,
private = list(
first_names = (person_es_ES$new())$.__enclos_env__$private$first_names,
last_names = (person_es_ES$new())$.__enclos_env__$private$last_names,
first_name = (person_es_ES$new())$first_name,
last_name = (person_es_ES$new())$last_name
)
)
## credit_card -----------------
credit_card_es_ES = R6Class(
"credit_card_es_ES",
inherit = credit_card_init,
cloneable = FALSE,
private = list(
first_names = (person_es_ES$new())$.__enclos_env__$private$first_names,
first_name = (person_es_ES$new())$first_name,
last_names = (person_es_ES$new())$.__enclos_env__$private$last_names,
last_name = (person_es_ES$new())$last_name
)
)
## profile ------------------
profile_es_ES = R6Class(
"profile_es_ES",
inherit = profile_init,
cloneable = FALSE,
public = list(
simple_profile = function(sex) {
# Generates a basic profile with personal informations
SEX = c("F", "M")
if (missing(sex)) {
sex = sample(SEX, 1)
}
if (!(sex %in% SEX)) {
sex = sample(SEX, 1)
}
name = ifelse(sex == "F",
(person_es_ES$new())$name_female(),
(person_es_ES$new())$name_male())
temp = list(
"username" = (internet_en_US$new())$user_name(),
"name" = name,
"sex" = sex,
"address" = (address_es_ES$new())$address(),
"mail" = (internet_en_US$new())$free_email(),
"birthdate" = (date_time_init$new())$date_of_birth()
)
return(temp)
},
profile = function(fields, sex) {
# Generates a complete profile.
# If "fields" is not empty, only the fields in the list will be returned
if (missing(fields)) fields = c()
field = list(
"job" = (job_init$new())$job(),
"company" = (company_es_ES$new())$company(),
"ssn" = (ssn_es_ES$new())$ssn(),
"residence" = (address_es_ES$new())$address(),
"current_location" = c((geo_init$new())$latitude(),
(geo_init$new())$longitude()),
"blood_group" = sample(c(
"A+", "A-", "B+", "B-", "AB+", "AB-", "O+", "O-"), 1),
"website" = replicate(sample(seq(4), 1), (internet_en_US$new())$url())
)
field = append(field, self$simple_profile(sex))
# field selection
if (length(fields)) {
nms = intersect(names(field), fields)
field = field[nms]
}
return(field)
}
)
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.