You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hop.apache.org by ha...@apache.org on 2022/01/29 10:27:56 UTC

[hop] branch master updated: HOP-3040 Add Brazilian translations

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

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


The following commit(s) were added to refs/heads/master by this push:
     new c6ebd4b  HOP-3040 Add Brazilian translations
     new 527b6fc  Merge pull request #1302 from gvdutra/HOP-3040
c6ebd4b is described below

commit c6ebd4be22d5ac561482849d639ab03d2903dea7
Author: Gabriel Dutra <gv...@gmail.com>
AuthorDate: Thu Jan 27 21:55:07 2022 -0800

    HOP-3040 Add Brazilian translations
---
 .../hop/core/messages/messages_pt_PT.properties    |  33 ++
 .../pipeline/messages/messages_pt_PT.properties    | 374 +++++++++++----------
 .../output/messages/messages_pt_PT.properties      |  33 ++
 .../transform/messages/messages_pt_PT.properties   |  21 ++
 .../messages/messages_pt_PT.properties             |  21 ++
 .../search/messages/messages_pt_PT.properties      |  22 ++
 6 files changed, 328 insertions(+), 176 deletions(-)

diff --git a/core/src/main/resources/org/apache/hop/core/messages/messages_pt_PT.properties b/core/src/main/resources/org/apache/hop/core/messages/messages_pt_PT.properties
new file mode 100644
index 0000000..7ff2807
--- /dev/null
+++ b/core/src/main/resources/org/apache/hop/core/messages/messages_pt_PT.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.
+#
+#File generated by Hop Translator for package 'org.apache.hop.core' in locale 'pt_PT'
+#
+#
+#Thu Jan 27 21:53:34 PST 2022
+CheckResult.Error=Error
+CheckResult.OK=Ok
+CheckResult.Remark=Remarcar
+CheckResult.Warning=Aviso
+ResultFile.FileType.Error=Error
+ResultFile.FileType.ErrorLine=Erro linha
+ResultFile.FileType.General=Geral
+ResultFile.FileType.Log=Log
+ResultFile.FileType.Warning=Aviso
+ValueMeta.TrimType.Both=ambos
+ValueMeta.TrimType.Left=esquerda
+ValueMeta.TrimType.None=nenhum
+ValueMeta.TrimType.Right=direita
diff --git a/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_PT.properties b/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_PT.properties
index 5f3af3a..fd26a33 100644
--- a/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_PT.properties
+++ b/engine/src/main/resources/org/apache/hop/pipeline/messages/messages_pt_PT.properties
@@ -1,5 +1,4 @@
 #
-#
 # 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.
@@ -15,205 +14,228 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+#File generated by Hop Translator for package 'org.apache.hop.pipeline' in locale 'pt_PT'
 #
 #
-TransformPlugin.Label=Geral
-PipelineDependency.Exception.UnableToLoadPipeline=Não foi possível carregar a dependência de pipeline do XML
-PipelineHopMeta.Exception.UnableToLoadHopInfo=Não foi possível carregar a informação de hop do nó XML
-HopURLClassLoader.Exception.UnableToReadClass=Não foi possível ler a classe do InputStream : 
+#Thu Jan 27 21:53:34 PST 2022
+DatabaseImpact.RowDesc.Label.Database=Banco de dados
+DatabaseImpact.RowDesc.Label.Field=Campo
+DatabaseImpact.RowDesc.Label.Pipeline=Pipeline
+DatabaseImpact.RowDesc.Label.Remarks=Observa\u00C3\u00A7\u00C3\u00A3o
+DatabaseImpact.RowDesc.Label.SQL=SQL
+DatabaseImpact.RowDesc.Label.Table=Tabela
+DatabaseImpact.RowDesc.Label.Transform=Transform
+DatabaseImpact.RowDesc.Label.Type=Tipo
+DatabaseImpact.RowDesc.Label.Value=Valor
+DatabaseImpact.RowDesc.Label.ValueOrigin=Valor origem
+DatabaseImpact.TypeDesc.Label.Delete=Apagar
 DatabaseImpact.TypeDesc.Label.None=nenhum
 DatabaseImpact.TypeDesc.Label.Read=Ler
-DatabaseImpact.TypeDesc.Label.Write=Gravar
 DatabaseImpact.TypeDesc.Label.ReadOrWrite=Ler/Gravar
 DatabaseImpact.TypeDesc.Label.Truncate=Truncar
-DatabaseImpact.TypeDesc.Label.Delete=Apagar
 DatabaseImpact.TypeDesc.Label.Update=Atualizar
