diff --git a/lang/formidable.xml b/lang/formidable.xml
index e7d4d44f2415fd6d3ea72f4a0dc4bb16dcc448cc..84f7ca2bf5a576aa4930883e2375b3b80f3469db 100644
--- a/lang/formidable.xml
+++ b/lang/formidable.xml
@@ -28,7 +28,7 @@
 	<langue code="it" url="https://trad.spip.net/tradlang_module/formidable?lang_cible=it" total="276" traduits="101" relire="0" modifs="14" nouveaux="161" pourcent="36.59">
 		<traducteur nom="kent1" lien="https://trad.spip.net/auteur/kent1" />
 	</langue>
-	<langue code="pt_br" url="https://trad.spip.net/tradlang_module/formidable?lang_cible=pt_br" total="276" traduits="213" relire="0" modifs="20" nouveaux="43" pourcent="77.17">
+	<langue code="pt_br" url="https://trad.spip.net/tradlang_module/formidable?lang_cible=pt_br" total="276" traduits="276" relire="0" modifs="0" nouveaux="0" pourcent="100.00">
 		<traducteur nom="Ricardo Porto" lien="https://trad.spip.net/auteur/ricardo-porto" />
 		<traducteur nom="telopa" lien="https://trad.spip.net/auteur/telopa" />
 	</langue>
diff --git a/lang/formidable_pt_br.php b/lang/formidable_pt_br.php
index 5283dadd1e10870ccf58e99f38df025efa6c1269..196bb6b9823ea251c875826bf88cab62c5453652 100644
--- a/lang/formidable_pt_br.php
+++ b/lang/formidable_pt_br.php
@@ -11,12 +11,12 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 
 	// A
 	'activer_pages_explication' => 'Por padrão, as páginas públicas dos formulários não são autorizadas',
-	'activer_pages_label' => 'Autorizar a criação de páginas publicas para os formulários', # MODIF
+	'activer_pages_label' => 'Ativar as páginas publicas dos formulários',
 	'admin_reponses_auteur' => 'Autorizar os autores dos formulários a alterar as respostas',
 	'admin_reponses_auteur_explication' => 'Apenas os administradores podem alterar as respostas enviadas por um formulário (Na lixeira, publicado, proposto para avaliação). Essa opção permite que o autor de um formulário modifique o status (com risco de distorcer eventuais dados estatísticos).',
 	'analyse_avec_reponse' => 'Respostas não vazias',
-	'analyse_exclure_champs_explication' => 'Liste os nomes de campos a serem excluídos da análise, separados por <code>|</code>. Não inserir <code>@</code>.', # MODIF
-	'analyse_exclure_champs_label' => 'Campos a excluir', # MODIF
+	'analyse_exclure_champs_explication' => 'Informe o nome dos campos a excluir da análise, separados por <code>|</code>. Não inserir as <code>@</code>.',
+	'analyse_exclure_champs_label' => 'Campos a excluir da análise',
 	'analyse_exporter' => 'Exportar análise',
 	'analyse_longueur_moyenne' => 'Comprimento médio em número de palavras',
 	'analyse_nb_reponses_total' => '@nb@ pessoas responderam a este formulário.',
@@ -57,6 +57,11 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'editer_css' => 'Classes CSS',
 	'editer_descriptif' => 'Descrição',
 	'editer_descriptif_explication' => 'Explicação do formulário destinada ao espaço privado.',
+	'editer_globales_etapes_activer_explication' => 'Com esta opção ativada, cada grupo de campos de primeiro nível é convertido em passo do formulário.',
+	'editer_globales_etapes_activer_label_case' => 'Ativar o gerenciamento passo-a-passo',
+	'editer_globales_etapes_precedent_label' => 'Texto do botão voltar (por padrão "Voltar")',
+	'editer_globales_etapes_suivant_label' => 'Texto do botão avançar (por padrão "Avançar")',
+	'editer_globales_texte_submit_label' => 'Texto do botão de validação',
 	'editer_identifiant' => 'Identificador',
 	'editer_identifiant_explication' => 'Insira um identificador textual único que lhe permitirá chamar mais facilmente o formulário. O identificador só pode conter números, letras não acentuadas e o caracter "_".',
 	'editer_menu_auteurs' => 'Configurar autores',
@@ -66,13 +71,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'editer_message_erreur_unicite_explication' => 'Se você deixar o campo em branco, a mensagem de erro padrão do Formidable será exibida',
 	'editer_message_erreur_unicite_label' => 'Mensagem de erro quando um campo não é único',
 	'editer_message_ok' => 'Mensagem de retorno',
