R/pt_PT.R

# person -----------------------------------
person_pt_PT = R6Class(
  "person_pt_PT",
  inherit = person_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '{first_name} {last_name}',
      '{first_name} {last_name}',
      '{first_name} {last_name}',
      '{first_name} {last_name}',
      '{first_name} {last_name}',
      '{first_name} {last_name}',
      '{first_name} {last_name}',
      '{first_name} {prefix} {last_name}',
      '{first_name} {last_name}-{last_name}',
      '{first_name}-{first_name} {last_name}'),


    first_names = c(
      "Adriana",
      "Afonso",
      "Alex",
      "Alexandra",
      "Alexandre",
      "Alice",
      "Al\u00edcia",
      "Am\u00e9lia",
      "Ana",
      "Andreia",
      "Andr\u00e9",
      "Anita",
      "Ant\u00f3nio",
      "Ariana",
      "Artur",
      "Beatriz",
      "Benedita",
      "Benjamim",
      "Bernardo",
      "Bianca",
      "Brian",
      "Bruna",
      "Bruno",
      "Bryan",
      "B\u00e1rbara",
      "Caetana",
      "Camila",
      "Carlos",
      "Carlota",
      "Carminho",
      "Carolina",
      "Catarina",
      "Clara",
      "Cl\u00e1udio",
      "Constan\u00e7a",
      "Cristiano",
      "C\u00e9sar",
      "Daniel",
      "Daniela",
      "David",
      "Denis",
      "Diana",
      "Diego",
      "Dinis",
      "Diogo",
      "Duarte",
      "D\u00e9bora",
      "Edgar",
      "Eduarda",
      "Eduardo",
      "Ema",
      "Emanuel",
      "Emma",
      "Em\u00edlia",
      "Enzo",
      "Erica",
      "Erika",
      "Eva",
      "Fabiana",
      "Fernando",
      "Filipa",
      "Filipe",
      "Flor",
      "Francisca",
      "Francisco",
      "Frederico",
      "F\u00e1bio",
      "Gabriel",
      "Gabriela",
      "Gaspar",
      "Gil",
      "Gon\u00e7alo",
      "Guilherme",
      "Gustavo",
      "Helena",
      "Henrique",
      "Hugo",
      "Iara",
      "Igor",
      "In\u00eas",
      "Irina",
      "Isaac",
      "Isabel",
      "Isabela",
      "Ivan",
      "Ivo",
      "Jaime",
      "Joana",
      "Joaquim",
      "Joel",
      "Jorge",
      "Jos\u00e9",
      "Jo\u00e3o",
      "Juliana",
      "J\u00e9ssica",
      "J\u00falia",
      "Kelly",
      "Kevin",
      "Kyara",
      "K\u00e9vim",
      "Lara",
      "Larissa",
      "Laura",
      "Leandro",
      "Leonardo",
      "Leonor",
      "Let\u00edcia",
      "Lia",
      "Lisandro",
      "Lorena",
      "Louren\u00e7o",
      "Luana",
      "Luca",
      "Lucas",
      "Luciana",
      "Luna",
      "Lu\u00eds",
      "Lu\u00edsa",
      "L\u00facia",
      "Madalena",
      "Mafalda",
      "Manuel",
      "Mara",
      "Marco",
      "Marcos",
      "Margarida",
      "Maria",
      "Mariana",
      "Marta",
      "Martim",
      "Mateus",
      "Matias",
      "Matilde",
      "Mauro",
      "Melissa",
      "Mia",
      "Micael",
      "Miguel",
      "Miriam",
      "M\u00e1rcio",
      "M\u00e1rio",
      "M\u00e9lanie",
      "Naiara",
      "Nair",
      "Nelson",
      "Nicole",
      "Noa",
      "Noah",
      "Nuno",
      "N\u00e1dia",
      "N\u00faria",
      "Patr\u00edcia",
      "Paulo",
      "Pedro",
      "Petra",
      "Pilar",
      "Rafael",
      "Rafaela",
      "Raquel",
      "Renata",
      "Renato",
      "Ricardo",
      "Rita",
      "Rodrigo",
      "Rui",
      "R\u00faben",
      "Salom\u00e9",
      "Salvador",
      "Samuel",
      "Sandro",
      "Santiago",
      "Sara",
      "Sebasti\u00e3o",
      "Sim\u00e3o",
      "Sofia",
      "Soraia",
      "S\u00e9rgio",
      "Tatiana",
      "Teresa",
      "Tiago",
      "Tom\u00e1s",
      "Tom\u00e9",
      "Valentim",
      "Valentina",
      "Vasco",
      "Vera",
      "Vicente",
      "Vict\u00f3ria",
      "Violeta",
      "Vit\u00f3ria",
      "V\u00edtor",
      "William",
      "Wilson",
      "Xavier",
      "Yara",
      "Yasmin",
      "\u00c1lvaro",
      "\u00c2ngela",
      "\u00c2ngelo",
      "\u00c9rica",
      "\u00cdris"
    ),

    last_names = c(
      "Abreu",
      "Almeida",
      "Alves",
      "Amaral",
      "Amorim",
      "Andrade",
      "Anjos",
      "Antunes",
      "Ara\u00fajo",
      "Assun\u00e7\u00e3o",
      "Azevedo",
      "Baptista",
      "Barbosa",
      "Barros",
      "Batista",
      "Borges",
      "Branco",
      "Brito",
      "Campos",
      "Cardoso",
      "Carneiro",
      "Carvalho",
      "Castro",
      "Coelho",
      "Correia",
      "Costa",
      "Cruz",
      "Cunha",
      "Domingues",
      "Esteves",
      "Faria",
      "Fernandes",
      "Ferreira",
      "Figueiredo",
      "Fonseca",
      "Freitas",
      "Garcia",
      "Gaspar",
      "Gomes",
      "Gon\u00e7alves",
      "Guerreiro",
      "Henriques",
      "Jesus",
      "Leal",
      "Leite",
      "Lima",
      "Lopes",
      "Loureiro",
      "Louren\u00e7o",
      "Macedo",
      "Machado",
      "Magalh\u00e3es",
      "Maia",
      "Marques",
      "Martins",
      "Matias",
      "Matos",
      "Melo",
      "Mendes",
      "Miranda",
      "Monteiro",
      "Morais",
      "Moreira",
      "Mota",
      "Moura",
      "Nascimento",
      "Neto",
      "Neves",
      "Nogueira",
      "Nunes",
      "Oliveira",
      "Pacheco",
      "Paiva",
      "Pereira",
      "Pinheiro",
      "Pinho",
      "Pinto",
      "Pires",
      "Ramos",
      "Reis",
      "Ribeiro",
      "Rocha",
      "Rodrigues",
      "Santos",
      "Silva",
      "Sim\u00f5es",
      "Soares",
      "Sousa",
      "S\u00e1",
      "Tavares",
      "Teixeira",
      "Torres",
      "Valente",
      "Vaz",
      "Vicente",
      "Vieira"
    ),

    prefixes = c('de', 'da', 'do')

  ),

  public = list(
    prefix = function() {
      return(private$random_element(private$prefixes))
    }
  )
)

