Changes between Version 28 and Version 29 of Rules/Portuguese-Errors-PT2


Ignore:
Timestamp:
2015-12-16T03:50:06+01:00 (10 years ago)
Author:
zermes
Comment:

cleaning the page because an incident, I will submit only safe rules here

Legend:

Unmodified
Added
Removed
Modified
  • Rules/Portuguese-Errors-PT2

    v28 v29  
     1Detect orthographic errors, name abbreviations, tags not suitable in Portugal and misused tags. Messages are in Portuguese only. Feel free to fix errors (thanks!)
     2Content available under Creative Commons (CC-BY-SA) https://creativecommons.org/licenses/by-sa/3.0/ and LGPL https://www.gnu.org/licenses/lgpl.html according to https://josm.openstreetmap.de site content licenses.
     3
     4{{{
     5#!rule
     6
     7
    18Detect orthographic errors, name abbreviations, tags not suitable in Portugal and misused tags. Messages are in Portuguese only. Feel free to fix errors (thanks!)
    29Content available under Creative Commons (CC-BY-SA) https://creativecommons.org/licenses/by-sa/3.0/ and LGPL https://www.gnu.org/licenses/lgpl.html according to https://josm.openstreetmap.de site content licenses.
     
    1017title: "Português-Erros comuns PT2";
    1118version: "1.[[revision]]_[[date]]";
    12 description: "Encontra principalmente erros de ortografia, abreviaturas em nomes, algumas etiquetas não aplicáveis a Portugal e alguns erros de etiquetas mal aplicadas. Os erros começam com PT2 para serem facilmente identificados. Verificar com CUIDADO os erros apresentados por esta lista, pois nem sempre são erros.";
    13 author: "zermes";
     19description: "AVISO: APLICAR APENAS EM PORTUGAL. Encontra principalmente erros de ortografia, abreviaturas em nomes, algumas etiquetas não aplicáveis a Portugal e alguns erros de etiquetas mal aplicadas. Os erros começam com "Portugal" para serem facilmente identificados. Verificar com CUIDADO os erros apresentados por esta lista, pois nem sempre são erros.";
     20author: "OSM Portugal";
    1421link: "http://josm.openstreetmap.de/wiki/Rules/Portuguese-Errors-PT2";
    1522watch-modified: true;
     
    2128 *
    2229 * Os erros apresentados no JOSM por estas expressões regulares nem sempre são erros, apesar da tentativa de evitá-los na medida do possível.
    23  * Estas expressões regulares não são conservadoras: quando não é possível melhorar de forma prática uma expressão regular para que não apresente
    24  * alguns falsos erros, mas que detete muitos mais erros verdadeiros, opta-se por mantê-la aqui.
    25  *
    2630 * Deve-se verificar as correções no josm COM CUIDADO e caso a caso, mesmo que esteja disponível o botão "Corrigir" de forma automática,
    2731 * pois facilita muito as correções, mas não é à prova de erros. Caso se utilize esta ferramenta em locais do OpenStreetMap fora do território
    28  * português (não recomendável) deve-se ter cuidado redobrado pois muitos dos erros detetados não se aplicam a outros países.
     32 * português (NÃO RECOMENDÁVEL), deve-se ter cuidado redobrado pois muitos dos erros detetados não se aplicam a outros países, mesmo que sejam
     33 * países que têm como língua oficial o Português, pois cada país têm características específicas de estradas, nomes de organizações, etc.
    2934 *
    30  * Se encontrarem algum erro comum podem editar esta página ou entrar em contacto com o autor em https://www.openstreetmap.org/user/zermes
     35 * Se encontrarem algum erro podem editar esta página.
    3136 * Disponibilizado conforme as licenças do site https://josm.openstreetmap.de em que esta página está disponível:
    3237 * Creative Commons (CC-BY-SA) https://creativecommons.org/licenses/by-sa/3.0/ e LGPL https://www.gnu.org/licenses/lgpl.html
     
    3540 /* ERROS */
    3641*[designation] {
    37         throwError: tr("PT2-VERIFICAR: designation não se aplica em Portugal, pode ser description, name, tipo de loja,etc. Muitas vezes contém informações importantes.");
     42        throwError: tr("Portugal-VERIFICAR: designation não se aplica em Portugal, pode ser description, name, tipo de loja,etc. Muitas vezes contém informações importantes.");
    3843}
    3944*[highway=living_street] {
    40         throwError: tr("PT2- {0} não se aplica em Portugal", "{0.value}");
     45        throwError: tr("Portugal- {0} não se aplica em Portugal", "{0.value}");
    4146        suggestAlternative: "residential";
    4247        fixAdd: "highway=residential";
    4348}
    4449*[highway=bridleway] {
    45         throwError: tr("PT2- bridleway não se aplica em Portugal, usar highway=path");
     50        throwError: tr("Portugal- bridleway não se aplica em Portugal, usar highway=path");
    4651                fixAdd: "highway=path";
    4752}
    4853*[amenity=biergarten] {
    49         throwError: tr("PT2- amenity=biergarten não se aplica em Portugal, usar amenity=pub");
     54        throwError: tr("Portugal- amenity=biergarten não se aplica em Portugal, usar amenity=pub");
    5055}
    5156*[railway=monorail] {
    52         throwError: tr("PT2-Não existem monocarris em Portugal, será ferrovia?");
     57        throwError: tr("Portugal-Não existem monocarris em Portugal, será ferrovia?");
    5358}
    5459*[shop=bike] {
    55         throwError: tr("PT2-Não é shop=bike mas sim shop=bicycle");
     60        throwError: tr("Portugal-Não é shop=bike mas sim shop=bicycle");
    5661        fixAdd: "shop=bicycle";
    5762}
     
    6368 /* AVISOS */
    6469*[/name|name:pt|addr:street|addr:city/ =~ /\s([dn]as?|[dn]os?|de)\s[a-z]/] {
    65                 throwWarning: tr("PT2-name, addr:street ou addr:city com minúscula após da,no,de,e...");
     70                throwWarning: tr("Portugal-name, addr:street ou addr:city com minúscula após da,no,de,e...");
    6671}
    6772*[/name|name:pt|addr:street|addr:city/ =~ /\s([DN]as?|[DN]os?|De)\s[a-zA-Z]|\sE\s/][/^(name|name:pt)$/ !~ /^European route/] {
    68                 throwWarning: tr("PT2-name, addr:street ou addr:city com maiúscula em Da,No,De,E...");
     73                throwWarning: tr("Portugal-name, addr:street ou addr:city com maiúscula em Da,No,De,E...");
    6974}
    7075*[/^(name|name:pt|addr:street|addr:city)$/ =~ /^[a-z]/] {
    71                 throwWarning: tr("PT2-name, addr:street ou addr:city que começa em minúscula");
     76                throwWarning: tr("Portugal-name, addr:street ou addr:city que começa em minúscula");
    7277}
    7378*[/name|name:pt|addr:street|addr:city/ =~ /^([!,:;_ºª+=]|\.|\?|\*|-)/] {
    74                 throwWarning: tr("PT2-name, addr:street ou addr:city que começa com pontuação");
     79                throwWarning: tr("Portugal-name, addr:street ou addr:city que começa com pontuação");
    7580}
    7681*[name =~ /\s\s/],
     
    8792*[ref =~ /\s\s/],
    8893*[old_ref  =~ /\s\s/] {
    89                 throwWarning: tr("PT2- {0} com 2 espaços em branco consecutivos", "{0.key}");
     94                throwWarning: tr("Portugal- {0} com 2 espaços em branco consecutivos", "{0.key}");
    9095}
    9196*[website =~ /\s/][name !~ /(\s;|;\s)/] {
    92                 throwWarning: tr("PT2-website com espaço em branco");
     97                throwWarning: tr("Portugal-website com espaço em branco");
    9398}
    9499*[/name|name:pt|addr:street/ =~ /(?i)(?u)(sem\s?nome|fix\s?me|\bfix\b|nome|no\s?name|desconhecido|n(ã|a)o conhecido)/][/^(name|name:pt)$/ !~ /(?i)(?u)soldado desconhecido/] {
    95                 throwWarning: tr("PT2-Nome errado, sem nome...");
     100                throwWarning: tr("Portugal-Nome errado, sem nome...");
    96101}
    97102way[highway][/name|name:pt|addr:street/ =~ /(-Os-|\sos\s)/] {
    98                 throwWarning: tr("PT2-Corrigir nome ou endereço com o correto X-os-X");
     103                throwWarning: tr("Portugal-Corrigir nome ou endereço com o correto X-os-X");
    99104}
    100105way[highway][/name|name:pt|addr:street/ =~ /-O-/] {
    101                 throwWarning: tr("PT2-Corrigir nome ou endereço com o correto em minúscula X-o-X");
     106                throwWarning: tr("Portugal-Corrigir nome ou endereço com o correto em minúscula X-o-X");
    102107}
    103108way[highway][/name|name:pt|addr:street/ =~ /-A-/] {
    104                 throwWarning: tr("PT2-Corrigir nome ou endereço com o correto em minúscula X-a-X");
     109                throwWarning: tr("Portugal-Corrigir nome ou endereço com o correto em minúscula X-a-X");
    105110}
    106111way[highway][/name|name:pt|addr:street/ =~ /(?i)(?u)(\bairport|\bbank|building|\bdrive\s?way|embassy|\bhelip(ort|ad)\b|\bPark(ing)?|piscine|Post\s?off?ice|\bRue\b|\bshop\b|\bstair|\bstation\b|\btra(c?k|ck?)|stree?t|Zebra cros)/] {
    107                 throwWarning: tr("PT2-name ou addr:street com palavras por traduzir ou mudar a etiqueta");
     112                throwWarning: tr("Portugal-name ou addr:street com palavras por traduzir ou mudar a etiqueta");
    108113}
    109114way[highway][/^(name|name:pt)$/ =~ /\b(Alf|Alm|Ant|Arq\.?º?|Az|B\.?º|Br|Bco?|Bl|Brg|Cac|Cc(nh)?|Ca[mp]|Churr|Csl|Cmdt|Comend|Cª|Cons|Cor|Cel|Dep|Dr?\.?[ºª]|Dr|Dq|Edf?|Emb|Enf[oº]?|Eng[ºª]?|Esc(nh)?|Est|Gen|Hab|Inf|Im[aª]|Im[oº]?|Im|Jrd?|Lg?|Lj|Lt|Loteam|Lu?g|Mto|Maj|Mal|Mq|Me|Min|Mons|M|Part|Pe|Pq|Pto|Pte|P[cç]|Pr|Pct[aª]?|Presid|Pro?fª?|Proj|Prolng|Qd|R\.|Rot|Sarg|Slj|Soc|Scv|Sq|Ten|Tr|Transv|Trav|Trv|Tv|Urb|Vl|Vi|Visc|Vv|Zn)(\.| )/] {
    110                 throwWarning: tr("PT2-Nome abreviado");
     115                throwWarning: tr("Portugal-Nome abreviado");
    111116}
    112117*["addr:city" =~ /\b[A-Z](\.| )/] {
    113                 throwWarning: tr("PT2-addr:city abreviado");
     118                throwWarning: tr("Portugal-addr:city abreviado");
    114119}
    115120*["addr:street" =~ /\b(Alf|Alm|Ant|Arq\.?º?|Az|B\.?º|Br|Bco?|Bl|Brg|Cac|Cc(nh)?|Ca[mp]|Churr|Csl|Cmdt|Comend|Cª|Cons|Cor|Cel|Dep|Dr?\.?[ºª]|Dr|Dq|Edf?|Emb|Enf[oº]?|Eng[ºª]?|Esc(nh)?|Est|Gen|Hab|Inf|Im[aª]|Im[oº]?|Im|Jrd?|Lg?|Lj|Lt|Loteam|Lu?g|Mto|Maj|Mal|Mq|Me|Min|Mons|M|Pe|Pq|Part|Pe|Pto|P[cç]|Pr|Pct[aª]?|Presid|Pro?fª?|Proj|Prolng|Qd|R\.|Rot|Sarg|Slj|Soc|Scv|Sq|Ten|Tr|Transv|Trav|Trv|Tv|Urb|Vl|Vi|Visc|Vv|Zn)(\.| )/] {
    116                 throwWarning: tr("PT2-addr:street abreviado");
     121                throwWarning: tr("Portugal-addr:street abreviado");
    117122}
    118123*["addr:street" =~ /\b(Ass|Av\.?ª?|[Bb](\.\s?|\s)?[Vv]|B(\.\s?|\s)?E(\.\s?|\s)?S|C(\.\s?|\s)?C|[Cc](\.\s?|\s)?[Gg](\.\s?|\s)?[Dd]|[Cc](\.\s?|\s)?[Mm]|C(\.\s?|\s)?V(\.\s?|\s)?P|C\.S|Congr|D|Dept|Dir|E(\.|\s)?T(\.|\s)?A(\.|\s)?R|Ed[Ee]|Ext|[FSfs](\.\s?|\s)?[Cc](lub)?e?|H|Inst|J(\.\s?|\s)?F|Lab|Mte|Na|Ns|N[^0-9º]|N(\.\s?|\s)?[ªa]|\sN\sS|Of|P(\.\s?|\s)?S(\.\s?|\s)?P|Qta|R|Res|Rib(\.a|\.?ª)?|S|S(\.\s?|\s)?C|Soc|Sª|Sr?\.?ª|Sra?|St\.?[oaºª]?|Univ)(\.|\s)/][/(name|name:pt|addr:street)/ !~ /S\.A\./] {
    119                 throwWarning: tr("PT2-addr:street abreviado_");
     124                throwWarning: tr("Portugal-addr:street abreviado_");
    120125}
    121126*[/^(name|name:pt)$/ =~ /\b(Ass|Av\.?ª?|[Bb](\.\s?|\s)?[Vv]|B(\.\s?|\s)?E(\.\s?|\s)?S|C(\.\s?|\s)?C|[Cc](\.\s?|\s)?[Gg](\.\s?|\s)?[Dd]|[Cc](\.\s?|\s)?[Mm]|C(\.\s?|\s)?V(\.\s?|\s)?P|C\.S|Congr|Coop(\.\s?|\s)|D|Dept|Dir|E(\.|\s)?T(\.|\s)?A(\.|\s)?R|Ed[Ee]|Ext|[FSfs](\.\s?|\s)?[Cc](lub)?e?|Gab|H|Inst|J(\.\s?|\s)?F|Lab|Mte|Na|Ns|N[^0-9º]|N(\.\s?|\s)?[ªa]|\sN\sS|Of|Pte|P(\.\s?|\s)?S(\.\s?|\s)?P|Qta|R|Res|Rib(\.a|\.?ª)?|S|S(\.\s?|\s)?C|Soc|Sª|Sr?\.?ª|Sra?|St\.?[oaºª]?|Univ)(\.|\s)/][/(name|name:pt|addr:street)/ !~ /S\.A\./] {
    122                 throwWarning: tr("PT2-Nome abreviado-NÃO alterar se for nome de estabelecimento");
     127                throwWarning: tr("Portugal-Nome abreviado-NÃO alterar se for nome de estabelecimento");
    123128}
    124129*[/name|name:pt|short_name|official_name|loc_name|old_name|int_name|nat_name|reg_name|addr:street|description|ref|old_ref/ =~ /[?!.,:;]{2,}/] {
    125                 throwWarning: tr("PT2-Pontuação repetida 2 ou mais vezes");
     130                throwWarning: tr("Portugal-Pontuação repetida 2 ou mais vezes");
    126131}
    127132*[/^(name|name:pt)$/ =~ /\s['"»«ºª]\s/] {
    128                 throwWarning: tr("PT2-Nome com acentuação isolada entre espaços");
     133                throwWarning: tr("Portugal-Nome com acentuação isolada entre espaços");
    129134}
    130135*[name =~ /[`~^¨]/],
     
    149154*["addr:housename" =~ /[`~^¨]/],
    150155*[sorting_name =~ /[`~^¨]/] {
    151                 throwWarning: tr("PT2- {0} com caracteres estranhos", "{0.key}");
     156                throwWarning: tr("Portugal- {0} com caracteres estranhos", "{0.key}");
    152157}
    153158*[name =~ /[´]/],
     
    173178*["addr:street" =~ /[´]/],
    174179*[sorting_name =~ /[´]/] {
    175                 throwWarning: tr("PT2- {0} com acento agudo e não apóstrofo", "{0.key}");
     180                throwWarning: tr("Portugal- {0} com acento agudo e não apóstrofo", "{0.key}");
    176181}
    177182/* erros ortográficos principais
     
    180185 */
    181186*[/^(name|name:pt|addr:street|addr:city|alt_name|int_name|nat_name|reg_name|loc_name|old_name|official_name|name:pt)$/ =~ /(?i)(?u)(oes\b|\bá\s|hà|\bAb[ìi]lio|Ac([àa]c|ass?|áss?)i[ao]|Academic[oa]|A((c|ss?)[ùu]|çù)de\b|\bAss?ore[sa]|Administra(ça|cã|ca)o|\bAdriao\b|Africa\b|Ag(enc|êns)ia|\b(Ág|Agu)eda\b|Agrari[ao]|Agricola|\bAgui?as?|\bAlamo\b|Alcantara|Alfandega|\bAl(ge|j[ée])s\b|Alvar(es|o)|Amalia|\bAmandio|\bAmeli[ao]\b|Americ[ao]s?\b|Amisade|\bAndre\b|\bAngel[ao]\b|\bAnibal|Antonio|Apolonia|Araujo|Arma(ze|sé)(m|ns)|\bArea\b|Arqueol(og|ój|oj)ic[oa]|\bArtes(ao|oes)|\bArtistic[oa]|Arvore|Ascen(sao|ção|çao)|\bAsenha\b|As(s?isten[cs]s?|istên[cs]s?i)ia|Astronomico|\bA[sc]is\b|Ass?o(c|ss?)ia(ça|cã|ca)o|Atlantic|Atletico|Auditorio|\bAzemeis|\bBaia\b|\bBalneario|B(as|áz)i(li)?c[ao]|\bBarao\b|\bBarbar[ao]s?\b|\bBa(zí|si)lica|\bB[éê]co\b|\bBelem\b|B(élj|el[gj]i)c|\bBelesa|\bBeltr[aâ]o\b|\bBetao\b|\bBissáu\b|Bonanico|Bonif(ac|as|ás)io|\bBrandao\b|\bBras\b|Bra(si|z[ií])lia|\bBrazil|Britanic|Cab(leireir[ao]|eleleir[ao]|eleire?[ao])|\bCacador|Cafe\b|Caf(ét[ea]|ata)ria|Cal(c|ss?)ada|C(alva|álv[áa])rio|\bC[àáã]mara|Cambio|Camelia|cami(onaj|no[gj]|nona[gj]|na[gj])em|Camoes|\bCa(mponez|npone[zs])|\bCandid[ao]\b|\bC[aâ]o\b\b|\bCapit(ao|aes|[õo]es)|Ca[cs]s?ador|\bCaza\b|C[ei]miterio|Centenari[ao]|\bC(e[zs]|éz)ar\b|Chafaris|\bCha[os]?\b|\bCidadao\b|Ci(enc|[êe]nss?)ia|Cir(ur[gj]|úrj)ica|\bClaudi[ao]|Clerigo|Clinica|Col(e[gj]|éj)io|Combust(ívé|iv[ée])ive(l|is)|Com(er[cs]|érs)io|\bCojo\b|Comdominio|Com(monit[áa]|unita)ri[ao]|Concei(ca|ça|cã)o|\bC[oô]nego\b|Con([cs]s?ervato|cervató)ri|Co(mdom[íi]|ndomi)nio|Coperativa|cosmetic(a|os)|\bCredito|Crist([oôó]va|[oô]vã)o|\bCrus\b|Con(c|ss?)ervatori[oa]|\bDalia\b|\bDami?ao\b|Dan(c|ss?)a\b|Dentari|Dep(oss?|óz|oz)ito|Diagnostico|Diario|Di(até|ete)tica|\bDili\b|Dion(is|iz|íz)io|Dire(cã|ça|ca)o|Domingao|\bE(c|ss?)ca\b|Edif(i[cçs]s?|íç|íss?)icio|Educa(ca|ça|cã)o|Elec?tr[ei](c[ao]|[çs]s?ista)s?|Elec?tr(e[cçs]s?|i[çs]s?)[ei]dade|Elec?trodomestic|\bElisi[ao]s?\b|\b([ÈÉ]m[íi]|Emi)di[ao]\b|\bEmili[ao]\b|Encarna(ca|ça|cã)o|Eremida|Escadori|Escoteiro|Espirit[ao]|Expli([çc][õo]es|ca(cõ|ço|co)es|ca(ça|cã)o)|Esta(ca|ça|cã)o|\bEstadio|Estasiona|Estatua|\bEstefani[ao]|Esternato|Estetic[ao]|Estradao|Est[êée]vao|Estufador|\bEufemi|Evan(ge|jé|je)lica|\bEvora\b|Ex(erc|érs)ito|\bEx(ilio|ílad)|Fabricas?\b|\bFamalicao|\bFamilia\b|(para)?Farmacia|Farmaceutic|Fatima|Felix|\bFerre[ao]|Ferr?oviari|Finan(c|ss?)as|\bFisic[ao]\b|\bFlavi[ao]\b|\bFont[ae]rio|Fortalesa|Fotebol\b|\bFotografo|Fran(ce|sê|se)s\b|F(egu?e[sz]|rege[sz]|regu?ez)ia|Fruticula|Funeraria|Gale\b|Garces|\bGa(rret|rett?)\b|\bGaviao\b|\b(Ge|J[ée])meos?\b|Gloria|\bGôa\b|\bGois\b|Gon(c|ss?)alves|\bGra[cs]s?as?\b|\bGrao\b|Guestao|Guimaraes|Gu?in(áz|as|az)io|Gu?ina[sz]tica|Guine(\sBiss?a[ou])?|Guiné(-|\s)?(Bi[çs]a[ou])|Hermini[ao]\b|Herois|Hipico|\bHor(áss?|ac)io|Horten[cs]ia|Horticula|\bH[õô]tel|Iberic[ao]|Imobiliaria|\bIn([áa]ss?|ac)io|Independencia|India\b|Industrias?\b|Inf(a[cs]s?ia|ânss?ia|antario)|\binformatica|\bIn(es|ez|êz)\b|Infantario|Informatica|Inspec?ç?(a|oes)|\bIrmao?s?\b|\bJeova\b|Jeronimo|\bJiesta|\bJoao\b|Joelheria|\bJoias?\b|J[oó]se\b|J[ou]d[iu]([cs]s?ia|ss?i[áa]|[cs]?i[cs]?ia)ria|\bJuliao\b|\bJusti(c|ss?)a|\bJulia?o\b|\bJuridic|Laboratorio|\bLampiao\b|L(ás|az|as)aro|Leao|Leitao|\bLinguas?\b|\bLiquido\b|\bLirio|Lo(gi|jí)stic|Loule|Louren(c|ss?)o|\bL(ú[çs]s?i|u[çcs]s?i)[ao]\b|Lu[sz]iada|Magalhaes|\bMalhao\b|Maquinas?|\bMarili|Maritim[oa]|\bMario\b|Martir(es)?\b|\bMatris\b|Marqu?(é[sz]|eza)\b|Matematic|\bMedic[oa]\b|Metal(úrjica|ur[jg]ica)|Mi(ss?iona|cion[áa])ri|M[ei][sz](erir?co|irec[oó])rd[ie](o[sz])?a|\bMoises\b|Mortuaria|Moveis|\bM(o[sz]e[ou]|useo|uze[ou])\b|M[uo]([sz]e[uo]lój|ze[uo]ló[gj])ic|Muni((c|ss?)i|ss?í)pio|Musica\b|\bNautic|\bNa(zare|sar[ée])|Negocio|Nem(éz|es)io\b|Ne[sç]s?e[scç]s?idades|Not(i[cs]s?|íss?)ias|\bNucleo\b|\bOp?tica\b|[ÒO]bidos?|Observatorio|O(ceanic[ao]\b|[çs]s?eânic)|Panoramic|\bPao\b|\bP[áa]teo\b|\bP[àaâã]tio\b|Pavilh(ao|oes)|\bPen(ss?a|ssã|çã)o\b|\bPredios?\b|P(siquia|ciqui[aá])tric[oa]|Politecnic|Porfirio|Portugue[sz]\b|Profi[cs]ional|\bProgre[sç]o|\bPublic(o|a)\b|P[ou]rifica(ca|ça|cã)o|Quiteria|\bRadio\b|\bRaínha\b|\bRaúl\b|Ress?into|\bR[eu]tunda\b|\bRe(gia|jiã|gi|ji)o\b|Rejimento|Remedio|Repara(cões|çoes|coes|çao|cao|cão)|R[ée]publica\b|R(épu|epú|épú)blican[ao]|Retro(za|[zs]e)ria|Re([zs]ide|zidê)n[cs]ias?\b|Rezid[êe]ncial|Re(zide|sidê)n[cs]ial|Re[sç]urrei(ça|[cs]s?ã)o|Ress?urrei(ça|[cs]s?ã)o|Retrozaria|\bRío\b|Rodoviari[oa]|\bRo([gj]e|jé)rio|Romanic[ao]|Romao|\bRo(sa|za|zá)[rl]i[oa]|Ruina|\bSa\b|Salao|Sand([ou][íi]x|[ou]ich|oích)e|\bSanitari|Sant(are|er[ée])m|Sant(í[sçc]|i[sçc]s?)im[ao]|\bSao\b|\bSaude|\sSe\b|Sebastiao|Seculo|Secundari[ao]|(Semina|Cemin[áa])rio|Senior|Ser(racao|raçao|racão|ação)|Sepulveda|Servi(c|ss?)o|S(erg|érji)io|Sidonio|\bSilverio|Sim(ao|oes)|Su(e(c|ss?)ia|éss?)ia|Su(íss?|iç|iss?)a|Su[çs]s?e(ss?|ç)o|\bT(ang|[âa]nj)er\b|Tape([çc]e|[cs]s?a)ria|Taxis?|Tecnico|Tecnol(ój|o[gj])ico|\bTenis\b|Tertulia|Teofilo|Teotonio|Textil|\bTilia|\bTipico|\bTomas\b|\bTome\b|\bTr(a[sz]|áz)\b|\bTr?ave[sç]a\b|\bTrese\b|\bTúlipa|\bTunel\b|\bTuristic|\bUniao\b|Univer(sita|cit[áa])ri|Univercidade|Urbani(za(ç|ss?)ao|sa(ç|ss?)ão|zac[aã]o)|Urg(enc|[êe]nss?)ia|\bV(ar[zs]|árs)ea\b|\bVarsim|\bV(árs|ar[zs])ea|\bValeri[ao]\b|\bVen(an[cs]s?|[âa]nss?)i[ao]|\bV(ide|[íi]di)o\b|\bVicio\b|\bV(ir[gj]i|jí|erj[íi]|ergi)li|Veter(i?na|en[áa])ri|\bVilaret?\b|Vitoria|Voluntario)/] {
    182                 throwWarning: tr("PT2-Verificar:name ou similares, addr:street, addr:city com erros ortográficos");
     187                throwWarning: tr("Portugal-Verificar:name ou similares, addr:street, addr:city com erros ortográficos");
    183188}
    184189/* casos de marcas complicadas em que o melhor é indicar o nome correto na mensagem */
    185190*[name =~ /(?i)(?u)[Dd]ecat?[hl]?on/] {
    186                 throwWarning: tr("PT2-Correto é Decathlon");
     191                throwWarning: tr("Portugal-Correto é Decathlon");
    187192}
    188193*[name =~ /(?i)(?u)Ma?c(\s[Dd]onald('|\s)?|[Dd]onald\s?)s/] {
    189                 throwWarning: tr("PT2-Correto é McDonalds-com apóstrofo antes do s");
     194                throwWarning: tr("Portugal-Correto é McDonalds-com apóstrofo antes do s");
    190195}
    191196*[name =~ /(?i)(?u)\b[Ll]evi[ ´]?s\b/] {
    192                 throwWarning: tr("PT2-Correto é Levis-com apóstrofo antes do s");
     197                throwWarning: tr("Portugal-Correto é Levis-com apóstrofo antes do s");
    193198}
    194199*[name =~ /[Pp]ingo((D|d| d)ol?ce| Dolce)/] {
    195                 throwWarning: tr("PT2-Correto é Pingo Doce");
     200                throwWarning: tr("Portugal-Correto é Pingo Doce");
    196201}
    197202*[name =~ /\b([Ee][Ll]ecler[kqc]|[Ee]\.[Ll]ecler[kq]|e\.Leclerc|E\.leclerc)/] {
    198                 throwWarning: tr("PT2-Correto é E.Leclerc");
     203                throwWarning: tr("Portugal-Correto é E.Leclerc");
    199204}
    200205*[name =~ /(?i)(?u)(Inter?(\s|-)?ma(rche|x[ée]|r?che)|Inter(\s|-)marché)/] {
    201                 throwWarning: tr("PT2-Correto é Intermarché");
     206                throwWarning: tr("Portugal-Correto é Intermarché");
    202207}
    203208*[name =~ /(?i)(?u)\bDeca(te?lo[mn]|th?lom|tom)\b/] {
    204                 throwWarning: tr("PT2-Correto é Decathlon");
     209                throwWarning: tr("Portugal-Correto é Decathlon");
    205210}
    206211*[name =~ /(mini(\s|-)?preço|Mini(\s|-)preço|Mini(\s|-)?Preço|MINI(\s|-)?PREÇO)/] {
    207                 throwWarning: tr("PT2-Correto é Minipreço");
     212                throwWarning: tr("Portugal-Correto é Minipreço");
    208213}
    209214*[name =~ /(?i)(?u)(^Phone House|[FP]one Hou[zs]e)/] {
    210                 throwWarning: tr("PT2-Correto é The Phone House");
     215                throwWarning: tr("Portugal-Correto é The Phone House");
    211216}
    212217*[name =~ /Banco Português de Investimento/][!short_name] {
    213                 throwWarning: tr("PT2-Falta a etiqueta short_name=BPI");
     218                throwWarning: tr("Portugal-Falta a etiqueta short_name=BPI");
    214219        fixAdd: "short_name=BPI";
    215220}
    216221*[name =~ /Caixa Geral de Depósitos/][!short_name] {
    217                 throwWarning: tr("PT2-Falta a etiqueta short_name=CGD");
     222                throwWarning: tr("Portugal-Falta a etiqueta short_name=CGD");
    218223        fixAdd: "short_name=CGD";
    219224}
    220225*[name =~ /Banco Espírito Santo/][!short_name] {
    221                 throwWarning: tr("PT2-Falta a etiqueta short_name=BES");
     226                throwWarning: tr("Portugal-Falta a etiqueta short_name=BES");
    222227        fixAdd: "short_name=BES";
    223228}
    224229*[name =~ /Banco Bilbao Vizcaya Argentaria/][!short_name] {
    225                 throwWarning: tr("PT2-Falta a etiqueta short_name=BBVA");
     230                throwWarning: tr("Portugal-Falta a etiqueta short_name=BBVA");
    226231        fixAdd: "short_name=BBVA";
    227232}
    228233*[name =~ /Guarda Nacional Republicana/][!short_name] {
    229                 throwWarning: tr("PT2-Falta a etiqueta short_name=GNR");
     234                throwWarning: tr("Portugal-Falta a etiqueta short_name=GNR");
    230235        fixAdd: "short_name=GNR";
    231236}
    232237*[name =~ /Polícia de Segurança Pública/][!short_name] {
    233                 throwWarning: tr("PT2-Falta a etiqueta short_name=PSP");
     238                throwWarning: tr("Portugal-Falta a etiqueta short_name=PSP");
    234239        fixAdd: "short_name=PSP";
    235240}
    236241*[amenity = police][name =~ /^(?i)(?u)P(\.\s?|\s)?S(\.\s?|\s)?P(\.\s?|\s)?$/] {
    237                 throwWarning: tr("PT2-Nome abreviado de Polícia de Segurança Pública");
     242                throwWarning: tr("Portugal-Nome abreviado de Polícia de Segurança Pública");
    238243                fixAdd: "name=Polícia de Segurança Pública";
    239244                fixAdd: "short_name=PSP";
    240245}
    241246*[amenity = police][name =~ /^(?i)(?u)G(\.\s?|\s)?N(\.\s?|\s)?R(\.\s?|\s)?$/] {
    242                 throwWarning: tr("PT2-Nome abreviado de Guarda Nacional Republicana");
     247                throwWarning: tr("Portugal-Nome abreviado de Guarda Nacional Republicana");
    243248                fixAdd: "name=Guarda Nacional Republicana";
    244249                fixAdd: "short_name=GNR";
    245250}
    246251*[amenity = bank][name =~ /^(?i)(?u)(Banco )?C(\.\s?|\s)?G(\.\s?|\s)?D(\.\s?|\s)?$/] {
    247                 throwWarning: tr("PT2-Nome abreviado de Caixa Geral de Depósitos");
     252                throwWarning: tr("Portugal-Nome abreviado de Caixa Geral de Depósitos");
    248253                fixAdd: "name=Caixa Geral de Depósitos";
    249254                fixAdd: "short_name=CGD";
    250255}
    251256*[amenity = bank][name =~ /(?i)(?u)Cai((cha) Ge(ne)?ral (de )?Dep[óo]sito|xa Ge(ne)?ral (de )?Deposito)/] {
    252                 throwWarning: tr("PT2-O correto é Caixa Geral de Depósitos");
     257                throwWarning: tr("Portugal-O correto é Caixa Geral de Depósitos");
    253258}
    254259*[amenity =~ /bank|atm/][operator =~ /^(?i)(?u)(Banco )?C(\.\s?|\s)?G(\.\s?|\s)?D(\.\s?|\s)?$/] {
    255                 throwWarning: tr("PT2-operator abreviado de Caixa Geral de Depósitos");
     260                throwWarning: tr("Portugal-operator abreviado de Caixa Geral de Depósitos");
    256261                fixAdd: "operator=Caixa Geral de Depósitos, S.A.";
    257262}
    258263*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?P(\.\s?|\s)?I(\.\s?|\s)?$/] {
    259                 throwWarning: tr("PT2-Nome abreviado de Banco Português de Investimento");
     264                throwWarning: tr("Portugal-Nome abreviado de Banco Português de Investimento");
    260265                fixAdd: "name=Banco Português de Investimento";
    261266                fixAdd: "short_name=BPI";
    262267}
    263268*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?E(\.\s?|\s)?S(\.\s?|\s)?$/] {
    264                 throwWarning: tr("PT2-Nome abreviado de Banco Espírito Santo");
     269                throwWarning: tr("Portugal-Nome abreviado de Banco Espírito Santo");
    265270                fixAdd: "name=Banco Espírito Santo";
    266271                fixAdd: "short_name=BES";
    267272}
    268273*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?B(\.\s?|\s)?V(\.\s?|\s)?A(\.\s?|\s)?$/] {
    269                 throwWarning: tr("PT2-Nome abreviado de Banco Bilbao Vizcaya Argentaria");
     274                throwWarning: tr("Portugal-Nome abreviado de Banco Bilbao Vizcaya Argentaria");
    270275                fixAdd: "name=Banco Bilbao Vizcaya Argentaria";
    271276                fixAdd: "short_name=BBVA";
     
    273278*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?C(\.\s?|\s)?P(\.\s?|\s)?$/],
    274279*[amenity = bank][name =~ /^(Banco )?([Mm]ill?en?nium[Bb][Cc][Pp]|[Mm]ill?enn?i[ou]m?( B[Cc][Pp])?|Mil(en|le|e)nium BCP)$/] {
    275                 throwWarning: tr("PT2-Nome abreviado ou errado de Millennium bcp");
     280                throwWarning: tr("Portugal-Nome abreviado ou errado de Millennium bcp");
    276281                fixAdd: "name=Millennium bcp";
    277282                fixAdd: "short_name=bcp";
     
    279284}
    280285*[name =~ /Banco Comercial Português/] {
    281                 throwWarning: tr("PT2-O correto é Millennium bcp");
     286                throwWarning: tr("Portugal-O correto é Millennium bcp");
    282287                fixAdd: "name=Millennium bcp";
    283288                fixAdd: "short_name=bcp";
     
    285290}
    286291*[amenity = bank][name =~ /^(?i)(?u)(Banco )?(Santander|Tott?a|SantanderTott?a|Tott?a\s?Santander)$/] {
    287                 throwWarning: tr("PT2-O correto é Santander Totta");
     292                throwWarning: tr("Portugal-O correto é Santander Totta");
    288293                fixAdd: "name=Santander Totta";
    289294}
    290295*[name =~ /(?i)(?u)Benett?o[mn]\b/][name !~ /\bUnited Colors\b/] {
    291                 throwWarning: tr("PT2-O correto é United Colors of Benetton");
     296                throwWarning: tr("Portugal-O correto é United Colors of Benetton");
    292297}
    293298*[amenity = bank][name =~ /^(?i)(?u)(Banco )?BANIF$/] {
    294                 throwWarning: tr("PT2-Nome abreviado de Banco Internacional do Funchal");
     299                throwWarning: tr("Portugal-Nome abreviado de Banco Internacional do Funchal");
    295300                fixAdd: "name=Banco Internacional do Funchal";
    296301                fixAdd: "short_name=Banif";
    297302}
    298 *[shop=books][name =~ /^(?i)(?u)\bBiblioteca\b/] {
    299         throwWarning: tr("PT2-Biblioteca com etiqueta de livraria");
    300         suggestAlternative: "amenity=library";
    301 }
    302 *[amenity=library][name =~ /^(?i)(?u)\bLivraria\b/] {
    303         throwWarning: tr("PT2-Livraria com etiqueta de biblioteca");
    304         suggestAlternative: "shop=books";
    305 }
    306 *[!office][name =~ /^(?i)(?u)Associação/][name !~ /^(?i)(?u)\bAssociação Humanitária\b/] {
    307         throwWarning: tr("PT2-Associação sem etiqueta office=association");
    308         fixAdd: "office=association";
    309 }
    310 way[railway = rail][lanes][!tracks] {
    311         throwWarning: tr("PT2- railway não deve ter lanes mas sim tracks");
    312         fixChangeKey: "lanes => tracks";
    313 }
    314 *[amenity=grave_yard] {
    315         throwWarning: tr("PT2-Verificar: é muito raro sepulturas fora de cemitérios, usar cemetery");
    316 }
    317 *[place][place != village][name =~ /^Freguesia\b/] {
    318         throwWarning: tr("PT2-A etiqueta de uma freguesia deve ser village");
    319         fixAdd: "place=village";
    320 }
    321 way[highway !~ /^(primary|trunk)/][name =~ /^(?i)(?u)(Estrada Nacional|EN)\s/],
    322 way[highway !~ /^(primary|trunk)/][ref =~ /^(?i)(?u)(E\.?)?N(\.|\s)?[0-9]{1,3}$/] {
    323         throwWarning: tr("PT2-Verificar: Estradas nacionais devem ser primárias/VR/IP/IC");
    324         fixAdd: "highway=primary";
    325 }
    326 way[highway !~ /^secondary/][name =~ /^(?i)(?u)(Estrada Regional|ER)\s/],
    327 way[highway !~ /^secondary/][ref =~ /^(?i)(?u)(E\.?)?R(\.|\s)?[0-9]{1,4}$/] {
    328         throwWarning: tr("PT2-Verificar: Estradas regionais devem ser secundárias");
    329         fixAdd: "highway=secondary";
    330 }
    331 way[highway !~ /^tertiary/][highway][name =~ /^(?i)(?u)((Estrada|Caminho) Municipal|EM|CM)\s/],
    332 way[highway !~ /^tertiary/][highway][ref =~ /^(?i)(?u)([EC]\.?)?M(\.|\s)?[0-9]{1,4}$/] {
    333         throwWarning: tr("PT2-Verificar: Estradas municipais devem ser terciárias");
    334         fixAdd: "highway=tertiary";
    335 }
    336 *[highway=mini_roundabout] {
    337         throwWarning: tr("PT2-Verificar: mini-rotundas são raras, será 1 rotunda?");
    338 }
    339 node[junction=roundabout] {
    340         throwWarning: tr("PT2-Rotunda num nó, é melhor num círculo");
    341 }
    342 node[amenity = place_of_worship] ∈ *[building] {
    343         throwWarning: tr("PT2- local de oração num nó, sobre 1 edifício");
    344 }
    345 *[amenity=recycling][recycling_type != container][recycling_type != centre]{
    346         throwWarning: tr("PT2- amenity=recycling sem recycling_type, se for ecoponto aplicar Corrigir, confirmar com imagens aéreas");
    347                 fixAdd: "amenity=recycling";
    348                 fixAdd: "recycling_type=container";
    349                 fixAdd: "recycling:aerosol_cans=yes";
    350                 fixAdd: "recycling:plastic_packaging=yes";
    351                 fixAdd: "recycling:plastic_bottles=yes";
    352                 fixAdd: "recycling:plastic_bags=yes";
    353                 fixAdd: "recycling:plastic=yes";
    354                 fixAdd: "recycling:paper=yes";
    355                 fixAdd: "recycling:glass_bottles=yes";
    356                 fixAdd: "recycling:cardboard=yes";
    357                 fixAdd: "recycling:cans=yes";
    358                 fixAdd: "recycling:glass=yes";
    359                 fixAdd: "recycling:aluminium=yes";
    360                 fixAdd: "recycling:books=yes";
    361                 fixAdd: "recycling:cartons=yes";
    362                 fixAdd: "recycling:fluorescent_tubes=no";
    363                 fixAdd: "recycling:low_energy_bulbs=no";
    364                 fixAdd: "recycling:magazines=yes";
    365                 fixAdd: "recycling:newspaper=yes";
    366                 fixAdd: "recycling:organic=no";
    367                 fixAdd: "recycling:PET=yes";
    368                 fixAdd: "recycling:beverage_cartons=yes";
    369 }
    370 *[amenity != recycling][name =~ /(?i)(?u)\becoponto\b/][name !~ /(?i)(?u)\becoponto\s?(amarelo|verde|azul)\b/] {
    371         throwWarning: tr("PT2- ecoponto no nome mas sem etiqueta de ecoponto");
    372                 fixAdd: "amenity=recycling";
    373                 fixAdd: "recycling_type=container";
    374                 fixAdd: "recycling:aerosol_cans=yes";
    375                 fixAdd: "recycling:plastic_packaging=yes";
    376                 fixAdd: "recycling:plastic_bottles=yes";
    377                 fixAdd: "recycling:plastic_bags=yes";
    378                 fixAdd: "recycling:plastic=yes";
    379                 fixAdd: "recycling:paper=yes";
    380                 fixAdd: "recycling:glass_bottles=yes";
    381                 fixAdd: "recycling:cardboard=yes";
    382                 fixAdd: "recycling:cans=yes";
    383                 fixAdd: "recycling:glass=yes";
    384                 fixAdd: "recycling:aluminium=yes";
    385                 fixAdd: "recycling:books=yes";
    386                 fixAdd: "recycling:cartons=yes";
    387                 fixAdd: "recycling:fluorescent_tubes=no";
    388                 fixAdd: "recycling:low_energy_bulbs=no";
    389                 fixAdd: "recycling:magazines=yes";
    390                 fixAdd: "recycling:newspaper=yes";
    391                 fixAdd: "recycling:organic=no";
    392                 fixAdd: "recycling:PET=yes";
    393                 fixAdd: "recycling:beverage_cartons=yes";
    394 }
    395 *[amenity != recycling][name =~ /(?i)(?u)\b(embalão|ecoponto amarelo)\b/] {
    396         throwWarning: tr("PT2- ecoponto no nome mas sem etiqueta de ecoponto amarelo, embalão");
    397                 fixAdd: "amenity=recycling";
    398                 fixAdd: "recycling_type=container";
    399                 fixAdd: "recycling:aerosol_cans=yes";
    400                 fixAdd: "recycling:plastic_packaging=yes";
    401                 fixAdd: "recycling:plastic_bottles=yes";
    402                 fixAdd: "recycling:plastic_bags=yes";
    403                 fixAdd: "recycling:plastic=yes";
    404                 fixAdd: "recycling:paper=yes";
    405                 fixAdd: "recycling:glass_bottles=yes";
    406                 fixAdd: "recycling:cardboard=yes";
    407                 fixAdd: "recycling:cans=yes";
    408                 fixAdd: "recycling:glass=yes";
    409                 fixAdd: "recycling:aluminium=yes";
    410                 fixAdd: "recycling:beverage_cartons=yes";
    411                 fixAdd: "recycling:PET=yes";   
    412 }
    413 *[amenity != recycling][name =~ /(?i)(?u)\b(papelão|ecoponto azul)\b/] {
    414         throwWarning: tr("PT2- ecoponto no nome mas sem etiqueta de ecoponto azul, papelão");
    415                 fixAdd: "amenity=recycling";
    416                 fixAdd: "recycling_type=container";
    417                 fixAdd: "recycling:paper=yes";
    418                 fixAdd: "recycling:cardboard=yes";
    419                 fixAdd: "recycling:books=yes";
    420                 fixAdd: "recycling:cartons=yes";
    421                 fixAdd: "recycling:magazines=yes";
    422                 fixAdd: "recycling:newspaper=yes";
    423                 fixAdd: "recycling:beverage_cartons=no";
    424 }
    425 *[amenity != recycling][name =~ /(?i)(?u)\b(vidrão|ecoponto verde)\b/] {
    426         throwWarning: tr("PT2- ecoponto no nome mas sem etiqueta de ecoponto verde, vidrão");
    427                 fixAdd: "amenity=recycling";
    428                 fixAdd: "recycling_type=container";
    429                 fixAdd: "recycling:glass=yes";
    430                 fixAdd: "recycling:fluorescent_tubes=no";
    431                 fixAdd: "recycling:low_energy_bulbs=no";
    432 }
    433 *[amenity != recycling][name =~ /(?i)(?u)\b(pilhão|ecoponto vermelho)\b/] {
    434         throwWarning: tr("PT2- pilhão no nome mas sem etiqueta de ecoponto");
    435                 fixAdd: "amenity=recycling";
    436                 fixAdd: "recycling_type=container";
    437                 fixAdd: "recycling:batteries=yes";
    438                 fixAdd: "recycling:car_batteries=no";
    439 }
    440 *[recycling_type=centre][name =~ /(?i)(?u)\becoponto\b/] {
    441         throwWarning: tr("PT2-Ecoponto marcado erradamente como ecocentro");
    442                 fixAdd: "recycling_type=container";
    443 }
    444 *[amenity != fire_station][name =~ /(?i)(?u)\b((Quartel dos )?Bombeiros|\bBatalhão|Sapadores)\b/][!highway][!aeroway][name !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    445         throwWarning: tr("PT2-Bombeiros deve ter amenity=fire_station");
    446                 fixAdd: "amenity=fire_station";
    447 }
    448 *[phone][phone !~ /^\+351 [0-9]{3} [0-9]{3}[0-9]{3}((;\s?\+351 [0-9]{3} [0-9]{3}[0-9]{3})?)+$/],
    449 *["contact:phone"]["contact:phone" !~ /^\+351 [0-9]{3} [0-9]{3}[0-9]{3}((;\s?\+351 [0-9]{3} [0-9]{3}[0-9]{3})?)+$/],
    450 *[fax][fax !~ /^\+351 [0-9]{3} [0-9]{3}[0-9]{3}((;\s?\+351 [0-9]{3} [0-9]{3}[0-9]{3})?)+$/],
    451 *["contact:fax"]["contact:fax" !~ /^\+351 [0-9]{3} [0-9]{3}[0-9]{3}((;\s?\+351 [0-9]{3} [0-9]{3}[0-9]{3})?)+$/] {
    452         throwWarning: tr("PT2-Verificar:número de telefone/fax diferente de +351 NNN NNNNNN");
    453 }
    454 way[highway != bus_stop]["addr:street" =~ /[0-9]{5,}$/],
    455 way[highway != bus_stop][name =~ /([0-9]{5,}|[0-9]{3,}\s[0-9]{3,}|[0-9]{4,}(-|\s?-\s?)[0-9]{3,})$/] {
    456         throwWarning: tr("PT2-Nome de rua c/números telf./cód.postal");
    457 }
    458 way[highway][ref][ref =~ /^EN [0-9]?[4-9][0-9][0-9]/] {
    459                 throwWarning: tr("PT2-Estradas Nacionais só existem de 1 a 398");
    460 }
    461 way[highway][ref][ref =~ /^ER [0-9]?[4-9][0-9][0-9]/] {
    462                 throwWarning: tr("PT2-Estradas Regionais só existem de 1 a 396");
    463 }
    464 way[highway][ref][ref =~ /^IP [0-9][0-9]/] {
    465                 throwWarning: tr("PT2-Intenerários Principais só existem de 1 a 9");
    466 }
    467 way[highway][ref][ref =~ /^IC [0-9]?[4-9][0-9]/] {
    468                 throwWarning: tr("PT2-Intenerários Complementares só existem de 1 a 37");
    469 }
    470 /* nomes com valores que provavelmente deveriam estar em alt_name, short_name, etc */
    471 *[/^(name|name:pt)$/ =~ /\(.*\)/][!bus_stop] {
    472         throwWarning: tr("PT2-Nome com parênteses", "{0.key}");
    473         suggestAlternative: "alt_name";
    474         suggestAlternative: "short_name";
    475         suggestAlternative: "description";
    476         suggestAlternative: "note";
    477 }
    478 *[/^(name|name:pt)$/ =~ / - /] {
    479         throwWarning: tr("PT2-Nome com traço", "caso seja adequado {0.key}");
    480         suggestAlternative: "alt_name";
    481         suggestAlternative: "short_name";
    482         suggestAlternative: "description";
    483 }
    484 *[/^(name|alt_name)/ =~ /, /][/^(name|alt_name)/ !~ /, (Lda|S\.A)\./] {
    485         throwWarning: tr("PT2-name ou alt_name com vírgula", "{0.key}");
    486         suggestAlternative: "alt_name";
    487         suggestAlternative: "short_name";
    488         suggestAlternative: "description";
    489         suggestAlternative: "note";
    490 }
    491 *[/^(name|name:pt)$/ =~ /,\s?([Cc]\.?[Rr]\.?[Ll]|E\.?P|I\.P|L[Dd][Aa]|S\.A|Unip(essoal)?|UNIP(PESSOAL)?|[Ss]\.?[Gg]\.?[Pp]\.?[Ss])\.?/] {
    492         throwWarning: tr("PT2-Nome com designação comercial, use antes official_name e crie name sem a designação comercial");
    493         fixChangeKey: "name => official_name";
    494 }
    495 *[/^(name|name:pt)$/ =~ /: /] {
    496         throwWarning: tr("PT2-Nome com dois pontos", "{0.key}");
    497         suggestAlternative: "alt_name";
    498         suggestAlternative: "short_name";
    499         suggestAlternative: "description";
    500         suggestAlternative: "note";
    501 }
    502 /* nome e referências iguais */
    503 *[name = *ref][highway] {
    504         throwWarning: tr("PT2- {0} e {1} são iguais; adicionar nome completo da estrada", "{0.key}", "{0.value}");
    505 }
    506 /* possui nome de rua mas não tem etiqueta de highway */
    507 way[!highway][!railway][route != road][type !~ /route|street/][name][name =~ /^(?i)(?u)(Auto-?estrada|Avenida|Beco|Cais|Calçad(inh)?a|Caminho|Ciclovia|Escad(a|inha|aria)s?|Estrada\s?(Nacional|Regional|Municipal)?|Itinerário\s? (Complementar|Principal)?|Passeio|Rampa|Rotunda|Rua|Ruela|Transversal|Travessa|Trilho|Túnel|Variante|Via(-|\s)Rápida|Viadutos?|Viela)\b/][name !~ /^(?i)(?u)estrada de ferro/][route != ferry][!amenity] {
    508         throwWarning: tr("PT2-Verificar: com nome de via mas sem etiqueta de {0}", "{0.key}");
    509 }
    510 *[highway][name =~ /^(?i)(?u)(Auto-?Estrada|Alameda|Avenida|Beco|Calçad(inh)?a|Caminho|Ciclovia|Escad(a|inha|aria)s?|Estrada\s?(Nacional|Regional|Municipal)?|Itinerário\s? (Complementar|Principal)?|Ladeira|Largo|Pátio|Pra(ç|cet)a|Rampa|Rotunda|Rua|Ruela|Transversal|Travessa|Terreiro|Trilho|Túnel|Variante|Vereda|Via(-Rápida)?|Viadutos?|Viela)( (de acesso|sem nome|projetad(a|o)|em construção))?$/] {
    511         throwWarning: tr("PT2-Via com nome incompleto");
    512 }
    513 *[highway=service][name =~ /^(?i)(?u)(Auto-?Estrada|Alameda|Avenida|Beco|Calçad(inh)?a|Caminho|Ciclovia|Escad(a|inha|aria)s?|Estrada\s?(Nacional|Regional|Municipal)?|Itinerário\s? (Complementar|Principal)?|Ladeira|Largo|Pátio|Pra(ç|cet)a|Rampa|Rotunda|Rua|Ruela|Transversal|Travessa|Terreiro|Trilho|Túnel|Variante|Vereda|Via(-Rápida)?|Viadutos?|Viela)( (de acesso|sem nome|projetad(a|o)|em construção))?$/] {
    514                 throwWarning: tr("PT2-Via pública erradamente de serviço");
    515 }
    516 /* endereços com nome de via errado */
    517 *["addr:street"]["addr:street" !~ /^((Adro|Alameda|Aldeamento|Alto|Arco|Autoparque|Avenida|Azinhaga|Bairro|Beco|Boqueirão|Burgal|Cabeço|Cais|Calçad(inh)?a|Caminho|Campo|Campus|Caracol|Carreiro|Casal|Circular|Colónia|Condomínio|Corredor|Costa|Cruz(es)?|Cunhal|Encosta|Escad(a|inha|aria)s?|Escolas|Esplanada|Estacada|Estrada|Grupos de Moradias Populares|Itinerário\s?|Jardi(m|ns)|Ladeira|Largo|Loteamento|Mercado|Miradouro|Monte|Outeirinho|Paço|Parada|Parque|Passeio|Pátio|Poço|Porta|Postigo|Pra(ç|cet)a|Praia|Quinta|Rampa|Regueirão|Rocha|Rossio|Rotunda|Rua|Ruela|Sítio|Telheiro|Terreiro|Transversal|Travessa|Urbanização|Variante|Vereda|Via(-Rápida)?|Viela|Vila)\b|Triste Feia)/] {
    518         throwWarning: tr("PT2- addr:street sem nome de via, errado, abreviado ou com maiúsculas");
    519 }
    520 /* nome de vias sem logradouro correto */
    521 *[highway][highway !~ /bridleway|bus_stop|cycleway|crossing|elevator|footway|give_way|motorway_junction|path|raceway|speed_camera|steps|stop/][name][name !~ /^((Adro|Alameda|Aldeamento|Alto|Arco|Auto-?[Ee]strada|Autoparque|Avenida|Azinhaga|Bairro|Beco|Boqueirão|Burgal|Cabeço|Cais|Calçad(inh)?a|Caminho|Campo|Campus|Caracol|Carreiro|Casal|Circular|Colónia|Condomínio|Corredor|Costa|Cruz(es)?|Cunhal|Encosta|Escad(a|inha|aria)s?|Escolas|Esplanada|Estacada|Estrada|Grupos de Moradias Populares|Itinerário\s?|Jardi(m|ns)|Ladeira|Largo|Loteamento|Mercado|Miradouro|Monte|Outeirinho|Paço|Parada|Parque|Passeio|Pátio|Poço|Ponte|Porta|Postigo|Pra(ç|cet)a|Quinta|Rampa|Regueirão|Rocha|Rossio|Rotunda|Rua|Ruela|Sítio|Telheiro|Terreiro|Transversal|Travessa|Trilho|Túnel|Urbanização|Variante|Vereda|Via(-Rápida)?|Viaduto|Viela|Vila)\b|Triste Feia)/][name !~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/] {
    522         throwWarning: tr("PT2- {0} sem nome de via, errado, abreviado ou maiúsculas no nome", "{0.key}");
    523 }
    524 *[highway=cycleway][name][name !~ /^(?i)(?u)(ciclovia|ecopista|passeio|Pista (de )?Cicloturismo)/] {
    525         throwWarning: tr("PT2- Ciclovia sem nome de via, errado, abreviado ou maiúsculas no nome");
    526 }
    527 way[highway][type = route] {
    528         throwWarning: tr("PT2- {0} não deve possuir {1}", "{0.key}", "{1.tag}");
    529 }
    530 relation[type = route][highway] {
    531         throwWarning: tr("PT2-Relação não deve possuir {0}", "{1.key}");
    532 }
    533 *[place = city][!name],
    534 *[place = town][!name],
    535 *[place = village][!name] {
    536         throwWarning: tr("PT2- {0} sem nome", "{0.value}");
    537 }
    538 *[amenity =~ /^(school|college|kindergarten|driving_school)$/][name =~ /^(?i)(?u)\b(Academia da Força Aérea|Academia Militar|Academia Nacional Superior|Conservatório Superior|Faculdade|Escola d[eo] Serviço de Saúde Militar|Escola Náutica Infante|Escola Naval|Escola Superior|Escola Universitária|Instituto de Ciências Biomédicas|Instituto de Engenharia|Instituto Militar|Instituto Politécnico|Instituto Português de Administração|Instituto Superior|Instituto Universitário|Universidade)\b/] {
    539         throwWarning: tr("PT2-Verificar:estabelecimento de ensino errado");
    540         suggestAlternative: "amenity=university";
    541         fixAdd: "amenity=university";
    542 }
    543 *[amenity =~ /^(university|college|kindergarten|driving_school)$/][name =~ /^(?i)(?u)\b(Escola|Agrupamento de Escolas|Liceu|Centro de Formação Profissional)\b/][name !~ /^(?i)(?u)\b(Escola d[eo] Serviço de Saúde Militar|Escola Náutica Infante|Escola Naval|Escola Superior|Escola Universitária|Escola (de )?Condução)\b/] {
    544         throwWarning: tr("PT2-Verificar:estabelecimento de ensino errado");
    545         suggestAlternative: "amenity=school";
    546         fixAdd: "amenity=school";
    547 }
    548 *[amenity =~ /^(university|school|kindergarten|driving_school)$/][name =~ /^(?i)(?u)\b(Colégio|Internato|Real Colégio)\b/] {
    549         throwWarning: tr("PT2-Verificar:estabelecimento de ensino errado");
    550         suggestAlternative: "amenity=college";
    551         fixAdd: "amenity=college";
    552 }
    553 *[amenity =~ /^(university|school|college|driving_school)$/][name =~ /^(?i)(?u)\b(creche|jardim infantil|jardim de infância|infantário|externato|pré-primária)\b/] {
    554         throwWarning: tr("PT2-Verificar:estabelecimento de ensino errado");
    555         suggestAlternative: "amenity=kindergarten";
    556         fixAdd: "amenity=kindergarten";
    557 }
    558 *[amenity =~ /^(university|school|college|kindergarten)$/][name =~ /^(?i)(?u)\bEscola de Condução\b/] {
    559         throwWarning: tr("PT2-Verificar:estabelecimento de ensino errado");
    560         suggestAlternative: "amenity=driving_school";
    561         fixAdd: "{0.key}=driving_school";
    562 }
    563 *[amenity = college] ∈ *[amenity = college] {
    564         throwWarning: tr("PT2- {0} dentro de {1}", "amenity=college", "{0.tag}");
    565 }
    566 *[landuse = cemetery] ∈ *[landuse = cemetery] {
    567         throwWarning: tr("PT2- landuse=cemetery dentro de landuse = cemetery");
    568 }
    569 *[shop] ∈ *[shop][shop !~ /mall|department_store|supermarket/][amenity!=fuel] {
    570         throwWarning: tr("PT2- shop dentro de shop");
    571 }
    572 *[shop=supermarket] ∈ *[shop=supermarket] {
    573         throwWarning: tr("PT2- shop=supermarket dentro de shop=supermarket");
    574 }
    575 *[amenity=police] ∈ *[amenity=police] {
    576         throwWarning: tr("PT2- amenity=police dentro de amenity=police");
    577 }
    578 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bPadandaria\b/][shop !~ /bakery/],
    579 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bCentro de Cópias\b/][shop !~ /copyshop/],
    580 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bPeixaria\b/][shop !~ /seafood/],
    581 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bLoja (de )?(Tecidos|Têxteis)\b/][shop !~ /fabric/],
    582 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Informática|Chip7)\b/][shop !~ /computer/],
    583 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Salão de Beleza|Nails|Manicure|Pedicure|Estética)\b/][shop !~ /beauty/],
    584 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bMassage(m|ns)\b/][shop !~ /massage/],
    585 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Body Shop|Boticário|Sephora)\b/][shop !~ /cosmetics/],
    586 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Decoraç(ão|ões)|Zara Home)\b/][shop !~ /interior_decoration/],
    587 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bFlorista\b/][shop !~ /florist/],
    588 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Lavandaria|5 à Sec)\b/][shop !~ /laundry/],
    589 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Loja de Animais/][shop !~ /pet/],
    590 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(videoclube|clube de video)/][shop !~ /video/],
    591 *[/^(name|name:pt)$/ =~ /^(?i)(?u)intrumentos musicais/][shop !~ /musical_instrument/],
    592 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Galeria de Arte/][shop !~ /art/],
    593 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Artigos Desportivos/][shop !~ /sports/],
    594 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Loja de Caça|Artigos (de |para )? Caça|\bCaça\b)/][shop !~ /hunting/],
    595 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Loja de Pesca|Artigos (de |para )? Pesca|\bPesca\b)/][shop !~ /fishing/],
    596 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Peças (de |para )? Auto/][shop !~ /car_parts/],
    597 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bGela(taria|dos)\b/][shop !~ /ice_cream/],
    598 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bRetrosaria\b/][shop !~ /sewing/],
    599 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Móveis|Moviflor)/][shop !~ /furniture/],
    600 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Antiguidades/][shop !~ /antiques/],
    601 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Materia(is|l) (de |para )? Contrução/][shop !~ /antiques/],
    602 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Material Elétrico/][shop !~ /electrical/],
    603 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Viveiros/][shop !~ /garden_centre/],
    604 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Ferragens/][shop !~ /hardware/],
    605 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Tatuage(m|ns)/][shop !~ /tattoo/],
    606 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Perfum(aria|es)/][shop !~ /perfumery/],
    607 *[/^(name|name:pt)$/ =~ /^(?i)(?u)([ÓO]p?tica?|Instituto Óptico|Multiopticas|Optivisão|Oculista)/][shop !~ /optician/],
    608 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bEr[óo]tic[oa]?/][shop !~ /erotic/],
    609 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(2ª Mão|Segunda Mão|Artigos Usados)/][shop !~ /second_hand/],
    610 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Loja de Tecidos/][shop !~ /fabric/],
    611 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Roupas?|Pronto[- ]a[- ]Vestir)\b/][shop !~ /clothes/],
    612 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Bershka|C&A|Calvin Klein|Camel|Cortefiel|Foreva|Gant|Guess|H&M|Hugo Boss|Lanidor|Mango|Massimo Dutti|Pull and Bear|RockPort|Sacoor|Springfield|Tiffosi|Tommy Hilfiger|United Colors of Benetton|Zara)\b/][shop !~ /clothes/],
    613 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Ana Salazar|Fátima Lopes|Katty Xiomara|Luís Buchinho|Maria Gambina|Miguel Vieira|Nuno Gama)\b/][shop !~ /fashion/],
    614 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Malas?|Paco Martinez)\b/][shop !~ /bag/],
    615 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Brinquedos|Imaginarium)\b/][shop !~ /toys/],
    616 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Livraria|Bertrand)/][shop !~ /books/],
    617 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bB[ée]b[ée]\b/][shop !~ /baby_goods/],
    618 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bVinhos?\b/][shop !~ /wine/],
    619 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Tapeçaria|Carpete)s?\b/][shop !~ /carpet/],
    620 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(\bFrutas?\b|Frutaria|Legumes)/][shop !~ /greengrocer/],
    621 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Gourmet/][shop !~ /deli/],
    622 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Conveniência/][shop !~ /convenience/],
    623 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Bebidas|Garrafeira)/][shop !~ /beverages/],
    624 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Pneus/][shop !~ /tyres/],
    625 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bDroguaria\b/][shop !~ /chemist/],
    626 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b((Agência de )?Viagens|Top Atlântico)\b/][shop !~ /travel_agency/],
    627 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Agência\s)?Funerária\b/][shop !~ /funeral_directors/],
    628 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Elec?trodomésticos|Rádio Popular|Worten|MediaMarkt)/][shop !~ /electronics/],
    629 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Izi Build|\bAki\b)/][shop !~ /doityourself/],
    630 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Papelaria|Staples)/][shop !~ /stationery/],
    631 *[/^(name|name:pt)$/ =~ /(Loja (Social|Solid[áa]ria)|EMA[ÚU]S|\bREMAR\b)/][shop !~ /charity/],
    632 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Corte Ingl[êe]s|FNAC|IKEA)\b/][shop !~ /department_store/],
    633 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Recheio|Makro|António Teixeira Lopes)\b/][shop !~ /wholesale/],
    634 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Decathlon|Sport Zone)\b/][shop !~ /sports/] {
    635         throwWarning: tr("PT2-Shop rovavelmente deveria ser {0}={1}", "{1.key}", "{1.value}");
    636         fixAdd: "{1.key}={1.value}";
    637 }
    638 
    639 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Centro )?((de )?Inspec?ç(ão|ões)|Inspec?tor|Inspec?ção (Periódica )?de Veículos)/][amenity !~ /vehicle_inspection/],
    640 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bHelipo[rn]to?\b/][aeroway !~ /helipad/],
    641 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Sub-?estação/][power !~ /substation/],
    642 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Centro|Pavilhão) Comunitário/][amenity !~ /community_centre/],
    643 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bMotel\b/][tourism !~ /motel/],
    644 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bViveiros\b/][landuse !~ /plant_nursery/],
    645 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bAterro\b/][landuse !~ /landfill/],
    646 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bSalinas?\b/][landuse !~ /salt_pond/],
    647 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Tipografia|Gráfica|Serigrafia)\b/][amenity !~ /printer/],
    648 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Metere?ol[óo][gj]ica/][man_made !~ /monitoring_station/],
    649 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Chamin[ée]/][man_made !~ /chimney/],
    650 *[/^(name|name:pt)$/ =~ /^(?i)(?u)pipeline/][man_made !~ /pipeline/],
    651 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bSilos?\b/][man_made !~ /silo/],
    652 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Moinhos? (de |a |movido a |d')?[ÁA]gua/][man_made !~ /watermill/],
    653 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Moinhos? (de |a |movido a |d')?Vento/][man_made !~ /windmill/],
    654 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(E\.?T\.?A\.?R\.?|Estação de Tratamento de Águas Residuais)\b/][man_made !~ /wastewater_plant/],
    655 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bForte\b/][historic !~ /fort/],
    656 *[/^(name|name:pt)$/ =~ /^(?i)(?u)memorial/][historic !~ /memorial/],
    657 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Mosteiro/][!amenity][historic !~ /monastery/],
    658 *[/^(name|name:pt)$/ =~ /^(?i)(?u)t[úu]mulo/][historic !~ /tomb/],
    659 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Polícia|G\.?N\.?R\.?|P\.?S\.?P\.?|Esquadra)\b/][amenity !~ /police/],
    660 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Cinema|Lusomundo)\b/][amenity !~ /cinema/],
    661 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Parque (de )?Campismo\b/][tourism !~ /camp_site/],
    662 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Catedral/][building !~ /cathedral/],
    663 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Mesquita/][building !~ /mosque/],
    664 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Sinagoga/][building !~ /synagogue/],
    665 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Sapateiro/][craft !~ /shoemaker/],
    666 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Carpint(eiro|aria)/][craft !~ /carpenter/],
    667 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Ferreiro/][craft !~ /blacksmith/],
    668 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Eletricista/][craft !~ /electrician/],
    669 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Serralh(eiro|aria)/][craft !~ /metal_construction/],
    670 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Picheleiro|Canalisador)/][craft !~ /plumber/],
    671 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Alfaiate|Costureira)/][craft !~ /tailor/],
    672 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Catt?ering/][craft !~ /caterer/],
    673 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Construçáo Naval|(Construtor(es)?|Estaleiros?) Nava(l|is))/][craft !~ /boatbuilder/],
    674 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Espírita/][denomination !~ /spiritist/],
    675 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Adventista/][denomination !~ /seventh_day_adventist/],
    676 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Anglicana/][denomination !~ /anglican/],
    677 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja Bap?tista/][denomination !~ /baptist/],
    678 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Evangélica/][denomination !~ /evangelical/],
    679 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Metodista/][denomination !~ /methodist/],
    680 *[/^(name|name:pt)$/ =~ /^(?i)(?u)M[óo]rmon/][denomination !~ /mormon/],
    681 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Testemunhas de Jeová/][denomination !~ /jehovahs_witness/],
    682 *[/^(name|name:pt)$/ =~ /^(?i)(?u)sucat(a|eiro)/][industrial !~ /auto_wrecker/],
    683 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(W\.?C\.?|Casas?(de )? Banho)\b/][amenity !~ /toilets/],
    684 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bCoreto\b/][leisure !~ /bandstand/] {
    685         throwWarning: tr("PT2-Provavelmente deveria ser {0}={1}", "{1.key}", "{1.value}");
    686         fixAdd: "{1.key}={1.value}";
    687 }
    688 
    689 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)\b(Cabeleireir[ao]|Barbe(iro|aria))\b/][shop !~ /hairdresser/][!highway][!railway][!boundary][!place] {
    690         throwWarning: tr("PT2-Loja de artesanato deve ter shop=hairdresser");
    691                 fixAdd: "shop=hairdresser";
    692 }
    693 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Artesanato/][shop !~ /craft/][!highway][!railway][!boundary][!place] {
    694         throwWarning: tr("PT2-Loja de artesanato deve ter shop=craft");
    695                 fixAdd: "shop=craft";
    696 }
    697 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Velas/][shop = yes][shop !~ /candles/] {
    698         throwWarning: tr("PT2-Loja de velas deve ter shop=candles");
    699                 fixAdd: "shop=candles";
    700 }
    701 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Discoteca/][amenity != nightclub] {
    702         throwWarning: tr("PT2-Provavelmente deveria ser {0}={1}", "{1.key}", "{1.value}");
    703         fixAdd: "{1.key}={1.value}";
    704 }
    705 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(casa das )?Tintas\b/][shop][shop != paint] {
    706         throwWarning: tr("PT2-Loja de tintas deve ter shop=paint");
    707                 fixAdd: "shop=paint";
    708 }
    709 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bArmazém\b/][building][building != warehouse][!highway][!boundary][!place][!shop] {
    710         throwWarning: tr("PT2-Edifício utilizado como armazém deve ter building=warehouse");
    711                 fixAdd: "building=warehouse";
    712 }
    713 node[name =~ /(?i)(?u)(Candeeiro|Poste) (de )?(Iluminação|Elec?tricidade)/][highway != street_lamp][!boundary][!place] {
    714         throwWarning: tr("PT2-Poste de Iluminação deve ter highway=street_lamp");
    715                 fixAdd: "highway=street_lamp";
    716 }
    717 *[man_made=street_lamp] {
    718         throwWarning: tr("PT2-Etiqueta errada de poste de iluminação, deve ser highway=street_lamp");
    719         fixChangeKey: "man_made => highway";
    720 }
    721 node[amenity=street_lamp][!boundary][!place] {
    722         throwWarning: tr("PT2-Poste de Iluminação deve ter highway=street_lamp e não amenity=street_lamp");
    723         fixChangeKey: "amenity => highway";
    724 }
    725 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Iluminação|Candee?iros)\b/][/^(name|name:pt)$/ !~ /(?i)(?u)(Candeeiro|Poste) (de )?Iluminação/][shop != lamps][!highway][!boundary][!place] {
    726         throwWarning: tr("PT2-Loja de candeeiros deve ter shop=lamps");
    727                 fixAdd: "shop=lamps";
    728 }
    729 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Sapataria|Rockport)\b/][shop != shoes][!highway][!boundary][!place] {
    730         throwWarning: tr("PT2-Sapataria deve ter shop=shoes");
    731                 fixAdd: "shop=shoes";
    732 }
    733 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Nike|Adidas|ASICS|FILA|Puma|Reebok)\b/][shop != shoes][shoes != sport][!highway][!boundary][!place] {
    734         throwWarning: tr("PT2-Loja de sapatilhas deve ter shop=shoes e shoes=sport");
    735                 fixAdd: "shop=shoes";
    736                 fixAdd: "shoes=sport";
    737 }
    738 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Relógios|Boutique dos Relógios)\b/][shop !~ /^(watches|jewelry)$/][!highway][!boundary][!place] {
    739         throwWarning: tr("PT2-Relojoaria deve ter shop=watches ou shop=watches;jewelry se for também joalharia");
    740 }
    741 *[/^(name|name:pt)$/ =~ /^(?i)(?u)talho/][shop != butcher][!highway][!boundary][!place] {
    742         throwWarning: tr("PT2-Talho deve ter shop=butcher");
    743                 fixAdd: "shop=butcher";
    744 }
    745 *[/^(name|name:pt)$/ =~ /^(?i)(?u)monumento/][historic != monument][!highway][!boundary][!place][!shop] {
    746         throwWarning: tr("PT2-Monumento deve ter historic=monument");
    747                 fixAdd: "historic=monument";
    748 }
    749 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Serração/][craft != sawmill][!highway][!boundary][!place] {
    750         throwWarning: tr("PT2-Serração deve ter craft=sawmill");
    751                 fixAdd: "craft=sawmill";
    752 }
    753 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Represa|Açude)\b/][waterway != weir][!highway][!boundary][!place][!shop] {
    754         throwWarning: tr("PT2-Represa ou Açude deve ter waterway=weir");
    755                 fixAdd: "waterway=weir";
    756 }
    757 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Queda de Água|Cascata|Catarata)s?\b/][waterway != waterfall][!highway][!boundary][!place][!shop] {
    758         throwWarning: tr("PT2-Queda de Água, Cascata ou Catarata deve ter waterway=waterfall");
    759                 fixAdd: "waterway=waterfall";
    760 }
    761 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Barragem\b/][waterway != dam][!highway][!boundary][!place][!shop] {
    762         throwWarning: tr("PT2-Barragem deve ter waterway=dam");
    763                 fixAdd: "waterway=dam";
    764 }
    765 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Albufeira\b/][natural != water][!highway][!boundary][!place][!shop],
    766 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Albufeira\b/][water != reservoir][!highway][!boundary][!place][!shop] {
    767         throwWarning: tr("PT2-Albufeira deve ter water=reservoir e natural=water");
    768                 fixAdd: "water=reservoir";
    769                 fixAdd: "natural=water";
    770 }
    771 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\b(Pingo Doce|Minipreço|Continente|\bModelo\b|\bJumbo\b|Carrefour|Pão de Açúcar|E\.Leclerc|Intermarché|Hipermercado|Supermercado|mini[- ]?mercado|Mercearia)\b/][shop != supermarket][amenity != fuel][!highway][!railway][!boundary][!place] {
    772         throwWarning: tr("PT2-Mini, Super e Hipermercados devem ter shop=supermarket");
    773                 fixAdd: "shop=supermarket";
    774 }
    775 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(pelourinho|picota)/][historic != pillory][!highway][!railway][!boundary][!place][!shop] {
    776         throwWarning: tr("PT2-Pelorinho devem ter historic=pillory");
    777                 fixAdd: "historic=pillory";
    778 }
    779 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Centro|Pavilhão|Parque) de Exposições/][amenity != exhibition_centre][amenity != convention_centre][amenity != convention_centre][!highway][!railway][!boundary][!place] {
    780         throwWarning: tr("PT2-Parque de Exposições e similares devem ter amenity=exhibition_centre");
    781                 fixAdd: "amenity=exhibition_centre";
    782 }
    783 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Centro|Pavilhão|Parque) de (Convenções|Congressos)/][amenity != convention_centre][amenity != exhibition_centre][!highway][!railway][!boundary][!place] {
    784         throwWarning: tr("PT2-Centro de Congressos e similares devem ter amenity=convention_centre");
    785                 fixAdd: "amenity=convention_centre";
    786 }
    787 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Joalh[ae]ria|Ourives|Ourivesaria|Pandora)\b/][shop != jewelry][!highway][!railway][!boundary][!place] {
    788         throwWarning: tr("PT2-Ouriversaria deve ter shop=jewelry");
    789                 fixAdd: "shop=jewelry";
    790 }
    791 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Casa do Povo/][amenity != community_centre][!highway][!railway][!boundary][!place][!shop] {
    792         throwWarning: tr("PT2-Casa do Povo deve ter amenity=community_centre");
    793                 fixAdd: "amenity=community_centre";
    794 }
    795 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Seminário/][amenity != school][!highway][!boundary][!place][!shop] {
    796         throwWarning: tr("PT2-Seminário deve ter amenity=school");
    797                 fixAdd: "amenity=school";
    798 }
    799 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Centro|Escola) de Formação/][amenity != school][!highway][!boundary][!place] {
    800         throwWarning: tr("PT2-Centro ou Escola de Formação deve ter amenity=school");
    801                 fixAdd: "amenity=school";
    802 }
    803 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Restaurante?|Petis(cos|queira|\bTasc[ao]\b))/][amenity != restaurant][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    804         throwWarning: tr("PT2-Restaurante ou similar deve ter amenity=restaurant");
    805                 fixAdd: "amenity=restaurant";
    806 }
    807 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Centro Comercial|Shopp?ing Cent(er|re))\b/][shop != mall][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!boundary][!place] {
    808         throwWarning: tr("PT2-Centro Comercial deve ter shop=mall");
    809                 fixAdd: "craft=mall";
    810 }
    811 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(ZON|MEO|NOS|Cabovisão|Vodafone)\b/][name][office!=telecommunication][shop!=mobile_phone][man_made!=tower] {
    812         throwWarning: tr("PT2-Verificar: pode ser shop=mobile_phone ou office=telecommunication e function=retail");
    813 }
    814 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Telemóve(l|is)|The Phone House|Ensitel|Worten Mobile)/][shop!=mobile_phone][man_made!=tower] {
    815         throwWarning: tr("PT2-Loja de telemóveis deve ter shop=mobile_phone");
    816                 fixAdd: "shop=mobile_phone";
    817 }
    818 *[/^(name|name:pt)$/ =~ /(?i)(?u)Material Elec?trónico/][shop!=radiotechnics] {
    819         throwWarning: tr("PT2-Loja de material eletrónico deve ter shop=radiotechnics");
    820                 fixAdd: "shop=radiotechnics";
    821 }
    822 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Café\b/][amenity !~ /cafe|restaurant/][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!boundary][!place] {
    823         throwWarning: tr("PT2-Café deve ter amenity=cafe");
    824                 fixAdd: "amenity=cafe";
    825 }
    826 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Pint(or|uras)/][craft != painter][!highway][!boundary][!place] {
    827         throwWarning: tr("PT2-Pintor deve ter craft=painter");
    828                 fixAdd: "craft=painter";
    829 }
    830 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bTeatro\b/][amenity != theatre][/^(name|name:pt)$/ !~ /(?i)(?u)\bCine(-| )?Teatro\b/][!highway][!boundary][!place][!shop] {
    831         throwWarning: tr("PT2-Teatro deve ter amenity=theatre");
    832                 fixAdd: "amenity=theatre";
    833 }
    834 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Prisão|Prisional)\b/][amenity != prison][!highway][!boundary][!place][!shop] {
    835         throwWarning: tr("PT2-Prisão deve ter amenity=prison");
    836                 fixAdd: "amenity=prison";
    837 }
    838 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Embaixada|Consulado)\b/][amenity != embassy][!highway][!boundary][!place][!shop] {
    839         throwWarning: tr("PT2-Embaixada e Consulado deve ter amenity=embassy");
    840                 fixAdd: "amenity=embassy";
    841 }
    842 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bCemitério\b/][landuse != cemetery][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!boundary][!place] {
    843         throwWarning: tr("PT2-Cemitério deve ter landuse=cemetery");
    844                 fixAdd: "landuse=cemetery";
    845 }
    846 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bPraia\b/][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento|Futebol( de)? Praia)\b/][natural != beach][!highway][!shop][!craft][!amenity][!route][!boundary][!place][!shop] {
    847         throwWarning: tr("PT2-Praia deve ter natural=beach");
    848                 fixAdd: "natural=beach";
    849 }
    850 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bBiblioteca?\b/][amenity != library][!highway][!boundary][!place][!shop][!craft][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    851         throwWarning: tr("PT2-Biblioteca deve ter amenity=library");
    852                 fixAdd: "amenity=library";
    853 }
    854 *[landuse][landuse != vineyard][name =~ /(?i)(?u)\bVinhas?\b/] {
    855         throwWarning: tr("PT2-Vinha deve ter landuse=vineyard");
    856                 fixAdd: "landuse=vineyard";
    857 }
    858 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Aparthotel|Hotel|Residencial|Pensão)/][tourism != hotel][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!boundary][!place] {
    859         throwWarning: tr("PT2-Aparthotel, Hotel, Residencial e Pensão deve ter tourism=hotel");
    860                 fixAdd: "tourism=hotel";
    861 }
    862 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Aparthotel|Hotel|Residencial|Pensão)/][building][building != hotel][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!boundary][!place] {
    863         throwWarning: tr("PT2-Edifício de Aparthotel, Hotel, Residencial e Pensão deve ter building=hotel");
    864                 fixAdd: "building=hotel";
    865 }
    866 *[waterway][waterway !~ /river|riverbank|canal/][name =~ /(?i)(?u)Rio/] {
    867         throwWarning: tr("PT2-Rio deve ter waterway=river, riverbank ou canal");
    868                 fixAdd: "waterway=river";
    869 }
    870 *[waterway][waterway != stream][name =~ /(?i)(?u)\bRibeir[oa]\b/] {
    871         throwWarning: tr("PT2-Ribeira deve ter waterway=stream");
    872                 fixAdd: "waterway=stream";
    873 }
    874 *[waterway][waterway != canal][name =~ /(?i)(?u)\bCanal\b/] {
    875         throwWarning: tr("PT2-Canal deve ter waterway=canal");
    876                 fixAdd: "waterway=canal";
    877 }
    878 *[/^(name|name:pt)$/ =~ /(Miradouro|Vista Panorâmica)/][tourism!=viewpoint][!highway][!shop][!craft][!amenity][!boundary][!place][!shop] {
    879         throwWarning: tr("PT2- Miradouro deve ter tourism=viewpoint");
    880                 fixAdd: "tourism=viewpoint";
    881 }
    882 *[/^(name|name:pt)$/ =~ /\bHostel\b/][!highway][tourism!=hostel] {
    883         throwWarning: tr("PT2- Hostel deve ter tourism=hostel");
    884         fixAdd: "tourism=hostel";
    885 }
    886 *[/^(name|name:pt)$/ =~ /^(?i)(?u)\bMuseu\b/][tourism != museum][!highway][!shop][!craft][!amenity][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!boundary][!place] {
    887         throwWarning: tr("PT2- Museu deve ter tourism=museum");
    888         fixAdd: "tourism=museum";
    889 }
    890 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bPedreira\b/][landuse != quarry][!highway][!shop][!craft][!amenity][!boundary][!boundary][!place][!shop] {
    891         throwWarning: tr("PT2- Pedreira deve ter landuse=quarry");
    892         fixAdd: "landuse=quarry";
    893 }
    894 way[highway][!bridge][name =~ /^Ponte/] {
    895                 throwWarning: tr("PT2-Nome Ponte mas sem etiqueta de ponte");
    896         fixAdd: "bridge=yes";
    897                 fixAdd: "layer=1";
    898 }
    899 *[/^(name|name:pt)$/ =~ /^(Quebra-mar|Pontão)/][!man_made=breakwater][!highway][!boundary][!place][!shop] {
    900                 throwWarning: tr("PT2-Pontão deve ter etiqueta man_made=breakwater");
    901         fixAdd: "man_made=breakwater";
    902 }
    903 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja Evangélica/][denomination][denomination != evangelical][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop],
    904 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja Evangélica/][!denomination][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop] {
    905         throwWarning: tr("PT2- Igreja Evangélica deve ter denomination=evangelical");
    906         fixAdd: "denomination=evangelical";
    907 }
    908 
    909 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja\b/][building != church][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop][!amenity],
    910 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja\b/][building != church][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop][amenity=place_of_worship] {
    911         throwWarning: tr("PT2- Igreja deve ter building=church e amenity=place_of_worship");
    912         fixAdd: "building=church";
    913                 fixAdd: "amenity=place_of_worship";
    914 }
    915 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja (Matriz|Paroquial)/][building != church][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop],
    916 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja (Matriz|Paroquial)/][religion != christian][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop],
    917 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja (Matriz|Paroquial)/][amenity != place_of_worship][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop],
    918 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Igreja (Matriz|Paroquial)/][denomination != roman_catholic][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/][!highway][!boundary][!place][!shop] {
    919                 throwWarning: tr("PT2-Igreja deve ter building=church religion=christian, denomination=roman_catholic e amenity=place_of_worship");
    920         fixAdd: "building=church";
    921                 fixAdd: "religion=christian";
    922         fixAdd: "denomination=roman_catholic";
    923                 fixAdd: "amenity=place_of_worship";
    924 }
    925 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Capela/][building != chapel][!highway][!boundary][!boundary][!place][!shop],
    926 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Capela/][religion != christian][!highway][!boundary][!boundary][!place][!shop],
    927 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Capela/][amenity != place_of_worship][!highway][!boundary][!boundary][!place][!shop],
    928 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Capela/][denomination != roman_catholic][!highway][!boundary][!boundary][!place][!shop] {
    929                 throwWarning: tr("PT2-Capela deve ter building=chapel religion=christian, denomination=roman_catholic e amenity=place_of_worship");
    930         fixAdd: "building=chapel";
    931                 fixAdd: "religion=christian";
    932         fixAdd: "denomination=roman_catholic";
    933                 fixAdd: "amenity=place_of_worship";
    934 }
    935 *[shop = yes]{
    936         throwWarning: tr("PT2-Etiqueta shop=yes deve ser mais específica");
    937 }
    938 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Clínica Veterinária|Veterinário)\b/][amenity != veterinary][!shop] {
    939         throwWarning: tr("PT2-Verificar: Clínica Veterinária deve ter amenity=veterinary");
    940                 fixAdd: "amenity=veterinary";
    941 }
    942 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Clínica Dentária|Dentista)\b/][amenity != dentist][!shop] {
    943         throwWarning: tr("PT2-Verificar: Clínica Dentária deve ter amenity=dentist");
    944                 fixAdd: "amenity=dentist";
    945 }
    946 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Clínica( Médica)?/][name][amenity != clinic][/^(name|name:pt)$/ !~ /^(?i)(?u)Clínica (Veterin|(Médico(-|\s))?Dent)ária/][!shop] {
    947         throwWarning: tr("PT2-Verificar: Clínica deve ter amenity=clinic");
    948                 fixAdd: "amenity=clinic";
    949 }
    950 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Tribunal|Palácio da Justiça)/][/^(name|name:pt)$/ !~ /(?i)(?u)(Rua|Avenida|Travessa) d[ao] Tribunal/][name][amenity != courthouse][!highway][!shop][!amenity][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    951         throwWarning: tr("PT2-Tribunal deve ter amenity=courthouse");
    952         fixAdd: "amenity=courthouse";
    953 }
    954 *[name !~ /^Cemitério\s/][name][landuse = cemetery][!highway] {
    955         throwWarning: tr("PT2-O nome do cemitério deve seguir o padrão Cemitério X, pode ser um erro ortográfico");
    956 }
    957 *[name !~ /(Junta de Freguesia( da (Uni|Agregaç)ão)? d[eao]|Câmara Municipal d[eao]) /][name][amenity = townhall][!highway] {
    958         throwWarning: tr("PT2-O nome deve seguir o padrão Junta de Freguesia X ou Câmara Municipal de X, talvez tenha etiqueta errada amenity=townhall");
    959 }
    960 *[name !~ /^Rio /][name][waterway = river] {
    961         throwWarning: tr("PT2-O nome deve seguir o padrão Rio X, ou não é um rio");
    962 }
    963 *[name !~ /^(Ribeir[ao]|Corg[oa]|Córrego|Barroco)/][name][waterway = stream] {
    964         throwWarning: tr("PT2-O nome deve seguir o padrão Ribeiro X, Córrego X, Corgo X");
    965 }
    966 *[waterway][waterway=stream][name =~ /(?i)(?u)\b(Corg[oa]|Córrego)/][!highway][!place][!boundary][!intermittent] {
    967         throwWarning: tr("PT2-Corgo ou Córrego deve ter em princípio intermittent=yes");
    968                 fixAdd: "intermittent=yes";
    969 }
    970 *[name !~ /Parque Campismo/][name][amenity = camp_site][!highway][name !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    971         throwWarning: tr("PT2-O nome deve seguir o padrão Parque de Campismo X ou Parque de Campismo de X");
    972 }
    973 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Centro|Agência) (de )?Emprego/][name][office != employment_agency][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    974         throwWarning: tr("PT2-Centro de Emprego deve ter office=employment_agency");
    975         fixAdd: "office=employment_agency";
    976 }
    977 *[/^(name|name:pt)$/ =~ /(?i)(?u)Advogad[ao]s?/][name][office != lawyer][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    978         throwWarning: tr("PT2-Advogado deve ter office=lawyer");
    979         fixAdd: "office=lawyer";
    980 }
    981 *[/^(name|name:pt)$/ =~ /(?i)(?u)Imobiliária/][name][office != estate_agent][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    982         throwWarning: tr("PT2-Imobiliária deve ter office=estate_agent");
    983         fixAdd: "office=estate_agent";
    984 }
    985 *[/^(name|name:pt)$/ =~ /(?i)(?u)Contabili(sta|dade)/][name][office != accountant][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    986         throwWarning: tr("PT2-Contabilista e Escritório de Contabilidade deve ter office=accountant");
    987         fixAdd: "office=accountant";
    988 }
    989 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Agência (de Publicidade|Publicitária)|Publicidade)/][name][office != advertising_agency][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    990         throwWarning: tr("PT2-Agência de Publicidade deve ter office=advertising_agency");
    991         fixAdd: "office=advertising_agency";
    992 }
    993 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Arquiteto|Escritório de Arquitetura)/][name][office != architect][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    994         throwWarning: tr("PT2-Arquiteto e Escritório de Arquitetura deve ter office=architect");
    995         fixAdd: "office=architect";
    996 }
    997 *[/^(name|name:pt)$/ =~ /(?i)(?u)^Fundação/][name][office != foundation][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    998         throwWarning: tr("PT2-Fundação deve ter office=foundation");
    999         fixAdd: "office=foundation";
    1000 }
    1001 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bJornal\b/][name][office != newspaper][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento|A Loja do Jornal)\b/] {
    1002         throwWarning: tr("PT2-Sede e Filial de Jornal deve ter office=newspaper");
    1003         fixAdd: "office=newspaper";
    1004 }
    1005 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Notári(ad)?o|Notarial)/][name][lawyer != notary][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1006         throwWarning: tr("PT2-Notário e Notariado deve ter lawyer=notary e office=lawyer");
    1007                 fixAdd: "office=lawyer";
    1008         fixAdd: "lawyer=notary";
    1009 }
    1010 *[/^(name|name:pt)$/ =~ /(?i)(?u)Solocitador/][name][lawyer != solicitor][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1011         throwWarning: tr("PT2-Solocitador deve ter lawyer=solicitor e office=lawyer");
    1012                 fixAdd: "office=lawyer";
    1013         fixAdd: "lawyer=solicitor";
    1014 }
    1015 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Partido|PSD|PPD|PEV|PCP|CDS|PCTP|MRPP|POUS|Bloco de Esquerda)\b/][name][office != political_party][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1016         throwWarning: tr("PT2-Sede e Filial de Partido Político deve ter office=political_party");
    1017                 fixAdd: "office=political_party";
    1018 }
    1019 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Repartição de |Serviço de )?Finanças/][name][office != tax][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1020         throwWarning: tr("PT2-Finanças deve ter office=tax");
    1021                 fixAdd: "office=tax";
    1022 }
    1023 *[/^(name|name:pt)$/ =~ /(?i)(?u)Comissão (de )?de Protec?ção (de )?Crianças e Jovens/][name][office != government][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1024         throwWarning: tr("PT2-Comissão de Protecção de Crianças e Jovens deve ter office=government");
    1025                 fixAdd: "office=government";
    1026 }
    1027 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Registo Civil|Conservatória)/][name][office != government][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1028         throwWarning: tr("PT2-Conservatória deve ter office=government");
    1029                 fixAdd: "office=government";
    1030 }
    1031 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Segurança Social|Ministério d(e|as)|Direção(-|\s)?Geral)/][name][office != government][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1032         throwWarning: tr("PT2-Falta etiqueta office=government");
    1033                 fixAdd: "office=government";
    1034 }
    1035 *[/^(name|name:pt)$/ =~ /(?i)(?u)Assembleia Municipal/][name][office != administrative][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1036         throwWarning: tr("PT2-Assembleia Municipal deve ter office=administrative");
    1037                 fixAdd: "office=administrative";
    1038 }
    1039 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Agência de )?Viagens/][name][office != travel_agent][!highway][!boundary][!place] {
    1040         throwWarning: tr("PT2-Agência de Viagens deve ter office=travel_agent");
    1041                 fixAdd: "office=travel_agent";
    1042 }
    1043 *[/^(name|name:pt)$/ =~ /(?i)(?u)Câmbio/][name][amenity != bureau_de_change][!highway][!boundary][!place] {
    1044         throwWarning: tr("PT2-Agência de Câmbio deve ter amenity=bureau_de_change");
    1045                 fixAdd: "amenity=bureau_de_change";
    1046 }
    1047 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Castelo/][name][historic != castle][!highway][!boundary][!place][!shop][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1048         throwWarning: tr("PT2-Castelo deve ter historic=castle");
    1049                 fixAdd: "historic=castle";
    1050 }
    1051 *[/^(name|name:pt)$/ =~ /^(?i)(?u)alminhas/][name][historic != wayside_shrine][!highway][!public_transport][!boundary][!place][!shop] {
    1052         throwWarning: tr("PT2-Alminhas deve ter historic=wayside_shrine");
    1053                 fixAdd: "historic=wayside_shrine";
    1054                 fixAdd: "religion=christian";
    1055                 fixAdd: "denomination=roman_catholic";
    1056 }
    1057 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bBanco\b/][name][amenity != bank][amenity != atm][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1058         throwWarning: tr("PT2-Banco financeiro deve ter amenity=bank");
    1059                 fixAdd: "amenity=bank";
    1060 }
    1061 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b((Caixa\s)?ATM|Caixa Multi-?Banco|MB)\b/][name][amenity != atm] {
    1062         throwWarning: tr("PT2-Caixa MultiBanco deve ter amenity=atm");
    1063                 fixAdd: "amenity=atm";
    1064 }
    1065 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bCanil\b/][name][amenity != animal_shelter][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1066         throwWarning: tr("PT2-Canil deve ter amenity=animal_shelter");
    1067                 fixAdd: "amenity=animal_shelter";
    1068 }
    1069 *[/^(name|name:pt)$/ =~ /(?i)(?u)Crematório/][name][amenity != crematorium][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1070         throwWarning: tr("PT2-Crematório deve ter amenity=crematorium");
    1071                 fixAdd: "amenity=crematorium";
    1072 }
    1073 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bCripta\b/][name][amenity != crypt][!highway][!boundary][!place] {
    1074         throwWarning: tr("PT2-Cripta deve ter amenity=crypt");
    1075                 fixAdd: "amenity=crypt";
    1076 }
    1077 *[/^(name|name:pt)$/ =~ /(?i)(?u)Ginásio/][name][amenity != gym][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1078         throwWarning: tr("PT2-Ginásio deve ter amenity=gym, retirar outras etiquetas como leisure=sports_centre, sport=gymnastics, etc.");
    1079                 fixAdd: "amenity=gym";
    1080 }
    1081 *[/^(name|name:pt)$/ =~ /(?i)(?u)Marco (de |dos )?C(orreio|TT)/][name][amenity != post_box] {
    1082         throwWarning: tr("PT2-Marco de Correio deve ter amenity=post_box");
    1083                 fixAdd: "amenity=post_box";
    1084 }
    1085 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bC(orreio|TT)\b/][name][amenity !~ /post_box|post_office/][!highway][!boundary][!place][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1086         throwWarning: tr("PT2-Nome com Correio ou CTT mas sem etiqueta amenity=post_box ou post_office ");
    1087 }
    1088 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Telefone Público|Cabine Telefónica)/][name][amenity != telephone] {
    1089         throwWarning: tr("PT2-Telefone Público deve ter amenity=telephone");
    1090                 fixAdd: "amenity=telephone";
    1091 }
    1092 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Caixote (d[oe] |para( o)? )?Lixos?$/][name][amenity != waste_basket] {
    1093         throwWarning: tr("PT2-Caixote do Lixo deve ter amenity=waste_basket");
    1094                 fixAdd: "amenity=waste_basket";
    1095 }
    1096 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Contentor (d[oe] |para( o)? )?Lixos?$/][name][amenity != waste_disposal] {
    1097         throwWarning: tr("PT2-Contentor do Lixo deve ter amenity=waste_disposal");
    1098                 fixAdd: "amenity=waste_disposal";
    1099 }
    1100 *[/^(name|name:pt)$/ =~ /(?i)(?u)Residências? Universitárias?/][name][building != dormitory][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1101         throwWarning: tr("PT2-Residência Universitária deve ter building=dormitory");
    1102                 fixAdd: "building=dormitory";
    1103 }
    1104 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Zona Industrial|Parque Empresarial)/][name][landuse != industrial][!highway] {
    1105         throwWarning: tr("PT2-Zona Industrial deve ter landuse=industrial");
    1106                 fixAdd: "landuse=industrial";
    1107 }
    1108 *[/^(name|name:pt)$/ =~ /(?i)(?u)Sanatório/][name][amenity != sanatorium][!highway] {
    1109         throwWarning: tr("PT2-Sanatório deve ter amenity=sanatorium");
    1110                 fixAdd: "amenity=sanatorium";
    1111 }
    1112 *[/^(name|name:pt)$/ =~ /(?i)(?u)ru[íi]nas?/][name][building != ruins][!highway] {
    1113         throwWarning: tr("PT2-Edifício em ruínas deve ter building=ruins e se for histórico adicionar historic=ruins");
    1114                 fixAdd: "building=ruins";
    1115 }
    1116 *[/^(name|name:pt|note)$/ =~ /(?i)(?u)(Take(\s|-)?A(\s|-)?way)/][name][takeaway != yes] {
    1117         throwWarning: tr("PT2-Restaurante Take a Way deve ter takeaway=yes Se for apenas para take a way adicionar takeaway=only");
    1118                 fixAdd: "takeaway=yes";
    1119 }
    1120 *[/^(name|name:pt)$/ =~ /(?i)(?u)Pizz?a(ria|s)/][name][cuisine != pizza][!highway] {
    1121         throwWarning: tr("PT2-Pizzaria deve ter cuisine=pizza");
    1122                 fixAdd: "cuisine=pizza";
    1123                 fixAdd: "amenity=restaurant";
    1124 }
    1125 *[/^(name|name:pt)$/ =~ /(?i)(?u)Churras(caria|queira|co)/][name][cuisine != barbecue][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1126         throwWarning: tr("PT2-Churrasqueira deve ter cuisine=barbecue");
    1127                 fixAdd: "cuisine=barbecue";
    1128                 fixAdd: "amenity=restaurant";
    1129 }
    1130 *[/^(name|name:pt)$/ =~ /(?i)(?u)kebab/][name][cuisine != kebab][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1131         throwWarning: tr("PT2-Restaurante kebab deve ter cuisine=kebab");
    1132                 fixAdd: "cuisine=kebab";
    1133                 fixAdd: "amenity=restaurant";
    1134 }
    1135 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bSopas?\b/][name][cuisine != soup][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1136         throwWarning: tr("PT2-Restaurante de sopas deve ter cuisine=soup");
    1137                 fixAdd: "cuisine=soup";
    1138                 fixAdd: "amenity=restaurant";
    1139 }
    1140 *[/^(name|name:pt)$/ =~ /(?i)(?u)Marisqueira/][name][cuisine != fish][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1141         throwWarning: tr("PT2-Marisqueira deve ter cuisine=fish");
    1142                 fixAdd: "cuisine=fish";
    1143                 fixAdd: "amenity=restaurant";
    1144 }
    1145 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bSandes?\b/][name][cuisine != sandwich][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1146         throwWarning: tr("PT2-Restaurante de sandes deve ter cuisine=sandwich");
    1147                 fixAdd: "cuisine=sandwich";
    1148                 fixAdd: "amenity=restaurant";
    1149 }
    1150 node[place] < way {
    1151         throwWarning: tr("PT2-Nós de place não devem estar ligados a linhas, usar Mais Ferramentas -> Extrair Nó do módulo utilsplugin2");
    1152 }
    1153 node[shop][amenity!=fuel] < way {
    1154         throwWarning: tr("PT2-Nós de shop não devem estar ligados a linhas");
    1155 }
    1156 node[amenity][amenity !~ /^(parking_entrance|fuel|car_wash|parking|atm|ferry_terminal|toilets|clock)$/] < way {
    1157         throwWarning: tr("PT2-Alguns nós de amenity não devem estar ligados a linhas");
    1158 }
    1159 node[amenity = bus_station] < way[!highway],
    1160 node[highway = bus_stop] < way[!highway] {
    1161         throwWarning: tr("PT2-Nós de paragens ou estações de autocarro não devem estar ligados a linhas a não ser que sejam estradas");
    1162 }
    1163 node[amenity][amenity = parking] < way {
    1164         throwWarning: tr("PT2-Nó de parque de estacionamento deve ser transformado numa área");
    1165 }
    1166 node[tourism][tourism !~ /viewpoint|attraction|artwork/] < way {
    1167         throwWarning: tr("PT2-Alguns nós de tourism não devem estar ligados a linhas");
    1168 }
    1169 node[craft] < way {
    1170         throwWarning: tr("PT2-Nós de craft não devem estar ligados a linhas");
    1171 }
    1172 node[office] < way {
    1173         throwWarning: tr("PT2-Nós de office não devem estar ligados a linhas");
    1174 }
    1175 node[leisure][leisure != slipway] < way {
    1176         throwWarning: tr("PT2-Nós de leisure não devem estar ligados a linhas");
    1177 }
    1178 node[man_made][man_made !~ /surveillance/] < way {
    1179         throwWarning: tr("PT2-Alguns nós de man_made não devem estar ligados a linhas");
    1180 }
    1181 node[natural][natural !~ /cape|spring/] < way {
    1182         throwWarning: tr("PT2-Alguns nós de natural não devem estar ligados a linhas");
    1183 }
    1184 node[sport] < way {
    1185         throwWarning: tr("PT2-Nós de sport não devem estar ligados a linhas");
    1186 }
    1187 node[military] < way {
    1188         throwWarning: tr("PT2-Nós de military não devem estar ligados a linhas");
    1189 }
    1190 node[building][building !~ /entrance/] < way {
    1191         throwWarning: tr("PT2-Alguns nós de building não devem estar ligados a linhas");
    1192 }
    1193 node[historic] < way {
    1194         throwWarning: tr("PT2-Nós de historic não devem estar ligados a linhas");
    1195 }
    1196 node[landuse] < way {
    1197         throwWarning: tr("PT2-Nós de landuse não devem estar ligados a linhas");
    1198 }
    1199 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Stande?|Automóveis|Concessionário)\b/][shop != car] {
    1200         throwWarning: tr("PT2-Reparador de Automóveis deve ter shop=car_repair");
    1201                 fixAdd: "shop=car_repair";
    1202 }
    1203 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Repara(ção|ções|dor|dores) (de )? Auto(móveis)?|Car Service|Oficina)/][name][shop != car_repair][!highway][!boundary][!place][!amenity] {
    1204         throwWarning: tr("PT2-Reparador de Automóveis deve ter shop=car_repair");
    1205                 fixAdd: "shop=car_repair";
    1206 }
    1207 *[/^(name|name:pt)$/ =~ /(?i)(?u)Lavagem/][name][amenity != car_wash] {
    1208         throwWarning: tr("PT2-Local de Lavagem de Automóveis deve ter amenity=car_wash");
    1209                 fixAdd: "amenity=car_wash";
    1210 }
    1211 *[/^(name|name:pt)$/ =~ /(?i)(?u)Park Meter/][name][amenity != vending_machine] {
    1212         throwWarning: tr("PT2-Máquina de bilhetes de parque de estacionamento deve ter amenity=vending_machine e vending=parking_tickets");
    1213                 fixAdd: "amenity=vending_machine";
    1214                 fixAdd: "vending=parking_tickets";
    1215 }
    1216 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Hospital|Centro Hospitalar|(Centro|Extensão) (de )?Saúde) /][name][building][building != hospital] {
    1217         throwWarning: tr("PT2-Edifício de Hospital ou Centro de Saúde deve ter building=hospital");
    1218                 fixAdd: "building=hospital";
    1219 }
    1220 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Hospital|Centro Hospitalar|(Centro|Extensão) (de )?Saúde) /][name][amenity][amenity != hospital][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1221         throwWarning: tr("PT2-Hospital e Centro de Saúde deve ter amenity=hospital");
    1222                 fixAdd: "amenity=hospital";
    1223 }
    1224 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Seguros|Ass?eguradora?|Seguradora|Açoreana|Aegon|Allianz|AXA|Bonança|Fidelidade|Generali|Groupama|Liberty|Mapfre|Médis|Multicare|Tranquilidade|Zurich)\b/][name][office != insurance][!highway] {
    1225         throwWarning: tr("PT2-Seguradora e Mediador de Seguros deve ter office=insurance");
    1226                 fixAdd: "office=insurance";
    1227 }
    1228 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][building != transformer_tower],
    1229 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][power != substation],
    1230 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][substation != minor_distribution],
    1231 *[building = transformer_tower][name][power != substation],
    1232 *[building = transformer_tower][name][substation != minor_distribution] {
    1233         throwWarning: tr("PT2-Cabine da EDP deve ter building=transformer_tower power=substation e substation=minor_distribution");
    1234                 fixAdd: "building=transformer_tower";
    1235                 fixAdd: "power=substation";
    1236                 fixAdd: "substation=minor_distribution";
    1237 }
    1238 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Estação (de Comboios|Ferroviária|(da)? CP|(dos )?Caminhos de Ferro) /][name][building != train_station][public_transport != station] {
    1239         throwWarning: tr("PT2-Estação de Comboios sem building=train_station ou public_transport=station");
    1240                 fixAdd: "building=train_station";
    1241                 fixAdd: "public_transport=station";
    1242 }
    1243 *[/^(name|name:pt)$/ =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/],
    1244 *[description =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/],
    1245 *[note =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/],
    1246 *[designation =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/] {
    1247         throwWarning: tr("PT2-Estabelecimento encerrado deve ter disused:shop=yes, disused:amenity=bar...");
    1248 }
    1249 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/],
    1250 *[description =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/],
    1251 *[note =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/],
    1252 *[designation =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/] {
    1253         throwWarning: tr("PT2-Edifício degradado deve ter abandoned:building=yes ou abandoned:shop=yes...");
    1254 }
    1255 *[/name|description|note|designation/ =~ /(?i)(?u)((Equipamentos?|Materia(is|l)) Hospitalar|instrumentos médicos)/][shop != medical_supply] {
    1256         throwWarning: tr("PT2-Empresa de venda de material hospitalar deve ter shop=medical_supply");
    1257                 fixAdd: "shop=medical_supply";
    1258 }
    1259 *[/^(name|name:pt)$/ =~ /(?i)(?u)Noiv[ao]s/][shop=clothes][!clothes] {
    1260         throwWarning: tr("PT2-Loja de roupa para noivas deve ter clothes=wedding");
    1261                 fixAdd: "clothes=wedding";
    1262 }
    1263 *[/^(name|name:pt|note)$/ =~ /(?i)(?u)\b(Zara Kids|Lanidor J[úu]nior|Roupa (de |para )?Crianças?)\b/][shop=clothes][!clothes] {
    1264         throwWarning: tr("PT2-Loja de roupa para criança deve ter clothes=children");
    1265                 fixAdd: "clothes=children";
    1266 }
    1267 *[/^(name|name:pt|note)$/ =~ /(?i)(?u)\b(Roupa (de |para )?B[ée]b[ée]s?)\b/][shop=clothes][!clothes] {
    1268         throwWarning: tr("PT2-Loja de roupa para bebé deve ter clothes=babies");
    1269                 fixAdd: "clothes=babies";
    1270 }
    1271 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(Salsa|Levi's|Levi Strauss|Pepe Jeans|Lee|W52)\b/][shop=clothes][!clothes] {
    1272         throwWarning: tr("PT2-Loja essencialmente de jeans deve ter clothes=denim");
    1273                 fixAdd: "clothes=denim";
    1274 }
    1275 *[/^(name|name:pt)$/ =~ /(?i)(?u)\b(lingerie|women'secret|Calzedonia|Intimissimi|Loja das Meias)\b/][shop=clothes][!clothes] {
    1276         throwWarning: tr("PT2-Loja de roupa interior,meias,etc. deve ter clothes=underwear");
    1277                 fixAdd: "clothes=underwear";
    1278 }
    1279 *["addr:country"]["addr:country" !~ /^PT$/] {
    1280         throwWarning: tr("PT2-O país na morada deve ter o código PT");
    1281                 fixAdd: "addr:country=PT";
    1282 }
    1283 *[leisure][/^(name|name:pt)$/ =~ /^(?i)(?u)(campo|est(á|a)dio) (de (futebol|desportos?)|desportivo)?$/],
    1284 *[leisure][/^(name|name:pt)$/ =~ /^(?i)(?u)(estádio |Pavilhão )?Gimnodesportivo$/],
    1285 *[leisure=playground][/^(name|name:pt)$/ =~ /^(?i)(?u)Parque Infantil$/],
    1286 *[highway = bus_stop][/^(name|name:pt)$/ =~ /^(?i)(?u)(paragem( d(e|os) autocarros?)|bus stop)?$/],
    1287 *[highway = track][/^(name|name:pt)$/ =~ /^(?i)(?u)Trilhos?$/],
    1288 *[highway = path][/^(name|name:pt)$/ =~ /^(?i)(?u)Trilhos?$/],
    1289 *[highway][/^(name|name:pt)$/ =~ /^(?i)(?u)Estrad[ãa]o( de Terra)?$/],
    1290 *[natural = tree][/^(name|name:pt)$/ =~ /^(?i)(?u)[ÁA]rvores?$/],
    1291 *[amenity = drinking_water][/^(name|name:pt)$/ =~ /^(?i)(?u)(Fonte|Bebedouro)s?$/],
    1292 *[amenity = post_office][/^(name|name:pt)$/ =~ /^(?i)(?u)Correios$/],
    1293 *[amenity = fuel][/^(name|name:pt)$/ =~ /^(?i)(?u)(Estação|Posto|Bombas)(de (Serviço|Combustível|Gasolina))?$/],
    1294 *[amenity = parking][/^(name|name:pt)$/ =~ /^(?i)(?u)(Parque((de )?Estacionamento)?|Estacionamento(( de)? (Carros|Autom[óo]veis)?)?)$/],
    1295 *[amenity = bank][/^(name|name:pt)$/ =~ /^(?i)(?u)Banco$/],
    1296 *[amenity = bench][/^(name|name:pt)$/ =~ /^(?i)(?u)Bancos?$/],
    1297 *[amenity = waste_basket][/^(name|name:pt)$/ =~ /^(?i)(?u)Caixote (d[oe] |para( o)? )?Lixos?$/],
    1298 *[natural = tree][/^(name|name:pt)$/ =~ /^(?i)(?u)[ÁA]rvores?$/],
    1299 *[highway = steps][/^(name|name:pt)$/ =~ /^(?i)(?u)Escadas?$/],
    1300 *[highway = crossing][/^(name|name:pt)$/ =~ /^(?i)(?u)(Passadeira|Zebra)s?$/],
    1301 *[amenity = bench][/^(name|name:pt)$/ =~ /^(?i)(?u)Bancos?$/] {
    1302         throwWarning: tr("PT2-Nome supérfluo ou incompleto");
    1303 }
    1304 node[highway=street_lamp][name] {
    1305         throwWarning: tr("PT2-Poste de Iluminação com nome");
    1306         fixRemove: "name";
    1307 }
    1308 *[building][/^(name|name:pt)$/ =~ /^(?i)(?u)(Habita[çc][ãa]o|Casa|Moradia|Vivenda)?$/] {
    1309         throwWarning: tr("PT2-Nome supérfluo em edifício que deve ter building=house");
    1310         fixAdd: "building=house";
    1311 }
    1312 /* nomes e ruas escritos totalmente em maiúsculo */
    1313 *[/^(name|name:pt)$/ =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/][/^(name|name:pt)$/ !~ /^BP$/][/^(name|name:pt)$/ !~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/],
    1314 *["addr:street" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/] {
    1315         throwWarning: tr("PT2-Verificar:name, name:pt ou addr:street c/letras apenas em maiúsculo, usar short_name e o nome por extenso");
    1316 }
    1317 /* Erro comum como Rua do CRuzeiro */
    1318 *[/^(name|name:pt|addr:street)$/ =~ /[A-Z]{2}[a-z]/] {
    1319         throwWarning: tr("PT2-Verificar: nome ou endereço com 2 letras seguidas em maiúsculo");
    1320 }
    1321 /* lugar possui nome que inicia com "Edifício" mas não possui etiqueta building */
    1322 *[/^(name|name:pt)$/ =~ /^(?i)(?u)edifício/][!building][/^(name|name:pt)$/ !~ /^(?i)(?u)\bEdifício Transparente\b/] {
    1323         throwWarning: tr("PT2-Possível ausência de etiqueta {0}", "{1.key}");
    1324         fixAdd: "building=yes";
    1325 }
    1326 *["addr:postcode"]["addr:postcode" !~ /^[0-9]{4}(-[0-9]{3})?$/],
    1327 *[postal_code][postal_code !~ /^[0-9]{4}(-[0-9]{3})?$/] {
    1328         throwWarning: tr("PT2-Código postal em formato diferente de NNNN-NNN ou NNNN");
    1329 }
    1330 node[surface] {
    1331         throwWarning: tr("PT2-Superfície ({0}) num nó", "{0.key}");
    1332         fixRemove: "{0.key}";
    1333 }
    1334 /* highway/waterway com layer negativo e sem túnel */
    1335 *[highway][layer < 0][!tunnel],
    1336 *[waterway][layer < 0][!tunnel] {
    1337         throwWarning: tr("PT2-Verificar: {0} negativo de {1} com ausência de {2}", "{1.key}", "{0.key}", "{2.key}");
    1338 }
    1339 /* highway/waterway com layer positivo e sem ponte */
    1340 *[highway][layer > 0][!bridge][highway != bus_stop],
    1341 *[waterway][layer > 0][!bridge] {
    1342         throwWarning: tr("PT2-Verificar: {0} positivo de {1} com ausência de {2}", "{1.key}", "{0.key}", "{2.key}");
    1343 }
    1344 way[highway = motorway_junction] {
    1345         throwError: tr("PT2- {0} deve ser utilizado apenas no nó de saída da estrada", "{0.tag}");
    1346         suggestAlternative: "highway=motorway_link";
    1347 }
    1348 way[highway][lanes][lanes !~ /^[1-9]([0-9]*)$/],
    1349 way[highway]["lanes:backward"]["lanes:backward" !~ /^[1-9]([0-9]*)$/],
    1350 way[highway]["lanes:forward"]["lanes:forward" !~ /^[1-9]([0-9]*)$/] {
    1351         throwError: tr("PT2- {0} deve ser um valor inteiro", "{1.key}");
    1352 }
    1353 /* estradas de 2 vias mas apenas com 1 faixa estão provavelmente erradas */
    1354 *[highway][lanes = 1][!oneway?][!junction] {
    1355         throwWarning: tr("PT2- {0} provavelmente deveria ter {1} ≥ 2 ou {2}=yes", "{0.key}", "{1.key}", "{2.key}");
    1356 }
    1357 /* admin_level deve ficar na relação e não no nó do local */
    1358 node[place][admin_level] {
    1359         throwWarning: tr("PT2- {0} deve fazer parte do limite administrativo e não do nó do local", "{1.key}");
    1360 }
    1361 relation[admin_level][!boundary],
    1362 relation[admin_level][boundary][boundary != administrative] {
    1363         throwError: tr("PT2- {0} ausência de boundary=administrative", "{0.key}");
    1364         fixAdd: "boundary=administrative";
    1365 }
    1366 relation[boundary=administrative][!admin_level] {
    1367         throwError: tr("PT2- {0} deve possuir {1}", "{0.tag}", "{1.key}");
    1368 }
    1369 relation[boundary=administrative] > way { set way_in_relation; }
    1370 relation[admin_level] > way { set way_in_relation; }
    1371 way[boundary=administrative][!admin_level]!.way_in_relation {
    1372         throwError: tr("PT2- {0} deve possuir {1}", "{0.tag}", "{1.key}");
    1373 }
    1374 way[admin_level][!boundary]!.way_in_relation,
    1375 way[admin_level][boundary][boundary != administrative]!.way_in_relation {
    1376         throwError: tr("PT2- {0} ausência de boundary=administrative", "{0.key}");
    1377         fixAdd: "boundary=administrative";
    1378 }
    1379 relation[boundary=administrative][type=multipolygon] {
    1380         throwError: tr("PT2-Relação deve ser do tipo ''type=boundary''");
    1381         fixAdd: "type=boundary";
    1382 }
    1383 node[destination],
    1384 relation[destination][type != waterway] {
    1385         throwWarning: tr("PT2- {0} deve-se usar apenas em linhas", "{0.key}");
    1386 }
    1387 /* landuse não deve ter layer */
    1388 *[landuse][layer] {
    1389         throwWarning: tr("PT2-Verificar: {0} não deve ter {1}", "{0.key}", "{1.key}");
    1390 }
    1391 /* path deve utilizar trail_visibility e não tracktype */
    1392 way[highway = path][tracktype] {
    1393         throwWarning: tr("PT2-Uso incorreto de {0}", "{1.key}");
    1394         suggestAlternative: "trail_visibility";
    1395 }
    1396 /* tracktype é uma propriedade de tracks apenas */
    1397 way[highway != track][tracktype] {
    1398         throwWarning: tr("PT2-Usar {0} apenas em {1}={2}", "{1.key}", "{0.key}", "{0.value}");
    1399 }
    1400 /* número de saída de rodovia */
    1401 *[highway=motorway_junction][ref][ref !~ /^[0-9]+( |-)*([A-Z])?$/] {
    1402         throwWarning: tr("PT2-Saída de via ({0}) fora do padrão", "{1.key}");
    1403 }
    1404 *[alt_ref] {
    1405         throwWarning: tr("PT2-O conteúdo de {0} deve fazer parte de ref, separado por ;", "{0.key}");
    1406         suggestAlternative: "ref";
    1407 }
    1408 *[/^(name|name:pt)$/ =~ /^(?i)(?u)pra(ç|cet)a/][!leisure][landuse = grass] {
    1409         throwWarning: tr("PT2-Possível definição errada de praça: {0}", "{2.tag}");
    1410         suggestAlternative: "leisure=park";
    1411 }
    1412 /* layer não faz sentido em outros objetos */
    1413 *[layer][!building][!highway][man_made!=pipeline][!tunnel][!railway][!waterway] {
    1414         throwWarning: tr("PT2-Verificar: possível uso incorreto de layer no objeto, pode ser andar, etiqueta level");
    1415 }
    1416 /* https://github.com/OSMBrasil/validador-josm/issues/54 */
    1417 /* requer JOSM ≥ 7761 */
    1418 *[tourism = motel][amenity != love_hotel],
    1419 *[/^(name|name:pt)$/ =~ /(?i)(?u)\bmotel\b/][amenity != love_hotel] {
    1420         throwWarning: tr("PT2-Ausência de etiqueta ''{0}''", "{1.value}");
    1421         fixAdd: "{1.key}={1.value}";
    1422 }
    1423 *[amenity = love_hotel][tourism][tourism != motel] {
    1424         throwWarning: tr("PT2-Verificar: provavelmente deve ser ''{0}={1}''", "{2.key}", "{2.value}");
    1425 }
    1426 *["building:levels" < 1] {
    1427         throwWarning: tr("PT2-Verificar: {0} com valor inválido", "{0.key}");
    1428 }
    1429 /* deve-se utilizar short_name, name ou official_name ao invés de long_name */
    1430 *[long_name] {
    1431         throwWarning: tr("PT2-Chave inválida: {0}", "{0.key}");
    1432         suggestAlternative: "highway=name";
    1433         suggestAlternative: "highway=short_name";
    1434         suggestAlternative: "highway=official_name";
    1435 }
    1436 /* landuse deve conter algum valor que não seja yes */
    1437 *[landuse?] {
    1438         throwWarning: tr("PT2-Especificar valor correto para {0} em vez de ''{1}''", "{0.key}", tag("landuse"));
    1439 }
    1440 /* vários valores para source devem estar na mesma chave, separados por ';' */
    1441 *[alt_source][source] {
    1442         throwWarning: tr("PT2- {0} deve estar incluído em {1}, separado por '';'' caso necessário", "{0.key}", "{1.key}");
    1443 }
    1444 *[access = permissive] {
    1445         throwWarning: tr("PT2-Verificar: {0} usar só em vias privadas com permissão de acesso e não vias públicas", "{0.tag}");
    1446 }
    1447 *[aeroway][designation =~ /^[A-Z]{4}$/][!icao],
    1448 *[aeroway][ref =~ /^[A-Z]{4}$/][!icao] {
    1449         throwWarning: tr("PT2- {0} provavelmente deve ser utilizado como {1}", "{1.key}", "{2.key}");
    1450         fixChangeKey: "{1.key} => {2.key}";
    1451 }
    1452 *[crossing][!highway][!railway] {
    1453         throwWarning: tr("PT2- crossing deve ser utilizado com highway=crossing, railway=crossing ou highway=traffic_signals");
    1454 }
    1455 node[highway =~ /^(give_way|mini_roundabout|stop|turning_circle)$/][name] {
    1456         throwWarning: tr("PT2-Objeto não deve possuir {0}", "{1.key}");
    1457 }
    1458 way[highway = give_way],
    1459 way[highway = mini_roundabout],
    1460 way[highway = stop],
    1461 way[highway = turning_circle],
    1462 relation[highway = give_way],
    1463 relation[highway = mini_roundabout],
    1464 relation[highway = stop],
    1465 relation[highway = turning_circle] {
    1466         throwWarning: tr("PT2- {0} deve ser utilizado apenas em nós", "{0.tag}");
    1467 }
    1468 /* torres de energia, lombas, câmaras, semáforos etc que não estão ligados a numa via */
    1469 node:unconnected[power = pole],
    1470 node:unconnected[power = tower],
    1471 node:unconnected[highway = speed_camera] {
    1472         throwWarning: tr("PT2- {0} deve fazer parte de uma linha e não isolado", "{1.tag}");
    1473 }
    1474 *[iata = "0"] {
    1475         throwWarning: tr("{0} com valor = {1}", "{0.key}", "{0.value}");
    1476 }
    1477 /* saídas de estradas devem ter nome e/ou referência */
    1478 node[highway = motorway_junction][!name][!ref] {
    1479         throwWarning: tr("PT2- {0} sem pelo menos uma das etiquetas: {1} ou {2}", "{0.value}", "{1.key}", "{2.key}");
    1480 }
    1481 /* provalvemente o tipo dessas vias não deve ser link */
    1482 *[highway $= _link][name =~ /(Alameda|Avenida|Rua|Travessa|Viela) /] {
    1483         throwWarning: tr("PT2-Verificar: via possivelmente errada com {0}", tag("highway"));
    1484 }
    1485 node[noname?] {
    1486         throwWarning: tr("PT2-Verificar: uso suspeito de {0} num nó", "{0.key}");
    1487 }
    1488 /* source estranhamente igual o name */
    1489 *[source = *name] {
    1490         throwWarning: tr("PT2-Verificar: {0} e {1} são iguais", "{0.key}", "{0.value}");
    1491 }
    1492 
    1493 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Junta (de )?Freguesia|Câmara Municipal)/][!highway][amenity!=townhall] {
    1494         throwWarning: tr("PT2-Juntas de Freguesia e Câmaras Municipais deve ter amenity=townhall");
    1495         fixAdd: "amenity=townhall";
    1496 }
    1497 *[vatin][!"ref:vatin"],
    1498 *[nif][!"ref:vatin"],
    1499 *[NIF][!"ref:vatin"],
    1500 *[nipc][!"ref:vatin"],
    1501 *[NIPC][!"ref:vatin"] {
    1502         throwWarning: tr("PT2-Etiqueta errada para Número de Identificaçáo Fiscal, usar ref:vatin=XXX", "{0.key}", "{1.key}");
    1503         fixChangeKey: "{0.key} => {1.key}";
    1504 }
    1505 *["ref:vatin"]["ref:vatin" !~ /^PT[0-9]{9}$/] {
    1506         throwWarning: tr("PT2-Número de Identificaçáo Fiscal tem de ter o formato PTxxxxxxxxx");
    1507 }
    1508 *["phone:pt"][!phone] {
    1509         throwWarning: tr("PT2-Chave de etiqueta mal aplicada phone:pt sem haver etiqueta phone");
    1510         fixChangeKey: "{0.key} => phone";
    1511 }
    1512 node[layer < 0][amenity=parking] {
    1513         throwWarning: tr("PT2-provavelmente é uma entrada/saída parque estac.subterrâneo, usar amenity=parking_entrance e parking=underground");
    1514                 fixAdd: "amenity=parking_entrance";
    1515                 fixAdd: "parking=underground";
    1516 }
    1517 node[layer > 0][amenity=parking] {
    1518         throwWarning: tr("PT2-provavelmente é uma entrada/saída parque estac.no topo de 1 edifício, usar amenity=parking_entrance e parking=rooftop");
    1519                 fixAdd: "amenity=parking_entrance";
    1520                 fixAdd: "parking=rooftop";
    1521 }
    1522 node:unconnected[amenity=parking_entrance] {
    1523         throwWarning: tr("PT2-Nós de entradas ou saídas de parque estac. devem estar ligados a 1 estrada");
    1524 }
    1525 *[tourism][tourism != attraction][layer],
    1526 *[shop][layer],
    1527 *[amenity][amenity != place_of_worship][parking !~ /underground|rooftop/][building!=roof][layer],
    1528 *[craft][layer],
    1529 *[office][layer],
    1530 *[leisure][layer],
    1531 *[man_made][man_made !~ /surveillance|pipeline/][layer],
    1532 *[natural][layer],
    1533 *[sport][layer],
    1534 *[military][layer],
    1535 *["building:part"][layer],
    1536 *[historic][historic !~ /(monument|city_gate)/][layer],
    1537 *[landuse][layer] {
    1538         throwWarning: tr("PT2-provavelmente layer devia ser level - nº de andar ou não ter layer");
    1539                 fixChangeKey: "layer => level";
    1540 }
    1541 *[natural][shop] {
    1542         throwWarning: tr("PT2-natural junto com shop");
    1543 }
    1544 *[/name|brand|operator/ =~ /\b(5 (à s|[áa]\s[Ss])ec)\b/] {
    1545         throwWarning: tr("PT2-O correto é 5 à Sec");
    1546 }
    1547 *[amenity=fuel][!brand][name =~ /^(?i)(?u)(Agip|BP|Cepsa|Esso|Exxon|Galp|Mobil|Repsol|Shell|Total)?$/] {
    1548         throwWarning: tr("PT2-Marca de combustível deve estar em brand e não name. O posto costuma ser de privados e com nome extenso ");
    1549                 fixChangeKey: "name => brand";
    1550 }
    1551 *[/name|brand|operator/ =~ /\b(galp|GALP)\b/] {
    1552         throwWarning: tr("PT2-O correto é Galp e não GALP ou galp");
    1553 }
    1554 *[/name|brand|operator/ =~ /\b(CEPSA|cepsa)\b/] {
    1555         throwWarning: tr("PT2-O correto é Cepsa e não CEPSA ou cepsa");
    1556 }
    1557 *[/name|brand|operator/ =~ /\b(ESSO|esso)\b/] {
    1558         throwWarning: tr("PT2-O correto é Esso e não ESSO ou esso");
    1559 }
    1560 *[/name|brand|operator/ =~ /\b(EXX?ON|exx?on)\b/] {
    1561         throwWarning: tr("PT2-O correto é Exxon e não EXXON ou exxon");
    1562 }
    1563 *[/name|brand|operator/ =~ /\b(REPSOL|repsol)\b/] {
    1564         throwWarning: tr("PT2-O correto é Repsol e não REPSOL ou repsol");
    1565 }
    1566 *[/name|brand|operator/ =~ /\b(SHELL?|shell?)\b/] {
    1567         throwWarning: tr("PT2-O correto é Shell e não SHELL ou shell");
    1568 }
    1569 *[amenity=fuel][/name|brand|operator/ =~ /\b(TOTAL|total)\b/] {
    1570         throwWarning: tr("PT2-O correto é Total e não TOTAL ou total");
    1571 }
    1572 *[amenity=fuel][/name|brand|operator/ =~ /\bMul?ti(\s?[óÓ]p?|\s?[ÓO]|\sOp?)ticas?\b/] {
    1573         throwWarning: tr("PT2-O correto é MultiOpticas");
    1574 }
    1575 *[amenity=fuel][/name|brand|operator/ =~ /\b(L[ÍI]DE?L|l[íi]de?l|Líde?l)[Ee]?\b/] {
    1576         throwWarning: tr("PT2-O correto é Lidl");
    1577 }
    1578 *[name][name =~ /\b(L[ÍI]DE?L|l[íi]de?l|Líde?l)[Ee]?\b/] {
    1579         throwWarning: tr("PT2-O correto é Lidl");
    1580 }
    1581 *[wikipedia][wikipedia !~ /^pt:/] {
    1582         throwWarning: tr("PT2-Usar prefixo em português (pt:) em {0}", "{0.key}");
    1583 }
    1584 area[/natural|landuse/] > node { set .area_ligada_via }
    1585 way[highway][highway != pedestrian][!barrier] > node.area_ligada_via,
    1586 way[railway] > node.area_ligada_via {
    1587         throwWarning: tr("PT2-Não é recomendável ter áreas de landuse ou natural ligados a estradas, rios ou ferrovias");
    1588 }
    1589 way[man_made=pipeline] > node { set .is_in_pipeline }
    1590 way[highway] > node.is_in_pipeline,
    1591 way[railway] > node.is_in_pipeline {
    1592         throwWarning: tr("PT2-Pipeline não deve estar ligado a estradas ou ferrovias");
    1593 }
    1594 /* utilizar ; como separador de valores em source */
    1595 *[source =~ /,/],
    1596 *["source:ref" =~ /,/],
    1597 *["source:name" =~ /,/] {
    1598         throwOther: tr("utilizar ; como separador de valores em {0}", "{0.key}");
    1599 }
    1600 *[/^(name|name:pt)$/ =~ /(?i)(?u)Posto (de )?Turismo/][name][information != office][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)\b(Parque|Estacionamento)\b/] {
    1601         throwWarning: tr("PT2-Posto de Turismo deve ter information=office e tourism=information");
    1602         fixAdd: "information=office";
    1603                 fixAdd: "tourism=information";
    1604 }
    1605 *[capacity=0] {
    1606         throwWarning: tr("PT2-Valor provavelmente errado de capacity=0");
    1607         fixRemove: "capacity";
    1608 }
    1609 *[ele][ele !~ /^[1-9][0-9]?[0-9]?[0-9]?(\.[0-9][0-9]?[0-9]?)?$/],
    1610 *[ele > 2351],
    1611 *[ele < 0] {
    1612         throwWarning: tr("PT2-ele tem de ser um número em metros e sem unidade de medida entre 0 e 2351 em Portugal");
    1613 }
    1614 area[name =~ /^(?i)(?u)Adro/][name][landuse != churchyard][!railway][!boundary][!place] {
    1615         throwWarning: tr("PT2-Adro de igreja deve ter landuse=churchyard");
    1616         fixAdd: "landuse=churchyard";
    1617 }
    1618 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Cruzeiro/][name][historic != wayside_cross][!railway][!highway][!boundary][!place][!shop][!amenity] {
    1619         throwWarning: tr("PT2-Cruzeiro ou cruz em zonas urbanas deve ter historic=wayside_cross");
    1620         fixAdd: "historic=wayside_cross";
    1621 }
    1622 *["addr:housenumber" =~ /^(?i)(?u)n\.?º?/] {
    1623         throwWarning: tr("PT2-addr:housenumber não deve ter NºX, apenas o número de porta");
    1624 }
    1625 *[building][ele][ele =~ /^[1-3]?[0-9]$/] {
    1626         throwWarning: tr("PT2-Verificar: edifício com etiqueta ele com valores que parecem nº de andares, pode ser building:levels");
    1627         fixChangeKey: "ele => building:levels";
    1628 }
    1629 *[religion=christian][denomination=catholic][!route] {
    1630         throwWarning: tr("PT2-Locais de oração cristãos devem ter denomination=roman_catholic e não a genérica denomination=catholic");
    1631         fixAdd: "denomination=roman_catholic";
    1632 }
    1633 *[name][name =~ /^(?i)(?u)Depósito de Água/][man_made][man_made != water_tower][!railway][!highway][!boundary][!place][!shop][!amenity] {
    1634         throwWarning: tr("PT2-Depósito de água deve ter man_made=water_tower");
    1635         fixAdd: "man_made=water_tower";
    1636 }
    1637 *[name][name =~ /^(?i)(?u)Estádio/][leisure][leisure != stadium] {
    1638         throwWarning: tr("PT2-Estádio deve ter leisure=stadium");
    1639         fixAdd: "leisure=stadium";
    1640 }
    1641 *[name][name =~ /^".*"$/] {
    1642         throwWarning: tr("PT2-Nome que começa e termina com aspas, não são necessárias aspas para marcas ou nomes");
    1643 }
    1644 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Oliveiras?/][natural=tree][!genus],
    1645 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Oliveiras?/][natural=tree][!leaf_cycle] {
    1646         throwWarning: tr("PT2-Oliveira deve ter genus=Olea e leaf_cycle=evergreen, retirar nome");
    1647                 fixAdd: "genus=Olea";
    1648                 fixAdd: "leaf_cycle=evergreen";
    1649 }
    1650 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!genus],
    1651 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!leaf_cycle],
    1652 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!leaf_type] {
    1653         throwWarning: tr("PT2-Plátano deve ter genus=Platanus, leaf_cycle=deciduous e leaf_type=broadleaved, retirar nome");
    1654                 fixAdd: "genus=Platanus";
    1655                 fixAdd: "leaf_cycle=deciduous";
    1656                 fixAdd: "leaf_type=broadleaved";
    1657 }
    1658 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!genus],
    1659 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!leaf_cycle],
    1660 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!leaf_type] {
    1661         throwWarning: tr("PT2-Pinheiro deve ter genus=Pinus, leaf_cycle=evergreen e leaf_type=needleleaved, retirar nome");
    1662                 fixAdd: "genus=Pinus";
    1663                 fixAdd: "leaf_cycle=evergreen";
    1664                 fixAdd: "leaf_type=needleleaved";
    1665 }
    1666 node[addr:housenumber] ∈ *[building][addr:housenumber] {
    1667         throwWarning: tr("PT2-Nó com addr:housenumber dentro de edifício com addr:housenumber");
    1668 }
    1669 *["addr:housenumber"]["addr:housenumber" =~ /^(\+351)?\s?[0-9]{3}\s?[0-9]{3}[0-9]{3}((;\s?\+351\s?[0-9]{3}\s?[0-9]{3}[0-9]{3})?)+$/] {
    1670         throwWarning: tr("PT2-addr:housenumber com nº de telefone em vez de nº de porta");
    1671         fixChangeKey: "addr:housenumber => contact:phone";
    1672 }
    1673 *["addr:housenumber"]["addr:housenumber" =~ /(\\|-|,|\.|\/)/] {
    1674         throwWarning: tr("PT2-Os nº em addr:housenumber devem ser separados por ponto e vírgula apenas");
    1675 }
    1676 *[name][name =~ /^(?i)(?u)((isto é Um )?Teste|(Para |A )?Testar|Experiência)$/] {
    1677         throwWarning: tr("PT2-Verificar: nome Teste");
    1678 }
    1679 *[!ref][name][name =~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/] {
    1680                 throwWarning: tr("PT2-name c/ referência da estrada mas sem ref, passar name para ref");
    1681                 fixChangeKey: "name => ref";
    1682 }
    1683 *[!ref]["name:pt"]["name:pt" =~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/] {
    1684                 throwWarning: tr("PT2-name:pt c/ referência da estrada mas sem ref, passar name:pt para ref");
    1685                 fixChangeKey: "name:pt => ref";
    1686 }
     303
    1687304
    1688305
     
    1704321/* é útil ter o destino das saídas de estradas */
    1705322*[highway = motorway_link][!destination] {
    1706         throwOther: tr("PT2- {0} sem etiqueta {1}", "{0.value}", "{1.key}");
     323        throwOther: tr("Portugal- {0} sem etiqueta {1}", "{0.value}", "{1.key}");
    1707324}
    1708325*[place = city][!population],
    1709326*[place = town][!population],
    1710327*[place = village][!population] {
    1711         throwOther: tr("PT2- {0} sem etiqueta de população", "{0.value}");
     328        throwOther: tr("Portugal- {0} sem etiqueta de população", "{0.value}");
    1712329}
    1713330*[place][place !~ /hamlet|island|isolated_dwelling|neighbourhood|suburb|village/][population < 10000] {
    1714         throwOther: tr("PT2-Verificar: local com <10.000 hab. deve ser village, EXCEPTO sedes de freguesia!");
     331        throwOther: tr("Portugal-Verificar: local com <10.000 hab. deve ser village, EXCEPTO sedes de freguesia!");
    1715332        fixAdd: "place=village";
    1716333}
    1717334*[place =~ /city|hamlet|isolated_dwelling|village/][population >= 10000][population < 100000] {
    1718         throwOther: tr("PT2-Verificar: local com 10.000-100.000 hab. deve ser town, EXCEPTO sedes de concelho!");
     335        throwOther: tr("Portugal-Verificar: local com 10.000-100.000 hab. deve ser town, EXCEPTO sedes de concelho!");
    1719336        fixAdd: "place=town";
    1720337}
    1721338*[place =~ /hamlet|isolated_dwelling|town|village/][population >= 100000] {
    1722         throwOther: tr("PT2-Verificar: local com +100.000 hab. deve ser city, EXCEPTO capitais de distrito!");
     339        throwOther: tr("Portugal-Verificar: local com +100.000 hab. deve ser city, EXCEPTO capitais de distrito!");
    1723340        fixAdd: "place=city";
    1724341}
    1725342/* é bom especificar o tipo de torre */
    1726343node[man_made = tower][!"tower:type"] {
    1727         throwOther: tr("PT2-Ausência do tipo de torre ({0})", "{1.key}");
     344        throwOther: tr("Portugal-Ausência do tipo de torre ({0})", "{1.key}");
    1728345}
    1729346*[highway][highway !~ /construction|give_way|motorway_junction|proposed|raceway|speed_camera|stop/][!wheelchair],
    1730347*[building][!wheelchair] {
    1731         throwOther: tr("PT2- {0} sem etiqueta de acessibilidade ({1})", "{0.key}", "{1.key}");
     348        throwOther: tr("Portugal- {0} sem etiqueta de acessibilidade ({1})", "{0.key}", "{1.key}");
    1732349}
    1733350*[route = ferry][!duration] {
    1734         throwOther: tr("PT2-Ausência do tempo de duração ({0}) do ferry", "{1.key}");
     351        throwOther: tr("Portugal-Ausência do tempo de duração ({0}) do ferry", "{1.key}");
    1735352}
    1736353*[highway = service][!service] {
    1737         throwOther: tr("PT2-Ausência do tipo de serviço ({0}) na {1}", "{1.key}", "{0.key}");
     354        throwOther: tr("Portugal-Ausência do tipo de serviço ({0}) na {1}", "{1.key}", "{0.key}");
    1738355}
    1739356*[highway = track][!tracktype] {
    1740         throwOther: tr("PT2-Ausência do tipo de track ({0}) na {1}", "{1.key}", "{0.key}");
     357        throwOther: tr("Portugal-Ausência do tipo de track ({0}) na {1}", "{1.key}", "{0.key}");
    1741358}
    1742359/* número de faixas apenas para rodovias maiores e links */
    1743360way[highway =~ /motorway|trunk|primary|secondary|tertiary/][!lanes],
    1744361way[highway $= _link][!lanes] {
    1745         throwOther: tr("PT2- {0} sem número de faixas ({1}) definido", "{0.key}", "{1.key}");
     362        throwOther: tr("Portugal- {0} sem número de faixas ({1}) definido", "{0.key}", "{1.key}");
    1746363}
    1747364way[highway][!surface][highway != bus_stop] {
    1748         throwOther: tr("PT2- {0} sem superfície ({1}) definida", "{0.key}", "{1.key}");
     365        throwOther: tr("Portugal- {0} sem superfície ({1}) definida", "{0.key}", "{1.key}");
    1749366}
    1750367node[amenity = place_of_worship] {
    1751         throwOther: tr("PT2- local de oração num nó, é melhor num edifício");
     368        throwOther: tr("Portugal- local de oração num nó, é melhor num edifício");
    1752369}
    1753370node[highway=speed_camera][!maxspeed],
     
    1755372relation[enforcement=maxheight][!maxheight],
    1756373relation[enforcement=maxweight][!maxweight] {
    1757         throwOther: tr("PT2-Adicionar {0} ao {1}", "{1.key}", "{0.tag}");
     374        throwOther: tr("Portugal-Adicionar {0} ao {1}", "{1.key}", "{0.tag}");
    1758375}
    1759376}}}
     377}}}