This is an automated email from the ASF dual-hosted git repository.

hansva pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/hop.git


The following commit(s) were added to refs/heads/main by this push:
     new 5aeaaa6c0b Brazilian portuguese translation (#7965)
5aeaaa6c0b is described below

commit 5aeaaa6c0be351018e029dfb96d48a02f9fe1454
Author: Jeferson <[email protected]>
AuthorDate: Sat Aug 15 05:17:52 2026 -0300

    Brazilian portuguese translation (#7965)
---
 .../pipeline/messages/messages_pt_BR.properties    |   1 +
 .../abort/messages/messages_pt_BR.properties       |   1 +
 .../filesexist/messages/messages_pt_BR.properties  |   5 +
 .../movefiles/messages/messages_pt_BR.properties   |   4 +-
 .../bulkloader/messages/messages_pt_BR.properties  |   6 ++
 .../engines/messages/messages_pt_BR.properties     |  47 +++++++++
 .../spark/gui/messages/messages_pt_BR.properties   |  58 +++++++++++
 .../metadata/messages/messages_pt_BR.properties    |  42 ++++++++
 .../io/messages/messages_pt_BR.properties          |  50 +++++++++
 .../table/messages/messages_pt_BR.properties       |  84 +++++++++++++++
 .../gui/messages/messages_pt_BR.properties         |  86 +++++++++++++++
 .../shared}/messages/messages_pt_BR.properties     |  11 --
 .../metadata/messages/messages_pt_BR.properties    |  35 +++++++
 .../databricks/messages/messages_pt_BR.properties  | 116 +++++++++++++++++++++
 .../metadata/messages/messages_pt_BR.properties    |  75 +++++++++++++
 .../metadata/messages/messages_pt_BR.properties    |  56 ++++++++++
 .../redisoutput/messages/messages_pt_BR.properties |  43 ++++++++
 .../sftpput/messages/messages_pt_BR.properties     |  85 +++++++++++++++
 .../metadata/messages/messages_pt_BR.properties    |  55 ++++++++++
 .../messages/messages_pt_BR.properties             |  61 +++++++++++
 .../consumer/messages/messages_pt_BR.properties    |  40 +++++++
 .../jms/shared/messages/messages_pt_BR.properties  |  33 ++++++
 .../ui}/messages/messages_pt_BR.properties         |  14 +--
 .../shared}/messages/messages_pt_BR.properties     |  14 +--
 .../messages/messages_pt_BR.properties             |  41 ++++++++
 .../messages/messages_pt_BR.properties             |  69 ++++++++++++
 .../csv}/messages/messages_pt_BR.properties        |  14 +--
 .../security}/messages/messages_pt_BR.properties   |  13 +--
 .../delegates}/messages/messages_pt_BR.properties  |  14 +--
 .../tabs/messages/messages_pt_BR.properties        |  62 +++++++++++
 .../search/messages/messages_pt_BR.properties      |  27 +++++
 31 files changed, 1195 insertions(+), 67 deletions(-)

diff --git 
a/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_BR.properties
 
b/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_BR.properties
index 9b02d1b4f1..57a3ae1e53 100644
--- 
a/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_BR.properties
+++ 
b/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_BR.properties
@@ -142,3 +142,4 @@ TransformWithMappingMeta.Exception.UnableToLoadPipeline=Não 
foi possível carre
 Pipeline.Log.copiesInfo=Cópias prévias, próximas cópias
 PipelineMeta.Exception.TransformIsNotAMappingInput=A transformação com o nome 
'''' não é uma transformação de Entrada de Mapeamento.
 PipelineMeta.Exception.TransformIsNotAMappingOutput=A transformação com o nome 
''}' não é uma transformação de Saída de Mapeamento.
+PipelineMeta.CheckResult.TypeResultWarning.BufferDeadlockRisk.Description={0}
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
index 7b2ff11c82..93f8938d74 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
@@ -28,3 +28,4 @@ ActionAbortDialog.MessageAbort.Label=Mensagem
 ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
 ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
 ActionAbortDialog.Title=Abortar o fluxo de trabalho
+ActionAbortDialog.MessageLogLevels.Tooltip=O nível de registro para escrever a 
mensagem. O fluxo de trabalho será marcado como falho, independentemente desta 
configuração.
diff --git 
a/plugins/actions/filesexist/src/main/resources/org/apache/hop/workflow/actions/filesexist/messages/messages_pt_BR.properties
 
b/plugins/actions/filesexist/src/main/resources/org/apache/hop/workflow/actions/filesexist/messages/messages_pt_BR.properties
index 1eb411993e..c86664a42d 100644
--- 
a/plugins/actions/filesexist/src/main/resources/org/apache/hop/workflow/actions/filesexist/messages/messages_pt_BR.properties
+++ 
b/plugins/actions/filesexist/src/main/resources/org/apache/hop/workflow/actions/filesexist/messages/messages_pt_BR.properties
@@ -32,3 +32,8 @@ ActionFilesExist.CheckResult.NothingToCheck=N\u00E3o h\u00E1 
nada para verificar
 ActionFilesExist.Fields.ExcludeWildcard.Label=Padr\u00E3o de express\u00E3o 
regular para exclus\u00E3o
 ActionFilesExist.Fields.IncludeSubfolders.Label=Incluir subdiret\u00F3rios
 ActionFilesExist.Fields.Wildcard.Label=Express\u00E3o regular (coringa)
+ActionFilesExist.ExcludeWildcard.Column=Digite uma expressão regular para 
excluir arquivos (RegExp)
+ActionFilesExist.IncludeSubfolders.Column=Incluir arquivos em subpastas ao 
avaliar caracteres em uma pasta
+ActionFilesExist.MatchingFilesFound=Encontrado {0} arquivos correspondentes em 
[{1}]
+ActionFilesExist.NoMatchingFiles=Nenhum arquivo correspondente em incluir 
[{1}] / excluir [{2}] foi encontrado na pasta [{0}]
+ActionFilesExist.Wildcard.Column=Especifique um curinga quando o caminho é uma 
pasta
diff --git 
a/plugins/actions/movefiles/src/main/resources/org/apache/hop/workflow/actions/movefiles/messages/messages_pt_BR.properties
 
b/plugins/actions/movefiles/src/main/resources/org/apache/hop/workflow/actions/movefiles/messages/messages_pt_BR.properties
index 6e25777818..8b16bfdf33 100644
--- 
a/plugins/actions/movefiles/src/main/resources/org/apache/hop/workflow/actions/movefiles/messages/messages_pt_BR.properties
+++ 
b/plugins/actions/movefiles/src/main/resources/org/apache/hop/workflow/actions/movefiles/messages/messages_pt_BR.properties
@@ -120,7 +120,9 @@ ActionMoveFiles.Log.IgnoringRow=Ignorar fila com origem ou 
destino é NULL. Arqu
 ActionMoveFiles.Log.IncludeSubFoldersOn=Subpastas serão obtidas...
 ActionMoveFiles.Log.SimulationOn=Modo de simulação está ligado.
 ActionMoveFiles.MoveEmptyFolders.Label=Mover pastas vazias
-ActionMoveFiles.MoveEmptyFolders.Tooltip=Mova pastas vazias Só funcionará 
quando nenhum card for especificado e ''Include subpastas''' for verificado\!
+ActionMoveFiles.MoveEmptyFolders.Tooltip=Mova pastas vazias Só funcionará 
quando nenhum card for especificado e '''Include subpastas''' for verificado\!
 ActionMoveFiles.Previous.Tooltip=Veja isto para passar os resultados da 
entrada anterior para os argumentos desta entrada.
 ActionMoveFiles.Simulate.Tooltip=Selecione esta opção se quiser simular o 
processo.
 ActionMoveFiles.SuccessWhenAtLeat.Label=Sucesso quando pelo menos x arquivos 
foram movidos
+ActionMoveFiles.Error.UnknownIfFileExists=Opção desconhecida [{0}] para ''Se o 
arquivo de destino existe'', o arquivo não foi movido
+ActionMoveFiles.Error.UnknownIfMovedFileExists=Opção desconhecida [{0}] para 
''Se o arquivo movido existe'', o arquivo não foi movido
diff --git 
a/plugins/databases/snowflake/src/main/resources/org/apache/hop/pipeline/transforms/snowflake/bulkloader/messages/messages_pt_BR.properties
 
b/plugins/databases/snowflake/src/main/resources/org/apache/hop/pipeline/transforms/snowflake/bulkloader/messages/messages_pt_BR.properties
index 7d90c549c6..5505553169 100644
--- 
a/plugins/databases/snowflake/src/main/resources/org/apache/hop/pipeline/transforms/snowflake/bulkloader/messages/messages_pt_BR.properties
+++ 
b/plugins/databases/snowflake/src/main/resources/org/apache/hop/pipeline/transforms/snowflake/bulkloader/messages/messages_pt_BR.properties
@@ -139,3 +139,9 @@ SnowflakeBulkLoadMeta.CheckResult.FieldsNotFound=Campos de 
entrada não encontra
 SnowflakeBulkLoadMeta.CheckResult.FieldsReceived=Recebe campos de entrada.
 SnowflakeBulkLoadMeta.CheckResult.MappingNotValid=Fonte inválida para o 
mapeamento do alvo
 SnowflakeBulkLoadMeta.CheckResult.MappingValid=Fonte para mapeamento do alvo 
válida
+SnowflakeBulkLoader.Dialog.OnlyWhenHaveRows.Label=Só quando as linhas forem 
recebidas
+SnowflakeBulkLoader.Dialog.OnlyWhenHaveRows.Tooltip=Só usado quando truncar 
tabela estiver marcada. Se marcada, truncar apenas quando pelo menos uma linha 
de entrada for recebida. \n Se desmarcada, sempre trunca a tabela (mesmo quando 
a entrada estiver vazia).
+SnowflakeBulkLoader.Dialog.TruncateTable.Label=Truncar tabela
+SnowflakeBulkLoader.Dialog.TruncateTable.Tooltip=Esvazie a tabela de destino 
antes de carregar. Use "Só quando as linhas forem recebidas" para não truncar 
quando não houver entrada.
+SnowflakeBulkLoader.Injection.OnlyWhenHaveRows.Field=Truncar só quando houver 
linhas ?
+SnowflakeBulkLoader.Injection.TruncateTable.Field=Truncar tabela ?
diff --git 
a/plugins/engines/spark/src/main/resources/org/apache/hop/spark/engines/messages/messages_pt_BR.properties
 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/engines/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..b2b80b9b59
--- /dev/null
+++ 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/engines/messages/messages_pt_BR.properties
@@ -0,0 +1,47 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SparkEngine.LoadTemplate.Label=Carregar modelo de configuração
+SparkEngine.LoadTemplate.ToolTip=Preencha os campos de mestre, memória e 
configuração do Spark de um modelo de implantação comum (local, cluster, 
Databricks, ...)
+SparkEngine.LoadTemplate.Dialog.Title=Carregar modelo de configuração do Spark
+SparkEngine.LoadTemplate.Dialog.Message=Escolha um modelo. Valores substituem 
as opções atuais do motor (você pode editá-las depois).
+SparkEngine.LoadTemplate.Confirm.Title=Substituir configuração?
+SparkEngine.LoadTemplate.Confirm.Message=Substituir as opções atuais do Native 
Spark com o modelo "0"?
+SparkEngine.OptionsMaster.Label=Mestre das faíscas.
+SparkEngine.OptionsMaster.ToolTip=URL mestre do Spark, por exemplo, local, 
local, ou centelha: 7077. Deixe vazio sob centelha para que o mestre da CLI 
seja usado.
+SparkEngine.OptionsAppName.Label=Nome do aplicativo
+SparkEngine.OptionsAppName.ToolTip=Nome do aplicativo Spark
+SparkEngine.OptionsFatJar.Label=Localização do arquivo do jarro gordo
+SparkEngine.OptionsFatJar.ToolTip=Caminho opcional para uma jarra de gordura 
de Hop encenada em executores para corridas de cluster. Deixe vazio para uma 
centelha pura com uma jarra de gordura nativa.
+SparkEngine.OptionsConfigs.Label=Configuração do Spark (linhas chave=valor)
+SparkEngine.OptionsConfigs.ToolTip=Outras entradas SparkConf, uma chave = 
valor por linha
+SparkEngine.OptionsDriverMemory.Label=Memória do motorista
+SparkEngine.OptionsDriverMemory.ToolTip=Spark.driver.memory, por exemplo, 2g.
+SparkEngine.OptionsExecutorMemory.Label=Memória do executor
+SparkEngine.OptionsExecutorMemory.ToolTip=Spark.executor.memória, por exemplo, 
2g.
+SparkEngine.OptionsExecutorCores.Label=Núcleos de execução
+SparkEngine.OptionsExecutorCores.ToolTip=Spark.executor.cores
+SparkEngine.OptionsTempLocation.Label=Localização da temperatura
+SparkEngine.OptionsTempLocation.ToolTip=Diretório de arquivos temporários
+SparkEngine.OptionsPluginsToStage.Label=Plugins para o palco
+SparkEngine.OptionsPluginsToStage.ToolTip=Pastas de plugins opcionais 
separadas por vírgula para o palco no cluster
+SparkEngine.OptionsPathSchemeMap.Label=Mapa do esquema do caminho (de=para 
linhas)
+SparkEngine.OptionsPathSchemeMap.ToolTip=Opcional esquema URI reescrever para 
Spark File / Lake PATH apenas (não clássico Hop VFS). Um de=para por linha, por 
exemplo, s3=s3a ou minio=s3a. Os comentários começam com #. Ainda configure 
Spark.hadoop.fs.s3a.* (ou outros FS) para o esquema alvo.
+SparkEngine.OptionsGenericRunMode.Label=Modo de execução de transformação 
genérica
+SparkEngine.OptionsGenericRunMode.ToolTip=O padrão para o Hop transforma-se em 
mapPartitions. Fãs distribuídas em divisórias Spark. DRIVER ONLY roda a 
mini-pipeline uma vez no driver Spark para que fluxos de trabalho aninhados não 
executem em múltiplos nós. Substituir por transformação com a ação de contexto 
"Modo de Execução de Parque".
diff --git 
a/plugins/engines/spark/src/main/resources/org/apache/hop/spark/gui/messages/messages_pt_BR.properties
 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/gui/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..095be83a37