# company ---------------------------------------------
company_pt_PT = R6Class(
  "company_pt_PT",
  inherit = company_init,
  cloneable = FALSE,
  private = list(
    last_names = (person_pt_PT$new())$.__enclos_env__$private$last_names,
    last_name = (person_pt_PT$new())$last_name,

    formats = c(
      '{last_name} {company_suffix}',
      '{last_name} {last_name} {company_suffix}',
      '{last_name}',
      '{last_name}'),

    catch_phrase_formats = c(
      '{catch_phrase_noun} {catch_phrase_verb} {catch_phrase_attribute}'),

    nouns = c(
      'a seguran\u00e7a', 'o prazer', 'o conforto', 'a simplicidade', 'a certeza',
      'a arte', 'o poder', 'o direito', 'a possibilidade', 'a vantagem',
      'a liberdade'),

    verbs = c(
      'de conseguir', 'de avan\u00e7ar', 'de evoluir', 'de mudar', 'de inovar',
      'de ganhar', 'de atingir os seus objetivos',
      'de concretizar seus projetos', 'de realizar seus sonhos'),

    attributes = c(
      'de maneira eficaz', 'mais rapidamente', 'mais facilmente',
      'simplesmente', 'com toda a tranquilidade', 'antes de tudo',
      'naturalmente', 'sem preocupa\u00e7\u00e3o', 'em estado puro',
      'com for\u00e7a total',
      'direto da fonte', 'com confian\u00e7a'),

    company_suffixes = c('S/A', 'S.A.', 'Lda.', 'e Filhos')
  )
)

