diff --git a/src/main/webapp/app/scanexam/voircopie/voircopie.component.ts b/src/main/webapp/app/scanexam/voircopie/voircopie.component.ts
index af8617f3..03e3d9ef 100644
--- a/src/main/webapp/app/scanexam/voircopie/voircopie.component.ts
+++ b/src/main/webapp/app/scanexam/voircopie/voircopie.component.ts
@@ -139,7 +139,6 @@ export class VoirCopieComponent implements OnInit, AfterViewInit {
constructor(
protected applicationConfigService: ApplicationConfigService,
private http: HttpClient,
-
public examService: ExamService,
public studentService: StudentService,
protected activatedRoute: ActivatedRoute,
@@ -331,6 +330,7 @@ export class VoirCopieComponent implements OnInit, AfterViewInit {
this.router.navigateByUrl('/copie/' + this.uuid + '/' + q);
}
}
+
@HostListener('window:keydown.shift.ArrowRight', ['$event'])
nextQuestion(event: KeyboardEvent): void {
event.preventDefault();
@@ -551,7 +551,13 @@ export class VoirCopieComponent implements OnInit, AfterViewInit {
width: finalW,
height: finalH,
})
- .subscribe(res => resolve({ i: new ImageData(new Uint8ClampedArray(res), finalW, finalH), w: finalW, h: finalH }));
+ .subscribe(res =>
+ resolve({
+ i: new ImageData(new Uint8ClampedArray(res), finalW, finalH),
+ w: finalW,
+ h: finalH,
+ }),
+ );
});
}
@@ -615,44 +621,28 @@ export class VoirCopieComponent implements OnInit, AfterViewInit {
const examName = this.exam!.name!;
const questionNumero = this.questions![0].numero!;
const url = window.location.href;
- const ten = `Dear Prof,%0D%0A
-My name is ${firsName} ${lastName},%0D%0A
-I have the exam ${examName}. Looking at the answer key for this question ${questionNumero} available here (${url}), I could not understand my mistake.%0D%0A
-%0D%0A%0D%0A
-///EXPLAIN YOUR PROBLEM///%0D%0A
-%0D%0A%0D%0A
-Thank you in advance for the time taken to answer this email.%0D%0A
-Best regards,%0D%0A
-${firsName}
-`;
- const tfr = `Bonjour,%0D%0A
-je m'appelle ${firsName} ${lastName},%0D%0A
-J'ai passé l'examen ${examName}. En regardant le corrigé de la question ${questionNumero} accessible ici (${url}), je ne comprends pas mon erreur.%0D%0A
-%0D%0A%0D%0A
-///EXPLIQUER VOTRE PROBLEME///%0D%0A
-%0D%0A%0D%0A
-Merci par avance pour le temps pris pour répondre à cet email.%0D%0A
-Cordialement,%0D%0A
-${firsName}
-`;
+ let emailSubject: string;
+ let emailBody: string;
if (this.translateService.currentLang === 'fr') {
- this.email =
- 'mailto:' +
- emails.filter(e => e !== undefined && e !== '').join(',') +
- "?subject=Retour sur l'examen " +
- this.exam!.name +
- '&body=' +
- tfr;
+ emailSubject = "Retour sur l'examen ";
+ emailBody = frenchMessageBody(firsName, lastName, examName, questionNumero, url);
+ } else if (this.translateService.currentLang === 'pt') {
+ emailSubject = 'Esclarecimentos sobre a avaliacao ';
+ emailBody = portugueseMessageBody(firsName, lastName, examName, questionNumero, url);
} else {
- this.email =
- 'mailto:' +
- emails.filter(e => e !== undefined && e !== '').join(',') +
- '?subject=Feedback on your ewam ' +
- this.exam!.name +
- '&body=' +
- ten;
+ emailSubject = 'Review of the on your exam ';
+ emailBody = englishMessageBody(firsName, lastName, examName, questionNumero, url);
}
+
+ this.email =
+ 'mailto:' +
+ emails.filter(e => e !== undefined && e !== '').join(',') +
+ '?subject=' +
+ emailSubject +
+ this.exam!.name +
+ '&body=' +
+ emailBody;
} else {
this.email = '';
}
@@ -688,3 +678,46 @@ ${firsName}
this.displayBasic = true;
}
}
+
+function englishMessageBody(firsName: string, lastName: string, examName: string, questionNumero: number, url: string) {
+ return `Dear Prof,%0D%0A
+My name is ${firsName} ${lastName},%0D%0A
+I have the exam ${examName}. Looking at the answer key for this question ${questionNumero} available here (${url}), I could not understand my mistake.%0D%0A
+%0D%0A%0D%0A
+///EXPLAIN YOUR PROBLEM///%0D%0A
+%0D%0A%0D%0A
+Thank you in advance for the time taken to answer this email.%0D%0A
+Best regards,%0D%0A
+${firsName}
+`;
+}
+
+function frenchMessageBody(firsName: string, lastName: string, examName: string, questionNumero: number, url: string) {
+ return `Bonjour,%0D%0A
+je m'appelle ${firsName} ${lastName},%0D%0A
+J'ai passé l'examen ${examName}. En regardant le corrigé de la question ${questionNumero} accessible ici (${url}), je ne comprends pas mon erreur.%0D%0A
+%0D%0A%0D%0A
+///EXPLIQUER VOTRE PROBLEME///%0D%0A
+%0D%0A%0D%0A
+Merci par avance pour le temps pris pour répondre à cet email.%0D%0A
+Cordialement,%0D%0A
+${firsName}
+`;
+}
+
+function portugueseMessageBody(firsName: string, lastName: string, examName: string, questionNumero: number, url: string) {
+ return `Caro professor, %0D%0A
+
+Eu me chamo ${firsName} ${lastName} e fiz a prova ${examName}.
+Após uma ampla e detalhada análise da correção da questão ${questionNumero}, disponível aqui (${url}), eu não consegui entender o meu erro.%0D%0A
+
+%0D%0A%0D%0A
+///EXPLIQUE SEU PROBLEMA///%0D%0A
+%0D%0A%0D%0A
+
+Desde já agradeço pelo tempo dedicado a responder este email.%0D%0A
+
+Atenciosamente,%0D%0A
+${firsName}
+`;
+}
diff --git a/src/main/webapp/i18n/fr/scanexammodule.json b/src/main/webapp/i18n/fr/scanexammodule.json
index cdca922a..a1011dde 100644
--- a/src/main/webapp/i18n/fr/scanexammodule.json
+++ b/src/main/webapp/i18n/fr/scanexammodule.json
@@ -14,11 +14,11 @@
"total": "Total",
"titleSummary": "État courant de la correction de l'examen :",
"errorExamId": "Numéro de l'examen invalide",
- "align": "Aligner scans",
+ "align": "Redresser scans",
"gobackexam": "Retourner à l'examen",
"gobackcorrection": "Retourner à la correction",
"gobackue": "Retourner au module",
- "alignscan": "Alignement des scans",
+ "alignscan": "Aligner les scans",
"alignscanalgo": "Algorithme d'alignement",
"alignscanbrpage": "Nombre de page à utiliser dans le template d'examen",
"selectmove": "Sélectionner et déplacer des formes/textes",
diff --git a/src/main/webapp/i18n/pt/exam.json b/src/main/webapp/i18n/pt/exam.json
index ebf63405..7ed37c7e 100644
--- a/src/main/webapp/i18n/pt/exam.json
+++ b/src/main/webapp/i18n/pt/exam.json
@@ -21,9 +21,9 @@
"name": "Nome da avaliação:",
"template": "Modelo de avaliação",
"idzone": "Idzone",
- "namezone": "Zona do sobrenome",
- "firstnamezone": "Zona do nome",
- "notezone": "Zona da nota",
+ "namezone": "Região do sobrenome",
+ "firstnamezone": "Região do nome",
+ "notezone": "Região da nota",
"scanfile": "Documento digitalizado dos estudantes",
"question": "Questão",
"course": "Disciplina"
diff --git a/src/main/webapp/i18n/pt/global.json b/src/main/webapp/i18n/pt/global.json
index d6094c79..ad6ea693 100644
--- a/src/main/webapp/i18n/pt/global.json
+++ b/src/main/webapp/i18n/pt/global.json
@@ -18,7 +18,7 @@
"finalResult": "Final Result",
"studentResponse": "Resposta ao Estudante",
"comments": "Comentários",
- "zone": "Zona",
+ "zone": "Região",
"questionType": "Tipo de Questão",
"textComment": "Texto de comentário",
"gradedComment": "Comentário com nota",
@@ -42,7 +42,7 @@
"configuration": "Configuração",
"logs": "Logs",
"apidocs": "API",
- "database": "Base de données",
+ "database": "Base de dados",
"jhipster-needle-menu-add-admin-element": "JHipster will add additional menu entries here (do not translate!)"
},
"language": "Idioma"
@@ -56,8 +56,8 @@
"newpassword.placeholder": "Nova senha",
"confirmpassword.label": "Confirmação da nova senha",
"confirmpassword.placeholder": "Confirmação da nova senha",
- "email.label": "Email",
- "email.placeholder": "Seu email"
+ "email.label": "E-mail",
+ "email.placeholder": "Seu e-mail"
},
"messages": {
"info": {
diff --git a/src/main/webapp/i18n/pt/scanexammodule.json b/src/main/webapp/i18n/pt/scanexammodule.json
index 9fac65f3..b38f6e05 100644
--- a/src/main/webapp/i18n/pt/scanexammodule.json
+++ b/src/main/webapp/i18n/pt/scanexammodule.json
@@ -22,13 +22,13 @@
"alignscanalgo": "Algoritmo de alinhamento",
"alignscanbrpage": "Quantidade de páginas no modelo de avaliação",
"selectmove": "Selecionar e mover formas/textos",
- "erase": "Exclua a forma/texto clicando (Se você excluir uma pergunta, isto excluirá também todas as correções desta pergunta. ⚠️ Não há como voltar atrás!)",
+ "erase": "Excluir região ou texto (Se você excluir uma pergunta, isto excluirá também todas as correções desta pergunta. ⚠️ Não há como voltar atrás!)",
"nom": "SOBRENOME",
"prenom": "NOME",
- "ine": "N° Matrícula",
- "question": "QUESTÃO",
+ "ine": "N° Matrícula (clique e arraste)",
+ "question": "Definir uma nova região de resposta (clique e arraste)",
"freedrawing": "Desenho livre",
- "clearcanvas": "Apagar a lona, excluir todas as formas e textos.",
+ "clearcanvas": "Apagar todas as anotações, excluir todas as regiões e textos.",
"bindcopies": "Associar estudantes e provas",
"assistance": "Assistência",
"assistanceTooltip": "Habilita a IA para detecção automática de nomes",
@@ -148,9 +148,9 @@
"mailbody": "Corpo do e-mail :",
"mailtooltip": "as variáveis ${firstname}, ${url}, ${lastname} e ${nota} podem ser usadas no corpo do e-mail",
"mailabibody": "Corpo do e-mail para as ABI :",
- "envoiemail": "Envia e-mail aos estudantes",
+ "envoiemail": "Enviar e-mail aos estudantes",
"resultatstudents": "Resultado dos estudantes",
- "envoimailstudent": "Envia e-mail aos estudantes",
+ "envoimailstudent": "Enviar e-mail aos estudantes",
"exportexcel": "Exportação Excel",
"exportcsv": "Exportação CSV",
"showstat": "Ver as estatísticas",
@@ -257,7 +257,7 @@
"removeallbinding": "Excluir todas as associações",
"removeallbindingtooltip": "⚠️ somente se a correção ainda não começou",
"noneval": "não avaliada",
- "voir": "Reverificar",
+ "voir": "Verificar",
"voirtooltip": "Acesso à visualização correção",
"partialalignscan": "Seleção de páginas",
"partialalignscanstartpage": "primeira página",
@@ -346,8 +346,8 @@
"accessdocumentation": "Abertura da documentação",
"exportpdfok": "Exportação bem-sucedida",
"exportpdfokdetails": "Todas as provas foram exportadas em formato PDF (se não recebeu nada, habilte as janelas popup no navegador)",
- "envoiabi": "Envia um e-mail aos ausentes:",
- "envoipdf": "Envia a prova anotada em formato PDF:",
+ "envoiabi": "Enviar um e-mail aos ausentes:",
+ "envoipdf": "Enviar a prova anotada em formato PDF:",
"lienelevepdf": "Link da prova anotada",
"pdf": "PDF",
"reloadscan": "Recarregar um novo documento digitalizado (substituição ou fusão)",
@@ -377,9 +377,9 @@
"cleancachesessionend": " para limpar a memória tampão deste navegador",
"cleancachesessiondone": "A limpeza da memória tampão foi efetuada, tente se conectar novamente",
"libelle": "Título da questão",
- "libelletooltip": "Attribui um título a uma pergunta",
+ "libelletooltip": "Atribui um título a uma pergunta",
"gotolistquestion": "Retornar à lista de questões (resumo do estado da correção)",
- "sendirectemail": "Envia um email com os resultados a este estudante",
+ "sendirectemail": "Enviar um e-mail com os resultados a este estudante",
"envoimailpersonal": "Enviar Email",
"concatenation": "Fusão (concatenação) com o PDF carregado anteriormente:",
"concatenationTooltip": "Permite escolher entre fundir as provas digitalizadas com as do novo documento, ou substitui-las totalmente pelas do novo documento(se selecionado, quer dizer concatenação)",
@@ -394,22 +394,22 @@
"validaterecognizedTooltip": "Associa o estudante reconhecido e esta prova. Esta ação é acessível pelo atalho de teclado Ctrl + Enter",
"gotonextnonboundsheet": "Ir à próxima prova não associada a um estudante",
"gotopreviousnonboundsheet": "Ir à prova anterior não associada a um estudante",
- "numeroTooltip": "Número da questão para esta zona. Várias zonas podem ser associadas ao menos número",
+ "numeroTooltip": "Número da questão para esta região. Várias regiões podem ser associadas à mesma questão",
"questionpointtooltip": "Quantidade de pontos associados a esta questão",
"typequestionTooltip": "Tipo de questão (QME para as questões de múltipla escolha, de tipo casa de seleção ou manual para as questões que serão avaliadas manualmente pelo corretor",
- "manualgradetypequestionTooltip": "Quando uma questão é avaliada manualmente pelo corretor, este último pode ou atribuir uma nota exata para uma resposta, ou por comentários que atribuem ou retiram pontos. O interesse deste tipo de avaliação é de poder ponderar as notas atribuídas a um comentário durante a correção e atualizar dinamicamente sua escala",
+ "manualgradetypequestionTooltip": "Quando um corretor corrige manualmente uma questão, ele pode atribuir uma nota exata (direta), usar comentários positivos e negativos, para adicionar ou retirar pontos, respectivamente.
O corretor pode também fazer uma correção híbrida, onde ele atribui a cada comentário uma porcentagem positiva ou negativa. O interesse deste tipo de correção é poder ponderar as notas atribuídas a um comentário durante a correção e modificar a escala dinamicamente.",
"nbrepageintemplateTooltip": "Quantidade de páginas por provas. (Este valor é calculado automaticamente a partir da quantidade de páginas do modelo.) ⚠️ A quantidade de páginas digitalizadas deve ser exatamente igual à quantidade de provas digitalizadas multiplicada pela quantidade de páginas do modelo)",
"showmappingTooltip": "Ver os pontos de interesse que foram usados para fazer o alinhamento. Isso geralmente o ajuda a entender por que os problemas durante a digitalização das cópias causaram dificuldades durante o alinhamento das cópias.",
"showLayoutOptionsTooltip": "Modificar certas opções associadas ao algorítmo de detecção dos nomes nas provas",
"showPaginatorTooltip": "Navega entre as provas digitalizadas para atribui-las a um ou mais estudantes desta disciplina",
"showFullPageTooltip": "Visualiza a prova digitalizada (numa janela modal)",
- "factorTooltip": "Aumentar a tamanho das zonas (nome, sobrenome, matrícula)",
+ "factorTooltip": "Aumentar a tamanho das regiões (nome, sobrenome, matrícula)",
"gotonextnonboundsheetTooltip": "Associa este estudante reconhecido a esta prova",
"showLayoutOptionsCorrectionTooltip": "Modifica certas opções associadas à correção de provas",
"showPaginatorQuestionCorrectionTooltip": "Navegar entre as questões desta prova. Ctrl + ⬇️ (Mac: Cmd + ⬇️) ou Ctrl + ⬆ (Mac: Cmd + ⬆)",
"showPaginatorCopieCorrectionTooltip": "Navegar entre as provas para esta mesma questão. Ctrl + ⬅️ (Mac: Cmd + ⬅️) ou Ctrl + ➡️ (Mac: Cmd + ➡️)",
"noAlignTooltip": "Trabalhar com uma prova não alinhada (útil quando o processo de alinhamento deu errado)",
- "factorQuestionTooltip": "Permite aumentar a tamanho das zonas de resposta para esta questão (útil se o estudante escreveu fora das zonas)",
+ "factorQuestionTooltip": "Permite aumentar a tamanho das regiões de resposta para esta questão (útil se o estudante escrever fora das regiões)",
"shiftPageQuestionTooltip": "Permite deslocar as páginas (útil se faltar uma página ou se uma folha se inseriu durante a digitalização). ⚠️ É melhor e mais confortável limpar o PDF no momento do carregamento para visualizar as vinhetas",
"starAnswerTooltip": "Permite marcar esta resposta como uma excelente resposta. A resposta será então usada para criar um gabarito. Várias respostas podem ser marcadas como excelentes",
"worstAnswerTooltip": "Permite marcar esta resposta como péssima, para encontrá-la rapidamente durante a correção na disciplina por exemplo, para explicar por que esta resposta estava errada",
@@ -420,16 +420,16 @@
"nbreClusterTooltip": "Fixe o quantidade de clusters visés pelo algorítmo de clustering",
"showresultLienProfTooltip": "Permite retornar à visualização de correção para este estudante",
"showresultLienEleveTooltip": "Visualização do ponto de vista do aluno após envio da correção (também é útil para gérer a envio dos resultados sem passar pelo plateforme",
- "showresultLienPdfTooltip": "Permite visualizar o pdf anotado que será généré se voce choisissez de joindre este pdf à a email de resultado",
+ "showresultLienPdfTooltip": "Permite visualizar o pdf anotado que será gerado se voce escolher de anexar este pdf ao e-mail de retorno",
"envoiemailTooltip": "Permite configurar e em seguida enviar um email aos estudantes com o resultado desta avaliação",
"exportExcelTooltip": "Permite d'exportar o tabela abaixo ao formato Excel. Esta exportação contém também os dados brutos de cada questão.",
"exportCSVTooltip": "Permite d'exportar o tabela abaixo ao formato CSV. Esta exportação contém também os dados brutos de cada questão.",
"voirStatistiquesTooltip": "Permite d'obtenir uma visualização offrant um certain quantidade de estatísticas para este avaliação. Estatísticas, por estudante, por questão, etc.",
"voirReponsesRepresentativeTooltip": "Permite listar as respostas marcadas como excelente ou como péssima para cada uma dos questões",
- "envoiemailPdfTooltip": "Se selecionado, um pdf anotado da prova da estudante será jointe a este e-mail. ⚠️ o tamanho de cada email será maior.",
+ "envoiemailPdfTooltip": "Se selecionado, um pdf anotado da prova da estudante será jointe a este e-mail. ⚠️ o tamanho de cada e-mail será maior.",
"envoiemailAbsentTooltip": "Se selecionado, um e-mail será enviado aos estudantes ausentes nesta avaliação.",
"envoiemailActionTooltip": "Inicia o envio de e-mail à cada estudante, usando o corpo do message acima",
- "statToggleValueTooltip": "Permite mudar entre as valeurs brutos ou as valeurs normalizados",
+ "statToggleValueTooltip": "Permite mudar entre os valores brutos ou os valores normalizados",
"voirCopieStatistiquesTooltip": "Permite retornar para a visualização correção para este estudante",
"voirCopieFullPageTooltip": "Permite visualizar a prova digitalizada para este estudante (numa janela modal)",
"pasdepageassociee": "Nenhuma prova para associar",
@@ -440,7 +440,7 @@
"nbreCore": "Quantidade de núcleos usados",
"nbreCoreTooltip": "Quanto mais núcleos forem usados durante o alinhamento, mais memória será usada. Reduza a quantidade de núcloes se esta etapa solicitar demais o nevagador",
"showAlignementOptionsTooltip": "Permite modificar certas opções associadas ao algorítmo de alinhamento das provas",
- "editCommentTooltip": "Edição dos valeurs deste comentário (mesmo se o titulo ou a descrição não foram definidos anteriormente)",
+ "editCommentTooltip": "Edição dos valores deste comentário (mesmo se o titulo ou a descrição não foram definidos anteriormente)",
"epaisseur": "Espessura do traço : ",
"epaisseurTooltip": "Permite ajustar a espessura do traço",
"fontsize": "Tamanho da fonte: ",
@@ -453,7 +453,7 @@
"gotoCorrectionTooltipView": "Visualizar a correção, somente para professores",
"editquestionTooltip": "Permite a edição das propriedades da questão para atualizar o escala",
"firsthelpTitle": "Algumas dicas",
- "firsthelpdetail": "Esta vista lhe dá acesso a 6 etapas importantes do processo de avaliação.
De modo geral, se houver um problema nesse ponto, duas causas são possíveis: ou a memória tampão local foi corrompida,ou a quantidade de provas associadas não corresponde à razão quantidade de páginas na memória tampão / quantidade de páginas no modelo. É possível visualizar o estado da memória tampão clicando no ícone informação na parte superior desta página.
", + "firsthelpdetail": "Esta vista lhe dá acesso a 6 etapas importantes do processo de avaliação.De modo geral, se houver um problema nesse ponto, duas causas são possíveis: ou a memória tampão local foi corrompida,ou a quantidade de provas associadas não corresponde à razão quantidade de páginas na memória tampão / quantidade de páginas no modelo. É possível visualizar o estado da memória tampão clicando no ícone informação na parte superior desta página.
", "info": "Informação sobre a memória tampão da avaliação", "infodetail": "Mostra informações sobre a memória tampão da avaliação para entender por quê não é possível começar a correção", "showInfoExamTitle": "Informações sobre o estado da memória tampão desta avaliação", @@ -526,7 +526,7 @@ "suppressioncopie": "Exclusão prova {{page}}", "suppressioncopieTooltip": "Limpa todas as páginas desta prova da memória tampão. É possível voltar atrás, recomeçando a análise a partir do PDF", "rotationcopie": "Giro prova {{page}}", - "rotationcopieTooltip": "Esta ação permet de girar em 180° todas as páginas desta prova da memória tampão", + "rotationcopieTooltip": "Gira em 180° todas as páginas desta prova que estão na memória tampão", "moreoperation": "Operações suplementares", "moreoperationTooltip": "Esse botão permite que você execute ações mais complexas (em lotes) em imagens PDF (exclusão por número de página, rotação por número de página, etc.).", "removeallperpage": "Exclusão por número de página de cada prova",