-	'editer_message_ok_explication' => 'Personalize a mensagem que será exibida ao usuário após o envio de um formulário válido.', # MODIF
+	'editer_message_ok_explication' => 'Você pode personalizar a mensagem que será exibida ao usuário após o envio de um formulário válido. É possível exibir o valor de certos campos submetidos usando @raccourci@',
 	'editer_modifier_formulaire' => 'Modificar formulário',
 	'editer_nouveau' => 'Novo formulário',
 	'editer_redirige_url' => 'Endereço de redirecionamento após validação',
 	'editer_redirige_url_explication' => 'Deixar em branco se quiser que fique na mesma página',
 	'editer_titre' => 'Título',
-	'editer_unicite_explication' => 'Gravar o formulário apenas se um campo for único', # MODIF
+	'editer_unicite_explication' => 'Gravar o formulário apenas se o valor de um campo específico for único entre todas as respostas submetidas.',
 	'editer_unicite_label' => 'Verificar a unicidade do campo',
 	'erreur_autorisation' => 'Você não tem permissão para editar os formulários do site.',
 	'erreur_base' => 'Aconteceu um erro técnico durante a gravação.',
@@ -87,10 +92,17 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'erreur_importer_yaml' => 'Erro na importação do arquivo YAML',
 	'erreur_inexistant' => 'Formulário inexistente.',
 	'erreur_unicite' => 'Este valor já está sendo usado',
-	'exporter_formulaire_date_debut_label' => 'A partir de', # MODIF
+	'exporter_adresses_ip' => 'Incluir os endereços IP na exportação das respostas',
+	'exporter_adresses_ip_explication' => 'Por padrão, os endereços IP não são incluídos na exportação das respostas',
+	'exporter_formulaire_cle_ou_valeur_cle_label' => 'Chaves',
+	'exporter_formulaire_cle_ou_valeur_label' => 'Para os botões de rádio, listas drop-down etc., deve-se exportar os valores humanamente legíveis (labels) ou as chaves?',
+	'exporter_formulaire_cle_ou_valeur_valeur_label' => 'Valores legíveis (labels)',
+	'exporter_formulaire_date_debut_label' => 'A partir de (inclusive)',
 	'exporter_formulaire_date_erreur' => 'A data de início deve ser anterior à data de fim',
-	'exporter_formulaire_date_fin_label' => 'Até', # MODIF
+	'exporter_formulaire_date_fin_label' => 'Até (inclusive)',
 	'exporter_formulaire_format_label' => 'Formato do arquivo',
+	'exporter_formulaire_ignorer_fichiers_explication_label' => 'Este formulário contém campos de arquivos; você prefere não adicioná-los à exportação e transferí-los, por exemplo, por FTP?',
+	'exporter_formulaire_ignorer_fichiers_label' => 'Não incluir os arquivos',
 	'exporter_formulaire_statut_label' => 'Respostas',
 
 	// F
@@ -112,9 +124,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'heures_minutes_secondes' => '@h@h @m@min @s@s',
 
 	// I
+	'icone_modifier_formulaires_reponse' => 'Alterar a resposta',
+	'icone_retour_formulaires_reponse' => 'Voltar para a resposta',
 	'id_formulaires_reponse' => 'Identificador da resposta',
-	'identification_par_cookie' => 'Por cookie', # MODIF
+	'identification_par_cookie' => 'Por cookie (identificador aleatório, não armazena nenhuma informação pessoal)',
 	'identification_par_id_auteur' => 'Por identificação (id_auteur) de usuário autenticado',
+	'identification_par_id_reponse' => 'Por identificador (id_formulaire_reponse) da resposta, passe explicitamente na chamada do formulário num template',
+	'identification_par_variable_php' => 'Por uma variável de conexão PHP (hasheada)',
 	'importer_formulaire' => 'Importar um formulário',
 	'importer_formulaire_fichier_label' => 'Arquivo a importar',
 	'importer_formulaire_format_label' => 'Formato do arquivo',
@@ -185,6 +201,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'reponses_liste_prop' => 'Respostas propostas para aprovação',
 	'reponses_liste_publie' => 'Todas as respostas validadas',
 	'reponses_nb' => '@nb@ respostas',
+	'reponses_page_accueil' => 'Exibir as respostas na página inicial do espaço privado',
 	'reponses_supprimer' => 'Excluir todas as respostas',
 	'reponses_supprimer_confirmation' => 'Você quer realmente excluir todas as respostas a este formulário?',
 	'reponses_voir_detail' => 'Ver a resposta',
