From 1aa21c376240a06aacea3bb9b01389817d01ebc4 Mon Sep 17 00:00:00 2001 From: bgamard Date: Sun, 19 Mar 2023 14:28:22 +0100 Subject: [PATCH 1/2] bump dependencies --- docs-core/pom.xml | 9 +-- .../docs/core/service/InboxService.java | 2 +- .../sismics/docs/core/util/DirectoryUtil.java | 2 +- .../com/sismics/docs/core/util/FileUtil.java | 2 +- .../com/sismics/util/log4j/LogCriteria.java | 2 +- docs-web-common/pom.xml | 11 +-- .../com/sismics/rest/util/ValidationUtil.java | 2 +- docs-web/pom.xml | 15 +--- .../docs/rest/resource/AppResource.java | 2 +- .../docs/rest/resource/DocumentResource.java | 2 +- .../docs/rest/resource/TagResource.java | 2 +- .../docs/rest/resource/UserResource.java | 2 +- .../com/sismics/docs/rest/TestSecurity.java | 2 +- pom.xml | 74 ++++++++----------- 14 files changed, 47 insertions(+), 82 deletions(-) diff --git a/docs-core/pom.xml b/docs-core/pom.xml index 9911cd33..eac646db 100644 --- a/docs-core/pom.xml +++ b/docs-core/pom.xml @@ -48,8 +48,8 @@ - commons-lang - commons-lang + org.apache.commons + commons-lang3 @@ -122,11 +122,6 @@ lucene-highlighter - - com.sun.mail - javax.mail - - com.squareup.okhttp3 okhttp diff --git a/docs-core/src/main/java/com/sismics/docs/core/service/InboxService.java b/docs-core/src/main/java/com/sismics/docs/core/service/InboxService.java index 1b463266..7b20dde1 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/service/InboxService.java +++ b/docs-core/src/main/java/com/sismics/docs/core/service/InboxService.java @@ -18,7 +18,7 @@ import com.sismics.docs.core.util.TransactionUtil; import com.sismics.docs.core.util.jpa.SortCriteria; import com.sismics.util.EmailUtil; import com.sismics.util.context.ThreadLocalContext; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/docs-core/src/main/java/com/sismics/docs/core/util/DirectoryUtil.java b/docs-core/src/main/java/com/sismics/docs/core/util/DirectoryUtil.java index be941c28..1c335ed6 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/util/DirectoryUtil.java +++ b/docs-core/src/main/java/com/sismics/docs/core/util/DirectoryUtil.java @@ -5,7 +5,7 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import com.sismics.util.EnvironmentUtil; diff --git a/docs-core/src/main/java/com/sismics/docs/core/util/FileUtil.java b/docs-core/src/main/java/com/sismics/docs/core/util/FileUtil.java index 7652c743..0598b729 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/util/FileUtil.java +++ b/docs-core/src/main/java/com/sismics/docs/core/util/FileUtil.java @@ -16,7 +16,7 @@ import com.sismics.util.Scalr; import com.sismics.util.context.ThreadLocalContext; import com.sismics.util.io.InputStreamReaderThread; import com.sismics.util.mime.MimeTypeUtil; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/docs-core/src/main/java/com/sismics/util/log4j/LogCriteria.java b/docs-core/src/main/java/com/sismics/util/log4j/LogCriteria.java index d8e4a90e..c28a31a6 100644 --- a/docs-core/src/main/java/com/sismics/util/log4j/LogCriteria.java +++ b/docs-core/src/main/java/com/sismics/util/log4j/LogCriteria.java @@ -1,6 +1,6 @@ package com.sismics.util.log4j; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Level; /** diff --git a/docs-web-common/pom.xml b/docs-web-common/pom.xml index 12149157..be1aadcf 100644 --- a/docs-web-common/pom.xml +++ b/docs-web-common/pom.xml @@ -34,8 +34,8 @@ - commons-lang - commons-lang + org.apache.commons + commons-lang3 @@ -53,17 +53,12 @@ log4j - - commons-dbcp - commons-dbcp - - javax.servlet javax.servlet-api provided - + joda-time joda-time diff --git a/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java b/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java index 0c5a279d..a1fc6831 100644 --- a/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java +++ b/docs-web-common/src/main/java/com/sismics/rest/util/ValidationUtil.java @@ -2,7 +2,7 @@ package com.sismics.rest.util; import com.google.common.base.Strings; import com.sismics.rest.exception.ClientException; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import java.text.MessageFormat; diff --git a/docs-web/pom.xml b/docs-web/pom.xml index fa9ffc33..41c77194 100644 --- a/docs-web/pom.xml +++ b/docs-web/pom.xml @@ -49,8 +49,8 @@ - commons-lang - commons-lang + org.apache.commons + commons-lang3 @@ -68,17 +68,6 @@ log4j - - commons-dbcp - commons-dbcp - - - - javax.servlet - javax.servlet-api - provided - - joda-time joda-time diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java index 2f397b1e..f64b2d2b 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java @@ -27,7 +27,7 @@ import com.sismics.util.context.ThreadLocalContext; import com.sismics.util.log4j.LogCriteria; import com.sismics.util.log4j.LogEntry; import com.sismics.util.log4j.MemoryAppender; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Appender; import org.apache.log4j.Level; import org.slf4j.Logger; diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java index 78f8751f..43742756 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/DocumentResource.java @@ -34,7 +34,7 @@ import com.sismics.util.JsonUtil; import com.sismics.util.context.ThreadLocalContext; import com.sismics.util.mime.MimeType; import org.apache.commons.collections4.CollectionUtils; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.glassfish.jersey.media.multipart.FormDataBodyPart; import org.glassfish.jersey.media.multipart.FormDataParam; import org.joda.time.DateTime; diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java index 92485097..f44283e1 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/TagResource.java @@ -14,7 +14,7 @@ import com.sismics.rest.exception.ClientException; import com.sismics.rest.exception.ForbiddenClientException; import com.sismics.rest.util.AclUtil; import com.sismics.rest.util.ValidationUtil; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import javax.json.Json; import javax.json.JsonArrayBuilder; diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java index 23301dd7..87dfe962 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java @@ -30,7 +30,7 @@ import com.sismics.util.context.ThreadLocalContext; import com.sismics.util.filter.TokenBasedSecurityFilter; import com.sismics.util.totp.GoogleAuthenticator; import com.sismics.util.totp.GoogleAuthenticatorKey; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import javax.json.Json; import javax.json.JsonArrayBuilder; diff --git a/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java b/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java index 602415a3..07001614 100644 --- a/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java +++ b/docs-web/src/test/java/com/sismics/docs/rest/TestSecurity.java @@ -9,7 +9,7 @@ import javax.ws.rs.core.Response.Status; import com.sismics.util.filter.HeaderBasedSecurityFilter; import org.junit.Assert; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.StringUtils; import org.junit.Test; import com.sismics.util.filter.TokenBasedSecurityFilter; diff --git a/pom.xml b/pom.xml index 5ba6666b..91a4510c 100644 --- a/pom.xml +++ b/pom.xml @@ -16,51 +16,49 @@ UTF-8 - 1.18 - 2.6 - 2.6 + 1.22 + 3.12.0 + 2.11.0 1.5 - 2.3.30 - 1.4 - 30.1-jre + 2.3.32 + 31.1-jre 1.2.17 1.7.30 1.7.30 1.7.30 - 4.13.1 - 1.4.199 - 2.33 + 4.13.2 + 1.4.200 + 2.39 1.1.4 - 0.9.0 + 0.10.2 8.7.0 4.2 - 2.0.22 - 1.68 - 2.10.9 - 5.4.27.Final - 4.0.1 - 2.0.2 - 5.6.0 - 3.6.2 + 2.0.27 + 1.70 + 2.12.2 + 5.6.15.Final + 3.1.0 + 2.0.4 + 5.13.0 + 3.9.4 2.0 1.4.0 - 42.2.18 + 42.6.0 1.2 - 1.5.8 - 1.6.2 - 1.13.1 - 4.9.0 - 2.0.1 + 1.6.14 + 1.15.4 + 4.10.0 + 2.1.2 9.4.51.v20230217 9.4.51.v20230217 9.4.51.v20230217 - 3.0.0 - 3.2.0 - 3.3.1 - 3.0.0-M5 + 3.1.0 + 3.3.0 + 3.3.2 + 3.0.0 9.4.51.v20230217 @@ -176,7 +174,7 @@ javax.servlet-api ${javax.servlet.javax.servlet-api.version} - + org.apache.commons commons-compress @@ -184,9 +182,9 @@ - commons-lang - commons-lang - ${commons-lang.commons-lang.version} + org.apache.commons + commons-lang3 + ${org.apache.commons.commons-lang3.version} @@ -346,12 +344,6 @@ ${org.hibernate.hibernate.version} - - commons-dbcp - commons-dbcp - ${commons-dbcp.version} - - org.freemarker freemarker @@ -448,12 +440,6 @@ ${com.icegreen.greenmail.version} - - com.sun.mail - javax.mail - ${com.sun.mail.javax.mail.version} - - org.postgresql postgresql From b561eaee6d433c9d77c1c5447fb5eb943d97a5b8 Mon Sep 17 00:00:00 2001 From: bgamard Date: Mon, 20 Mar 2023 20:20:52 +0100 Subject: [PATCH 2/2] portuguese translation --- docs-web/src/main/webapp/src/app/docs/app.js | 3 +- docs-web/src/main/webapp/src/app/share/app.js | 3 +- docs-web/src/main/webapp/src/index.html | 2 + .../webapp/src/locale/angular-locale_pt.js | 125 ++++ docs-web/src/main/webapp/src/locale/pt.json | 639 ++++++++++++++++++ docs-web/src/main/webapp/src/share.html | 2 + 6 files changed, 772 insertions(+), 2 deletions(-) create mode 100644 docs-web/src/main/webapp/src/locale/angular-locale_pt.js create mode 100644 docs-web/src/main/webapp/src/locale/pt.json diff --git a/docs-web/src/main/webapp/src/app/docs/app.js b/docs-web/src/main/webapp/src/app/docs/app.js index c4de5660..d2835ad3 100644 --- a/docs-web/src/main/webapp/src/app/docs/app.js +++ b/docs-web/src/main/webapp/src/app/docs/app.js @@ -429,9 +429,10 @@ angular.module('docs', prefix: 'locale/', suffix: '.json?@build.date@' }) - .registerAvailableLanguageKeys(['en', 'es', 'fr', 'de', 'el', 'ru', 'it', 'pl', 'zh_CN', 'zh_TW'], { + .registerAvailableLanguageKeys(['en', 'es', 'pt', 'fr', 'de', 'el', 'ru', 'it', 'pl', 'zh_CN', 'zh_TW'], { 'en_*': 'en', 'es_*': 'es', + 'pt_*': 'pt', 'fr_*': 'fr', 'de_*': 'de', 'el_*': 'el', diff --git a/docs-web/src/main/webapp/src/app/share/app.js b/docs-web/src/main/webapp/src/app/share/app.js index 529d1c3b..d45229fb 100644 --- a/docs-web/src/main/webapp/src/app/share/app.js +++ b/docs-web/src/main/webapp/src/app/share/app.js @@ -61,9 +61,10 @@ angular.module('share', prefix: 'locale/', suffix: '.json?@build.date@' }) - .registerAvailableLanguageKeys(['en', 'es', 'fr', 'de', 'el', 'ru', 'it', 'pl', 'zh_CN', 'zh_TW'], { + .registerAvailableLanguageKeys(['en', 'es', 'pt', 'fr', 'de', 'el', 'ru', 'it', 'pl', 'zh_CN', 'zh_TW'], { 'en_*': 'en', 'es_*': 'es', + 'pt_*': 'pt', 'fr_*': 'fr', 'de_*': 'de', 'el_*': 'el', diff --git a/docs-web/src/main/webapp/src/index.html b/docs-web/src/main/webapp/src/index.html index cc9108dd..0a16863c 100644 --- a/docs-web/src/main/webapp/src/index.html +++ b/docs-web/src/main/webapp/src/index.html @@ -186,6 +186,7 @@ Deutsch Italiano Española + Português Ελληνικά Pусский Polski @@ -200,6 +201,7 @@
  • Deutsch
  • Italiano
  • Española
  • +
  • Português
  • Ελληνικά
  • Pусский
  • Polski
  • diff --git a/docs-web/src/main/webapp/src/locale/angular-locale_pt.js b/docs-web/src/main/webapp/src/locale/angular-locale_pt.js new file mode 100644 index 00000000..b7c915ce --- /dev/null +++ b/docs-web/src/main/webapp/src/locale/angular-locale_pt.js @@ -0,0 +1,125 @@ +'use strict'; +angular.module("ngLocale", [], ["$provide", function($provide) { +var PLURAL_CATEGORY = {ZERO: "zero", ONE: "one", TWO: "two", FEW: "few", MANY: "many", OTHER: "other"}; +$provide.value("$locale", { + "DATETIME_FORMATS": { + "AMPMS": [ + "AM", + "PM" + ], + "DAY": [ + "domingo", + "segunda-feira", + "ter\u00e7a-feira", + "quarta-feira", + "quinta-feira", + "sexta-feira", + "s\u00e1bado" + ], + "ERANAMES": [ + "antes de Cristo", + "depois de Cristo" + ], + "ERAS": [ + "a.C.", + "d.C." + ], + "FIRSTDAYOFWEEK": 6, + "MONTH": [ + "janeiro", + "fevereiro", + "mar\u00e7o", + "abril", + "maio", + "junho", + "julho", + "agosto", + "setembro", + "outubro", + "novembro", + "dezembro" + ], + "SHORTDAY": [ + "dom", + "seg", + "ter", + "qua", + "qui", + "sex", + "s\u00e1b" + ], + "SHORTMONTH": [ + "jan", + "fev", + "mar", + "abr", + "mai", + "jun", + "jul", + "ago", + "set", + "out", + "nov", + "dez" + ], + "STANDALONEMONTH": [ + "janeiro", + "fevereiro", + "mar\u00e7o", + "abril", + "maio", + "junho", + "julho", + "agosto", + "setembro", + "outubro", + "novembro", + "dezembro" + ], + "WEEKENDRANGE": [ + 5, + 6 + ], + "fullDate": "EEEE, d 'de' MMMM 'de' y", + "longDate": "d 'de' MMMM 'de' y", + "medium": "d 'de' MMM 'de' y HH:mm:ss", + "mediumDate": "d 'de' MMM 'de' y", + "mediumTime": "HH:mm:ss", + "short": "dd/MM/y HH:mm", + "shortDate": "dd/MM/y", + "shortTime": "HH:mm" + }, + "NUMBER_FORMATS": { + "CURRENCY_SYM": "R$", + "DECIMAL_SEP": ",", + "GROUP_SEP": ".", + "PATTERNS": [ + { + "gSize": 3, + "lgSize": 3, + "maxFrac": 3, + "minFrac": 0, + "minInt": 1, + "negPre": "-", + "negSuf": "", + "posPre": "", + "posSuf": "" + }, + { + "gSize": 3, + "lgSize": 3, + "maxFrac": 2, + "minFrac": 2, + "minInt": 1, + "negPre": "-\u00a4", + "negSuf": "", + "posPre": "\u00a4", + "posSuf": "" + } + ] + }, + "id": "pt", + "localeID": "pt", + "pluralCat": function(n, opt_precision) { var i = n | 0; if (i >= 0 && i <= 1) { return PLURAL_CATEGORY.ONE; } return PLURAL_CATEGORY.OTHER;} +}); +}]); diff --git a/docs-web/src/main/webapp/src/locale/pt.json b/docs-web/src/main/webapp/src/locale/pt.json new file mode 100644 index 00000000..e4dc91c8 --- /dev/null +++ b/docs-web/src/main/webapp/src/locale/pt.json @@ -0,0 +1,639 @@ +{ + "login": { + "username": "Nome de utilizador", + "password": "Palavra-passe", + "validation_code_required": "É necessário um código de validação", + "validation_code_title": "Ativou a autenticação de dois fatores na sua conta. Por favor insira um código de validação gerado pela aplicação de telemóvel que configurou.", + "validation_code": "Código de validação", + "remember_me": "Lembrar-me", + "submit": "Iniciar sessão", + "login_as_guest": "Iniciar sessão como convidado", + "login_failed_title": "Falha no início de sessão", + "login_failed_message": "Nome de utilizador ou palavra-passe inválidos", + "password_lost_btn": "Perdeu a palavra-passe?", + "password_lost_sent_title": "Email de recuperação de palavra-passe enviado", + "password_lost_sent_message": "Foi enviado um email para {{ username }} para redefinir a sua palavra-passe", + "password_lost_error_title": "Erro na recuperação de palavra-passe", + "password_lost_error_message": "Não foi possível enviar um email de recuperação de palavra-passe. Por favor contacte o seu administrador para uma redefinição manual" + }, + "passwordlost": { + "title": "Perdeu a palavra-passe", + "message": "Por favor insira o seu nome de utilizador para receber um link de redefinição de palavra-passe. Se não se lembrar do seu nome de utilizador, por favor contacte o seu administrador", + "submit": "Redefinir a minha palavra-passe" + }, + "passwordreset": { + "message": "Por favor insira uma nova palavra-passe", + "submit": "Alterar a minha palavra-passe", + "error_title": "Erro ao alterar a sua palavra-passe", + "error_message": "O seu pedido de recuperação de palavra-passe expirou. Por favor peça um novo na página de início de sessão" + }, + "index": { + "toggle_navigation": "Alternar navegação", + "nav_documents": "Documentos", + "nav_tags": "Tags", + "nav_users_groups": "Utilizadores e Grupos", + "error_info": "{{ count }} novo erro{{ count > 1 ? 's' : '' }}", + "logged_as": "Sessão iniciada como {{ username }}", + "nav_settings": "Definições", + "logout": "Terminar sessão", + "global_quota_warning": "Aviso! Quota global quase atingida em {{ current | number: 0 }}MB ({{ percent | number: 1 }}%) usados em {{ total | number: 0 }}MB" + }, + "document": { + "navigation_up": "Ir para cima", + "toggle_navigation": "Alternar navegação da pasta", + "display_mode_list": "Mostrar documentos em lista", + "display_mode_grid": "Mostrar documentos em grelha", + "search_simple": "Pesquisa simples", + "search_fulltext": "Pesquisa de texto completo", + "search_creator": "Criador", + "search_language": "Idioma", + "search_before_date": "Criado antes desta data", + "search_after_date": "Criado depois desta data", + "search_before_update_date": "Atualizado antes desta data", + "search_after_update_date": "Atualizado depois desta data", + "search_tags": "Etiquetas", + "search_shared": "Apenas documentos partilhados", + "search_workflow": "Fluxo de trabalho atribuído a mim", + "search_clear": "Limpar", + "any_language": "Qualquer idioma", + "add_document": "Adicionar um documento", + "import_eml": "Importar de um e-mail (formato EML)", + "tags": "Etiquetas", + "no_tags": "Sem etiquetas", + "no_documents": "Não há documentos na base de dados", + "search": "Pesquisar", + "search_empty": "Sem correspondências para \"{{ search }}\"", + "shared": "Partilhado", + "current_step_name": "Passo atual", + "title": "Título", + "description": "Descrição", + "contributors": "Contribuidores", + "language": "Idioma", + "creation_date": "Data de criação", + "subject": "Assunto", + "identifier": "Identificador", + "publisher": "Editor", + "format": "Formato", + "source": "Fonte", + "type": "Tipo", + "coverage": "Cobertura", + "rights": "Direitos", + "relations": "Relações", + "page_size": "Tamanho da página", + "page_size_10": "10 por página", + "page_size_20": "20 por página", + "page_size_30": "30 por página", + "upgrade_quota": "Para atualizar a sua quota, peça ao seu administrador", + "quota": "{{ current | number: 0 }}MB ({{ percent | number: 1 }}%) utilizados em {{ total | number: 0 }}MB", + "count": "{{ count }} documento{{ count > 1 ? 's' : '' }} encontrado{{ count > 1 ? 's' : '' }}", + "last_updated": "Última atualização {{ date | timeAgo: dateFormat }}", + "view": { + "delete_comment_title": "Apagar comentário", + "delete_comment_message": "Tem a certeza que pretende apagar este comentário?", + "delete_document_title": "Apagar documento", + "delete_document_message": "Tem a certeza que pretende apagar este documento?", + "shared_document_title": "Documento partilhado", + "shared_document_message": "Pode partilhar este documento dando este link. Note que todas as pessoas que tiverem este link podem ver o documento.
    ", + "not_found": "Documento não encontrado", + "forbidden": "Acesso proibido", + "download_files": "Transferir ficheiros", + "export_pdf": "Exportar para PDF", + "by_creator": "por", + "comments": "Comentários", + "no_comments": "Ainda não existem comentários neste documento", + "add_comment": "Adicionar um comentário", + "error_loading_comments": "Erro ao carregar os comentários", + "workflow_current": "Etapa atual do fluxo de trabalho", + "workflow_comment": "Adicionar um comentário ao fluxo de trabalho", + "workflow_validated_title": "Etapa do fluxo de trabalho validada", + "workflow_validated_message": "A etapa do fluxo de trabalho foi validada com sucesso.", + "content": { + "content": "Conteúdo", + "delete_file_title": "Apagar ficheiro", + "delete_file_message": "Tem a certeza que pretende apagar este ficheiro?", + "upload_pending": "Pendente...", + "upload_progress": "A enviar...", + "upload_error": "Erro ao enviar", + "upload_error_quota": "Limite atingido", + "drop_zone": "Arraste e solte ficheiros aqui para enviar", + "add_files": "Adicionar ficheiros", + "file_processing_indicator": "Este ficheiro está a ser processado. A pesquisa não estará disponível até que esteja completo.", + "reprocess_file": "Voltar a processar este ficheiro", + "upload_new_version": "Enviar uma nova versão", + "open_versions": "Mostrar histórico de versões", + "display_mode_list": "Mostrar ficheiros em lista", + "display_mode_grid": "Mostrar ficheiros em grelha" + }, + "workflow": { + "workflow": "Fluxo de trabalho", + "message": "Verifique ou valide os seus documentos com pessoas da sua organização utilizando fluxos de trabalho.", + "workflow_start_label": "Qual fluxo de trabalho deseja iniciar?", + "add_more_workflow": "Adicionar mais fluxos de trabalho", + "start_workflow_submit": "Iniciar fluxo de trabalho", + "full_name": "{{ name }} iniciado em {{ create_date | date }}", + "cancel_workflow": "Cancelar o fluxo de trabalho atual", + "cancel_workflow_title": "Cancelar o fluxo de trabalho", + "cancel_workflow_message": "Tem a certeza que pretende cancelar o fluxo de trabalho atual?", + "no_workflow": "Não é possível iniciar qualquer fluxo de trabalho neste documento." + }, + "permissions": { + "permissions": "Permissões", + "message": "As permissões podem ser aplicadas diretamente a este documento ou podem vir de tags.", + "title": "Permissões deste documento", + "inherited_tags": "Permissões herdadas das tags", + "acl_source": "De", + "acl_target": "Para", + "acl_permission": "Permissão" + }, + "activity": { + "activity": "Actividade", + "message": "Todas as ações neste documento são registadas aqui." + } + }, + "edit": { + "document_edited_with_errors": "Documento editado com sucesso, mas alguns ficheiros não puderam ser carregados", + "document_added_with_errors": "Documento adicionado com sucesso, mas alguns ficheiros não puderam ser carregados", + "quota_reached": "Limite de quota atingido", + "primary_metadata": "Metadados primários", + "title_placeholder": "Um nome dado ao recurso", + "description_placeholder": "Uma descrição do recurso", + "new_files": "Novos ficheiros", + "orphan_files": "+ {{ count }} ficheiro{{ count > 1 ? 's' : '' }}", + "additional_metadata": "Metadados adicionais", + "subject_placeholder": "O tema do recurso", + "identifier_placeholder": "Uma referência inequívoca ao recurso num determinado contexto", + "publisher_placeholder": "Uma entidade responsável por disponibilizar o recurso", + "format_placeholder": "O formato do ficheiro, meio físico ou dimensões do recurso", + "source_placeholder": "Um recurso relacionado do qual o recurso descrito é derivado", + "uploading_files": "A carregar ficheiros..." + }, + "default": { + "upload_pending": "Pendente...", + "upload_progress": "A carregar...", + "upload_error": "Erro de carregamento", + "upload_error_quota": "Limite de quota atingido", + "quick_upload": "Carregamento rápido", + "drop_zone": "Arraste e solte ficheiros aqui para carregar", + "add_files": "Adicionar ficheiros", + "add_new_document": "Adicionar a novo documento", + "latest_activity": "Atividade mais recente", + "footer_sismics": "Desenvolvido com por Sismics", + "api_documentation": "Documentação da API", + "feedback": "Dê-nos um feedback", + "workflow_document_list": "Documentos atribuídos a si", + "select_all": "Selecionar tudo", + "select_none": "Não selecionar nenhum" + }, + "pdf": { + "export_title": "Exportar para PDF", + "export_metadata": "Exportar metadados", + "export_comments": "Exportar commentários", + "fit_to_page": "Ajustar imagem à página", + "margin": "Margem", + "millimeter": "mm" + }, + "share": { + "title": "Partilhar documento", + "message": "Dê um nome à partilha se quiser partilhar o mesmo documento várias vezes.", + "submit": "Partilha" + } + }, + "file": { + "view": { + "previous": "Anterior", + "next": "Seguinte", + "not_found": "Ficheiro não encontrado" + }, + "edit": { + "title": "Editar ficheiro", + "name": "Nome do ficheiro" + }, + "versions": { + "title": "Histórico de versões", + "filename": "Nome do ficheiro", + "mimetype": "Tipo", + "create_date": "Data de criação", + "version": "Versão" + } +}, +"tag": { + "new_tag": "Nova etiqueta", + "search": "Pesquisar", + "default": { + "title": "Etiquetas", + "message_1": "Etiquetas são rótulos associados a documentos.", + "message_2": "Um documento pode ser etiquetado com várias etiquetas e uma etiqueta pode ser aplicada a vários documentos.", + "message_3": "Usando o botão , pode editar as permissões de uma etiqueta.", + "message_4": "Se uma etiqueta puder ser lida por outro utilizador ou grupo, os documentos associados também poderão ser lidos por essas pessoas.", + "message_5": "Por exemplo, etiquete os documentos da sua empresa com a etiqueta MinhaEmpresa e adicione a permissão Pode ler a um grupo funcionários." + }, + "edit": { + "delete_tag_title": "Eliminar etiqueta", + "delete_tag_message": "Tem a certeza de que deseja eliminar esta etiqueta?", + "name": "Nome", + "color": "Cor", + "parent": "Pai", + "info": "As permissões nesta etiqueta serão também aplicadas aos documentos etiquetados com {{ name }}", + "circular_reference_title": "Referência circular", + "circular_reference_message": "A hierarquia das etiquetas pai faz um loop, por favor escolha outra etiqueta pai." + } +}, +"group": { + "profile": { + "members": "Membros", + "no_members": "Sem membros", + "related_links": "Links relacionados", + "edit_group": "Editar grupo {{ name }}" + } +}, +"user": { + "profile": { + "groups": "Grupos", + "quota_used": "Quota utilizada", + "percent_used": "{{ percent | number: 0 }}% utilizada", + "related_links": "Links relacionados", + "document_created": "Documentos criados por {{ username }}", + "edit_user": "Editar utilizador {{ username }}" + } +}, + "usergroup": { + "search_groups": "Pesquisar em grupos", + "search_users": "Pesquisar em utilizadores", + "you": "És tu!", + "default": { + "title": "Utilizadores e Grupos", + "message": "Aqui podes visualizar informações sobre utilizadores e grupos." + } + }, + "settings": { + "menu_personal_settings": "Definições pessoais", + "menu_user_account": "Conta de utilizador", + "menu_two_factor_auth": "Autenticação de dois fatores", + "menu_opened_sessions": "Sessões abertas", + "menu_file_importer": "Importador de ficheiros em massa", + "menu_general_settings": "Definições gerais", + "menu_workflow": "Fluxo de trabalho", + "menu_users": "Utilizadores", + "menu_groups": "Grupos", + "menu_vocabularies": "Vocabulários", + "menu_configuration": "Configuração", + "menu_inbox": "Verificação de caixa de entrada", + "menu_ldap": "Autenticação LDAP", + "menu_metadata": "Metadados personalizados", + "menu_monitoring": "Monitorização", + "ldap": { + "title": "Autenticação LDAP", + "enabled": "Ativar autenticação LDAP", + "host": "Nome do anfitrião LDAP", + "port": "Porta LDAP (por defeito 389)", + "admin_dn": "DN do administrador", + "admin_password": "Palavra-passe do administrador", + "base_dn": "DN de pesquisa base", + "filter": "Filtro de pesquisa (deve conter USERNAME, por exemplo, \"(uid=USERNAME)\")", + "default_email": "E-mail padrão para utilizador LDAP", + "default_storage": "Armazenamento padrão para utilizador LDAP", + "saved": "Configuração LDAP guardada com sucesso" + }, + "user": { + "title": "Gestão de Utilizadores", + "add_user": "Adicionar utilizador", + "username": "Nome de utilizador", + "create_date": "Data de criação", + "totp_enabled": "Autenticação de dois fatores ativada para esta conta", + "edit": { + "delete_user_title": "Apagar utilizador", + "delete_user_message": "Tem a certeza de que deseja apagar este utilizador? Todos os documentos, ficheiros e etiquetas associados serão apagados", + "user_used_title": "Utilizador em uso", + "user_used_message": "Este utilizador é utilizado no fluxo de trabalho \"{{ name }}\"", + "edit_user_failed_title": "Utilizador já existe", + "edit_user_failed_message": "Este nome de utilizador já está em uso por outro utilizador", + "edit_user_title": "Editar \"{{ username }}\"", + "add_user_title": "Adicionar utilizador", + "username": "Nome de utilizador", + "email": "E-mail", + "groups": "Grupos", + "storage_quota": "Cota de armazenamento", + "storage_quota_placeholder": "Cota de armazenamento (em MB)", + "password": "Palavra-passe", + "password_confirm": "Palavra-passe (confirmar)", + "disabled": "Utilizador desativado", + "password_reset_btn": "Enviar um email para reset de password para este utilizador", + "password_lost_sent_title": "Email de reset de password enviado", + "password_lost_sent_message": "Foi enviado um email de reset de password para {{ username }}", + "disable_totp_btn": "Desativar autenticação de dois fatores para este utilizador", + "disable_totp_title": "Desativar autenticação de dois fatores", + "disable_totp_message": "Tem a certeza de que deseja desativar a autenticação de dois fatores para este utilizador?" +}, +"workflow": { + } + }, + "workflow": { + "title": "Configuração de fluxo de trabalho", + "add_workflow": "Adicionar um fluxo de trabalho", + "name": "Nome", + "edit": { + "delete_workflow_title": "Eliminar fluxo de trabalho", + "delete_workflow_message": "Tem a certeza de que deseja eliminar este fluxo de trabalho? Os fluxos de trabalho em execução não serão eliminados", + "edit_workflow_title": "Editar \"{{ name }}\"", + "add_workflow_title": "Adicionar um fluxo de trabalho", + "name": "Nome", + "name_placeholder": "Nome ou descrição da etapa", + "drag_help": "Arrastar e soltar para reordenar a etapa", + "type": "Tipo de etapa", + "type_approve": "Aprovar", + "type_validate": "Validar", + "target": "Atribuído a", + "target_help": "Aprovar: Aceitar ou rejeitar a revisão
    Validar: Rever e continuar o fluxo de trabalho", + "add_step": "Adicionar uma etapa ao fluxo de trabalho", + "actions": "O que acontece a seguir?", + "remove_action": "Remover ação", + "acl_info": "Apenas os utilizadores e grupos definidos aqui poderão iniciar este fluxo de trabalho num documento" + } + }, + "security": { + "enable_totp": "Ativar autenticação de dois fatores", + "enable_totp_message": "Certifique-se de que tem uma aplicação compatível com TOTP no seu telemóvel pronta para adicionar uma nova conta", + "title": "Autenticação de dois fatores", + "message_1": "A autenticação de dois fatores permite adicionar uma camada de segurança à sua conta {{ appName }}.
    Antes de ativar esta funcionalidade, certifique-se de que tem uma aplicação compatível com TOTP no seu telemóvel:", + "message_google_authenticator": "Para Android, iOS e Blackberry: Google Authenticator", + "message_duo_mobile": "Para Android e iOS: Duo Mobile", + "message_authenticator": "Para Windows Phone: Authenticator", + "message_2": "Essas aplicações geram automaticamente um código de validação que muda após um certo período de tempo.
    Você terá que inserir este código de validação cada vez que fizer login em {{ appName }}.", + "secret_key": "Sua chave secreta é: {{ secret }}", + "secret_key_warning": "Configure seu aplicativo TOTP no seu telefone com esta chave secreta agora, pois você não poderá acessá-la posteriormente.", + "totp_enabled_message": "A autenticação de dois fatores está habilitada em sua conta.
    Cada vez que fizer login em {{ appName }}, você será solicitado a inserir um código de validação do seu aplicativo de telefone configurado.
    Se você perder seu telefone, não poderá fazer login em sua conta, mas as sessões ativas permitirão que você regenere uma chave secreta.", + "disable_totp": { + "disable_totp": "Desativar autenticação de dois fatores", + "message": "Sua conta não será mais protegida pela autenticação de dois fatores.", + "confirm_password": "Confirme sua senha", + "submit": "Desactivar autenticação de dois factores" + }, + "test_totp": "Por favor insira o código de validação exibido no seu telefone:", + "test_code_success": "Código de validação OK", + "test_code_fail": "Este código não é válido, por favor verifique se o seu telefone está configurado corretamente ou desative a autenticação de dois fatores" + }, + "group": { + "title": "Gestão de grupos", + "add_group": "Adicionar um grupo", + "name": "Nome", + "edit": { + "delete_group_title": "Eliminar grupo", + "delete_group_message": "Tem a certeza de que deseja eliminar este grupo?", + "edit_group_failed_title": "Grupo já existe", + "edit_group_failed_message": "Este nome de grupo já está em uso por outro grupo", + "group_used_title": "Grupo em uso", + "group_used_message": "Este grupo é utilizado no fluxo de trabalho \"{{ name }}\"", + "edit_group_title": "Editar \"{{ name }}\"", + "add_group_title": "Adicionar um grupo", + "name": "Nome", + "parent_group": "Grupo principal", + "search_group": "Pesquisar um grupo", + "members": "Membros", + "new_member": "Novo membro", + "search_user": "Pesquisar um utilizador" + } + }, + "account": { + "title": "Conta de utilizador", + "password": "Palavra-passe", + "password_confirm": "Palavra-passe (confirmação)", + "updated": "Conta atualizada com sucesso" + }, + "config": { + "title_guest_access": "Acesso de convidado", + "message_guest_access": "O acesso de convidado é um modo em que qualquer pessoa pode aceder ao {{ appName }} sem palavra-passe.
    Como um utilizador normal, o utilizador convidado só pode aceder aos seus documentos e aos que têm permissão de acesso.
    ", + "enable_guest_access": "Ativar acesso de convidado", + "disable_guest_access": "Desativar acesso de convidado", + "title_theme": "Personalização do tema", + "title_general": "Configuração geral", + "default_language": "Idioma predefinido para novos documentos", + "application_name": "Nome da aplicação", + "main_color": "Cor principal", + "custom_css": "CSS personalizado", + "custom_css_placeholder": "CSS personalizado a adicionar após a folha de estilos principal", + "logo": "Logótipo (tamanho quadrado)", + "background_image": "Imagem de fundo", + "uploading_image": "A enviar a imagem...", + "title_smtp": "Configuração de email", + "smtp_hostname": "Nome do servidor SMTP", + "smtp_port": "Porta SMTP", + "smtp_from": "Email do remetente", + "smtp_username": "Nome de utilizador SMTP", + "smtp_password": "Palavra-passe SMTP", + "smtp_updated": "Configuração SMTP atualizada com sucesso", + "webhooks": "Webhooks", + "webhooks_explain": "Os webhooks serão chamados quando o evento especificado ocorrer. A URL fornecida será enviada por POST com uma carga útil JSON contendo o nome do evento e o ID do recurso em causa.", + "webhook_event": "Evento", + "webhook_url": "URL", + "webhook_create_date": "Data de criação", + "webhook_add": "Adicionar um webhook" + }, + "metadata": { + "title": "Configuração de metadados personalizados", + "message": "Aqui pode adicionar metadados personalizados aos seus documentos, como um identificador interno ou uma data de validade. Por favor, note que o tipo de metadados não pode ser alterado após a criação.", + "name": "Nome dos metadados", + "type": "Tipo de metadados" + }, + "inbox": { + "title": "Análise de caixa de entrada", + "message": "Ao ativar esta funcionalidade, o sistema irá analisar a caixa de entrada especificada a cada minuto em busca de emails não lidos e importá-los automaticamente.
    Após a importação de um email, ele será marcado como lido.
    As configurações de configuração para Gmail, Outlook.com, Yahoo.", + "enabled": "Ativar análise de caixa de entrada", + "hostname": "Nome do servidor IMAP", + "port": "Porta IMAP (143 ou 993)", + "username": "Nome de utilizador IMAP", + "password": "Palavra-passe IMAP", + "folder": "Pasta IMAP", + "tag": "Tag adicionada aos documentos importados", + "test": "Testar os parâmetros", + "last_sync": "Última sincronização: {{ data.date | date: 'medium' }}, {{ data.count }} mensagem{{ data.count > 1 ? 's' : '' }} importada{{ data.count > 1 ? 's' : '' }}", + "test_success": "A ligação à caixa de entrada foi estabelecida com sucesso ({{ count }} mensagem{{ count > 1 ? 's' : '' }} não lida{{ count > 1 ? 's' : '' }})", + "test_fail": "Ocorreu um erro ao ligar à caixa de entrada, por favor verifique os parâmetros", + "saved": "Configuração IMAP guardada com sucesso", + "autoTagsEnabled": "Adicionar automaticamente tags da linha de assunto marcadas com #", + "deleteImported": "Apagar a mensagem da caixa de correio após a importação" + }, + "monitoring": { + "background_tasks": "Tarefas em segundo plano", + "queued_tasks": "Existem atualmente {{ count }} tarefas em fila.", + "queued_tasks_explain": "O processamento de ficheiros, a criação de miniaturas, a atualização de índices e o reconhecimento ótico de caracteres são tarefas em segundo plano. Uma grande quantidade de tarefas por processar resultará em resultados de pesquisa incompletos.", + "server_logs": "Registos do servidor", + "log_date": "Data", + "log_tag": "Tag", + "log_message": "Mensagem", + "indexing": "Indexação", + "indexing_info": "Se notar discrepâncias nos resultados de pesquisa, pode tentar fazer uma reindexação completa. Os resultados de pesquisa serão incompletos até que esta operação esteja concluída.", + "start_reindexing": "Iniciar reindexação completa", + "reindexing_started": "A reindexação foi iniciada, por favor aguarde até que não haja mais tarefas em segundo plano." + }, + "session": { + "title": "Sessões abertas", + "created_date": "Data de criação", + "last_connection_date": "Data da última conexão", + "user_agent": "De", + "current": "Atual", + "current_session": "Esta é a sessão atual", + "clear_message": "Todos os outros dispositivos conectados a esta conta serão desconectados", + "clear": "Limpar todas as outras sessões" + }, + "vocabulary": { + "title": "Entradas de vocabulário", + "choose_vocabulary": "Escolha um vocabulário para editar", + "type": "Tipo", + "coverage": "Cobertura", + "rights": "Direitos", + "value": "Valor", + "order": "Ordem", + "new_entry": "Nova entrada" + }, + "fileimporter": { + "title": "Importador em massa de ficheiros", + "advanced_users": "Para utilizadores avançados!", + "need_intro": "Se precisar de:", + "need_1": "Importar um diretório de ficheiros de uma só vez", + "need_2": "Analisar um diretório à procura de novos ficheiros e importá-los", + "line_1": "Vá para sismics/docs/releases e descarregue a ferramenta de importação de ficheiros para o seu sistema.", + "line_2": "Siga as instruções aqui para usar esta ferramenta.", + "line_3": "Os seus ficheiros serão importados em documentos de acordo com a configuração do importador de ficheiros.", + "download": "Descarregar", + "instructions": "Instruções" + } + }, + "feedback": { + "title": "Dê-nos o seu feedback", + "message": "Alguma sugestão ou pergunta sobre o Teedy? Nós ouvimos você!", + "sent_title": "Feedback enviado", + "sent_message": "Obrigado pelo seu feedback! Isso nos ajudará a tornar o Teedy ainda melhor." + }, + "import": { + "title": "A importar", + "error_quota": "Limite de quota atingido, contacte o seu administrador para aumentar a sua quota", + "error_general": "Ocorreu um erro ao tentar importar o seu ficheiro, por favor certifique-se de que é um ficheiro EML válido" + }, + "app_share": { + "main": "Peça um link de documento partilhado para aceder", + "403": { + "title": "Não autorizado", + "message": "O documento que está a tentar visualizar já não está partilhado" + } + }, + "directive": { + "acledit": { + "acl_target": "Para", + "acl_permission": "Permissão", + "add_permission": "Adicionar permissão", + "search_user_group": "Procurar um utilizador ou grupo" + }, + "auditlog": { + "log_created": "criado", + "log_updated": "atualizado", + "log_deleted": "eliminado", + "Acl": "ACL", + "Comment": "Comentário", + "Document": "Documento", + "File": "Ficheiro", + "Group": "Grupo", + "Route": "Fluxo de trabalho", + "RouteModel": "Modelo de fluxo de trabalho", + "Tag": "Tag", + "User": "Utilizador", + "Webhook": "Webhook" + }, + "selectrelation": { + "typeahead": "Escreva o título do documento" + }, + "selecttag": { + "typeahead": "Escreva uma tag" + }, + "datepicker": { + "current": "Hoje", + "clear": "Limpar", + "close": "Concluído" + } + }, + "filter": { + "filesize": { + "mb": "MB", + "kb": "kB" + } + }, + "acl": { + "READ": "Pode ler", + "READWRITE": "Pode escrever", + "WRITE": "Pode escrever", + "USER": "Utilizador", + "GROUP": "Grupo", + "SHARE": "Partilhado" + }, + "workflow_type": { + "VALIDATE": "Validação", + "APPROVE": "Aprovação" + }, + "workflow_transition": { + "APPROVED": "Aprovado", + "REJECTED": "Rejeitado", + "VALIDATED": "Validado" + }, + "validation": { + "required": "Obrigatório", + "too_short": "Muito curto", + "too_long": "Muito longo", + "email": "Tem de ser um e-mail válido", + "password_confirm": "A palavra-passe e a confirmação da palavra-passe têm de corresponder", + "number": "É necessário um número", + "no_space": "Espaços e dois pontos não são permitidos", + "alphanumeric": "Apenas letras e números são permitidos" + }, + "action_type": { + "ADD_TAG": "Adicionar uma tag", + "REMOVE_TAG": "Remover uma tag", + "PROCESS_FILES": "Processar ficheiros" + }, + "pagination": { + "previous": "Anterior", + "next": "Seguinte", + "first": "Primeiro", + "last": "Último" + }, + "onboarding": { + "step1": { + "title": "Primeira vez?", + "description": "Se é a sua primeira vez no Teedy, clique no botão Seguinte, caso contrário, pode fechar esta janela." + }, + "step2": { + "title": "Documentos", + "description": "O Teedy está organizado em documentos e cada documento contém vários ficheiros." + }, + "step3": { + "title": "Ficheiros", + "description": "Pode adicionar ficheiros depois de criar um documento ou antes utilizando esta área de upload rápido." + }, + "step4": { + "title": "Pesquisa", + "description": "Esta é a forma principal de encontrar os seus documentos. Também existe uma pesquisa avançada com o botão de lupa." + }, + "step5": { + "title": "Tags", + "description": "Os documentos podem ser organizados em tags (que são como superpastas). Crie-as aqui." + } + }, + "yes": "Sim", + "no": "Não", + "ok": "OK", + "cancel": "Cancelar", + "share": "Partilhar", + "unshare": "Despartilhar", + "close": "Fechar", + "add": "Adicionar", + "open": "Abrir", + "see": "Ver", + "save": "Guardar", + "export": "Exportar", + "edit": "Editar", + "delete": "Eliminar", + "rename": "Renomear", + "download": "Transferir", + "loading": "A carregar...", + "send": "Enviar", + "enabled": "Ativado", + "disabled": "Desativado" +} diff --git a/docs-web/src/main/webapp/src/share.html b/docs-web/src/main/webapp/src/share.html index b6b530e4..a97e745e 100644 --- a/docs-web/src/main/webapp/src/share.html +++ b/docs-web/src/main/webapp/src/share.html @@ -72,6 +72,7 @@ Deutsch Italiano Española + Português Ελληνικά Pусский Polski @@ -86,6 +87,7 @@
  • Deutsch
  • Italiano
  • Española
  • +
  • Português
  • Ελληνικά
  • Pусский
  • Polski