# address ---------------------------------------------
address_pt_PT = R6Class(
  "address_pt_PT",
  inherit = address_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_pt_PT$new())$.__enclos_env__$private$first_names,
    last_names = (person_pt_PT$new())$.__enclos_env__$private$last_names,
    first_name = (person_pt_PT$new())$first_name,
    last_name = (person_pt_PT$new())$last_name,

    street_prefixes = c('Av', 'Avenida', 'R.', 'Rua', 'Travessa', 'Largo'),

    city_formats = '{city_name}',
    street_name_formats = c(
      '{street_prefix} {last_name}',
      '{street_prefix} {first_name} {last_name}',
      '{street_prefix} de {last_name}'),

    street_address_formats = '{street_name}, {building_number}',


    address_formats = "{street_address}\n{postcode} {city}",

    building_number_formats = c('S/N', '%', '%#', '%#', '%#', '%##'),

    postcode_formats = '####-###',

    cities = c(
      "Abrantes",
      "Agualva-Cac\u00e9m",
      "Albufeira",
      "Alcoba\u00e7a",
      "Alc\u00e1cer do Sal",
      "Almada",
      "Almeirim",
      "Alverca do Ribatejo",
      "Amadora",
      "Amarante",
      "Amora",
      "Anadia",
      "Angra do Hero\u00edsmo",
      "Aveiro",
      "Barcelos",
      "Barreiro",
      "Beja",
      "Braga",
      "Bragan\u00e7a",
      "Caldas da Rainha",
      "Cani\u00e7o",
      "Cantanhede",
      "Cartaxo",
      "Castelo Branco",
      "Chaves",
      "Coimbra",
      "Costa da Caparica",
      "Covilh\u00e3",
      "Camara de Lobos",
      "Elvas",
      "Entroncamento",
      "Ermesinde",
      "Esmoriz",
      "Espinho",
      "Esposende",
      "Estarreja",
      "Estremoz",
      "Fafe",
      "Faro",
      "Felgueiras",
      "Figueira da Foz",
      "Fi\u00e3es",
      "Freamunde",
      "Funchal",
      "Fund\u00e3o",
      "F\u00e1tima",
      "Gafanha da Nazar\u00e9",
      "Gandra",
      "Gondomar",
      "Gouveia",
      "Guarda",
      "Guimar\u00e3es",
      "Horta",
      "Lagoa",
      "Lagos",
      "Lamego",
      "Leiria",
      "Lisboa",
      "Lixa",
      "Loul\u00e9",
      "Loures",
      "Lourosa",
      "Macedo de Cavaleiros",
      "Maia",
      "Mangualde",
      "Marco de Canaveses",
      "Marinha Grande",
      "Matosinhos",
      "Mealhada",
      "Miranda do Douro",
      "Mirandela",
      "Montemor-o-Novo",
      "Montijo",
      "Moura",
      "M\u00eada",
      "Odivelas",
      "Olh\u00e3o",
      "Oliveira de Azem\u00e9is",
      "Oliveira do Bairro",
      "Oliveira do Hospital",
      "Our\u00e9m",
      "Ovar",
      "Paredes",
      "Pa\u00e7os de Ferreira",
      "Penafiel",
      "Peniche",
      "Peso da R\u00e9gua",
      "Pinhel",
      "Pombal",
      "Ponta Delgada",
      "Ponte de Sor",
      "Portalegre",
      "Portim\u00e3o",
      "Porto",
      "Porto Santo",
      "Praia da Vit\u00f3ria",
      "P\u00f3voa de Santa Iria",
      "P\u00f3voa de Varzim",
      "Quarteira",
      "Queluz",
      "Rebordosa",
      "Reguengos de Monsaraz",
      "Ribeira Grande",
      "Rio Maior",
      "Rio Tinto",
      "Sabugal",
      "Sacav\u00e9m",
      "Santa Comba D\u00e3o",
      "Santa Cruz",
      "Santa Maria da Feira",
      "Santana",
      "Santar\u00e9m",
      "Santiago do Cac\u00e9m",
      "Santo Tirso",
      "Seia",
      "Seixal",
      "Serpa",
      "Set\u00fabal",
      "Silves",
      "Sines",
      "Sintra",
      "S\u00e3o Jo\u00e3o da Madeira",
      "S\u00e3o Mamede de Infesta",
      "S\u00e3o Salvador de Lordelo",
      "Tarouca",
      "Tavira",
      "Tomar",
      "Tondela",
      "Torres Novas",
      "Torres Vedras",
      "Trancoso",
      "Trofa",
      "Valbom",
      "Vale de Cambra",
      "Valongo",
      "Valpa\u00e7os",
      "Vendas Novas",
      "Viana do Castelo",
      "Vila Franca de Xira",
      "Vila Nova de Famalic\u00e3o",
      "Vila Nova de Foz C\u00f4a",
      "Vila Nova de Gaia",
      "Vila Nova de Santo Andr\u00e9",
      "Vila Real",
      "Vila Real de Santo Ant\u00f3nio",
      "Vila do Conde",
      "Viseu",
      "Vizela",
      "\u00c9vora",
      "\u00cdlhavo"
    ),

    countries = c(
      "Afeganist\u00e3o",
      "\u00c1frica do Sul",
      "Akrotiri",
      "Albania",
      "Alemanha",
      "Andorra",
      "Angola",
      "Anguila",
      "Ant\u00e1rctida",
      "Ant\u00edgua e Barbuda",
      "Antilhas Neerlandesas",
      "Ar\u00e1bia Saudita",
      "Arctic Ocean",
      "Arg\u00e9lia",
      "Argentina",
      "Arm\u00e9nia",
      "Aruba",
      "Ashmore and Cartier Islands",
      "Atlantic Ocean",
      "Austr\u00e1lia",
      "\u00c1ustria",
      "Azerbaij\u00e3o",
      "Baamas",
      "Bangladeche",
      "Barbados",
      "Bar\u00e9m",
      "B\u00e9lgica",
      "Belize",
      "Benim",
      "Bermudas",
      "Bielorr\u00fassia",
      "Birmania",
      "Bol\u00edvia",
      "B\u00f3snia e Herzegovina",
      "Botsuana",
      "Brasil",
      "Brunei",
      "Bulg\u00e1ria",
      "Burquina Faso",
      "Bur\u00fandi",
      "But\u00e3o",
      "Cabo Verde",
      "Camar\u00f5es",
      "Camboja",
      "Canad\u00e1",
      "Catar",
      "Cazaquist\u00e3o",
      "Chade",
      "Chile",
      "China",
      "Chipre",
      "Clipperton Island",
      "Col\u00f4mbia",
      "Comores",
      "Congo-Brazzaville",
      "Congo-Kinshasa",
      "Coral Sea Islands",
      "Coreia do Norte",
      "Coreia do Sul",
      "Costa do Marfim",
      "Costa Rica",
      "Cro\u00e1cia",
      "Cuba",
      "Dhekelia",
      "Dinamarca",
      "Dom\u00ednica",
      "Egipto",
      "Emiratos \u00c1rabes Unidos",
      "Equador",
      "Eritreia",
      "Eslov\u00e1quia",
      "Eslov\u00e9nia",
      "Espanha",
      "Estados Unidos",
      "Est\u00f3nia",
      "Eti\u00f3pia",
      "Faro\u00e9",
      "Fiji",
      "Filipinas",
      "Finlandia",
      "Fran\u00e7a",
      "Gab\u00e3o",
      "Gambia",
      "Gana",
      "Gaza Strip",
      "Ge\u00f3rgia",
      "Ge\u00f3rgia do Sul e Sandwich do Sul",
      "Gibraltar",
      "Granada",
      "Gr\u00e9cia",
      "Gronelandia",
      "Guame",
      "Guatemala",
      "Guernsey",
      "Guiana",
      "Guin\u00e9",
      "Guin\u00e9 Equatorial",
      "Guin\u00e9-Bissau",
      "Haiti",
      "Honduras",
      "Hong Kong",
      "Hungria",
      "I\u00e9men",
      "Ilha Bouvet",
      "Ilha do Natal",
      "Ilha Norfolk",
      "Ilhas Caim\u00e3o",
      "Ilhas Cook",
      "Ilhas dos Cocos",
      "Ilhas Falkland",
      "Ilhas Heard e McDonald",
      "Ilhas Marshall",
      "Ilhas Salom\u00e3o",
      "Ilhas Turcas e Caicos",
      "Ilhas Virgens Americanas",
      "Ilhas Virgens Britanicas",
      "\u00cdndia",
      "Indian Ocean",
      "Indon\u00e9sia",
      "Ir\u00e3o",
      "Iraque",
      "Irlanda",
      "Islandia",
      "Israel",
      "It\u00e1lia",
      "Jamaica",
      "Jan Mayen",
      "Jap\u00e3o",
      "Jersey",
      "Jibuti",
      "Jordania",
      "Kuwait",
      "Laos",
      "Lesoto",
      "Let\u00f3nia",
      "L\u00edbano",
      "Lib\u00e9ria",
      "L\u00edbia",
      "Listenstaine",
      "Lituania",
      "Luxemburgo",
      "Macau",
      "Maced\u00f3nia",
      "Madag\u00e1scar",
      "Mal\u00e1sia",
      "Mal\u00e1vi",
      "Maldivas",
      "Mali",
      "Malta",
      "Man, Isle of",
      "Marianas do Norte",
      "Marrocos",
      "Maur\u00edcia",
      "Mauritania",
      "Mayotte",
      "M\u00e9xico",
      "Micron\u00e9sia",
      "Mo\u00e7ambique",
      "Mold\u00e1via",
      "M\u00f3naco",
      "Mong\u00f3lia",
      "Monserrate",
      "Montenegro",
      "Mundo",
      "Nam\u00edbia",
      "Nauru",
      "Navassa Island",
      "Nepal",
      "Nicar\u00e1gua",
      "N\u00edger",
      "Nig\u00e9ria",
      "Niue",
      "Noruega",
      "Nova Caled\u00f3nia",
      "Nova Zelandia",
      "Om\u00e3",
      "Pacific Ocean",
      "Pa\u00edses Baixos",
      "Palau",
      "Panam\u00e1",
      "Papua-Nova Guin\u00e9",
      "Paquist\u00e3o",
      "Paracel Islands",
      "Paraguai",
      "Peru",
      "Pitcairn",
      "Polin\u00e9sia Francesa",
      "Pol\u00f3nia",
      "Porto Rico",
      "Portugal",
      "Qu\u00e9nia",
      "Quirguizist\u00e3o",
      "Quirib\u00e1ti",
      "Reino Unido",
      "Rep\u00fablica Centro-Africana",
      "Rep\u00fablica Checa",
      "Rep\u00fablica Dominicana",
      "Rom\u00e9nia",
      "Ruanda",
      "R\u00fassia",
      "Salvador",
      "Samoa",
      "Samoa Americana",
      "Santa Helena",
      "Santa L\u00facia",
      "S\u00e3o Crist\u00f3v\u00e3o e Neves",
      "S\u00e3o Marinho",
      "S\u00e3o Pedro e Miquelon",
      "S\u00e3o Tom\u00e9 e Pr\u00edncipe",
      "S\u00e3o Vicente e Granadinas",
      "Sara Ocidental",
      "Seicheles",
      "Senegal",
      "Serra Leoa",
      "S\u00e9rvia",
      "Singapura",
      "S\u00edria",
      "Som\u00e1lia",
      "Southern Ocean",
      "Spratly Islands",
      "Sri Lanca",
      "Suazilandia",
      "Sud\u00e3o",
      "Su\u00e9cia",
      "Su\u00ed\u00e7a",
      "Suriname",
      "Svalbard e Jan Mayen",
      "Tailandia",
      "Taiwan",
      "Tajiquist\u00e3o",
      "Tanzania",
      "Territ\u00f3rio Britanico do Oceano \u00edndico",
      "Territ\u00f3rios Austrais Franceses",
      "Timor Leste",
      "Togo",
      "Tokelau",
      "Tonga",
      "Trindade e Tobago",
      "Tun\u00edsia",
      "Turquemenist\u00e3o",
      "Turquia",
      "Tuvalu",
      "Ucrania",
      "Uganda",
      "Uni\u00e3o Europeia",
      "Uruguai",
      "Usbequist\u00e3o",
      "Vanuatu",
      "Vaticano",
      "Venezuela",
      "Vietname",
      "Wake Island",
      "Wallis e Futuna",
      "West Bank",
      "Zambia",
      "Zimbabu\u00e9"
    ),

    # From https://pt.wikipedia.org/wiki/Distritos_de_Portugal
    distritos = c(
      'Aveiro', 'Beja', 'Braga', 'Bragan\u00e7a', 'Castelo Branco', 'Coimbra',
      '\u00c9vora', 'Faro', 'Guarda', 'Leiria', 'Lisboa', 'Portalegre', 'Porto',
      'Santar\u00e9m', 'Set\u00fabal', 'Viana do Castelo', 'Vila Real', 'Viseu'),

    # From https://pt.wikipedia.org/wiki/Lista_de_freguesias_de_Portugal
    freguesias = c(
      "Abrantes",
      "\u00c1gueda",
      "Aguiar da Beira",
      "Alandroal",
      "Albergaria-a-Velha",
      "Albufeira",
      "Alc\u00e1cer do Sal",
      "Alcanena",
      "Alcoba\u00e7a",
      "Alcochete",
      "Alcoutim",
      "Alenquer",
      "Alfandega da F\u00e9",
      "Alij\u00f3",
      "Aljezur",
      "Aljustrel",
      "Almada",
      "Almeida",
      "Almeirim",
      "Almod\u00f4var",
      "Alpiar\u00e7a",
      "Alter do Ch\u00e3o",
      "Alvai\u00e1zere",
      "Alvito",
      "Amadora",
      "Amarante",
      "Amares",
      "Anadia",
      "Angra do Hero\u00edsmo",
      "Ansi\u00e3o",
      "Arcos de Valdevez",
      "Arganil",
      "Armamar",
      "Arouca",
      "Arraiolos",
      "Arronches",
      "Arruda dos Vinhos",
      "Aveiro",
      "Avis",
      "Azambuja",
      "Bai\u00e3o",
      "Barcelos",
      "Barrancos",
      "Barreiro",
      "Batalha",
      "Beja",
      "Belmonte",
      "Benavente",
      "Bombarral",
      "Borba",
      "Boticas",
      "Braga",
      "Bragan\u00e7a",
      "Cabeceiras de Basto",
      "Cadaval",
      "Caldas da Rainha",
      "Calheta (A\u00e7ores)",
      "Calheta (Madeira)",
      "Camara de Lobos",
      "Caminha",
      "Campo Maior",
      "Cantanhede",
      "Carrazeda de Ansi\u00e3es",
      "Carregal do Sal",
      "Cartaxo",
      "Cascais",
      "Castanheira de P\u00eara",
      "Castelo Branco",
      "Castelo de Paiva",
      "Castelo de Vide",
      "Castro Daire",
      "Castro Marim",
      "Castro Verde",
      "Celorico da Beira",
      "Celorico de Basto",
      "Chamusca",
      "Chaves",
      "Cinf\u00e3es",
      "Coimbra",
      "Condeixa-a-Nova",
      "Constancia",
      "Coruche",
      "Corvo",
      "Covilh\u00e3",
      "Crato",
      "Cuba",
      "Elvas",
      "Entroncamento",
      "Espinho",
      "Esposende",
      "Estarreja",
      "Estremoz",
      "\u00c9vora",
      "Fafe",
      "Faro",
      "Felgueiras",
      "Ferreira do Alentejo",
      "Ferreira do Z\u00eazere",
      "Figueira da Foz",
      "Figueira de Castelo Rodrigo",
      "Figueir\u00f3 dos Vinhos",
      "Fornos de Algodres",
      "Freixo de Espada \u00e0 Cinta",
      "Fronteira",
      "Funchal",
      "Fund\u00e3o",
      "Gavi\u00e3o",
      "G\u00f3is",
      "Goleg\u00e3",
      "Gondomar",
      "Gouveia",
      "Grandola",
      "Guarda",
      "Guimar\u00e3es",
      "Horta",
      "Idanha-a-Nova",
      "\u00cdlhavo",
      "Lagoa",
      "Lagoa (A\u00e7ores)",
      "Lagos",
      "Lajes das Flores",
      "Lajes do Pico",
      "Lamego",
      "Leiria",
      "Lisboa",
      "Loul\u00e9",
      "Loures",
      "Lourinh\u00e3",
      "Lous\u00e3",
      "Lousada",
      "Ma\u00e7\u00e3o",
      "Macedo de Cavaleiros",
      "Machico",
      "Madalena",
      "Mafra",
      "Maia",
      "Mangualde",
      "Manteigas",
      "Marco de Canaveses",
      "Marinha Grande",
      "Marv\u00e3o",
      "Matosinhos",
      "Mealhada",
      "M\u00eada",
      "Melga\u00e7o",
      "M\u00e9rtola",
      "Mes\u00e3o Frio",
      "Mira",
      "Miranda do Corvo",
      "Miranda do Douro",
      "Mirandela",
      "Mogadouro",
      "Moimenta da Beira",
      "Moita",
      "Mon\u00e7\u00e3o",
      "Monchique",
      "Mondim de Basto",
      "Monforte",
      "Montalegre",
      "Montemor-o-Novo",
      "Montemor-o-Velho",
      "Montijo",
      "Mora",
      "Mort\u00e1gua",
      "Moura",
      "Mour\u00e3o",
      "Mur\u00e7a",
      "Murtosa",
      "Nazar\u00e9",
      "Nelas",
      "Nisa",
      "Nordeste",
      "\u00d3bidos",
      "Odemira",
      "Odivelas",
      "Oeiras",
      "Oleiros",
      "Olh\u00e3o",
      "Oliveira de Azem\u00e9is",
      "Oliveira de Frades",
      "Oliveira do Bairro",
      "Oliveira do Hospital",
      "Our\u00e9m",
      "Ourique",
      "Ovar",
      "Pa\u00e7os de Ferreira",
      "Palmela",
      "Pampilhosa da Serra",
      "Paredes",
      "Paredes de Coura",
      "Pedr\u00f3g\u00e3o Grande",
      "Penacova",
      "Penafiel",
      "Penalva do Castelo",
      "Penamacor",
      "Penedono",
      "Penela",
      "Peniche",
      "Peso da R\u00e9gua",
      "Pinhel",
      "Pombal",
      "Ponta Delgada",
      "Ponta do Sol",
      "Ponte da Barca",
      "Ponte de Lima",
      "Ponte de Sor",
      "Portalegre",
      "Portel",
      "Portim\u00e3o",
      "Porto",
      "Porto de M\u00f3s",
      "Porto Moniz",
      "Porto Santo",
      "P\u00f3voa de Lanhoso",
      "P\u00f3voa de Varzim",
      "Povoa\u00e7\u00e3o",
      "Praia da Vit\u00f3ria",
      "Proen\u00e7a-a-Nova",
      "Redondo",
      "Reguengos de Monsaraz",
      "Resende",
      "Ribeira Brava",
      "Ribeira de Pena",
      "Ribeira Grande",
      "Rio Maior",
      "Sabrosa",
      "Sabugal",
      "Salvaterra de Magos",
      "Santa Comba D\u00e3o",
      "Santa Cruz",
      "Santa Cruz da Graciosa",
      "Santa Cruz das Flores",
      "Santa Maria da Feira",
      "Santa Marta de Penagui\u00e3o",
      "Santana",
      "Santar\u00e9m",
      "Santiago do Cac\u00e9m",
      "Santo Tirso",
      "S\u00e3o Br\u00e1s de Alportel",
      "S\u00e3o Jo\u00e3o da Madeira",
      "S\u00e3o Jo\u00e3o da Pesqueira",
      "S\u00e3o Pedro do Sul",
      "S\u00e3o Roque do Pico",
      "S\u00e3o Vicente (Madeira)",
      "Sardoal",
      "S\u00e1t\u00e3o",
      "Seia",
      "Seixal",
      "Sernancelhe",
      "Serpa",
      "Sert\u00e3",
      "Sesimbra",
      "Set\u00fabal",
      "Sever do Vouga",
      "Silves",
      "Sines",
      "Sintra",
      "Sobral de Monte Agra\u00e7o",
      "Soure",
      "Sousel",
      "T\u00e1bua",
      "Tabua\u00e7o",
      "Tarouca",
      "Tavira",
      "Terras de Bouro",
      "Tomar",
      "Tondela",
      "Torre de Moncorvo",
      "Torres Novas",
      "Torres Vedras",
      "Trancoso",
      "Trofa",
      "Vagos",
      "Vale de Cambra",
      "Valen\u00e7a",
      "Valongo",
      "Valpa\u00e7os",
      "Velas",
      "Vendas Novas",
      "Viana do Alentejo",
      "Viana do Castelo",
      "Vidigueira",
      "Vieira do Minho",
      "Vila de Rei",
      "Vila do Bispo",
      "Vila do Conde",
      "Vila do Porto",
      "Vila Flor",
      "Vila Franca de Xira",
      "Vila Franca do Campo",
      "Vila Nova da Barquinha",
      "Vila Nova de Cerveira",
      "Vila Nova de Famalic\u00e3o",
      "Vila Nova de Foz C\u00f4a",
      "Vila Nova de Gaia",
      "Vila Nova de Paiva",
      "Vila Nova de Poiares",
      "Vila Pouca de Aguiar",
      "Vila Real",
      "Vila Real de Santo Ant\u00f3nio",
      "Vila Velha de R\u00f3d\u00e3o",
      "Vila Verde",
      "Vila Vi\u00e7osa",
      "Vimioso",
      "Vinhais",
      "Viseu",
      "Vizela",
      "Vouzela"
    )
  ),

  public = list(
    street_prefix = function(){
      return(private$random_element(private$street_prefixes))
    },

    city_name = function(){
      return(private$random_element(private$cities))
    },

    distrito = function(){
      return(private$random_element(private$distritos))
    },

    freguesia = function(){
      return(private$random_element(private$freguesias))
    }

  )
)