@@ -209,21 +226,32 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'traitements_avertissement_creation' => 'As alterações nos campos do formulário foram gravadas corretamente. Defina agora quais tratamentos serão efetuados na submissão do formulário.',
 	'traitements_avertissement_modification' => 'As alterações nos campos do formulário foram gravadas corretamente. <strong>Alguns tratamentos podem ter que ser reconfigurados consequentemente.</strong>',
 	'traitements_champ_aucun' => 'Nenhum',
-	'traiter_email_description' => 'Postar o resultado do formulário por e-mail para uma lista de destinatários.', # MODIF
+	'traiter_email_AR_label' => 'Aviso de recebimento',
+	'traiter_email_accuse_explication_texte' => 'Para ativar a funcionalidade do aviso de recebimento, você deve previamente definir um remetente.',
+	'traiter_email_contenu_courriel_label' => 'Conteúdo do e-mail',
+	'traiter_email_description' => 'Enviar por e-mail o resultado do formulário para uma lista de destinatários',
+	'traiter_email_destinataires_courriel_label' => 'Destinatários do e-mail',
+	'traiter_email_envoyeur_courriel_label' => 'Remetente do e-mail',
 	'traiter_email_horodatage' => 'Formulário "@formulaire@" postado em @date@ às @heure@.',
 	'traiter_email_message_erreur' => 'Aconteceu um erro ao enviar o e-mail.',
 	'traiter_email_message_ok' => 'Sua mensagem foi enviada corretamente por e-mail.',
 	'traiter_email_option_activer_accuse_label_case' => 'Enviar também um e-mail para o remetente com uma mensagem de confirmação.',
 	'traiter_email_option_activer_ip_label_case' => 'Enviar o endereço IP do remetente aos destinatários.',
-	'traiter_email_option_courriel_envoyeur_accuse_explication' => 'Indique o e-mail utilizado para enviar o aviso de recebimento. Por padrão, o destinatário será o remetente.', # MODIF
-	'traiter_email_option_courriel_envoyeur_accuse_label' => 'E-mail de aviso de recebimento', # MODIF
+	'traiter_email_option_courriel_envoyeur_accuse_explication' => 'Informe o e-mail utilizado para enviar o aviso de recebimento. Se nada for informado, o e-mail do webmaster será o usado.',
+	'traiter_email_option_courriel_envoyeur_accuse_label' => 'E-mail do remetente do aviso de recebimento',
+	'traiter_email_option_destinataires_champ_form_attention' => 'Esta opção é desaconselhada, por contituir um apelo ao SPAM.<br />
+- Para enviar para um autor do site, use a opção «Destinatário» (mais acima).<br />
+- Para enviar para a pessoa que preencheu o formulário, configurar o aviso de recebimento (mais abaixo).<br />
+Esta opção só é conservada por questões de compatibilidade ascendente. Ela não é exibida nos novos formulários.
+',
 	'traiter_email_option_destinataires_champ_form_explication' => 'Se um dos campos é um endereço de email ao qual você queira enviar o formulário, selecione o campo.',
 	'traiter_email_option_destinataires_champ_form_label' => 'Destinatário presente em um dos campos dos formulários',
-	'traiter_email_option_destinataires_explication' => 'Escolha o campo que corresponderá aos destinatários da mensagem.', # MODIF
+	'traiter_email_option_destinataires_explication' => 'Escolha o campo que corresponderá aos destinatários da mensagem.<br />
+Deve ser um campo de tipo «Destinatários» ou «Invisível», contendo o identificador numérico de um dos autores do site.',
 	'traiter_email_option_destinataires_label' => 'Destinatários',
 	'traiter_email_option_destinataires_plus_explication' => 'Uma lista de e-mails separados por vírgulas.',
 	'traiter_email_option_destinataires_plus_label' => 'Destinatários suplementares',
-	'traiter_email_option_destinataires_selon_champ_explication' => 'Permite indicar um ou mais destinatários em função do valor de um campo. Indique o campo, o seu valor, e o(s) respectivo(s) endereço(s) de e-mail (separados por uma vírgula), de acordo com o formato a seguir: "@selection_1@/choix1 : mail@exemplo.tld". Você pode indicar diversos testes, um por linha.', # MODIF
+	'traiter_email_option_destinataires_selon_champ_explication' => 'Permite indicar um ou mais destinatários em função do valor de um campo. Indique o campo, o seu valor, e o(s) respectivo(s) endereço(s) de e-mail (separados por uma vírgula), de acordo com o formato a seguir: "@selection_1@/choix1 : mail@exemplo.tld". Você pode indicar diversos testes, quebrando uma linha entre cada teste.',
 	'traiter_email_option_destinataires_selon_champ_label' => 'Destinatários em função de um campo',
 	'traiter_email_option_envoyeur_courriel_explication' => 'Escolha o campo que conterá o e-mail do remetente.',
 	'traiter_email_option_envoyeur_courriel_label' => 'E-mail do remetente',