-DatabaseImpact.RowDesc.Label.Type=Tipo
-DatabaseImpact.RowDesc.Label.Pipeline=Pipeline
-DatabaseImpact.RowDesc.Label.Transform=Transform
-DatabaseImpact.RowDesc.Label.Database=Banco de dados
-DatabaseImpact.RowDesc.Label.Table=Tabela
-DatabaseImpact.RowDesc.Label.Field=Campo
-DatabaseImpact.RowDesc.Label.Value=Valor
-DatabaseImpact.RowDesc.Label.ValueOrigin=Valor origem
-DatabaseImpact.RowDesc.Label.SQL=SQL
-DatabaseImpact.RowDesc.Label.Remarks=Observação
-TransformLoader.Log.TransformLoader.Title=Carregador de Transform
-TransformLoader.Log.TransformLoader.Description=Buscando por plugins no diretório: 
-TransformLoader.Log.ReplaceExistingPlugid=Trocado o plugin existente com ID : 
-TransformLoader.RuntimeError.UnableToReadPluginXML.PIPELINE0001=Erro lendo o arquivo XML de plugin: 
-TransformLoader.RuntimeError.CouldNotFindDirectory.PIPELINE0002=Não foi encontrado o diretório [{0}]
-TransformLoader.RuntimeError.UnableToLoadClass.PIPELINE0003=Não foi possível carregar a classe para o transform/plugin com descrição [{0} Verifique se o plugin está disponível no subdiretório de plugins dentro da distribuição Hop.
-TransformLoader.RuntimeError.UnknownPluginType.PIPELINE0004=Tipo de plugin desconhecido : 
-TransformLoader.RuntimeError.ClassNotFound.PIPELINE0005=Classe não encontrada
-TransformLoader.RuntimeError.UnableToInstantiateClass.PIPELINE0006=Não foi possível instanciar a classe
-TransformLoader.RuntimeError.IllegalAccessToClass.PIPELINE0007=Acesso ilegal à classe
-TransformLoader.RuntimeError.MalformedURL.PIPELINE0008=URL mal formada
-TransformLoader.RuntimeError.UnExpectedErrorLoadingClass.PIPELINE0009=Erro inesperado durante carga da classe
-TransformLoader.RuntimeError.NoValidTransformOrPlugin.PIPELINE0010=O transform/plugin especificado não é válido.
-Pipeline.Log.NumberOfTransformsToPreview=nr de transforms para preview : {0}, nr de hops : {1}
-Pipeline.Log.PipelineIsPreloaded=Pipeline é pré-carregada do repositório.
-Pipeline.Log.NumberOfTransformsToRun=nr de transforms para executar : {0}  , nr de hops : {1}
-Pipeline.Log.Start=INICIO
-Pipeline.Log.NumberOfArgumentsDetected=Nr de argumentos detectados:{0} 
-Pipeline.Log.ThisIsAReplayPipeline=Esta é uma repetição de pipeline para : 
-Pipeline.Log.FoundDefferentTransforms=Foram encotrados {0} transforms diferentes para executar.
-Pipeline.Log.AllocatingRowsets=Alocando rowsets...
-Pipeline.Log.AllocateingRowsetsForTransform=\ Alocando rowsets para o transform {0} --> {1}
-Pipeline.Log.copiesInfo=\ \ cópias prévias = {0}, próximas cópias={1}
-Pipeline.Log.AllowedRelationships=Somente relacionamentos 1-1, 1-n, n-1 e n-n são permitidos\!
-Pipeline.Log.CannotHaveXYRelationships=Isto significa que não é possível relacionamentos x-y \!
-Pipeline.PipelineAllocatedNewRowset=Pipeline alocou novo rowset [{0}]
+DatabaseImpact.TypeDesc.Label.Write=Gravar
+HopURLClassLoader.Exception.UnableToReadClass=N\u00C3\u00A3o foi poss\u00C3\u00ADvel ler a classe do InputStream \: 
+PeekMetric.Column.Active=Ativo
+PeekMetric.Column.Copynr=Copia nr
+PeekMetric.Column.Errors=Erros
+PeekMetric.Column.Input=Entrada
+PeekMetric.Column.Output=Sa?da
+PeekMetric.Column.PriorityBufferSizes=Pri/ent/sai
+PeekMetric.Column.Read=Lidos
+PeekMetric.Column.Rejected=Rejeitado
+PeekMetric.Column.Sleeps=Tempo espera (get/put)
+PeekMetric.Column.Speed=Velocidade (r/s)
+PeekMetric.Column.Time=Tempo
+PeekMetric.Column.TransformName=Nome do transform
+PeekMetric.Column.Updated=Atualizados
+PeekMetric.Column.Written=escritos
+Pipeline.Dialog.Description.NoFileNamePreloadedPipeline=sem nome de arquivo, pipeline pr\u00C3\u00A9-carregada
+Pipeline.Dialog.Description.NoFileNamePreviewMode=sem nome de arquivo, modo preview
+Pipeline.Exception.ConnectionCouldNotBeFound=A Conex\u00C3\u00A3o [{0}] n\u00C3\u00A3o foi encontrada\!
+Pipeline.Exception.ErrorConnectingToDatabase=Erro conectando ao banco de dados [{0}]
+Pipeline.Exception.ErrorInDatabase=Erro no banco de dados [{0}]
+Pipeline.Exception.ErrorWritingLogRecordToTable=Erro gravando o registro de log para a tabela [{0}]
+Pipeline.Exception.MaximumDateConnectionCouldNotBeFound=A conex\u00C3\u00A3o para data m\u00C3\u00A1xima [{0}] n\u00C3\u00A3o pode ser encontrada\!
+Pipeline.Exception.UnableToBeginProcessingPipeline=N\u00C3\u00A3o \u00C3\u00A9 poss\u00C3\u00ADvel iniciar o processamento da pipeline
+Pipeline.Exception.UnableToGetDependencyInfoFromDB=N\u00C3\u00A3o foi poss\u00C3\u00ADvel obter a informa\u00C3\u00A7\u00C3\u00A3o de depend\u00C3\u00AAncia de [{0}{1}{2}]
+Pipeline.Exception.UnableToLoadPipeline=N\u00C3\u00A3o foi poss\u00C3\u00ADvel carregar a pipeline [{0} ] porque o diret\u00C3\u00B3rio n\u00C3\u00A3o foi encontrado\: [{1}]
+Pipeline.Exception.UnableToOpenPipeline=Pipeline n\u00C3\u00A3o conseguiu abrir [{0}]
+Pipeline.FinishListeners.Exception=Error ao executar pipeline
 Pipeline.Log.AllocatedRowsets=\ Foram alocados {0} rowsets por transform {1} --> {2} 
+Pipeline.Log.AllocateingRowsetsForTransform=\ Alocando rowsets para o transform {0} --> {1}
+Pipeline.Log.AllocatingRowsets=Alocando rowsets...
 Pipeline.Log.AllocatingTransformsAndTransformData=Alocando Transforms & TransformData...
-Pipeline.Log.TransformHasNumberRowCopies=\ \ Transform possui número de cópias={0}
+Pipeline.Log.AllowedRelationships=Somente relacionamentos 1-1, 1-n, n-1 e n-n s\u00C3\u00A3o permitidos\!
+Pipeline.Log.CannotHaveXYRelationships=Isto significa que n\u00C3\u00A3o \u00C3\u00A9 poss\u00C3\u00ADvel relacionamentos x-y \!
+Pipeline.Log.CheckingForMaxDependencyDate=Verificando pela data de maior depend\u00C3\u00AAncia\!
 Pipeline.Log.ErrorInitializingTransform=Erro inicializando transform [{0}]
-Pipeline.Log.PipelineHasAllocated=Pipeline alocou {0} threads e {1} rowsets.
-Pipeline.Log.FinishedProcessing=Processamento finalizado (E={0}, S={1}, L={2}
-Pipeline.Log.FinishedProcessing2=, G={0}, U={1}, E={2})
-Pipeline.Log.PipelineEnded=Pipeline finalizada.
+Pipeline.Log.ExecutionStartedForFilename=Expedindo in\u00C3\u00ADcio para o arquivo de nome [{0}]
+Pipeline.Log.ExecutionStartedForPipeline=Expedindo in\u00C3\u00ADcio para pipeline [{0}]
+Pipeline.Log.FailToInitializeAtLeastOneTransform=Falhou a inicializa\u00C3\u00A7\u00C3\u00A3o de pelo menos um transform. A Execu\u00C3\u00A7\u00C3\u00A3o n\u00C3\u00A3o pode sere iniciada\!
+Pipeline.Log.FinishedProcessing=Processamento finalizado (E\={0}, S\={1}, L\={2}
+Pipeline.Log.FinishedProcessing2=, G\={0}, U\={1}, E\={2})
+Pipeline.Log.FoundDateFromTable=encontrada data da tabela {0}{1}{2}
+Pipeline.Log.FoundDefferentTransforms=Foram encotrados {0} transforms diferentes para executar.
+Pipeline.Log.InitialisingTransforms=Inicializando {0} transforms...
+Pipeline.Log.LastDateFoundOnTheMaxdateConnection=\u00C3\u00BAltima data encontrada na conex\u00C3\u00A3o maxDate\: 
+Pipeline.Log.LookingAtTransform=Observando o transform\: 
+Pipeline.Log.LookingForMaxdateConnection=Buscando pela conex\u00C3\u00A3o maxdate\: [{0}]
+Pipeline.Log.Maxdepdate=maxdepdate \= 
+Pipeline.Log.NoLastDateFoundOnTheMaxdateConnection=N\u00C3\u00A3o foi encontrada a \u00C3\u00BAltima data na conex\u00C3\u00A3o maxDate\!
+Pipeline.Log.NumberOfArgumentsDetected=Nr de argumentos detectados\:{0} 
+Pipeline.Log.NumberOfTransformsToPreview=nr de transforms para preview \: {0}, nr de hops \: {1}
+Pipeline.Log.NumberOfTransformsToRun=nr de transforms para executar \: {0}  , nr de hops \: {1}
+Pipeline.Log.OpeningLogConnection=Abrindo a conex\u00C3\u00A3o de log [{0}]
+Pipeline.Log.OpeningMaximumDateConnection=Abrindo a conex\u00C3\u00A3o de data m\u00C3\u00A1xima...
+Pipeline.Log.PipelineCanBeReplayed=Esta pipeline pode ser repetida com a data de repeti\u00C3\u00A7\u00C3\u00A3o \: 
 Pipeline.Log.PipelineDetectedErrors=Pipeline detectada 
-Pipeline.Log.PipelineError=Erro de Pipeline: 
+Pipeline.Log.PipelineEnded=Pipeline finalizada.
+Pipeline.Log.PipelineError=Erro de Pipeline\: 
+Pipeline.Log.PipelineErrors=Erro de pipeline\: 
 Pipeline.Log.PipelineErrorsDetected=Erros detectados\!
-Pipeline.Log.LookingAtTransform=Observando o transform: 
-Pipeline.Log.PipelineErrors=Erro de pipeline: 
+Pipeline.Log.PipelineHasAllocated=Pipeline alocou {0} threads e {1} rowsets.
+Pipeline.Log.PipelineHasAllocatedANewTransform=\ Pipeline alocou um novo transform\: [{0}].{1}
+Pipeline.Log.PipelineIsInPreviewMode=Pipeline est\u00C3\u00A1 no modo de preview...
+Pipeline.Log.PipelineIsKillingTheOtherTransforms=Pipeline est\u00C3\u00A1 matando os outros transforms\!
+Pipeline.Log.PipelineIsPreloaded=Pipeline \u00C3\u00A9 pr\u00C3\u00A9-carregada do reposit\u00C3\u00B3rio.
+Pipeline.Log.PipelineIsToAllocateTransform=\ Pipeline ir\u00C3\u00A1 alocar o transform [{0}] do tipe [{1}]
+Pipeline.Log.ProcessErrorInfo=Processo {0}{1} finalizado com {2} erros ap\u00C3\u00B3s processamento de {3} linhas. ({4} linhas/s)
+Pipeline.Log.ProcessErrorInfo2=Processo {0}{1} finalizado com {2} erros ap\u00C3\u00B3s processamento de {3} linhas em  {4} segundos
 Pipeline.Log.ProcessSuccessfullyInfo=Processo {0}{1} fnializado com sucesso, processadas {2} linhas. ( {3} linhas/s)
-Pipeline.Log.ProcessErrorInfo=Processo {0}{1} finalizado com {2} erros após processamento de {3} linhas. ({4} linhas/s)
-Pipeline.Log.ProcessErrorInfo2=Processo {0}{1} finalizado com {2} erros após processamento de {3} linhas em  {4} segundos
-Pipeline.Log.PipelineCanBeReplayed=Esta pipeline pode ser repetida com a data de repetição : 
-Pipeline.Log.OpeningLogConnection=Abrindo a conexão de log [{0}]
-Pipeline.Row.Status.End=fim
-Pipeline.Log.StartDateFound=Data de início encontrada a partir da entrada de log anterior: 
-Pipeline.Log.LookingForMaxdateConnection=Buscando pela conexão maxdate: [{0}]
-Pipeline.Log.OpeningMaximumDateConnection=Abrindo a conexão de data máxima...
-Pipeline.Exception.ErrorConnectingToDatabase=Erro conectando ao banco de dados [{0}]
-Pipeline.Log.CheckingForMaxDependencyDate=Verificando pela data de maior dependência\!
-Pipeline.Log.FoundDateFromTable=encontrada data da tabela {0}{1}{2}
-Pipeline.Exception.ErrorInDatabase=Erro no banco de dados [{0}]
-Pipeline.Log.Maxdepdate=maxdepdate = 
+Pipeline.Log.SafeModeIsEnabled=O modo seguro est\u00C3\u00A1 habilitado para esta pipeline
+Pipeline.Log.Start=INICIO
+Pipeline.Log.StartDateFound=Data de in\u00C3\u00ADcio encontrada a partir da entrada de log anterior\: 
 Pipeline.Log.Status.End=FIM
-Pipeline.Log.PipelineIsInPreviewMode=Pipeline está no modo de preview...
-Pipeline.Exception.UnableToLoadPipeline=Não foi possível carregar a pipeline [{0} ] porque o diretório não foi encontrado: [{1}]
-Pipeline.Exception.UnableToOpenPipeline=Pipeline não conseguiu abrir [{0}]
-Pipeline.Log.ExecutionStartedForFilename=Expedindo início para o arquivo de nome [{0}]
-Pipeline.Log.ThisIsNotAReplayPipeline=Esta não é uma repetição de pipeline
-Pipeline.Log.PipelineIsToAllocateTransform=\ Pipeline irá alocar o transform [{0}] do tipe [{1}]
-Pipeline.Log.PipelineHasAllocatedANewTransform=\ Pipeline alocou um novo transform: [{0}].{1}
-Pipeline.Log.FailToInitializeAtLeastOneTransform=Falhou a inicialização de pelo menos um transform. A Execução não pode sere iniciada\!
-Pipeline.Exception.ConnectionCouldNotBeFound=A Conexão [{0}] não foi encontrada!
-Pipeline.Exception.ErrorWritingLogRecordToTable=Erro gravando o registro de log para a tabela [{0}]
-Pipeline.Dialog.Description.NoFileNamePreviewMode=sem nome de arquivo, modo preview
-Pipeline.Log.ExecutionStartedForPipeline=Expedindo início para pipeline [{0}]
-Pipeline.Log.PipelineIsKillingTheOtherTransforms=Pipeline está matando os outros transforms\!
-Pipeline.Log.LastDateFoundOnTheMaxdateConnection=última data encontrada na conexão maxDate: 
-Pipeline.Log.NoLastDateFoundOnTheMaxdateConnection=Não foi encontrada a última data na conexão maxDate\!
-Pipeline.Exception.UnableToGetDependencyInfoFromDB=Não foi possível obter a informação de dependência de [{0}{1}{2}]
-Pipeline.Exception.MaximumDateConnectionCouldNotBeFound=A conexão para data máxima [{0}] não pode ser encontrada!
-Pipeline.Exception.UnableToBeginProcessingPipeline=Não é possível iniciar o processamento da pipeline
-Pipeline.Dialog.Description.NoFileNamePreloadedPipeline=sem nome de arquivo, pipeline pré-carregada
-Pipeline.Log.SafeModeIsEnabled=O modo seguro está habilitado para esta pipeline
-Pipeline.Log.InitialisingTransforms=Inicializando {0} transforms...
-Pipeline.Log.TransformFailedToInit=Transform [{0}] falhou durante inicialização\!
+Pipeline.Log.ThisIsAReplayPipeline=Esta \u00C3\u00A9 uma repeti\u00C3\u00A7\u00C3\u00A3o de pipeline para \: 
+Pipeline.Log.ThisIsNotAReplayPipeline=Esta n\u00C3\u00A3o \u00C3\u00A9 uma repeti\u00C3\u00A7\u00C3\u00A3o de pipeline
+Pipeline.Log.TransformFailedToInit=Transform [{0}] falhou durante inicializa\u00C3\u00A7\u00C3\u00A3o\!
+Pipeline.Log.TransformHasNumberRowCopies=\  Transform possui n\u00C3\u00BAmero de c\u00C3\u00B3pias\={0}
 Pipeline.Log.TransformInitialized=Transform [{0}] inicializado sem falhas.
-PipelineMeta.Exception.PlsSelectAValidDirectoryBeforeSavingThePipeline=Por favor selecione um diretório válido antes de gravar a pipeline\!
-PipelineMeta.Monitor.GettingTheSQLForPipelineTask.Title=Obtendo o SQL necessário para esta pipeline...
-PipelineMeta.SQLStatement.ErrorDesc.ErrorObtainingPipelineLogTableInfo=Erro obtendo informação da pipeline na tabela de log: 
-PipelineMeta.CheckResult.TypeResultError.ErrorOccurredGettingTransformMetaFields.Description=Ocorreu um erro obtendo informação dos campos para o transform [{0}] :{1}
-PipelineMeta.CheckResult.TypeResultError.ErrorOccurredGettingInputFields.Description=Ocorreu um erro obtendo campos de entrada para o transform [{0}] :{1}
-PipelineMeta.Value.CheckingFieldName.FieldNameContainsSpaces.Description=Nome do campo contem um ou mais espaços.  (banco de dados não amigável\!)
-PipelineMeta.Value.CheckingFieldName.FieldNameContainsUnfriendlyCodes.Description=Nome do campo contem um ou mais {0}  (banco de dados não amigável!)
+Pipeline.Log.UnexpectedErrorAtPipelineEnd=Error inesperado no final da pipeline
+Pipeline.Log.copiesInfo=\  c\u00C3\u00B3pias pr\u00C3\u00A9vias \= {0}, pr\u00C3\u00B3ximas c\u00C3\u00B3pias\={1}
+Pipeline.PipelineAllocatedNewRowset=Pipeline alocou novo rowset [{0}]
+Pipeline.Row.Status.End=fim
+PipelineDependency.Exception.UnableToLoadPipeline=N\u00C3\u00A3o foi poss\u00C3\u00ADvel carregar a depend\u00C3\u00AAncia de pipeline do XML
+PipelineHopMeta.Exception.UnableToLoadHopInfo=N\u00C3\u00A3o foi poss\u00C3\u00ADvel carregar a informa\u00C3\u00A7\u00C3\u00A3o de hop do n\u00C3\u00B3 XML
+PipelineMeta.CheckResult.TypeResultError.CannotFindPreviousFields.Description=N\u00C3\u00A3o foi poss\u00C3\u00ADvel encontrar campos anteriores para o transform\: 
+PipelineMeta.CheckResult.TypeResultError.ErrorOccurredGettingInputFields.Description=Ocorreu um erro obtendo campos de entrada para o transform [{0}] \:{1}
+PipelineMeta.CheckResult.TypeResultError.ErrorOccurredGettingTransformMetaFields.Description=Ocorreu um erro obtendo informa\u00C3\u00A7\u00C3\u00A3o dos campos para o transform [{0}] \:{1}
+PipelineMeta.CheckResult.TypeResultError.LogTableNotSpecified.Description=A tabela de log n\u00C3\u00A3o foi especificada, a conex\u00C3\u00A3o de log \u00C3\u00A9
+PipelineMeta.CheckResult.TypeResultError.LoggingTableDoesNotExist.Description=A tabela de log n\u00C3\u00A3o existe na conex\u00C3\u00A3o de log
+PipelineMeta.CheckResult.TypeResultError.LoggingTableNeedsAdjustments.Description=A tabela de log necessita de alguns ajustes\:
+PipelineMeta.CheckResult.TypeResultOK.ConnectingWorks.Description=Conex\u00C3\u00A3o de log da pipeline fornecida\: conex\u00C3\u00A3o funciona
+PipelineMeta.CheckResult.TypeResultOK.CorrectLayout.Description=A tabela de log possui o layout correto.
+PipelineMeta.CheckResult.TypeResultOK.Description=Nenhum dos nomes de campos parece conter espa\u00C3\u00A7os ou outros caracteres ilegais para banco de dados(OK)
+PipelineMeta.CheckResult.TypeResultOK.LoggingTableExists.Description=A tabela de log [{0}] existe.
+PipelineMeta.CheckResult.TypeResultWarning.Description=Campo [{0}] \: {1} no transform [{2}]
 PipelineMeta.CheckResult.TypeResultWarning.HaveTheSameNameField.Description=Foram encontrados campos de entrada com o mesmo nome [{0}]
-PipelineMeta.CheckResult.TypeResultError.CannotFindPreviousFields.Description=Não foi possível encontrar campos anteriores para o transform: 
-PipelineMeta.CheckResult.TypeResultError.LoggingTableNeedsAdjustments.Description=A tabela de log necessita de alguns ajustes:
-PipelineMeta.CheckResult.TypeResultError.LoggingTableDoesNotExist.Description=A tabela de log não existe na conexão de log
-PipelineMeta.CheckResult.TypeResultError.LogTableNotSpecified.Description=A tabela de log não foi especificada, a conexão de log é
-PipelineMeta.Monitor.CheckingForDatabaseUnfriendlyCharactersInFieldNamesTask.Title=Verificando por caracteres ilegais para banco de dados em nomes de campo...
-PipelineMeta.Monitor.ReadingPipelineInfoTask.Title=Lendo informação da pipeline
+PipelineMeta.CheckResult.TypeResultWarning.TransformIsNotUsed.Description=Este transform n\u00C3\u00A3o \u00C3\u00A9 utilizado na pipeline.
+PipelineMeta.Exception.DatabaseErrorOccuredReadingPipeline=Ocorreu um erro de banco durante a leitura da pipeline.
+PipelineMeta.Exception.DatabaseErrorOccuredReadingPipeline2=Ocorreu um erro durante a leitura da pipeline no reposit\u00C3\u00B3rio
+PipelineMeta.Exception.ErrorOfSortingTransforms=Exce\u00C3\u00A7\u00C3\u00A3o ordenando transforms\: 
 PipelineMeta.Exception.ErrorOpeningOrValidatingTheXMLFile=Erro abrindo/validando o arquivo XML ''{0}''\!
-PipelineMeta.Monitor.ReadingTheDependenciesTask.Title=Lendo as dependências
+PipelineMeta.Exception.ErrorReadingPipeline=Erro lendo a pipeline do arquivo XML
+PipelineMeta.Exception.PipelineDoesNotExist=Esta pipeline n\u00C3\u00A3o existe \: 
+PipelineMeta.Exception.PlsSelectAValidDirectoryBeforeSavingThePipeline=Por favor selecione um diret\u00C3\u00B3rio v\u00C3\u00A1lido antes de gravar a pipeline\!
+PipelineMeta.Exception.TransformNameNotFound=A transforma\u00E7\u00E3o com o nome ''{0}'' n\u00E3o pode ser encontrada.
+PipelineMeta.Log.CheckingTransformTypes=Verificando os tipos de transform...
+PipelineMeta.Log.DatabaseError=Erro de banco do Hop\: 
+PipelineMeta.Log.DatabaseErrorOccuredReadingPipeline=Ocorreu um erro de banco de dados lendo a informa\u00C3\u00A7\u00C3\u00A3o do reposit\u00C3\u00B3rio
+PipelineMeta.Log.DeletingOldVersionPipeline=Apagando vers\u00C3\u00A3o antiga da pipeline...
+PipelineMeta.Log.DestinationOfHopCannotBeNull=Erro interno detectado, um destino do hop n\u00C3\u00A3o pode ser nulo\!
+PipelineMeta.Log.FoundFieldsToAdd=Campos encontrados para adicionar\: 
+PipelineMeta.Log.FoundFieldsToAdd2=Campos encontrados para adicionar\: 
+PipelineMeta.Log.FromTransformALookingAtPreviousTransform=Do transform\: {0}, observando {1} transforms anteriores.
+PipelineMeta.Log.GettingFieldsFromTransform=Obtendo campos do\: {0}, tipo\={1}
+PipelineMeta.Log.LoadedPipeline=Carregada a pipeline [{0}] no diret\u00C3\u00B3rio {1}
+PipelineMeta.Log.LoadedPipeline2=Carregada a pipeline [{0}] , diret\u00C3\u00B3rio \=\= null \: {1}
+PipelineMeta.Log.LoadingPipeline=Carregando pipeline [{0}] do reposit\u00C3\u00B3rio...
+PipelineMeta.Log.LoadingTransformWithID=Carregando transform com ID\: 
+PipelineMeta.Log.LookingAtConnection=Buscando por conex\u00C3\u00A3o \#
+PipelineMeta.Log.LookingAtHop=Observando o hop \#
+PipelineMeta.Log.LookingAtTransform=Buscando transform \#
+PipelineMeta.Log.LookingForPipeline=Buscando a pipeline [{0}] no diret\u00C3\u00B3rio [{1}]
+PipelineMeta.Log.NumberOfHopsReaded=nr de hops  lidos \: 
+PipelineMeta.Log.NumberOfTransformReaded=nr de transforms lidos \: 
+PipelineMeta.Log.OldVersionOfPipelineRemoved=Vers\u00C3\u00A3o antiga da pipeline removida.
+PipelineMeta.Log.ReadingTransforms=Lendo
+PipelineMeta.Log.SavingDatabaseConnections=Gravando conex\u00C3\u00B5es de banco de dados...
+PipelineMeta.Log.SavingDependencies=Gravando depend\u00C3\u00AAncias...
+PipelineMeta.Log.SavingFinished=Grava\u00C3\u00A7\u00C3\u00A3o finalizada...
+PipelineMeta.Log.SavingHops=Gravando hops...
+PipelineMeta.Log.SavingNotes=Gravando notas...
+PipelineMeta.Log.SavingOfPipelineStarted=Grava\u00C3\u00A7\u00C3\u00A3o da pipeline iniciada.
+PipelineMeta.Log.SavingPipelineInfo=Gravando informa\u00C3\u00A7\u00C3\u00A3o da pipeline...
+PipelineMeta.Log.SavingTransforms=Gravando transforms...
+PipelineMeta.Log.TimeExecutionTransformSort=A classifica\u00E7\u00E3o das transforma\u00E7\u00F5es executadas em {0} ms ({1} tempo anterior da transforma\u00E7\u00E3o calculada)
+PipelineMeta.Log.UserCancelledPipelineSave=O Usu\u00C3\u00A1rio cancelou a grava\u00C3\u00A7\u00C3\u00A3o da pipeline.
+PipelineMeta.Log.WeHaveConnections=Existem {0} conex\u00C3\u00B5es...
+PipelineMeta.Log.WeHaveHops=N\u00C3\u00B3s estamos
+PipelineMeta.MissingPluginsFoundWhileLoadingPipeline.Exception=Plugins faltando enquanto carregava a pipeline
+PipelineMeta.Monitor.CheckingForDatabaseUnfriendlyCharactersInFieldNamesTask.Title=Verificando por caracteres ilegais para banco de dados em nomes de campo...
 PipelineMeta.Monitor.CheckingTheLoggingTableTask.Title=Verificando a tabela de log...
-PipelineMeta.CheckResult.TypeResultWarning.Description=Campo [{0}] : {1} no transform [{2}]
+PipelineMeta.Monitor.CheckingTransformTask.Title=Verificando transform [{0}]
+PipelineMeta.Monitor.DeletingOldVersionPipelineTask.Title=Removendo vers\u00C3\u00A3o antiga da pipeline...
 PipelineMeta.Monitor.DeterminingImpactTask.Title=Determinando impacto...
-PipelineMeta.Monitor.SavingPipelineTask.Title=Gravando pipeline 
-PipelineMeta.Monitor.LoadingPipelineTask.Title=Carregando a pipeline 
+PipelineMeta.Monitor.FinishingTask.Title=finalizando...
+PipelineMeta.Monitor.GettingFieldsFromTransformTask.Title=Obtendo campos do transform [{0}]
+PipelineMeta.Monitor.GettingTheSQLForPipelineTask.Title=Obtendo o SQL necess\u00C3\u00A1rio para esta pipeline...
+PipelineMeta.Monitor.GettingTheSQLForPipelineTask.Title2=Obtendo comandos SQL da pipeline (logtable, etc.)
 PipelineMeta.Monitor.GettingTheSQLForTransformTask.Title=Obtendo comandos SQL para o transform [{0}]
-PipelineMeta.Log.OldVersionOfPipelineRemoved=Versão antiga da pipeline removida.
-PipelineMeta.Log.DeletingOldVersionPipeline=Apagando versão antiga da pipeline...
-PipelineMeta.Exception.PipelineDoesNotExist=Esta pipeline não existe : 
-PipelineMeta.Exception.ErrorReadingPipeline=Erro lendo a pipeline do arquivo XML
-PipelineMeta.CheckResult.TypeResultOK.Description=Nenhum dos nomes de campos parece conter espaços ou outros caracteres ilegais para banco de dados(OK)
+PipelineMeta.Monitor.HandlingOldVersionPipelineTask.Title=Manipulando vers\u00C3\u00A3o antiga da pipeline (se existir)...
+PipelineMeta.Monitor.LoadingPipelineDetailsTask.Title=Carregando detalhes da pipeline
+PipelineMeta.Monitor.LoadingPipelineTask.Title=Carregando a pipeline 
 PipelineMeta.Monitor.LookingAtTransformTask.Title=Observando transform \#
-PipelineMeta.Monitor.VerifyingTransformTask.Title=Verificando transform [{0}]
-PipelineMeta.Log.FromTransformALookingAtPreviousTransform=Do transform: {0}, observando {1} transforms anteriores.
-PipelineMeta.Log.SavingOfPipelineStarted=Gravação da pipeline iniciada.
-PipelineMeta.Monitor.CheckingTransformTask.Title=Verificando transform [{0}]
-PipelineMeta.Monitor.ReadingTransformsTask.Title=Lendo transforms...
-PipelineMeta.Monitor.SortingTransformsTask.Title=Ordenando transforms
-PipelineMeta.Log.SavingDatabaseConnections=Gravando conexões de banco de dados...
+PipelineMeta.Monitor.ReadingHopTask.Title=Lendo os hops
 PipelineMeta.Monitor.ReadingNoteTask.Title=Lendo notas...
+PipelineMeta.Monitor.ReadingPipelineInfoTask.Title=Lendo informa\u00C3\u00A7\u00C3\u00A3o da pipeline
+PipelineMeta.Monitor.ReadingTheAvailableDatabaseTask.Title=lendo o banco dispon\u00C3\u00ADvel do reposit\u00C3\u00B3rio
+PipelineMeta.Monitor.ReadingTheDependenciesTask.Title=Lendo as depend\u00C3\u00AAncias
 PipelineMeta.Monitor.ReadingTransformTask.Title=lendo transform \#
-PipelineMeta.Exception.ErrorOfSortingTransforms=Exceção ordenando transforms: 
-PipelineMeta.Log.DestinationOfHopCannotBeNull=Erro interno detectado, um destino do hop não pode ser nulo\!
+PipelineMeta.Monitor.ReadingTransformsTask.Title=Lendo transforms...
 PipelineMeta.Monitor.SavingDatabaseTask.Title=Gravando banco de dados \#
-PipelineMeta.UndoTypeDesc.UndoNew=Desfaz novo
-PipelineMeta.Log.FoundFieldsToAdd=Campos encontrados para adicionar: 
-PipelineMeta.Log.FoundFieldsToAdd2=Campos encontrados para adicionar: 
-PipelineMeta.Log.CheckingTransformTypes=Verificando os tipos de transform...
-PipelineMeta.Log.LoadingTransformWithID=Carregando transform com ID: 
-PipelineMeta.Log.WeHaveConnections=Existem {0} conexões...
-PipelineMeta.Log.SavingFinished=Gravação finalizada...
+PipelineMeta.Monitor.SavingHopTask.Title=Gravando hop \#
 PipelineMeta.Monitor.SavingNoteTask.Title=Gravando nota \#
+PipelineMeta.Monitor.SavingPipelineTask.Title=Gravando pipeline 
 PipelineMeta.Monitor.SavingTransformTask.Title=Gravando transform \#
-PipelineMeta.Log.SavingPipelineInfo=Gravando informação da pipeline...
-PipelineMeta.Log.LookingForPipeline=Buscando a pipeline [{0}] no diretório [{1}]
-PipelineMeta.Monitor.ReadingHopTask.Title=Lendo os hops
-PipelineMeta.UndoTypeDesc.UndoPosition=Desfaz posição
-PipelineMeta.Log.GettingFieldsFromTransform=Obtendo campos do: {0}, tipo={1}
-PipelineMeta.Log.LoadingPipeline=Carregando pipeline [{0}] do repositório...
-PipelineMeta.Log.LoadedPipeline2=Carregada a pipeline [{0}] , diretório == null : {1}
-PipelineMeta.Monitor.SavingHopTask.Title=Gravando hop \#
-PipelineMeta.Monitor.FinishingTask.Title=finalizando...
-PipelineMeta.Log.SavingNotes=Gravando notas...
-PipelineMeta.Log.SavingTransforms=Gravando transforms...
-PipelineMeta.Log.SavingHops=Gravando hops...
-PipelineMeta.Log.WeHaveHops=Nós estamos
-PipelineMeta.Log.ReadingTransforms=Lendo
-PipelineMeta.Log.LookingAtHop=Observando o hop \#
-PipelineMeta.Log.LoadedPipeline=Carregada a pipeline [{0}] no diretório {1}
-PipelineMeta.UndoTypeDesc.UndoChange=Desfaz alteração
-PipelineMeta.UndoTypeDesc.UndoDelete=Desfaz remoção
-PipelineMeta.Log.LookingAtConnection=Buscando por conexão \#
-PipelineMeta.Log.NumberOfTransformReaded=nr de transforms lidos : 
-PipelineMeta.Monitor.GettingFieldsFromTransformTask.Title=Obtendo campos do transform [{0}]
-PipelineMeta.Log.SavingDependencies=Gravando dependências...
-PipelineMeta.Log.NumberOfHopsReaded=nr de hops  lidos : 
-PipelineMeta.Log.DatabaseError=Erro de banco do Hop: 
-PipelineMeta.Log.LookingAtTransform=Buscando transform \#
-PipelineMeta.Monitor.HandlingOldVersionPipelineTask.Title=Manipulando versão antiga da pipeline (se existir)...
-PipelineMeta.Monitor.DeletingOldVersionPipelineTask.Title=Removendo versão antiga da pipeline...
-PipelineMeta.Monitor.GettingTheSQLForPipelineTask.Title2=Obtendo comandos SQL da pipeline (logtable, etc.)
-PipelineMeta.CheckResult.TypeResultOK.CorrectLayout.Description=A tabela de log possui o layout correto.
-PipelineMeta.Exception.DatabaseErrorOccuredReadingPipeline=Ocorreu um erro de banco durante a leitura da pipeline.
-PipelineMeta.Exception.DatabaseErrorOccuredReadingPipeline2=Ocorreu um erro durante a leitura da pipeline no repositório
-PipelineMeta.Value.CheckingFieldName.FieldNameIsEmpty.Description=Nome do campo está vazio.
-PipelineMeta.CheckResult.TypeResultWarning.TransformIsNotUsed.Description=Este transform não é utilizado na pipeline.
-PipelineMeta.CheckResult.TypeResultOK.ConnectingWorks.Description=Conexão de log da pipeline fornecida: conexão funciona
-PipelineMeta.CheckResult.TypeResultOK.LoggingTableExists.Description=A tabela de log [{0}] existe.
-PipelineMeta.Monitor.ReadingTheAvailableDatabaseTask.Title=lendo o banco disponível do repositório
-PipelineMeta.Monitor.LoadingPipelineDetailsTask.Title=Carregando detalhes da pipeline
-PipelineMeta.Log.DatabaseErrorOccuredReadingPipeline=Ocorreu um erro de banco de dados lendo a informação do repositório
+PipelineMeta.Monitor.SortingTransformsTask.Title=Ordenando transforms
 PipelineMeta.Monitor.VerifyingThisPipelineTask.Title=Verificando esta pipeline...
-PipelineMeta.Log.UserCancelledPipelineSave=O Usuário cancelou a gravação da pipeline.
-PeekMetric.Column.TransformName=Nome do transform
-PeekMetric.Column.Copynr=Copia nr
-PeekMetric.Column.Read=Lidos
-PeekMetric.Column.Written=escritos
-PeekMetric.Column.Input=Entrada
-PeekMetric.Column.Output=Sa?da
-PeekMetric.Column.Updated=Atualizados
-PeekMetric.Column.Errors=Erros
-PeekMetric.Column.Active=Ativo
-PeekMetric.Column.Time=Tempo
-PeekMetric.Column.Speed=Velocidade (r/s)
-PeekMetric.Column.PriorityBufferSizes=Pri/ent/sai
-PeekMetric.Column.Sleeps=Tempo espera (get/put)
+PipelineMeta.Monitor.VerifyingTransformTask.Title=Verificando transform [{0}]
+PipelineMeta.PipelineType.Normal=Normal
+PipelineMeta.PipelineType.SingleThreaded=Single Threaded (Feito para Hadoop)
+PipelineMeta.SQLStatement.ErrorDesc.ErrorObtainingPipelineLogTableInfo=Erro obtendo informa\u00C3\u00A7\u00C3\u00A3o da pipeline na tabela de log\: 
+PipelineMeta.SearchMetadata.DatabaseConnectionName=Nome da conex\u00E3o do banco de dados
+PipelineMeta.SearchMetadata.DatabaseHostName=Nome do host do banco de dados
+PipelineMeta.SearchMetadata.DatabaseName=Nome do banco de dados
+PipelineMeta.SearchMetadata.DatabasePassword=Senha do banco de dados
+PipelineMeta.SearchMetadata.DatabasePort=Porta do banco de dados
+PipelineMeta.SearchMetadata.DatabaseServer=Servidor de banco de dados
+PipelineMeta.SearchMetadata.DatabaseTypeDescription=Descri\u00E7\u00E3o do tipo do banco de dados
+PipelineMeta.SearchMetadata.DatabaseUsername=Usu\u00E1riodo banco de dados
+PipelineMeta.SearchMetadata.NotepadText=Texto do bloco de notas
+PipelineMeta.SearchMetadata.TransformDescription=Descri\u00E7\u00E3o da transforma\u00E7\u00E3o
+PipelineMeta.SearchMetadata.TransformName=Nome da transforma\u00E7\u00E3o
+PipelineMeta.UndoTypeDesc.UndoChange=Desfaz altera\u00C3\u00A7\u00C3\u00A3o
+PipelineMeta.UndoTypeDesc.UndoDelete=Desfaz remo\u00C3\u00A7\u00C3\u00A3o
+PipelineMeta.UndoTypeDesc.UndoNew=Desfaz novo
+PipelineMeta.UndoTypeDesc.UndoPosition=Desfaz posi\u00C3\u00A7\u00C3\u00A3o
+PipelineMeta.Value.CheckingFieldName.FieldNameContainsSpaces.Description=Nome do campo contem um ou mais espa\u00C3\u00A7os.  (banco de dados n\u00C3\u00A3o amig\u00C3\u00A1vel\!)
+PipelineMeta.Value.CheckingFieldName.FieldNameContainsUnfriendlyCodes.Description=Nome do campo contem um ou mais {0}  (banco de dados n\u00C3\u00A3o amig\u00C3\u00A1vel\!)
+PipelineMeta.Value.CheckingFieldName.FieldNameIsEmpty.Description=Nome do campo est\u00C3\u00A1 vazio.
+SingleThreadedPipeline.Log.SummaryInfo=Processamento finalizado (I\={0}, O\={1}, R\={2}, W\={3}, U\={4}, E\={5})
+TransformLoader.Log.ReplaceExistingPlugid=Trocado o plugin existente com ID \: 
+TransformLoader.Log.TransformLoader.Description=Buscando por plugins no diret\u00C3\u00B3rio\: 
+TransformLoader.Log.TransformLoader.Title=Carregador de Transform
+TransformLoader.RuntimeError.ClassNotFound.PIPELINE0005=Classe n\u00C3\u00A3o encontrada
+TransformLoader.RuntimeError.CouldNotFindDirectory.PIPELINE0002=N\u00C3\u00A3o foi encontrado o diret\u00C3\u00B3rio [{0}]
+TransformLoader.RuntimeError.IllegalAccessToClass.PIPELINE0007=Acesso ilegal \u00C3\u00A0 classe
+TransformLoader.RuntimeError.MalformedURL.PIPELINE0008=URL mal formada
+TransformLoader.RuntimeError.NoValidTransformOrPlugin.PIPELINE0010=O transform/plugin especificado n\u00C3\u00A3o \u00C3\u00A9 v\u00C3\u00A1lido.
+TransformLoader.RuntimeError.UnExpectedErrorLoadingClass.PIPELINE0009=Erro inesperado durante carga da classe
+TransformLoader.RuntimeError.UnableToInstantiateClass.PIPELINE0006=N\u00C3\u00A3o foi poss\u00C3\u00ADvel instanciar a classe
+TransformLoader.RuntimeError.UnableToLoadClass.PIPELINE0003=N\u00C3\u00A3o foi poss\u00C3\u00ADvel carregar a classe para o transform/plugin com descri\u00C3\u00A7\u00C3\u00A3o [{0} Verifique se o plugin est\u00C3\u00A1 dispon\u00C3\u00ADvel no subdiret\u00C3\u00B3rio de plugins dentro da distribui\u00C3\u00A7\u00C3\u00A3o Hop.
+TransformLoader.RuntimeError.UnableToReadPluginXML.PIPELINE0001=Erro lendo o arquivo XML de plugin\: 
+TransformLoader.RuntimeError.UnknownPluginType.PIPELINE0004=Tipo de plugin desconhecido \: 
+TransformPlugin.Label=Geral
+TransformWithMappingMeta.Exception.UnableToLoadPipeline=N\u00E3o foi poss\u00EDvel carregar a pipeline [{0}] \: diretorio n\u00E3o encontrado
diff --git a/plugins/tech/parquet/src/main/resources/org/apache/hop/parquet/transforms/output/messages/messages_pt_PT.properties b/plugins/tech/parquet/src/main/resources/org/apache/hop/parquet/transforms/output/messages/messages_pt_PT.properties
new file mode 100644
index 0000000..1398ab7
--- /dev/null
+++ b/plugins/tech/parquet/src/main/resources/org/apache/hop/parquet/transforms/output/messages/messages_pt_PT.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.
+#
+#File generated by Hop Translator for package 'org.apache.hop.parquet.transforms.output' in locale 'pt_PT'
+#
+#
+#Thu Jan 27 21:53:34 PST 2022
+ParquetOutput.Name=Arquivo de saida do Parquet
+ParquetOutputDialog.CompressionCodec.Label=Codec de comprens\u00E3o
+ParquetOutputDialog.DataPageSize.Label=Tamanho da pagina de data
+ParquetOutputDialog.DictionaryPageSize.Label=Tamanho do dicion\u00E1rio da p\u00E1gina
+ParquetOutputDialog.Fields.Label=Campos
+ParquetOutputDialog.FilenameBase.Label=Nome do arquivo de base
+ParquetOutputDialog.FilenameCreateFolders.Label=Criar diretorios?
+ParquetOutputDialog.FilenameDateTimeFormat.Label=Formato de data e tempo
+ParquetOutputDialog.FilenameExtension.Label=Extens\u00E3o
+ParquetOutputDialog.FilenameGroup.Label=Nome do arquivo
+ParquetOutputDialog.FilenameIncludeDate.Label=Incluir data?
+ParquetOutputDialog.FilenameIncludeTime.Label=Incluir hora?
+ParquetOutputDialog.Version.Label=Vers\u00E3o
diff --git a/plugins/transforms/delay/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_pt_PT.properties b/plugins/transforms/delay/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_pt_PT.properties
new file mode 100644
index 0000000..4e16a52
--- /dev/null
+++ b/plugins/transforms/delay/src/main/resources/org/apache/hop/pipeline/transform/messages/messages_pt_PT.properties
@@ -0,0 +1,21 @@
+#
+# 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.
+#
+#File generated by Hop Translator for package 'org.apache.hop.pipeline.transform' in locale 'pt_PT'
+#
+#
+#Thu Jan 27 21:53:34 PST 2022
+BaseTransform.Category.Utility=Utilidades
diff --git a/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/pluginexplorer/messages/messages_pt_PT.properties b/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/pluginexplorer/messages/messages_pt_PT.properties
new file mode 100644
index 0000000..9386c72
--- /dev/null
+++ b/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/pluginexplorer/messages/messages_pt_PT.properties
@@ -0,0 +1,21 @@
+#
+# 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.
+#
+#File generated by Hop Translator for package 'org.apache.hop.ui.hopgui.perspective.pluginexplorer' in locale 'pt_PT'
+#
+#
+#Thu Jan 27 21:53:34 PST 2022
+PluginExplorerPerspective.Name=Plugin explorer
diff --git a/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/search/messages/messages_pt_PT.properties b/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/search/messages/messages_pt_PT.properties
new file mode 100644
index 0000000..ebd558d
--- /dev/null
+++ b/ui/src/main/resources/org/apache/hop/ui/hopgui/perspective/search/messages/messages_pt_PT.properties
@@ -0,0 +1,22 @@
+#
+# 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.
+#
+#File generated by Hop Translator for package 'org.apache.hop.ui.hopgui.perspective.search' in locale 'pt_PT'
+#
+#
+#Thu Jan 27 21:53:34 PST 2022
+HopSearchPerspective.GuiPlugin.Description=Janela de busca do Hop
+HopSearchPerspective.Name=Buscar