Merge branch 'main' of https://github.com/bulwarkmail/webmail
This commit is contained in:
+11
-3
@@ -71,11 +71,19 @@ JMAP_SERVER_URL=https://your-jmap-server.com
|
|||||||
|
|
||||||
# Directory for storing encrypted settings files (default: ./data/settings).
|
# Directory for storing encrypted settings files (default: ./data/settings).
|
||||||
# For Docker, the working directory is /app, so the default resolves to
|
# For Docker, the working directory is /app, so the default resolves to
|
||||||
# /app/data/settings - mount a persistent volume there:
|
# /app/data/settings - mount a persistent volume there (see docker-compose.yml).
|
||||||
# volumes:
|
|
||||||
# - bulwark-settings:/app/data/settings
|
|
||||||
# SETTINGS_DATA_DIR=./data/settings
|
# SETTINGS_DATA_DIR=./data/settings
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# Admin Dashboard Data
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
# Directory for admin dashboard state: config overrides, admin password hash,
|
||||||
|
# installed plugins/themes, and audit logs (default: ./data/admin).
|
||||||
|
# For Docker, the default resolves to /app/data/admin - mount a persistent
|
||||||
|
# volume there (see docker-compose.yml).
|
||||||
|
# ADMIN_DATA_DIR=./data/admin
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# Server Listen Address
|
# Server Listen Address
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|||||||
@@ -8,6 +8,11 @@ services:
|
|||||||
- PORT=3000
|
- PORT=3000
|
||||||
env_file:
|
env_file:
|
||||||
- .env.local
|
- .env.local
|
||||||
|
volumes:
|
||||||
|
# Encrypted user settings (SETTINGS_DATA_DIR).
|
||||||
|
- bulwark-settings:/app/data/settings
|
||||||
|
# Admin dashboard state: config, password hash, plugins, audit logs (ADMIN_DATA_DIR).
|
||||||
|
- bulwark-admin:/app/data/admin
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test:
|
test:
|
||||||
[
|
[
|
||||||
@@ -23,3 +28,7 @@ services:
|
|||||||
retries: 3
|
retries: 3
|
||||||
start_period: 10s
|
start_period: 10s
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
bulwark-settings:
|
||||||
|
bulwark-admin:
|
||||||
|
|||||||
+35
-35
@@ -20,7 +20,7 @@
|
|||||||
"generic": "Ocorreu um erro. Por favor, tente novamente.",
|
"generic": "Ocorreu um erro. Por favor, tente novamente.",
|
||||||
"totp_required": "É necessário um código de autenticação de dois fatores. Insira seu código abaixo.",
|
"totp_required": "É necessário um código de autenticação de dois fatores. Insira seu código abaixo.",
|
||||||
"totp_invalid": "Código de autenticação inválido. Verifique seu aplicativo de autenticação.",
|
"totp_invalid": "Código de autenticação inválido. Verifique seu aplicativo de autenticação.",
|
||||||
"oauth_discovery_failed": "SSO está ativado mas o provedor de identidade não pôde ser contactado. Verifique sua configuração OAuth."
|
"oauth_discovery_failed": "SSO está ativado mas o provedor de identidade não pôde ser contatado. Verifique sua configuração OAuth."
|
||||||
},
|
},
|
||||||
"show_password": "Mostrar senha",
|
"show_password": "Mostrar senha",
|
||||||
"hide_password": "Ocultar senha",
|
"hide_password": "Ocultar senha",
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
"calendar": "Calendário",
|
"calendar": "Calendário",
|
||||||
"settings": "Configurações",
|
"settings": "Configurações",
|
||||||
"admin": "Admin",
|
"admin": "Admin",
|
||||||
"files": "Ficheiros",
|
"files": "Arquivos",
|
||||||
"loading_mailboxes": "Carregando caixas de entrada...",
|
"loading_mailboxes": "Carregando caixas de entrada...",
|
||||||
"push_connected": "Atualizações em tempo real ativas",
|
"push_connected": "Atualizações em tempo real ativas",
|
||||||
"push_disconnected": "Atualizações em tempo real inativas",
|
"push_disconnected": "Atualizações em tempo real inativas",
|
||||||
@@ -505,7 +505,7 @@
|
|||||||
"show_less": "Mostrar menos",
|
"show_less": "Mostrar menos",
|
||||||
"forgot_attachment": {
|
"forgot_attachment": {
|
||||||
"title": "Esqueceu um anexo?",
|
"title": "Esqueceu um anexo?",
|
||||||
"message": "A sua mensagem menciona \"{keyword}\" mas nenhum ficheiro está anexado. Enviar mesmo assim?",
|
"message": "A sua mensagem menciona \"{keyword}\" mas nenhum arquivo está anexado. Enviar mesmo assim?",
|
||||||
"send_anyway": "Enviar mesmo assim",
|
"send_anyway": "Enviar mesmo assim",
|
||||||
"back": "Voltar à edição"
|
"back": "Voltar à edição"
|
||||||
}
|
}
|
||||||
@@ -669,7 +669,7 @@
|
|||||||
"security": "Segurança",
|
"security": "Segurança",
|
||||||
"encryption": "Criptografia",
|
"encryption": "Criptografia",
|
||||||
"files": "Arquivos",
|
"files": "Arquivos",
|
||||||
"contacts": "Contactos",
|
"contacts": "Contatos",
|
||||||
"sidebar_apps": "Apps da barra lateral",
|
"sidebar_apps": "Apps da barra lateral",
|
||||||
"notifications": "Notificações",
|
"notifications": "Notificações",
|
||||||
"layout": "Layout",
|
"layout": "Layout",
|
||||||
@@ -1322,12 +1322,12 @@
|
|||||||
"manage_description": "Adicionar, editar ou remover apps personalizados da barra lateral"
|
"manage_description": "Adicionar, editar ou remover apps personalizados da barra lateral"
|
||||||
},
|
},
|
||||||
"contacts": {
|
"contacts": {
|
||||||
"title": "Contactos",
|
"title": "Contatos",
|
||||||
"description": "Importar e exportar os seus contactos",
|
"description": "Importar e exportar os seus contatos",
|
||||||
"import_label": "Importar contactos",
|
"import_label": "Importar contatos",
|
||||||
"import_description": "Importar contactos de um ficheiro vCard (.vcf)",
|
"import_description": "Importar contatos de um arquivo vCard (.vcf)",
|
||||||
"export_label": "Exportar contactos",
|
"export_label": "Exportar contatos",
|
||||||
"export_description": "Exportar todos os contactos como ficheiro vCard (.vcf)",
|
"export_description": "Exportar todos os contatos como arquivo vCard (.vcf)",
|
||||||
"manage_title": "Catálogos de endereços",
|
"manage_title": "Catálogos de endereços",
|
||||||
"manage_description": "Renomeie seus catálogos de endereços",
|
"manage_description": "Renomeie seus catálogos de endereços",
|
||||||
"no_address_books": "Nenhum catálogo de endereços encontrado",
|
"no_address_books": "Nenhum catálogo de endereços encontrado",
|
||||||
@@ -1503,7 +1503,7 @@
|
|||||||
},
|
},
|
||||||
"folder_layout": {
|
"folder_layout": {
|
||||||
"label": "Navegação de pastas",
|
"label": "Navegação de pastas",
|
||||||
"description": "Escolha como as pastas são apresentadas: integradas com os ficheiros ou numa árvore na barra lateral",
|
"description": "Escolha como as pastas são apresentadas: integradas com os arquivos ou numa árvore na barra lateral",
|
||||||
"inline": "Integrado",
|
"inline": "Integrado",
|
||||||
"sidebar": "Barra lateral"
|
"sidebar": "Barra lateral"
|
||||||
},
|
},
|
||||||
@@ -1874,7 +1874,7 @@
|
|||||||
"cert_already_imported": "Certificado já importado",
|
"cert_already_imported": "Certificado já importado",
|
||||||
"cert_imported": "Certificado importado",
|
"cert_imported": "Certificado importado",
|
||||||
"cert_import_failed": "Falha ao importar o certificado",
|
"cert_import_failed": "Falha ao importar o certificado",
|
||||||
"section_contact": "Contact details",
|
"section_contact": "Detalhes do contato",
|
||||||
"section_work": "Work",
|
"section_work": "Work",
|
||||||
"section_personal": "Personal",
|
"section_personal": "Personal",
|
||||||
"email_default_label": "Email",
|
"email_default_label": "Email",
|
||||||
@@ -2243,7 +2243,7 @@
|
|||||||
"hover_preview_delay_2s": "Atraso de 2 segundos",
|
"hover_preview_delay_2s": "Atraso de 2 segundos",
|
||||||
"hover_preview_off": "Desativado",
|
"hover_preview_off": "Desativado",
|
||||||
"show_birthday_calendar": "Calendário de aniversários",
|
"show_birthday_calendar": "Calendário de aniversários",
|
||||||
"show_birthday_calendar_desc": "Mostrar um calendário virtual com os aniversários dos seus contactos"
|
"show_birthday_calendar_desc": "Mostrar um calendário virtual com os aniversários dos seus contatos"
|
||||||
},
|
},
|
||||||
"days": {
|
"days": {
|
||||||
"monday": "Segunda-feira",
|
"monday": "Segunda-feira",
|
||||||
@@ -2481,12 +2481,12 @@
|
|||||||
"hint": "Clique num e-mail à esquerda para começar, ou inicie o tour."
|
"hint": "Clique num e-mail à esquerda para começar, ou inicie o tour."
|
||||||
},
|
},
|
||||||
"files": {
|
"files": {
|
||||||
"title": "Ficheiros",
|
"title": "Arquivos",
|
||||||
"search_placeholder": "Pesquisar ficheiros...",
|
"search_placeholder": "Pesquisar arquivos...",
|
||||||
"empty_state_title": "Ainda não há ficheiros",
|
"empty_state_title": "Ainda não há arquivos",
|
||||||
"empty_state_description": "Carregue ficheiros ou crie pastas para começar",
|
"empty_state_description": "Carregue arquivos ou crie pastas para começar",
|
||||||
"upload": "Carregar",
|
"upload": "Carregar",
|
||||||
"upload_files": "Carregar ficheiros",
|
"upload_files": "Carregar arquivos",
|
||||||
"new_folder": "Nova pasta",
|
"new_folder": "Nova pasta",
|
||||||
"new_folder_name": "Nome da pasta",
|
"new_folder_name": "Nome da pasta",
|
||||||
"rename": "Renomear",
|
"rename": "Renomear",
|
||||||
@@ -2501,13 +2501,13 @@
|
|||||||
"modified": "Modificado",
|
"modified": "Modificado",
|
||||||
"type": "Tipo",
|
"type": "Tipo",
|
||||||
"folder": "Pasta",
|
"folder": "Pasta",
|
||||||
"file": "Ficheiro",
|
"file": "Arquivo",
|
||||||
"parent_directory": "Diretório superior",
|
"parent_directory": "Diretório superior",
|
||||||
"breadcrumb_root": "Início",
|
"breadcrumb_root": "Início",
|
||||||
"drop_files_here": "Largue ficheiros ou pastas aqui para carregar",
|
"drop_files_here": "Largue arquivos ou pastas aqui para carregar",
|
||||||
"uploading": "A carregar...",
|
"uploading": "A carregar...",
|
||||||
"upload_success": "{count, plural, one {1 ficheiro carregado} other {# ficheiros carregados}}",
|
"upload_success": "{count, plural, one {1 arquivo carregado} other {# arquivos carregados}}",
|
||||||
"upload_error": "Falha ao carregar o ficheiro",
|
"upload_error": "Falha ao carregar o arquivo",
|
||||||
"create_folder_success": "Pasta criada",
|
"create_folder_success": "Pasta criada",
|
||||||
"create_folder_error": "Falha ao criar a pasta",
|
"create_folder_error": "Falha ao criar a pasta",
|
||||||
"delete_success": "Eliminado com sucesso",
|
"delete_success": "Eliminado com sucesso",
|
||||||
@@ -2515,11 +2515,11 @@
|
|||||||
"rename_success": "Renomeado com sucesso",
|
"rename_success": "Renomeado com sucesso",
|
||||||
"rename_error": "Falha ao renomear",
|
"rename_error": "Falha ao renomear",
|
||||||
"download_error": "Falha ao transferir",
|
"download_error": "Falha ao transferir",
|
||||||
"not_available": "O armazenamento de ficheiros não está disponível neste servidor",
|
"not_available": "O armazenamento de arquivos não está disponível neste servidor",
|
||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"create": "Criar",
|
"create": "Criar",
|
||||||
"save": "Guardar",
|
"save": "Guardar",
|
||||||
"no_results": "Nenhum ficheiro corresponde à sua pesquisa",
|
"no_results": "Nenhum arquivo corresponde à sua pesquisa",
|
||||||
"batch_delete_confirm_message": "Tem a certeza de que deseja eliminar {count, plural, one {1 item} other {# itens}}? Esta ação não pode ser desfeita.",
|
"batch_delete_confirm_message": "Tem a certeza de que deseja eliminar {count, plural, one {1 item} other {# itens}}? Esta ação não pode ser desfeita.",
|
||||||
"batch_delete_success": "{count, plural, one {1 item eliminado} other {# itens eliminados}}",
|
"batch_delete_success": "{count, plural, one {1 item eliminado} other {# itens eliminados}}",
|
||||||
"grid_view": "Vista em grelha",
|
"grid_view": "Vista em grelha",
|
||||||
@@ -2535,27 +2535,27 @@
|
|||||||
"move_error": "Falha ao mover",
|
"move_error": "Falha ao mover",
|
||||||
"paste_success": "Colado com sucesso",
|
"paste_success": "Colado com sucesso",
|
||||||
"paste_error": "Falha ao colar",
|
"paste_error": "Falha ao colar",
|
||||||
"new_text_file": "Novo ficheiro de texto",
|
"new_text_file": "Novo arquivo de texto",
|
||||||
"file_name": "Nome do ficheiro",
|
"file_name": "Nome do arquivo",
|
||||||
"retry": "Tentar novamente",
|
"retry": "Tentar novamente",
|
||||||
"refresh": "Atualizar",
|
"refresh": "Atualizar",
|
||||||
"toggle_favorite": "Alternar favorito",
|
"toggle_favorite": "Alternar favorito",
|
||||||
"duplicate": "Duplicar",
|
"duplicate": "Duplicar",
|
||||||
"duplicate_success": "Duplicado com sucesso",
|
"duplicate_success": "Duplicado com sucesso",
|
||||||
"duplicate_error": "Falha ao duplicar",
|
"duplicate_error": "Falha ao duplicar",
|
||||||
"create_file_success": "Ficheiro criado",
|
"create_file_success": "Arquivo criado",
|
||||||
"create_file_error": "Falha ao criar ficheiro",
|
"create_file_error": "Falha ao criar arquivo",
|
||||||
"favorites": "Favoritos",
|
"favorites": "Favoritos",
|
||||||
"recent": "Recentes",
|
"recent": "Recentes",
|
||||||
"properties": "Propriedades",
|
"properties": "Propriedades",
|
||||||
"open_folder": "Abrir pasta",
|
"open_folder": "Abrir pasta",
|
||||||
"upload_folder": "Carregar pasta",
|
"upload_folder": "Carregar pasta",
|
||||||
"file_too_large": "\"{name}\" excede o tamanho máximo do ficheiro ({max})",
|
"file_too_large": "\"{name}\" excede o tamanho máximo do arquivo ({max})",
|
||||||
"undo": "Desfazer",
|
"undo": "Desfazer",
|
||||||
"undo_success": "Ação desfeita",
|
"undo_success": "Ação desfeita",
|
||||||
"undo_error": "Falha ao desfazer",
|
"undo_error": "Falha ao desfazer",
|
||||||
"toolbar": "Ações de arquivo",
|
"toolbar": "Ações de arquivo",
|
||||||
"file_list": "Ficheiros e pastas",
|
"file_list": "Arquivos e pastas",
|
||||||
"context_menu": "Ações",
|
"context_menu": "Ações",
|
||||||
"settings_title": "Configurações de arquivos",
|
"settings_title": "Configurações de arquivos",
|
||||||
"settings_display": "Exibição",
|
"settings_display": "Exibição",
|
||||||
@@ -2578,7 +2578,7 @@
|
|||||||
"settings_show_hidden": "Mostrar arquivos ocultos",
|
"settings_show_hidden": "Mostrar arquivos ocultos",
|
||||||
"settings_show_hidden_desc": "Exibir arquivos e pastas que começam com um ponto",
|
"settings_show_hidden_desc": "Exibir arquivos e pastas que começam com um ponto",
|
||||||
"settings_folder_layout": "Navegação de pastas",
|
"settings_folder_layout": "Navegação de pastas",
|
||||||
"settings_folder_layout_desc": "Escolha como as pastas são apresentadas: integradas com os ficheiros ou numa árvore na barra lateral",
|
"settings_folder_layout_desc": "Escolha como as pastas são apresentadas: integradas com os arquivos ou numa árvore na barra lateral",
|
||||||
"settings_folder_layout_inline": "Integrado",
|
"settings_folder_layout_inline": "Integrado",
|
||||||
"settings_folder_layout_sidebar": "Barra lateral",
|
"settings_folder_layout_sidebar": "Barra lateral",
|
||||||
"disabled_title": "O recurso de arquivos foi desativado pelo seu administrador",
|
"disabled_title": "O recurso de arquivos foi desativado pelo seu administrador",
|
||||||
@@ -2703,11 +2703,11 @@
|
|||||||
"event_modal_desc": "Aqui está o formulário do evento. Preencha o título, escolha uma data e hora, adicione um local ou participantes. Clique em salvar quando terminar - ou feche e siga em frente.",
|
"event_modal_desc": "Aqui está o formulário do evento. Preencha o título, escolha uma data e hora, adicione um local ou participantes. Clique em salvar quando terminar - ou feche e siga em frente.",
|
||||||
"contacts_list_title": "Seus contatos",
|
"contacts_list_title": "Seus contatos",
|
||||||
"contacts_list_desc": "Aqui estão seus contatos. Clique em qualquer contato para ver seus detalhes à direita. Você também pode criar novos contatos, importar vCards ou organizar contatos em grupos.",
|
"contacts_list_desc": "Aqui estão seus contatos. Clique em qualquer contato para ver seus detalhes à direita. Você também pode criar novos contatos, importar vCards ou organizar contatos em grupos.",
|
||||||
"files_title": "Armazenamento de ficheiros",
|
"files_title": "Armazenamento de arquivos",
|
||||||
"settings_tabs_title": "Menu de configurações",
|
"settings_tabs_title": "Menu de configurações",
|
||||||
"settings_tabs_desc": "Aqui estão todas as categorias de configurações. Personalize a aparência, gerencie identidades, configure filtros de e-mail, ajuste o calendário e muito mais.",
|
"settings_tabs_desc": "Aqui estão todas as categorias de configurações. Personalize a aparência, gerencie identidades, configure filtros de e-mail, ajuste o calendário e muito mais.",
|
||||||
"files_desc": "O navegador de ficheiros permite carregar, organizar e partilhar ficheiros - como uma nuvem pessoal integrada no seu e-mail.",
|
"files_desc": "O navegador de arquivos permite carregar, organizar e compartilhar arquivos - como uma nuvem pessoal integrada no seu e-mail.",
|
||||||
"demo_banner_title": "Controlos de demonstração",
|
"demo_banner_title": "Controles de demonstração",
|
||||||
"demo_banner_desc": "Está no modo de demonstração - tudo permanece no seu navegador. Clique em 'Repor Demonstração' a qualquer momento para recomeçar com dados limpos.",
|
"demo_banner_desc": "Está no modo de demonstração - tudo permanece no seu navegador. Clique em 'Repor Demonstração' a qualquer momento para recomeçar com dados limpos.",
|
||||||
"quota_title": "Utilização do armazenamento",
|
"quota_title": "Utilização do armazenamento",
|
||||||
"quota_desc": "Acompanhe o tamanho da sua caixa de correio aqui. O círculo preenche-se à medida que utiliza mais espaço."
|
"quota_desc": "Acompanhe o tamanho da sua caixa de correio aqui. O círculo preenche-se à medida que utiliza mais espaço."
|
||||||
@@ -2738,4 +2738,4 @@
|
|||||||
"custom": "Personalizado"
|
"custom": "Personalizado"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user