@@ -231,42 +259,62 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'traiter_email_option_envoyeur_nom_label' => 'Nome do remetente',
 	'traiter_email_option_exclure_champs_email_explication' => 'Se desejar que certos campos não sejam exibidos nas mensagens enviadas (por exemplo, campos escondidos), basta declará-los aqui, separados por vírgula.',
 	'traiter_email_option_exclure_champs_email_label' => 'Campos a excluir do conteúdo da mensagem',
+	'traiter_email_option_masquer_champs_vide_label_case' => 'Mascarar os campos vazios',
 	'traiter_email_option_masquer_liens_label_case' => 'Ocultar os links de administração na mensagem.',
-	'traiter_email_option_nom_envoyeur_accuse_explication' => 'Indique o nome do remetente utilizado para enviar o aviso de recebimento. Por padrão, o destinatário será o remetente.', # MODIF
+	'traiter_email_option_masquer_valeurs_accuse_label_case' => 'Não enviar os valores da resposta no aviso de recebimento',
+	'traiter_email_option_modification_reponse_label_case' => 'Não enviar e-mail no caso de alteração de uma resposta já submetida.',
+	'traiter_email_option_nom_envoyeur_accuse_explication' => 'Indique o nome do remetente utilizado para enviar o aviso de recebimento. Se nada for informado, será usado o nome do site.',
 	'traiter_email_option_nom_envoyeur_accuse_label' => 'Nome do remetente do aviso de recebimento',
 	'traiter_email_option_pj_explication' => 'Se os documentos postados pesarem menos de _FORMIDABLE_TAILLE_MAX_FICHIERS_EMAIL Mio (constante modificável pelo webmaster).',
 	'traiter_email_option_pj_label' => 'Anexar os arquivos na mensagem',
 	'traiter_email_option_sujet_accuse_label' => 'Assunto do aviso de recebimento',
 	'traiter_email_option_sujet_explication' => 'Construa o assunto com ajuda de @raccourcis@. Se for deixando em branco, o assunto será construído automaticamente.',
-	'traiter_email_option_sujet_label' => 'Assunto da mensagem', # MODIF
-	'traiter_email_option_vrai_envoyeur_explication' => 'Alguns servidores SMTP não permitem a utilização de um e-mail arbitrário para o campo "From". Por isso, Formidable insere por padrão o e-mail do remetente no campo "Reply-To". Marce esta opção para inserir o e-mail no campo "From".', # MODIF
+	'traiter_email_option_sujet_label' => 'Assunto da mensagem',
+	'traiter_email_option_sujet_valeurs_brutes_label' => 'Valores brutos',
+	'traiter_email_option_sujet_valeurs_brutes_label_case' => 'O e-mail é destinado a um robô e não a um humano. No assunto da mensagem, inserir os valores brutos (compreensíveis pelos robôs) dos campos e não os valores interpretados (compreensíveis pelos humanos).',
+	'traiter_email_option_texte_accuse_explication' => 'Construa o texto com a ajuda dos @raccourcis@. Se você não informar nada, será a mensagem de retorno do formulário que será usada.',
+	'traiter_email_option_texte_accuse_label' => 'Texto do aviso de recebimento',
+	'traiter_email_option_vrai_envoyeur_explication' => 'Alguns servidores SMTP não permitem a utilização de um e-mail arbitrário no campo "From". Por isso, o Formidable insere por padrão o e-mail do remetente no campo "Reply-To", e usa o e-mail do webmaster no campo "From". Marque esta opção para inserir o e-mail no campo "From".',
 	'traiter_email_option_vrai_envoyeur_label' => 'Inserir o e-mail do remetente no campo "From"',
 	'traiter_email_page' => '<a href="@url@">A partir desta página</a>.',
 	'traiter_email_sujet' => '@nom@  enviou uma mensagem',
 	'traiter_email_sujet_accuse' => 'Obrigado pela sua resposta.',
