diff --git a/translations/frontend.pt.xlf b/translations/frontend.pt.xlf
new file mode 100644
index 00000000..fb2f2335
--- /dev/null
+++ b/translations/frontend.pt.xlf
@@ -0,0 +1,59 @@
+
+
+
+
+
+ search.placeholder
+ Pesquisar
+
+
+
+
+ part.labelp
+ Componentes
+
+
+
+
+ entity.select.group.new_not_added_to_DB
+ Novo (não adicionado ainda no DB)
+
+
+
+
+ user.password_strength.very_weak
+ Muito fraca
+
+
+
+
+ user.password_strength.weak
+ Fraca
+
+
+
+
+ user.password_strength.medium
+ Média
+
+
+
+
+ user.password_strength.strong
+ Forte
+
+
+
+
+ user.password_strength.very_strong
+ Bem forte
+
+
+
+
+ search.submit
+ Vá!
+
+
+
+
diff --git a/translations/security.pt.xlf b/translations/security.pt.xlf
new file mode 100644
index 00000000..284b32d9
--- /dev/null
+++ b/translations/security.pt.xlf
@@ -0,0 +1,23 @@
+
+
+
+
+
+ user.login_error.user_disabled
+ Sua conta está desativada! Fale com um administrador se você acredita ser um erro.
+
+
+
+
+ saml.error.cannot_login_local_user_per_saml
+ Você não pode fazer o login na conta com um usuário local por SSO! Use sua senha de usuário local.
+
+
+
+
+ saml.error.cannot_login_saml_user_locally
+ Você não pode usar autenticação local como login como usuário SAML! Use seu login SSO.
+
+
+
+
diff --git a/translations/validators.pt.xlf b/translations/validators.pt.xlf
new file mode 100644
index 00000000..fb07b80a
--- /dev/null
+++ b/translations/validators.pt.xlf
@@ -0,0 +1,257 @@
+
+
+
+
+
+ part.master_attachment.must_be_picture
+ O anexo de pré-visualização deve ser uma imagem válida!
+
+
+
+
+ structural.entity.unique_name
+ Um elemento com esse nome já existe nesse nível!
+
+
+
+
+ parameters.validator.min_lesser_typical
+ Valor precisa ser menor ou igual ao valor típico ({{ compared_value }}).
+
+
+
+
+ parameters.validator.min_lesser_max
+ Valor precisa ser menor ao valor máximo ({{ compared_value }}).
+
+
+
+
+ parameters.validator.max_greater_typical
+ Valor precisa ser maior ou igual ao valor típico ({{ compared_value }}).
+
+
+
+
+ validator.user.username_already_used
+ Um usuário com esse nome já existe
+
+
+
+
+ user.invalid_username
+ O nome de usuário precisa conter apenas letras, números, underscores, pontos, mais ou menos e não pode começar com um @!
+
+
+
+
+ obsolete
+
+
+ validator.noneofitschild.self
+ Um elemento não pode ser seu próprio parente!
+
+
+
+
+ obsolete
+
+
+ validator.noneofitschild.children
+ Você não pode assimilar um elemento filho como pai (pode causar loops)!
+
+
+
+
+ validator.select_valid_category
+ Selecione uma categoria válida!
+
+
+
+
+ validator.part_lot.only_existing
+ Não se pode adicionar novos componentes a essa localização já que está marcado como "Somente existentes"
+
+
+
+
+ validator.part_lot.location_full.no_increase
+ Localização está cheia. Quantidade não pode ser aumentada (novo valor deve ser menor que {{ old_amount }}).
+
+
+
+
+ validator.part_lot.location_full
+ Localização está cheia. Não pode ser adicionados novos componentes a ela.
+
+
+
+
+ validator.part_lot.single_part
+ Essa localização só pode conter um único componente que já está cheio!
+
+
+
+
+ validator.attachment.must_not_be_null
+ Você precisa selecionar um tipo de anexo!
+
+
+
+
+ validator.orderdetail.supplier_must_not_be_null
+ Você precisa selecionar um fornecedor!
+
+
+
+
+ validator.measurement_unit.use_si_prefix_needs_unit
+ Para habilitar prefixos do SI, você precisa inserir um símbolo de unidade!
+
+
+
+
+ part.ipn.must_be_unique
+ Um número de componente interno precisa ser único. {{ value }} já está em uso!
+
+
+
+
+ validator.project.bom_entry.name_or_part_needed
+ Você precisa escolher um componente ou inserir um nome a uma entrada BOM que não indica um componente.
+
+
+
+
+ project.bom_entry.name_already_in_bom
+ Já existe uma entrada BOM com esse nome!
+
+
+
+
+ project.bom_entry.part_already_in_bom
+ Esse componente já existe no BOM!
+
+
+
+
+ project.bom_entry.mountnames_quantity_mismatch
+ A quantidade de nome de componentes deve coincidir com a quantidade prevista no BOM
+
+
+
+
+ project.bom_entry.can_not_add_own_builds_part
+ Você não pode adicionar um componente de produção interna ao projeto de sua lista de materiais (BOM)
+
+
+
+
+ project.bom_has_to_include_all_subelement_parts
+ O BOM do projeto precisa incluir todas as montagens de componentes dos subprojetos. Componente %part_name% do projeto %project_name% está faltando!
+
+
+
+
+ project.bom_entry.price_not_allowed_on_parts
+ Preços não são permitidos em entradas BOM associadas a um componente. Defina o preço a um componente.
+
+
+
+
+ validator.project_build.lot_bigger_than_needed
+ Você selecionou uma quantidade maior que a necessária para retirar! Remova a quantidade desnecessária.
+
+
+
+
+ validator.project_build.lot_smaller_than_needed
+ Você selecionou menos quantidade para retirar que a necessária! Adicione a quantidade necessária.
+
+
+
+
+ part.name.must_match_category_regex
+ O nome do componente não coincide com a expressão regular inserida pela categoria: %regex%
+
+
+
+
+ validator.attachment.name_not_blank
+ Adicione um valor aqui, ou insira um arquivo para automaticamente usar o nome do arquivo como nome do anexo.
+
+
+
+
+ validator.part_lot.owner_must_match_storage_location_owner
+ O dono do lote precisa coincidir com o dono da localização do armazém selecionado (%owner_name%)!
+
+
+
+
+ validator.part_lot.owner_must_not_be_anonymous
+ Um dono de lote não pode ser um usuário anônimo!
+
+
+
+
+ validator.part_association.must_set_an_value_if_type_is_other
+ Se você atribuir o tipo para "outro", então deve adicionar o valor descrição para ele!
+
+
+
+
+ validator.part_association.part_cannot_be_associated_with_itself
+ Um componente não pode ser associado a ele mesmo!
+
+
+
+
+ validator.part_association.already_exists
+ A atribuição desse componente já foi feita!
+
+
+
+
+ validator.part_lot.vendor_barcode_must_be_unique
+ O valor do código de barras do vendedor já está sendo usado por outro lote. Precisa ser único!
+
+
+
+
+ validator.year_2038_bug_on_32bit
+ Por limitações técnicas, não é possível selecionar datas depois de 19/01/2038 em um sistema de 32 bits!
+
+
+
+
+ validator.fileSize.invalidFormat
+ Formato de tamanho de arquivo inválido. Use um número inteiro com K, M, G de sufixo par Kilo, Mega ou Gigabytes.
+
+
+
+
+ validator.invalid_range
+ O intervalo atual não é válido!
+
+
+
+
+ validator.google_code.wrong_code
+ Código inválido. Confira se o seu aplicativo de autenticação está configurado corretamente e se ambos servidor e o dispositivo de autenticação estão com os horários sincronizados.
+
+
+
+
+ settings.synonyms.type_synonyms.collection_type.duplicate
+ Já existe uma tradução definida para esse tipo e idioma
+
+
+
+
+ validator.invalid_gtin
+ Esse não é um GTIN / EAN válido!
+
+
+
+