# phone_number -------------------------------
phone_number_pt_PT = R6Class(
  "phone_number_pt_PT",
  inherit = phone_number_init,
  cloneable = FALSE,
  private = list(
    formats = c(
      '(351) 91# ### ###',
      '(351) 92# ### ###',
      '(351) 93# ### ###',
      '(351) 96# ### ###',
      '(351) 2## ### ###',
      '(351) 91#######',
      '(351) 92#######',
      '(351) 93#######',
      '(351) 96#######',
      '(351) 2########',
      '(351) 91# ### ###',
      '(351) 92# ### ###',
      '(351) 93# ### ###',
      '(351) 96# ### ###',
      '(351) 2## ### ###',
      '(351) 91#######',
      '(351) 92#######',
      '(351) 93#######',
      '(351) 96#######',
      '(351) 2########',
      '+35191#######',
      '+35192#######',
      '+35193#######',
      '+35196#######',
      '+3512########',
      '91# ### ###',
      '92# ### ###',
      '93# ### ###',
      '96# ### ###',
      '2## ### ###',
      '91#######',
      '92#######',
      '93#######',
      '96#######',
      '2########'
    )
  )
)
# ssn -----------------------------------------------
ssn_pt_PT = R6Class(
  "ssn_pt_PT",
  inherit = ssn_init,
  cloneable = FALSE,
  private = list(
    vat_id_formats = 'PT#########'
  ),

  public = list(
    vat_id = function(){
      # http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
      # :return: A random Portuguese VAT ID
      return(private$bothify(private$random_element(private$vat_id_formats)))
    }
  )
)

# credit_card -----------------
credit_card_pt_PT = R6Class(
  "credit_card_pt_PT",
  inherit = credit_card_init,
  cloneable = FALSE,
  private = list(
    first_names = (person_pt_PT$new())$.__enclos_env__$private$first_names,
    last_names = (person_pt_PT$new())$.__enclos_env__$private$last_names,
    first_name = (person_pt_PT$new())$first_name,
    last_name = (person_pt_PT$new())$last_name
  )
)



# profile   ------------
profile_pt_PT = R6Class(
  "profile_pt_PT",
  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_pt_PT$new())$name_female(),
                    (person_pt_PT$new())$name_male())
      temp = list(
        "username" = (internet_en_US$new())$user_name(),
        "name" = name,
        "sex" = sex,
        "address" = (address_pt_PT$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_pt_PT$new())$company(),
        "ssn" = (ssn_pt_PT$new())$ssn(),
        "residence" = (address_pt_PT$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)
    }

  )
)
LuYang19/faker documentation built on Jan. 3, 2020, 12:07 a.m.