-	'traiter_email_sujet_courriel_label' => 'Assunto da mensagem', # MODIF
+	'traiter_email_sujet_courriel_label' => 'Assunto da mensagem',
 	'traiter_email_titre' => 'Enviar por e-mail',
 	'traiter_email_url_enregistrement' => 'Você pode gerenciar as respostas <a href="@url@">nesta página</a>.',
 	'traiter_email_url_enregistrement_precis' => 'Você pode visualizar estar resposta <a href="@url@">nesta página</a>.',
 	'traiter_enregistrement_description' => 'Gravar os resultados do formulário na base de dados',
+	'traiter_enregistrement_divers' => 'Diversos',
+	'traiter_enregistrement_donnees_personelles' => 'Dados pessoais',
 	'traiter_enregistrement_erreur_base' => 'Aconteceu um erro técnico durante a gravação na base de dados',
 	'traiter_enregistrement_erreur_deja_repondu' => 'Você já respondeu a este formulário.',
 	'traiter_enregistrement_erreur_edition_reponse_inexistante' => 'A resposta a ser editada não foi encontrada.',
+	'traiter_enregistrement_identification_reponses' => 'Identificação das respostas',
 	'traiter_enregistrement_message_ok' => 'Obrigado. Suas respostas foram registradas corretamente',
-	'traiter_enregistrement_option_anonymiser_label' => 'Tornar o formulário anônimo', # MODIF
+	'traiter_enregistrement_option_anonymiser_label' => 'Não manter o identificador da pessoa conectada.',
 	'traiter_enregistrement_option_auteur' => 'Utilizar autores para os formulários',
 	'traiter_enregistrement_option_auteur_explication' => 'Atribuir um ou vários autores a um formulário. Se esta opção estiver ativada, somente os autores do formulário podem acessar esses dados.',
 	'traiter_enregistrement_option_effacement_delai_label' => 'Número de dias antes de apagar',
 	'traiter_enregistrement_option_effacement_label' => 'Excluir regularmente os resultados mais antigos',
-	'traiter_enregistrement_option_identification_explication' => 'Se as respostas são alteráveis, que procedimento usar preferencialmente para identificar a resposta a ser alterada?', # MODIF
-	'traiter_enregistrement_option_identification_label' => 'Identificação', # MODIF
+	'traiter_enregistrement_option_identification_explication' => 'Que procedimento usar preferencialmente para conhecer a resposta dada anteriormente pelo(a) usuário(a)?',
+	'traiter_enregistrement_option_identification_label' => 'Método de identificação',
+	'traiter_enregistrement_option_identification_variable_php_explication' => 'Precisa de uma identificação por PHP / Servidor não integrado nativamente ao SPIP.',
+	'traiter_enregistrement_option_identification_variable_php_label' => 'Variável PHP',
+	'traiter_enregistrement_option_invalider_explication' => 'Se as respostas a este formulário são usadas publicamente, você pode atualizar o cache a cada nova resposta.',
+	'traiter_enregistrement_option_invalider_label' => 'Atualizar o cache',
 	'traiter_enregistrement_option_ip_label' => 'Gravar os IPs (mascarados após um intervalo de segurança)',
 	'traiter_enregistrement_option_moderation_label' => 'Moderação',
 	'traiter_enregistrement_option_modifiable_explication' => 'Alterável: os visitantes podem modificar as suas respostas posteriormente.',
 	'traiter_enregistrement_option_modifiable_label' => 'Respostas alteráveis',
 	'traiter_enregistrement_option_multiple_explication' => 'Múltiplas: Uma mesma pessoa pode responder várias vezes.',
 	'traiter_enregistrement_option_multiple_label' => 'Respostas múltiplas',
+	'traiter_enregistrement_option_php_auth_user_label' => 'Variável servidor: PHP_AUTH_USER',
+	'traiter_enregistrement_option_remote_user_label' => 'Variável servidor: REMOTE_USER',
+	'traiter_enregistrement_option_resume_reponse_explication' => 'Esta cadeia será utilizada para exibir um resumo de cada resposta nas listas. Campos como <tt>@input_1@</tt> serão substituídos conforme indicado no lembrete  ao lado.',
+	'traiter_enregistrement_option_resume_reponse_label' => 'Exibição resumida da resposta',
+	'traiter_enregistrement_reglages_generaux' => 'Opções gerais',
 	'traiter_enregistrement_titre' => 'Gravar os resultados',
+	'traiter_enregistrement_unicite_champ' => 'Unicidade das respostas',
 
 	// V
 	'voir_exporter' => 'Exportar o formulário',