summaryrefslogtreecommitdiff
path: root/src/pl
diff options
context:
space:
mode:
authorPeter Eisentraut2021-05-10 12:32:18 +0000
committerPeter Eisentraut2021-05-10 12:32:18 +0000
commit4c7ba553bad0254aaaf525668cc1cdb2eb8fcc92 (patch)
tree4b9b0d00d83de388463d153f17dcd1309de71de4 /src/pl
parent0d204a4b09f74f2c2ca0d099d5a44ce422d6978d (diff)
Translation updates
Source-Git-URL: git://git.postgresql.org/git/pgtranslation/messages.git Source-Git-Hash: 832086c7a50768dd7a8c548ab063037741530ddf
Diffstat (limited to 'src/pl')
-rw-r--r--src/pl/plperl/po/pt_BR.po108
-rw-r--r--src/pl/plpgsql/src/po/pt_BR.po451
-rw-r--r--src/pl/plpython/po/pt_BR.po273
-rw-r--r--src/pl/tcl/nls.mk2
-rw-r--r--src/pl/tcl/po/pt_BR.po112
5 files changed, 559 insertions, 387 deletions
diff --git a/src/pl/plperl/po/pt_BR.po b/src/pl/plperl/po/pt_BR.po
index ff6a1f8686c..523cd909a5d 100644
--- a/src/pl/plperl/po/pt_BR.po
+++ b/src/pl/plperl/po/pt_BR.po
@@ -1,16 +1,18 @@
# Brazilian Portuguese message translation file for plperl
-# Copyright (C) 2009 PostgreSQL Global Development Group
+#
+# Copyright (C) 2009-2021 PostgreSQL Global Development Group
# This file is distributed under the same license as the PostgreSQL package.
-# Euler Taveira de Oliveira <euler@timbira.com>, 2009-2016.
+#
+# Euler Taveira <euler@eulerto.com>, 2009-2021.
#
msgid ""
msgstr ""
-"Project-Id-Version: PostgreSQL 9.6\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-08-09 22:53-0300\n"
+"Project-Id-Version: PostgreSQL 13\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-05-09 21:41-0300\n"
"PO-Revision-Date: 2009-05-10 01:12-0300\n"
-"Last-Translator: Euler Taveira de Oliveira <euler@timbira.com>\n"
-"Language-Team: Brazilian Portuguese <pgbr-dev@listas.postgresql.org.br>\n"
+"Last-Translator: Euler Taveira <euler@eulerto.com>\n"
+"Language-Team: Brazilian Portuguese <pgsql-translators@postgresql.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -37,184 +39,184 @@ msgstr "Código de inicialização Perl executado quando plperlu for utilizado p
msgid "cannot allocate multiple Perl interpreters on this platform"
msgstr "não pode alocar múltiplos interpretadores Perl nessa plataforma"
-#: plperl.c:666 plperl.c:841 plperl.c:847 plperl.c:961 plperl.c:973
-#: plperl.c:1016 plperl.c:1037 plperl.c:2080 plperl.c:2189 plperl.c:2256
-#: plperl.c:2318
+#: plperl.c:669 plperl.c:853 plperl.c:859 plperl.c:976 plperl.c:988
+#: plperl.c:1031 plperl.c:1054 plperl.c:2136 plperl.c:2244 plperl.c:2312
+#: plperl.c:2375
#, c-format
msgid "%s"
msgstr "%s"
-#: plperl.c:667
+#: plperl.c:670
#, c-format
msgid "while executing PostgreSQL::InServer::SPI::bootstrap"
msgstr "ao executar PostgreSQL::InServer::SPI::bootstrap"
-#: plperl.c:842
+#: plperl.c:854
#, c-format
msgid "while parsing Perl initialization"
msgstr "ao analisar código de inicialização Perl"
-#: plperl.c:848
+#: plperl.c:860
#, c-format
msgid "while running Perl initialization"
msgstr "ao executar código de inicialização Perl"
-#: plperl.c:962
+#: plperl.c:977
#, c-format
msgid "while executing PLC_TRUSTED"
msgstr "ao executar PLC_TRUSTED"
-#: plperl.c:974
+#: plperl.c:989
#, c-format
msgid "while executing utf8fix"
msgstr "ao executar utf8fix"
-#: plperl.c:1017
+#: plperl.c:1032
#, c-format
msgid "while executing plperl.on_plperl_init"
msgstr "ao executar plperl.on_plperl_init"
-#: plperl.c:1038
+#: plperl.c:1055
#, c-format
msgid "while executing plperl.on_plperlu_init"
msgstr "ao executar plperl.on_plperlu_init"
-#: plperl.c:1082 plperl.c:1722
+#: plperl.c:1101 plperl.c:1789
#, c-format
msgid "Perl hash contains nonexistent column \"%s\""
msgstr "hash Perl contém coluna inexistente \"%s\""
-#: plperl.c:1167
+#: plperl.c:1106 plperl.c:1794
+#, c-format
+msgid "cannot set system attribute \"%s\""
+msgstr "não pode definir atributo do sistema \"%s\""
+
+#: plperl.c:1194
#, c-format
msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
msgstr "número de dimensões da matriz (%d) excede o máximo permitido (%d)"
-#: plperl.c:1179 plperl.c:1196
+#: plperl.c:1206 plperl.c:1223
#, c-format
msgid "multidimensional arrays must have array expressions with matching dimensions"
msgstr "matrizes multidimensionais devem ter expressões de matriz com dimensões correspondentes"
-#: plperl.c:1231
+#: plperl.c:1259
#, c-format
msgid "cannot convert Perl array to non-array type %s"
msgstr "não pode converter array Perl para tipo que não é array %s"
-#: plperl.c:1333
+#: plperl.c:1362
#, c-format
msgid "cannot convert Perl hash to non-composite type %s"
msgstr "não pode converter hash Perl para tipo não-composto %s"
-#: plperl.c:1344
+#: plperl.c:1384 plperl.c:3284
#, c-format
msgid "function returning record called in context that cannot accept type record"
msgstr "função que retorna record foi chamada em um contexto que não pode aceitar tipo record"
-#: plperl.c:1359
-#, c-format
-msgid "PL/Perl function must return reference to hash or array"
-msgstr "função PL/Perl deve retornar referência a um hash ou uma matriz"
-
-#: plperl.c:1396
+#: plperl.c:1443
#, c-format
msgid "lookup failed for type %s"
msgstr "falhou ao pesquisar por tipo %s"
-#: plperl.c:1699
+#: plperl.c:1764
#, c-format
msgid "$_TD->{new} does not exist"
msgstr "$_TD->{new} não existe"
-#: plperl.c:1703
+#: plperl.c:1768
#, c-format
msgid "$_TD->{new} is not a hash reference"
msgstr "$_TD->{new} não é uma referência hash"
-#: plperl.c:1956 plperl.c:2790
+#: plperl.c:1799
+#, c-format
+msgid "cannot set generated column \"%s\""
+msgstr "não pode definir coluna gerada \"%s\""
+
+#: plperl.c:2011 plperl.c:2849
#, c-format
msgid "PL/Perl functions cannot return type %s"
msgstr "funções PL/Perl não podem retornar tipo %s"
-#: plperl.c:1969 plperl.c:2835
+#: plperl.c:2024 plperl.c:2890
#, c-format
msgid "PL/Perl functions cannot accept type %s"
msgstr "funções PL/Perl não podem aceitar tipo %s"
-#: plperl.c:2085
+#: plperl.c:2141
#, c-format
msgid "didn't get a CODE reference from compiling function \"%s\""
msgstr "não obteve uma referência CODE da compilação da função \"%s\""
-#: plperl.c:2177
+#: plperl.c:2232
#, c-format
msgid "didn't get a return item from function"
msgstr "não obteve um item de retorno da função"
-#: plperl.c:2220 plperl.c:2286
+#: plperl.c:2276 plperl.c:2343
#, c-format
msgid "couldn't fetch $_TD"
msgstr "não pôde obter $_TD"
-#: plperl.c:2244 plperl.c:2306
+#: plperl.c:2300 plperl.c:2363
#, c-format
msgid "didn't get a return item from trigger function"
msgstr "não obteve um item de retorno da função de gatilho"
-#: plperl.c:2363
+#: plperl.c:2422
#, c-format
msgid "set-valued function called in context that cannot accept a set"
msgstr "função que tem argumento do tipo conjunto foi chamada em um contexto que não pode aceitar um conjunto"
-#: plperl.c:2407
+#: plperl.c:2467
#, c-format
msgid "set-returning PL/Perl function must return reference to array or use return_next"
msgstr "funçao PL/Perl que retorna conjunto deve retornar referência para matriz ou usar return_next"
-#: plperl.c:2521
+#: plperl.c:2588
#, c-format
msgid "ignoring modified row in DELETE trigger"
msgstr "ignorando registro modificado em gatilho DELETE"
-#: plperl.c:2529
+#: plperl.c:2596
#, c-format
msgid "result of PL/Perl trigger function must be undef, \"SKIP\", or \"MODIFY\""
msgstr "resultado da função de gatilho PL/Perl deve ser undef, \"SKIP\" ou \"MODIFY\""
-#: plperl.c:2708 plperl.c:2718
-#, c-format
-msgid "out of memory"
-msgstr "sem memória"
-
-#: plperl.c:2782
+#: plperl.c:2844
#, c-format
msgid "trigger functions can only be called as triggers"
msgstr "funções de gatilho só podem ser chamadas como gatilhos"
-#: plperl.c:3121
+#: plperl.c:3191
#, c-format
msgid "query result has too many rows to fit in a Perl array"
msgstr "resultado da consulta tem muitos registros para caber em um array Perl"
-#: plperl.c:3166
+#: plperl.c:3261
#, c-format
msgid "cannot use return_next in a non-SETOF function"
msgstr "não pode utilizar return_next em uma função que não retorna conjunto"
-#: plperl.c:3222
+#: plperl.c:3335
#, c-format
msgid "SETOF-composite-returning PL/Perl function must call return_next with reference to hash"
msgstr "função PL/Perl que retorna um conjunto de tipo composto deve chamar return_next com referência a um hash"
-#: plperl.c:3954
+#: plperl.c:4110
#, c-format
msgid "PL/Perl function \"%s\""
msgstr "função PL/Perl \"%s\""
-#: plperl.c:3966
+#: plperl.c:4122
#, c-format
msgid "compilation of PL/Perl function \"%s\""
msgstr "compilação da função PL/Perl \"%s\""
-#: plperl.c:3975
+#: plperl.c:4131
#, c-format
msgid "PL/Perl anonymous code block"
msgstr "bloco de código PL/Perl anônimo"
diff --git a/src/pl/plpgsql/src/po/pt_BR.po b/src/pl/plpgsql/src/po/pt_BR.po
index d6b3a0b32a8..764015db7de 100644
--- a/src/pl/plpgsql/src/po/pt_BR.po
+++ b/src/pl/plpgsql/src/po/pt_BR.po
@@ -1,165 +1,167 @@
# Brazilian Portuguese message translation file for plpgsql
-# Copyright (C) 2010 PostgreSQL Global Development Group
+#
+# Copyright (C) 2010-2021 PostgreSQL Global Development Group
# This file is distributed under the same license as the PostgreSQL package.
-# Euler Taveira de Oliveira <euler@timbira.com>, 2010-2016.
+#
+# Euler Taveira <euler@eulerto.com>, 2010-2021.
#
msgid ""
msgstr ""
-"Project-Id-Version: PostgreSQL 9.6\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-08-09 22:53-0300\n"
+"Project-Id-Version: PostgreSQL 13\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-05-09 21:45-0300\n"
"PO-Revision-Date: 2010-07-08 17:13-0300\n"
-"Last-Translator: Euler Taveira de Oliveira <euler@timbira.com>\n"
-"Language-Team: Brazilian Portuguese <pgbr-dev@listas.postgresql.org.br>\n"
+"Last-Translator: Euler Taveira <euler@eulerto.com>\n"
+"Language-Team: Brazilian Portuguese <pgsql-translators@postgresql.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
-#: pl_comp.c:432 pl_handler.c:450
+#: pl_comp.c:436 pl_handler.c:471
#, c-format
msgid "PL/pgSQL functions cannot accept type %s"
msgstr "funções PL/pgSQL não podem aceitar tipo %s"
-#: pl_comp.c:513
+#: pl_comp.c:526
#, c-format
msgid "could not determine actual return type for polymorphic function \"%s\""
msgstr "não pôde determinar tipo de retorno atual para função polimófica \"%s\""
-#: pl_comp.c:543
+#: pl_comp.c:556
#, c-format
msgid "trigger functions can only be called as triggers"
msgstr "funções de gatilho só podem ser chamadas como gatilhos"
-#: pl_comp.c:547 pl_handler.c:435
+#: pl_comp.c:560 pl_handler.c:455
#, c-format
msgid "PL/pgSQL functions cannot return type %s"
msgstr "funções PL/pgSQL não podem retornar tipo %s"
-#: pl_comp.c:588
+#: pl_comp.c:600
#, c-format
msgid "trigger functions cannot have declared arguments"
msgstr "funções de gatilho não podem ter argumentos declarados"
-#: pl_comp.c:589
+#: pl_comp.c:601
#, c-format
msgid "The arguments of the trigger can be accessed through TG_NARGS and TG_ARGV instead."
msgstr "Os argumentos de um gatilho podem ser acessados através de TG_NARGS e TG_ARGV."
-#: pl_comp.c:691
+#: pl_comp.c:734
#, c-format
msgid "event trigger functions cannot have declared arguments"
msgstr "funções de gatilho de eventos não podem ter argumentos declarados"
-#: pl_comp.c:944
+#: pl_comp.c:997
#, c-format
msgid "compilation of PL/pgSQL function \"%s\" near line %d"
msgstr "compilação da função PL/pgSQL \"%s\" próximo a linha %d"
-#: pl_comp.c:967
+#: pl_comp.c:1020
#, c-format
msgid "parameter name \"%s\" used more than once"
msgstr "nome de parâmetro \"%s\" foi especificado mais de uma vez"
-#: pl_comp.c:1077
+#: pl_comp.c:1132
#, c-format
msgid "column reference \"%s\" is ambiguous"
msgstr "referência à coluna \"%s\" é ambígua"
-#: pl_comp.c:1079
+#: pl_comp.c:1134
#, c-format
msgid "It could refer to either a PL/pgSQL variable or a table column."
msgstr "Ela poderia referenciar uma variável PL/pgSQL ou uma coluna de tabela."
-#: pl_comp.c:1259 pl_comp.c:1287 pl_exec.c:4395 pl_exec.c:4744 pl_exec.c:4829
-#: pl_exec.c:4920
+#: pl_comp.c:1317 pl_exec.c:5218 pl_exec.c:5583 pl_exec.c:5670 pl_exec.c:5761
+#: pl_exec.c:6749
#, c-format
msgid "record \"%s\" has no field \"%s\""
msgstr "registro \"%s\" não tem campo \"%s\""
-#: pl_comp.c:1818
+#: pl_comp.c:1793
#, c-format
msgid "relation \"%s\" does not exist"
msgstr "relação \"%s\" não existe"
-#: pl_comp.c:1927
+#: pl_comp.c:1891
#, c-format
msgid "variable \"%s\" has pseudo-type %s"
msgstr "variável \"%s\" tem pseudo-tipo %s"
-#: pl_comp.c:1994
-#, c-format
-msgid "relation \"%s\" is not a table"
-msgstr "relação \"%s\" não é uma tabela"
-
-#: pl_comp.c:2154
+#: pl_comp.c:2080
#, c-format
msgid "type \"%s\" is only a shell"
msgstr "tipo \"%s\" é indefinido"
-#: pl_comp.c:2243 pl_comp.c:2296
+#: pl_comp.c:2162 pl_exec.c:7050
+#, c-format
+msgid "type %s is not composite"
+msgstr "tipo %s não é composto"
+
+#: pl_comp.c:2210 pl_comp.c:2263
#, c-format
msgid "unrecognized exception condition \"%s\""
msgstr "condição de exceção \"%s\" é desconhecida"
-#: pl_comp.c:2503
+#: pl_comp.c:2484
#, c-format
msgid "could not determine actual argument type for polymorphic function \"%s\""
msgstr "não pôde determinar tipo do argumento atual para função polimórfica \"%s\""
-#: pl_exec.c:324 pl_exec.c:612 pl_exec.c:872
+#: pl_exec.c:498 pl_exec.c:935 pl_exec.c:1173
msgid "during initialization of execution state"
msgstr "durante inicialização de estado de execução"
-#: pl_exec.c:331
+#: pl_exec.c:504
msgid "while storing call arguments into local variables"
msgstr "ao armazenar argumentos em variáveis locais"
-#: pl_exec.c:416 pl_exec.c:760
+#: pl_exec.c:592 pl_exec.c:1008
msgid "during function entry"
msgstr "durante entrada da função"
-#: pl_exec.c:441
+#: pl_exec.c:617
#, c-format
msgid "control reached end of function without RETURN"
msgstr "controle atingiu o fim da função sem RETURN"
-#: pl_exec.c:448
+#: pl_exec.c:624
msgid "while casting return value to function's return type"
msgstr "ao converter valor de retorno para tipo de retorno da função"
-#: pl_exec.c:461 pl_exec.c:2938
+#: pl_exec.c:637 pl_exec.c:3653
#, c-format
msgid "set-valued function called in context that cannot accept a set"
msgstr "função que tem argumento do tipo conjunto foi chamada em um contexto que não pode aceitar um conjunto"
-#: pl_exec.c:499 pl_exec.c:2779
-msgid "returned record type does not match expected record type"
-msgstr "tipo record retornado não corresponde ao tipo record esperado"
-
-#: pl_exec.c:554 pl_exec.c:789 pl_exec.c:907
+#: pl_exec.c:763 pl_exec.c:1037 pl_exec.c:1198
msgid "during function exit"
msgstr "durante saída da função"
-#: pl_exec.c:785 pl_exec.c:903
+#: pl_exec.c:818 pl_exec.c:882 pl_exec.c:3498
+msgid "returned record type does not match expected record type"
+msgstr "tipo record retornado não corresponde ao tipo record esperado"
+
+#: pl_exec.c:1033 pl_exec.c:1194
#, c-format
msgid "control reached end of trigger procedure without RETURN"
msgstr "controle atingiu o fim da função de gatilho sem RETURN"
-#: pl_exec.c:794
+#: pl_exec.c:1042
#, c-format
msgid "trigger procedure cannot return a set"
msgstr "função de gatilho não pode retornar um conjunto"
-#: pl_exec.c:816
+#: pl_exec.c:1081 pl_exec.c:1109
msgid "returned row structure does not match the structure of the triggering table"
msgstr "estrutura de registro retornada não corresponde a estrutura da tabela que disparou o evento"
#. translator: last %s is a phrase such as "during statement block
#. local variable initialization"
#.
-#: pl_exec.c:954
+#: pl_exec.c:1244
#, c-format
msgid "PL/pgSQL function %s line %d %s"
msgstr "função PL/pgSQL %s linha %d %s"
@@ -167,311 +169,345 @@ msgstr "função PL/pgSQL %s linha %d %s"
#. translator: last %s is a phrase such as "while storing call
#. arguments into local variables"
#.
-#: pl_exec.c:965
+#: pl_exec.c:1255
#, c-format
msgid "PL/pgSQL function %s %s"
msgstr "função PL/pgSQL %s %s"
#. translator: last %s is a plpgsql statement type name
-#: pl_exec.c:973
+#: pl_exec.c:1263
#, c-format
msgid "PL/pgSQL function %s line %d at %s"
msgstr "função PL/pgSQL %s linha %d em %s"
-#: pl_exec.c:979
+#: pl_exec.c:1269
#, c-format
msgid "PL/pgSQL function %s"
msgstr "função PL/pgSQL %s"
-#: pl_exec.c:1089
+#: pl_exec.c:1607
msgid "during statement block local variable initialization"
msgstr "durante inicialização de variável local em bloco de comandos"
-#: pl_exec.c:1128
-#, c-format
-msgid "variable \"%s\" declared NOT NULL cannot default to NULL"
-msgstr "variável \"%s\" declarada NOT NULL não pode ter valor padrão NULL"
-
-#: pl_exec.c:1178
+#: pl_exec.c:1705
msgid "during statement block entry"
msgstr "durante entrada em bloco de comandos"
-#: pl_exec.c:1199
+#: pl_exec.c:1737
msgid "during statement block exit"
msgstr "durante saída em bloco de comandos"
-#: pl_exec.c:1242
+#: pl_exec.c:1775
msgid "during exception cleanup"
msgstr "durante término de exceção"
-#: pl_exec.c:1593
+#: pl_exec.c:2304
+#, c-format
+msgid "procedure parameter \"%s\" is an output parameter but corresponding argument is not writable"
+msgstr "parâmetro \"%s\" do procedimento é um parâmetro de saída mas o argumento correspondente não permite escrita"
+
+#: pl_exec.c:2309
+#, c-format
+msgid "procedure parameter %d is an output parameter but corresponding argument is not writable"
+msgstr "parâmetro %d do procedimento é um parâmetro de saída mas o argumento correspondente não permite escrita"
+
+#: pl_exec.c:2437
#, c-format
msgid "GET STACKED DIAGNOSTICS cannot be used outside an exception handler"
msgstr "GET STACKED DIAGNOSTICS não pode ser utilizado fora de um manipulador de exceção"
-#: pl_exec.c:1789
+#: pl_exec.c:2637
#, c-format
msgid "case not found"
msgstr "case não foi encontrado"
-#: pl_exec.c:1790
+#: pl_exec.c:2638
#, c-format
msgid "CASE statement is missing ELSE part."
msgstr "comando CASE está faltando a parte ELSE."
-#: pl_exec.c:1944
+#: pl_exec.c:2731
#, c-format
msgid "lower bound of FOR loop cannot be null"
msgstr "limite inferior do laço FOR não pode ser nulo"
-#: pl_exec.c:1960
+#: pl_exec.c:2747
#, c-format
msgid "upper bound of FOR loop cannot be null"
msgstr "limite superior do laço FOR não pode ser nulo"
-#: pl_exec.c:1978
+#: pl_exec.c:2765
#, c-format
msgid "BY value of FOR loop cannot be null"
msgstr "valor BY do laço FOR não pode ser nulo"
-#: pl_exec.c:1984
+#: pl_exec.c:2771
#, c-format
msgid "BY value of FOR loop must be greater than zero"
msgstr "valor BY do laço FOR deve ser maior do que zero"
-#: pl_exec.c:2153 pl_exec.c:3912
+#: pl_exec.c:2905 pl_exec.c:4632
#, c-format
msgid "cursor \"%s\" already in use"
msgstr "cursor \"%s\" já está em uso"
-#: pl_exec.c:2176 pl_exec.c:3974
+#: pl_exec.c:2928 pl_exec.c:4697
#, c-format
msgid "arguments given for cursor without arguments"
msgstr "argumentos fornecidos a cursor sem argumentos"
-#: pl_exec.c:2195 pl_exec.c:3993
+#: pl_exec.c:2947 pl_exec.c:4716
#, c-format
msgid "arguments required for cursor"
msgstr "argumentos requeridos pelo cursor"
-#: pl_exec.c:2280
+#: pl_exec.c:3034
#, c-format
msgid "FOREACH expression must not be null"
msgstr "expressão FOREACH não deve ser nula"
-#: pl_exec.c:2286
+#: pl_exec.c:3049
#, c-format
msgid "FOREACH expression must yield an array, not type %s"
msgstr "expressão FOREACH deve produzir uma matriz, e não tipo %s"
-#: pl_exec.c:2303
+#: pl_exec.c:3066
#, c-format
msgid "slice dimension (%d) is out of the valid range 0..%d"
msgstr "fatia da dimensão (%d) está fora do intervalo válido, 0..%d"
-#: pl_exec.c:2330
+#: pl_exec.c:3093
#, c-format
msgid "FOREACH ... SLICE loop variable must be of an array type"
msgstr "variável do laço FOREACH ... SLICE deve ser de um tipo matriz"
-#: pl_exec.c:2334
+#: pl_exec.c:3097
#, c-format
msgid "FOREACH loop variable must not be of an array type"
msgstr "variável do laço FOREACH não deve ser de um tipo matriz"
-#: pl_exec.c:2522 pl_exec.c:2604 pl_exec.c:2771
+#: pl_exec.c:3259 pl_exec.c:3316 pl_exec.c:3491
#, c-format
msgid "cannot return non-composite value from function returning composite type"
msgstr "não pode retornar valor não-composto de função que retorna tipo composto"
-#: pl_exec.c:2648 pl_gram.y:3190
+#: pl_exec.c:3355 pl_gram.y:3307
#, c-format
msgid "cannot use RETURN NEXT in a non-SETOF function"
msgstr "não pode utilizar RETURN NEXT em uma função que não foi declarada SETOF"
-#: pl_exec.c:2682 pl_exec.c:2813
+#: pl_exec.c:3396 pl_exec.c:3528
#, c-format
msgid "wrong result type supplied in RETURN NEXT"
msgstr "tipo resultante incorreto foi fornecido em RETURN NEXT"
-#: pl_exec.c:2711 pl_exec.c:4382 pl_exec.c:4711 pl_exec.c:4737 pl_exec.c:4803
-#: pl_exec.c:4822 pl_exec.c:4890 pl_exec.c:4913
-#, c-format
-msgid "record \"%s\" is not assigned yet"
-msgstr "registro \"%s\" não foi atribuído ainda"
-
-#: pl_exec.c:2713 pl_exec.c:4384 pl_exec.c:4713 pl_exec.c:4739 pl_exec.c:4805
-#: pl_exec.c:4824 pl_exec.c:4892 pl_exec.c:4915
-#, c-format
-msgid "The tuple structure of a not-yet-assigned record is indeterminate."
-msgstr "A estrutura da tupla de um registro não atribuído é indeterminada."
-
-#: pl_exec.c:2717 pl_exec.c:2737
+#: pl_exec.c:3434 pl_exec.c:3455
#, c-format
msgid "wrong record type supplied in RETURN NEXT"
msgstr "tipo registro incorreto foi fornecido em RETURN NEXT"
-#: pl_exec.c:2832
+#: pl_exec.c:3547
#, c-format
msgid "RETURN NEXT must have a parameter"
msgstr "RETURN NEXT deve ter um parâmetro"
-#: pl_exec.c:2865 pl_gram.y:3252
+#: pl_exec.c:3573 pl_gram.y:3371
#, c-format
msgid "cannot use RETURN QUERY in a non-SETOF function"
msgstr "não pode utilizar RETURN QUERY em uma função que não foi declarada SETOF"
-#: pl_exec.c:2886
+#: pl_exec.c:3597
msgid "structure of query does not match function result type"
msgstr "estrutura da consulta não corresponde ao tipo resultante da função"
-#: pl_exec.c:2966 pl_exec.c:3096
+#: pl_exec.c:3681 pl_exec.c:3819
#, c-format
msgid "RAISE option already specified: %s"
msgstr "opção RAISE já foi especificada: %s"
-#: pl_exec.c:2999
+#: pl_exec.c:3715
#, c-format
msgid "RAISE without parameters cannot be used outside an exception handler"
msgstr "RAISE sem parâmetros não pode ser utilizado fora de um manipulador de exceção"
-#: pl_exec.c:3086
+#: pl_exec.c:3809
#, c-format
msgid "RAISE statement option cannot be null"
msgstr "opção do comando RAISE não pode ser nulo"
-#: pl_exec.c:3155
+#: pl_exec.c:3879
#, c-format
msgid "%s"
msgstr "%s"
-#: pl_exec.c:3226
+#: pl_exec.c:3934
#, c-format
msgid "assertion failed"
msgstr "asserção falhou"
-#: pl_exec.c:3418 pl_exec.c:3562 pl_exec.c:3751
+#: pl_exec.c:4281 pl_exec.c:4471
#, c-format
msgid "cannot COPY to/from client in PL/pgSQL"
msgstr "não pode executar COPY para/do cliente em PL/pgSQL"
-#: pl_exec.c:3422 pl_exec.c:3566 pl_exec.c:3755
-#, c-format
-msgid "cannot begin/end transactions in PL/pgSQL"
-msgstr "não pode iniciar/terminar transações em PL/pgSQL"
-
-#: pl_exec.c:3423 pl_exec.c:3567 pl_exec.c:3756
+#: pl_exec.c:4287
#, c-format
-msgid "Use a BEGIN block with an EXCEPTION clause instead."
-msgstr "Ao invés disso utilize um bloco BEGIN com uma cláusula EXCEPTION."
+msgid "unsupported transaction command in PL/pgSQL"
+msgstr "comando de controle de transação não é suportado em PL/pgSQL"
-#: pl_exec.c:3590 pl_exec.c:3780
+#: pl_exec.c:4310 pl_exec.c:4500
#, c-format
msgid "INTO used with a command that cannot return data"
msgstr "INTO utilizado com um comando que não pode retornar dados"
-#: pl_exec.c:3618 pl_exec.c:3808
+#: pl_exec.c:4333 pl_exec.c:4523
#, c-format
msgid "query returned no rows"
msgstr "consulta não retornou registros"
-#: pl_exec.c:3637 pl_exec.c:3827
+#: pl_exec.c:4355 pl_exec.c:4542
#, c-format
msgid "query returned more than one row"
msgstr "consulta retornou mais de um registro"
-#: pl_exec.c:3654
+#: pl_exec.c:4357
+#, c-format
+msgid "Make sure the query returns a single row, or use LIMIT 1."
+msgstr "Certifique-se que a consulta retorna um único registro, ou utilize LIMIT 1."
+
+#: pl_exec.c:4373
#, c-format
msgid "query has no destination for result data"
msgstr "consulta não tem destino para os dados resultantes"
-#: pl_exec.c:3655
+#: pl_exec.c:4374
#, c-format
msgid "If you want to discard the results of a SELECT, use PERFORM instead."
msgstr "Se você quer descartar os resultados de um SELECT, utilize PERFORM."
-#: pl_exec.c:3687 pl_exec.c:7128
+#: pl_exec.c:4407 pl_exec.c:8729
#, c-format
msgid "query string argument of EXECUTE is null"
msgstr "argumento da cadeia de caracteres do EXECUTE é nulo"
-#: pl_exec.c:3743
+#: pl_exec.c:4463
#, c-format
msgid "EXECUTE of SELECT ... INTO is not implemented"
msgstr "EXECUTE de SELECT ... INTO não está implementado"
-#: pl_exec.c:3744
+#: pl_exec.c:4464
#, c-format
msgid "You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS instead."
msgstr "Ao invés disso, você pode querer utilizar EXECUTE ... INTO ou EXECUTE CREATE TABLE ... AS."
-#: pl_exec.c:4056 pl_exec.c:4148
+#: pl_exec.c:4477
+#, c-format
+msgid "EXECUTE of transaction commands is not implemented"
+msgstr "EXECUTE de comandos de controle de transação não está implementado"
+
+#: pl_exec.c:4778 pl_exec.c:4866
#, c-format
msgid "cursor variable \"%s\" is null"
msgstr "variável do cursor \"%s\" é nula"
-#: pl_exec.c:4063 pl_exec.c:4155
+#: pl_exec.c:4789 pl_exec.c:4877
#, c-format
msgid "cursor \"%s\" does not exist"
msgstr "cursor \"%s\" não existe"
-#: pl_exec.c:4077
+#: pl_exec.c:4802
#, c-format
msgid "relative or absolute cursor position is null"
msgstr "posição relativa ou absoluta do cursor é nula"
-#: pl_exec.c:4257
+#: pl_exec.c:5068 pl_exec.c:5163
#, c-format
msgid "null value cannot be assigned to variable \"%s\" declared NOT NULL"
msgstr "valor nulo não pode ser atribuído a variável \"%s\" declarada NOT NULL"
-#: pl_exec.c:4326
+#: pl_exec.c:5144
#, c-format
msgid "cannot assign non-composite value to a row variable"
msgstr "não pode atribuir valor que não é composto a variável do tipo row"
-#: pl_exec.c:4350
+#: pl_exec.c:5176
#, c-format
msgid "cannot assign non-composite value to a record variable"
msgstr "não pode atribuir valor que não é composto a variável do tipo record"
-#: pl_exec.c:4493
+#: pl_exec.c:5227
+#, c-format
+msgid "cannot assign to system column \"%s\""
+msgstr "não pode atribuir a coluna do sistema \"%s\""
+
+#: pl_exec.c:5291
#, c-format
msgid "number of array dimensions (%d) exceeds the maximum allowed (%d)"
msgstr "número de dimensões da matriz (%d) excede o máximo permitido (%d)"
-#: pl_exec.c:4525
+#: pl_exec.c:5323
#, c-format
msgid "subscripted object is not an array"
msgstr "objeto com índice não é uma matriz"
-#: pl_exec.c:4562
+#: pl_exec.c:5361
#, c-format
msgid "array subscript in assignment must not be null"
msgstr "índice da matriz em atribuição não deve ser nulo"
-#: pl_exec.c:5029
+#: pl_exec.c:5868
#, c-format
msgid "query \"%s\" did not return data"
msgstr "consulta \"%s\" não retornou dados"
-#: pl_exec.c:5037
+#: pl_exec.c:5876
#, c-format
msgid "query \"%s\" returned %d column"
msgid_plural "query \"%s\" returned %d columns"
msgstr[0] "consulta \"%s\" retornou %d coluna"
msgstr[1] "consulta \"%s\" retornou %d colunas"
-#: pl_exec.c:5064
+#: pl_exec.c:5904
#, c-format
msgid "query \"%s\" returned more than one row"
msgstr "consulta \"%s\" retornou mais do que um registro"
-#: pl_exec.c:5128
+#: pl_exec.c:5967
#, c-format
msgid "query \"%s\" is not a SELECT"
msgstr "consulta \"%s\" não é um SELECT"
+#: pl_exec.c:6763 pl_exec.c:6803 pl_exec.c:6843
+#, c-format
+msgid "type of parameter %d (%s) does not match that when preparing the plan (%s)"
+msgstr "tipo de parâmetro %d (%s) não corresponde aquele ao preparar o plano (%s)"
+
+#: pl_exec.c:7254 pl_exec.c:7288 pl_exec.c:7362 pl_exec.c:7388
+#, c-format
+msgid "number of source and target fields in assignment does not match"
+msgstr "número de campos de fonte e alvo na atribuição não correspondem"
+
+#. translator: %s represents a name of an extra check
+#: pl_exec.c:7256 pl_exec.c:7290 pl_exec.c:7364 pl_exec.c:7390
+#, c-format
+msgid "%s check of %s is active."
+msgstr "verificação %s de %s está ativa."
+
+#: pl_exec.c:7260 pl_exec.c:7294 pl_exec.c:7368 pl_exec.c:7394
+#, c-format
+msgid "Make sure the query returns the exact list of columns."
+msgstr "Certifique-se que se a consulta retorna a lista exata de colunas."
+
+#: pl_exec.c:7781
+#, c-format
+msgid "record \"%s\" is not assigned yet"
+msgstr "registro \"%s\" não foi atribuído ainda"
+
+#: pl_exec.c:7782
+#, c-format
+msgid "The tuple structure of a not-yet-assigned record is indeterminate."
+msgstr "A estrutura da tupla de um registro não atribuído é indeterminada."
+
#: pl_funcs.c:237
msgid "statement block"
msgstr "bloco de comandos"
@@ -504,30 +540,20 @@ msgstr "comando SQL"
msgid "FOR over EXECUTE statement"
msgstr "FOR sobre comando EXECUTE"
-#: pl_gram.y:474
+#: pl_gram.y:489
#, c-format
msgid "block label must be placed before DECLARE, not after"
msgstr "rótulo de bloco deve estar localizado antes do DECLARE e não depois"
-#: pl_gram.y:494
+#: pl_gram.y:509
#, c-format
msgid "collations are not supported by type %s"
msgstr "ordenações não são suportadas pelo tipo %s"
-#: pl_gram.y:509
-#, c-format
-msgid "row or record variable cannot be CONSTANT"
-msgstr "variável do tipo row ou record não pode ser CONSTANT"
-
-#: pl_gram.y:519
+#: pl_gram.y:528
#, c-format
-msgid "row or record variable cannot be NOT NULL"
-msgstr "variável do tipo row ou record não pode ser NOT NULL"
-
-#: pl_gram.y:530
-#, c-format
-msgid "default value for row or record variable is not supported"
-msgstr "valor padrão para variável do tipo row ou record não é suportado"
+msgid "variable \"%s\" must have a default value, since it's declared NOT NULL"
+msgstr "variável \"%s\" deve ter um valor padrão, pois ela foi declarada NOT NULL"
#: pl_gram.y:675 pl_gram.y:690 pl_gram.y:716
#, c-format
@@ -543,278 +569,283 @@ msgstr "declaração duplicada"
msgid "variable \"%s\" shadows a previously defined variable"
msgstr "variável \"%s\" esconde uma variável previamente definida"
-#: pl_gram.y:952
+#: pl_gram.y:993
#, c-format
msgid "diagnostics item %s is not allowed in GET STACKED DIAGNOSTICS"
msgstr "item de diagnóstico %s não é permitido em GET STACKED DIAGNOSTICS"
-#: pl_gram.y:970
+#: pl_gram.y:1011
#, c-format
msgid "diagnostics item %s is not allowed in GET CURRENT DIAGNOSTICS"
msgstr "item de diagnóstico %s não é permitido em GET CURRENT DIAGNOSTICS"
-#: pl_gram.y:1068
+#: pl_gram.y:1106
msgid "unrecognized GET DIAGNOSTICS item"
msgstr "item de GET DIAGNOSTICS desconhecido"
-#: pl_gram.y:1079 pl_gram.y:3439
+#: pl_gram.y:1116 pl_gram.y:3551
#, c-format
msgid "\"%s\" is not a scalar variable"
msgstr "\"%s\" não é uma variável escalar"
-#: pl_gram.y:1331 pl_gram.y:1525
+#: pl_gram.y:1368 pl_gram.y:1565
#, c-format
-msgid "loop variable of loop over rows must be a record or row variable or list of scalar variables"
+msgid "loop variable of loop over rows must be a record variable or list of scalar variables"
msgstr "variável de laço sobre registros deve ser uma variável do tipo record ou row ou lista de variáveis escalares"
-#: pl_gram.y:1365
+#: pl_gram.y:1403
#, c-format
msgid "cursor FOR loop must have only one target variable"
msgstr "cursor do laço FOR deve ter somente uma variável alvo"
-#: pl_gram.y:1372
+#: pl_gram.y:1410
#, c-format
msgid "cursor FOR loop must use a bound cursor variable"
msgstr "cursor do laço FOR deve utilizar uma variável cursor limitado"
-#: pl_gram.y:1456
+#: pl_gram.y:1497
#, c-format
msgid "integer FOR loop must have only one target variable"
msgstr "inteiro do laço FOR deve ter somente uma variável alvo"
-#: pl_gram.y:1492
+#: pl_gram.y:1535
#, c-format
msgid "cannot specify REVERSE in query FOR loop"
msgstr "não pode especificar REVERSE na consulta do laço FOR"
-#: pl_gram.y:1639
+#: pl_gram.y:1668
#, c-format
msgid "loop variable of FOREACH must be a known variable or list of variables"
msgstr "variável do laço FOEACH deve ser uma variável ou lista de variáveis conhecida"
-#: pl_gram.y:1680
+#: pl_gram.y:1710
#, c-format
msgid "there is no label \"%s\" attached to any block or loop enclosing this statement"
msgstr "não há rótulo \"%s\" ligado a qualquer bloco ou laço que contém este comando"
-#: pl_gram.y:1688
+#: pl_gram.y:1718
#, c-format
msgid "block label \"%s\" cannot be used in CONTINUE"
msgstr "rótulo de bloco \"%s\" não pode ser utilizado no CONTINUE"
-#: pl_gram.y:1703
+#: pl_gram.y:1733
#, c-format
msgid "EXIT cannot be used outside a loop, unless it has a label"
msgstr "EXIT não pode ser utilizado fora de um laço, a menos que ele tenha um rótulo"
-#: pl_gram.y:1704
+#: pl_gram.y:1734
#, c-format
msgid "CONTINUE cannot be used outside a loop"
msgstr "CONTINUE não pode ser utilizado fora de um laço"
-#: pl_gram.y:1728 pl_gram.y:1765 pl_gram.y:1813 pl_gram.y:2889 pl_gram.y:2974
-#: pl_gram.y:3085 pl_gram.y:3841
+#: pl_gram.y:1758 pl_gram.y:1796 pl_gram.y:1844 pl_gram.y:2996 pl_gram.y:3081
+#: pl_gram.y:3192 pl_gram.y:3955
msgid "unexpected end of function definition"
msgstr "fim de definição da função inesperado"
-#: pl_gram.y:1833 pl_gram.y:1857 pl_gram.y:1873 pl_gram.y:1879 pl_gram.y:1997
-#: pl_gram.y:2005 pl_gram.y:2019 pl_gram.y:2114 pl_gram.y:2295 pl_gram.y:2389
-#: pl_gram.y:2541 pl_gram.y:3682 pl_gram.y:3743 pl_gram.y:3822
+#: pl_gram.y:1864 pl_gram.y:1888 pl_gram.y:1904 pl_gram.y:1910 pl_gram.y:2029
+#: pl_gram.y:2037 pl_gram.y:2051 pl_gram.y:2146 pl_gram.y:2397 pl_gram.y:2491
+#: pl_gram.y:2650 pl_gram.y:3797 pl_gram.y:3858 pl_gram.y:3936
msgid "syntax error"
msgstr "erro de sintaxe"
-#: pl_gram.y:1861 pl_gram.y:1863 pl_gram.y:2299 pl_gram.y:2301
+#: pl_gram.y:1892 pl_gram.y:1894 pl_gram.y:2401 pl_gram.y:2403
msgid "invalid SQLSTATE code"
msgstr "código SQLSTATE inválido"
-#: pl_gram.y:2061
+#: pl_gram.y:2094
msgid "syntax error, expected \"FOR\""
msgstr "erro de sintaxe, \"FOR\" esperado"
-#: pl_gram.y:2123
+#: pl_gram.y:2155
#, c-format
msgid "FETCH statement cannot return multiple rows"
msgstr "comando FETCH não pode retornar múltiplos registros"
-#: pl_gram.y:2179
+#: pl_gram.y:2279
#, c-format
msgid "cursor variable must be a simple variable"
msgstr "variável do cursor deve ser uma variável simples"
-#: pl_gram.y:2185
+#: pl_gram.y:2285
#, c-format
msgid "variable \"%s\" must be of type cursor or refcursor"
msgstr "variável \"%s\" deve ser do tipo cursor ou refcursor"
-#: pl_gram.y:2512 pl_gram.y:2523
+#: pl_gram.y:2621 pl_gram.y:2632
#, c-format
msgid "\"%s\" is not a known variable"
msgstr "\"%s\" não é uma variável conhecida"
-#: pl_gram.y:2627 pl_gram.y:2637 pl_gram.y:2793
+#: pl_gram.y:2736 pl_gram.y:2746 pl_gram.y:2901
msgid "mismatched parentheses"
msgstr "parênteses não correspondem"
-#: pl_gram.y:2641
+#: pl_gram.y:2750
#, c-format
msgid "missing \"%s\" at end of SQL expression"
msgstr "faltando \"%s\" ao fim da expressão SQL"
-#: pl_gram.y:2647
+#: pl_gram.y:2756
#, c-format
msgid "missing \"%s\" at end of SQL statement"
msgstr "faltando \"%s\" ao fim do comando SQL"
-#: pl_gram.y:2664
+#: pl_gram.y:2773
msgid "missing expression"
msgstr "faltando expressão"
-#: pl_gram.y:2666
+#: pl_gram.y:2775
msgid "missing SQL statement"
msgstr "faltando comando SQL"
-#: pl_gram.y:2795
+#: pl_gram.y:2903
msgid "incomplete data type declaration"
msgstr "declaração de tipo de dado incompleta"
-#: pl_gram.y:2818
+#: pl_gram.y:2926
msgid "missing data type declaration"
msgstr "faltando declaração de tipo de dado"
-#: pl_gram.y:2897
+#: pl_gram.y:3004
msgid "INTO specified more than once"
msgstr "INTO especificado mais de uma vez"
-#: pl_gram.y:3066
+#: pl_gram.y:3173
msgid "expected FROM or IN"
msgstr "FROM ou IN esperado"
-#: pl_gram.y:3126
+#: pl_gram.y:3234
#, c-format
msgid "RETURN cannot have a parameter in function returning set"
msgstr "RETURN não pode ter um parâmetro na função que retorna conjunto"
-#: pl_gram.y:3127
+#: pl_gram.y:3235
#, c-format
msgid "Use RETURN NEXT or RETURN QUERY."
msgstr "Utilize RETURN NEXT ou RETURN QUERY."
-#: pl_gram.y:3135
+#: pl_gram.y:3245
#, c-format
-msgid "RETURN cannot have a parameter in function with OUT parameters"
-msgstr "RETURN não pode ter um parâmetro na função com parâmetros OUT"
+msgid "RETURN cannot have a parameter in a procedure"
+msgstr "RETURN não pode ter um parâmetro no procedimento"
-#: pl_gram.y:3144
+#: pl_gram.y:3250
#, c-format
msgid "RETURN cannot have a parameter in function returning void"
msgstr "RETURN não pode ter um parâmetro na função que retorna void"
-#: pl_gram.y:3204
+#: pl_gram.y:3259
+#, c-format
+msgid "RETURN cannot have a parameter in function with OUT parameters"
+msgstr "RETURN não pode ter um parâmetro na função com parâmetros OUT"
+
+#: pl_gram.y:3322
#, c-format
msgid "RETURN NEXT cannot have a parameter in function with OUT parameters"
msgstr "RETURN NEXT não pode ter um parâmetro na função com parâmetros OUT"
-#: pl_gram.y:3308
+#: pl_gram.y:3430
#, c-format
-msgid "\"%s\" is declared CONSTANT"
-msgstr "\"%s\" está declarado CONSTANT"
+msgid "variable \"%s\" is declared CONSTANT"
+msgstr "variável \"%s\" está declarada CONSTANT"
-#: pl_gram.y:3370 pl_gram.y:3382
+#: pl_gram.y:3493
#, c-format
-msgid "record or row variable cannot be part of multiple-item INTO list"
-msgstr "variável do tipo record ou row não pode ser parte de uma lista INTO de múltiplos itens"
+msgid "record variable cannot be part of multiple-item INTO list"
+msgstr "variável do tipo record não pode ser parte de uma lista INTO de múltiplos itens"
-#: pl_gram.y:3427
+#: pl_gram.y:3539
#, c-format
msgid "too many INTO variables specified"
msgstr "muitas variáveis INTO especificadas"
-#: pl_gram.y:3635
+#: pl_gram.y:3750
#, c-format
-msgid "end label \"%s\" specified for unlabelled block"
+msgid "end label \"%s\" specified for unlabeled block"
msgstr "rótulo de fim \"%s\" especificado para bloco sem rótulo"
-#: pl_gram.y:3642
+#: pl_gram.y:3757
#, c-format
msgid "end label \"%s\" differs from block's label \"%s\""
msgstr "rótulo de fim \"%s\" difere de rótulo do bloco \"%s\""
-#: pl_gram.y:3677
+#: pl_gram.y:3792
#, c-format
msgid "cursor \"%s\" has no arguments"
msgstr "cursor \"%s\" não tem argumentos"
-#: pl_gram.y:3691
+#: pl_gram.y:3806
#, c-format
msgid "cursor \"%s\" has arguments"
msgstr "cursor \"%s\" tem argumentos"
-#: pl_gram.y:3733
+#: pl_gram.y:3848
#, c-format
msgid "cursor \"%s\" has no argument named \"%s\""
msgstr "cursor \"%s\" não tem argumento chamado \"%s\""
-#: pl_gram.y:3753
+#: pl_gram.y:3868
#, c-format
msgid "value for parameter \"%s\" of cursor \"%s\" specified more than once"
msgstr "valor para parâmetro \"%s\" do cursor \"%s\" foi especificado mais de uma vez"
-#: pl_gram.y:3778
+#: pl_gram.y:3893
#, c-format
msgid "not enough arguments for cursor \"%s\""
msgstr "argumentos insuficientes para cursor \"%s\""
-#: pl_gram.y:3785
+#: pl_gram.y:3900
#, c-format
msgid "too many arguments for cursor \"%s\""
msgstr "muitos argumentos para cursor \"%s\""
-#: pl_gram.y:3873
+#: pl_gram.y:3987
msgid "unrecognized RAISE statement option"
msgstr "opção do comando RAISE desconhecida"
-#: pl_gram.y:3877
+#: pl_gram.y:3991
msgid "syntax error, expected \"=\""
msgstr "erro de sintaxe, \"=\" esperado"
-#: pl_gram.y:3918
+#: pl_gram.y:4032
#, c-format
msgid "too many parameters specified for RAISE"
msgstr "muitos parâmetros especificados para RAISE"
-#: pl_gram.y:3922
+#: pl_gram.y:4036
#, c-format
msgid "too few parameters specified for RAISE"
msgstr "poucos parâmetros especificados para RAISE"
-#: pl_handler.c:151
+#: pl_handler.c:156
msgid "Sets handling of conflicts between PL/pgSQL variable names and table column names."
msgstr "Define resolução de conflitos entre nomes de variáveis PL/pgSQL e nomes de colunas de tabelas."
-#: pl_handler.c:160
+#: pl_handler.c:165
msgid "Print information about parameters in the DETAIL part of the error messages generated on INTO ... STRICT failures."
msgstr "Mostra informação sobre parâmetros na parte DETALHE das mensagens de erro geradas nas falhas INTO ... STRICT."
-#: pl_handler.c:168
+#: pl_handler.c:173
msgid "Perform checks given in ASSERT statements."
msgstr "Realiza verificações informadas em comandos ASSERT."
-#: pl_handler.c:176
+#: pl_handler.c:181
msgid "List of programming constructs that should produce a warning."
msgstr "Lista de construções de programação que devem produzir um aviso."
-#: pl_handler.c:186
+#: pl_handler.c:191
msgid "List of programming constructs that should produce an error."
msgstr "Lista de construções de programação que devem produzir um erro."
#. translator: %s is typically the translation of "syntax error"
-#: pl_scanner.c:622
+#: pl_scanner.c:508
#, c-format
msgid "%s at end of input"
msgstr "%s no fim da entrada"
#. translator: first %s is typically the translation of "syntax error"
-#: pl_scanner.c:638
+#: pl_scanner.c:524
#, c-format
msgid "%s at or near \"%s\""
msgstr "%s em ou próximo a \"%s\""
diff --git a/src/pl/plpython/po/pt_BR.po b/src/pl/plpython/po/pt_BR.po
index 5ea66785f35..fd6f75503e7 100644
--- a/src/pl/plpython/po/pt_BR.po
+++ b/src/pl/plpython/po/pt_BR.po
@@ -1,434 +1,461 @@
# Brazilian Portuguese message translation file for plpython
-# Copyright (C) 2009 PostgreSQL Global Development Group
+#
+# Copyright (C) 2009-2021 PostgreSQL Global Development Group
# This file is distributed under the same license as the PostgreSQL package.
-# Euler Taveira de Oliveira <euler@timbira.com>, 2009-2016.
+#
+# Euler Taveira <euler@eulerto.com>, 2009-2021.
#
msgid ""
msgstr ""
-"Project-Id-Version: PostgreSQL 9.6\n"
-"Report-Msgid-Bugs-To: pgsql-bugs@postgresql.org\n"
-"POT-Creation-Date: 2016-08-09 22:53-0300\n"
+"Project-Id-Version: PostgreSQL 13\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-05-09 21:42-0300\n"
"PO-Revision-Date: 2009-05-10 01:15-0300\n"
-"Last-Translator: Euler Taveira de Oliveira <euler@timbira.com>\n"
-"Language-Team: Brazilian Portuguese <pgbr-dev@listas.postgresql.org.br>\n"
+"Last-Translator: Euler Taveira <euler@eulerto.com>\n"
+"Language-Team: Brazilian Portuguese <pgsql-translators@postgresql.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n>1);\n"
-#: plpy_cursorobject.c:101
+#: plpy_cursorobject.c:72
#, c-format
msgid "plpy.cursor expected a query or a plan"
msgstr "plpy.cursor esperava uma consulta ou um plano"
-#: plpy_cursorobject.c:179
+#: plpy_cursorobject.c:155
#, c-format
msgid "plpy.cursor takes a sequence as its second argument"
msgstr "plpy.cursor tem uma sequência como seu segundo argumento"
-#: plpy_cursorobject.c:195 plpy_spi.c:229
+#: plpy_cursorobject.c:171 plpy_spi.c:207
#, c-format
msgid "could not execute plan"
msgstr "não pôde executar plano"
-#: plpy_cursorobject.c:198 plpy_spi.c:232
+#: plpy_cursorobject.c:174 plpy_spi.c:210
#, c-format
msgid "Expected sequence of %d argument, got %d: %s"
msgid_plural "Expected sequence of %d arguments, got %d: %s"
msgstr[0] "Sequência esperada de %d argumento, recebeu %d: %s"
msgstr[1] "Sequência esperada de %d argumentos, recebeu %d: %s"
-#: plpy_cursorobject.c:354
+#: plpy_cursorobject.c:321
#, c-format
msgid "iterating a closed cursor"
msgstr "iterando um cursor fechado"
-#: plpy_cursorobject.c:362 plpy_cursorobject.c:427
+#: plpy_cursorobject.c:329 plpy_cursorobject.c:395
#, c-format
msgid "iterating a cursor in an aborted subtransaction"
msgstr "iterando um cursor em uma subtransação abortada"
-#: plpy_cursorobject.c:419
+#: plpy_cursorobject.c:387
#, c-format
msgid "fetch from a closed cursor"
msgstr "busca em um cursor fechado"
-#: plpy_cursorobject.c:467 plpy_spi.c:438
+#: plpy_cursorobject.c:430 plpy_spi.c:403
#, c-format
msgid "query result has too many rows to fit in a Python list"
msgstr "resultado da consulta tem muitos registros para caber em uma lista Python"
-#: plpy_cursorobject.c:508
+#: plpy_cursorobject.c:482
#, c-format
msgid "closing a cursor in an aborted subtransaction"
msgstr "fechando um cursor em uma subtransação abortada"
-#: plpy_elog.c:127 plpy_elog.c:128 plpy_plpymodule.c:527
+#: plpy_elog.c:125 plpy_elog.c:126 plpy_plpymodule.c:549
#, c-format
msgid "%s"
msgstr "%s"
-#: plpy_exec.c:140
+#: plpy_exec.c:139
#, c-format
msgid "unsupported set function return mode"
msgstr "modo de retorno da função que retorna conjunto não é suportado"
-#: plpy_exec.c:141
+#: plpy_exec.c:140
#, c-format
msgid "PL/Python set-returning functions only support returning one value per call."
msgstr "funções PL/Python que retornam conjunto só suportam retornar um valor por chamada."
-#: plpy_exec.c:154
+#: plpy_exec.c:153
#, c-format
msgid "returned object cannot be iterated"
msgstr "objeto retornado não pode ser iterado"
-#: plpy_exec.c:155
+#: plpy_exec.c:154
#, c-format
msgid "PL/Python set-returning functions must return an iterable object."
msgstr "funções PL/Python que retornam conjunto devem retornar um objeto iterável."
-#: plpy_exec.c:169
+#: plpy_exec.c:168
#, c-format
msgid "error fetching next item from iterator"
msgstr "erro ao buscar próximo item do iterador"
-#: plpy_exec.c:210
+#: plpy_exec.c:211
+#, c-format
+msgid "PL/Python procedure did not return None"
+msgstr "procedimento PL/Python não retornou None"
+
+#: plpy_exec.c:215
#, c-format
msgid "PL/Python function with return type \"void\" did not return None"
msgstr "função PL/Python com tipo de retorno \"void\" não retornou None"
-#: plpy_exec.c:374 plpy_exec.c:400
+#: plpy_exec.c:371 plpy_exec.c:397
#, c-format
msgid "unexpected return value from trigger procedure"
msgstr "função de gatilho retornou valor inesperado"
-#: plpy_exec.c:375
+#: plpy_exec.c:372
#, c-format
msgid "Expected None or a string."
msgstr "None ou uma cadeia de caracteres era esperado."
-#: plpy_exec.c:390
+#: plpy_exec.c:387
#, c-format
msgid "PL/Python trigger function returned \"MODIFY\" in a DELETE trigger -- ignored"
msgstr "função de gatilho PL/Python retornou \"MODIFY\" em um gatilho DELETE -- ignorado"
-#: plpy_exec.c:401
+#: plpy_exec.c:398
#, c-format
msgid "Expected None, \"OK\", \"SKIP\", or \"MODIFY\"."
msgstr "Era esperado None, \"OK\", \"SKIP\" ou \"MODIFY\"."
-#: plpy_exec.c:482
+#: plpy_exec.c:443
#, c-format
msgid "PyList_SetItem() failed, while setting up arguments"
msgstr "PyList_SetItem() falhou ao definir argumentos"
-#: plpy_exec.c:486
+#: plpy_exec.c:447
#, c-format
msgid "PyDict_SetItemString() failed, while setting up arguments"
msgstr "PyDict_SetItemString() falhou ao definir argumentos"
-#: plpy_exec.c:498
+#: plpy_exec.c:459
#, c-format
msgid "function returning record called in context that cannot accept type record"
msgstr "função que retorna record foi chamada em um contexto que não pode aceitar tipo record"
-#: plpy_exec.c:714
+#: plpy_exec.c:676
#, c-format
msgid "while creating return value"
msgstr "ao criar valor de retorno"
-#: plpy_exec.c:738
-#, c-format
-msgid "could not create new dictionary while building trigger arguments"
-msgstr "não pode criar novo dicionário ao construir argumentos do gatilho"
-
-#: plpy_exec.c:927
+#: plpy_exec.c:910
#, c-format
msgid "TD[\"new\"] deleted, cannot modify row"
msgstr "TD[\"new\"] removido, não pode modificar registro"
-#: plpy_exec.c:932
+#: plpy_exec.c:915
#, c-format
msgid "TD[\"new\"] is not a dictionary"
msgstr "TD[\"new\"] não é um dicionário"
-#: plpy_exec.c:957
+#: plpy_exec.c:942
#, c-format
msgid "TD[\"new\"] dictionary key at ordinal position %d is not a string"
msgstr "chave do dicionário TD[\"new\"] na posição %d não é uma cadeia de caracteres"
-#: plpy_exec.c:964
+#: plpy_exec.c:949
#, c-format
msgid "key \"%s\" found in TD[\"new\"] does not exist as a column in the triggering row"
msgstr "chave \"%s\" encontrada em TD[\"new\"] não existe como uma coluna no registro do gatilho"
-#: plpy_exec.c:1044
+#: plpy_exec.c:954
+#, c-format
+msgid "cannot set system attribute \"%s\""
+msgstr "não pode definir atributo do sistema \"%s\""
+
+#: plpy_exec.c:959
+#, c-format
+msgid "cannot set generated column \"%s\""
+msgstr "não pode definir coluna gerada \"%s\""
+
+#: plpy_exec.c:1017
#, c-format
msgid "while modifying trigger row"
msgstr "ao modificar registro de gatilho"
-#: plpy_exec.c:1105
+#: plpy_exec.c:1075
#, c-format
msgid "forcibly aborting a subtransaction that has not been exited"
msgstr "forçado a abortar subtransação que não foi concluída"
-#: plpy_main.c:125
+#: plpy_main.c:121
#, c-format
msgid "multiple Python libraries are present in session"
msgstr "múltiplas bibliotecas do Python estão presentes na sessão"
-#: plpy_main.c:126
+#: plpy_main.c:122
#, c-format
msgid "Only one Python major version can be used in one session."
msgstr "Apenas uma versão do Python pode ser utilizada na sessão."
-#: plpy_main.c:142
+#: plpy_main.c:138
#, c-format
msgid "untrapped error in initialization"
msgstr "erro não interceptado na inicialização"
-#: plpy_main.c:165
+#: plpy_main.c:161
#, c-format
msgid "could not import \"__main__\" module"
msgstr "não pôde importar módulo \"__main__\""
#: plpy_main.c:170
#, c-format
-msgid "could not create globals"
-msgstr "não pôde criar globais"
-
-#: plpy_main.c:174
-#, c-format
msgid "could not initialize globals"
msgstr "não pôde inicializar globais"
-#: plpy_main.c:389
+#: plpy_main.c:393
+#, c-format
+msgid "PL/Python procedure \"%s\""
+msgstr "procedimento PL/Python \"%s\""
+
+#: plpy_main.c:396
#, c-format
msgid "PL/Python function \"%s\""
msgstr "função PL/Python \"%s\""
-#: plpy_main.c:396
+#: plpy_main.c:404
#, c-format
msgid "PL/Python anonymous code block"
msgstr "bloco de código PL/Python anônimo"
-#: plpy_planobject.c:123
-#, c-format
-msgid "plan.status takes no arguments"
-msgstr "plan.status não contém argumentos"
-
-#: plpy_plpymodule.c:178 plpy_plpymodule.c:181
+#: plpy_plpymodule.c:182 plpy_plpymodule.c:185
#, c-format
msgid "could not import \"plpy\" module"
msgstr "não pôde importar módulo \"plpy\""
-#: plpy_plpymodule.c:196
+#: plpy_plpymodule.c:200
#, c-format
-msgid "could not add the spiexceptions module"
-msgstr "não pôde adicionar o módulo spiexceptions"
+msgid "could not create the spiexceptions module"
+msgstr "não pôde criar o módulo spiexceptions"
-#: plpy_plpymodule.c:217
+#: plpy_plpymodule.c:208
#, c-format
-msgid "could not create the base SPI exceptions"
-msgstr "não pôde criar as exceções base da SPI"
+msgid "could not add the spiexceptions module"
+msgstr "não pôde adicionar o módulo spiexceptions"
-#: plpy_plpymodule.c:252 plpy_plpymodule.c:256
+#: plpy_plpymodule.c:276
#, c-format
msgid "could not generate SPI exceptions"
msgstr "não pôde gerar exceções da SPI"
-#: plpy_plpymodule.c:422
+#: plpy_plpymodule.c:444
#, c-format
msgid "could not unpack arguments in plpy.elog"
msgstr "não pode desempacotar argumentos em plpy.elog"
-#: plpy_plpymodule.c:431
+#: plpy_plpymodule.c:453
msgid "could not parse error message in plpy.elog"
msgstr "não pode analisar mensagem de erro em plpy.elog"
-#: plpy_plpymodule.c:448
+#: plpy_plpymodule.c:470
#, c-format
-msgid "Argument 'message' given by name and position"
-msgstr "Argumento 'message' informado por nome e posição"
+msgid "argument 'message' given by name and position"
+msgstr "argumento 'message' informado por nome e posição"
-#: plpy_plpymodule.c:475
+#: plpy_plpymodule.c:497
#, c-format
msgid "'%s' is an invalid keyword argument for this function"
msgstr "'%s' é um argumento inválido para esta função"
-#: plpy_plpymodule.c:486 plpy_plpymodule.c:492
+#: plpy_plpymodule.c:508 plpy_plpymodule.c:514
#, c-format
msgid "invalid SQLSTATE code"
msgstr "código SQLSTATE inválido"
-#: plpy_procedure.c:232
+#: plpy_procedure.c:226
#, c-format
msgid "trigger functions can only be called as triggers"
msgstr "funções de gatilho só podem ser chamadas como gatilhos"
-#: plpy_procedure.c:237
+#: plpy_procedure.c:230
#, c-format
msgid "PL/Python functions cannot return type %s"
msgstr "funções PL/Python não podem retornar tipo %s"
-#: plpy_procedure.c:318
+#: plpy_procedure.c:308
#, c-format
msgid "PL/Python functions cannot accept type %s"
msgstr "funções PL/Python não podem aceitar tipo %s"
-#: plpy_procedure.c:414
+#: plpy_procedure.c:398
#, c-format
msgid "could not compile PL/Python function \"%s\""
msgstr "não pôde compilar função PL/Python \"%s\""
-#: plpy_procedure.c:417
+#: plpy_procedure.c:401
#, c-format
msgid "could not compile anonymous PL/Python code block"
msgstr "não pôde compilar bloco de código PL/Python anônimo"
-#: plpy_resultobject.c:145 plpy_resultobject.c:165 plpy_resultobject.c:185
+#: plpy_resultobject.c:117 plpy_resultobject.c:143 plpy_resultobject.c:169
#, c-format
msgid "command did not produce a result set"
msgstr "comando não produziu um conjunto de resultados"
-#: plpy_spi.c:60
+#: plpy_spi.c:56
#, c-format
msgid "second argument of plpy.prepare must be a sequence"
msgstr "segundo argumento de plpy.prepare deve ser uma sequência"
-#: plpy_spi.c:118
+#: plpy_spi.c:100
#, c-format
msgid "plpy.prepare: type name at ordinal position %d is not a string"
msgstr "plpy.prepare: nome do tipo na posição %d não é uma cadeia de caracteres"
-#: plpy_spi.c:194
+#: plpy_spi.c:172
#, c-format
msgid "plpy.execute expected a query or a plan"
msgstr "plpy.execute espera uma consulta ou um plano"
-#: plpy_spi.c:213
+#: plpy_spi.c:191
#, c-format
msgid "plpy.execute takes a sequence as its second argument"
msgstr "plpy.execute recebe uma sequência como segundo argumento"
-#: plpy_spi.c:337
+#: plpy_spi.c:299
#, c-format
msgid "SPI_execute_plan failed: %s"
msgstr "SPI_execute_plan falhou: %s"
-#: plpy_spi.c:379
+#: plpy_spi.c:341
#, c-format
msgid "SPI_execute failed: %s"
msgstr "SPI_execute falhou: %s"
-#: plpy_subxactobject.c:123
+#: plpy_subxactobject.c:92
#, c-format
msgid "this subtransaction has already been entered"
msgstr "essa subtransação já foi iniciada"
-#: plpy_subxactobject.c:129 plpy_subxactobject.c:187
+#: plpy_subxactobject.c:98 plpy_subxactobject.c:156
#, c-format
msgid "this subtransaction has already been exited"
msgstr "essa subtransação já foi concluída"
-#: plpy_subxactobject.c:181
+#: plpy_subxactobject.c:150
#, c-format
msgid "this subtransaction has not been entered"
msgstr "essa subtransação não foi iniciada"
-#: plpy_subxactobject.c:193
+#: plpy_subxactobject.c:162
#, c-format
msgid "there is no subtransaction to exit from"
msgstr "não há uma subtransação a ser concluída"
-#: plpy_typeio.c:286
-#, c-format
-msgid "could not create new dictionary"
-msgstr "não pôde criar novo dicionário"
-
-#: plpy_typeio.c:560
+#: plpy_typeio.c:587
#, c-format
msgid "could not import a module for Decimal constructor"
msgstr "não pôde importar módulo para construtor Decimal"
-#: plpy_typeio.c:564
+#: plpy_typeio.c:591
#, c-format
msgid "no Decimal attribute in module"
msgstr "nenhum atributo Decimal no módulo"
-#: plpy_typeio.c:570
+#: plpy_typeio.c:597
#, c-format
msgid "conversion from numeric to Decimal failed"
msgstr "conversão de numeric para Decimal falhou"
-#: plpy_typeio.c:645
-#, c-format
-msgid "cannot convert multidimensional array to Python list"
-msgstr "não pode converter matriz multidimensional para lista Python"
-
-#: plpy_typeio.c:646
-#, c-format
-msgid "PL/Python only supports one-dimensional arrays."
-msgstr "PL/Python só suporta matrizes unidimensionais."
-
-#: plpy_typeio.c:652
-#, c-format
-msgid "could not create new Python list"
-msgstr "não pôde criar nova lista Python"
-
-#: plpy_typeio.c:711
+#: plpy_typeio.c:911
#, c-format
msgid "could not create bytes representation of Python object"
msgstr "não pôde criar representação de bytes de um objeto Python"
-#: plpy_typeio.c:822
+#: plpy_typeio.c:1056
#, c-format
msgid "could not create string representation of Python object"
msgstr "não pôde criar representação de cadeia de caracteres de um objeto Python"
-#: plpy_typeio.c:833
+#: plpy_typeio.c:1067
#, c-format
msgid "could not convert Python object into cstring: Python string representation appears to contain null bytes"
msgstr "não pôde converter objeto Python em cstring: representação de cadeia de caracteres Python parece conter bytes nulos"
-#: plpy_typeio.c:879
+#: plpy_typeio.c:1176
+#, c-format
+msgid "number of array dimensions exceeds the maximum allowed (%d)"
+msgstr "número de dimensões da matriz excede o máximo permitido (%d)"
+
+#: plpy_typeio.c:1180
+#, c-format
+msgid "could not determine sequence length for function return value"
+msgstr "não pôde determinar tamanho da sequência para valor de retorno da função"
+
+#: plpy_typeio.c:1183 plpy_typeio.c:1187
+#, c-format
+msgid "array size exceeds the maximum allowed"
+msgstr "tamanho da matriz excede o máximo permitido"
+
+#: plpy_typeio.c:1213
#, c-format
msgid "return value of function with array return type is not a Python sequence"
msgstr "valor de retorno da função do tipo matriz retorna tipo que não é uma sequência Python"
-#: plpy_typeio.c:1000
+#: plpy_typeio.c:1259
+#, c-format
+msgid "wrong length of inner sequence: has length %d, but %d was expected"
+msgstr "tamanho incorreto da sequência interna: tem tamanho %d, mas %d era esperado"
+
+#: plpy_typeio.c:1261
+#, c-format
+msgid "To construct a multidimensional array, the inner sequences must all have the same length."
+msgstr "Para construir uma matriz multidimensional, todas as sequências internas devem ter o mesmo tamanho."
+
+#: plpy_typeio.c:1340
+#, c-format
+msgid "malformed record literal: \"%s\""
+msgstr "matriz mal formada: \"%s\""
+
+#: plpy_typeio.c:1341
+#, c-format
+msgid "Missing left parenthesis."
+msgstr "Faltando parêntese esquerdo."
+
+#: plpy_typeio.c:1342 plpy_typeio.c:1543
+#, c-format
+msgid "To return a composite type in an array, return the composite type as a Python tuple, e.g., \"[('foo',)]\"."
+msgstr "Para retornar um tipo composto em uma matriz, retorne o tipo composto como uma tupla do Python, i.e., \"[('foo',)]\"."
+
+#: plpy_typeio.c:1389
#, c-format
msgid "key \"%s\" not found in mapping"
msgstr "chave \"%s\" não foi encontrada no mapeamento"
-#: plpy_typeio.c:1001
+#: plpy_typeio.c:1390
#, c-format
msgid "To return null in a column, add the value None to the mapping with the key named after the column."
msgstr "Para retornar nulo em uma coluna, adicionar o valor None no mapeamento cuja chave é o nome da coluna."
-#: plpy_typeio.c:1052
+#: plpy_typeio.c:1443
#, c-format
msgid "length of returned sequence did not match number of columns in row"
msgstr "tamanho da sequência retornada não combina com número de colunas no registro"
-#: plpy_typeio.c:1163
+#: plpy_typeio.c:1541
#, c-format
msgid "attribute \"%s\" does not exist in Python object"
msgstr "atributo \"%s\" não existe no objeto Python"
-#: plpy_typeio.c:1164
+#: plpy_typeio.c:1544
#, c-format
msgid "To return null in a column, let the returned object have an attribute named after column with value None."
msgstr "Para retornar nulo na coluna, deixe o objeto retornado ter um atributo cuja chave é o nome do coluna e o valor é None."
-#: plpy_util.c:36
+#: plpy_util.c:31
#, c-format
msgid "could not convert Python Unicode object to bytes"
msgstr "não pôde converter objeto Unicode Python para bytes"
-#: plpy_util.c:42
+#: plpy_util.c:37
#, c-format
msgid "could not extract bytes from encoded string"
msgstr "não pôde extrair bytes de cadeia de caracteres codificada"
diff --git a/src/pl/tcl/nls.mk b/src/pl/tcl/nls.mk
index 95d6b92fc2d..1f17ba1a136 100644
--- a/src/pl/tcl/nls.mk
+++ b/src/pl/tcl/nls.mk
@@ -1,6 +1,6 @@
# src/pl/tcl/nls.mk
CATALOG_NAME = pltcl
-AVAIL_LANGUAGES = cs de es fr it ja ko pl ru sv tr uk vi zh_CN
+AVAIL_LANGUAGES = cs de es fr it ja ko pl pt_BR ru sv tr uk vi zh_CN
GETTEXT_FILES = pltcl.c
GETTEXT_TRIGGERS = $(BACKEND_COMMON_GETTEXT_TRIGGERS)
GETTEXT_FLAGS = $(BACKEND_COMMON_GETTEXT_FLAGS)
diff --git a/src/pl/tcl/po/pt_BR.po b/src/pl/tcl/po/pt_BR.po
new file mode 100644
index 00000000000..d0b5f52b087
--- /dev/null
+++ b/src/pl/tcl/po/pt_BR.po
@@ -0,0 +1,112 @@
+# Brazilian Portuguese message translation file for pltcl
+#
+# Copyright (C) 2009-2021 PostgreSQL Global Development Group
+# This file is distributed under the same license as the PostgreSQL package.
+#
+# Euler Taveira <euler@eulerto.com>, 2009-2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PostgreSQL 13\n"
+"Report-Msgid-Bugs-To: pgsql-bugs@lists.postgresql.org\n"
+"POT-Creation-Date: 2021-05-09 21:44-0300\n"
+"PO-Revision-Date: 2009-05-06 18:00-0300\n"
+"Last-Translator: Euler Taveira <euler@eulerto.com>\n"
+"Language-Team: Brazilian Portuguese <pgsql-translators@postgresql.org>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: pltcl.c:465
+msgid "PL/Tcl function to call once when pltcl is first used."
+msgstr "função PL/Tcl executada quando pltcl for utilizado pela primeira vez."
+
+#: pltcl.c:472
+msgid "PL/TclU function to call once when pltclu is first used."
+msgstr "função PL/TclU executada quando pltclu for utilizado pela primeira vez."
+
+#: pltcl.c:636
+#, c-format
+msgid "function \"%s\" is in the wrong language"
+msgstr "função \"%s\" está na linguagem incorreta"
+
+#: pltcl.c:647
+#, c-format
+msgid "function \"%s\" must not be SECURITY DEFINER"
+msgstr "função \"%s\" não deve ser SECURITY DEFINER"
+
+#. translator: %s is "pltcl.start_proc" or "pltclu.start_proc"
+#: pltcl.c:681
+#, c-format
+msgid "processing %s parameter"
+msgstr "processando parâmetro %s"
+
+#: pltcl.c:835
+#, c-format
+msgid "set-valued function called in context that cannot accept a set"
+msgstr "função que tem argumento do tipo conjunto foi chamada em um contexto que não pode aceitar um conjunto"
+
+#: pltcl.c:1008
+#, c-format
+msgid "function returning record called in context that cannot accept type record"
+msgstr "função que retorna record foi chamada em um contexto que não pode aceitar tipo record"
+
+#: pltcl.c:1292
+#, c-format
+msgid "could not split return value from trigger: %s"
+msgstr "não pôde dividir valor retornado do gatilho: %s"
+
+#: pltcl.c:1373 pltcl.c:1803
+#, c-format
+msgid "%s"
+msgstr "%s"
+
+#: pltcl.c:1374
+#, c-format
+msgid ""
+"%s\n"
+"in PL/Tcl function \"%s\""
+msgstr ""
+"%s\n"
+"na função PL/Tcl \"%s\""
+
+#: pltcl.c:1538
+#, c-format
+msgid "trigger functions can only be called as triggers"
+msgstr "funções de gatilho só podem ser chamadas como gatilhos"
+
+#: pltcl.c:1542
+#, c-format
+msgid "PL/Tcl functions cannot return type %s"
+msgstr "funções PL/Tcl não podem retornar tipo %s"
+
+#: pltcl.c:1581
+#, c-format
+msgid "PL/Tcl functions cannot accept type %s"
+msgstr "funções PL/Tcl não podem aceitar tipo %s"
+
+#: pltcl.c:1695
+#, c-format
+msgid "could not create internal procedure \"%s\": %s"
+msgstr "não pôde criar função interna \"%s\": %s"
+
+#: pltcl.c:3199
+#, c-format
+msgid "column name/value list must have even number of elements"
+msgstr "lista de nome/valor de colunas deve ter número par de elementos"
+
+#: pltcl.c:3217
+#, c-format
+msgid "column name/value list contains nonexistent column name \"%s\""
+msgstr "lsta de nome/valor de colunas contém nome de coluna inexistente \"%s\""
+
+#: pltcl.c:3224
+#, c-format
+msgid "cannot set system attribute \"%s\""
+msgstr "não pode definir atributo do sistema \"%s\""
+
+#: pltcl.c:3230
+#, c-format
+msgid "cannot set generated column \"%s\""
+msgstr "não pode definir coluna gerada \"%s\""