--- /dev/null
+++ 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/gui/messages/messages_pt_BR.properties
@@ -0,0 +1,58 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SparkGuiPlugin.Menu.SparkPackageConfig.Text=Editar filtros de pacotes Native 
Spark...
+SparkGuiPlugin.Menu.ExportSparkProjectPackage.Text=Exportar pacote de projeto 
para Native Spark...
+SparkGuiPlugin.ExportSparkProject.Dialog.Header=Exportação para a execução do 
Native Spark
+SparkGuiPlugin.ExportSparkProject.Dialog.Message1=Isto constrói um pacote de 
projeto zip especificamente para executar oleodutos no motor Native Spark 
(MainSpark --HopProjectPackage).
+SparkGuiPlugin.ExportSparkProject.Dialog.Message2=Inclui arquivos de definição 
de projeto (pipelines, fluxos de trabalho, recursos pequenos sob projeto /) 
mais metadados. Json. Os padrões ignoram o trabalho/, os conjuntos de dados/, o 
alvo/, e outras dirs de volume/IDE (configurado via Ferramentas → Editar 
filtros de pacote Native Spark / centelha-pacote.json). Este não é o mesmo que 
File → Exportar projeto atual para zip ou .gitignore.
+SparkGuiPlugin.ExportSparkProject.Dialog.Message3=Em Databricks, pacotes sob 
/Volumes são compartilhados sem SparkFiles; em outro lugar, o zip é distribuído 
por caminhos simples de Mapeamento e Execução Pipeline sob resolução ${PROJECT 
HOME}. Use variáveis separadas (HOP DATA / s3a://...) para os caminhos de dados 
do arquivo Spark — não PROJECT HOME.
+SparkPackageConfigDialog.Shell.Title=Native Spark, filtros de pacotes.
+SparkPackageConfigDialog.Intro=Configure quais arquivos de projeto estão 
incluídos ao exportar um pacote de projeto Native Spark (Ferramentas → Exportar 
pacote de projeto, Databricks Implantar e executar, hop-conf). Salvo como 
pacote de faíscas. Json na casa do projeto. Não é o mesmo que .gitignore.
+SparkPackageConfigDialog.ProjectHome.Label=Projeto lar
+SparkPackageConfigDialog.Defaults.Label=Diretórios de exclusão incorporados 
(sempre aplicados a menos que "substituir padrões" seja verificado): {0}
+SparkPackageConfigDialog.ReplaceDefaults.Label=Substituir diretórios de 
exclusão incorporados (use apenas listas abaixo)
+SparkPackageConfigDialog.ExcludeDirs.Label=Diretórios de exclusão extra
+SparkPackageConfigDialog.ExcludeDirs.Tooltip=Uma base de diretório por linha 
(por exemplo, tmp, screenshots). Merged com inclusos exclui, a menos que 
substituam os padrões.
+SparkPackageConfigDialog.ExcludeGlobs.Label=Excluir os globos
+SparkPackageConfigDialog.ExcludeGlobs.Tooltip=Um globo por linha, relativo à 
casa do projeto (por exemplo, **/*.jar ou mapeamentos/large/**).
+SparkPackageConfigDialog.IncludePaths.Label=Caminhos de inclusão de força
+SparkPackageConfigDialog.IncludePaths.Tooltip=Um caminho relativo por linha 
para incluir mesmo sob um diretório ignorado (por exemplo, 
trabalho/cluster-env.json).
+SparkPackageConfigDialog.Error.Load.Title=O carregamento falhou.
+SparkPackageConfigDialog.Error.Load.Message=Não consegui ler o pacote de 
faíscas.
+SparkPackageConfigDialog.Error.Save.Title=O salvamento falhou
+SparkPackageConfigDialog.Error.Save.Message=Não consegui escrever o pacote de 
faíscas.
+SparkGuiPlugin.ExportSparkProject.NoProject.Header=Nenhum projeto ativo.
+SparkGuiPlugin.ExportSparkProject.NoProject.Message=PROJECT HOME não está 
definido. Abrir ou ativar um projeto de Hop primeiro, e depois exportar 
novamente.
+SparkGuiPlugin.ExportSparkProject.Progress.Message=Exportando o pacote de 
projeto Native Spark...
+SparkGuiPlugin.ExportSparkProject.Done.Header=Pacote Nativo Spark criado
+SparkGuiPlugin.ExportSparkProject.Done.Message1=Pacote escrito para:
+SparkGuiPlugin.ExportSparkProject.Done.Message2=O caminho foi copiado para a 
prancheta.
+SparkGuiPlugin.ExportSparkProject.Done.Message3=Enviar com MainSpark 
--HopProjectPackage=<this zip> - 
HopPipelinePath=<relative.hpl>-HopRunConfiguraçãoNome=<config>. O motor 
distribui o zip para todos os executores automaticamente.
+SparkGuiPlugin.ExportSparkProject.Error.Header=A exportação falhou.
+SparkGuiPlugin.ExportSparkProject.Error.Message=Não foi possível exportar o 
pacote do projeto Native Spark.
+SparkGuiPlugin.FileTypes.Zip.Label=Arquivos Zip (*.zip)
+SparkGuiPlugin.FileTypes.All.Label=Todos os arquivos
+SparkGuiPlugin.ContextAction.Category=Spark.
+SparkGuiPlugin.ContextAction.SparkRunMode.Name=Spark Run Mode
+SparkGuiPlugin.ContextAction.SparkRunMode.Tooltip=Substituir a execução 
genérica do Native Spark: herdar o padrão de configuração de execução, forçar 
DISTRIBUTED (mapPartitions em executores), ou forçar DRIVER ONLY (correr uma 
vez no driver Spark). Útil para executor de fluxo de trabalho e outras 
execuções aninhadas.
+SparkGuiPlugin.ContextAction.SparkRunMode.Dialog.Title=Spark Run Mode
+SparkGuiPlugin.ContextAction.SparkRunMode.Dialog.Message=Escolha como 
transformar "0" deve ser executado no motor Native Spark quando é tratado como 
um mapa genérico de transformação Partições. Atual: {1}
+SparkGuiPlugin.ContextAction.SparkRunMode.Error.Header=Spark Run Mode
+SparkGuiPlugin.ContextAction.SparkRunMode.Error.Message=Não foi possível 
definir o modo de execução do Spark para esta transformação
diff --git 
a/plugins/engines/spark/src/main/resources/org/apache/hop/spark/metadata/messages/messages_pt_BR.properties
 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/metadata/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..398dae9384
--- /dev/null
+++ 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/metadata/messages/messages_pt_BR.properties
@@ -0,0 +1,42 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SparkCatalog.Name=Catálogo Spark
+SparkCatalog.Description=Catálogo Spark SQL para formatos de mesa abertos.
+SparkCatalog.Name.Label=Nome
+SparkCatalog.CatalogName.Label=Nome do catálogo Spark
+SparkCatalog.CatalogName.Tooltip=Nome usado em Spark.sql.catalog. Deve 
corresponder à primeira parte dos identificadores da mesa.
+SparkCatalog.CatalogType.Label=Tipo de catálogo
+SparkCatalog.CatalogType.Tooltip=Hadoop (warehouse), descanso (uri), 
personalizado (implementação), ou colmeia/cola avançada via conf extra
+SparkCatalog.Implementation.Label=Classe de implementação
+SparkCatalog.Implementation.Tooltip=Nome de classe completo (padrão 
org.apache.iceberg.spark.SparkCatalog). Preciso de um tipo personalizado.
+SparkCatalog.Warehouse.Label=Depósito
+SparkCatalog.Warehouse.Tooltip=Caminho do armazém/URI (tipo hadoop; arquivo:// 
ou s3a://...)
+SparkCatalog.Uri.Label=URI.
+SparkCatalog.Uri.Tooltip=Ponto final do catálogo REST (ou URI para colmeia 
avançada)
+SparkCatalog.Credential.Label=Credencial / token
+SparkCatalog.Credential.Tooltip=Segredo opcional (campo de palavras-passe). 
Não está registrado. Para os catálogos REST este mapa para 
centelhar.Sql.catalog.
+SparkCatalog.ConfExtra.Label=Conf extra (linhas chave=valor)
+SparkCatalog.ConfExtra.Tooltip=Uma chave = valor por linha (# comentários 
permitidos). Chaves curtas se tornam centelha.Sql.catalog. Trate como sensível 
se as fichas estiverem incluídas.
+SparkCatalog.LoadTemplate.Label=Carregar modelo de catálogo
+SparkCatalog.LoadTemplate.ToolTip=Preencha o formulário de um cenário de 
catálogo chamado (Iceberg Hadoop/REST, Colmeia, Cola, \u2026). Substitua os 
placeholders pelo seu ambiente.
+SparkCatalog.LoadTemplate.Dialog.Title=Carregar modelo de catálogo
+SparkCatalog.LoadTemplate.Dialog.Message=Escolha um cenário de catálogo. As 
pessoas devem ser ajustadas para o seu ambiente.
+SparkCatalog.LoadTemplate.Confirm.Title=Substituir configurações de catálogo?
+SparkCatalog.LoadTemplate.Confirm.Message=Substituir os campos do catálogo 
atual por modelo "0"?
diff --git 
a/plugins/engines/spark/src/main/resources/org/apache/hop/spark/transforms/io/messages/messages_pt_BR.properties
 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/transforms/io/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..b588061a06
--- /dev/null
+++ 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/transforms/io/messages/messages_pt_BR.properties
@@ -0,0 +1,50 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SparkFileInput.Name=Arquivo Spark input
+SparkFileInput.Description=Leia arquivos com o motor Spark nativo (CSV, 
Parquet, JSON, ORC). O caminho é uma URI Spark/Hodoop, não Hop VFS.
+SparkFileInput.Keyword=centelha, arquivo, entrada, CSV, parquet, Json
+SparkFileOutput.Name=Saída do arquivo Spark
+SparkFileOutput.Description=Escreva arquivos com o motor Spark nativo (CSV, 
Parquet, JSON, ORC). O caminho é uma URI Spark/Hodoop, não Hop VFS.
+SparkFileOutput.Keyword=centelha, arquivo, saída, CSV, parquet, Json
+SparkFileInputDialog.Shell.Title=Arquivo Spark input
+SparkFileInputDialog.FilePath=Caminho da faísca (Hadoop URI)
+SparkFileInputDialog.FilePath.Tooltip=URI visível para Spark em cada executor 
(não Hop VFS). Exemplos\: caminho do arquivo no local[*], hdfs\://..., 
s3a\://bucket/prefix. Não use esquemas só de Hop como o MinIO. Evite ${PROJECT 
HOME} aqui quando usar um pacote de projeto Spark - que pontos variáveis em 
arquivos de definição, não dados; use HOP DATA / OUTPUT ROOT ou s3a\:// para 
caminhos Dataset.
+SparkFileInputDialog.Format=Formato
+SparkFileInputDialog.Header=Primeira linha é cabeçalho
+SparkFileInputDialog.Separator=Separador
+SparkFileInputDialog.Quote=Caráter de citação
+SparkFileInputDialog.InferSchema=Esquema de inferência (CSV sem lista de 
campos)
+SparkFileInputDialog.ExtraOptions=Opções extras (linhas chave=valor)
+SparkFileInputDialog.Fields=Campos (esquema opcional)
+SparkFileInputDialog.Column.Name=Nome
+SparkFileInputDialog.Column.Type=Tipo
+SparkFileInputDialog.Column.Length=Comprimento
+SparkFileInputDialog.Column.Precision=Precisão
+SparkFileOutputDialog.Shell.Title=Saída do arquivo Spark
+SparkFileOutputDialog.FilePath=Caminho da faísca / diretório (Hadoop URI)
+SparkFileOutputDialog.FilePath.Tooltip=Diretório de saída ou prefixo Spark 
deve escrever para (Hadoop FileSystem URI). Exemplos\: caminho local, 
hdfs\://..., s3a\://bucket/prefix. Não é um caminho de Hop VFS. Evite ${PROJECT 
HOME} com um pacote de projeto Spark (apenas definições); use HOP DATA / OUTPUT 
ROOT ou s3a\:// para dados.
+SparkFileOutputDialog.Format=Formato
+SparkFileOutputDialog.SaveMode=Modo de gravação
+SparkFileOutputDialog.Header=Escrever cabeçalho
+SparkFileOutputDialog.Separator=Separador
+SparkFileOutputDialog.Quote=Caráter de citação
+SparkFileOutputDialog.PartitionBy=Partição por colunas (separadas por vírgulas)
+SparkFileOutputDialog.Coalesce=Divisórias de carvão (por exemplo, 1 para um 
único arquivo)
+SparkFileOutputDialog.ExtraOptions=Opções extras (linhas chave=valor)
diff --git 
a/plugins/engines/spark/src/main/resources/org/apache/hop/spark/transforms/table/messages/messages_pt_BR.properties
 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/transforms/table/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..735a193ff0
--- /dev/null
+++ 
b/plugins/engines/spark/src/main/resources/org/apache/hop/spark/transforms/table/messages/messages_pt_BR.properties
@@ -0,0 +1,84 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SparkLakeTableInput.Name=Faísca da mesa do lago
+SparkLakeTableInput.Description=Leia um formato de mesa aberta (Delta Lake / 
Apache Iceberg) com o motor Spark nativo
+SparkLakeTableInput.Keyword=centelha, Delta, Iceberg, Blake, mesa, entrada, 
ácido
+SparkLakeTableInput.Injection.Group.Fields=Campos (projeção opcional)
+SparkLakeTableOutput.Name=Faísca da mesa do lago
+SparkLakeTableOutput.Description=Escreva um formato de mesa aberta (Delta Lake 
/ Apache Iceberg) com o motor Spark nativo
+SparkLakeTableOutput.Keyword=centelha, Delta, Iceberg, Blake, mesa, saída, 
ácido
+SparkLakeTableInputDialog.Shell.Title=Faísca da mesa do lago
+SparkLakeTableInputDialog.Format=Formato da tabela
+SparkLakeTableInputDialog.IdentifierMode=Modo identificador
+SparkLakeTableInputDialog.TablePath=Caminho da mesa de faísca (modo PATH, URI 
Hadoop)
+SparkLakeTableInputDialog.TablePath.Tooltip=Raiz da mesa do lago como um 
Spark/Hadoop URI (file\:///..., s3a\://..., ...). Não é um caminho VFS Hop 
(s3\://, chamado de esquemas de conexão MinIO).
+SparkLakeTableInputDialog.TableIdentifier=Identificador de tabela (modo table, 
por exemplo, lake.db.ordens)
+SparkLakeTableInputDialog.CatalogMetadataName=Nome dos metadados do catálogo 
de faíscas (modo TABELA)
+SparkLakeTableInputDialog.TimeTravelType=Viagem no tempo
+SparkLakeTableInputDialog.TimeTravelVersion=Versão / imagem id
+SparkLakeTableInputDialog.TimeTravelTimestamp=Como horário
+SparkLakeTableInputDialog.ExtraOptions=Opções extras (linhas chave=valor)
+SparkLakeTableInputDialog.Fields=Campos (projeção opcional)
+SparkLakeTableInputDialog.Column.Name=Nome
+SparkLakeTableInputDialog.Column.Type=Tipo
+SparkLakeTableInputDialog.Column.Length=Comprimento
+SparkLakeTableInputDialog.Column.Precision=Precisão
+SparkLakeTableOutputDialog.Shell.Title=Faísca da mesa do lago
+SparkLakeTableOutputDialog.Format=Formato da tabela
+SparkLakeTableOutputDialog.IdentifierMode=Modo identificador
+SparkLakeTableOutputDialog.TablePath=Caminho da mesa de faísca (modo PATH, URI 
Hadoop)
+SparkLakeTableOutputDialog.TablePath.Tooltip=Raiz da mesa do lago como um 
Spark/Hadoop URI (file\:///..., s3a\://..., ...). Não é um caminho de Hop VFS.
+SparkLakeTableOutputDialog.TableIdentifier=Identificador de tabela (modo 
table, por exemplo, lake.db.ordens)
+SparkLakeTableOutputDialog.CatalogMetadataName=Nome dos metadados do catálogo 
de faíscas (modo TABELA)
+SparkLakeTableOutputDialog.SaveMode=Modo de gravação
+SparkLakeTableOutputDialog.PartitionBy=Partição por colunas (separadas por 
vírgulas)
+SparkLakeTableOutputDialog.Coalesce=Divisórias de carvão (por exemplo, 1 para 
um único arquivo)
+SparkLakeTableOutputDialog.ExtraOptions=Opções extras (linhas chave=valor)
+SparkLakeTableMerge.Name=A mesa do lago cintilante se funde
+SparkLakeTableMerge.Description=Fusão em uma mesa Delta Lake ou Apache Iceberg 
com o motor Spark nativo
+SparkLakeTableMerge.Keyword=centelha, Delta, Iceberg, Blake, mesa, fusão, 
upert, ácido
+SparkLakeTableMergeDialog.Shell.Title=A mesa do lago cintilante se funde
+SparkLakeTableMergeDialog.Format=Formato da tabela
+SparkLakeTableMergeDialog.IdentifierMode=Modo identificador
+SparkLakeTableMergeDialog.TablePath=Faísca caminho da mesa alvo (modo PATH, 
Hadoop URI)
+SparkLakeTableMergeDialog.TablePath.Tooltip=Raíz de mesa do lago alvo como um 
Spark/Hadoop URI (file\:///..., s3a\://..., ...). Não é um caminho de Hop VFS.
+SparkLakeTableMergeDialog.TableIdentifier=Identificador da tabela alvo (modo 
QUADRO)
+SparkLakeTableMergeDialog.CatalogMetadataName=Nome dos metadados do catálogo 
de faíscas (modo TABELA)
+SparkLakeTableMergeDialog.MergeCondition=Mesclar condição (cláusula ON, t=alvo 
s=fonte)
+SparkLakeTableMergeDialog.MatchedAction=Quando combinado
+SparkLakeTableMergeDialog.NotMatchedAction=Quando não combina
+SparkLakeTableMergeDialog.NotMatchedBySourceAction=Quando não combina com a 
fonte (avançada)
+SparkLakeTableMergeDialog.RawMergeSql=MERGE SQL (avançado; substitui campos 
estruturados)
+SparkLakeTableMaintenance.Name=Manutenção da mesa do lago Spark
+SparkLakeTableMaintenance.Description=OPTIMIZE, VACUUM, expirar fotos, ou 
DELETE em uma mesa Delta/Iceberg (Native Spark)
+SparkLakeTableMaintenance.Keyword=centelha, Delta, Iceberg, otimiza, vácuo, 
manutenção, compactação
+SparkLakeTableMaintenanceDialog.Shell.Title=Manutenção da mesa do lago Spark
+SparkLakeTableMaintenanceDialog.Format=Formato da tabela
+SparkLakeTableMaintenanceDialog.IdentifierMode=Modo identificador
+SparkLakeTableMaintenanceDialog.TablePath=Caminho da mesa de faísca (modo 
PATH, URI Hadoop)
+SparkLakeTableMaintenanceDialog.TablePath.Tooltip=Raiz da mesa do lago como um 
Spark/Hadoop URI (file\:///..., s3a\://..., ...). Não é um caminho de Hop VFS.
+SparkLakeTableMaintenanceDialog.TableIdentifier=Identificador da tabela (modo 
TABELA)
+SparkLakeTableMaintenanceDialog.CatalogMetadataName=Nome dos metadados do 
catálogo de faíscas (modo TABELA)
+SparkLakeTableMaintenanceDialog.Operation=Operação
+SparkLakeTableMaintenanceDialog.RetentionHours=Horas de retenção (VÁCUO / 
EXPIRE requerido)
+SparkLakeTableMaintenanceDialog.RetainLast=Mantenha as últimas fotos de N.
+SparkLakeTableMaintenanceDialog.WhereClause=ONDE Cláusula (OPTIMIZE / DELETE)
+SparkLakeTableMaintenanceDialog.ZOrderColumns=Colunas ZORDER (Delta OPTIMIZE, 
separada por vírgulas)
+SparkLakeTableMaintenanceDialog.AcknowledgeDestructive=Eu entendo que isso 
pode apagar arquivos de dados / instantâneos
diff --git 
a/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/gui/messages/messages_pt_BR.properties
 
b/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/gui/messages/messages_pt_BR.properties
index 8fc876d9cd..dbfab4de5b 100644
--- 
a/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/gui/messages/messages_pt_BR.properties
+++ 
b/plugins/misc/marketplace/src/main/resources/org/apache/hop/marketplace/gui/messages/messages_pt_BR.properties
@@ -207,3 +207,89 @@ AddPluginsFromCatalogDialog.Column.Name=Nome
 AddPluginsFromCatalogDialog.Column.Artifact=Artefato
 AddPluginsFromCatalogDialog.Column.Category=Categoria
 AddPluginsFromCatalogDialog.Column.Description=Descrição
+MarketplaceDialog.Column.Version=Versão
+MarketplaceDialog.Column.Repository=Repositório
+MarketplaceDialog.Repository.Apache=Apache (Catálogo opcional)
+MarketplaceDialog.Button.Install.RequiresAdmin=Requer administrador 
(plugin.manage). Ainda pode procurar no catálogo.
+MarketplaceDialog.Button.Uninstall.RequiresAdmin=Requer administrador 
(plugin.manage). Ainda pode procurar no catálogo.
+MarketplaceDialog.ReposDirty.Header=Alterações não salvas no repositório
+MarketplaceDialog.ReposDirty.Close.Message=As configurações do repositório 
foram alteradas, mas não salvas para hop-config.
+MarketplaceDialog.ReposDirty.Refresh.Message=As configurações do repositório 
foram alteradas mas não salvas. A descoberta do 'nPlugin' usa a configuração 
salva.
+MarketplaceDialog.ReposDirty.Reload.Error=Não foi possível recarregar a 
configuração de mercado do hop-config
+MarketplaceDialog.Status.InstallingCount=Instalando plugins {0}...
+MarketplaceDialog.Status.Cancelled=Cancelado.
+MarketplaceDialog.Progress.Installing=Instalação {0}
+MarketplaceDialog.Progress.InstallingCount=Instalando plugins {0}
+MarketplaceDialog.Progress.Applying=Aplicando arquivo de ambiente
+MarketplaceDialog.Progress.Searching=Procurando repositórios...
+MarketplaceDialog.Progress.Item={\cH00FFFF\fs40\i0}
+MarketplaceDialog.Progress.Phase.Resolve=Resolvendo {0}...
+MarketplaceDialog.Progress.Phase.Download=Contatando...
+MarketplaceDialog.Progress.Phase.Unzip=Desembalando...
+MarketplaceDialog.Progress.Phase.Activate=Instalando arquivos para {0}...
+MarketplaceDialog.Progress.Downloading=Baixando: {0}
+MarketplaceDialog.Progress.Transfer={0} - {1} de {2}, {3}
+MarketplaceDialog.Progress.TransferNoSpeed={0} De {1}
+MarketplaceDialog.Progress.TransferUnknownSize={0} - {1} baixado
+MarketplaceDialog.Progress.Starting=Iniciando download...
+MarketplaceDialog.Progress.Eta.Second=Seg à esquerda
+MarketplaceDialog.Progress.Eta.Seconds={0} segundos esquerda
+MarketplaceDialog.Progress.Eta.Minute=Min à esquerda.
+MarketplaceDialog.Progress.Eta.Minutes=Mins esquerda
+MarketplaceDialog.Progress.Eta.Hour={0} h esquerda
+MarketplaceDialog.Progress.Eta.Hours={0} hrs esquerda
+MarketplaceDialog.Refresh.Error=Falha ao listar plugins dos repositórios 
configurados
+MarketplaceDialog.Error.Open=Incapaz de abrir o diálogo de mercado
+MarketplaceDialog.Install.Done.HeaderMultiple=Plugins instalados
+MarketplaceDialog.Install.Done.MessageMultiple=Plugins 
instalados:\n\n{1}\n\n\nPor favor, reinicie Hop para carregá-los.
+MarketplaceDialog.Install.Error.Multiple=Falha ao instalar {0} de plugins {1}
+MarketplaceDialog.Uninstall.Confirm.HeaderMultiple=Desinstalar plugins
+MarketplaceDialog.Uninstall.Confirm.MessageMultiple=Remover plugins instalados 
no mercado?
+MarketplaceDialog.Uninstall.NoReceipt.MessageMultiple=Nenhum recibo de 
instalação de mercado para:
+ManageRepositoriesDialog.Column.Browse=Navegar
+ManageRepositoriesDialog.Button.Import=Importar...
+ManageRepositoriesDialog.Button.ImportUrl=Importar do URL...
+ManageRepositoriesDialog.Button.Export=Exportar...
+ManageRepositoriesDialog.Edit.Password.Tooltip=Vazio significa sem senha: 
limpar o campo para voltar para a variável de ambiente HOP MARKETPLACE <ID> 
PASSWORD. Armazenado em hop-config.json, que não é criptografia, para manter o 
segredo fora do arquivo, use uma variável como $'\'MY TOKEN'''.
+ManageRepositoriesDialog.Edit.Browse=Navegue (lista zips na página Consulta / 
Plugins)
+ManageRepositoriesDialog.Edit.Browse.Tooltip=Quando habilitado, a consulta de 
mercado e a guia Plugins sempre incluem uma lista ao vivo de artefatos *.zip 
deste repositório (busca de nexo). URL de catálogo opcional sobrepõe busca ao 
vivo.
+ManageRepositoriesDialog.Edit.CatalogUrl=URL do catálogo
+ManageRepositoriesDialog.Edit.UrlTemplate=Download de modelo de URL
+ManageRepositoriesDialog.Edit.UrlTemplate.Tooltip=Opcional. Para anfitriões 
que não servem layout Maven (ativos de liberação, arquivos estáticos). 
Locatários: $'{'groupId'', $'{'groupPath'', $''artifactId', $'{'version'''. 
Quando definido, o URL do repositório não é usado para downloads de plugins.
+ManageRepositoriesDialog.Edit.BrowserType=Navegar API
+ManageRepositoriesDialog.Edit.BrowserType.Tooltip=Qual gerenciador de 
repositório API é usado para listar plugins quando o Browse está em e nenhum 
URL de catálogo está definido. Auto detecta registros do pacote Forgejo/Gitea e 
volta para Nexus. Downloads nunca usam isso.
+ManageRepositoriesDialog.Edit.SearchQuery=Pesquisa de pesquisa
+ManageRepositoriesDialog.Edit.GroupIdFilter=Filtro de identificação de grupo
+ManageRepositoriesDialog.Edit.IncludeSnapshots=Incluir versões SNAPSHOT na 
descoberta
+ManageRepositoriesDialog.Filter.RepoDef=Definições do repositório (*.yaml, 
*.yml, *.json)
+ManageRepositoriesDialog.Filter.Yaml=YAML (*.yaml, *.yml)
+ManageRepositoriesDialog.Filter.Json=JSON (*.json)
+ManageRepositoriesDialog.Import.Done.Header=Repositório importado
+ManageRepositoriesDialog.Import.Done.Message=Importado repositório ''0}'' e 
salvo hop-config.json.
+ManageRepositoriesDialog.Import.Error=Não foi possível importar a definição do 
repositório
+ManageRepositoriesDialog.ImportUrl.Header=Importar a definição do repositório 
do URL
+ManageRepositoriesDialog.ImportUrl.Message=URL https da definição do 
repositório (YAML ou JSON). O arquivo é baixado anonimamente e qualquer nome de 
usuário ou senha nele é ignorado.
+ManageRepositoriesDialog.ImportUrl.Error=Não foi possível importar a definição 
do repositório do URL
+ManageRepositoriesDialog.ImportUrl.Confirm.Header=Adicionar este repositório?
+ManageRepositoriesDialog.ImportUrl.Confirm.Message=Tradução: Nome: {2}\nURL: 
{3}\nDownload template: {4}\nCatalog URL: {5}\nPlugins listados: {6}\n\nPlugins 
serão baixados destes endereços, então adicione este repositório apenas se você 
confiar na fonte. Qualquer nome de usuário ou senha no arquivo foi ignorado: 
definir credenciais no repositório após a importação.
+ManageRepositoriesDialog.ImportUrl.NoFallback.Message=\n\nOs repositórios 
Apache e Maven Central não estão configurados e habilitados, então não há 
repositório público para voltar atrás se este não puder ser alcançado.
+ManageRepositoriesDialog.ImportUrl.Primary.Header=Esta definição quer se 
tornar o repositório primário
+ManageRepositoriesDialog.ImportUrl.Primary.Message=Esta definição se define 
como o repositório primário. E cada instalação de plugin tentaria primeiro. Se 
ele é privado e suas credenciais ainda não estão definidas, ou não pode ser 
alcançado, instala que o trabalho hoje começará a falhar. Não, importa como um 
retrocesso e mantém o primário.
+ManageRepositoriesDialog.Export.Select=Selecione uma linha do repositório para 
exportar.
+ManageRepositoriesDialog.Export.Done.Header=Repositório exportado
+ManageRepositoriesDialog.Export.Done.Message=Escreveu:
+ManageRepositoriesDialog.Export.Error=Não foi possível exportar a definição do 
repositório
+ManageRepositoriesDialog.Edit.Tab.General=Geral.
+ManageRepositoriesDialog.Tab.PluginMetadata=Plugin metadados
+ManageRepositoriesDialog.Plugins.Hint=Metadados opcionais para plugins deste 
repositório (enriquece navegação ao vivo: nome, categoria, pino de versão, 
min/max versão Hop). Aplicado quando você clicar em OK.
+ManageRepositoriesDialog.Plugins.Column.Group=ID do grupo
+ManageRepositoriesDialog.Plugins.Column.Artifact=ID do artefato
+ManageRepositoriesDialog.Plugins.Column.Version=Pino da versão
+ManageRepositoriesDialog.Plugins.Column.Name=Nome
+ManageRepositoriesDialog.Plugins.Column.Category=Categoria
+ManageRepositoriesDialog.Plugins.Column.Description=Descrição
+ManageRepositoriesDialog.Plugins.Column.MinHop=Versão Min Hop
+ManageRepositoriesDialog.Plugins.Column.MaxHop=Versão Max Hop
+ManageRepositoriesDialog.Button.AddPlugin=Adicionar plugin
+ManageRepositoriesDialog.Button.RemovePlugin=Remover plugin
+HopEnvironmentDialog.Repo.Column.Password.Tooltip=Guardado no arquivo 
ambiental, que não é criptografia. Os arquivos de ambiente são destinados a 
serem compartilhados: prefira uma variável como a variável de ambiente HOP 
MARKETPLACE <ID> PASSWORD.
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/plugins/tech/arrow/src/main/resources/org/apache/hop/arrow/datastream/shared/messages/messages_pt_BR.properties
similarity index 55%
copy from 
plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
copy to 
plugins/tech/arrow/src/main/resources/org/apache/hop/arrow/datastream/shared/messages/messages_pt_BR.properties
index 7b2ff11c82..1692cdb472 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/plugins/tech/arrow/src/main/resources/org/apache/hop/arrow/datastream/shared/messages/messages_pt_BR.properties
@@ -16,15 +16,4 @@
 # limitations under the License.
 #
 #
-#
 
-ActionAbort.Description=Abortar o fluxo de trabalho
-ActionAbort.keyword=abortar,parar, falhar,cancelar,terminar
-ActionAbort.Meta.CheckResult.CouldNotExecute=N\u00E3o foi poss\u00EDvel 
executar a a\u00E7\u00E3o de abortar:
-ActionAbort.Meta.CheckResult.Label=Abortando o fluxo de trabalho.
-ActionAbort.Name=Abortar o fluxo de trabalho
-ActionAbortDialog.Label=Abortar o fluxo de trabalho
-ActionAbortDialog.MessageAbort.Label=Mensagem
-ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
-ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
-ActionAbortDialog.Title=Abortar o fluxo de trabalho
diff --git 
a/plugins/tech/databricks/src/main/resources/org/apache/hop/vfs/databricks/metadata/messages/messages_pt_BR.properties
 
b/plugins/tech/databricks/src/main/resources/org/apache/hop/vfs/databricks/metadata/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..68947eac30
--- /dev/null
+++ 
b/plugins/tech/databricks/src/main/resources/org/apache/hop/vfs/databricks/metadata/messages/messages_pt_BR.properties
@@ -0,0 +1,35 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+DatabricksVfsConnection.Name=Conexão Databricks VFS
+DatabricksVfsConnection.Description=Nome do esquema VFS para Unity Catalog 
Volumes e arquivos de espaço de trabalho (Arquivos API)
+DatabricksVfsConnection.Name.Label=Nome (esquema URI)
+DatabricksVfsConnection.Description.Label=Descrição
+DatabricksVfsConnection.Description.Tooltip=Descrição opcional de texto livre.
+DatabricksVfsConnection.Connection.Label=Conexão Databricks
+DatabricksVfsConnection.Connection.Tooltip=Conexão trabalho/espaço de trabalho 
que fornece host e token de acesso pessoal
+DatabricksVfsConnection.DefaultBasePath.Label=Raíz caminho
+DatabricksVfsConnection.DefaultBasePath.Tooltip=Volume de UC absoluto ou 
caminho de espaço de trabalho que é a raiz deste esquema. Encurta URIs: 
nome:///input maps to <root>/input. Deixe vazio para precisar de completo 
/Volumes / ... ou / Espaço de trabalho / ... caminhos em cada URI.
+DatabricksVfsConnection.Test.Label=Ligação de teste
+DatabricksVfsConnection.Test.Success.Title=Conexão OK
+DatabricksVfsConnection.Test.Success.Message=Conexão referenciada de 
Databricks funciona como:
+DatabricksVfsConnection.Test.Error.Title=A conexão falhou.
+DatabricksVfsConnection.Test.Error.Message=Incapaz de validar a conexão 
referenciada Databricks
+DatabricksVfsConnection.Test.MissingConnection=Selecione uma conexão de 
databricks primeiro.
+DatabricksVfsConnection.Test.ConnectionNotFound=Conexão de dados não 
encontrada:
diff --git 
a/plugins/tech/databricks/src/main/resources/org/apache/hop/workflow/actions/databricks/messages/messages_pt_BR.properties
 
b/plugins/tech/databricks/src/main/resources/org/apache/hop/workflow/actions/databricks/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..a3e8ea436c
--- /dev/null
+++ 
b/plugins/tech/databricks/src/main/resources/org/apache/hop/workflow/actions/databricks/messages/messages_pt_BR.properties
@@ -0,0 +1,116 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+ActionDatabricksJobRun.Name=Databricks trabalho executado
+ActionDatabricksJobRun.Description=Executar ou enviar um trabalho Databricks e 
opcionalmente esperar pela conclusão
+ActionDatabricksJobRun.Name.Default=Databricks Job Run
+ActionDatabricksJobRun.Title=Databricks Job Run
+ActionDatabricksJobRun.keyword=Databricks, emprego, spark, cluster, grandes 
dados
+ActionDatabricksJobRun.Name.Label=Nome da ação.
+ActionDatabricksJobRun.Tab.Job=Trabalho
+ActionDatabricksJobRun.Tab.Deploy=Preparar
+ActionDatabricksJobRun.Tab.Package=Pacote
+ActionDatabricksJobRun.Tab.Compute=Computar
+ActionDatabricksJobRun.Tab.Run=Corra.
+ActionDatabricksJobRun.Connection.Label=Conexão Databricks
+ActionDatabricksJobRun.Connection.Tooltip=Conexão de espaço de trabalho (Jobs 
API / PAT)
+ActionDatabricksJobRun.RunMode.Label=Modo
+ActionDatabricksJobRun.RunMode.RunExisting=Executar o trabalho existente
+ActionDatabricksJobRun.RunMode.SubmitOnce=Uma vez, apresente-se.
+ActionDatabricksJobRun.RunMode.DeployAndRun=Preparar e executar (carga + 
trabalho JAR MainSpark)
+ActionDatabricksJobRun.JobId.Label=ID do trabalho
+ActionDatabricksJobRun.SubmitJson.Label=Envie JSON.
+ActionDatabricksJobRun.FatJar.Label=Garrafa gorda (caminho local)
+ActionDatabricksJobRun.Pipeline.Label=Arquivo pipeline (.hpl)
+ActionDatabricksJobRun.RunConfig.Label=Configuração de execução da tubulação
+ActionDatabricksJobRun.RunConfig.Tooltip=Native Spark (ou outro) pipeline 
execute o nome de configuração exportado com metadados no momento da implantação
+ActionDatabricksJobRun.FileType.Jar=Arquivo Java (*.jar)
+ActionDatabricksJobRun.FileType.Zip=Arquivo Zip (*.zip)
+ActionDatabricksJobRun.FileType.Json=JSON (*.json)
+ActionDatabricksJobRun.Error.OpenPipeline.Title=Erro ao abrir o oleoduto
+ActionDatabricksJobRun.Error.OpenPipeline.Message=Não foi possível abrir o 
arquivo de pipeline selecionado
+ActionDatabricksJobRun.DbfsBase.Label=Envie o diretório base (Volume ou DBFS)
+ActionDatabricksJobRun.UploadProjectPackage.Label=Envie o pacote do projeto 
Spark
+ActionDatabricksJobRun.UploadProjectPackage.Tooltip=Exportar e carregar um 
pacote de projeto Native Spark (mesma disposição como Tools \u2192 Exportar 
pacote de projeto para Native Spark) assim aninhado simples Mapeamento / 
Pipeline Arquivos executores sob resolução PROJECT HOME no cluster. Usa 
MainSpark --HopProjectPackage.
+ActionDatabricksJobRun.ProjectHome.Label=Projeto casa (exportação)
+ActionDatabricksJobRun.ProjectHome.Tooltip=Diretório do projeto usado para 
exportar um pacote. Deixe vazio para usar PROJECT HOME. Ignorado quando o 
pacote do Projeto está definido.
+ActionDatabricksJobRun.ProjectPackageFile.Label=Arquivo do pacote do projeto 
(opcional)
+ActionDatabricksJobRun.ProjectPackageFile.Tooltip=Opcional hop-spark pacote de 
projeto zip. Quando o pacote do projeto em branco e Upload Spark é verificado, 
as exportações de Hop do projeto home / PROJECT HOME no momento da implantação.
+ActionDatabricksJobRun.EnvironmentConfigFile.Label=Arquivo de configuração do 
ambiente (opcional)
+ActionDatabricksJobRun.EnvironmentConfigFile.Tooltip=Opcionalmente 
descrito-variáveis JSON carregado como env-config.json e passado para MainSpark 
como --HopConfigFile (mesmo como MainSpark 4o argumento / formulário nomeado).
+ActionDatabricksJobRun.ClusterId.Label=Agrupamento/computação
+ActionDatabricksJobRun.ClusterId.Tooltip=Implantar e executar computação 
(escolha um): (1) Clássico cluster existente - colar o ID de cluster de todos 
os propósitos da área de trabalho. (2) Clássico conjunto de trabalhos — insira 
o valor literal new cluster e definir centelha versão / nó type id / num 
workers abaixo (ou opcional new cluster JSON); Databricks inicia um cluster 
para a execução e termina-lo depois. (3) Sem servidor - insira o valor literal 
sem servidor; nenhum campo de clus [...]
+ActionDatabricksJobRun.NewClusterSparkVersion.Label=Tradução e Sincronia:
+ActionDatabricksJobRun.NewClusterSparkVersion.Tooltip=Databricks Runtime 
centelha versão para um cluster de trabalho clássico, por exemplo 
18.2.x-scala2.13. Usado quando Cluster / Computação é novo cluster.
+ActionDatabricksJobRun.NewClusterNodeType.Label=New cluster nó tipo id
+ActionDatabricksJobRun.NewClusterNodeType.Tooltip=Tipo de nó em nuvem para um 
clássico grupo de trabalho. No AWS prefere i3.xlarge (NVMe local, sem EBS 
extra). M5.xlarge requer volumes de EBS. Exemplo Azure: Standard DS3 v2. Usado 
quando Cluster / Computação é novo cluster.
+ActionDatabricksJobRun.NewClusterNumWorkers.Label=New cluster num workers
+ActionDatabricksJobRun.NewClusterNumWorkers.Tooltip=O trabalhador conta para 
um clássico grupo de trabalho. Usado quando Cluster / Computação é novo cluster.
+ActionDatabricksJobRun.NewClusterJson.Label=New cluster JSON (opcional)
+ActionDatabricksJobRun.NewClusterJson.Tooltip=Opcional novo objeto JSON. 
Quando set e Cluster/computação é new cluster, sobrepõe centelha versão/nodo 
tipo id/número trabalhadores.
+ActionDatabricksJobRun.EnvironmentKey.Label=Chave do ambiente sem servidor
+ActionDatabricksJobRun.EnvironmentKey.Tooltip=Chave de ambiente de trabalho 
para computação sem servidor (padrão: padrão). Usado quando Cluster / 
Computação não tem servidor. A tarefa faz referência a isso através do 
environment key; nenhum existente cluster id ou new cluster é enviado.
+ActionDatabricksJobRun.EnvironmentClient.Label=Cliente de ambiente sem servidor
+ActionDatabricksJobRun.EnvironmentClient.Tooltip=Versão de cliente sem 
servidor, por exemplo, 4 para Spark 4.x. Usado quando Cluster / Computação não 
tem servidor.
+ActionDatabricksJobRun.JobName.Label=Nome do trabalho (criar)
+ActionDatabricksJobRun.UpdateJob.Label=Atualizar o trabalho existente (usar ID 
de trabalho acima)
+ActionDatabricksJobRun.Error.NoClusterId=Cluster/computação é necessária para 
implantar e executar (identidade de cluster existente, new cluster, ou servidor 
sem)
+ActionDatabricksJobRun.WaitMode.Label=Modo de espera
+ActionDatabricksJobRun.WaitMode.Wait=Espere pela conclusão.
+ActionDatabricksJobRun.WaitMode.FireAndForget=Atire e esqueça.
+ActionDatabricksJobRun.ReferencedObject.Description=Pipeline
+ActionDatabricksJobRun.Exception.MetaDataLoad=Erro inesperado durante a carga 
de metadados
+ActionDatabricksJobRun.Timeout.Label=Tempo limite (segundos, 0=nenhum)
+ActionDatabricksJobRun.Poll.Label=Intervalo de pesquisa (segundos)
+ActionDatabricksJobRun.VarJobId.Label=Variável do resultado: ID do trabalho
+ActionDatabricksJobRun.VarRunId.Label=Variável de resultado: ID de execução
+ActionDatabricksJobRun.VarStatus.Label=Variável do resultado: Status
+ActionDatabricksJobRun.VarPageUrl.Label=Variável do resultado: Correr URL da 
página
+ActionDatabricksJobRun.VarError.Label=Variável do resultado: Erro
+ActionDatabricksJobRun.Error.NoConnection=Por favor, selecione uma conexão 
Databricks
+ActionDatabricksJobRun.Error.NoMetadataProvider=Nenhum provedor de metadados 
disponível.
+ActionDatabricksJobRun.Error.ConnectionNotFound=Conexão de databricks não 
encontrada:
+ActionDatabricksJobRun.Error.NoJobId=A identificação do trabalho é necessária 
quando se executa um trabalho existente.
+ActionDatabricksJobRun.Error.NoSubmitJson=Enviar JSON é necessário para o modo 
de submissão única.
+ActionDatabricksJobRun.Error.WorkflowStopped=O fluxo de trabalho foi parado 
enquanto esperava a corrida de Databricks.
+ActionDatabricksJobRun.Error.Timeout=Tempo esgotado após segundos esperando 
Databricks correr
+ActionDatabricksJobRun.Error.Execute=Erro na execução do trabalho Databricks
+ActionDatabricksJobWait.Name=Databricks trabalho esperar
+ActionDatabricksJobWait.Description=Procure um trabalho de Databricks até que 
termine.
+ActionDatabricksJobWait.Name.Default=Databricks Job Wait
+ActionDatabricksJobWait.Title=Databricks Job Wait
+ActionDatabricksJobWait.keyword=Databricks, emprego, espera, poll, status
+ActionDatabricksJobWait.Name.Label=Nome da ação.
+ActionDatabricksJobWait.Connection.Label=Conexão Databricks
+ActionDatabricksJobWait.Connection.Tooltip=Conexão de espaço de trabalho (Jobs 
API / PAT)
+ActionDatabricksJobWait.RunId.Label=Correr ID
+ActionDatabricksJobWait.Timeout.Label=Tempo limite (segundos, 0=nenhum)
+ActionDatabricksJobWait.Poll.Label=Intervalo de pesquisa (segundos)
+ActionDatabricksJobWait.CancelOnStop.Label=Cancele a execução de Databricks se 
o fluxo de trabalho for interrompido
+ActionDatabricksJobWait.VarJobId.Label=Variável do resultado: ID do trabalho
+ActionDatabricksJobWait.VarRunId.Label=Variável de resultado: ID de execução
+ActionDatabricksJobWait.VarStatus.Label=Variável do resultado: Status
+ActionDatabricksJobWait.VarPageUrl.Label=Variável do resultado: Correr URL da 
página
+ActionDatabricksJobWait.VarError.Label=Variável do resultado: Erro
+ActionDatabricksJobWait.Error.NoConnection=Por favor, selecione uma conexão 
Databricks
+ActionDatabricksJobWait.Error.NoMetadataProvider=Nenhum provedor de metadados 
disponível.
+ActionDatabricksJobWait.Error.ConnectionNotFound=Conexão de databricks não 
encontrada:
+ActionDatabricksJobWait.Error.NoRunId=O ID de execução é necessário (por 
exemplo, variável DatabricksRunId de Job Run)
+ActionDatabricksJobWait.Error.Canceled=Databricks foi cancelado.
+ActionDatabricksJobWait.Error.Execute=Erro em esperar que Databricks corra.
diff --git 
a/plugins/tech/ftp/src/main/resources/org/apache/hop/vfs/ftp/metadata/messages/messages_pt_BR.properties
 
b/plugins/tech/ftp/src/main/resources/org/apache/hop/vfs/ftp/metadata/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..cd8796f3ca
--- /dev/null
+++ 
b/plugins/tech/ftp/src/main/resources/org/apache/hop/vfs/ftp/metadata/messages/messages_pt_BR.properties
@@ -0,0 +1,75 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+FtpConnection.Name=Conexão FTP
+FtpConnection.Description=Descreve um servidor FTP ou FTP uma vez, e o torna 
disponível como um esquema VFS sob o nome da conexão
+FtpConnectionEditor.Name.Label=Nome da conexão
+FtpConnectionEditor.Description.Label=Descrição
+FtpConnectionEditor.Tab.Server.Label=Servidor
+FtpConnectionEditor.Tab.Security.Label=Segurança.
+FtpConnectionEditor.Tab.Advanced.Label=Avançado
+FtpConnectionEditor.Tab.Listing.Label=Lista de arquivos
+FtpConnectionEditor.Tab.Proxy.Label=Proxy.
+FtpConnectionEditor.SecurityMode.Label=Segurança.
+FtpConnectionEditor.ServerName.Label=Nome do servidor / endereço IP
+FtpConnectionEditor.ServerPort.Label=Porta do servidor
+FtpConnectionEditor.UserName.Label=Nome do usuário
+FtpConnectionEditor.Password.Label=Senha
+FtpConnectionEditor.VerifyServerCertificate.Label=Verifique o certificado do 
servidor
+FtpConnectionEditor.DataChannelProtection.Label=Conexão de dados
+FtpConnectionEditor.DataChannelProtection.Tooltip=FTPS sempre criptografa os 
comandos e o login. Esta é a escolha separada sobre a conexão que o conteúdo do 
arquivo viaja.
+FtpConnectionEditor.ClientCertificateFile.Label=Cliente certificado chaveiro
+FtpConnectionEditor.ClientCertificatePassword.Label=Senha da Keystore
+FtpConnectionEditor.ClientCertificateAlias.Label=Alias chave (vazio = o 
primeiro)
+FtpConnectionEditor.ClientCertificateType.Label=Tipo Keystore (vazio = PKCS12)
+FtpConnectionEditor.Filetype.Pkcs12=Teclados PKCS12
+FtpConnectionEditor.Filetype.Jks=Chaveiros JKS
+FtpConnectionEditor.BinaryMode.Label=Modo de transferência binária
+FtpConnectionEditor.ActiveConnection.Label=Conexão ativa (em vez de passiva)
+FtpConnectionEditor.ActivePortRangeFrom.Label=Modo ativo alcance da porta, de
+FtpConnectionEditor.ActivePortRangeTo.Label=Modo ativo alcance de porta, para
+FtpConnectionEditor.UserDirIsRoot.Label=Caminhos são relativos ao diretório 
home
+FtpConnectionEditor.RemoteVerification.Label=Verifique o endereço da conexão 
de dados.
+FtpConnectionEditor.ControlEncoding.Label=Controle de codificação
+FtpConnectionEditor.AutodetectUtf8.Label=Pergunte ao servidor se ele fala 
UTF-8.
+FtpConnectionEditor.ConnectTimeout.Label=Conectar tempo limite (ms)
+FtpConnectionEditor.SocketTimeout.Label=Tempo limite de conexão de controle 
(ms)
+FtpConnectionEditor.DataTimeout.Label=Tempo limite de conexão de dados.
+FtpConnectionEditor.ControlKeepAliveTimeout.Label=Mantenha-se vivo durante as 
transferências.
+FtpConnectionEditor.ControlKeepAliveReplyTimeout.Label=Mantenha o tempo de 
resposta vivo.
+FtpConnectionEditor.EntryParser.Label=Formato de listagem (vazio = detecção 
automática)
+FtpConnectionEditor.ServerLanguageCode.Label=Código de linguagem do servidor
+FtpConnectionEditor.ServerTimeZone.Label=Fuso horário do servidor
+FtpConnectionEditor.DefaultDateFormat.Label=Formato de data
+FtpConnectionEditor.RecentDateFormat.Label=Formato de data no último ano.
+FtpConnectionEditor.ShortMonthNames.Label=Nomes do mês (pipe separado)
+FtpConnectionEditor.MdtmLastModifiedTime.Label=Leia a última vez modificada 
com MDTM.
+FtpConnectionEditor.ProxyHost.Label=Host proxy FTP
+FtpConnectionEditor.ProxyPort.Label=Porta proxy FTP
+FtpConnectionEditor.ProxyUsername.Label=Nome de usuário do proxy FTP
+FtpConnectionEditor.ProxyPassword.Label=Senha do proxy FTP
+FtpConnectionEditor.SocksProxyHost.Label=Host proxy SOCKS
+FtpConnectionEditor.SocksProxyPort.Label=Porta proxy SOCKS
+FtpConnectionEditor.SocksProxyUsername.Label=SOCKS nome de usuário do proxy
+FtpConnectionEditor.SocksProxyPassword.Label=SOCKS senha proxy
+FtpConnectionEditor.Test.Button=Ligação de teste
+FtpConnectionEditor.Test.Success.Title=Conectado.
+FtpConnectionEditor.Test.Success.Message=Conectado ao servidor. O diretório de 
trabalho é: {1}
+FtpConnectionEditor.Test.Error.Title=A conexão falhou.
+FtpConnectionEditor.Test.Error.Message=Incapaz de conectar ao servidor FTP com 
estas configurações
diff --git 
a/plugins/tech/redis/src/main/resources/org/apache/hop/redis/metadata/messages/messages_pt_BR.properties
 
b/plugins/tech/redis/src/main/resources/org/apache/hop/redis/metadata/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..2f98d3f0a1
--- /dev/null
+++ 
b/plugins/tech/redis/src/main/resources/org/apache/hop/redis/metadata/messages/messages_pt_BR.properties
@@ -0,0 +1,56 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+RedisConnection.name=Redis Connection
+RedisConnection.description=Uma conexão de Redis reutilizável.
+RedisConnectionEditor.Name.Label=Redis Nome da conexão
+RedisConnectionEditor.ConnectionGroup.Label=Configuração da conexão
+RedisConnectionEditor.PoolGroup.Label=Configuração da piscina
+RedisMetadata.DeploymentMode.Label=Modo de implantação
+RedisMetadata.DeploymentMode.ToolTip=SENTINEL ou CLUSTER
+RedisMetadata.Hostname.Label=Nome da máquina
+RedisMetadata.Hostname.ToolTip=Redis nome do host para modo autônomo
+RedisMetadata.Port.Label=Porto
+RedisMetadata.Port.ToolTip=Redisport para modo standalone (padrão 6379)
+RedisMetadata.Database.Label=Banco de dados
+RedisMetadata.Database.ToolTip=Índice de banco de dados lógico (somente em 
Standalone/Sentinel; Cluster sempre usa 0)
+RedisMetadata.MasterName.Label=Nome do mestre.
+RedisMetadata.MasterName.ToolTip=Nome principal do sentinela
+RedisMetadata.SentinelNodes.Label=Nós sentinelas.
+RedisMetadata.SentinelNodes.ToolTip=Nós sentinelas como host:port, um por 
linha (comma/semicolon também aceito)
+RedisMetadata.ClusterNodes.Label=Cluster nós
+RedisMetadata.ClusterNodes.ToolTip=Semente de cluster nós como 
hospedeiro:porta, um por linha (comma/semicolon também aceito)
+RedisMetadata.Username.Label=Nome de usuário
+RedisMetadata.Username.ToolTip=Nome de usuário opcional da ACL
+RedisMetadata.Password.Label=Senha
+RedisMetadata.Password.ToolTip=Senha opcional.
+RedisMetadata.UseSsl.Label=Use SSL/TLS
+RedisMetadata.UseSsl.ToolTip=Activar TLS para a ligação Redis
+RedisMetadata.TimeoutMs.Label=Tempo.
+RedisMetadata.TimeoutMs.ToolTip=Tempo de comando em milissegundos.
+RedisMetadata.EnablePooling.Label=Ativar agrupamento de conexões
+RedisMetadata.EnablePooling.ToolTip=Use uma piscina de conexão de alface 
compartilhada.
+RedisMetadata.PoolMaxTotal.Label=Max total
+RedisMetadata.PoolMaxTotal.ToolTip=Número máximo de conexões na piscina.
+RedisMetadata.PoolMaxIdle.Label=Max ocioso.
+RedisMetadata.PoolMaxIdle.ToolTip=Número máximo de conexões ociosas.
+RedisMetadata.PoolMinIdle.Label=Min ocioso
+RedisMetadata.PoolMinIdle.ToolTip=Número mínimo de conexões ociosas.
+RedisMetadata.PoolMaxWaitMs.Label=Max, espere.
+RedisMetadata.PoolMaxWaitMs.ToolTip=Esperar máximo quando pegar uma conexão 
(-1 = para sempre)
diff --git 
a/plugins/tech/redis/src/main/resources/org/apache/hop/redis/transforms/redisoutput/messages/messages_pt_BR.properties
 
b/plugins/tech/redis/src/main/resources/org/apache/hop/redis/transforms/redisoutput/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..a210170945
--- /dev/null
+++ 
b/plugins/tech/redis/src/main/resources/org/apache/hop/redis/transforms/redisoutput/messages/messages_pt_BR.properties
@@ -0,0 +1,43 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+RedisOutput.Name=Saída para Redis
+RedisOutput.Description=Escreva STRING, HASH, SET ou LIST valores para Redis
+RedisOutputMeta.keyword=Redis, output, cache, set, hash, sadd, list
+RedisOutputDialog.Connection.Label=Redis connection
+RedisOutputDialog.Connection.Tooltip=Selecione um objeto de metadados de 
conexão Redis
+RedisOutputDialog.WriteMode.Label=Modo de gravação
+RedisOutputDialog.DataStructure.Label=Estrutura de dados
+RedisOutputDialog.KeyField.Label=Campo de chaves
+RedisOutputDialog.KeyCodec.Label=Codificador chave.
+RedisOutputDialog.HashKeyField.Label=Campo chave de hash
+RedisOutputDialog.HashKeyCodec.Label=Código da chave de Hash.
+RedisOutputDialog.ValueField.Label=Campo de valor
+RedisOutputDialog.ValueCodec.Label=Codificador de valor
+RedisOutputDialog.TtlSeconds.Label=TTL segundos
+RedisOutputDialog.ListPushDirection.Label=Lista empurra direção
+RedisOutputDialog.Fields.Label=Campos
+RedisOutputDialog.Column.StreamField=Campo de fluxo
+RedisOutputDialog.Column.DataStructure=Estrutura de dados
+RedisOutputDialog.Column.Key=Redis chave
+RedisOutputDialog.Column.KeyCodec=Redis chave codec
+RedisOutputDialog.Column.HashKey=Campo de Hash.
+RedisOutputDialog.Column.HashKeyCodec=Codificador de campo Hash.
+RedisOutputDialog.Column.ValueCodec=Codificador de valor
+RedisOutputDialog.Column.TtlSeconds=TTL segundos
diff --git 
a/plugins/tech/sftp/src/main/resources/org/apache/hop/pipeline/transforms/sftpput/messages/messages_pt_BR.properties
 
b/plugins/tech/sftp/src/main/resources/org/apache/hop/pipeline/transforms/sftpput/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..c02f85711d
--- /dev/null
+++ 
b/plugins/tech/sftp/src/main/resources/org/apache/hop/pipeline/transforms/sftpput/messages/messages_pt_BR.properties
@@ -0,0 +1,85 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SftpPut.Name=SFTP Put
+SftpPut.Description=Envia um arquivo ou o conteúdo de um campo para um 
servidor SFTP
+SftpPutMeta.keyword=Sftp, ssh, upload,put,file,transfer
+SftpPutDialog.Shell.Title=SFTP Put
+SftpPutDialog.Connection.Label=Ligação SFTP
+SftpPutDialog.Connection.Tooltip=A chamada conexão SFTP para carregar. Também 
funciona como um esquema VFS:
+SftpPutDialog.Group.Source.Label=Fonte
+SftpPutDialog.Group.Target.Label=Alvo no servidor.
+SftpPutDialog.Group.After.Label=Após o upload
+SftpPutDialog.SourceFileField.Label=Arquivo fonte/campo de conteúdo
+SftpPutDialog.InputIsStream.Label=O campo contém o conteúdo, não um nome de 
arquivo.
+SftpPutDialog.RemoteDirectoryField.Label=Campo remoto de pastas
+SftpPutDialog.RemoteFilenameField.Label=Campo de nome de arquivo remoto
+SftpPutDialog.CreateRemoteFolder.Label=Crie a pasta remota se ela não existir.
+SftpPutDialog.AfterSftpPut.Label=Após o upload
+SftpPutDialog.DestinationFolderField.Label=Mover para o campo de pastas
+SftpPutDialog.CreateDestinationFolder.Label=Crie a pasta de destino se ela não 
existir.
+SftpPutDialog.AddFilenameToResult.Label=Adicione o nome do arquivo de origem 
aos arquivos de resultado
+SftpPutDialog.ErrorGettingPreviousFields.DialogMessage=Incapaz de obter os 
campos da transformação anterior
+SftpPutDialog.ErrorGettingConnections.DialogMessage=Incapaz de obter a lista 
de conexões SFTP
+SftpPut.AfterSftpPut.DoNothing.Label=Não faça nada.
+SftpPut.AfterSftpPut.Delete.Label=Apague o arquivo fonte
+SftpPut.AfterSftpPut.Move.Label=Mova o arquivo fonte
+SftpPut.Injection.Connection=O nome da conexão SFTP
+SftpPut.Injection.SourceFileFieldName=O campo com o nome do arquivo fonte ou 
conteúdo
+SftpPut.Injection.InputIsStream=O campo fonte contém o conteúdo em vez de um 
nome de arquivo.
+SftpPut.Injection.RemoteDirectoryFieldName=O campo com a pasta remota
+SftpPut.Injection.RemoteFilenameFieldName=O campo com o nome do arquivo remoto
+SftpPut.Injection.CreateRemoteFolder=Crie a pasta remota se ela não existir.
+SftpPut.Injection.AfterSftpPut=O que fazer com o arquivo de origem após o 
upload
+SftpPut.Injection.DestinationFolderFieldName=O campo com a pasta para mover o 
arquivo fonte para
+SftpPut.Injection.CreateDestinationFolder=Crie a pasta de destino se ela não 
existir.
+SftpPut.Injection.AddFilenameToResult=Adicione o nome do arquivo de origem aos 
arquivos de resultado
+SftpPut.Error.SourceFileNameFieldMissing=Por favor, especifique o campo com o 
nome ou conteúdo do arquivo de origem.
+SftpPut.Error.RemoteFolderNameFieldMissing=Por favor, especifique o campo 
segurando a pasta remota.
+SftpPut.Error.RemoteFilenameFieldMissing=Por favor, especifique o campo com o 
nome do arquivo remoto: não pode ser derivado quando o conteúdo vem de um campo
+SftpPut.Error.DestinationFolderFieldMissing=Por favor, especifique o campo 
segurando a pasta para mover o arquivo fonte para
+SftpPut.Error.CanNotFindField=Incapaz de encontrar o campo [{0}] no fluxo de 
entrada
+SftpPut.Error.CanNotFindFile=Não foi possível encontrar o arquivo.
+SftpPut.Error.CanNotFindFolder=Não foi possível encontrar a pasta.
+SftpPut.Error.SourceDataEmpty=O nome ou conteúdo do arquivo de origem está 
vazio.
+SftpPut.Error.RemoteFilenameEmpty=O nome do arquivo remoto está vazio
+SftpPut.Error.CanNotFindRemoteFolder=Não foi possível encontrar a pasta remota.
+SftpPut.Error.MoveToDestinationFolderIsEmpty=A pasta para onde mover o arquivo 
fonte está vazia
+SftpPut.Error.UnableToUpload=Incapaz de carregar para [ {0}]
+SftpPut.Error.UnableToMove=Incapaz de mover-se para
+SftpPut.Error.ConnectionNotRegistered=A conexão SFTP não está disponível como 
um esquema VFS nesta execução. Por favor, certifique-se de que seja parte dos 
metadados do projeto que este gasoduto executa.
+SftpPut.Log.ConnectedTo=Enviando através da conexão SFTP [{0}] para o servidor 
[{1}] porta [{2}] como usuário [{3}]
+SftpPut.Log.UsingFields=Campo fonte [{0}], campo pasta remota [{1}], campo 
nome do arquivo remoto [{2}], após o upload : {3}
+SftpPut.Log.UploadingFile=Enviando arquivo para [{0}]
+SftpPut.Log.UploadingField=Enviando o conteúdo do campo [{0}] ({1} bytes) para 
[{2}]
+SftpPut.Log.RemoteFolderExists=A pasta remota já está lá.
+SftpPut.Log.RowSentToErrorStream=A linha foi enviada para o fluxo de erros.
+SftpPut.Log.Summary=Enviado {0} arquivos(s), {1} bytes no total, através de 
conexão SFTP [{2}]
+SftpPut.Log.FileUploaded=Enviado [{0}] ({1} bytes em {2} ms)
+SftpPut.Log.RemoteFolderCreated=Pasta remota criada [{0}]
+SftpPut.Log.DeletedFile=Arquivo fonte excluído [{0}]
+SftpPut.Log.FileMoved=Moveu-se para
+SftpPut.Log.FilenameAddedToResultFilenames=Enviado com o SFTP Put Transform
+SftpPut.Log.ErrorInTransform=Erro na transformação
+SftpPut.Log.LineNumber=Número da linha:
+SftpPutMeta.CheckResult.NotReceivingFields=A transformação não está recebendo 
nenhum campo de outras transformações.
+SftpPutMeta.CheckResult.TransformReceivingData=A transformada está conectada a 
uma transformada anterior, recebendo campos
+SftpPutMeta.CheckResult.TransformReceivingData2=A transformação está recebendo 
informações de outras transformações.
+SftpPutMeta.CheckResult.NoInputReceivedFromOtherTransforms=Nenhuma entrada 
recebida de outras transformações.
+SftpPutMeta.CheckResult.NoConnection=Por favor, selecione a conexão SFTP para 
enviar
diff --git 
a/plugins/tech/sftp/src/main/resources/org/apache/hop/vfs/sftp/metadata/messages/messages_pt_BR.properties
 
b/plugins/tech/sftp/src/main/resources/org/apache/hop/vfs/sftp/metadata/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..66fad4b0c2
--- /dev/null
+++ 
b/plugins/tech/sftp/src/main/resources/org/apache/hop/vfs/sftp/metadata/messages/messages_pt_BR.properties
@@ -0,0 +1,55 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SftpConnection.Name=Ligação SFTP
+SftpConnection.Description=Uma conexão chamada SFTP. O nome da conexão é um 
esquema VFS: use <name>:///path/to/file onde Hop pedir um arquivo.
+SftpConnectionEditor.Name.Label=Nome da conexão
+SftpConnectionEditor.Description.Label=Descrição
+SftpConnectionEditor.Tab.Server.Label=Servidor
+SftpConnectionEditor.Tab.Authentication.Label=Autenticação
+SftpConnectionEditor.Tab.Advanced.Label=Avançado
+SftpConnectionEditor.ServerName.Label=Nome do servidor ou endereço IP
+SftpConnectionEditor.ServerPort.Label=Porta do servidor
+SftpConnectionEditor.Username.Label=Nome do usuário
+SftpConnectionEditor.Password.Label=Senha
+SftpConnectionEditor.UseKeyFile.Label=Use uma chave privada.
+SftpConnectionEditor.KeyFilename.Label=Arquivo de chave privada
+SftpConnectionEditor.KeyPassphrase.Label=Senha da chave
+SftpConnectionEditor.StrictHostKeyChecking.Label=Checando a chave do host.
+SftpConnectionEditor.KnownHostsFile.Label=Arquivo conhecido de hosts
+SftpConnectionEditor.PreferredAuthentications.Label=Autenticação preferida
+SftpConnectionEditor.KeyExchangeAlgorithm.Label=Algoritmos de troca de chaves
+SftpConnectionEditor.LoadOpenSshConfig.Label=Carregar a configuração do 
OpenSSH (~/.ssh/config)
+SftpConnectionEditor.Compression.Label=Compressão
+SftpConnectionEditor.UserDirIsRoot.Label=Caminhos são relativos ao diretório 
home
+SftpConnectionEditor.FileNameEncoding.Label=Codificação do nome do arquivo
+SftpConnectionEditor.DisableDetectExecChannel.Label=Não abra um canal 
executivo.
+SftpConnectionEditor.ConnectionTimeout.Label=Tempo limite de conexão (ms)
+SftpConnectionEditor.SessionTimeout.Label=Tempo limite de sessão (ms)
+SftpConnectionEditor.ProxyType.Label=Tipo proxy
+SftpConnectionEditor.ProxyCommand.Label=Comando Proxy (STREAM)
+SftpConnectionEditor.ProxyHost.Label=Proxy host
+SftpConnectionEditor.ProxyPort.Label=Porta proxy
+SftpConnectionEditor.ProxyUsername.Label=Nome de usuário proxy
+SftpConnectionEditor.ProxyPassword.Label=Senha proxy
+SftpConnectionEditor.Test.Button=Ligação de teste
+SftpConnectionEditor.Test.Success.Title=Conectado.
+SftpConnectionEditor.Test.Success.Message=Com sucesso conectado a {0}. O 
diretório de trabalho é {1}.
+SftpConnectionEditor.Test.Error.Title=Erro
+SftpConnectionEditor.Test.Error.Message=Incapaz de se conectar com esta 
conexão SFTP
diff --git 
a/plugins/transforms/binaryfileoutput/src/main/resources/org/apache/hop/pipeline/transforms/binaryfileoutput/messages/messages_pt_BR.properties
 
b/plugins/transforms/binaryfileoutput/src/main/resources/org/apache/hop/pipeline/transforms/binaryfileoutput/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..c1b99d7902
--- /dev/null
+++ 
b/plugins/transforms/binaryfileoutput/src/main/resources/org/apache/hop/pipeline/transforms/binaryfileoutput/messages/messages_pt_BR.properties
@@ -0,0 +1,61 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+BinaryFileOutput.Name=Saída de Arquivo Binário
+BinaryFileOutput.Description=Escreva um campo binário em um arquivo. O nome é 
tirado de um campo de entrada para que cada linha possa escrever um arquivo 
diferente.
+BinaryFileOutputMeta.keyword=binário, arquivo, saída, blog, bytes, escrever
+BinaryFileOutput.Error.BinaryFieldMissing=Campo binário está faltando!
+BinaryFileOutput.Error.FilenameFieldMissing=O campo de nomes de arquivo está 
faltando!
+BinaryFileOutput.Error.FilenameEmpty=O nome do arquivo está vazio para esta 
linha!
+BinaryFileOutput.Error.BinaryNull=O conteúdo binário é nulo para esta linha!
+BinaryFileOutput.Error.FileExists=O arquivo já existe e está desativado.
+BinaryFileOutput.Error.ParentFolderNotExists=Pasta pai não existe e criar 
pasta pai está desativado\: {0}
+BinaryFileOutput.Error.WriteFailed=Não foi possível escrever conteúdo binário 
para o arquivo.
+BinaryFileOutput.Exception.CouldnotFindField=Não achei o campo na fila!
+BinaryFileOutput.ErrorInTransformRunning=Por causa de um erro, esta 
transformação não pode continuar.
+BinaryFileOutput.LineNumber=Lençóis.
+BinaryFileOutput.Log.FileWritten=Escreveu bytes para
+BinaryFileOutput.Log.FileAddedResult=O arquivo foi escrito por uma 
transformada de saída de arquivo binário.
+BinaryFileOutput.Log.FilenameAddResult=Nome do arquivo [{0}] foi adicionado 
aos nomes dos arquivos dos resultados.
+BinaryFileOutput.Log.ParentFolderCreated=Pasta pai criada: {0}
+BinaryFileOutputDialog.Shell.Title=Saída de Arquivo Binário
+BinaryFileOutputDialog.TransformName.Label=Transforme o nome
+BinaryFileOutputDialog.BinaryField.Label=Campo binário
+BinaryFileOutputDialog.BinaryField.Tooltip=Campo contendo o conteúdo binário 
para escrever para o arquivo
+BinaryFileOutputDialog.FilenameField.Label=Campo de nome de arquivo
+BinaryFileOutputDialog.FilenameField.Tooltip=Campo contendo o nome do arquivo 
de destino (caminho local ou VFS URI)
+BinaryFileOutputDialog.CreateParentFolder.Label=Criar pasta pai
+BinaryFileOutputDialog.CreateParentFolder.Tooltip=Crie a pasta pai do arquivo 
alvo se ele não existir.
+BinaryFileOutputDialog.Overwrite.Label=Sobrescrever arquivo existente
+BinaryFileOutputDialog.Overwrite.Tooltip=Sobrescrever o arquivo alvo quando 
ele já existir
+BinaryFileOutputDialog.AddResult.Label=Adicionar nome de arquivo ao resultado
+BinaryFileOutputDialog.AddResult.Tooltip=Adicione nomes de arquivos escritos 
aos nomes de arquivos de resultados
+BinaryFileOutputDialog.FailedToGetFields.DialogTitle=Os campos falharam.
+BinaryFileOutputDialog.FailedToGetFields.DialogMessage=Incapaz de obter campos 
de transformadas anteriores por causa de um erro
+BinaryFileOutputMeta.CheckResult.BinaryFieldMissing=O nome do campo binário 
está faltando!
+BinaryFileOutputMeta.CheckResult.BinaryFieldOK=Nome de campo binário foi 
especificado
+BinaryFileOutputMeta.CheckResult.FilenameFieldMissing=O nome do campo está 
faltando!
+BinaryFileOutputMeta.CheckResult.FilenameFieldOK=Nome do arquivo nome do campo 
foi especificado
+BinaryFileOutputMeta.CheckResult.NoInputReceived=Nenhuma entrada recebida de 
outras transformadas!
+BinaryFileOutputMeta.CheckResult.ReceivingInfoFromOtherTransforms=Transform 
está recebendo informações de outras transformações.
+BinaryFileOutput.Injection.BinaryField=Nome do campo binário
+BinaryFileOutput.Injection.FilenameField=Nome do arquivo nome do campo
+BinaryFileOutput.Injection.CreateParentFolder=Criar pasta pai (Y/N)
+BinaryFileOutput.Injection.OverwriteFile=Sobrescrever arquivo existente (Y/N)
+BinaryFileOutput.Injection.AddResultFilenames=Adicione nomes de arquivos ao 
resultado (Y/N)
diff --git 
a/plugins/transforms/jms/src/main/resources/org/apache/hop/pipeline/transforms/jms/consumer/messages/messages_pt_BR.properties
 
b/plugins/transforms/jms/src/main/resources/org/apache/hop/pipeline/transforms/jms/consumer/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..c0eabac418
--- /dev/null
+++ 
b/plugins/transforms/jms/src/main/resources/org/apache/hop/pipeline/transforms/jms/consumer/messages/messages_pt_BR.properties
@@ -0,0 +1,40 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+JmsConsumer.Name=JMS consumidor
+JmsConsumer.Description=Leia mensagens de uma fila de JMS ou tópico (ActiveMQ 
Artemis, ActiveMQ Classic, RabbitMQ via JMS, ou qualquer provedor JMS através 
de JNDI)
+JmsConsumer.Keyword=jms, 
queue,tópico,amqp,activemmq,artemis,rabbitmq,mensagem,consumidor,assiscreva
+JmsConsumerDialog.Shell.Title=JMS consumidor
+JmsConsumerDialog.Connection=Conexão JMS
+JmsConsumerDialog.DestinationType=Tipo de destino
+JmsConsumerDialog.Destination=Fila / nome do tópico
+JmsConsumerDialog.MessageSelector=Seletor de mensagens
+JmsConsumerDialog.MessageSelector.Tooltip=Expressão opcional do seletor JMS 
avaliada pelo corretor, por exemplo, prioridade > 5 E região = 'EU'
+JmsConsumerDialog.DurableSubscription=Nome de assinatura durável.
+JmsConsumerDialog.DurableSubscription.Tooltip=Apenas tópicos. Requer 
identificação do cliente na conexão JMS.
+JmsConsumerDialog.Transacted=Use uma transação JMS
+JmsConsumerDialog.Transacted.Tooltip=Transmita cada mensagem em uma transação 
em vez de reconhecê-la individualmente.
+JmsConsumerDialog.MaxMessages=Mensagens máximas (0 = sem limite)
+JmsConsumerDialog.ReceiveTimeout=Receba um tempo.
+JmsConsumerDialog.ReceiveTimeout.Tooltip=Pare quando nenhuma mensagem chegar 
nesta janela. O destino é então tratado como drenado.
+JmsConsumerDialog.BodyField=Mensagem campo do corpo
+JmsConsumerDialog.KeyField=Campo de identificação de correlação
+JmsConsumerDialog.DestinationField=Campo de destino
+JmsConsumerDialog.MessageIdField=Campo de identificação da mensagem
+JmsConsumerDialog.TimestampField=Campo de timetamp
diff --git 
a/plugins/transforms/jms/src/main/resources/org/apache/hop/pipeline/transforms/jms/shared/messages/messages_pt_BR.properties
 
b/plugins/transforms/jms/src/main/resources/org/apache/hop/pipeline/transforms/jms/shared/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..86b7bbb4d8
--- /dev/null
+++ 
b/plugins/transforms/jms/src/main/resources/org/apache/hop/pipeline/transforms/jms/shared/messages/messages_pt_BR.properties
@@ -0,0 +1,33 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+JmsConnection.Name=Conexão JMS
+JmsConnection.Description=Ligação com um corretor JMS, compartilhado pelo 
consumidor e produtor JMS transforma
+JmsConnectionEditor.Name=Nome da conexão
+JmsConnectionEditor.Mode=Modo
+JmsConnectionEditor.Mode.Tooltip=DIRECT usa o cliente do ActiveMQ Artemis. 
JNDI procura a fábrica de conexão, para qualquer outro provedor JMS.
+JmsConnectionEditor.BrokerUrl=URL do corretor (DIRETO)
+JmsConnectionEditor.BrokerUrl.Tooltip=Por exemplo, tcp\://localhost\:61616
+JmsConnectionEditor.InitialContextFactory=Fábrica de contexto inicial (JNDI)
+JmsConnectionEditor.ProviderUrl=URL do provedor (JNDI)
+JmsConnectionEditor.ConnectionFactoryName=Nome da fábrica de conexões (JNDI)
+JmsConnectionEditor.Username=Nome de usuário
+JmsConnectionEditor.Password=Senha
+JmsConnectionEditor.ClientId=ID do cliente
+JmsConnectionEditor.ClientId.Tooltip=Requerido pela especificação JMS para uma 
assinatura de tópico durável.
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/plugins/transforms/json/src/main/resources/org/apache/hop/pipeline/transforms/ui/messages/messages_pt_BR.properties
similarity index 55%
copy from 
plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
copy to 
plugins/transforms/json/src/main/resources/org/apache/hop/pipeline/transforms/ui/messages/messages_pt_BR.properties
index 7b2ff11c82..9ce5dea2e4 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/plugins/transforms/json/src/main/resources/org/apache/hop/pipeline/transforms/ui/messages/messages_pt_BR.properties
@@ -16,15 +16,7 @@
 # limitations under the License.
 #
 #
-#
 
-ActionAbort.Description=Abortar o fluxo de trabalho
-ActionAbort.keyword=abortar,parar, falhar,cancelar,terminar
-ActionAbort.Meta.CheckResult.CouldNotExecute=N\u00E3o foi poss\u00EDvel 
executar a a\u00E7\u00E3o de abortar:
-ActionAbort.Meta.CheckResult.Label=Abortando o fluxo de trabalho.
-ActionAbort.Name=Abortar o fluxo de trabalho
-ActionAbortDialog.Label=Abortar o fluxo de trabalho
-ActionAbortDialog.MessageAbort.Label=Mensagem
-ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
-ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
-ActionAbortDialog.Title=Abortar o fluxo de trabalho
+TextCompositeToolbarJsonFormatButton.FormatJson.ToolTip=Impressão JSON 
embelezada
+TextCompositeToolbarJsonFormatButton.Error.Title=Erro no formato JSON
+TextCompositeToolbarJsonFormatButton.Error.Message=O texto não é válido e não 
pode ser formatado.
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/plugins/transforms/kafka/src/main/resources/org/apache/hop/pipeline/transforms/kafka/shared/messages/messages_pt_BR.properties
similarity index 55%
copy from 
plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
copy to 
plugins/transforms/kafka/src/main/resources/org/apache/hop/pipeline/transforms/kafka/shared/messages/messages_pt_BR.properties
index 7b2ff11c82..2d05bc5205 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/plugins/transforms/kafka/src/main/resources/org/apache/hop/pipeline/transforms/kafka/shared/messages/messages_pt_BR.properties
@@ -16,15 +16,7 @@
 # limitations under the License.
 #
 #
-#
 
-ActionAbort.Description=Abortar o fluxo de trabalho
-ActionAbort.keyword=abortar,parar, falhar,cancelar,terminar
-ActionAbort.Meta.CheckResult.CouldNotExecute=N\u00E3o foi poss\u00EDvel 
executar a a\u00E7\u00E3o de abortar:
-ActionAbort.Meta.CheckResult.Label=Abortando o fluxo de trabalho.
-ActionAbort.Name=Abortar o fluxo de trabalho
-ActionAbortDialog.Label=Abortar o fluxo de trabalho
-ActionAbortDialog.MessageAbort.Label=Mensagem
-ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
-ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
-ActionAbortDialog.Title=Abortar o fluxo de trabalho
+KafkaHeaders.Error.MissingName=Um cabeçalho está sem 'nome': {0}
+KafkaHeaders.Error.NotArray=Os cabeçalhos dos registros devem ser uma matriz 
JSON de nomes/valores de objetos: {0}
+KafkaHeaders.Error.NotJson=Os cabeçalhos dos registros não puderam ser lidos 
como JSON:
diff --git 
a/plugins/transforms/sortedschemamerge/src/main/resources/org/apache/hop/pipeline/transforms/sortedschemamerge/messages/messages_pt_BR.properties
 
b/plugins/transforms/sortedschemamerge/src/main/resources/org/apache/hop/pipeline/transforms/sortedschemamerge/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..cba62cac31
--- /dev/null
+++ 
b/plugins/transforms/sortedschemamerge/src/main/resources/org/apache/hop/pipeline/transforms/sortedschemamerge/messages/messages_pt_BR.properties
@@ -0,0 +1,41 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SortedSchemaMerge.Name=Esquema ordenado de fusão
+SortedSchemaMerge.Description=Mesclar fluxos de entrada pré-sortidos com 
esquemas diferentes em um fluxo esparso ordenado
+SortedSchemaMerge.keyword=Esquema ordenado de união de fluxos.
+SortedSchemaMerge.Log.LineNumber=Número da linha {0}
+SortedSchemaMerge.Error.TooFewInputs=Pelo menos dois fluxos de entrada 
separados são necessários.
+SortedSchemaMerge.Error.NoSortKeys=Pelo menos uma chave de sorte é necessária.
+SortedSchemaMerge.Error.NoInputRowSets=Nenhum conjunto de linhas de entrada 
foi encontrado.
+SortedSchemaMergeDialog.Title=Esquema Ordenado Mesclareça
+SortedSchemaMergeDialog.TransformName.Label=Transforme o nome
+SortedSchemaMergeDialog.Inputs.Label=A entrada se transforma.
+SortedSchemaMergeDialog.Inputs.Column.Transform=Transformar
+SortedSchemaMergeDialog.SortKeys.Label=Ordenar chaves
+SortedSchemaMergeDialog.SortKeys.Column.Field=Campo
+SortedSchemaMergeDialog.SortKeys.Column.Ascending=Subindo
+SortedSchemaMergeDialog.SortedInputNote.Label=Cada fluxo de entrada já deve 
ser classificado nas teclas de ordenação (por exemplo, via ORDEM BY na tabela 
de entrada).
+SortedSchemaMergeMeta.CheckResult.TooFewInputs=Configure pelo menos duas 
transformadas de entrada.
+SortedSchemaMergeMeta.CheckResult.InputCountOk=Pelo menos duas transformadas 
de entrada estão configuradas.
+SortedSchemaMergeMeta.CheckResult.NoSortKeys=Não há chaves de classificação 
definidas.
+SortedSchemaMergeMeta.CheckResult.SortKeysMissing=As seguintes chaves não 
foram encontradas nos fluxos de entrada:
+SortedSchemaMergeMeta.CheckResult.SortKeysOk=Todas as chaves foram encontradas 
nos fluxos de entrada.
+SortedSchemaMergeMeta.CheckResult.ReceivingRowsOk=Recebendo fileiras de 
transformação de montante
+SortedSchemaMergeMeta.CheckResult.ReceivingRowsError=Não receber fileiras de 
transformação de montante. Conecte pelo menos dois saltos de entrada.
diff --git 
a/plugins/transforms/surefirereport/src/main/resources/org/apache/hop/pipeline/transforms/surefirereport/messages/messages_pt_BR.properties
 
b/plugins/transforms/surefirereport/src/main/resources/org/apache/hop/pipeline/transforms/surefirereport/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..09255c2626
--- /dev/null
+++ 
b/plugins/transforms/surefirereport/src/main/resources/org/apache/hop/pipeline/transforms/surefirereport/messages/messages_pt_BR.properties
@@ -0,0 +1,69 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+SurefireReportOutput.Name=Surefire relatório de saída
+SurefireReportOutput.Description=Escreva um relatório Maven Surefire/JUnit XML 
das linhas de resultado do teste.
+SurefireReportOutputMeta.keyword=Com certeza fogo, junit, teste, relatório, 
xml, jenkins
+SurefireReportOutput.Error.FilenameMissing=O nome do relatório está faltando!
+SurefireReportOutput.Error.TestNameFieldMissing=O campo do nome do teste está 
faltando!
+SurefireReportOutput.Error.CouldNotFindField=Não consegui encontrar o campo 
''}'' na linha de entrada\!
+SurefireReportOutput.Error.WriteFailed=Não foi possível escrever o relatório 
Surefire para:
+SurefireReportOutput.Error.TestsFailed=Caso(s) de teste falhou ou errou.
+SurefireReportOutput.Log.ReportWritten=Escreveu relatório Surefire com casos 
de teste para 1
+SurefireReportOutput.Injection.Filename=Reporte o nome do arquivo (Surefire 
XML)
+SurefireReportOutput.Injection.SuiteName=Nome da suíte de testes
+SurefireReportOutput.Injection.CreateParentFolder=Criar pasta pai (Y/N)
+SurefireReportOutput.Injection.TestNameField=Campo contendo o nome do teste
+SurefireReportOutput.Injection.DurationField=Campo contendo a duração do teste.
+SurefireReportOutput.Injection.DurationInMilliseconds=O campo de duração está 
em milissegundos.
+SurefireReportOutput.Injection.ResultField=Campo contendo o resultado do teste 
(Boolean ou status)
+SurefireReportOutput.Injection.SystemOutField=Campo contendo texto de log de 
saída do sistema
+SurefireReportOutput.Injection.SystemErrField=Campo contendo texto de registro 
de erros de sistema
+SurefireReportOutput.Injection.FailureMessageField=Campo contendo a mensagem 
de falha
+SurefireReportOutput.Injection.FailureTypeField=Campo contendo o tipo de falha
+SurefireReportOutput.Injection.FailOnTestFailure=Falhar o oleoduto quando 
qualquer teste falhar (Y/N)
+SurefireReportOutputDialog.FailOnTestFailure.Label=Falhar na falha do teste.
+SurefireReportOutputDialog.FailOnTestFailure.Tooltip=Quando ativado, o 
oleoduto falha após escrever o relatório se qualquer caso de teste falhou ou 
errou.
+SurefireReportOutputMeta.CheckResult.FilenameMissing=O nome do relatório está 
faltando!
+SurefireReportOutputMeta.CheckResult.FilenameOK=Reportar o nome do arquivo é 
especificado
+SurefireReportOutputMeta.CheckResult.TestNameFieldMissing=O campo do nome do 
teste está faltando!
+SurefireReportOutputMeta.CheckResult.TestNameFieldOK=O campo do nome do teste 
é especificado.
+SurefireReportOutputMeta.CheckResult.ReceivingInfoFromOtherTransforms=Transform
 está recebendo informações de outras transformações.
+SurefireReportOutputMeta.CheckResult.NoInputReceived=Nenhuma entrada recebida 
de outras transformadas!
+SurefireReportOutputDialog.Shell.Title=Surefire relatório de saída
+SurefireReportOutputDialog.TransformName.Label=Transforme o nome
+SurefireReportOutputDialog.Filename.Label=Reportar o nome do arquivo
+SurefireReportOutputDialog.Filename.Tooltip=Caminho do relatório XML Surefire 
para escrever (variáveis permitidas)
+SurefireReportOutputDialog.SuiteName.Label=Nome da suíte de testes
+SurefireReportOutputDialog.SuiteName.Tooltip=Atributo de nome do elemento 
testsuite (variáveis permitidas)
+SurefireReportOutputDialog.CreateParentFolder.Label=Criar pasta pai
+SurefireReportOutputDialog.CreateParentFolder.Tooltip=Crie a pasta pai do 
arquivo de relatório se ele não existir.
+SurefireReportOutputDialog.Fields.Group.Label=Campos de entrada
+SurefireReportOutputDialog.TestNameField.Label=Campo de nome de teste
+SurefireReportOutputDialog.DurationField.Label=Campo de duração
+SurefireReportOutputDialog.DurationInMilliseconds.Label=A duração é em 
milissegundos.
+SurefireReportOutputDialog.DurationInMilliseconds.Tooltip=Quando marcado, os 
valores de duração são convertidos de milissegundos para segundos para Surefire.
+SurefireReportOutputDialog.ResultField.Label=Campo de resultados
+SurefireReportOutputDialog.ResultField.Tooltip=Booleano verdadeiro/falso, ou 
PASS/FAIL/ERROR/SKIP (ou Y/N)
+SurefireReportOutputDialog.SystemOutField.Label=Campo de saída do sistema.
+SurefireReportOutputDialog.SystemErrField.Label=Campo de controle de sistema.
+SurefireReportOutputDialog.FailureMessageField.Label=Campo de mensagem de falha
+SurefireReportOutputDialog.FailureTypeField.Label=Campo do tipo falha
+SurefireReportOutputDialog.FailedToGetFields.DialogTitle=Os campos falharam.
+SurefireReportOutputDialog.FailedToGetFields.DialogMessage=Incapaz de obter 
campos de transformadas anteriores por causa de um erro
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/plugins/transforms/textfile/src/main/resources/org/apache/hop/ui/core/widgets/csv/messages/messages_pt_BR.properties
similarity index 55%
copy from 
plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
copy to 
plugins/transforms/textfile/src/main/resources/org/apache/hop/ui/core/widgets/csv/messages/messages_pt_BR.properties
index 7b2ff11c82..4ddc1e09a4 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/plugins/transforms/textfile/src/main/resources/org/apache/hop/ui/core/widgets/csv/messages/messages_pt_BR.properties
@@ -16,15 +16,7 @@
 # limitations under the License.
 #
 #
-#
 
-ActionAbort.Description=Abortar o fluxo de trabalho
-ActionAbort.keyword=abortar,parar, falhar,cancelar,terminar
-ActionAbort.Meta.CheckResult.CouldNotExecute=N\u00E3o foi poss\u00EDvel 
executar a a\u00E7\u00E3o de abortar:
-ActionAbort.Meta.CheckResult.Label=Abortando o fluxo de trabalho.
-ActionAbort.Name=Abortar o fluxo de trabalho
-ActionAbortDialog.Label=Abortar o fluxo de trabalho
-ActionAbortDialog.MessageAbort.Label=Mensagem
-ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
-ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
-ActionAbortDialog.Title=Abortar o fluxo de trabalho
+CsvWidget.ExportToolbarButton.ToolTip=Exportar esses dados para um arquivo CSV
+CsvWidget.ExportColumnSelection.Title=Selecione colunas para exportar
+CsvWidget.ExportColumnSelection.Message=Selecione as colunas a incluir na 
exportação CSV:
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/ui/src/main/resources/org/apache/hop/ui/core/security/messages/messages_pt_BR.properties
similarity index 55%
copy from 
plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
copy to 
ui/src/main/resources/org/apache/hop/ui/core/security/messages/messages_pt_BR.properties
index 7b2ff11c82..ff1e26068f 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/ui/src/main/resources/org/apache/hop/ui/core/security/messages/messages_pt_BR.properties
@@ -16,15 +16,6 @@
 # limitations under the License.
 #
 #
-#
 
-ActionAbort.Description=Abortar o fluxo de trabalho
-ActionAbort.keyword=abortar,parar, falhar,cancelar,terminar
-ActionAbort.Meta.CheckResult.CouldNotExecute=N\u00E3o foi poss\u00EDvel 
executar a a\u00E7\u00E3o de abortar:
-ActionAbort.Meta.CheckResult.Label=Abortando o fluxo de trabalho.
-ActionAbort.Name=Abortar o fluxo de trabalho
-ActionAbortDialog.Label=Abortar o fluxo de trabalho
-ActionAbortDialog.MessageAbort.Label=Mensagem
-ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
-ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
-ActionAbortDialog.Title=Abortar o fluxo de trabalho
+HopSecurityUi.AccessDenied.Title=Acesso negado.
+HopSecurityUi.AccessDenied.Message=O usuário '''0''' não está autorizado a 
executar esta ação (permissão requerida: {1}).
diff --git 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
 
b/ui/src/main/resources/org/apache/hop/ui/hopgui/file/delegates/messages/messages_pt_BR.properties
similarity index 55%
copy from 
plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
copy to 
ui/src/main/resources/org/apache/hop/ui/hopgui/file/delegates/messages/messages_pt_BR.properties
index 7b2ff11c82..0f16ebcd3b 100644
--- 
a/plugins/actions/abort/src/main/resources/org/apache/hop/workflow/actions/abort/messages/messages_pt_BR.properties
+++ 
b/ui/src/main/resources/org/apache/hop/ui/hopgui/file/delegates/messages/messages_pt_BR.properties
@@ -16,15 +16,7 @@
 # limitations under the License.
 #
 #
-#
 
-ActionAbort.Description=Abortar o fluxo de trabalho
-ActionAbort.keyword=abortar,parar, falhar,cancelar,terminar
-ActionAbort.Meta.CheckResult.CouldNotExecute=N\u00E3o foi poss\u00EDvel 
executar a a\u00E7\u00E3o de abortar:
-ActionAbort.Meta.CheckResult.Label=Abortando o fluxo de trabalho.
-ActionAbort.Name=Abortar o fluxo de trabalho
-ActionAbortDialog.Label=Abortar o fluxo de trabalho
-ActionAbortDialog.MessageAbort.Label=Mensagem
-ActionAbortDialog.MessageAbort.Tooltip=Mensagem a exibir no registro
-ActionAbortDialog.MessageLogLevels.Label=N\u00EDvel de registro da mensagem
-ActionAbortDialog.Title=Abortar o fluxo de trabalho
+HopGuiNoteLinkSupport.Error.Title=Veja o enlace.
+HopGuiNoteLinkSupport.Error.Message=Não foi possível abrir a nota.
+HopGuiNoteLinkSupport.Error.UnknownType=Nenhum tipo de arquivo Hop está 
registrado para:
diff --git 
a/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/configuration/tabs/messages/messages_pt_BR.properties
 
b/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/configuration/tabs/messages/messages_pt_BR.properties
new file mode 100644
index 0000000000..a89bb65794
--- /dev/null
+++ 
b/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/configuration/tabs/messages/messages_pt_BR.properties
@@ -0,0 +1,62 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#
+
+ConfigSecurityTab.Tab.Name=Segurança.
+ConfigSecurityTab.Status.Unrestricted=A sessão é irrestrita. Modo de 
configuração: Qualquer um pode mudar as configurações de segurança até que a 
autenticação esteja ativada.
+ConfigSecurityTab.Status.User=Assinado como ''{0}'' com papéis. Modo de 
configuração: {2}.
+ConfigSecurityTab.NoPermission.Message=Você não tem permissão para gerenciar 
as configurações de segurança. Só administradores podem mudar de modo e 
usuários.
+ConfigSecurityTab.General.Tab=Geral.
+ConfigSecurityTab.Oauth.Tab=OAuth.
+ConfigSecurityTab.External.Tab=Exterior
+ConfigSecurityTab.Basic.Tab=Básico.
+ConfigSecurityTab.Mode.Label=Modo de autenticação
+ConfigSecurityTab.Mode.Hint=Nenhum = acesso aberto. EXTERNAL = trust servlet 
container / reverso proxy / LDAP grupos expostos como papéis. BASIC = Forma 
gerenciada por Hop login + usuários (users.json). OAUTH2 = OpenID Connect 
(código de autorização + PKCE).
+ConfigSecurityTab.Welcome.Label=Mensagem de boas-vindas
+ConfigSecurityTab.Welcome.Tooltip=Mostrado na página de entrada do Hop Web 
(BASIC e OAUTH2). Deixe vazio para usar o padrão.
+ConfigSecurityTab.Welcome.Hint=Texto personalizado opcional sob o título 
Apache Hop Web na página de login.
+ConfigSecurityTab.Oauth.Group=OAuth2 / OpenID Connect
+ConfigSecurityTab.Oauth.Issuer=URL do emissor
+ConfigSecurityTab.Oauth.ClientId=ID do cliente
+ConfigSecurityTab.Oauth.ClientSecret=Segredo do cliente
+ConfigSecurityTab.Oauth.RedirectUri=Redirecionar URI (vazio = auto)
+ConfigSecurityTab.Oauth.Scopes=Escopo
+ConfigSecurityTab.Oauth.RoleClaim=Papel / grupos reivindicam
+ConfigSecurityTab.Oauth.UsernameClaim=Nome de usuário:
+ConfigSecurityTab.Oauth.Pkce=Use PKCE (S256)
+ConfigSecurityTab.Oauth.Hint=Registre-se redirecionando URI 
'{context}'/outh/callback com seu IP. Ajuste o modo para OAUTH2 na guia Geral. 
Mapear grupos de IdP para papéis de Hop na guia Externa (mesma tabela de 
mapeamento é usada para grupos de reivindicação).
+ConfigSecurityTab.Oauth.MappingsHint=Os nomes de grupo/papel IdP são mapeados 
para papéis de Hop na guia External (papel de conteúdo/idP → papel de Hop).
+ConfigSecurityTab.External.Hint=O modo EXTERNA confia no principal do 
recipiente de servlet (Tomcat, proxy reverso ou grupos apoiados pelo LDAP 
expostos como papéis). Mapeie os nomes para os papéis de Hop abaixo. Os mesmos 
mapas são usados para grupos de reivindicação OAUTH2.
+ConfigSecurityTab.RoleMappings.Group=Mapeamentos de papéis (contentor / IdP → 
Hop)
+ConfigSecurityTab.RoleMappings.ContainerRole=Container / papel IdP
+ConfigSecurityTab.RoleMappings.HopRole=Papel de hop
+ConfigSecurityTab.Users.Group=Usuários (modo BASIC)
+ConfigSecurityTab.Users.Hint=Deixe ''Nova senha'' vazia para manter a senha 
existente. Novos usuários precisam de uma senha. Funções: administrador, 
usuário, operador, somente leitura. Ajuste o modo para BASIC na guia Geral para 
usar esta loja de usuários.
+ConfigSecurityTab.Users.Username=Nome de usuário
+ConfigSecurityTab.Users.Roles=Papel
+ConfigSecurityTab.Users.Enabled=Activado
+ConfigSecurityTab.Users.NewPassword=Nova senha
+ConfigSecurityTab.Users.PasswordRequired=A senha é necessária para o novo 
usuário.
+ConfigSecurityTab.Users.EmptyStore=Pelo menos um usuário é necessário no modo 
BASIC.
+ConfigSecurityTab.Button.Save=Salve
+ConfigSecurityTab.Button.Reload=Recarregar
+ConfigSecurityTab.Saved.Title=Segurança salva
+ConfigSecurityTab.Saved.Message=Configuração de segurança salva. As sessões 
existentes do navegador mantêm seus papéis atuais até o re-login. O modo BASIC 
usa o filtro de Hop (também não habilita a restrição de segurança Tomcat).
+ConfigSecurityTab.Error.Title=Configuração de segurança
+ConfigSecurityTab.Error.Reload=Erro ao carregar a configuração de segurança.
+ConfigSecurityTab.Error.Save=Erro ao salvar a configuração de segurança.
diff --git 
a/ui/src/main/resources/org/apache/hop/ui/hopgui/search/messages/messages_pt_BR.properties
 
b/ui/src/main/resources/org/apache/hop/ui/hopgui/search/messages/messages_pt_BR.properties
index 6e736d5656..27db670e08 100644
--- 
a/ui/src/main/resources/org/apache/hop/ui/hopgui/search/messages/messages_pt_BR.properties
+++ 
b/ui/src/main/resources/org/apache/hop/ui/hopgui/search/messages/messages_pt_BR.properties
@@ -52,3 +52,30 @@ HopGuiSearchResultsPanel.Detail.Value=Valor
 HopGuiSearchResultsPanel.Detail.Description=Descrição
 HopGuiSearchResultsPanel.Error.Open.Title=Erro
 HopGuiSearchResultsPanel.Error.Open.Message=Erro ao abrir {0}
+SearchEverywhereDialog.Settings.Tooltip=Configurações de busca (limites, 
grande skip de arquivo, pesquisa-como-você-tipo)
+SearchEverywhereDialog.Searching.Label=Procurando por 2026
+SearchEverywhereDialog.Status.Capped=Os resultados estão fechados.
+SearchEverywhereDialog.Status.MinLength=Digite {0}+ caracteres para pesquisar 
o conteúdo do arquivo
+SearchEverywhereDialog.Status.MinLengthOnly=Digite pelo menos {0} caracteres 
para pesquisar o conteúdo do arquivo (nomes ainda coincidem)
+SearchSettingsDialog.Shell.Title=Configurações de busca
+SearchSettingsDialog.MinContentQueryLength.Label=Min. personagens para conteúdo
+SearchSettingsDialog.MinContentQueryLength.Tooltip=Os nomes sempre batem. 
Conteúdo (incluindo arquivos de texto) apenas quando a consulta é tão longa.
+SearchSettingsDialog.MaxResults.Label=Máximo de resultados.
+SearchSettingsDialog.MaxResults.Tooltip=Capa dura nos resultados coletados 
para a pesquisa da GUI Hop.
+SearchSettingsDialog.MaxMatchesPerFile.Label=Max. corresponde por arquivo de 
texto.
+SearchSettingsDialog.MaxMatchesPerFile.Tooltip=Pare depois de tantas linhas em 
um arquivo de texto.
+SearchSettingsDialog.MaxTextFileSizeMb.Label=Tamanho máximo do arquivo de 
texto (MB)
+SearchSettingsDialog.MaxTextFileSizeMb.Tooltip=Pular arquivos de texto 
maiores. Use ferramentas dedicadas para CSV/JSON.
+SearchSettingsDialog.DebounceMs.Label="Pesquisa como você"
+SearchSettingsDialog.DebounceMs.Tooltip=Espere tanto tempo depois de digitar 
antes de fazer uma busca ao vivo.
+SearchSettingsDialog.IncludeProjectTextFiles.Label=Incluir arquivos de texto 
do projeto (CSV, JSON, \u2026)
+SearchSettingsDialog.IncludeProjectTextFiles.Tooltip=Quando desligado, só 
arquivos de texto abertos são pesquisados. Pipelines, fluxos de trabalho e 
metadados são sempre pesquisados.
+SearchSettingsDialog.SearchAsYouType.Label=Procure enquanto digita.
+SearchSettingsDialog.SearchAsYouType.Tooltip=Quando estiver desligado, 
pressione Enter para procurar. Entre sempre em buscas imediatamente de qualquer 
maneira.
+SearchSettingsDialog.Error.Title=Erro
+SearchSettingsDialog.Error.Save.Message=Erro ao salvar as configurações de 
pesquisa
+HopGuiSearchResultsPanel.Settings.Tooltip=Configurações de busca (limites, 
grande skip de arquivo, pesquisa-como-você-tipo)
+HopGuiSearchResultsPanel.Status.Searching=Procurando por 2026
+HopGuiSearchResultsPanel.Status.Capped=Os resultados estão fechados.
+HopGuiSearchResultsPanel.Status.MinLength=Digite {0}+ caracteres para 
pesquisar o conteúdo do arquivo
+HopGuiSearchResultsPanel.Status.TextFilesExcluded=Arquivos de texto do projeto 
excluídos da pesquisa de conteúdo

Reply via email to