Changes between Version 39 and Version 40 of Rules/Portuguese-Errors-PT2


Ignore:
Timestamp:
2024-09-14T01:19:29+02:00 (17 months ago)
Author:
skyper
Comment:

add [inside("PT")] to limit validation to Portugal

Legend:

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

    v39 v40  
    44{{{
    55#!rule
    6 
    76
    87meta
     
    3231
    3332 /* ERROS */
    34 *[designation] {
     33*[designation][inside("PT")] {
    3534        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.");
    3635}
    37 *[highway=bridleway] {
     36*[highway=bridleway][inside("PT")] {
    3837        throwError: tr("PORTUGAL- bridleway não se aplica em Portugal, usar highway=path");
    39                 fixAdd: "highway=path";
    40 }
    41 *[amenity=biergarten] {
     38        fixAdd: "highway=path";
     39}
     40*[amenity=biergarten][inside("PT")] {
    4241        throwError: tr("PORTUGAL- amenity=biergarten não se aplica em Portugal, usar amenity=pub");
    4342}
    44 *[railway=monorail] {
     43*[railway=monorail][inside("PT")] {
    4544        throwError: tr("PORTUGAL-Não existem monocarris em Portugal, será ferrovia?");
    4645}
    47 *[shop=bike] {
     46*[shop=bike][inside("PT")] {
    4847        throwError: tr("PORTUGAL-Não é shop=bike mas sim shop=bicycle");
    4948        fixAdd: "shop=bicycle";
    5049}
    51 *[amenity=association] {
     50*[amenity=association][inside("PT")] {
    5251        throwError: tr("PORTUGAL-Não é amenity=association mas sim office=association");
    5352        fixChangeKey: "amenity => office";
     
    5554
    5655
    57 
    5856 /* AVISOS */
    59 *[/name|name:pt|addr:street|addr:city/ =~ /\s([dn]as?|[dn]os?|de)\s[a-z]/] {
    60                 throwWarning: tr("PORTUGAL-name, addr:street ou addr:city com minúscula após da,no,de,e...");
    61 }
    62 *[/name|name:pt|addr:street|addr:city/ =~ /\s([DN]as?|[DN]os?|De)\s[a-zA-Z]|\sE\s/][/^(name|name:pt)$/ !~ /^European route/] {
    63                 throwWarning: tr("PORTUGAL-name, addr:street ou addr:city com maiúscula em Da,No,De,E...");
     57*[/name|name:pt|addr:street|addr:city/ =~ /\s([dn]as?|[dn]os?|de)\s[a-z]/][inside("PT")] {
     58        throwWarning: tr("PORTUGAL-name, addr:street ou addr:city com minúscula após da,no,de,e...");
     59}
     60*[/name|name:pt|addr:street|addr:city/ =~ /\s([DN]as?|[DN]os?|De)\s[a-zA-Z]|\sE\s/][/^(name|name:pt)$/ !~ /^European route/][inside("PT")] {
     61        throwWarning: tr("PORTUGAL-name, addr:street ou addr:city com maiúscula em Da,No,De,E...");
    6462}
    6563/* nomes e ruas escritos totalmente em maiúsculo */
    66 *[/^(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]/],
    67 *["addr:street" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/],
    68 *["addr:city" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/] {
     64*[/^(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]/][inside("PT")],
     65*["addr:street" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/][inside("PT")],
     66*["addr:city" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/][inside("PT")] {
    6967        throwWarning: tr("PORTUGAL-name ou name:pt c/letras apenas em maiúsculo, usar short_name e o nome por extenso se for sigla");
    7068}
    71 *["addr:street" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/],
    72 *["addr:city" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/] {
     69*["addr:street" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/][inside("PT")],
     70*["addr:city" =~ /^[A-Z0-9 ]*[A-Z]+[A-Z0-9 ]*$/][inside("PT")] {
    7371        throwWarning: tr("PORTUGAL-addr:street ou addr:city c/letras apenas em maiúsculo");
    7472}
    75 *[/^(name|name:pt|addr:street|addr:city)$/ =~ /^[a-z]/] {
    76                 throwWarning: tr("PORTUGAL-name, addr:street ou addr:city que começa em minúscula");
    77 }
    78 *[/name|name:pt|addr:street|addr:city/ =~ /^([!,:;_ºª+=]|\.|\?|\*|-)/] {
    79                 throwWarning: tr("PORTUGAL-name, addr:street ou addr:city que começa com pontuação");
    80 }
    81 *[name =~ /\s\s/],
    82 *["name:pt" =~ /\s\s/],
    83 *[short_name =~ /\s\s/],
    84 *[official_name =~ /\s\s/],
    85 *[loc_name =~ /\s\s/],
    86 *[old_name =~ /\s\s/],
    87 *[int_name =~ /\s\s/],
    88 *[nat_name =~ /\s\s/],
    89 *[reg_name =~ /\s\s/],
    90 *["addr:street" =~ /\s\s/],
    91 *[description =~ /\s\s/],
    92 *[ref =~ /\s\s/],
    93 *[old_ref  =~ /\s\s/] {
    94                 throwWarning: tr("PORTUGAL- {0} com 2 espaços em branco consecutivos", "{0.key}");
    95 }
    96 *[website =~ /\s/][name !~ /(\s;|;\s)/] {
    97                 throwWarning: tr("PORTUGAL-website com espaço em branco");
    98 }
    99 *[/name|name:pt|addr:street/ =~ /(?i)(?u)(?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/] {
    100                 throwWarning: tr("PORTUGAL-Nome errado, sem nome...");
    101 }
    102 way[highway][/name|name:pt|addr:street/ =~ /(-Os-|\sos\s)/] {
    103                 throwWarning: tr("PORTUGAL-Corrigir nome ou endereço com o correto X-os-X");
    104 }
    105 way[highway][/name|name:pt|addr:street/ =~ /-O-/] {
    106                 throwWarning: tr("PORTUGAL-Corrigir nome ou endereço com o correto em minúscula X-o-X");
    107 }
    108 way[highway][/name|name:pt|addr:street/ =~ /-A-/] {
    109                 throwWarning: tr("PORTUGAL-Corrigir nome ou endereço com o correto em minúscula X-a-X");
    110 }
    111 way[highway][/name|name:pt|addr:street/ =~ /(?i)(?u)(?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)/] {
    112                 throwWarning: tr("PORTUGAL-name ou addr:street com palavras por traduzir ou mudar a etiqueta");
    113 }
    114 way[highway][/^(name|name:pt)$/ =~ /(?U)\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)(\.| )/] {
    115                 throwWarning: tr("PORTUGAL-Nome abreviado");
    116 }
    117 *["addr:city" =~ /(?U)\b[A-Z](\.| )/] {
    118                 throwWarning: tr("PORTUGAL-addr:city abreviado");
    119 }
    120 *["addr:street" =~ /(?U)\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)(\.| )/] {
    121                 throwWarning: tr("PORTUGAL-addr:street abreviado");
    122 }
    123 *["addr:street" =~ /(?U)\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\./] {
    124                 throwWarning: tr("PORTUGAL-addr:street abreviado_");
    125 }
    126 *[/^(name|name:pt)$/ =~ /(?U)\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\./] {
    127                 throwWarning: tr("PORTUGAL-Nome abreviado-NÃO alterar se for nome de estabelecimento");
    128 }
    129 *[/name|name:pt|short_name|official_name|loc_name|old_name|int_name|nat_name|reg_name|addr:street|description|ref|old_ref/ =~ /[?!.,:;]{2,}/] {
    130                 throwWarning: tr("PORTUGAL-Pontuação repetida 2 ou mais vezes");
    131 }
    132 *[/^(name|name:pt)$/ =~ /\s['"»«ºª]\s/] {
    133                 throwWarning: tr("PORTUGAL-Nome com acentuação isolada entre espaços");
    134 }
    135 *[name =~ /[`~^¨]/],
    136 *["name:pt" =~ /[`~^¨]/],
    137 *[short_name =~ /[`~^¨]/],
    138 *[official_name =~ /[`~^¨]/],
    139 *[alt_name =~ /[`~^¨]/],
    140 *[loc_name =~ /[`~^¨]/],
    141 *[old_name =~ /[`~^¨]/],
    142 *[int_name =~ /[`~^¨]/],
    143 *[nat_name =~ /[`~^¨]/],
    144 *[reg_name =~ /[`~^¨]/],
    145 *["addr:street" =~ /[`~^¨]/],
    146 *[description =~ /[`~^¨]/],
    147 *[ref =~ /[`~^¨]/],
    148 *[old_ref =~ /[`~^¨]/],
    149 *[phone =~ /[`~^¨]/],
    150 *["contact:phone" =~ /[`~^¨]/],
    151 *[fax =~ /[`~^¨]/],
    152 *["contact:fax" =~ /[`~^¨]/],
    153 *[website =~ /[`~^¨]/],
    154 *["addr:housename" =~ /[`~^¨]/],
    155 *[sorting_name =~ /[`~^¨]/] {
    156                 throwWarning: tr("PORTUGAL- {0} com caracteres estranhos", "{0.key}");
    157 }
    158 *[name =~ /[´]/],
    159 *["name:pt" =~ /[´]/],
    160 *[short_name =~ /[´]/],
    161 *[official_name =~ /[´]/],
    162 *[alt_name =~ /[´]/],
    163 *[loc_name =~ /[´]/],
    164 *[old_name =~ /[´]/],
    165 *[int_name =~ /[´]/],
    166 *[nat_name =~ /[´]/],
    167 *[reg_name =~ /[´]/],
    168 *["addr:street" =~ /[´]/],
    169 *[description =~ /[´]/],
    170 *[ref =~ /[´]/],
    171 *[old_ref =~ /[´]/],
    172 *[phone =~ /[´]/],
    173 *["contact:phone" =~ /[´]/],
    174 *[fax =~ /[´]/],
    175 *["contact:fax" =~ /[´]/],
    176 *[website =~ /[´]/],
    177 *["addr:housename" =~ /[´]/],
    178 *["addr:street" =~ /[´]/],
    179 *[sorting_name =~ /[´]/] {
    180                 throwWarning: tr("PORTUGAL- {0} com acento agudo e não apóstrofo", "{0.key}");
     73*[/^(name|name:pt|addr:street|addr:city)$/ =~ /^[a-z]/][inside("PT")] {
     74        throwWarning: tr("PORTUGAL-name, addr:street ou addr:city que começa em minúscula");
     75}
     76*[/name|name:pt|addr:street|addr:city/ =~ /^([!,:;_ºª+=]|\.|\?|\*|-)/][inside("PT")] {
     77        throwWarning: tr("PORTUGAL-name, addr:street ou addr:city que começa com pontuação");
     78}
     79*[name =~ /\s\s/][inside("PT")],
     80*["name:pt" =~ /\s\s/][inside("PT")],
     81*[short_name =~ /\s\s/][inside("PT")],
     82*[official_name =~ /\s\s/][inside("PT")],
     83*[loc_name =~ /\s\s/][inside("PT")],
     84*[old_name =~ /\s\s/][inside("PT")],
     85*[int_name =~ /\s\s/][inside("PT")],
     86*[nat_name =~ /\s\s/][inside("PT")],
     87*[reg_name =~ /\s\s/][inside("PT")],
     88*["addr:street" =~ /\s\s/][inside("PT")],
     89*[description =~ /\s\s/][inside("PT")],
     90*[ref =~ /\s\s/][inside("PT")],
     91*[old_ref  =~ /\s\s/][inside("PT")] {
     92        throwWarning: tr("PORTUGAL- {0} com 2 espaços em branco consecutivos", "{0.key}");
     93}
     94*[website =~ /\s/][name !~ /(\s;|;\s)/][inside("PT")] {
     95        throwWarning: tr("PORTUGAL-website com espaço em branco");
     96}
     97*[/name|name:pt|addr:street/ =~ /(?i)(?u)(?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/][inside("PT")] {
     98        throwWarning: tr("PORTUGAL-Nome errado, sem nome...");
     99}
     100way[highway][/name|name:pt|addr:street/ =~ /(-Os-|\sos\s)/][inside("PT")] {
     101        throwWarning: tr("PORTUGAL-Corrigir nome ou endereço com o correto X-os-X");
     102}
     103way[highway][/name|name:pt|addr:street/ =~ /-O-/][inside("PT")] {
     104        throwWarning: tr("PORTUGAL-Corrigir nome ou endereço com o correto em minúscula X-o-X");
     105}
     106way[highway][/name|name:pt|addr:street/ =~ /-A-/][inside("PT")] {
     107        throwWarning: tr("PORTUGAL-Corrigir nome ou endereço com o correto em minúscula X-a-X");
     108}
     109way[highway][/name|name:pt|addr:street/ =~ /(?i)(?u)(?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)/][inside("PT")] {
     110        throwWarning: tr("PORTUGAL-name ou addr:street com palavras por traduzir ou mudar a etiqueta");
     111}
     112way[highway][/^(name|name:pt)$/ =~ /(?U)\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)(\.| )/][inside("PT")] {
     113        throwWarning: tr("PORTUGAL-Nome abreviado");
     114}
     115*["addr:city" =~ /(?U)\b[A-Z](\.| )/][inside("PT")] {
     116        throwWarning: tr("PORTUGAL-addr:city abreviado");
     117}
     118*["addr:street" =~ /(?U)\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)(\.| )/][inside("PT")] {
     119        throwWarning: tr("PORTUGAL-addr:street abreviado");
     120}
     121*["addr:street" =~ /(?U)\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\./][inside("PT")] {
     122        throwWarning: tr("PORTUGAL-addr:street abreviado_");
     123}
     124*[/^(name|name:pt)$/ =~ /(?U)\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\./][inside("PT")] {
     125        throwWarning: tr("PORTUGAL-Nome abreviado-NÃO alterar se for nome de estabelecimento");
     126}
     127*[/name|name:pt|short_name|official_name|loc_name|old_name|int_name|nat_name|reg_name|addr:street|description|ref|old_ref/ =~ /[?!.,:;]{2,}/][inside("PT")] {
     128        throwWarning: tr("PORTUGAL-Pontuação repetida 2 ou mais vezes");
     129}
     130*[/^(name|name:pt)$/ =~ /\s['"»«ºª]\s/][inside("PT")] {
     131        throwWarning: tr("PORTUGAL-Nome com acentuação isolada entre espaços");
     132}
     133*[name =~ /[`~^¨]/][inside("PT")],
     134*["name:pt" =~ /[`~^¨]/][inside("PT")],
     135*[short_name =~ /[`~^¨]/][inside("PT")],
     136*[official_name =~ /[`~^¨]/][inside("PT")],
     137*[alt_name =~ /[`~^¨]/][inside("PT")],
     138*[loc_name =~ /[`~^¨]/][inside("PT")],
     139*[old_name =~ /[`~^¨]/][inside("PT")],
     140*[int_name =~ /[`~^¨]/][inside("PT")],
     141*[nat_name =~ /[`~^¨]/][inside("PT")],
     142*[reg_name =~ /[`~^¨]/][inside("PT")],
     143*["addr:street" =~ /[`~^¨]/][inside("PT")],
     144*[description =~ /[`~^¨]/][inside("PT")],
     145*[ref =~ /[`~^¨]/][inside("PT")],
     146*[old_ref =~ /[`~^¨]/][inside("PT")],
     147*[phone =~ /[`~^¨]/][inside("PT")],
     148*["contact:phone" =~ /[`~^¨]/][inside("PT")],
     149*[fax =~ /[`~^¨]/][inside("PT")],
     150*["contact:fax" =~ /[`~^¨]/][inside("PT")],
     151*[website =~ /[`~^¨]/][inside("PT")],
     152*["addr:housename" =~ /[`~^¨]/][inside("PT")],
     153*[sorting_name =~ /[`~^¨]/][inside("PT")] {
     154        throwWarning: tr("PORTUGAL- {0} com caracteres estranhos", "{0.key}");
     155}
     156*[name =~ /[´]/][inside("PT")],
     157*["name:pt" =~ /[´]/][inside("PT")],
     158*[short_name =~ /[´]/][inside("PT")],
     159*[official_name =~ /[´]/][inside("PT")],
     160*[alt_name =~ /[´]/][inside("PT")],
     161*[loc_name =~ /[´]/][inside("PT")],
     162*[old_name =~ /[´]/][inside("PT")],
     163*[int_name =~ /[´]/][inside("PT")],
     164*[nat_name =~ /[´]/][inside("PT")],
     165*[reg_name =~ /[´]/][inside("PT")],
     166*["addr:street" =~ /[´]/][inside("PT")],
     167*[description =~ /[´]/][inside("PT")],
     168*[ref =~ /[´]/][inside("PT")],
     169*[old_ref =~ /[´]/][inside("PT")],
     170*[phone =~ /[´]/][inside("PT")],
     171*["contact:phone" =~ /[´]/][inside("PT")],
     172*[fax =~ /[´]/][inside("PT")],
     173*["contact:fax" =~ /[´]/][inside("PT")],
     174*[website =~ /[´]/][inside("PT")],
     175*["addr:housename" =~ /[´]/][inside("PT")],
     176*["addr:street" =~ /[´]/][inside("PT")],
     177*[sorting_name =~ /[´]/][inside("PT")] {
     178        throwWarning: tr("PORTUGAL- {0} com acento agudo e não apóstrofo", "{0.key}");
    181179}
    182180/* erros ortográficos principais
     
    184182 * em alguns locais corretamente porque utiliza a grafia antiga, por isso não se deve colocar estes casos aqui.
    185183 */
    186 *[/^(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)(?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?\b|\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|Folclorico|\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)/] {
    187                 throwWarning: tr("PORTUGAL-Verificar:name ou similares, addr:street, addr:city com erros ortográficos");
     184*[/^(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)(?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?\b|\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|Folclorico|\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)/][inside("PT")] {
     185        throwWarning: tr("PORTUGAL-Verificar:name ou similares, addr:street, addr:city com erros ortográficos");
    188186}
    189187/* possui nome de rua mas não tem etiqueta de highway */
    190 way[!highway][!railway][route != road][type !~ /route|street/][name][name =~ /^(?i)(?u)(?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] {
     188way[!highway][!railway][route != road][type !~ /route|street/][name][name =~ /^(?i)(?u)(?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][inside("PT")] {
    191189        throwWarning: tr("PORTUGAL-Verificar: com nome de via mas sem etiqueta de {0}", "{0.key}");
    192190}
    193 *[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))?$/][highway!=bus_stop] {
     191*[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))?$/][highway!=bus_stop][inside("PT")] {
    194192        throwWarning: tr("PORTUGAL-Via com nome incompleto");
    195193}
    196 *[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))?$/] {
    197                 throwWarning: tr("PORTUGAL-Via pública erradamente de serviço");
     194*[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))?$/][inside("PT")] {
     195        throwWarning: tr("PORTUGAL-Via pública erradamente de serviço");
    198196}
    199197/* endereços com nome de via errado */
    200 *["addr:street"]["addr:street" !~ /^(?U)((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)/] {
     198*["addr:street"]["addr:street" !~ /^(?U)((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)/][inside("PT")] {
    201199        throwWarning: tr("PORTUGAL- addr:street sem nome de via, errado, abreviado ou com maiúsculas");
    202200}
    203201/* nome de vias sem logradouro correto */
    204 *[highway][highway !~ /bridleway|bus_stop|cycleway|crossing|elevator|footway|give_way|motorway_junction|path|raceway|speed_camera|steps|stop/][name][name !~ /^(?U)((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]/] {
     202*[highway][highway !~ /bridleway|bus_stop|cycleway|crossing|elevator|footway|give_way|motorway_junction|path|raceway|speed_camera|steps|stop/][name][name !~ /^(?U)((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]/][inside("PT")] {
    205203        throwWarning: tr("PORTUGAL- {0} sem nome de via, errado, abreviado ou maiúsculas no nome", "{0.key}");
    206204}
    207205/* casos de marcas complicadas em que o melhor é indicar o nome correto na mensagem */
    208 *[name =~ /(?i)(?u)[Dd]ecat?[hl]?on/] {
    209                 throwWarning: tr("PORTUGAL-Correto é Decathlon");
    210 }
    211 *[name =~ /(?i)(?u)Ma?c(\s[Dd]onald('|\s)?|[Dd]onald\s?)s/] {
    212                 throwWarning: tr("PORTUGAL-Correto é McDonalds com apóstrofo antes do s");
    213 }
    214 *[name =~ /(?U)\b(Axxa|axx?a)\b/] {
    215                 throwWarning: tr("PORTUGAL-Correto é Axa");
    216 }
    217 *[name =~ /(?i)(?u)(?U)\b[Ll]evi[ ´]?s\b/] {
    218                 throwWarning: tr("PORTUGAL-Correto é Levis com apóstrofo antes do s");
    219 }
    220 *[name =~ /[Pp]ingo((D|d| d)ol?ce| Dolce)/] {
    221                 throwWarning: tr("PORTUGAL-Correto é Pingo Doce");
    222 }
    223 *[name =~ /(?U)\b([Ee][Ll]ecler[kqc]|[Ee]\.[Ll]ecler[kq]|e\.Leclerc|E\.leclerc)/] {
    224                 throwWarning: tr("PORTUGAL-Correto é E.Leclerc");
    225 }
    226 *[name =~ /(?i)(?u)(Inter?(\s|-)?ma(rche|x[ée]|r?che)|Inter(\s|-)marché)/] {
    227                 throwWarning: tr("PORTUGAL-Correto é Intermarché");
    228 }
    229 *[name =~ /(?i)(?u)(?U)\bDeca(te?lo[mn]|th?lom|tom)\b/] {
    230                 throwWarning: tr("PORTUGAL-Correto é Decathlon");
    231 }
    232 *[name =~ /(mini(\s|-)?preço|Mini(\s|-)preço|Mini(\s|-)?Preço|MINI(\s|-)?PREÇO)/] {
    233                 throwWarning: tr("PORTUGAL-Correto é Minipreço");
    234 }
    235 *[name =~ /(?i)(?u)(^Phone House|[FP]one Hou[zs]e)/] {
    236                 throwWarning: tr("PORTUGAL-Correto é The Phone House");
    237 }
    238 *[name =~ /Banco Português de Investimento/][!short_name] {
    239                 throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=BPI");
     206*[name =~ /(?i)(?u)[Dd]ecat?[hl]?on/][inside("PT")] {
     207        throwWarning: tr("PORTUGAL-Correto é Decathlon");
     208}
     209*[name =~ /(?i)(?u)Ma?c(\s[Dd]onald('|\s)?|[Dd]onald\s?)s/][inside("PT")] {
     210        throwWarning: tr("PORTUGAL-Correto é McDonalds com apóstrofo antes do s");
     211}
     212*[name =~ /(?U)\b(Axxa|axx?a)\b/][inside("PT")] {
     213        throwWarning: tr("PORTUGAL-Correto é Axa");
     214}
     215*[name =~ /(?i)(?u)(?U)\b[Ll]evi[ ´]?s\b/][inside("PT")] {
     216        throwWarning: tr("PORTUGAL-Correto é Levis com apóstrofo antes do s");
     217}
     218*[name =~ /[Pp]ingo((D|d| d)ol?ce| Dolce)/][inside("PT")] {
     219        throwWarning: tr("PORTUGAL-Correto é Pingo Doce");
     220}
     221*[name =~ /(?U)\b([Ee][Ll]ecler[kqc]|[Ee]\.[Ll]ecler[kq]|e\.Leclerc|E\.leclerc)/][inside("PT")] {
     222        throwWarning: tr("PORTUGAL-Correto é E.Leclerc");
     223}
     224*[name =~ /(?i)(?u)(Inter?(\s|-)?ma(rche|x[ée]|r?che)|Inter(\s|-)marché)/][inside("PT")] {
     225        throwWarning: tr("PORTUGAL-Correto é Intermarché");
     226}
     227*[name =~ /(?i)(?u)(?U)\bDeca(te?lo[mn]|th?lom|tom)\b/][inside("PT")] {
     228        throwWarning: tr("PORTUGAL-Correto é Decathlon");
     229}
     230*[name =~ /(mini(\s|-)?preço|Mini(\s|-)preço|Mini(\s|-)?Preço|MINI(\s|-)?PREÇO)/][inside("PT")] {
     231        throwWarning: tr("PORTUGAL-Correto é Minipreço");
     232}
     233*[name =~ /(?i)(?u)(^Phone House|[FP]one Hou[zs]e)/][inside("PT")] {
     234        throwWarning: tr("PORTUGAL-Correto é The Phone House");
     235}
     236*[name =~ /Banco Português de Investimento/][!short_name][inside("PT")] {
     237        throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=BPI");
    240238        fixAdd: "short_name=BPI";
    241239}
    242 *[name =~ /Caixa Geral de Depósitos/][!short_name] {
    243                 throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=CGD");
     240*[name =~ /Caixa Geral de Depósitos/][!short_name][inside("PT")] {
     241        throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=CGD");
    244242        fixAdd: "short_name=CGD";
    245243}
    246 *[name =~ /Banco Espírito Santo/][!short_name] {
    247                 throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=BES");
     244*[name =~ /Banco Espírito Santo/][!short_name][inside("PT")] {
     245        throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=BES");
    248246        fixAdd: "short_name=BES";
    249247}
    250 *[name =~ /Banco Bilbao Vizcaya Argentaria/][!short_name] {
    251                 throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=BBVA");
     248*[name =~ /Banco Bilbao Vizcaya Argentaria/][!short_name][inside("PT")] {
     249        throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=BBVA");
    252250        fixAdd: "short_name=BBVA";
    253251}
    254 *[name =~ /Guarda Nacional Republicana/][!short_name] {
    255                 throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=GNR");
     252*[name =~ /Guarda Nacional Republicana/][!short_name][inside("PT")] {
     253        throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=GNR");
    256254        fixAdd: "short_name=GNR";
    257255}
    258 *[name =~ /Polícia de Segurança Pública/][!short_name] {
    259                 throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=PSP");
     256*[name =~ /Polícia de Segurança Pública/][!short_name][inside("PT")] {
     257        throwWarning: tr("PORTUGAL-Falta a etiqueta short_name=PSP");
    260258        fixAdd: "short_name=PSP";
    261259}
    262 *[amenity = police][name =~ /^(?i)(?u)P(\.\s?|\s)?S(\.\s?|\s)?P(\.\s?|\s)?$/] {
    263                 throwWarning: tr("PORTUGAL-Nome abreviado de Polícia de Segurança Pública");
    264                 fixAdd: "name=Polícia de Segurança Pública";
    265                 fixAdd: "short_name=PSP";
    266 }
    267 *[amenity = police][name =~ /^(?i)(?u)G(\.\s?|\s)?N(\.\s?|\s)?R(\.\s?|\s)?$/] {
    268                 throwWarning: tr("PORTUGAL-Nome abreviado de Guarda Nacional Republicana");
    269                 fixAdd: "name=Guarda Nacional Republicana";
    270                 fixAdd: "short_name=GNR";
    271 }
    272 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?C(\.\s?|\s)?G(\.\s?|\s)?D(\.\s?|\s)?$/] {
    273                 throwWarning: tr("PORTUGAL-Nome abreviado de Caixa Geral de Depósitos");
    274                 fixAdd: "name=Caixa Geral de Depósitos";
    275                 fixAdd: "short_name=CGD";
    276 }
    277 *[amenity = bank][name =~ /(?i)(?u)Cai((cha) Ge(ne)?ral (de )?Dep[óo]sito|xa Ge(ne)?ral (de )?Deposito)/] {
    278                 throwWarning: tr("PORTUGAL-O correto é Caixa Geral de Depósitos");
    279 }
    280 *[amenity =~ /bank|atm/][operator =~ /^(?i)(?u)(Banco )?C(\.\s?|\s)?G(\.\s?|\s)?D(\.\s?|\s)?$/] {
    281                 throwWarning: tr("PORTUGAL-operator abreviado de Caixa Geral de Depósitos");
    282                 fixAdd: "operator=Caixa Geral de Depósitos, S.A.";
    283 }
    284 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?P(\.\s?|\s)?I(\.\s?|\s)?$/] {
    285                 throwWarning: tr("PORTUGAL-Nome abreviado de Banco Português de Investimento");
    286                 fixAdd: "name=Banco Português de Investimento";
    287                 fixAdd: "short_name=BPI";
    288 }
    289 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?E(\.\s?|\s)?S(\.\s?|\s)?$/] {
    290                 throwWarning: tr("PORTUGAL-Nome abreviado de Banco Espírito Santo");
    291                 fixAdd: "name=Banco Espírito Santo";
    292                 fixAdd: "short_name=BES";
    293 }
    294 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?B(\.\s?|\s)?V(\.\s?|\s)?A(\.\s?|\s)?$/] {
    295                 throwWarning: tr("PORTUGAL-Nome abreviado de Banco Bilbao Vizcaya Argentaria");
    296                 fixAdd: "name=Banco Bilbao Vizcaya Argentaria";
    297                 fixAdd: "short_name=BBVA";
    298 }
    299 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?C(\.\s?|\s)?P(\.\s?|\s)?$/],
    300 *[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)$/] {
    301                 throwWarning: tr("PORTUGAL-Nome abreviado ou errado de Millennium bcp");
    302                 fixAdd: "name=Millennium bcp";
    303                 fixAdd: "alt_name=Banco Comercial Português";
    304 }
    305 *[name =~ /^Banco Comercial Português$/] {
    306                 throwWarning: tr("PORTUGAL-O correto é Millennium bcp");
    307                 fixAdd: "name=Millennium bcp";
    308                 fixAdd: "old_name=Banco Comercial Português";
    309 }
    310 *[alt_name =~ /^Banco Comercial Português$/] {
    311                 throwWarning: tr("PORTUGAL-Banco Comercial Português deve estar em old_name");
    312                 fixChangeKey: "alt_name => old_name";
    313 }
    314 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?(Santander|Tott?a|SantanderTott?a|Tott?a\s?Santander)$/] {
    315                 throwWarning: tr("PORTUGAL-O correto é Santander Totta");
    316                 fixAdd: "name=Santander Totta";
    317 }
    318 *[name =~ /(?i)(?u)(?U)Benett?o[mn]\b/][name !~ /(?U)\bUnited Colors\b/] {
    319                 throwWarning: tr("PORTUGAL-O correto é United Colors of Benetton");
    320 }
    321 *[amenity = bank][name =~ /^(?i)(?u)(Banco )?BANIF$/] {
    322                 throwWarning: tr("PORTUGAL-Nome abreviado de Banco Internacional do Funchal");
    323                 fixAdd: "name=Banco Internacional do Funchal";
    324                 fixAdd: "short_name=Banif";
    325 }
    326 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(?U)((Loja (Social|Solid[áa]ria)|EMA[ÚU]S|\bREMAR\b)|EMA[ÚU]S|\bREMAR\b)$/][shop !~ /charity/][!highway][!railway][!boundary][!place] {
     260*[amenity = police][name =~ /^(?i)(?u)P(\.\s?|\s)?S(\.\s?|\s)?P(\.\s?|\s)?$/][inside("PT")] {
     261        throwWarning: tr("PORTUGAL-Nome abreviado de Polícia de Segurança Pública");
     262        fixAdd: "name=Polícia de Segurança Pública";
     263        fixAdd: "short_name=PSP";
     264}
     265*[amenity = police][name =~ /^(?i)(?u)G(\.\s?|\s)?N(\.\s?|\s)?R(\.\s?|\s)?$/][inside("PT")] {
     266        throwWarning: tr("PORTUGAL-Nome abreviado de Guarda Nacional Republicana");
     267        fixAdd: "name=Guarda Nacional Republicana";
     268        fixAdd: "short_name=GNR";
     269}
     270*[amenity = bank][name =~ /^(?i)(?u)(Banco )?C(\.\s?|\s)?G(\.\s?|\s)?D(\.\s?|\s)?$/][inside("PT")] {
     271        throwWarning: tr("PORTUGAL-Nome abreviado de Caixa Geral de Depósitos");
     272        fixAdd: "name=Caixa Geral de Depósitos";
     273        fixAdd: "short_name=CGD";
     274}
     275*[amenity = bank][name =~ /(?i)(?u)Cai((cha) Ge(ne)?ral (de )?Dep[óo]sito|xa Ge(ne)?ral (de )?Deposito)/][inside("PT")] {
     276        throwWarning: tr("PORTUGAL-O correto é Caixa Geral de Depósitos");
     277}
     278*[amenity =~ /bank|atm/][operator =~ /^(?i)(?u)(Banco )?C(\.\s?|\s)?G(\.\s?|\s)?D(\.\s?|\s)?$/][inside("PT")] {
     279        throwWarning: tr("PORTUGAL-operator abreviado de Caixa Geral de Depósitos");
     280        fixAdd: "operator=Caixa Geral de Depósitos, S.A.";
     281}
     282*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?P(\.\s?|\s)?I(\.\s?|\s)?$/][inside("PT")] {
     283        throwWarning: tr("PORTUGAL-Nome abreviado de Banco Português de Investimento");
     284        fixAdd: "name=Banco Português de Investimento";
     285        fixAdd: "short_name=BPI";
     286}
     287*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?E(\.\s?|\s)?S(\.\s?|\s)?$/][inside("PT")] {
     288        throwWarning: tr("PORTUGAL-Nome abreviado de Banco Espírito Santo");
     289        fixAdd: "name=Banco Espírito Santo";
     290        fixAdd: "short_name=BES";
     291}
     292*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?B(\.\s?|\s)?V(\.\s?|\s)?A(\.\s?|\s)?$/][inside("PT")] {
     293        throwWarning: tr("PORTUGAL-Nome abreviado de Banco Bilbao Vizcaya Argentaria");
     294        fixAdd: "name=Banco Bilbao Vizcaya Argentaria";
     295        fixAdd: "short_name=BBVA";
     296}
     297*[amenity = bank][name =~ /^(?i)(?u)(Banco )?B(\.\s?|\s)?C(\.\s?|\s)?P(\.\s?|\s)?$/][inside("PT")],
     298*[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)$/][inside("PT")] {
     299        throwWarning: tr("PORTUGAL-Nome abreviado ou errado de Millennium bcp");
     300        fixAdd: "name=Millennium bcp";
     301        fixAdd: "alt_name=Banco Comercial Português";
     302}
     303*[name =~ /^Banco Comercial Português$/][inside("PT")] {
     304        throwWarning: tr("PORTUGAL-O correto é Millennium bcp");
     305        fixAdd: "name=Millennium bcp";
     306        fixAdd: "old_name=Banco Comercial Português";
     307}
     308*[alt_name =~ /^Banco Comercial Português$/][inside("PT")] {
     309        throwWarning: tr("PORTUGAL-Banco Comercial Português deve estar em old_name");
     310        fixChangeKey: "alt_name => old_name";
     311}
     312*[amenity = bank][name =~ /^(?i)(?u)(Banco )?(Santander|Tott?a|SantanderTott?a|Tott?a\s?Santander)$/][inside("PT")] {
     313        throwWarning: tr("PORTUGAL-O correto é Santander Totta");
     314        fixAdd: "name=Santander Totta";
     315}
     316*[name =~ /(?i)(?u)(?U)Benett?o[mn]\b/][name !~ /(?U)\bUnited Colors\b/][inside("PT")] {
     317        throwWarning: tr("PORTUGAL-O correto é United Colors of Benetton");
     318}
     319*[amenity = bank][name =~ /^(?i)(?u)(Banco )?BANIF$/][inside("PT")] {
     320        throwWarning: tr("PORTUGAL-Nome abreviado de Banco Internacional do Funchal");
     321        fixAdd: "name=Banco Internacional do Funchal";
     322        fixAdd: "short_name=Banif";
     323}
     324*[/^(name|name:pt)$/ =~ /^(?i)(?u)(?U)((Loja (Social|Solid[áa]ria)|EMA[ÚU]S|\bREMAR\b)|EMA[ÚU]S|\bREMAR\b)$/][shop !~ /charity/][!highway][!railway][!boundary][!place][inside("PT")] {
    327325        throwWarning: tr("PORTUGAL-Provavelmente devia ter shop=charity, caso tenha outra, adicionar esta também");
    328326}
    329 *[/^(name|name:pt)$/ =~ /^Alfarrabista/][shop=books][!second_hand] {
     327*[/^(name|name:pt)$/ =~ /^Alfarrabista/][shop=books][!second_hand][inside("PT")] {
    330328        throwWarning: tr("PORTUGAL-Alfarrabista deve ter second_hand=yes ou second_hand=only se vender apenas livros em 2ª mão");
    331329}
    332 *[place = city][!name],
    333 *[place = town][!name],
    334 *[place = village][!name] {
     330*[place = city][!name][inside("PT")],
     331*[place = town][!name][inside("PT")],
     332*[place = village][!name][inside("PT")] {
    335333        throwWarning: tr("PORTUGAL- {0} sem nome", "{0.value}");
    336334}
    337 node[name =~ /^(?i)(?u)(?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/][amenity][amenity !~ /^(university|restaurant|cafe|pub|bar)$/][!highway][!railway][!boundary][!place][!shop],
    338 node[name =~ /^(?i)(?u)(?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/][!amenity][!highway][!railway][!boundary][!place][!shop],
    339 way[name =~ /^(?i)(?u)(?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/][amenity][amenity !~ /^(university|restaurant|cafe|pub|bar)$/][!highway][!railway][!boundary][!place][!shop],
    340 way[name =~ /^(?i)(?u)(?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/][!amenity][!highway][!railway][!boundary][!place][!shop] {
     335node[name =~ /^(?i)(?u)(?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/][amenity][amenity !~ /^(university|restaurant|cafe|pub|bar)$/][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     336node[name =~ /^(?i)(?u)(?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/][!amenity][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     337way[name =~ /^(?i)(?u)(?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/][amenity][amenity !~ /^(university|restaurant|cafe|pub|bar)$/][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     338way[name =~ /^(?i)(?u)(?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/][!amenity][!highway][!railway][!boundary][!place][!shop][inside("PT")] {
    341339        throwWarning: tr("PORTUGAL-Provavelmente devia ter amenity=university");
    342340}
    343 *[name =~ /^(?i)(?u)(?U)\b(Escola|Agrupamento de Escolas|Liceu|Centro de Formação Profissional)\b/][name !~ /^(?i)(?u)(?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/][amenity][amenity =~ /^(university|college|kindergarten|driving_school)$/][!highway][!railway][!boundary][!place][!shop],
    344 *[name =~ /^(?i)(?u)(?U)\b(Escola|Agrupamento de Escolas|Liceu|Centro de Formação Profissional)\b/][name !~ /^(?i)(?u)(?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/][!amenity][!highway][!railway][!boundary][!place][!shop] {
     341*[name =~ /^(?i)(?u)(?U)\b(Escola|Agrupamento de Escolas|Liceu|Centro de Formação Profissional)\b/][name !~ /^(?i)(?u)(?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/][amenity][amenity =~ /^(university|college|kindergarten|driving_school)$/][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     342*[name =~ /^(?i)(?u)(?U)\b(Escola|Agrupamento de Escolas|Liceu|Centro de Formação Profissional)\b/][name !~ /^(?i)(?u)(?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/][!amenity][!highway][!railway][!boundary][!place][!shop][inside("PT")] {
    345343        throwWarning: tr("PORTUGAL-Provavelmente devia ter amenity=school");
    346344}
    347 *[name =~ /^(?i)(?u)(?U)\b(Colégio|Internato|Real Colégio)\b/][amenity][amenity =~ /^(university|school|kindergarten|driving_school)$/][!highway][!railway][!boundary][!place][!shop],
    348 *[name =~ /^(?i)(?u)(?U)\b(Colégio|Internato|Real Colégio)\b/][!amenity][!highway][!railway][!boundary][!place][!shop] {
     345*[name =~ /^(?i)(?u)(?U)\b(Colégio|Internato|Real Colégio)\b/][amenity][amenity =~ /^(university|school|kindergarten|driving_school)$/][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     346*[name =~ /^(?i)(?u)(?U)\b(Colégio|Internato|Real Colégio)\b/][!amenity][!highway][!railway][!boundary][!place][!shop][inside("PT")] {
    349347        throwWarning: tr("PORTUGAL-Provavelmente devia ter amenity=college");
    350348}
    351 *[name =~ /^(?i)(?u)(?U)\b(creche|jardim infantil|jardim de infância|infantário|externato|pré-primária)\b/][amenity][amenity =~ /^(university|school|college|driving_school)$/][!highway][!railway][!boundary][!place][!shop],
    352 *[name =~ /^(?i)(?u)(?U)\b(creche|jardim infantil|jardim de infância|infantário|externato|pré-primária)\b/][!amenity][!highway][!railway][!boundary][!place][!shop] {
     349*[name =~ /^(?i)(?u)(?U)\b(creche|jardim infantil|jardim de infância|infantário|externato|pré-primária)\b/][amenity][amenity =~ /^(university|school|college|driving_school)$/][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     350*[name =~ /^(?i)(?u)(?U)\b(creche|jardim infantil|jardim de infância|infantário|externato|pré-primária)\b/][!amenity][!highway][!railway][!boundary][!place][!shop][inside("PT")] {
    353351        throwWarning: tr("PORTUGAL-Provavelmente devia ter amenity=kindergarten");
    354352}
    355 *[name =~ /^(?i)(?u)(?U)\bEscola de Condução\b/][amenity][amenity =~ /^(university|school|college|kindergarten)$/][!highway][!railway][!boundary][!place][!shop],
    356 *[name =~ /^(?i)(?u)(?U)\bEscola de Condução\b/][!amenity][!highway][!railway][!boundary][!place][!shop] {
     353*[name =~ /^(?i)(?u)(?U)\bEscola de Condução\b/][amenity][amenity =~ /^(university|school|college|kindergarten)$/][!highway][!railway][!boundary][!place][!shop][inside("PT")],
     354*[name =~ /^(?i)(?u)(?U)\bEscola de Condução\b/][!amenity][!highway][!railway][!boundary][!place][!shop][inside("PT")] {
    357355        throwWarning: tr("PORTUGAL-Provavelmente devia ter amenity=driving_school");
    358356}
    359 *[amenity = college] ∈ *[amenity = college] {
     357*[amenity = college][inside("PT")] ∈ *[amenity = college] {
    360358        throwWarning: tr("PORTUGAL- {0} dentro de {1}", "amenity=college", "{0.tag}");
    361359}
    362 *[landuse = cemetery] ∈ *[landuse = cemetery] {
     360*[landuse = cemetery][inside("PT")] ∈ *[landuse = cemetery] {
    363361        throwWarning: tr("PORTUGAL- landuse=cemetery dentro de landuse = cemetery");
    364362}
    365 *[shop] ∈ *[shop][shop !~ /mall|department_store|supermarket/][amenity!=fuel] {
     363*[shop][inside("PT")] ∈ *[shop][shop !~ /mall|department_store|supermarket/][amenity!=fuel] {
    366364        throwWarning: tr("PORTUGAL- shop dentro de shop");
    367365}
    368 *[shop=supermarket] ∈ *[shop=supermarket] {
     366*[shop=supermarket][inside("PT")] ∈ *[shop=supermarket] {
    369367        throwWarning: tr("PORTUGAL- shop=supermarket dentro de shop=supermarket");
    370368}
    371 *[amenity=police] ∈ *[amenity=police] {
     369*[amenity=police][inside("PT")] ∈ *[amenity=police] {
    372370        throwWarning: tr("PORTUGAL- amenity=police dentro de amenity=police");
    373371}
    374 *[/^(name|name:pt)$/ =~ /(?i)(?u)(?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] {
     372*[/^(name|name:pt)$/ =~ /(?i)(?u)(?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][inside("PT")] {
    375373        throwWarning: tr("PORTUGAL-Seguradora e Mediador de Seguros deve ter office=insurance");
    376374}
    377 *[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\b(Stande?|Automóveis|Concessionário)\b/][shop != car] {
     375*[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\b(Stande?|Automóveis|Concessionário)\b/][shop != car][inside("PT")] {
    378376        throwWarning: tr("PORTUGAL-Stande de Automóveis deve ter shop=car");
    379377}
    380 *[/^(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] {
     378*[/^(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][inside("PT")] {
    381379        throwWarning: tr("PORTUGAL-Reparador de Automóveis deve ter shop=car_repair");
    382380}
    383 *[/^(name|name:pt)$/ =~ /(?i)(?u)Lavagem/][name][amenity != car_wash] {
     381*[/^(name|name:pt)$/ =~ /(?i)(?u)Lavagem/][name][amenity != car_wash][inside("PT")] {
    384382        throwWarning: tr("PORTUGAL-Local de Lavagem de Automóveis deve ter amenity=car_wash");
    385383}
    386 *[/^(name|name:pt)$/ =~ /(?i)(?u)Park Meter/][name][amenity != vending_machine] {
     384*[/^(name|name:pt)$/ =~ /(?i)(?u)Park Meter/][name][amenity != vending_machine][inside("PT")] {
    387385        throwWarning: tr("PORTUGAL-Máquina de bilhetes de parque de estacionamento deve ter amenity=vending_machine e vending=parking_tickets");
    388386}
    389 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Hospital|Centro Hospitalar|(Centro|Extensão) (de )?Saúde) /][name][building][building != hospital] {
     387*[/^(name|name:pt)$/ =~ /^(?i)(?u)(Hospital|Centro Hospitalar|(Centro|Extensão) (de )?Saúde) /][name][building][building != hospital][inside("PT")] {
    390388        throwWarning: tr("PORTUGAL-Edifício de Hospital ou Centro de Saúde deve ter building=hospital");
    391389}
    392 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Hospital|Centro Hospitalar|(Centro|Extensão) (de )?Saúde) /][name][amenity][amenity != hospital][/^(name|name:pt)$/ !~ /(?i)(?u)(?U)\b(Parque|Estacionamento)\b/] {
     390*[/^(name|name:pt)$/ =~ /^(?i)(?u)(Hospital|Centro Hospitalar|(Centro|Extensão) (de )?Saúde) /][name][amenity][amenity != hospital][/^(name|name:pt)$/ !~ /(?i)(?u)(?U)\b(Parque|Estacionamento)\b/][inside("PT")] {
    393391        throwWarning: tr("PORTUGAL-Hospital e Centro de Saúde deve ter amenity=hospital");
    394392}
    395 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][building != transformer_tower],
    396 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][power != substation],
    397 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][substation != minor_distribution],
    398 *[building = transformer_tower][name][power != substation],
    399 *[building = transformer_tower][name][substation != minor_distribution] {
     393*[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][building != transformer_tower][inside("PT")],
     394*[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][power != substation][inside("PT")],
     395*[/^(name|name:pt)$/ =~ /^(?i)(?u)(Cabine|Posto de Transformador) ((da )? EDP)/][name][substation != minor_distribution][inside("PT")],
     396*[building = transformer_tower][name][power != substation][inside("PT")],
     397*[building = transformer_tower][name][substation != minor_distribution][inside("PT")] {
    400398        throwWarning: tr("PORTUGAL-Cabine da EDP deve ter building=transformer_tower power=substation e substation=minor_distribution");
    401399}
    402 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Estação (de Comboios|Ferroviária|(da)? CP|(dos )?Caminhos de Ferro) /][name][building != train_station][public_transport != station] {
     400*[/^(name|name:pt)$/ =~ /^(?i)(?u)Estação (de Comboios|Ferroviária|(da)? CP|(dos )?Caminhos de Ferro) /][name][building != train_station][public_transport != station][inside("PT")] {
    403401        throwWarning: tr("PORTUGAL-Estação de Comboios sem building=train_station ou public_transport=station");
    404402}
    405 *[/^(name|name:pt)$/ =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/],
    406 *[description =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/],
    407 *[note =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/],
    408 *[designation =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/] {
     403*[/^(name|name:pt)$/ =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/][inside("PT")],
     404*[description =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/][inside("PT")],
     405*[note =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/][inside("PT")],
     406*[designation =~ /(?i)(?u)((Encerr|Fech)(ou|ado)|Desocupad[ao])/][inside("PT")] {
    409407        throwWarning: tr("PORTUGAL-Estabelecimento encerrado deve ter disused:shop=yes, disused:amenity=bar...");
    410408}
    411 *[/^(name|name:pt)$/ =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/],
    412 *[description =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/],
    413 *[note =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/],
    414 *[designation =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/] {
     409*[/^(name|name:pt)$/ =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/][inside("PT")],
     410*[description =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/][inside("PT")],
     411*[note =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/][inside("PT")],
     412*[designation =~ /(?i)(?u)(Abandon(ad[ao]|o)|Degrada(d[ao]|ção))/][inside("PT")] {
    415413        throwWarning: tr("PORTUGAL-Edifício degradado deve ter abandoned:building=yes ou abandoned:shop=yes...");
    416414}
    417 *[/name|description|note|designation/ =~ /(?i)(?u)((Equipamentos?|Materia(is|l)) Hospitalar|instrumentos médicos)/][shop != medical_supply] {
     415*[/name|description|note|designation/ =~ /(?i)(?u)((Equipamentos?|Materia(is|l)) Hospitalar|instrumentos médicos)/][shop != medical_supply][inside("PT")] {
    418416        throwWarning: tr("PORTUGAL-Empresa de venda de material hospitalar deve ter shop=medical_supply");
    419417}
    420 *[/^(name|name:pt)$/ =~ /(?i)(?u)Noiv[ao]s/][shop=clothes][!clothes] {
     418*[/^(name|name:pt)$/ =~ /(?i)(?u)Noiv[ao]s/][shop=clothes][!clothes][inside("PT")] {
    421419        throwWarning: tr("PORTUGAL-Loja de roupa para noivas deve ter clothes=wedding");
    422420}
    423 *[/^(name|name:pt|note)$/ =~ /(?i)(?u)(?U)\b(Zara Kids|Lanidor J[úu]nior|Roupa (de |para )?Crianças?)\b/][shop=clothes][!clothes] {
     421*[/^(name|name:pt|note)$/ =~ /(?i)(?u)(?U)\b(Zara Kids|Lanidor J[úu]nior|Roupa (de |para )?Crianças?)\b/][shop=clothes][!clothes][inside("PT")] {
    424422        throwWarning: tr("PORTUGAL-Loja de roupa para criança deve ter clothes=children");
    425423}
    426 *[/^(name|name:pt|note)$/ =~ /(?i)(?u)(?U)\b(Roupa (de |para )?B[ée]b[ée]s?)\b/][shop=clothes][!clothes] {
     424*[/^(name|name:pt|note)$/ =~ /(?i)(?u)(?U)\b(Roupa (de |para )?B[ée]b[ée]s?)\b/][shop=clothes][!clothes][inside("PT")] {
    427425        throwWarning: tr("PORTUGAL-Loja de roupa para bebé deve ter clothes=babies");
    428426}
    429 *[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\b(Salsa|Levi's|Levi Strauss|Pepe Jeans|Lee|W52)\b/][shop=clothes][!clothes] {
     427*[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\b(Salsa|Levi's|Levi Strauss|Pepe Jeans|Lee|W52)\b/][shop=clothes][!clothes][inside("PT")] {
    430428        throwWarning: tr("PORTUGAL-Loja essencialmente de jeans deve ter clothes=denim");
    431429}
    432 *[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\b(lingerie|women'secret|Calzedonia|Intimissimi|Loja das Meias)\b/][shop=clothes][!clothes] {
     430*[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\b(lingerie|women'secret|Calzedonia|Intimissimi|Loja das Meias)\b/][shop=clothes][!clothes][inside("PT")] {
    433431        throwWarning: tr("PORTUGAL-Loja de roupa interior,meias,etc. deve ter clothes=underwear");
    434432}
    435 *["addr:country"]["addr:country" !~ /^PT$/] {
     433*["addr:country"]["addr:country" !~ /^PT$/][inside("PT")] {
    436434        throwWarning: tr("PORTUGAL-O país na morada deve ter o código PT");
    437435}
    438 *[leisure][/^(name|name:pt)$/ =~ /^(?i)(?u)(campo|est(á|a)dio) (de (futebol|desportos?)|desportivo)?$/],
    439 *[leisure][/^(name|name:pt)$/ =~ /^(?i)(?u)(estádio |Pavilhão )?Gimnodesportivo$/],
    440 *[leisure=playground][/^(name|name:pt)$/ =~ /^(?i)(?u)Parque Infantil$/],
    441 *[highway = bus_stop][/^(name|name:pt)$/ =~ /^(?i)(?u)(paragem( d(e|os) autocarros?)|bus stop)?$/],
    442 *[highway = track][/^(name|name:pt)$/ =~ /^(?i)(?u)Trilhos?$/],
    443 *[highway = path][/^(name|name:pt)$/ =~ /^(?i)(?u)Trilhos?$/],
    444 *[highway][/^(name|name:pt)$/ =~ /^(?i)(?u)Estrad[ãa]o( de Terra)?$/],
    445 *[natural = tree][/^(name|name:pt)$/ =~ /^(?i)(?u)[ÁA]rvores?$/],
    446 *[amenity = drinking_water][/^(name|name:pt)$/ =~ /^(?i)(?u)(Fonte|Bebedouro)s?$/],
    447 *[amenity = post_office][/^(name|name:pt)$/ =~ /^(?i)(?u)Correios$/],
    448 *[amenity = fuel][/^(name|name:pt)$/ =~ /^(?i)(?u)(Estação|Posto|Bombas)(de (Serviço|Combustível|Gasolina))?$/],
    449 *[amenity = parking][/^(name|name:pt)$/ =~ /^(?i)(?u)(Parque((de )?Estacionamento)?|Estacionamento(( de)? (Carros|Autom[óo]veis)?)?)$/],
    450 *[amenity = bank][/^(name|name:pt)$/ =~ /^(?i)(?u)Banco$/],
    451 *[amenity = bench][/^(name|name:pt)$/ =~ /^(?i)(?u)Bancos?$/],
    452 *[amenity = waste_basket][/^(name|name:pt)$/ =~ /^(?i)(?u)Caixote (d[oe] |para( o)? )?Lixos?$/],
    453 *[natural = tree][/^(name|name:pt)$/ =~ /^(?i)(?u)[ÁA]rvores?$/],
    454 *[highway = steps][/^(name|name:pt)$/ =~ /^(?i)(?u)Escadas?$/],
    455 *[highway = crossing][/^(name|name:pt)$/ =~ /^(?i)(?u)(Passadeira|Zebra)s?$/],
    456 *[amenity = bench][/^(name|name:pt)$/ =~ /^(?i)(?u)Bancos?$/] {
     436*[leisure][/^(name|name:pt)$/ =~ /^(?i)(?u)(campo|est(á|a)dio) (de (futebol|desportos?)|desportivo)?$/][inside("PT")],
     437*[leisure][/^(name|name:pt)$/ =~ /^(?i)(?u)(estádio |Pavilhão )?Gimnodesportivo$/][inside("PT")],
     438*[leisure=playground][/^(name|name:pt)$/ =~ /^(?i)(?u)Parque Infantil$/][inside("PT")],
     439*[highway = bus_stop][/^(name|name:pt)$/ =~ /^(?i)(?u)(paragem( d(e|os) autocarros?)|bus stop)?$/][inside("PT")],
     440*[highway = track][/^(name|name:pt)$/ =~ /^(?i)(?u)Trilhos?$/][inside("PT")],
     441*[highway = path][/^(name|name:pt)$/ =~ /^(?i)(?u)Trilhos?$/][inside("PT")],
     442*[highway][/^(name|name:pt)$/ =~ /^(?i)(?u)Estrad[ãa]o( de Terra)?$/][inside("PT")],
     443*[natural = tree][/^(name|name:pt)$/ =~ /^(?i)(?u)[ÁA]rvores?$/][inside("PT")],
     444*[amenity = drinking_water][/^(name|name:pt)$/ =~ /^(?i)(?u)(Fonte|Bebedouro)s?$/][inside("PT")],
     445*[amenity = post_office][/^(name|name:pt)$/ =~ /^(?i)(?u)Correios$/][inside("PT")],
     446*[amenity = fuel][/^(name|name:pt)$/ =~ /^(?i)(?u)(Estação|Posto|Bombas)(de (Serviço|Combustível|Gasolina))?$/][inside("PT")],
     447*[amenity = parking][/^(name|name:pt)$/ =~ /^(?i)(?u)(Parque((de )?Estacionamento)?|Estacionamento(( de)? (Carros|Autom[óo]veis)?)?)$/][inside("PT")],
     448*[amenity = bank][/^(name|name:pt)$/ =~ /^(?i)(?u)Banco$/][inside("PT")],
     449*[amenity = bench][/^(name|name:pt)$/ =~ /^(?i)(?u)Bancos?$/][inside("PT")],
     450*[amenity = waste_basket][/^(name|name:pt)$/ =~ /^(?i)(?u)Caixote (d[oe] |para( o)? )?Lixos?$/][inside("PT")],
     451*[natural = tree][/^(name|name:pt)$/ =~ /^(?i)(?u)[ÁA]rvores?$/][inside("PT")],
     452*[highway = steps][/^(name|name:pt)$/ =~ /^(?i)(?u)Escadas?$/][inside("PT")],
     453*[highway = crossing][/^(name|name:pt)$/ =~ /^(?i)(?u)(Passadeira|Zebra)s?$/][inside("PT")],
     454*[amenity = bench][/^(name|name:pt)$/ =~ /^(?i)(?u)Bancos?$/][inside("PT")] {
    457455        throwWarning: tr("PORTUGAL-Nome supérfluo ou incompleto");
    458456}
    459 node[highway=street_lamp][name] {
     457node[highway=street_lamp][name][inside("PT")] {
    460458        throwWarning: tr("PORTUGAL-Poste de Iluminação com nome");
    461459}
    462 *[building][/^(name|name:pt)$/ =~ /^(?i)(?u)(Habita[çc][ãa]o|Casa|Moradia|Vivenda)?$/] {
     460*[building][/^(name|name:pt)$/ =~ /^(?i)(?u)(Habita[çc][ãa]o|Casa|Moradia|Vivenda)?$/][inside("PT")] {
    463461        throwWarning: tr("PORTUGAL-Nome supérfluo em edifício que deve ter building=house");
    464462}
    465463
    466464/* Erro comum como Rua do CRuzeiro */
    467 *[/^(name|name:pt|addr:street)$/ =~ /[A-Z]{2}[a-z]/] {
     465*[/^(name|name:pt|addr:street)$/ =~ /[A-Z]{2}[a-z]/][inside("PT")] {
    468466        throwWarning: tr("PORTUGAL-Verificar: nome ou endereço com 2 letras seguidas em maiúsculo");
    469467}
    470468/* lugar possui nome que inicia com "Edifício" mas não possui etiqueta building */
    471 *[/^(name|name:pt)$/ =~ /^(?i)(?u)edifício/][!building][/^(name|name:pt)$/ !~ /^(?i)(?u)(?U)\bEdifício Transparente\b/] {
     469*[/^(name|name:pt)$/ =~ /^(?i)(?u)edifício/][!building][/^(name|name:pt)$/ !~ /^(?i)(?u)(?U)\bEdifício Transparente\b/][inside("PT")] {
    472470        throwWarning: tr("PORTUGAL-Possível ausência de etiqueta {0}", "{1.key}");
    473471}
    474 *["addr:postcode"]["addr:postcode" !~ /^[0-9]{4}(-[0-9]{3})?$/],
    475 *[postal_code][postal_code !~ /^[0-9]{4}(-[0-9]{3})?$/] {
     472*["addr:postcode"]["addr:postcode" !~ /^[0-9]{4}(-[0-9]{3})?$/][inside("PT")],
     473*[postal_code][postal_code !~ /^[0-9]{4}(-[0-9]{3})?$/][inside("PT")] {
    476474        throwWarning: tr("PORTUGAL-Código postal em formato diferente de NNNN-NNN ou NNNN");
    477475}
    478 node[surface] {
     476node[surface][inside("PT")] {
    479477        throwWarning: tr("PORTUGAL-Superfície ({0}) num nó", "{0.key}");
    480478}
    481479/* highway/waterway com layer negativo e sem túnel */
    482 *[highway][layer < 0][!tunnel],
    483 *[waterway][layer < 0][!tunnel] {
     480*[highway][layer < 0][!tunnel][inside("PT")],
     481*[waterway][layer < 0][!tunnel][inside("PT")] {
    484482        throwWarning: tr("PORTUGAL-Verificar: {0} negativo de {1} com ausência de {2}", "{1.key}", "{0.key}", "{2.key}");
    485483}
    486484/* highway/waterway com layer positivo e sem ponte */
    487 *[highway][layer > 0][!bridge][highway != bus_stop],
    488 *[waterway][layer > 0][!bridge] {
     485*[highway][layer > 0][!bridge][highway != bus_stop][inside("PT")],
     486*[waterway][layer > 0][!bridge][inside("PT")] {
    489487        throwWarning: tr("PORTUGAL-Verificar: {0} positivo de {1} com ausência de {2}", "{1.key}", "{0.key}", "{2.key}");
    490488}
    491 way[highway = motorway_junction] {
     489way[highway = motorway_junction][inside("PT")] {
    492490        throwError: tr("PORTUGAL- {0} deve ser utilizado apenas no nó de saída da estrada", "{0.tag}");
    493491        suggestAlternative: "highway=motorway_link";
    494492}
    495493/* estradas de 2 vias mas apenas com 1 faixa estão provavelmente erradas */
    496 *[highway][lanes = 1][!oneway?][!junction] {
     494*[highway][lanes = 1][!oneway?][!junction][inside("PT")] {
    497495        throwWarning: tr("PORTUGAL- {0} provavelmente deveria ter {1} ≥ 2 ou {2}=yes", "{0.key}", "{1.key}", "{2.key}");
    498496}
    499497/* admin_level deve ficar na relação e não no nó do local */
    500 node[place][admin_level] {
     498node[place][admin_level][inside("PT")] {
    501499        throwWarning: tr("PORTUGAL- {0} deve fazer parte do limite administrativo e não do nó do local", "{1.key}");
    502500}
    503 relation[admin_level][!boundary],
    504 relation[admin_level][boundary][boundary != administrative] {
     501relation[admin_level][!boundary][inside("PT")],
     502relation[admin_level][boundary][boundary != administrative][inside("PT")] {
    505503        throwError: tr("PORTUGAL- {0} ausência de boundary=administrative", "{0.key}");
    506504}
    507 relation[boundary=administrative][!admin_level] {
     505relation[boundary=administrative][!admin_level][inside("PT")] {
    508506        throwError: tr("PORTUGAL- {0} deve possuir {1}", "{0.tag}", "{1.key}");
    509507}
    510508relation[boundary=administrative] > way { set way_in_relation; }
    511509relation[admin_level] > way { set way_in_relation; }
    512 way[boundary=administrative][!admin_level]!.way_in_relation {
     510way[boundary=administrative][!admin_level][inside("PT")]!.way_in_relation {
    513511        throwError: tr("PORTUGAL- {0} deve possuir {1}", "{0.tag}", "{1.key}");
    514512}
    515 way[admin_level][!boundary]!.way_in_relation,
    516 way[admin_level][boundary][boundary != administrative]!.way_in_relation {
     513way[admin_level][!boundary][inside("PT")]!.way_in_relation,
     514way[admin_level][boundary][boundary != administrative][inside("PT")]!.way_in_relation {
    517515        throwError: tr("PORTUGAL- {0} ausência de boundary=administrative", "{0.key}");
    518516}
    519 relation[boundary=administrative][type=multipolygon] {
     517relation[boundary=administrative][type=multipolygon][inside("PT")] {
    520518        throwError: tr("PORTUGAL-Relação deve ser do tipo ''type=boundary''");
    521519}
    522 node[destination],
    523 relation[destination][type != waterway] {
     520node[destination][inside("PT")],
     521relation[destination][type != waterway][inside("PT")] {
    524522        throwWarning: tr("PORTUGAL- {0} deve-se usar apenas em linhas", "{0.key}");
    525523}
    526524/* landuse não deve ter layer */
    527 *[landuse][layer] {
     525*[landuse][layer][inside("PT")] {
    528526        throwWarning: tr("PORTUGAL-Verificar: {0} não deve ter {1}", "{0.key}", "{1.key}");
    529527}
    530528/* path deve utilizar trail_visibility e não tracktype */
    531 way[highway = path][tracktype] {
     529way[highway = path][tracktype][inside("PT")] {
    532530        throwWarning: tr("PORTUGAL-Uso incorreto de {0}", "{1.key}");
    533531        suggestAlternative: "trail_visibility";
    534532}
    535533/* tracktype é uma propriedade de tracks apenas */
    536 way[highway != track][tracktype] {
     534way[highway != track][tracktype][inside("PT")] {
    537535        throwWarning: tr("PORTUGAL-Usar {0} apenas em {1}={2}", "{1.key}", "{0.key}", "{0.value}");
    538536}
    539537/* número de saída de rodovia */
    540 *[highway=motorway_junction][ref][ref !~ /^[0-9]+( |-)*([A-Z])?$/] {
     538*[highway=motorway_junction][ref][ref !~ /^[0-9]+( |-)*([A-Z])?$/][inside("PT")] {
    541539        throwWarning: tr("PORTUGAL-Saída de via ({0}) fora do padrão", "{1.key}");
    542540}
    543 *[alt_ref] {
     541*[alt_ref][inside("PT")] {
    544542        throwWarning: tr("PORTUGAL-O conteúdo de {0} deve fazer parte de ref, separado por ;", "{0.key}");
    545543        suggestAlternative: "ref";
    546544}
    547 *[/^(name|name:pt)$/ =~ /^(?i)(?u)pra(ç|cet)a/][!leisure][landuse = grass] {
     545*[/^(name|name:pt)$/ =~ /^(?i)(?u)pra(ç|cet)a/][!leisure][landuse = grass][inside("PT")] {
    548546        throwWarning: tr("PORTUGAL-Possível definição errada de praça: {0}", "{2.tag}");
    549547        suggestAlternative: "leisure=park";
    550548}
    551549/* layer não faz sentido em outros objetos */
    552 *[layer][!building][!highway][man_made!=pipeline][!tunnel][!railway][!waterway] {
     550*[layer][!building][!highway][man_made!=pipeline][!tunnel][!railway][!waterway][inside("PT")] {
    553551        throwWarning: tr("PORTUGAL-Verificar: possível uso incorreto de layer no objeto, pode ser andar, etiqueta level");
    554552}
    555553/* https://github.com/OSMBrasil/validador-josm/issues/54 */
    556554/* requer JOSM ≥ 7761 */
    557 *[tourism = motel][amenity != love_hotel],
    558 *[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\bmotel\b/][amenity != love_hotel] {
     555*[tourism = motel][amenity != love_hotel][inside("PT")],
     556*[/^(name|name:pt)$/ =~ /(?i)(?u)(?U)\bmotel\b/][amenity != love_hotel][inside("PT")] {
    559557        throwWarning: tr("PORTUGAL-Ausência de etiqueta ''{0}''", "{1.value}");
    560558}
    561 *[amenity = love_hotel][tourism][tourism != motel] {
     559*[amenity = love_hotel][tourism][tourism != motel][inside("PT")] {
    562560        throwWarning: tr("PORTUGAL-Verificar: provavelmente deve ser ''{0}={1}''", "{2.key}", "{2.value}");
    563561}
    564 *["building:levels" < 1] {
     562*["building:levels" < 1][inside("PT")] {
    565563        throwWarning: tr("PORTUGAL-Verificar: {0} com valor inválido", "{0.key}");
    566564}
    567565/* deve-se utilizar short_name, name ou official_name ao invés de long_name */
    568 *[long_name] {
     566*[long_name][inside("PT")] {
    569567        throwWarning: tr("PORTUGAL-Chave inválida: {0}", "{0.key}");
    570568        suggestAlternative: "highway=name";
     
    573571}
    574572/* landuse deve conter algum valor que não seja yes */
    575 *[landuse?] {
     573*[landuse?][inside("PT")] {
    576574        throwWarning: tr("PORTUGAL-Especificar valor correto para {0} em vez de ''{1}''", "{0.key}", tag("landuse"));
    577575}
    578576/* vários valores para source devem estar na mesma chave, separados por ';' */
    579 *[alt_source][source] {
     577*[alt_source][source][inside("PT")] {
    580578        throwWarning: tr("PORTUGAL- {0} deve estar incluído em {1}, separado por '';'' caso necessário", "{0.key}", "{1.key}");
    581579}
    582 *[access = permissive] {
     580*[access = permissive][inside("PT")] {
    583581        throwWarning: tr("PORTUGAL-Verificar: {0} usar só em vias privadas com permissão de acesso e não vias públicas", "{0.tag}");
    584582}
    585 *[aeroway][designation =~ /^[A-Z]{4}$/][!icao],
    586 *[aeroway][ref =~ /^[A-Z]{4}$/][!icao] {
     583*[aeroway][designation =~ /^[A-Z]{4}$/][!icao][inside("PT")],
     584*[aeroway][ref =~ /^[A-Z]{4}$/][!icao][inside("PT")] {
    587585        throwWarning: tr("PORTUGAL- {0} provavelmente deve ser utilizado como {1}", "{1.key}", "{2.key}");
    588586}
    589 *[crossing][!highway][!railway] {
     587*[crossing][!highway][!railway][inside("PT")] {
    590588        throwWarning: tr("PORTUGAL- crossing deve ser utilizado com highway=crossing, railway=crossing ou highway=traffic_signals");
    591589}
    592 node[highway =~ /^(give_way|mini_roundabout|stop|turning_circle)$/][name] {
     590node[highway =~ /^(give_way|mini_roundabout|stop|turning_circle)$/][name][inside("PT")] {
    593591        throwWarning: tr("PORTUGAL-Objeto não deve possuir {0}", "{1.key}");
    594592}
    595 way[highway = give_way],
    596 way[highway = mini_roundabout],
    597 way[highway = stop],
    598 way[highway = turning_circle],
    599 relation[highway = give_way],
    600 relation[highway = mini_roundabout],
    601 relation[highway = stop],
    602 relation[highway = turning_circle] {
     593way[highway = give_way][inside("PT")],
     594way[highway = mini_roundabout][inside("PT")],
     595way[highway = stop][inside("PT")],
     596way[highway = turning_circle][inside("PT")],
     597relation[highway = give_way][inside("PT")],
     598relation[highway = mini_roundabout][inside("PT")],
     599relation[highway = stop][inside("PT")],
     600relation[highway = turning_circle][inside("PT")] {
    603601        throwWarning: tr("PORTUGAL- {0} deve ser utilizado apenas em nós", "{0.tag}");
    604602}
    605603/* torres de energia, lombas, câmaras, semáforos etc que não estão ligados a numa via */
    606 node:unconnected[power = pole],
    607 node:unconnected[power = tower],
    608 node:unconnected[highway = speed_camera] {
     604node:unconnected[power = pole][inside("PT")],
     605node:unconnected[power = tower][inside("PT")],
     606node:unconnected[highway = speed_camera][inside("PT")] {
    609607        throwWarning: tr("PORTUGAL- {0} deve fazer parte de uma linha e não isolado", "{1.tag}");
    610608}
    611 *[iata = "0"] {
    612         throwWarning: tr("{0} com valor = {1}", "{0.key}", "{0.value}");
     609*[iata = "0"][inside("PT")] {
     610        throwWarning: tr("PORTUGAL- {0} com valor = {1}", "{0.key}", "{0.value}");
    613611}
    614612/* saídas de estradas devem ter nome e/ou referência */
    615 node[highway = motorway_junction][!name][!ref] {
     613node[highway = motorway_junction][!name][!ref][inside("PT")] {
    616614        throwWarning: tr("PORTUGAL- {0} sem pelo menos uma das etiquetas: {1} ou {2}", "{0.value}", "{1.key}", "{2.key}");
    617615}
    618616/* provalvemente o tipo dessas vias não deve ser link */
    619 *[highway $= _link][name =~ /(Alameda|Avenida|Rua|Travessa|Viela) /] {
     617*[highway $= _link][name =~ /(Alameda|Avenida|Rua|Travessa|Viela) /][inside("PT")] {
    620618        throwWarning: tr("PORTUGAL-Verificar: via possivelmente errada com {0}", tag("highway"));
    621619}
    622 node[noname?] {
     620node[junction=roundabout][inside("PT")] {
     621        throwWarning: tr("PORTUGAL-Rotunda num nó, é melhor num círculo");
     622}
     623node[noname?][inside("PT")] {
    623624        throwWarning: tr("PORTUGAL-Verificar: uso suspeito de {0} num nó", "{0.key}");
    624625}
    625626/* source estranhamente igual o name */
    626 *[source = *name] {
     627*[source = *name][inside("PT")] {
    627628        throwWarning: tr("PORTUGAL-Verificar: {0} e {1} são iguais", "{0.key}", "{0.value}");
    628629}
    629630
    630 *[/^(name|name:pt)$/ =~ /^(?i)(?u)(Junta (de )?Freguesia|Câmara Municipal)/][!highway][amenity!=townhall] {
     631*[/^(name|name:pt)$/ =~ /^(?i)(?u)(Junta (de )?Freguesia|Câmara Municipal)/][!highway][amenity!=townhall][inside("PT")] {
    631632        throwWarning: tr("PORTUGAL-Juntas de Freguesia e Câmaras Municipais deve ter amenity=townhall");
    632633}
    633 *[vatin][!"ref:vatin"],
    634 *[nif][!"ref:vatin"],
    635 *[NIF][!"ref:vatin"],
    636 *[nipc][!"ref:vatin"],
    637 *[NIPC][!"ref:vatin"] {
     634*[vatin][!"ref:vatin"][inside("PT")],
     635*[nif][!"ref:vatin"][inside("PT")],
     636*[NIF][!"ref:vatin"][inside("PT")],
     637*[nipc][!"ref:vatin"][inside("PT")],
     638*[NIPC][!"ref:vatin"][inside("PT")] {
    638639        throwWarning: tr("PORTUGAL-Etiqueta errada para Número de Identificaçáo Fiscal, usar ref:vatin=XXX", "{0.key}", "{1.key}");
    639640}
    640 *["ref:vatin"]["ref:vatin" !~ /^PT[0-9]{9}$/] {
     641*["ref:vatin"]["ref:vatin" !~ /^PT[0-9]{9}$/][inside("PT")] {
    641642        throwWarning: tr("PORTUGAL-Número de Identificaçáo Fiscal tem de ter o formato PTxxxxxxxxx");
    642643}
    643 *["phone:pt"][!phone] {
     644*["phone:pt"][!phone][inside("PT")] {
    644645        throwWarning: tr("PORTUGAL-Chave de etiqueta mal aplicada phone:pt sem haver etiqueta phone");
    645646}
    646 node[layer < 0][amenity=parking] {
     647node[layer < 0][amenity=parking][inside("PT")] {
    647648        throwWarning: tr("PORTUGAL-provavelmente é uma entrada/saída parque estac.subterrâneo, usar amenity=parking_entrance e parking=underground");
    648649}
    649 node[layer > 0][amenity=parking] {
     650node[layer > 0][amenity=parking][inside("PT")] {
    650651        throwWarning: tr("PORTUGAL-provavelmente é uma entrada/saída parque estac.no topo de 1 edifício, usar amenity=parking_entrance e parking=rooftop");
    651652}
    652 node:unconnected[amenity=parking_entrance] {
     653node:unconnected[amenity=parking_entrance][inside("PT")] {
    653654        throwWarning: tr("PORTUGAL-Nós de entradas ou saídas de parque estac. devem estar ligados a 1 estrada");
    654655}
    655 *[tourism][tourism != attraction][layer],
    656 *[shop][layer],
    657 *[amenity][amenity != place_of_worship][parking !~ /underground|rooftop/][building!=roof][layer],
    658 *[craft][layer],
    659 *[office][layer],
    660 *[leisure][layer],
    661 *[man_made][man_made !~ /surveillance|pipeline/][layer],
    662 *[natural][layer],
    663 *[sport][layer],
    664 *[military][layer],
    665 *["building:part"][layer],
    666 *[historic][historic !~ /(monument|city_gate)/][layer],
    667 *[landuse][layer] {
     656*[tourism][tourism != attraction][layer][inside("PT")],
     657*[shop][layer][inside("PT")],
     658*[amenity][amenity != place_of_worship][parking !~ /underground|rooftop/][building!=roof][layer][inside("PT")],
     659*[craft][layer][inside("PT")],
     660*[office][layer][inside("PT")],
     661*[leisure][layer][inside("PT")],
     662*[man_made][man_made !~ /surveillance|pipeline/][layer][inside("PT")],
     663*[natural][layer][inside("PT")],
     664*[sport][layer][inside("PT")],
     665*[military][layer][inside("PT")],
     666*["building:part"][layer][inside("PT")],
     667*[historic][historic !~ /(monument|city_gate)/][layer][inside("PT")],
     668*[landuse][layer][inside("PT")] {
    668669        throwWarning: tr("PORTUGAL-provavelmente layer devia ser level - nº de andar ou não ter layer");
    669670}
    670 *[natural][shop] {
     671*[natural][shop][inside("PT")] {
    671672        throwWarning: tr("PORTUGAL-natural junto com shop");
    672673}
    673 *[/name|brand|operator/ =~ /(?U)\b(5 (à s|[áa]\s[Ss])ec)\b/] {
     674*[/name|brand|operator/ =~ /(?U)\b(5 (à s|[áa]\s[Ss])ec)\b/][inside("PT")] {
    674675        throwWarning: tr("PORTUGAL-O correto é 5 à Sec");
    675676}
    676 *[amenity=fuel][!brand][name =~ /^(?i)(?u)(Agip|BP|Cepsa|Esso|Exxon|Galp|Mobil|Repsol|Shell|Total)?$/] {
     677*[amenity=fuel][!brand][name =~ /^(?i)(?u)(Agip|BP|Cepsa|Esso|Exxon|Galp|Mobil|Repsol|Shell|Total)?$/][inside("PT")] {
    677678        throwWarning: tr("PORTUGAL-Marca de combustível deve estar em brand e não name. O posto costuma ser de privados e com nome extenso ");
    678679}
    679 *[/name|brand|operator/ =~ /(?U)\b(galp|GALP)\b/] {
     680*[/name|brand|operator/ =~ /(?U)\b(galp|GALP)\b/][inside("PT")] {
    680681        throwWarning: tr("PORTUGAL-O correto é Galp e não GALP ou galp");
    681682}
    682 *[/name|brand|operator/ =~ /(?U)\b(CEPSA|cepsa)\b/] {
     683*[/name|brand|operator/ =~ /(?U)\b(CEPSA|cepsa)\b/][inside("PT")] {
    683684        throwWarning: tr("PORTUGAL-O correto é Cepsa e não CEPSA ou cepsa");
    684685}
    685 *[/name|brand|operator/ =~ /(?U)\b(ESSO|esso)\b/] {
     686*[/name|brand|operator/ =~ /(?U)\b(ESSO|esso)\b/][inside("PT")] {
    686687        throwWarning: tr("PORTUGAL-O correto é Esso e não ESSO ou esso");
    687688}
    688 *[/name|brand|operator/ =~ /(?U)\b(EXX?ON|exx?on)\b/] {
     689*[/name|brand|operator/ =~ /(?U)\b(EXX?ON|exx?on)\b/][inside("PT")] {
    689690        throwWarning: tr("PORTUGAL-O correto é Exxon e não EXXON ou exxon");
    690691}
    691 *[/name|brand|operator/ =~ /(?U)\b(REPSOL|repsol)\b/] {
     692*[/name|brand|operator/ =~ /(?U)\b(REPSOL|repsol)\b/][inside("PT")] {
    692693        throwWarning: tr("PORTUGAL-O correto é Repsol e não REPSOL ou repsol");
    693694}
    694 *[/name|brand|operator/ =~ /(?U)\b(SHELL?|shell?)\b/] {
     695*[/name|brand|operator/ =~ /(?U)\b(SHELL?|shell?)\b/][inside("PT")] {
    695696        throwWarning: tr("PORTUGAL-O correto é Shell e não SHELL ou shell");
    696697}
    697 *[amenity=fuel][/name|brand|operator/ =~ /(?U)\b(TOTAL|total)\b/] {
     698*[amenity=fuel][/name|brand|operator/ =~ /(?U)\b(TOTAL|total)\b/][inside("PT")] {
    698699        throwWarning: tr("PORTUGAL-O correto é Total e não TOTAL ou total");
    699700}
    700 *[amenity=fuel][/name|brand|operator/ =~ /(?U)\bMul?ti(\s?[óÓ]p?|\s?[ÓO]|\sOp?)ticas?\b/] {
     701*[amenity=fuel][/name|brand|operator/ =~ /(?U)\bMul?ti(\s?[óÓ]p?|\s?[ÓO]|\sOp?)ticas?\b/][inside("PT")] {
    701702        throwWarning: tr("PORTUGAL-O correto é MultiOpticas");
    702703}
    703 *[amenity=fuel][/name|brand|operator/ =~ /(?U)\b(L[ÍI]DE?L|l[íi]de?l|Líde?l)[Ee]?\b/] {
     704*[amenity=fuel][/name|brand|operator/ =~ /(?U)\b(L[ÍI]DE?L|l[íi]de?l|Líde?l)[Ee]?\b/][inside("PT")] {
    704705        throwWarning: tr("PORTUGAL-O correto é Lidl");
    705706}
    706 *[name][name =~ /(?U)\b(L[ÍI]DE?L|l[íi]de?l|Líde?l)[Ee]?\b/] {
     707*[name][name =~ /(?U)\b(L[ÍI]DE?L|l[íi]de?l|Líde?l)[Ee]?\b/][inside("PT")] {
    707708        throwWarning: tr("PORTUGAL-O correto é Lidl");
    708709}
    709 *[wikipedia][wikipedia !~ /^pt:/] {
     710*[wikipedia][wikipedia !~ /^pt:/][inside("PT")] {
    710711        throwWarning: tr("PORTUGAL-Usar prefixo em português (pt:) em {0}", "{0.key}");
    711712}
    712713area[/natural|landuse/] > node { set .area_ligada_via }
    713 way[highway][highway != pedestrian][!barrier] > node.area_ligada_via,
    714 way[railway] > node.area_ligada_via {
     714way[highway][highway != pedestrian][!barrier][inside("PT")] > node.area_ligada_via,
     715way[railway][inside("PT")] > node.area_ligada_via {
    715716        throwWarning: tr("PORTUGAL-Não é recomendável ter áreas de landuse ou natural ligados a estradas, rios ou ferrovias");
    716717}
    717718way[man_made=pipeline] > node { set .is_in_pipeline }
    718 way[highway] > node.is_in_pipeline,
    719 way[railway] > node.is_in_pipeline {
     719way[highway][inside("PT")] > node.is_in_pipeline,
     720way[railway[inside("PT")]] > node.is_in_pipeline {
    720721        throwWarning: tr("PORTUGAL-Pipeline não deve estar ligado a estradas ou ferrovias");
    721722}
    722723/* utilizar ; como separador de valores em source */
    723 *[source =~ /,/],
    724 *["source:ref" =~ /,/],
    725 *["source:name" =~ /,/] {
     724*[source =~ /,/][inside("PT")],
     725*["source:ref" =~ /,/][inside("PT")],
     726*["source:name" =~ /,/][inside("PT")] {
    726727        throwOther: tr("utilizar ; como separador de valores em {0}", "{0.key}");
    727728}
    728 *[/^(name|name:pt)$/ =~ /(?i)(?u)Posto (de )?Turismo/][name][information != office][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)(?U)\b(Parque|Estacionamento)\b/] {
     729*[/^(name|name:pt)$/ =~ /(?i)(?u)Posto (de )?Turismo/][name][information != office][!highway][/^(name|name:pt)$/ !~ /(?i)(?u)(?U)\b(Parque|Estacionamento)\b/][inside("PT")] {
    729730        throwWarning: tr("PORTUGAL-Posto de Turismo deve ter information=office e tourism=information");
    730731}
    731 *[capacity=0] {
     732*[capacity=0][inside("PT")] {
    732733        throwWarning: tr("PORTUGAL-Valor provavelmente errado de capacity=0");
    733734}
    734 *[ele][ele !~ /^[1-9][0-9]?[0-9]?[0-9]?(\.[0-9][0-9]?[0-9]?)?$/],
    735 *[ele > 2351],
    736 *[ele < 0] {
     735*[ele][ele !~ /^[1-9][0-9]?[0-9]?[0-9]?(\.[0-9][0-9]?[0-9]?)?$/][inside("PT")],
     736*[ele > 2351][inside("PT")],
     737*[ele < 0][inside("PT")] {
    737738        throwWarning: tr("PORTUGAL-ele tem de ser um número em metros e sem unidade de medida entre 0 e 2351 em Portugal");
    738739}
    739 area[name =~ /^(?i)(?u)Adro/][name][landuse != churchyard][!railway][!boundary][!place] {
     740area[name =~ /^(?i)(?u)Adro/][name][landuse != churchyard][!railway][!boundary][!place][inside("PT")] {
    740741        throwWarning: tr("PORTUGAL-Adro de igreja deve ter landuse=churchyard");
    741742}
    742 *[/^(name|name:pt)$/ =~ /^(?i)(?u)Cruzeiro/][name][historic != wayside_cross][!railway][!highway][!boundary][!place][!shop][!amenity] {
     743*[/^(name|name:pt)$/ =~ /^(?i)(?u)Cruzeiro/][name][historic != wayside_cross][!railway][!highway][!boundary][!place][!shop][!amenity][inside("PT")] {
    743744        throwWarning: tr("PORTUGAL-Cruzeiro ou cruz em zonas urbanas deve ter historic=wayside_cross");
    744745}
    745 *["addr:housenumber" =~ /^(?i)(?u)n\.?º?/] {
     746*["addr:housenumber" =~ /^(?i)(?u)n\.?º?/][inside("PT")] {
    746747        throwWarning: tr("PORTUGAL-addr:housenumber não deve ter NºX, apenas o número de porta");
    747748}
    748 *[building][ele][ele =~ /^[1-3]?[0-9]$/] {
     749*[building][ele][ele =~ /^[1-3]?[0-9]$/][inside("PT")] {
    749750        throwWarning: tr("PORTUGAL-Verificar: edifício com etiqueta ele com valores que parecem nº de andares, pode ser building:levels");
    750751}
    751 *[religion=christian][denomination=catholic][!route] {
     752*[religion=christian][denomination=catholic][!route][inside("PT")] {
    752753        throwWarning: tr("PORTUGAL-Locais de oração cristãos devem ter denomination=roman_catholic e não a genérica denomination=catholic");
    753754}
    754 *[name][name =~ /^(?i)(?u)Depósito de Água/][man_made][man_made != water_tower][!railway][!highway][!boundary][!place][!shop][!amenity] {
     755*[name][name =~ /^(?i)(?u)Depósito de Água/][man_made][man_made != water_tower][!railway][!highway][!boundary][!place][!shop][!amenity][inside("PT")] {
    755756        throwWarning: tr("PORTUGAL-Depósito de água deve ter man_made=water_tower");
    756757}
    757 *[name][name =~ /^(?i)(?u)Estádio/][leisure][leisure != stadium] {
     758*[name][name =~ /^(?i)(?u)Estádio/][leisure][leisure != stadium][inside("PT")] {
    758759        throwWarning: tr("PORTUGAL-Estádio deve ter leisure=stadium");
    759760}
    760 *[name][name =~ /^".*"$/] {
     761*[name][name =~ /^".*"$/][inside("PT")] {
    761762        throwWarning: tr("PORTUGAL-Nome que começa e termina com aspas, não são necessárias aspas para marcas ou nomes");
    762763}
    763 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Oliveiras?/][natural=tree][!genus],
    764 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Oliveiras?/][natural=tree][!leaf_cycle] {
     764*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Oliveiras?/][natural=tree][!genus][inside("PT")],
     765*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Oliveiras?/][natural=tree][!leaf_cycle][inside("PT")] {
    765766        throwWarning: tr("PORTUGAL-Oliveira deve ter genus=Olea e leaf_cycle=evergreen, retirar nome");
    766767}
    767 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!genus],
    768 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!leaf_cycle],
    769 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!leaf_type] {
     768*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!genus][inside("PT")],
     769*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!leaf_cycle][inside("PT")],
     770*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Plátanos?/][natural=tree][!leaf_type][inside("PT")] {
    770771        throwWarning: tr("PORTUGAL-Plátano deve ter genus=Platanus, leaf_cycle=deciduous e leaf_type=broadleaved, retirar nome");
    771772}
    772 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!genus],
    773 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!leaf_cycle],
    774 *[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!leaf_type] {
     773*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!genus][inside("PT")],
     774*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!leaf_cycle][inside("PT")],
     775*[/^(name|name:pt|note|description)$/ =~ /(?i)(?u)Pinheiros?/][natural=tree][!leaf_type][inside("PT")] {
    775776        throwWarning: tr("PORTUGAL-Pinheiro deve ter genus=Pinus, leaf_cycle=evergreen e leaf_type=needleleaved, retirar nome");
    776777}
    777 node[addr:housenumber] ∈ *[building][addr:housenumber] {
     778node[addr:housenumber][inside("PT")] ∈ *[building][addr:housenumber] {
    778779        throwWarning: tr("PORTUGAL-Nó com addr:housenumber dentro de edifício com addr:housenumber");
    779780}
    780 *["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})?)+$/] {
     781*["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})?)+$/][inside("PT")] {
    781782        throwWarning: tr("PORTUGAL-addr:housenumber com nº de telefone em vez de nº de porta");
    782783}
    783 *["addr:housenumber"]["addr:housenumber" =~ /(\\|-|,|\.|\/)/] {
     784*["addr:housenumber"]["addr:housenumber" =~ /(\\|-|,|\.|\/)/][inside("PT")] {
    784785        throwWarning: tr("PORTUGAL-Os nº em addr:housenumber devem ser separados por ponto e vírgula apenas");
    785786}
    786 *[name][name =~ /^(?i)(?u)((isto é Um )?Teste|(Para |A )?Testar|Experiência)$/] {
     787*[name][name =~ /^(?i)(?u)((isto é Um )?Teste|(Para |A )?Testar|Experiência)$/][inside("PT")] {
    787788        throwWarning: tr("PORTUGAL-Verificar: nome Teste");
    788789}
    789 *[!ref][name][name =~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/] {
     790*[!ref][name][name =~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/][inside("PT")] {
    790791                throwWarning: tr("PORTUGAL-name c/ referência da estrada mas sem ref, passar name para ref");
    791792}
    792 *[!ref]["name:pt"]["name:pt" =~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/] {
     793*[!ref]["name:pt"]["name:pt" =~ /^(E(\.|\s)?[NRM]|C(\.|\s)?M)(\.|\s)?[1-9]/][inside("PT")] {
    793794                throwWarning: tr("PORTUGAL-name:pt c/ referência da estrada mas sem ref, passar name:pt para ref");
    794795}
     
    796797
    797798
    798 
    799 
    800 
    801 
    802 
    803799/* AVISOS INFORMATIVOS */
    804800
    805801/* é útil ter o destino das saídas de estradas */
    806 *[highway = motorway_link][!destination] {
     802*[highway = motorway_link][!destination][inside("PT")] {
    807803        throwOther: tr("PORTUGAL- {0} sem etiqueta {1}", "{0.value}", "{1.key}");
    808804}
    809 *[place = city][!population],
    810 *[place = town][!population],
    811 *[place = village][!population] {
     805*[place = city][!population][inside("PT")],
     806*[place = town][!population][inside("PT")],
     807*[place = village][!population][inside("PT")] {
    812808        throwOther: tr("PORTUGAL- {0} sem etiqueta de população", "{0.value}");
    813809}
    814 *[place][place !~ /hamlet|island|isolated_dwelling|neighbourhood|suburb|village/][population < 10000] {
     810*[place][place !~ /hamlet|island|isolated_dwelling|neighbourhood|suburb|village/][population < 10000][inside("PT")] {
    815811        throwOther: tr("PORTUGAL-Verificar: local com <10.000 hab. deve ser village, EXCEPTO sedes de freguesia!");
    816812        fixAdd: "place=village";
    817813}
    818 *[place =~ /city|hamlet|isolated_dwelling|village/][population >= 10000][population < 100000] {
     814*[place =~ /city|hamlet|isolated_dwelling|village/][population >= 10000][population < 100000][inside("PT")] {
    819815        throwOther: tr("PORTUGAL-Verificar: local com 10.000-100.000 hab. deve ser town, EXCEPTO sedes de concelho!");
    820816        fixAdd: "place=town";
    821817}
    822 *[place =~ /hamlet|isolated_dwelling|town|village/][population >= 100000] {
     818*[place =~ /hamlet|isolated_dwelling|town|village/][population >= 100000][inside("PT")] {
    823819        throwOther: tr("PORTUGAL-Verificar: local com +100.000 hab. deve ser city, EXCEPTO capitais de distrito!");
    824820        fixAdd: "place=city";
    825821}
    826822/* é bom especificar o tipo de torre */
    827 node[man_made = tower][!"tower:type"] {
     823node[man_made = tower][!"tower:type"][inside("PT")] {
    828824        throwOther: tr("PORTUGAL-Ausência do tipo de torre ({0})", "{1.key}");
    829825}
    830 *[highway][highway !~ /construction|give_way|motorway_junction|proposed|raceway|speed_camera|stop/][!wheelchair],
    831 *[building][!wheelchair] {
     826*[highway][highway !~ /construction|give_way|motorway_junction|proposed|raceway|speed_camera|stop/][!wheelchair][inside("PT")],
     827*[building][!wheelchair][inside("PT")] {
    832828        throwOther: tr("PORTUGAL- {0} sem etiqueta de acessibilidade ({1})", "{0.key}", "{1.key}");
    833829}
     
    835831        throwOther: tr("PORTUGAL-Ausência do tempo de duração ({0}) do ferry", "{1.key}");
    836832}
    837 *[highway = service][!service] {
     833*[highway = service][!service][inside("PT")] {
    838834        throwOther: tr("PORTUGAL-Ausência do tipo de serviço ({0}) na {1}", "{1.key}", "{0.key}");
    839835}
    840 *[highway = track][!tracktype] {
     836*[highway = track][!tracktype][inside("PT")] {
    841837        throwOther: tr("PORTUGAL-Ausência do tipo de track ({0}) na {1}", "{1.key}", "{0.key}");
    842838}
    843839/* número de faixas apenas para rodovias maiores e links */
    844 way[highway =~ /motorway|trunk|primary|secondary|tertiary/][!lanes],
    845 way[highway $= _link][!lanes] {
     840way[highway =~ /motorway|trunk|primary|secondary|tertiary/][!lanes][inside("PT")],
     841way[highway $= _link][!lanes][inside("PT")] {
    846842        throwOther: tr("PORTUGAL- {0} sem número de faixas ({1}) definido", "{0.key}", "{1.key}");
    847843}
    848 way[highway][!surface][highway != bus_stop] {
     844way[highway][!surface][highway != bus_stop][inside("PT")] {
    849845        throwOther: tr("PORTUGAL- {0} sem superfície ({1}) definida", "{0.key}", "{1.key}");
    850846}
    851 node[amenity = place_of_worship] {
     847node[amenity = place_of_worship][inside("PT")] {
    852848        throwOther: tr("PORTUGAL-local de oração num nó, é melhor num edifício");
    853849}
    854 node[highway=speed_camera][!maxspeed],
    855 relation[enforcement=maxspeed][!maxspeed],
    856 relation[enforcement=maxheight][!maxheight],
    857 relation[enforcement=maxweight][!maxweight] {
     850node[highway=speed_camera][!maxspeed][inside("PT")],
     851relation[enforcement=maxspeed][!maxspeed][inside("PT")],
     852relation[enforcement=maxheight][!maxheight][inside("PT")],
     853relation[enforcement=maxweight][!maxweight][inside("PT")] {
    858854        throwOther: tr("PORTUGAL-Adicionar {0} ao {1}", "{1.key}", "{0.tag}");
    859855}
    860 node[junction=roundabout] {
    861         throwWarning: tr("PORTUGAL-Rotunda num nó, é melhor num círculo");
    862 }
     856
    863857}}}