smoonb 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +23 -7
- package/README.pt-BR.md +23 -7
- package/package.json +4 -3
- package/src/commands/backup/steps/06-realtime-settings.js +19 -33
- package/src/commands/backup/steps/07-storage.js +7 -12
- package/src/commands/backup/steps/09-edge-functions.js +76 -202
- package/src/commands/restore/auth-fields.json +237 -0
- package/src/commands/restore/dump.js +284 -0
- package/src/commands/restore/index.js +4 -126
- package/src/commands/restore/management.js +74 -0
- package/src/commands/restore/pg.js +83 -0
- package/src/commands/restore/runner.js +117 -0
- package/src/commands/restore/steps/03-database.js +18 -84
- package/src/commands/restore/steps/04-edge-functions.js +95 -122
- package/src/commands/restore/steps/05-auth-settings.js +26 -54
- package/src/commands/restore/steps/06-storage.js +203 -584
- package/src/commands/restore/steps/07-database-settings.js +87 -69
- package/src/commands/restore/steps/08-realtime-settings.js +61 -53
- package/src/i18n/locales/en.json +797 -797
- package/src/i18n/locales/pt-BR.json +796 -796
- package/src/utils/supabaseCli.js +32 -0
|
@@ -1,799 +1,799 @@
|
|
|
1
|
-
{
|
|
2
|
-
"app.title": "Supa Moonbase (smoonb)",
|
|
3
|
-
"app.tagline": "Backup e restauração: completo e simples, como deveria ser",
|
|
4
|
-
"app.developedBy": "Desenvolvido por: Goalmoon Tecnologia LTDA",
|
|
5
|
-
"app.website": "Website: https://www.smoonb.com",
|
|
6
|
-
"app.documentation": "Documentação: https://github.com/almmello/smoonb",
|
|
7
|
-
"app.issues": "Issues: https://github.com/almmello/smoonb/issues",
|
|
8
|
-
|
|
9
|
-
"help.header": "Comandos",
|
|
10
|
-
"help.usage": "Uso",
|
|
11
|
-
"help.footer": "Use \"{cmd} help [command]\" para mais informações sobre um comando.",
|
|
12
|
-
"help.commands.backup": "Fazer backup completo do projeto Supabase",
|
|
13
|
-
"help.commands.restore": "Restaurar backup completo (modo interativo com psql)",
|
|
14
|
-
"help.commands.check": "Verificar integridade do projeto após restauração",
|
|
15
|
-
"help.commands.import": "Importar backup do Dashboard e preparar a estrutura para restauração",
|
|
16
|
-
|
|
17
|
-
"prompt.confirm": "Continuar?",
|
|
18
|
-
"prompt.confirmYes": "(S/n)",
|
|
19
|
-
"prompt.confirmNo": "(s/N)",
|
|
20
|
-
"prompt.cancelled": "Operação cancelada.",
|
|
21
|
-
|
|
22
|
-
"error.generic": "Algo inesperado aconteceu.",
|
|
23
|
-
"error.pathNotFound": "Caminho não encontrado: {path}",
|
|
24
|
-
"error.permissionDenied": "Permissão negada: {path}",
|
|
25
|
-
"error.commandNotFound": "Comando não reconhecido: {command}",
|
|
26
|
-
"error.useHelp": "Use {cmd} --help para ver comandos disponíveis",
|
|
27
|
-
"error.uncaughtException": "Erro não tratado: {message}",
|
|
28
|
-
"error.unhandledRejection": "Promise rejeitada não tratada: {reason}",
|
|
29
|
-
|
|
30
|
-
"import.start": "Preparando a estrutura de diretórios para o backup importado...",
|
|
31
|
-
"import.scaffoldOnly": "Criando apenas a estrutura, sem mover arquivos.",
|
|
32
|
-
"import.done": "Importação concluída. Pronto para restaurar.",
|
|
33
|
-
"import.fileRequired": "Arquivo de backup não fornecido",
|
|
34
|
-
"import.fileNotFound": "Arquivo de backup não encontrado: {path}",
|
|
35
|
-
"import.invalidFormat": "Arquivo de backup deve ser .backup.gz ou .backup",
|
|
36
|
-
"import.storageNotFound": "Arquivo de storage não encontrado: {path}",
|
|
37
|
-
"import.storageInvalidFormat": "Arquivo de storage deve ser .storage.zip",
|
|
38
|
-
"import.invalidFileName": "Nome do arquivo de backup não está no formato esperado do Dashboard",
|
|
39
|
-
"import.expectedFormat": "Formato esperado: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz",
|
|
40
|
-
"import.fileReceived": "Arquivo recebido: {fileName}",
|
|
41
|
-
"import.success": "Arquivo de backup importado com sucesso!",
|
|
42
|
-
"import.storageSuccess": "Arquivo de storage importado com sucesso!",
|
|
43
|
-
"import.nextStep": "Próximo passo: Execute 'npx smoonb restore' para restaurar este backup",
|
|
44
|
-
|
|
45
|
-
"check.start": "Verificando integridade do projeto: {projectId}",
|
|
46
|
-
"check.done": "Verificação concluída!",
|
|
47
|
-
"check.reportSaved": "Relatório salvo em: {path}",
|
|
48
|
-
"check.error": "Erro na verificação: {message}",
|
|
49
|
-
"check.psqlNotFound": "psql não encontrado",
|
|
50
|
-
"check.installPostgres": "Instale PostgreSQL:",
|
|
51
|
-
"check.databaseUrlNotConfigured": "databaseUrl não configurada",
|
|
52
|
-
"check.configureDatabaseUrl": "Configure databaseUrl no .smoonbrc",
|
|
53
|
-
|
|
54
|
-
"docker.notInstalled": "DOCKER DESKTOP NÃO ENCONTRADO",
|
|
55
|
-
"docker.notRunning": "DOCKER DESKTOP NÃO ESTÁ EXECUTANDO",
|
|
56
|
-
"docker.instructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
57
|
-
"docker.installDocker": "1. Instalar Docker Desktop",
|
|
58
|
-
"docker.runDocker": "2. Executar Docker Desktop",
|
|
59
|
-
"docker.waitInitialization": "Aguardar inicialização completa",
|
|
60
|
-
"docker.repeatCommand": "3. Repetir o comando de backup",
|
|
61
|
-
"docker.download": "Download: https://docs.docker.com/desktop/install/",
|
|
62
|
-
"docker.tip": "Dica: Docker Desktop deve estar rodando em segundo plano",
|
|
63
|
-
"docker.required": "Docker Desktop é obrigatório para backup completo do Supabase",
|
|
64
|
-
"docker.requiredComponents": "Docker Desktop é obrigatório para backup completo do Supabase\n - Database PostgreSQL\n - Edge Functions\n - Todos os componentes via Supabase CLI",
|
|
65
|
-
"docker.cancelled": "Backup cancelado - Pré-requisitos não atendidos",
|
|
66
|
-
"docker.installComponents": "Instale os componentes necessários e tente novamente",
|
|
67
|
-
|
|
68
|
-
"supabase.cliNotFound": "SUPABASE CLI NÃO ENCONTRADO",
|
|
69
|
-
"supabase.installInstructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
70
|
-
"supabase.installCli": "1. Instalar Supabase CLI",
|
|
71
|
-
"supabase.repeatCommand": "2. Repetir o comando de backup",
|
|
72
|
-
"supabase.installLink": "Instalação: npm install -g supabase",
|
|
73
|
-
"supabase.required": "Supabase CLI é obrigatório para backup completo do Supabase",
|
|
74
|
-
"supabase.requiredComponents": "Supabase CLI é obrigatório para backup completo do Supabase\n - Database PostgreSQL\n - Edge Functions\n - Todos os componentes via Docker",
|
|
75
|
-
"supabase.cliVersionPolicy": "Política de versão: aceita qualquer versão até 1 minor atrás da latest (mesma major). Use --skip-supabase-version-check para pular a checagem.",
|
|
76
|
-
"supabase.cliUpdateRecommended": "Supabase CLI {version} detectado. Recomendamos sempre usar a versão mais recente para obter novos recursos e correções: https://supabase.com/docs/guides/cli/getting-started#updating-the-supabase-cli",
|
|
77
|
-
"supabase.cliOutdated": "Supabase CLI {version} está abaixo da versão mínima aceita ({minVersion}). Versão latest: {latest}. Atualize para pelo menos a versão {minVersion}.",
|
|
78
|
-
"supabase.cliVersionSkipWarning": "Checagem de versão do Supabase CLI desabilitada (--skip-supabase-version-check). Prosseguindo sem verificar a versão — o usuário assume o risco.",
|
|
79
|
-
"supabase.cliUpdateInstructions": "Atualize o Supabase CLI e execute o smoonb novamente:",
|
|
80
|
-
"supabase.cliUpdateCommandExamples": "Exemplos (conforme a forma de instalação):",
|
|
81
|
-
"supabase.cliUpdateCommandGlobal": "npm install -g supabase@latest (global)",
|
|
82
|
-
"supabase.cliUpdateCommandLocal": "npm install supabase@latest (local/projeto)",
|
|
83
|
-
"supabase.cliUpdateLink": "Documentação: https://supabase.com/docs/guides/cli/getting-started#updating-the-supabase-cli",
|
|
84
|
-
"supabase.cliLatestUnknown": "Não foi possível obter a última versão do Supabase CLI. Não é possível continuar.",
|
|
85
|
-
"supabase.cliLatestErrorLabel": "Erro:",
|
|
86
|
-
"supabase.cliLatestErrorUnknown": "Erro desconhecido",
|
|
87
|
-
|
|
88
|
-
"backup.components": "Componentes de Backup:",
|
|
89
|
-
"backup.database": "Database PostgreSQL (pg_dumpall + SQL separados)",
|
|
90
|
-
"backup.extensions": "Database Extensions and Settings",
|
|
91
|
-
"backup.roles": "Custom Roles",
|
|
92
|
-
"backup.functions": "Edge Functions",
|
|
93
|
-
"backup.auth": "Auth Settings",
|
|
94
|
-
"backup.storage": "Storage Buckets",
|
|
95
|
-
"backup.realtime": "Realtime Settings",
|
|
96
|
-
"backup.temp": "Supabase .temp",
|
|
97
|
-
"backup.migrations": "Migrations",
|
|
98
|
-
|
|
99
|
-
"restore.start": "Iniciando processo de restauração...",
|
|
100
|
-
"restore.done": "Restauração concluída!",
|
|
101
|
-
"restore.error": "Erro na restauração: {message}",
|
|
102
|
-
|
|
103
|
-
"config.title": "Configuração do smoonb...",
|
|
104
|
-
"config.init": "Inicializando configuração...",
|
|
105
|
-
"config.show": "Mostrando configuração...",
|
|
106
|
-
"config.options": "Opções disponíveis:",
|
|
107
|
-
"config.initOption": "--init Inicializar configuração",
|
|
108
|
-
"config.showOption": "--show Mostrar configuração atual",
|
|
109
|
-
"config.error": "Erro na configuração:",
|
|
110
|
-
"config.fileCreated": "Arquivo de configuração criado: {path}",
|
|
111
|
-
"config.fileExists": "Arquivo de configuração já existe: {path}",
|
|
112
|
-
"config.fileNotFound": "Arquivo de configuração não encontrado: {path}",
|
|
113
|
-
|
|
114
|
-
"functions.cliNotFound": "Supabase CLI não encontrado",
|
|
115
|
-
"functions.installCli": "Instale o Supabase CLI:",
|
|
116
|
-
"functions.installLink": "npm install -g supabase",
|
|
117
|
-
"functions.orVisit": "ou visite: https://supabase.com/docs/guides/cli",
|
|
118
|
-
"functions.availableCommands": "Comandos disponíveis para Edge Functions:",
|
|
119
|
-
"functions.list": "Listar functions:",
|
|
120
|
-
"functions.deploy": "Deploy functions:",
|
|
121
|
-
"functions.pull": "Pull functions (se disponível):",
|
|
122
|
-
"functions.moreOptions": "Para mais opções, use o Supabase CLI diretamente:",
|
|
123
|
-
"functions.error": "Erro: {message}",
|
|
124
|
-
|
|
125
|
-
"disclaimer.title": "Universal Disclaimer / Aviso Legal Universal",
|
|
126
|
-
"disclaimer.text": "Ao continuar, você reconhece e concorda que o Supa Moonbase (smoonb) é fornecido \"NO ESTADO EM QUE SE ENCONTRA\" (\"AS IS\") e \"CONFORME DISPONIBILIDADE\" (\"AS AVAILABLE\"), sem garantias de qualquer natureza—expressas, implícitas ou legais—incluindo, sem limitação, garantias de comercialização, adequação a um fim específico e não violação, na máxima extensão permitida pela lei aplicável. Operações de backup e restauração envolvem riscos inerentes, os ambientes variam amplamente e não podemos prever ou validar todas as configurações dos usuários. Você é o único responsável por validar seu próprio ambiente, manter cópias independentes e verificar os resultados antes de utilizá-los em produção. Construímos o Supa Moonbase (smoonb) com repositórios públicos, auditáveis e de código aberto para ajudar pessoas a simplificar seus fluxos de trabalho, mas isso não cria qualquer garantia, promessa de suporte ou compromisso de nível de serviço.",
|
|
127
|
-
"disclaimer.limitation": "Limitação de responsabilidade — Na máxima extensão permitida por lei, a Goalmoon Tecnologia LTDA, seus contribuidores e licenciadores não serão responsáveis por quaisquer danos indiretos, incidentais, especiais, consequentes, exemplares ou punitivos (incluindo perda de dados, interrupção de negócios ou lucros cessantes) decorrentes ou relacionados ao uso, incapacidade de uso, operações de backup/restauração realizadas por, ou resultados produzidos pelo Supa Moonbase (smoonb). Termos de Uso: https://www.smoonb.com/terms. Política de Privacidade: https://www.smoonb.com/privacy.",
|
|
128
|
-
"disclaimer.acceptBackup": "Você aceita os Termos de Uso e o Aviso de Risco de Backup?",
|
|
129
|
-
"disclaimer.acceptRestore": "Você aceita os Termos de Uso e o Aviso de Risco de Restauração?",
|
|
130
|
-
"disclaimer.acceptImport": "Você aceita os Termos de Uso e o Aviso de Risco de Importação?",
|
|
131
|
-
"disclaimer.operationCancelled": "Operação cancelada pelo usuário.",
|
|
132
|
-
|
|
133
|
-
"consent.title": "O smoonb irá ler e escrever o arquivo .env.local localmente.",
|
|
134
|
-
"consent.backup": "Um backup automático do .env.local será criado antes de qualquer alteração.",
|
|
135
|
-
"consent.mapping": "Vamos mapear suas variáveis de ambiente para garantir que todas as chaves necessárias estejam presentes e com os valores corretos do projeto de destino.",
|
|
136
|
-
"consent.proceed": "Você consente em prosseguir?",
|
|
137
|
-
|
|
138
|
-
"help.configuration": "CONFIGURAÇÃO:",
|
|
139
|
-
"help.configurationDesc": "Configure o .env.local com credenciais Supabase e SMOONB_LICENSE_KEY (obrigatória). Licença: cole a chave gerada no app desktop em https://www.smoonb.com. Opcional: SMOONB_TELEMETRY_ENABLED (padrão true), SMOONB_OUTPUT_DIR. O smoonb mapeia variáveis interativamente na primeira execução.",
|
|
140
|
-
"help.update": "ATUALIZAR PARA ÚLTIMA VERSÃO:",
|
|
141
|
-
"help.updateCommand": "npm install smoonb@latest",
|
|
142
|
-
"help.manual": "MANUAL DE USO - EXEMPLOS COMPLETOS:",
|
|
143
|
-
"help.backupTitle": "1. BACKUP - Fazer backup completo do projeto:",
|
|
144
|
-
"help.backupExample1": "npx smoonb backup",
|
|
145
|
-
"help.backupExample1Desc": "# Processo interativo que captura todos os componentes do Supabase",
|
|
146
|
-
"help.backupExample2": "npx smoonb backup --skip-realtime",
|
|
147
|
-
"help.backupExample2Desc": "# Pula a captura interativa de Realtime Settings",
|
|
148
|
-
"help.restoreTitle": "2. RESTORE - Restaurar backup em um projeto:",
|
|
149
|
-
"help.restoreExample1": "npx smoonb restore",
|
|
150
|
-
"help.restoreExample1Desc": "# Processo interativo que lista backups disponíveis e permite escolher",
|
|
151
|
-
"help.restoreExample2": "npx smoonb restore --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
152
|
-
"help.restoreExample2Desc": "# Importa e restaura diretamente o arquivo de backup (pula seleção)",
|
|
153
|
-
"help.restoreExample3": "npx smoonb restore --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
154
|
-
"help.restoreExample3Desc": "# Importa e restaura backup e storage juntos",
|
|
155
|
-
"help.importTitle": "3. IMPORT - Importar backup do Dashboard do Supabase:",
|
|
156
|
-
"help.importExample1": "npx smoonb import --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
157
|
-
"help.importExample1Desc": "# Importa apenas o arquivo de database",
|
|
158
|
-
"help.importExample2": "npx smoonb import --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
159
|
-
"help.importExample2Desc": "# Importa database e storage juntos (storage é opcional)",
|
|
160
|
-
"help.checkTitle": "4. CHECK - Verificar integridade após restauração:",
|
|
161
|
-
"help.checkExample1": "npx smoonb check",
|
|
162
|
-
"help.checkExample1Desc": "# Verifica conexão, extensões, tabelas, RLS, Realtime e Storage",
|
|
163
|
-
"help.tipsTitle": "💡 DICAS IMPORTANTES:",
|
|
164
|
-
"help.tip1": "• O comando import requer um arquivo de backup (.backup.gz), mas o storage (.storage.zip) é opcional",
|
|
165
|
-
"help.tip2": "• O storage depende de um backup, mas o backup não depende do storage",
|
|
166
|
-
"help.tip3": "• Use caminhos absolutos ou relativos para os arquivos no comando import",
|
|
167
|
-
"help.tip4": "• O formato do arquivo de backup deve ser: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz",
|
|
168
|
-
"help.tip5": "• O formato do arquivo de storage deve ser: *.storage.zip",
|
|
169
|
-
|
|
170
|
-
"help.commands.backupDesc": "Fazer backup completo do projeto Supabase usando Supabase CLI",
|
|
171
|
-
"help.commands.skipSupabaseVersionCheck": "Pular checagem de versão do Supabase CLI (o usuário assume o risco)",
|
|
172
|
-
"help.commands.backupSkipRealtime": "Pular captura interativa de Realtime Settings",
|
|
173
|
-
"help.commands.backupPostgresMajor": "Versão major do Postgres para o dump (15, 17). Não interativo; sem menu.",
|
|
174
|
-
"help.commands.backupExamples": "Exemplos:",
|
|
175
|
-
"help.commands.backupExample1": "npx smoonb backup",
|
|
176
|
-
"help.commands.backupExample1Desc": "# Processo interativo completo",
|
|
177
|
-
"help.commands.backupExample2": "npx smoonb backup --skip-realtime",
|
|
178
|
-
"help.commands.backupExample2Desc": "# Pula configuração de Realtime Settings",
|
|
179
|
-
"help.commands.backupExample3": "npx smoonb backup --skip-supabase-version-check",
|
|
180
|
-
"help.commands.backupExample3Desc": "# Pula checagem de versão do Supabase CLI (use quando seu gerenciador de pacotes instala com atraso, ex.: Scoop)",
|
|
181
|
-
"help.commands.backupWhat": "O que é capturado:",
|
|
182
|
-
"help.commands.backupWhat1": "• Database PostgreSQL (pg_dumpall + SQL separado)",
|
|
183
|
-
"help.commands.backupWhat2": "• Database Extensions and Settings",
|
|
184
|
-
"help.commands.backupWhat3": "• Custom Roles",
|
|
185
|
-
"help.commands.backupWhat4": "• Edge Functions (download automático)",
|
|
186
|
-
"help.commands.backupWhat5": "• Auth Settings (via Management API)",
|
|
187
|
-
"help.commands.backupWhat6": "• Storage Buckets (metadados via Management API)",
|
|
188
|
-
"help.commands.backupWhat7": "• Realtime Settings (7 parâmetros interativos)",
|
|
189
|
-
"help.commands.backupWhat8": "• Supabase .temp (arquivos temporários)",
|
|
190
|
-
"help.commands.backupWhat9": "• Migrations (todas as migrations do projeto)",
|
|
191
|
-
"help.commands.backupPostgresMajorEnv": "Obrigatório para backup e restore: SUPABASE_POSTGRES_MAJOR=15 ou 17 (em .env.local ou ambiente).",
|
|
192
|
-
"help.commands.backupPostgresVersionInDashboardTitle": "Onde ver a versão do Postgres (Supabase Dashboard)",
|
|
193
|
-
"help.commands.backupPostgresVersionInDashboardBody": "Project Settings -> Infrastructure -> Service Versions (linha do Postgres). Use essa major em SUPABASE_POSTGRES_MAJOR.",
|
|
194
|
-
"help.commands.backupFlow": "Fluxo do backup:",
|
|
195
|
-
"help.commands.backupFlow1": "1. Termo de uso",
|
|
196
|
-
"help.commands.backupFlow2": "2. Validação de licença (SMOONB_LICENSE_KEY)",
|
|
197
|
-
"help.commands.backupFlow3": "3. Validação Docker",
|
|
198
|
-
"help.commands.backupFlow4": "4. Consentimento para ler/escrever .env.local",
|
|
199
|
-
"help.commands.backupFlow5": "5. Mapeamento de variáveis (licença não entra no wizard)",
|
|
200
|
-
"help.commands.backupFlow6": "6. Seleção de componentes",
|
|
201
|
-
"help.commands.backupFlow7": "7. Resumo e confirmação",
|
|
202
|
-
"help.commands.backupFlow8": "8. Execução",
|
|
203
|
-
|
|
204
|
-
"help.commands.restoreDesc": "Restaurar backup completo usando psql (modo interativo)",
|
|
205
|
-
"help.commands.restoreFile": "Caminho completo do arquivo .backup.gz a importar e restaurar (opcional)",
|
|
206
|
-
"help.commands.restoreStorage": "Caminho completo do arquivo .storage.zip a importar junto com o backup (opcional)",
|
|
207
|
-
"help.commands.restoreExamples": "Exemplos:",
|
|
208
|
-
"help.commands.restoreExample1": "npx smoonb restore",
|
|
209
|
-
"help.commands.restoreExample1Desc": "# Processo interativo que lista backups disponíveis",
|
|
210
|
-
"help.commands.restoreExample2": "npx smoonb restore --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
211
|
-
"help.commands.restoreExample2Desc": "# Importa e restaura diretamente o arquivo de backup",
|
|
212
|
-
"help.commands.restoreExample3": "npx smoonb restore --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
213
|
-
"help.commands.restoreExample3Desc": "# Importa e restaura backup e storage juntos",
|
|
214
|
-
"help.commands.restoreExample4": "npx smoonb restore --skip-supabase-version-check",
|
|
215
|
-
"help.commands.restoreExample4Desc": "# Pula checagem de versão do Supabase CLI (use quando seu gerenciador de pacotes instala com atraso, ex.: Scoop)",
|
|
216
|
-
"help.commands.restoreFlow": "Fluxo do restore:",
|
|
217
|
-
"help.commands.restoreFlow1": "1. Termo de uso",
|
|
218
|
-
"help.commands.restoreFlow2": "2. Validação de licença (SMOONB_LICENSE_KEY)",
|
|
219
|
-
"help.commands.restoreFlow3": "3. Validação Docker",
|
|
220
|
-
"help.commands.restoreFlow4": "4. Consentimento para ler/escrever .env.local",
|
|
221
|
-
"help.commands.restoreFlow5": "5. Mapeamento de variáveis (inclui SUPABASE_POSTGRES_MAJOR)",
|
|
222
|
-
"help.commands.restoreFlow6": "6. Seleção de backup",
|
|
223
|
-
"help.commands.restoreFlow7": "7. Seleção de componentes para restaurar",
|
|
224
|
-
"help.commands.restoreFlow8": "8. Resumo e confirmação",
|
|
225
|
-
"help.commands.restoreFlow9": "9. Aviso: erros esperados durante a restauração (link doc Supabase); aguardar término e testar resultado",
|
|
226
|
-
"help.commands.restoreFlow10": "10. Execução da restauração",
|
|
227
|
-
"help.commands.restoreWhenFile": "Quando usar --file:",
|
|
228
|
-
"help.commands.restoreWhenFile1": "• Importa automaticamente o arquivo de backup antes de restaurar",
|
|
229
|
-
"help.commands.restoreWhenFile2": "• Elimina a etapa de seleção de backup",
|
|
230
|
-
"help.commands.restoreWhenFile3": "• Se --storage fornecido, importa também o arquivo de storage",
|
|
231
|
-
"help.commands.restoreWhenFile4": "• Útil para restaurar backups baixados diretamente do Dashboard",
|
|
232
|
-
"help.commands.restoreFormats": "Formatos suportados:",
|
|
233
|
-
"help.commands.restoreFormats1": "• .backup.gz (compactado) - Descompacta automaticamente",
|
|
234
|
-
"help.commands.restoreFormats2": "• .backup (descompactado) - Restaura diretamente",
|
|
235
|
-
|
|
236
|
-
"help.commands.checkDesc": "Verificar integridade do projeto Supabase após restauração",
|
|
237
|
-
"help.commands.checkExamples": "Exemplos:",
|
|
238
|
-
"help.commands.checkExample1": "npx smoonb check",
|
|
239
|
-
"help.commands.checkExample1Desc": "# Verifica integridade e exibe relatório no console",
|
|
240
|
-
"help.commands.checkWhat": "O que é verificado:",
|
|
241
|
-
"help.commands.checkWhat1": "• Conexão com database",
|
|
242
|
-
"help.commands.checkWhat2": "• Extensões PostgreSQL instaladas",
|
|
243
|
-
"help.commands.checkWhat3": "• Tabelas criadas",
|
|
244
|
-
"help.commands.checkWhat4": "• Políticas RLS (Row Level Security)",
|
|
245
|
-
"help.commands.checkWhat5": "• Publicações Realtime",
|
|
246
|
-
"help.commands.checkWhat6": "• Buckets de Storage",
|
|
247
|
-
|
|
248
|
-
"help.commands.importDesc": "Importar arquivo .backup.gz e opcionalmente .storage.zip do Dashboard do Supabase",
|
|
249
|
-
"help.commands.importFile": "Caminho completo do arquivo .backup.gz a importar",
|
|
250
|
-
"help.commands.importStorage": "Caminho completo do arquivo .storage.zip a importar (opcional)",
|
|
251
|
-
"help.commands.importExamples": "Exemplos:",
|
|
252
|
-
"help.commands.importExample1": "npx smoonb import --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
253
|
-
"help.commands.importExample1Desc": "# Importa apenas o arquivo de database",
|
|
254
|
-
"help.commands.importExample2": "npx smoonb import --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
255
|
-
"help.commands.importExample2Desc": "# Importa database e storage juntos",
|
|
256
|
-
"help.commands.importFormats": "Formato dos arquivos:",
|
|
257
|
-
"help.commands.importFormats1": "• Backup: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz (obrigatório)",
|
|
258
|
-
"help.commands.importFormats2": "• Storage: *.storage.zip (opcional)",
|
|
259
|
-
"help.commands.importImportant": "Importante:",
|
|
260
|
-
"help.commands.importImportant1": "• O arquivo de backup é obrigatório",
|
|
261
|
-
"help.commands.importImportant2": "• O arquivo de storage é opcional e depende de um backup",
|
|
262
|
-
"help.commands.importImportant3": "• Ambos os arquivos serão copiados para a mesma pasta de backup",
|
|
263
|
-
"help.commands.importImportant4": "• O backup importado ficará disponível para o comando restore",
|
|
264
|
-
"help.commands.importImportant5": "• Use caminhos absolutos ou relativos",
|
|
265
|
-
|
|
266
|
-
"quickHelp.title": "COMANDOS PRINCIPAIS:",
|
|
267
|
-
"quickHelp.backupTitle": "Backup completo:",
|
|
268
|
-
"quickHelp.backupDesc": "npx smoonb backup # Backup completo interativo usando Docker",
|
|
269
|
-
"quickHelp.restoreTitle": "Restauração completa:",
|
|
270
|
-
"quickHelp.restoreDesc": "npx smoonb restore # Restauração interativa usando psql (Docker)",
|
|
271
|
-
"quickHelp.checkTitle": "Verificação pós-restore:",
|
|
272
|
-
"quickHelp.checkDesc": "npx smoonb check # Verifica integridade do projeto",
|
|
273
|
-
"quickHelp.configuration": "CONFIGURAÇÃO:",
|
|
274
|
-
"quickHelp.configurationDesc": "Configure o arquivo .env.local na raiz do projeto com suas credenciais Supabase. O smoonb irá mapear as variáveis interativamente na primeira execução.",
|
|
275
|
-
"quickHelp.tokenTitle": "PERSONAL ACCESS TOKEN (OBRIGATÓRIO):",
|
|
276
|
-
"quickHelp.tokenDesc": "Para Management API (Edge Functions, Auth Settings, Storage):",
|
|
277
|
-
"quickHelp.tokenStep1": "1. Acesse: https://supabase.com/dashboard/account/tokens",
|
|
278
|
-
"quickHelp.tokenStep2": "2. Clique em \"Generate new token\"",
|
|
279
|
-
"quickHelp.tokenStep3": "3. Copie o token (formato: sbp_...)",
|
|
280
|
-
"quickHelp.tokenStep4": "4. Adicione ao .env.local como SUPABASE_ACCESS_TOKEN",
|
|
281
|
-
"quickHelp.update": "ATUALIZAR PARA ÚLTIMA VERSÃO:",
|
|
282
|
-
"quickHelp.updateCommand": "npm install smoonb@latest",
|
|
283
|
-
|
|
284
|
-
"docker.validation.title": "Validação Docker",
|
|
285
|
-
"docker.validation.checking": "Verificando dependências Docker...",
|
|
286
|
-
"docker.validation.detected": "Docker Desktop detectado e funcionando",
|
|
287
|
-
"docker.validation.version": "Versão: {version}",
|
|
288
|
-
|
|
289
|
-
"license.promptPaste": "Cole aqui a licença gerada no app desktop:",
|
|
290
|
-
"license.required": "A chave de licença é obrigatória.",
|
|
291
|
-
"license.validationUnavailable": "Não foi possível validar sua licença agora.",
|
|
292
|
-
"license.checkConnection": "Verifique sua conexão e tente novamente.",
|
|
293
|
-
"license.invalidOrInactive": "Sua licença é inválida ou sua assinatura não está ativa.",
|
|
294
|
-
"license.openDesktopApp": "Abra o app desktop, verifique sua assinatura e gere uma nova licença.",
|
|
295
|
-
"license.denied.title": "Validação de licença negada pelo servidor.",
|
|
296
|
-
"license.denied.reason": "Motivo: {reason}",
|
|
297
|
-
"license.denied.alreadyBound": "Esta licença já está vinculada a outra máquina e não pode ser transferida.",
|
|
298
|
-
"license.denied.alreadyBoundAction": "Para usar o smoonb nesta máquina, revogue esta licença no app desktop e gere uma nova: {url}",
|
|
299
|
-
"license.denied.correlationId": "Correlation ID: {id}",
|
|
300
|
-
"license.trialNotice": "Você está usando uma licença trial.",
|
|
301
|
-
"license.error.title": "Falha na validação da licença.",
|
|
302
|
-
"license.error.whatHappened": "O que aconteceu:",
|
|
303
|
-
"license.error.typeHttp": "Tipo: erro HTTP",
|
|
304
|
-
"license.error.typeNetwork": "Tipo: erro de rede",
|
|
305
|
-
"license.error.typeTls": "Tipo: erro TLS / certificado",
|
|
306
|
-
"license.error.typeParse": "Tipo: formato de resposta inesperado da API",
|
|
307
|
-
"license.error.testConnectivity": "Para testar conectividade: GET {url}",
|
|
308
|
-
"license.error.status": "Status: {status}",
|
|
309
|
-
"license.error.endpoint": "Endpoint: {endpoint}",
|
|
310
|
-
"license.error.correlationId": "Correlation ID: {id}",
|
|
311
|
-
"license.error.howToHelp": "Como obter ajuda (Suporte > Mensagens):",
|
|
312
|
-
"license.error.supportStep1": "Acesse {url}",
|
|
313
|
-
"license.error.supportStep2": "Abra \"Support\" (menu lateral)",
|
|
314
|
-
"license.error.supportStep3": "Clique em \"Messages\"",
|
|
315
|
-
"license.error.supportStep4": "Clique em \"New Message\"",
|
|
316
|
-
"license.error.supportStep5": "Cole o bundle de diagnóstico abaixo e envie",
|
|
317
|
-
"license.error.visit": "Acesse: {url}",
|
|
318
|
-
"license.error.subjectSuggestion": "Assunto (copiar/colar): \"Falha na validação da licença (Correlation ID: {id})\"",
|
|
319
|
-
"license.error.messageSuggestion": "Mensagem: \"Não consigo validar minha licença no CLI. Segue o bundle de diagnóstico:\" e cole o bundle abaixo.",
|
|
320
|
-
|
|
321
|
-
"env.licenseKey.help": "Cole a licença gerada no app desktop.",
|
|
322
|
-
"env.telemetry.help": "Defina como false para desativar telemetria (padrão: true).",
|
|
323
|
-
|
|
324
|
-
"env.supabasePostgresMajor.hintTitle": "Como conferir a versão do Postgres no Supabase",
|
|
325
|
-
"env.supabasePostgresMajor.hintPath": "Project Settings -> Infrastructure -> Service Versions",
|
|
326
|
-
"env.supabasePostgresMajor.hintBody": "Verifique a linha do Postgres e use a major (ex.: 15 ou 17) para preencher SUPABASE_POSTGRES_MAJOR.",
|
|
327
|
-
|
|
328
|
-
"env.mapping.title": "Mapeando variável: {variable}",
|
|
329
|
-
"env.mapping.selectKey": "Selecione a chave correspondente para: {expected}",
|
|
330
|
-
"env.mapping.addNew": "Adicione uma nova chave para mim",
|
|
331
|
-
"env.mapping.currentValue": "Valor atual: {value}",
|
|
332
|
-
"env.mapping.isCorrect": "Este é o valor correto do projeto alvo?",
|
|
333
|
-
"env.mapping.notFound": "Não foi encontrada uma entrada para a variável {variable}.",
|
|
334
|
-
"env.mapping.backupCreated": "Backup do .env.local: {path}",
|
|
335
|
-
"env.mapping.fileNotFound": "Arquivo .env.local não encontrado. Será criado durante o mapeamento.",
|
|
336
|
-
"env.mapping.updated": ".env.local atualizado com sucesso. Nenhuma chave renomeada; valores sincronizados.",
|
|
337
|
-
"env.language.selectDefault": "Qual o idioma padrão?",
|
|
338
|
-
"env.language.english": "Inglês (English)",
|
|
339
|
-
"env.language.portuguese": "Português (pt-BR)",
|
|
340
|
-
"env.language.saved": "Idioma padrão salvo: {lang}",
|
|
341
|
-
"env.language.note": "Nota: A mudança de idioma será efetiva nos próximos comandos. O processo atual continuará no idioma inicial.",
|
|
342
|
-
|
|
343
|
-
"backup.components.edgeFunctions.title": "Edge Functions:",
|
|
344
|
-
"backup.components.edgeFunctions.description1": "Vamos apagar as funções existentes na pasta supabase/functions, fazer um reset no link",
|
|
345
|
-
"backup.components.edgeFunctions.description2": "entre a ferramenta e o projeto, e baixar novamente as funções do servidor.",
|
|
346
|
-
"backup.components.edgeFunctions.description3": "Você terá a opção de manter ou apagar as funções na pasta após o backup.",
|
|
347
|
-
"backup.components.edgeFunctions.include": "Deseja incluir Edge Functions",
|
|
348
|
-
"backup.components.edgeFunctions.cleanup": "Deseja limpar supabase/functions após o backup",
|
|
349
|
-
|
|
350
|
-
"backup.components.temp.title": "Supabase .temp:",
|
|
351
|
-
"backup.components.temp.description1": "Vamos copiar os arquivos existentes (se existirem) na pasta supabase/.temp.",
|
|
352
|
-
"backup.components.temp.description2": "Você terá a opção de manter ou apagar os arquivos nesta pasta após o backup.",
|
|
353
|
-
"backup.components.temp.include": "Deseja incluir Supabase .temp",
|
|
354
|
-
"backup.components.temp.cleanup": "Deseja apagar supabase/.temp após o backup",
|
|
355
|
-
|
|
356
|
-
"backup.components.migrations.title": "Migrations:",
|
|
357
|
-
"backup.components.migrations.description1": "Vamos apagar as migrations existentes (se existirem) na pasta supabase/migrations,",
|
|
358
|
-
"backup.components.migrations.description2": "fazer um reset no link entre a ferramenta e o projeto, e baixar novamente as migrations",
|
|
359
|
-
"backup.components.migrations.description3": "do servidor. Você terá a opção de manter ou apagar as migrations na pasta após o backup.",
|
|
360
|
-
"backup.components.migrations.include": "Deseja incluir Migrations",
|
|
361
|
-
"backup.components.migrations.cleanup": "Deseja apagar supabase/migrations após o backup",
|
|
362
|
-
|
|
363
|
-
"backup.components.storage.include": "Deseja incluir Storage",
|
|
364
|
-
"backup.components.auth.include": "Deseja incluir Auth",
|
|
365
|
-
"backup.components.realtime.include": "Deseja incluir Realtime",
|
|
366
|
-
|
|
367
|
-
"backup.summary.title": "RESUMO DAS CONFIGURAÇÕES:",
|
|
368
|
-
"backup.summary.edgeFunctions": "Edge Functions: {value}",
|
|
369
|
-
"backup.summary.edgeFunctionsCleanup": "Limpar após backup: {value}",
|
|
370
|
-
"backup.summary.temp": "Supabase .temp: {value}",
|
|
371
|
-
"backup.summary.tempCleanup": "Apagar após backup: {value}",
|
|
372
|
-
"backup.summary.migrations": "Migrations: {value}",
|
|
373
|
-
"backup.summary.migrationsCleanup": "Apagar após backup: {value}",
|
|
374
|
-
"backup.summary.storage": "Storage: {value}",
|
|
375
|
-
"backup.summary.auth": "Auth: {value}",
|
|
376
|
-
"backup.summary.realtime": "Realtime: {value}",
|
|
377
|
-
"backup.summary.backupDir": "Diretório de backup: {path}",
|
|
378
|
-
"backup.summary.confirm": "Deseja iniciar o backup com estas configurações?",
|
|
379
|
-
"backup.summary.yes": "Sim",
|
|
380
|
-
"backup.summary.no": "Não",
|
|
381
|
-
|
|
382
|
-
"backup.start.title": "Iniciando backup do projeto: {projectId}",
|
|
383
|
-
"backup.start.directory": "Diretório: {path}",
|
|
384
|
-
"backup.start.docker": "Backup via Docker Desktop",
|
|
385
|
-
|
|
386
|
-
"backup.steps.postgresVersion.title": "Versão do Postgres",
|
|
387
|
-
"backup.steps.postgresVersion.found": "Versão do Postgres encontrada: major {major} (imagem {image}).",
|
|
388
|
-
"backup.steps.postgresVersion.proceedWith": "Seguiremos com esta versão. Você pode sobrescrever abaixo.",
|
|
389
|
-
"backup.steps.postgresVersion.selectVersion": "Selecione a versão da imagem Postgres para o dump:",
|
|
390
|
-
"backup.steps.postgresVersion.useDetected": "Usar detectada (postgres:{major})",
|
|
391
|
-
"backup.steps.postgresVersion.selected": "Usando imagem: {image}",
|
|
392
|
-
"backup.steps.postgresVersion.detectError": "Não foi possível detectar a versão do servidor: {message}",
|
|
393
|
-
"backup.steps.postgresVersion.usingDefault": "Usando padrão postgres:17",
|
|
394
|
-
"backup.steps.postgresVersion.useSuggested": "Usar sugerida (postgres:{major})",
|
|
395
|
-
"backup.steps.postgresVersion.showAdvanced": "Mostrar versões avançadas…",
|
|
396
|
-
"backup.steps.postgresVersion.advancedTitle": "Versões avançadas do Postgres",
|
|
397
|
-
"backup.steps.postgresVersion.back": "Voltar",
|
|
398
|
-
"backup.steps.postgresVersion.invalidCli": "Valor inválido em --postgres-major. Suportadas: 15, 17 (ou 16, 18 avançado).",
|
|
399
|
-
"backup.steps.postgresVersion.postgresMajorRequired": "Versão do Postgres não definida. Execute o passo de versão primeiro ou use --postgres-major.",
|
|
400
|
-
"backup.steps.postgresVersion.dashboardHintTitle": "Dica: confirme a versão no Supabase Dashboard",
|
|
401
|
-
"backup.steps.postgresVersion.dashboardHintPath": "Project Settings -> Infrastructure -> Service Versions",
|
|
402
|
-
"backup.steps.postgresVersion.dashboardHintWhy": "Use a major mostrada na linha do Postgres ao escolher no menu.",
|
|
403
|
-
|
|
404
|
-
"backup.steps.database.title": "Backup da Database PostgreSQL via pg_dumpall Docker...",
|
|
405
|
-
"backup.steps.database.creating": "Criando backup completo via pg_dumpall...",
|
|
406
|
-
"backup.steps.database.postgresImage": "Usando imagem: {image} (major {major})",
|
|
407
|
-
"backup.steps.database.executing": "Executando pg_dumpall via Docker...",
|
|
408
|
-
"backup.steps.database.versionMismatch": "pg_dumpall falhou (possível incompatibilidade de versão). Execute novamente e escolha a major correta no menu, ou use --postgres-major <15|17>.",
|
|
409
|
-
"backup.steps.database.progress.eta": "ETA",
|
|
410
|
-
"backup.steps.database.separated.title": "Backup da Database PostgreSQL (arquivos SQL separados)...",
|
|
411
|
-
"backup.steps.database.separated.creating": "Criando backups SQL separados via Supabase CLI...",
|
|
412
|
-
"backup.steps.database.separated.exportingSchema": "Exportando schema...",
|
|
413
|
-
"backup.steps.database.separated.exportingData": "Exportando dados...",
|
|
1
|
+
{
|
|
2
|
+
"app.title": "Supa Moonbase (smoonb)",
|
|
3
|
+
"app.tagline": "Backup e restauração: completo e simples, como deveria ser",
|
|
4
|
+
"app.developedBy": "Desenvolvido por: Goalmoon Tecnologia LTDA",
|
|
5
|
+
"app.website": "Website: https://www.smoonb.com",
|
|
6
|
+
"app.documentation": "Documentação: https://github.com/almmello/smoonb",
|
|
7
|
+
"app.issues": "Issues: https://github.com/almmello/smoonb/issues",
|
|
8
|
+
|
|
9
|
+
"help.header": "Comandos",
|
|
10
|
+
"help.usage": "Uso",
|
|
11
|
+
"help.footer": "Use \"{cmd} help [command]\" para mais informações sobre um comando.",
|
|
12
|
+
"help.commands.backup": "Fazer backup completo do projeto Supabase",
|
|
13
|
+
"help.commands.restore": "Restaurar backup completo (modo interativo com psql)",
|
|
14
|
+
"help.commands.check": "Verificar integridade do projeto após restauração",
|
|
15
|
+
"help.commands.import": "Importar backup do Dashboard e preparar a estrutura para restauração",
|
|
16
|
+
|
|
17
|
+
"prompt.confirm": "Continuar?",
|
|
18
|
+
"prompt.confirmYes": "(S/n)",
|
|
19
|
+
"prompt.confirmNo": "(s/N)",
|
|
20
|
+
"prompt.cancelled": "Operação cancelada.",
|
|
21
|
+
|
|
22
|
+
"error.generic": "Algo inesperado aconteceu.",
|
|
23
|
+
"error.pathNotFound": "Caminho não encontrado: {path}",
|
|
24
|
+
"error.permissionDenied": "Permissão negada: {path}",
|
|
25
|
+
"error.commandNotFound": "Comando não reconhecido: {command}",
|
|
26
|
+
"error.useHelp": "Use {cmd} --help para ver comandos disponíveis",
|
|
27
|
+
"error.uncaughtException": "Erro não tratado: {message}",
|
|
28
|
+
"error.unhandledRejection": "Promise rejeitada não tratada: {reason}",
|
|
29
|
+
|
|
30
|
+
"import.start": "Preparando a estrutura de diretórios para o backup importado...",
|
|
31
|
+
"import.scaffoldOnly": "Criando apenas a estrutura, sem mover arquivos.",
|
|
32
|
+
"import.done": "Importação concluída. Pronto para restaurar.",
|
|
33
|
+
"import.fileRequired": "Arquivo de backup não fornecido",
|
|
34
|
+
"import.fileNotFound": "Arquivo de backup não encontrado: {path}",
|
|
35
|
+
"import.invalidFormat": "Arquivo de backup deve ser .backup.gz ou .backup",
|
|
36
|
+
"import.storageNotFound": "Arquivo de storage não encontrado: {path}",
|
|
37
|
+
"import.storageInvalidFormat": "Arquivo de storage deve ser .storage.zip",
|
|
38
|
+
"import.invalidFileName": "Nome do arquivo de backup não está no formato esperado do Dashboard",
|
|
39
|
+
"import.expectedFormat": "Formato esperado: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz",
|
|
40
|
+
"import.fileReceived": "Arquivo recebido: {fileName}",
|
|
41
|
+
"import.success": "Arquivo de backup importado com sucesso!",
|
|
42
|
+
"import.storageSuccess": "Arquivo de storage importado com sucesso!",
|
|
43
|
+
"import.nextStep": "Próximo passo: Execute 'npx smoonb restore' para restaurar este backup",
|
|
44
|
+
|
|
45
|
+
"check.start": "Verificando integridade do projeto: {projectId}",
|
|
46
|
+
"check.done": "Verificação concluída!",
|
|
47
|
+
"check.reportSaved": "Relatório salvo em: {path}",
|
|
48
|
+
"check.error": "Erro na verificação: {message}",
|
|
49
|
+
"check.psqlNotFound": "psql não encontrado",
|
|
50
|
+
"check.installPostgres": "Instale PostgreSQL:",
|
|
51
|
+
"check.databaseUrlNotConfigured": "databaseUrl não configurada",
|
|
52
|
+
"check.configureDatabaseUrl": "Configure databaseUrl no .smoonbrc",
|
|
53
|
+
|
|
54
|
+
"docker.notInstalled": "DOCKER DESKTOP NÃO ENCONTRADO",
|
|
55
|
+
"docker.notRunning": "DOCKER DESKTOP NÃO ESTÁ EXECUTANDO",
|
|
56
|
+
"docker.instructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
57
|
+
"docker.installDocker": "1. Instalar Docker Desktop",
|
|
58
|
+
"docker.runDocker": "2. Executar Docker Desktop",
|
|
59
|
+
"docker.waitInitialization": "Aguardar inicialização completa",
|
|
60
|
+
"docker.repeatCommand": "3. Repetir o comando de backup",
|
|
61
|
+
"docker.download": "Download: https://docs.docker.com/desktop/install/",
|
|
62
|
+
"docker.tip": "Dica: Docker Desktop deve estar rodando em segundo plano",
|
|
63
|
+
"docker.required": "Docker Desktop é obrigatório para backup completo do Supabase",
|
|
64
|
+
"docker.requiredComponents": "Docker Desktop é obrigatório para backup completo do Supabase\n - Database PostgreSQL\n - Edge Functions\n - Todos os componentes via Supabase CLI",
|
|
65
|
+
"docker.cancelled": "Backup cancelado - Pré-requisitos não atendidos",
|
|
66
|
+
"docker.installComponents": "Instale os componentes necessários e tente novamente",
|
|
67
|
+
|
|
68
|
+
"supabase.cliNotFound": "SUPABASE CLI NÃO ENCONTRADO",
|
|
69
|
+
"supabase.installInstructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
70
|
+
"supabase.installCli": "1. Instalar Supabase CLI",
|
|
71
|
+
"supabase.repeatCommand": "2. Repetir o comando de backup",
|
|
72
|
+
"supabase.installLink": "Instalação: npm install -g supabase",
|
|
73
|
+
"supabase.required": "Supabase CLI é obrigatório para backup completo do Supabase",
|
|
74
|
+
"supabase.requiredComponents": "Supabase CLI é obrigatório para backup completo do Supabase\n - Database PostgreSQL\n - Edge Functions\n - Todos os componentes via Docker",
|
|
75
|
+
"supabase.cliVersionPolicy": "Política de versão: aceita qualquer versão até 1 minor atrás da latest (mesma major). Use --skip-supabase-version-check para pular a checagem.",
|
|
76
|
+
"supabase.cliUpdateRecommended": "Supabase CLI {version} detectado. Recomendamos sempre usar a versão mais recente para obter novos recursos e correções: https://supabase.com/docs/guides/cli/getting-started#updating-the-supabase-cli",
|
|
77
|
+
"supabase.cliOutdated": "Supabase CLI {version} está abaixo da versão mínima aceita ({minVersion}). Versão latest: {latest}. Atualize para pelo menos a versão {minVersion}.",
|
|
78
|
+
"supabase.cliVersionSkipWarning": "Checagem de versão do Supabase CLI desabilitada (--skip-supabase-version-check). Prosseguindo sem verificar a versão — o usuário assume o risco.",
|
|
79
|
+
"supabase.cliUpdateInstructions": "Atualize o Supabase CLI e execute o smoonb novamente:",
|
|
80
|
+
"supabase.cliUpdateCommandExamples": "Exemplos (conforme a forma de instalação):",
|
|
81
|
+
"supabase.cliUpdateCommandGlobal": "npm install -g supabase@latest (global)",
|
|
82
|
+
"supabase.cliUpdateCommandLocal": "npm install supabase@latest (local/projeto)",
|
|
83
|
+
"supabase.cliUpdateLink": "Documentação: https://supabase.com/docs/guides/cli/getting-started#updating-the-supabase-cli",
|
|
84
|
+
"supabase.cliLatestUnknown": "Não foi possível obter a última versão do Supabase CLI. Não é possível continuar.",
|
|
85
|
+
"supabase.cliLatestErrorLabel": "Erro:",
|
|
86
|
+
"supabase.cliLatestErrorUnknown": "Erro desconhecido",
|
|
87
|
+
|
|
88
|
+
"backup.components": "Componentes de Backup:",
|
|
89
|
+
"backup.database": "Database PostgreSQL (pg_dumpall + SQL separados)",
|
|
90
|
+
"backup.extensions": "Database Extensions and Settings",
|
|
91
|
+
"backup.roles": "Custom Roles",
|
|
92
|
+
"backup.functions": "Edge Functions",
|
|
93
|
+
"backup.auth": "Auth Settings",
|
|
94
|
+
"backup.storage": "Storage Buckets",
|
|
95
|
+
"backup.realtime": "Realtime Settings",
|
|
96
|
+
"backup.temp": "Supabase .temp",
|
|
97
|
+
"backup.migrations": "Migrations",
|
|
98
|
+
|
|
99
|
+
"restore.start": "Iniciando processo de restauração...",
|
|
100
|
+
"restore.done": "Restauração concluída!",
|
|
101
|
+
"restore.error": "Erro na restauração: {message}",
|
|
102
|
+
|
|
103
|
+
"config.title": "Configuração do smoonb...",
|
|
104
|
+
"config.init": "Inicializando configuração...",
|
|
105
|
+
"config.show": "Mostrando configuração...",
|
|
106
|
+
"config.options": "Opções disponíveis:",
|
|
107
|
+
"config.initOption": "--init Inicializar configuração",
|
|
108
|
+
"config.showOption": "--show Mostrar configuração atual",
|
|
109
|
+
"config.error": "Erro na configuração:",
|
|
110
|
+
"config.fileCreated": "Arquivo de configuração criado: {path}",
|
|
111
|
+
"config.fileExists": "Arquivo de configuração já existe: {path}",
|
|
112
|
+
"config.fileNotFound": "Arquivo de configuração não encontrado: {path}",
|
|
113
|
+
|
|
114
|
+
"functions.cliNotFound": "Supabase CLI não encontrado",
|
|
115
|
+
"functions.installCli": "Instale o Supabase CLI:",
|
|
116
|
+
"functions.installLink": "npm install -g supabase",
|
|
117
|
+
"functions.orVisit": "ou visite: https://supabase.com/docs/guides/cli",
|
|
118
|
+
"functions.availableCommands": "Comandos disponíveis para Edge Functions:",
|
|
119
|
+
"functions.list": "Listar functions:",
|
|
120
|
+
"functions.deploy": "Deploy functions:",
|
|
121
|
+
"functions.pull": "Pull functions (se disponível):",
|
|
122
|
+
"functions.moreOptions": "Para mais opções, use o Supabase CLI diretamente:",
|
|
123
|
+
"functions.error": "Erro: {message}",
|
|
124
|
+
|
|
125
|
+
"disclaimer.title": "Universal Disclaimer / Aviso Legal Universal",
|
|
126
|
+
"disclaimer.text": "Ao continuar, você reconhece e concorda que o Supa Moonbase (smoonb) é fornecido \"NO ESTADO EM QUE SE ENCONTRA\" (\"AS IS\") e \"CONFORME DISPONIBILIDADE\" (\"AS AVAILABLE\"), sem garantias de qualquer natureza—expressas, implícitas ou legais—incluindo, sem limitação, garantias de comercialização, adequação a um fim específico e não violação, na máxima extensão permitida pela lei aplicável. Operações de backup e restauração envolvem riscos inerentes, os ambientes variam amplamente e não podemos prever ou validar todas as configurações dos usuários. Você é o único responsável por validar seu próprio ambiente, manter cópias independentes e verificar os resultados antes de utilizá-los em produção. Construímos o Supa Moonbase (smoonb) com repositórios públicos, auditáveis e de código aberto para ajudar pessoas a simplificar seus fluxos de trabalho, mas isso não cria qualquer garantia, promessa de suporte ou compromisso de nível de serviço.",
|
|
127
|
+
"disclaimer.limitation": "Limitação de responsabilidade — Na máxima extensão permitida por lei, a Goalmoon Tecnologia LTDA, seus contribuidores e licenciadores não serão responsáveis por quaisquer danos indiretos, incidentais, especiais, consequentes, exemplares ou punitivos (incluindo perda de dados, interrupção de negócios ou lucros cessantes) decorrentes ou relacionados ao uso, incapacidade de uso, operações de backup/restauração realizadas por, ou resultados produzidos pelo Supa Moonbase (smoonb). Termos de Uso: https://www.smoonb.com/terms. Política de Privacidade: https://www.smoonb.com/privacy.",
|
|
128
|
+
"disclaimer.acceptBackup": "Você aceita os Termos de Uso e o Aviso de Risco de Backup?",
|
|
129
|
+
"disclaimer.acceptRestore": "Você aceita os Termos de Uso e o Aviso de Risco de Restauração?",
|
|
130
|
+
"disclaimer.acceptImport": "Você aceita os Termos de Uso e o Aviso de Risco de Importação?",
|
|
131
|
+
"disclaimer.operationCancelled": "Operação cancelada pelo usuário.",
|
|
132
|
+
|
|
133
|
+
"consent.title": "O smoonb irá ler e escrever o arquivo .env.local localmente.",
|
|
134
|
+
"consent.backup": "Um backup automático do .env.local será criado antes de qualquer alteração.",
|
|
135
|
+
"consent.mapping": "Vamos mapear suas variáveis de ambiente para garantir que todas as chaves necessárias estejam presentes e com os valores corretos do projeto de destino.",
|
|
136
|
+
"consent.proceed": "Você consente em prosseguir?",
|
|
137
|
+
|
|
138
|
+
"help.configuration": "CONFIGURAÇÃO:",
|
|
139
|
+
"help.configurationDesc": "Configure o .env.local com credenciais Supabase e SMOONB_LICENSE_KEY (obrigatória). Licença: cole a chave gerada no app desktop em https://www.smoonb.com. Opcional: SMOONB_TELEMETRY_ENABLED (padrão true), SMOONB_OUTPUT_DIR. O smoonb mapeia variáveis interativamente na primeira execução.",
|
|
140
|
+
"help.update": "ATUALIZAR PARA ÚLTIMA VERSÃO:",
|
|
141
|
+
"help.updateCommand": "npm install smoonb@latest",
|
|
142
|
+
"help.manual": "MANUAL DE USO - EXEMPLOS COMPLETOS:",
|
|
143
|
+
"help.backupTitle": "1. BACKUP - Fazer backup completo do projeto:",
|
|
144
|
+
"help.backupExample1": "npx smoonb backup",
|
|
145
|
+
"help.backupExample1Desc": "# Processo interativo que captura todos os componentes do Supabase",
|
|
146
|
+
"help.backupExample2": "npx smoonb backup --skip-realtime",
|
|
147
|
+
"help.backupExample2Desc": "# Pula a captura interativa de Realtime Settings",
|
|
148
|
+
"help.restoreTitle": "2. RESTORE - Restaurar backup em um projeto:",
|
|
149
|
+
"help.restoreExample1": "npx smoonb restore",
|
|
150
|
+
"help.restoreExample1Desc": "# Processo interativo que lista backups disponíveis e permite escolher",
|
|
151
|
+
"help.restoreExample2": "npx smoonb restore --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
152
|
+
"help.restoreExample2Desc": "# Importa e restaura diretamente o arquivo de backup (pula seleção)",
|
|
153
|
+
"help.restoreExample3": "npx smoonb restore --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
154
|
+
"help.restoreExample3Desc": "# Importa e restaura backup e storage juntos",
|
|
155
|
+
"help.importTitle": "3. IMPORT - Importar backup do Dashboard do Supabase:",
|
|
156
|
+
"help.importExample1": "npx smoonb import --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
157
|
+
"help.importExample1Desc": "# Importa apenas o arquivo de database",
|
|
158
|
+
"help.importExample2": "npx smoonb import --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
159
|
+
"help.importExample2Desc": "# Importa database e storage juntos (storage é opcional)",
|
|
160
|
+
"help.checkTitle": "4. CHECK - Verificar integridade após restauração:",
|
|
161
|
+
"help.checkExample1": "npx smoonb check",
|
|
162
|
+
"help.checkExample1Desc": "# Verifica conexão, extensões, tabelas, RLS, Realtime e Storage",
|
|
163
|
+
"help.tipsTitle": "💡 DICAS IMPORTANTES:",
|
|
164
|
+
"help.tip1": "• O comando import requer um arquivo de backup (.backup.gz), mas o storage (.storage.zip) é opcional",
|
|
165
|
+
"help.tip2": "• O storage depende de um backup, mas o backup não depende do storage",
|
|
166
|
+
"help.tip3": "• Use caminhos absolutos ou relativos para os arquivos no comando import",
|
|
167
|
+
"help.tip4": "• O formato do arquivo de backup deve ser: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz",
|
|
168
|
+
"help.tip5": "• O formato do arquivo de storage deve ser: *.storage.zip",
|
|
169
|
+
|
|
170
|
+
"help.commands.backupDesc": "Fazer backup completo do projeto Supabase usando Supabase CLI",
|
|
171
|
+
"help.commands.skipSupabaseVersionCheck": "Pular checagem de versão do Supabase CLI (o usuário assume o risco)",
|
|
172
|
+
"help.commands.backupSkipRealtime": "Pular captura interativa de Realtime Settings",
|
|
173
|
+
"help.commands.backupPostgresMajor": "Versão major do Postgres para o dump (15, 17). Não interativo; sem menu.",
|
|
174
|
+
"help.commands.backupExamples": "Exemplos:",
|
|
175
|
+
"help.commands.backupExample1": "npx smoonb backup",
|
|
176
|
+
"help.commands.backupExample1Desc": "# Processo interativo completo",
|
|
177
|
+
"help.commands.backupExample2": "npx smoonb backup --skip-realtime",
|
|
178
|
+
"help.commands.backupExample2Desc": "# Pula configuração de Realtime Settings",
|
|
179
|
+
"help.commands.backupExample3": "npx smoonb backup --skip-supabase-version-check",
|
|
180
|
+
"help.commands.backupExample3Desc": "# Pula checagem de versão do Supabase CLI (use quando seu gerenciador de pacotes instala com atraso, ex.: Scoop)",
|
|
181
|
+
"help.commands.backupWhat": "O que é capturado:",
|
|
182
|
+
"help.commands.backupWhat1": "• Database PostgreSQL (pg_dumpall + SQL separado)",
|
|
183
|
+
"help.commands.backupWhat2": "• Database Extensions and Settings",
|
|
184
|
+
"help.commands.backupWhat3": "• Custom Roles",
|
|
185
|
+
"help.commands.backupWhat4": "• Edge Functions (download automático)",
|
|
186
|
+
"help.commands.backupWhat5": "• Auth Settings (via Management API)",
|
|
187
|
+
"help.commands.backupWhat6": "• Storage Buckets (metadados via Management API)",
|
|
188
|
+
"help.commands.backupWhat7": "• Realtime Settings (7 parâmetros interativos)",
|
|
189
|
+
"help.commands.backupWhat8": "• Supabase .temp (arquivos temporários)",
|
|
190
|
+
"help.commands.backupWhat9": "• Migrations (todas as migrations do projeto)",
|
|
191
|
+
"help.commands.backupPostgresMajorEnv": "Obrigatório para backup e restore: SUPABASE_POSTGRES_MAJOR=15 ou 17 (em .env.local ou ambiente).",
|
|
192
|
+
"help.commands.backupPostgresVersionInDashboardTitle": "Onde ver a versão do Postgres (Supabase Dashboard)",
|
|
193
|
+
"help.commands.backupPostgresVersionInDashboardBody": "Project Settings -> Infrastructure -> Service Versions (linha do Postgres). Use essa major em SUPABASE_POSTGRES_MAJOR.",
|
|
194
|
+
"help.commands.backupFlow": "Fluxo do backup:",
|
|
195
|
+
"help.commands.backupFlow1": "1. Termo de uso",
|
|
196
|
+
"help.commands.backupFlow2": "2. Validação de licença (SMOONB_LICENSE_KEY)",
|
|
197
|
+
"help.commands.backupFlow3": "3. Validação Docker",
|
|
198
|
+
"help.commands.backupFlow4": "4. Consentimento para ler/escrever .env.local",
|
|
199
|
+
"help.commands.backupFlow5": "5. Mapeamento de variáveis (licença não entra no wizard)",
|
|
200
|
+
"help.commands.backupFlow6": "6. Seleção de componentes",
|
|
201
|
+
"help.commands.backupFlow7": "7. Resumo e confirmação",
|
|
202
|
+
"help.commands.backupFlow8": "8. Execução",
|
|
203
|
+
|
|
204
|
+
"help.commands.restoreDesc": "Restaurar backup completo usando psql (modo interativo)",
|
|
205
|
+
"help.commands.restoreFile": "Caminho completo do arquivo .backup.gz a importar e restaurar (opcional)",
|
|
206
|
+
"help.commands.restoreStorage": "Caminho completo do arquivo .storage.zip a importar junto com o backup (opcional)",
|
|
207
|
+
"help.commands.restoreExamples": "Exemplos:",
|
|
208
|
+
"help.commands.restoreExample1": "npx smoonb restore",
|
|
209
|
+
"help.commands.restoreExample1Desc": "# Processo interativo que lista backups disponíveis",
|
|
210
|
+
"help.commands.restoreExample2": "npx smoonb restore --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
211
|
+
"help.commands.restoreExample2Desc": "# Importa e restaura diretamente o arquivo de backup",
|
|
212
|
+
"help.commands.restoreExample3": "npx smoonb restore --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
213
|
+
"help.commands.restoreExample3Desc": "# Importa e restaura backup e storage juntos",
|
|
214
|
+
"help.commands.restoreExample4": "npx smoonb restore --skip-supabase-version-check",
|
|
215
|
+
"help.commands.restoreExample4Desc": "# Pula checagem de versão do Supabase CLI (use quando seu gerenciador de pacotes instala com atraso, ex.: Scoop)",
|
|
216
|
+
"help.commands.restoreFlow": "Fluxo do restore:",
|
|
217
|
+
"help.commands.restoreFlow1": "1. Termo de uso",
|
|
218
|
+
"help.commands.restoreFlow2": "2. Validação de licença (SMOONB_LICENSE_KEY)",
|
|
219
|
+
"help.commands.restoreFlow3": "3. Validação Docker",
|
|
220
|
+
"help.commands.restoreFlow4": "4. Consentimento para ler/escrever .env.local",
|
|
221
|
+
"help.commands.restoreFlow5": "5. Mapeamento de variáveis (inclui SUPABASE_POSTGRES_MAJOR)",
|
|
222
|
+
"help.commands.restoreFlow6": "6. Seleção de backup",
|
|
223
|
+
"help.commands.restoreFlow7": "7. Seleção de componentes para restaurar",
|
|
224
|
+
"help.commands.restoreFlow8": "8. Resumo e confirmação",
|
|
225
|
+
"help.commands.restoreFlow9": "9. Aviso: erros esperados durante a restauração (link doc Supabase); aguardar término e testar resultado",
|
|
226
|
+
"help.commands.restoreFlow10": "10. Execução da restauração",
|
|
227
|
+
"help.commands.restoreWhenFile": "Quando usar --file:",
|
|
228
|
+
"help.commands.restoreWhenFile1": "• Importa automaticamente o arquivo de backup antes de restaurar",
|
|
229
|
+
"help.commands.restoreWhenFile2": "• Elimina a etapa de seleção de backup",
|
|
230
|
+
"help.commands.restoreWhenFile3": "• Se --storage fornecido, importa também o arquivo de storage",
|
|
231
|
+
"help.commands.restoreWhenFile4": "• Útil para restaurar backups baixados diretamente do Dashboard",
|
|
232
|
+
"help.commands.restoreFormats": "Formatos suportados:",
|
|
233
|
+
"help.commands.restoreFormats1": "• .backup.gz (compactado) - Descompacta automaticamente",
|
|
234
|
+
"help.commands.restoreFormats2": "• .backup (descompactado) - Restaura diretamente",
|
|
235
|
+
|
|
236
|
+
"help.commands.checkDesc": "Verificar integridade do projeto Supabase após restauração",
|
|
237
|
+
"help.commands.checkExamples": "Exemplos:",
|
|
238
|
+
"help.commands.checkExample1": "npx smoonb check",
|
|
239
|
+
"help.commands.checkExample1Desc": "# Verifica integridade e exibe relatório no console",
|
|
240
|
+
"help.commands.checkWhat": "O que é verificado:",
|
|
241
|
+
"help.commands.checkWhat1": "• Conexão com database",
|
|
242
|
+
"help.commands.checkWhat2": "• Extensões PostgreSQL instaladas",
|
|
243
|
+
"help.commands.checkWhat3": "• Tabelas criadas",
|
|
244
|
+
"help.commands.checkWhat4": "• Políticas RLS (Row Level Security)",
|
|
245
|
+
"help.commands.checkWhat5": "• Publicações Realtime",
|
|
246
|
+
"help.commands.checkWhat6": "• Buckets de Storage",
|
|
247
|
+
|
|
248
|
+
"help.commands.importDesc": "Importar arquivo .backup.gz e opcionalmente .storage.zip do Dashboard do Supabase",
|
|
249
|
+
"help.commands.importFile": "Caminho completo do arquivo .backup.gz a importar",
|
|
250
|
+
"help.commands.importStorage": "Caminho completo do arquivo .storage.zip a importar (opcional)",
|
|
251
|
+
"help.commands.importExamples": "Exemplos:",
|
|
252
|
+
"help.commands.importExample1": "npx smoonb import --file \"C:\\Downloads\\db_cluster-04-03-2024@14-16-59.backup.gz\"",
|
|
253
|
+
"help.commands.importExample1Desc": "# Importa apenas o arquivo de database",
|
|
254
|
+
"help.commands.importExample2": "npx smoonb import --file \"backup.backup.gz\" --storage \"meu-projeto.storage.zip\"",
|
|
255
|
+
"help.commands.importExample2Desc": "# Importa database e storage juntos",
|
|
256
|
+
"help.commands.importFormats": "Formato dos arquivos:",
|
|
257
|
+
"help.commands.importFormats1": "• Backup: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz (obrigatório)",
|
|
258
|
+
"help.commands.importFormats2": "• Storage: *.storage.zip (opcional)",
|
|
259
|
+
"help.commands.importImportant": "Importante:",
|
|
260
|
+
"help.commands.importImportant1": "• O arquivo de backup é obrigatório",
|
|
261
|
+
"help.commands.importImportant2": "• O arquivo de storage é opcional e depende de um backup",
|
|
262
|
+
"help.commands.importImportant3": "• Ambos os arquivos serão copiados para a mesma pasta de backup",
|
|
263
|
+
"help.commands.importImportant4": "• O backup importado ficará disponível para o comando restore",
|
|
264
|
+
"help.commands.importImportant5": "• Use caminhos absolutos ou relativos",
|
|
265
|
+
|
|
266
|
+
"quickHelp.title": "COMANDOS PRINCIPAIS:",
|
|
267
|
+
"quickHelp.backupTitle": "Backup completo:",
|
|
268
|
+
"quickHelp.backupDesc": "npx smoonb backup # Backup completo interativo usando Docker",
|
|
269
|
+
"quickHelp.restoreTitle": "Restauração completa:",
|
|
270
|
+
"quickHelp.restoreDesc": "npx smoonb restore # Restauração interativa usando psql (Docker)",
|
|
271
|
+
"quickHelp.checkTitle": "Verificação pós-restore:",
|
|
272
|
+
"quickHelp.checkDesc": "npx smoonb check # Verifica integridade do projeto",
|
|
273
|
+
"quickHelp.configuration": "CONFIGURAÇÃO:",
|
|
274
|
+
"quickHelp.configurationDesc": "Configure o arquivo .env.local na raiz do projeto com suas credenciais Supabase. O smoonb irá mapear as variáveis interativamente na primeira execução.",
|
|
275
|
+
"quickHelp.tokenTitle": "PERSONAL ACCESS TOKEN (OBRIGATÓRIO):",
|
|
276
|
+
"quickHelp.tokenDesc": "Para Management API (Edge Functions, Auth Settings, Storage):",
|
|
277
|
+
"quickHelp.tokenStep1": "1. Acesse: https://supabase.com/dashboard/account/tokens",
|
|
278
|
+
"quickHelp.tokenStep2": "2. Clique em \"Generate new token\"",
|
|
279
|
+
"quickHelp.tokenStep3": "3. Copie o token (formato: sbp_...)",
|
|
280
|
+
"quickHelp.tokenStep4": "4. Adicione ao .env.local como SUPABASE_ACCESS_TOKEN",
|
|
281
|
+
"quickHelp.update": "ATUALIZAR PARA ÚLTIMA VERSÃO:",
|
|
282
|
+
"quickHelp.updateCommand": "npm install smoonb@latest",
|
|
283
|
+
|
|
284
|
+
"docker.validation.title": "Validação Docker",
|
|
285
|
+
"docker.validation.checking": "Verificando dependências Docker...",
|
|
286
|
+
"docker.validation.detected": "Docker Desktop detectado e funcionando",
|
|
287
|
+
"docker.validation.version": "Versão: {version}",
|
|
288
|
+
|
|
289
|
+
"license.promptPaste": "Cole aqui a licença gerada no app desktop:",
|
|
290
|
+
"license.required": "A chave de licença é obrigatória.",
|
|
291
|
+
"license.validationUnavailable": "Não foi possível validar sua licença agora.",
|
|
292
|
+
"license.checkConnection": "Verifique sua conexão e tente novamente.",
|
|
293
|
+
"license.invalidOrInactive": "Sua licença é inválida ou sua assinatura não está ativa.",
|
|
294
|
+
"license.openDesktopApp": "Abra o app desktop, verifique sua assinatura e gere uma nova licença.",
|
|
295
|
+
"license.denied.title": "Validação de licença negada pelo servidor.",
|
|
296
|
+
"license.denied.reason": "Motivo: {reason}",
|
|
297
|
+
"license.denied.alreadyBound": "Esta licença já está vinculada a outra máquina e não pode ser transferida.",
|
|
298
|
+
"license.denied.alreadyBoundAction": "Para usar o smoonb nesta máquina, revogue esta licença no app desktop e gere uma nova: {url}",
|
|
299
|
+
"license.denied.correlationId": "Correlation ID: {id}",
|
|
300
|
+
"license.trialNotice": "Você está usando uma licença trial.",
|
|
301
|
+
"license.error.title": "Falha na validação da licença.",
|
|
302
|
+
"license.error.whatHappened": "O que aconteceu:",
|
|
303
|
+
"license.error.typeHttp": "Tipo: erro HTTP",
|
|
304
|
+
"license.error.typeNetwork": "Tipo: erro de rede",
|
|
305
|
+
"license.error.typeTls": "Tipo: erro TLS / certificado",
|
|
306
|
+
"license.error.typeParse": "Tipo: formato de resposta inesperado da API",
|
|
307
|
+
"license.error.testConnectivity": "Para testar conectividade: GET {url}",
|
|
308
|
+
"license.error.status": "Status: {status}",
|
|
309
|
+
"license.error.endpoint": "Endpoint: {endpoint}",
|
|
310
|
+
"license.error.correlationId": "Correlation ID: {id}",
|
|
311
|
+
"license.error.howToHelp": "Como obter ajuda (Suporte > Mensagens):",
|
|
312
|
+
"license.error.supportStep1": "Acesse {url}",
|
|
313
|
+
"license.error.supportStep2": "Abra \"Support\" (menu lateral)",
|
|
314
|
+
"license.error.supportStep3": "Clique em \"Messages\"",
|
|
315
|
+
"license.error.supportStep4": "Clique em \"New Message\"",
|
|
316
|
+
"license.error.supportStep5": "Cole o bundle de diagnóstico abaixo e envie",
|
|
317
|
+
"license.error.visit": "Acesse: {url}",
|
|
318
|
+
"license.error.subjectSuggestion": "Assunto (copiar/colar): \"Falha na validação da licença (Correlation ID: {id})\"",
|
|
319
|
+
"license.error.messageSuggestion": "Mensagem: \"Não consigo validar minha licença no CLI. Segue o bundle de diagnóstico:\" e cole o bundle abaixo.",
|
|
320
|
+
|
|
321
|
+
"env.licenseKey.help": "Cole a licença gerada no app desktop.",
|
|
322
|
+
"env.telemetry.help": "Defina como false para desativar telemetria (padrão: true).",
|
|
323
|
+
|
|
324
|
+
"env.supabasePostgresMajor.hintTitle": "Como conferir a versão do Postgres no Supabase",
|
|
325
|
+
"env.supabasePostgresMajor.hintPath": "Project Settings -> Infrastructure -> Service Versions",
|
|
326
|
+
"env.supabasePostgresMajor.hintBody": "Verifique a linha do Postgres e use a major (ex.: 15 ou 17) para preencher SUPABASE_POSTGRES_MAJOR.",
|
|
327
|
+
|
|
328
|
+
"env.mapping.title": "Mapeando variável: {variable}",
|
|
329
|
+
"env.mapping.selectKey": "Selecione a chave correspondente para: {expected}",
|
|
330
|
+
"env.mapping.addNew": "Adicione uma nova chave para mim",
|
|
331
|
+
"env.mapping.currentValue": "Valor atual: {value}",
|
|
332
|
+
"env.mapping.isCorrect": "Este é o valor correto do projeto alvo?",
|
|
333
|
+
"env.mapping.notFound": "Não foi encontrada uma entrada para a variável {variable}.",
|
|
334
|
+
"env.mapping.backupCreated": "Backup do .env.local: {path}",
|
|
335
|
+
"env.mapping.fileNotFound": "Arquivo .env.local não encontrado. Será criado durante o mapeamento.",
|
|
336
|
+
"env.mapping.updated": ".env.local atualizado com sucesso. Nenhuma chave renomeada; valores sincronizados.",
|
|
337
|
+
"env.language.selectDefault": "Qual o idioma padrão?",
|
|
338
|
+
"env.language.english": "Inglês (English)",
|
|
339
|
+
"env.language.portuguese": "Português (pt-BR)",
|
|
340
|
+
"env.language.saved": "Idioma padrão salvo: {lang}",
|
|
341
|
+
"env.language.note": "Nota: A mudança de idioma será efetiva nos próximos comandos. O processo atual continuará no idioma inicial.",
|
|
342
|
+
|
|
343
|
+
"backup.components.edgeFunctions.title": "Edge Functions:",
|
|
344
|
+
"backup.components.edgeFunctions.description1": "Vamos apagar as funções existentes na pasta supabase/functions, fazer um reset no link",
|
|
345
|
+
"backup.components.edgeFunctions.description2": "entre a ferramenta e o projeto, e baixar novamente as funções do servidor.",
|
|
346
|
+
"backup.components.edgeFunctions.description3": "Você terá a opção de manter ou apagar as funções na pasta após o backup.",
|
|
347
|
+
"backup.components.edgeFunctions.include": "Deseja incluir Edge Functions",
|
|
348
|
+
"backup.components.edgeFunctions.cleanup": "Deseja limpar supabase/functions após o backup",
|
|
349
|
+
|
|
350
|
+
"backup.components.temp.title": "Supabase .temp:",
|
|
351
|
+
"backup.components.temp.description1": "Vamos copiar os arquivos existentes (se existirem) na pasta supabase/.temp.",
|
|
352
|
+
"backup.components.temp.description2": "Você terá a opção de manter ou apagar os arquivos nesta pasta após o backup.",
|
|
353
|
+
"backup.components.temp.include": "Deseja incluir Supabase .temp",
|
|
354
|
+
"backup.components.temp.cleanup": "Deseja apagar supabase/.temp após o backup",
|
|
355
|
+
|
|
356
|
+
"backup.components.migrations.title": "Migrations:",
|
|
357
|
+
"backup.components.migrations.description1": "Vamos apagar as migrations existentes (se existirem) na pasta supabase/migrations,",
|
|
358
|
+
"backup.components.migrations.description2": "fazer um reset no link entre a ferramenta e o projeto, e baixar novamente as migrations",
|
|
359
|
+
"backup.components.migrations.description3": "do servidor. Você terá a opção de manter ou apagar as migrations na pasta após o backup.",
|
|
360
|
+
"backup.components.migrations.include": "Deseja incluir Migrations",
|
|
361
|
+
"backup.components.migrations.cleanup": "Deseja apagar supabase/migrations após o backup",
|
|
362
|
+
|
|
363
|
+
"backup.components.storage.include": "Deseja incluir Storage",
|
|
364
|
+
"backup.components.auth.include": "Deseja incluir Auth",
|
|
365
|
+
"backup.components.realtime.include": "Deseja incluir Realtime",
|
|
366
|
+
|
|
367
|
+
"backup.summary.title": "RESUMO DAS CONFIGURAÇÕES:",
|
|
368
|
+
"backup.summary.edgeFunctions": "Edge Functions: {value}",
|
|
369
|
+
"backup.summary.edgeFunctionsCleanup": "Limpar após backup: {value}",
|
|
370
|
+
"backup.summary.temp": "Supabase .temp: {value}",
|
|
371
|
+
"backup.summary.tempCleanup": "Apagar após backup: {value}",
|
|
372
|
+
"backup.summary.migrations": "Migrations: {value}",
|
|
373
|
+
"backup.summary.migrationsCleanup": "Apagar após backup: {value}",
|
|
374
|
+
"backup.summary.storage": "Storage: {value}",
|
|
375
|
+
"backup.summary.auth": "Auth: {value}",
|
|
376
|
+
"backup.summary.realtime": "Realtime: {value}",
|
|
377
|
+
"backup.summary.backupDir": "Diretório de backup: {path}",
|
|
378
|
+
"backup.summary.confirm": "Deseja iniciar o backup com estas configurações?",
|
|
379
|
+
"backup.summary.yes": "Sim",
|
|
380
|
+
"backup.summary.no": "Não",
|
|
381
|
+
|
|
382
|
+
"backup.start.title": "Iniciando backup do projeto: {projectId}",
|
|
383
|
+
"backup.start.directory": "Diretório: {path}",
|
|
384
|
+
"backup.start.docker": "Backup via Docker Desktop",
|
|
385
|
+
|
|
386
|
+
"backup.steps.postgresVersion.title": "Versão do Postgres",
|
|
387
|
+
"backup.steps.postgresVersion.found": "Versão do Postgres encontrada: major {major} (imagem {image}).",
|
|
388
|
+
"backup.steps.postgresVersion.proceedWith": "Seguiremos com esta versão. Você pode sobrescrever abaixo.",
|
|
389
|
+
"backup.steps.postgresVersion.selectVersion": "Selecione a versão da imagem Postgres para o dump:",
|
|
390
|
+
"backup.steps.postgresVersion.useDetected": "Usar detectada (postgres:{major})",
|
|
391
|
+
"backup.steps.postgresVersion.selected": "Usando imagem: {image}",
|
|
392
|
+
"backup.steps.postgresVersion.detectError": "Não foi possível detectar a versão do servidor: {message}",
|
|
393
|
+
"backup.steps.postgresVersion.usingDefault": "Usando padrão postgres:17",
|
|
394
|
+
"backup.steps.postgresVersion.useSuggested": "Usar sugerida (postgres:{major})",
|
|
395
|
+
"backup.steps.postgresVersion.showAdvanced": "Mostrar versões avançadas…",
|
|
396
|
+
"backup.steps.postgresVersion.advancedTitle": "Versões avançadas do Postgres",
|
|
397
|
+
"backup.steps.postgresVersion.back": "Voltar",
|
|
398
|
+
"backup.steps.postgresVersion.invalidCli": "Valor inválido em --postgres-major. Suportadas: 15, 17 (ou 16, 18 avançado).",
|
|
399
|
+
"backup.steps.postgresVersion.postgresMajorRequired": "Versão do Postgres não definida. Execute o passo de versão primeiro ou use --postgres-major.",
|
|
400
|
+
"backup.steps.postgresVersion.dashboardHintTitle": "Dica: confirme a versão no Supabase Dashboard",
|
|
401
|
+
"backup.steps.postgresVersion.dashboardHintPath": "Project Settings -> Infrastructure -> Service Versions",
|
|
402
|
+
"backup.steps.postgresVersion.dashboardHintWhy": "Use a major mostrada na linha do Postgres ao escolher no menu.",
|
|
403
|
+
|
|
404
|
+
"backup.steps.database.title": "Backup da Database PostgreSQL via pg_dumpall Docker...",
|
|
405
|
+
"backup.steps.database.creating": "Criando backup completo via pg_dumpall...",
|
|
406
|
+
"backup.steps.database.postgresImage": "Usando imagem: {image} (major {major})",
|
|
407
|
+
"backup.steps.database.executing": "Executando pg_dumpall via Docker...",
|
|
408
|
+
"backup.steps.database.versionMismatch": "pg_dumpall falhou (possível incompatibilidade de versão). Execute novamente e escolha a major correta no menu, ou use --postgres-major <15|17>.",
|
|
409
|
+
"backup.steps.database.progress.eta": "ETA",
|
|
410
|
+
"backup.steps.database.separated.title": "Backup da Database PostgreSQL (arquivos SQL separados)...",
|
|
411
|
+
"backup.steps.database.separated.creating": "Criando backups SQL separados via Supabase CLI...",
|
|
412
|
+
"backup.steps.database.separated.exportingSchema": "Exportando schema...",
|
|
413
|
+
"backup.steps.database.separated.exportingData": "Exportando dados...",
|
|
414
414
|
"backup.steps.database.separated.circularSummary": "Exportação dos dados concluída com avisos de chaves estrangeiras circulares: {tables}. Esses avisos não significam falha na exportação.",
|
|
415
|
-
"backup.steps.database.separated.circularProtected": "
|
|
415
|
+
"backup.steps.database.separated.circularProtected": "O smoonb restore trata esses relacionamentos, confere os dados recuperados e interrompe em caso de falha. Você não precisa alterar suas tabelas nem refazer o backup por causa deste aviso.",
|
|
416
416
|
"backup.steps.database.separated.circularUnprotected": "O início de data.sql não contém a configuração replica. As referências circulares podem impedir a restauração. Siga o procedimento do Supabase e teste em banco isolado.",
|
|
417
417
|
"backup.steps.database.separated.incomplete": "Backup SQL separado incompleto. Arquivos que falharam: {files}.",
|
|
418
|
-
"backup.steps.database.separated.exportingRoles": "Exportando roles...",
|
|
419
|
-
|
|
420
|
-
"backup.steps.databaseSettings.title": "Backup das Database Extensions and Settings via SQL...",
|
|
421
|
-
"backup.steps.databaseSettings.capturing": "Capturando Database Extensions and Settings...",
|
|
422
|
-
"backup.steps.databaseSettings.executing": "Executando queries de configurações via Docker...",
|
|
423
|
-
|
|
424
|
-
"backup.steps.auth.title": "Backup das Auth Settings via API...",
|
|
425
|
-
"backup.steps.auth.exporting": "Exportando configurações de Auth via Management API...",
|
|
426
|
-
|
|
427
|
-
"backup.steps.realtime.title": "Backup das Realtime Settings via
|
|
428
|
-
"backup.steps.realtime.capturing": "Capturando
|
|
429
|
-
"backup.steps.realtime.previousFound": "Foi identificada uma gravação anterior de Realtime Settings.",
|
|
430
|
-
"backup.steps.realtime.reuse": "Deseja reutilizar as configurações anteriores?",
|
|
431
|
-
"backup.steps.realtime.configTitle": "Configurações de Realtime Settings",
|
|
432
|
-
"backup.steps.realtime.access": "Acesse: {url}",
|
|
433
|
-
"backup.steps.realtime.note": "Anote os valores dos 7 parâmetros abaixo:",
|
|
434
|
-
"backup.steps.realtime.questions": "Responda as perguntas abaixo (pressione Enter para usar o valor padrão):",
|
|
435
|
-
"backup.steps.realtime.saved": "Configurações de Realtime Settings salvas!",
|
|
436
|
-
|
|
437
|
-
"backup.steps.storage.title": "Backup do Storage via API...",
|
|
438
|
-
"backup.steps.storage.listing": "Listando buckets de Storage via Management API...",
|
|
439
|
-
"backup.steps.storage.found": "Encontrados {count} buckets",
|
|
440
|
-
"backup.steps.storage.processing": "Processando bucket: {bucketName}",
|
|
441
|
-
"backup.steps.storage.listingFiles": "Listando arquivos do bucket {bucketName}...",
|
|
442
|
-
"backup.steps.storage.scanningFolder": "Escaneando {path} ({count} encontrado(s))",
|
|
443
|
-
"backup.steps.storage.totalFound": "Total: {count} arquivo(s) encontrado(s)",
|
|
444
|
-
"backup.steps.storage.listRetry": "Tentativa {attempt}/{max} ao listar {path} falhou ({message}). Retentando em {delay}s...",
|
|
445
|
-
"backup.steps.storage.listFailed": "Falha ao listar bucket {bucketName} após {max} tentativas: {message}",
|
|
446
|
-
"backup.steps.storage.downloading": "Baixando {count} arquivo(s) do bucket {bucketName}...",
|
|
447
|
-
"backup.steps.storage.downloaded": "Baixados {current}/{total} arquivo(s)...",
|
|
448
|
-
"backup.steps.storage.downloadRetry": "Arquivo {path}: tentativa {attempt}/{max} falhou. Retentando em {delay}s...",
|
|
449
|
-
"backup.steps.storage.downloadFailed": "Arquivo {path}: falhou após todas as tentativas: {message}",
|
|
450
|
-
"backup.steps.storage.bucketDone": "Bucket {bucketName}: {downloaded}/{total} arquivo(s) baixado(s)",
|
|
451
|
-
"backup.steps.storage.bucketDoneWithSkips": "Bucket {bucketName}: {downloaded}/{total} arquivo(s) baixado(s), {skipped} pulado(s)",
|
|
452
|
-
"backup.steps.storage.creatingZip": "Criando arquivo ZIP no padrão do Dashboard...",
|
|
453
|
-
"backup.steps.storage.zipCreated": "Arquivo ZIP criado: {fileName} ({size} MB)",
|
|
454
|
-
"backup.steps.storage.cleanup": "Deseja limpar storage_temp após o backup",
|
|
455
|
-
"backup.steps.storage.tempKept": "Estrutura temporária mantida em: {path}",
|
|
456
|
-
"backup.steps.storage.done": "Storage backupado: {buckets} buckets, {files} arquivo(s) baixado(s)",
|
|
457
|
-
|
|
458
|
-
"backup.steps.roles.title": "Backup dos Custom Roles via SQL...",
|
|
459
|
-
"backup.steps.roles.exporting": "Exportando Custom Roles via Docker...",
|
|
460
|
-
|
|
461
|
-
"backup.steps.functions.title": "Backup das Edge Functions via Docker...",
|
|
462
|
-
"backup.steps.functions.linking": "Zerando vínculo e linkando projeto: {projectId}...",
|
|
463
|
-
"backup.steps.functions.validation": "Validação: linked-ref = {linkedRef} (esperado = {expected})",
|
|
464
|
-
"backup.steps.functions.prepared": "Pasta supabase/functions preparada (será preservada após backup).",
|
|
465
|
-
"backup.steps.functions.listing": "Listando Edge Functions via Management API...",
|
|
466
|
-
"backup.steps.functions.noneFound": "Nenhuma Edge Function encontrada",
|
|
467
|
-
|
|
468
|
-
"backup.steps.temp.title": "Backup do Supabase .temp...",
|
|
469
|
-
"backup.steps.temp.copying": "Copiando supabase/.temp → {path} ({count} arquivos)...",
|
|
470
|
-
|
|
471
|
-
"backup.steps.migrations.title": "Backup das Migrations...",
|
|
472
|
-
"backup.steps.migrations.linking": "Zerando vínculo e linkando projeto: {projectId}...",
|
|
473
|
-
"backup.steps.migrations.validation": "Validação: linked-ref = {linkedRef} (esperado = {expected})",
|
|
474
|
-
"backup.steps.migrations.cleaning": "Limpando supabase/migrations...",
|
|
475
|
-
"backup.steps.migrations.downloading": "Baixando todas as migrations do servidor usando migration fetch...",
|
|
476
|
-
"backup.steps.migrations.downloaded": "Arquivos baixados: {count} migrations",
|
|
477
|
-
"backup.steps.migrations.copying": "Copiando supabase/migrations → {path} ({count} arquivos)...",
|
|
478
|
-
|
|
479
|
-
"backup.complete.title": "BACKUP COMPLETO FINALIZADO VIA DOCKER!",
|
|
480
|
-
"backup.complete.location": "Localização: {path}",
|
|
481
|
-
"backup.complete.database": "Database: {fileName} ({size}) - Idêntico ao Dashboard",
|
|
482
|
-
"backup.complete.databaseSql": "Database SQL: {count} arquivos separados ({size}) - Para troubleshooting",
|
|
483
|
-
"backup.complete.databaseSettings": "Database Settings: {fileName} ({size}) - Extensions e Configurações",
|
|
484
|
-
"backup.complete.auth": "Auth Settings: Exportadas via API",
|
|
485
|
-
"backup.complete.realtime": "Configurações capturadas interativamente",
|
|
486
|
-
"backup.complete.realtimeReused": "Configurações importadas do backup {backup}",
|
|
487
|
-
"backup.complete.storage": "Storage: {buckets} buckets, {files} arquivo(s) baixado(s), ZIP: {zipFile} ({size})",
|
|
488
|
-
"backup.complete.roles": "Custom Roles: {count} roles exportados via SQL",
|
|
489
|
-
"backup.complete.functions": "Edge Functions: {downloaded}/{total} functions baixadas via Docker",
|
|
490
|
-
"backup.complete.temp": "Supabase .temp: {count} arquivo(s) copiado(s)",
|
|
491
|
-
"backup.complete.migrations": "Migrations: {count} migration(s) copiada(s)",
|
|
492
|
-
|
|
493
|
-
"backup.error.databaseUrlNotConfigured": "DATABASE_URL NÃO CONFIGURADA",
|
|
494
|
-
"backup.error.databaseUrlInstructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
495
|
-
"backup.error.databaseUrlStep1": "1. Configurar SUPABASE_DB_URL no .env.local",
|
|
496
|
-
"backup.error.databaseUrlStep2": "2. Repetir o comando de backup",
|
|
497
|
-
"backup.error.databaseUrlExample": "Exemplo de configuração:",
|
|
498
|
-
"backup.error.databaseUrlExampleValue": "\"databaseUrl\": \"postgresql://postgres:[senha]@db.[projeto].supabase.co:5432/postgres\"",
|
|
499
|
-
"backup.error.databaseUrlCancelled": "Backup cancelado - Configuração incompleta",
|
|
500
|
-
|
|
501
|
-
"backup.error.accessTokenNotConfigured": "ACCESS_TOKEN NÃO CONFIGURADO",
|
|
502
|
-
"backup.error.accessTokenInstructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
503
|
-
"backup.error.accessTokenStep1": "1. Obter Personal Access Token do Supabase",
|
|
504
|
-
"backup.error.accessTokenStep2": "2. Configurar SUPABASE_ACCESS_TOKEN no .env.local",
|
|
505
|
-
"backup.error.accessTokenStep3": "3. Repetir o comando de backup",
|
|
506
|
-
"backup.error.accessTokenHowTo": "Como obter o token:",
|
|
507
|
-
"backup.error.accessTokenStep1Detail": "1. Acesse: https://supabase.com/dashboard/account/tokens",
|
|
508
|
-
"backup.error.accessTokenStep2Detail": "2. Clique: \"Generate new token\"",
|
|
509
|
-
"backup.error.accessTokenStep3Detail": "3. Copie o token (formato: sbp_...)",
|
|
510
|
-
"backup.error.accessTokenCancelled": "Backup cancelado - Token não configurado",
|
|
511
|
-
|
|
512
|
-
"backup.error.postgresMajorNotSet": "SUPABASE_POSTGRES_MAJOR não definido.",
|
|
513
|
-
"backup.error.postgresMajorInstructions": "Defina SUPABASE_POSTGRES_MAJOR com a major do Postgres do seu projeto (ex.: 15 ou 17).",
|
|
514
|
-
"backup.error.postgresMajorWhereToCheck": "Você pode conferir no Supabase Dashboard: Project Settings -> Infrastructure -> Service Versions (linha do Postgres).",
|
|
515
|
-
"backup.error.postgresMajorInvalid": "SUPABASE_POSTGRES_MAJOR inválido. Use um inteiro (ex.: 15 ou 17).",
|
|
516
|
-
"backup.steps.postgresVersion.postgresMajorValidationFailed": "SUPABASE_POSTGRES_MAJOR não definido (falha de validação).",
|
|
517
|
-
|
|
518
|
-
"backup.steps.storage.noBuckets": "Nenhum bucket encontrado",
|
|
519
|
-
"backup.steps.storage.credentialsNotAvailable": "Credenciais do Supabase não disponíveis. Fazendo backup apenas de metadados...",
|
|
520
|
-
"backup.steps.storage.cleanupRemoving": "Limpando estrutura temporária...",
|
|
521
|
-
"backup.steps.storage.cleanupRemoved": "Estrutura temporária removida",
|
|
522
|
-
"backup.steps.storage.cleanupError": "Erro ao limpar estrutura temporária: {message}",
|
|
523
|
-
"backup.steps.storage.listError": "Erro ao listar {path}: {message}",
|
|
524
|
-
"backup.steps.storage.processError": "Erro ao processar {path}: {message}",
|
|
525
|
-
"backup.steps.storage.error": "Erro no backup do Storage: {message}",
|
|
526
|
-
"backup.steps.storage.listBucketsError": "Erro ao listar buckets: {status} {statusText}",
|
|
527
|
-
"backup.steps.storage.downloadError": "Erro ao baixar {path}: {message}",
|
|
528
|
-
"backup.steps.storage.processFileError": "Erro ao processar arquivo {path}: {message}",
|
|
529
|
-
"backup.steps.storage.processBucketError": "Erro ao processar bucket {bucketName}: {message}",
|
|
530
|
-
"backup.steps.database.error": "Erro no backup do database: {message}",
|
|
531
|
-
"backup.steps.database.separated.error": "Erro nos backups SQL separados: {message}",
|
|
532
|
-
"backup.steps.database.separated.schemaError": "Erro no schema: {message}",
|
|
533
|
-
"backup.steps.database.separated.dataError": "Erro nos dados: {message}",
|
|
534
|
-
"backup.steps.database.separated.rolesError": "Erro nos roles: {message}",
|
|
535
|
-
"backup.steps.databaseSettings.error": "Erro no backup das Database Settings: {message}",
|
|
536
|
-
"backup.steps.auth.error": "Erro no backup das Auth Settings: {message}",
|
|
537
|
-
"backup.steps.auth.getError": "Erro ao obter Auth Settings: {status} {statusText}",
|
|
538
|
-
"backup.steps.realtime.error": "Erro ao capturar Realtime Settings: {message}",
|
|
539
|
-
"backup.steps.roles.error": "Erro no backup dos Custom Roles: {message}",
|
|
540
|
-
"backup.steps.roles.exportError": "Erro ao exportar Custom Roles via Docker: {message}",
|
|
541
|
-
"backup.steps.functions.error": "Erro durante backup de Edge Functions: {message}",
|
|
542
|
-
"backup.steps.functions.listError": "Erro ao listar Edge Functions: {status} {statusText}",
|
|
543
|
-
"backup.steps.functions.downloadError": "Erro ao baixar {funcName}: {message}",
|
|
544
|
-
"backup.steps.temp.error": "Erro no backup do supabase/.temp: {message}",
|
|
545
|
-
"backup.steps.migrations.error": "Erro no backup das migrations: {message}",
|
|
546
|
-
|
|
547
|
-
"backup.steps.functions.cleanBefore": "Pasta supabase/functions limpa antes do backup.",
|
|
548
|
-
"backup.steps.functions.preserving": "Preservando {count} função(ões) existente(s) na pasta supabase/functions.",
|
|
549
|
-
"backup.steps.functions.cleanAfter": "supabase/functions limpo após o backup.",
|
|
550
|
-
"backup.steps.functions.preserved": "supabase/functions preservada conforme solicitado.",
|
|
551
|
-
|
|
552
|
-
"backup.steps.migrations.cleaning": "Limpando supabase/migrations...",
|
|
553
|
-
"backup.steps.migrations.downloading": "Baixando todas as migrations do servidor usando migration fetch...",
|
|
554
|
-
"backup.steps.migrations.fetchError": "Erro ao executar migration fetch: {message}",
|
|
555
|
-
"backup.steps.migrations.fetchTip": "Verifique se o projeto está linkado corretamente e se o token está válido.",
|
|
556
|
-
"backup.steps.migrations.downloaded": "Arquivos baixados: {count} migrations",
|
|
557
|
-
"backup.steps.migrations.copying": "Copiando supabase/migrations → {path} ({count} arquivos)...",
|
|
558
|
-
"backup.steps.migrations.copied": "{count} migration(s) copiada(s)",
|
|
559
|
-
"backup.steps.migrations.cleaned": "supabase/migrations apagado.",
|
|
560
|
-
|
|
561
|
-
"backup.steps.temp.noFiles": "Nenhum arquivo encontrado em supabase/.temp",
|
|
562
|
-
"backup.steps.temp.copied": "{count} arquivo(s) copiado(s)",
|
|
563
|
-
"backup.steps.temp.cleaned": "supabase/.temp apagado.",
|
|
564
|
-
|
|
565
|
-
"restore.steps.components.edgeFunctions.title": "Edge Functions:",
|
|
566
|
-
"restore.steps.components.edgeFunctions.description1": "As Edge Functions serão copiadas para supabase/functions e implantadas no projeto destino.",
|
|
567
|
-
"restore.steps.components.edgeFunctions.description2": "A pasta supabase/functions será limpa antes do processo.",
|
|
568
|
-
"restore.steps.components.edgeFunctions.include": "Deseja restaurar Edge Functions",
|
|
569
|
-
|
|
570
|
-
"restore.steps.components.auth.title": "Auth Settings:",
|
|
571
|
-
"restore.steps.components.auth.description1": "As configurações de Auth serão
|
|
572
|
-
"restore.steps.components.auth.description2": "
|
|
573
|
-
"restore.steps.components.auth.include": "Deseja restaurar Auth",
|
|
574
|
-
|
|
575
|
-
"restore.steps.components.storage.title": "Storage:",
|
|
576
|
-
"restore.steps.components.storage.zipFound": "Arquivo .storage.zip encontrado: {fileName}",
|
|
577
|
-
"restore.steps.components.storage.withZip.description1": "Os buckets e arquivos serão restaurados automaticamente no projeto destino.",
|
|
578
|
-
"restore.steps.components.storage.withZip.description2": "O arquivo ZIP será extraído, buckets criados e arquivos enviados via API.",
|
|
579
|
-
"restore.steps.components.storage.metadataOnly.description1": "Apenas metadados dos buckets encontrados (pasta storage).",
|
|
580
|
-
"restore.steps.components.storage.metadataOnly.description2": "Para restaurar os arquivos, é necessário o arquivo .storage.zip do Dashboard.",
|
|
581
|
-
"restore.steps.components.storage.metadataOnly.description3": "Apenas informações dos buckets serão exibidas.",
|
|
582
|
-
"restore.steps.components.storage.include": "Deseja restaurar Storage",
|
|
583
|
-
|
|
584
|
-
"restore.steps.components.databaseSettings.title": "Database Extensions and Settings:",
|
|
585
|
-
"restore.steps.components.databaseSettings.description1": "As extensões e configurações do banco de dados serão restauradas via SQL.",
|
|
586
|
-
"restore.steps.components.databaseSettings.description2": "Isso inclui extensões PostgreSQL e configurações específicas do projeto.",
|
|
587
|
-
"restore.steps.components.databaseSettings.include": "Deseja restaurar Database Settings",
|
|
588
|
-
|
|
589
|
-
"restore.steps.components.realtime.title": "Realtime Settings:",
|
|
590
|
-
"restore.steps.components.realtime.description1": "As configurações de Realtime serão
|
|
591
|
-
"restore.steps.components.realtime.description2": "
|
|
592
|
-
"restore.steps.components.realtime.include": "Deseja restaurar Realtime",
|
|
593
|
-
"restore.steps.components.database.include": "Deseja restaurar Database",
|
|
594
|
-
|
|
595
|
-
"restore.steps.database.detectedGz": "Arquivo .backup.gz detectado",
|
|
596
|
-
"restore.steps.database.extractingGz": "Extraindo arquivo .gz...",
|
|
597
|
-
"restore.steps.database.uncompressed": "Arquivo descompactado: {file}",
|
|
598
|
-
"restore.steps.database.detectedBackup": "Arquivo .backup detectado (já descompactado)",
|
|
599
|
-
"restore.steps.database.proceeding": "Prosseguindo com restauração direta",
|
|
600
|
-
"restore.steps.database.executing": "Executando psql via Docker...",
|
|
601
|
-
"restore.steps.database.followingDocs": "Seguindo documentação oficial Supabase",
|
|
602
|
-
"restore.steps.database.warning": "AVISO: Erros como \"object already exists\" são ESPERADOS",
|
|
603
|
-
"restore.steps.database.warningReason1": "Isto acontece porque o backup contém CREATE para todos os schemas",
|
|
604
|
-
"restore.steps.database.warningReason2": "Supabase já tem auth e storage criados, então esses erros são normais",
|
|
605
|
-
"restore.steps.database.success": "Database restaurada com sucesso!",
|
|
606
|
-
"restore.steps.database.normalErrors": "Erros \"already exists\" são normais e não afetam a restauração",
|
|
607
|
-
"restore.steps.database.expectedErrors": "Erros esperados encontrados (conforme documentação Supabase)",
|
|
608
|
-
"restore.steps.database.errorsIgnored": "Erros são ignorados pois são comandos de CREATE que já existem",
|
|
609
|
-
"restore.steps.database.error": "Erro ao restaurar database: {message}",
|
|
610
|
-
|
|
611
|
-
"restore.steps.storage.noBuckets": "Nenhum bucket de Storage encontrado no backup",
|
|
612
|
-
"restore.steps.storage.zipNotFound": "Arquivo .storage.zip não encontrado",
|
|
613
|
-
"restore.steps.storage.metadataOnly": "Apenas metadados dos buckets foram encontrados",
|
|
614
|
-
"restore.steps.storage.zipRequired": "Para restaurar os arquivos, é necessário o arquivo .storage.zip do Dashboard",
|
|
615
|
-
"restore.steps.storage.bucketInfo": "{name} ({visibility})",
|
|
616
|
-
"restore.steps.storage.public": "público",
|
|
617
|
-
"restore.steps.storage.private": "privado",
|
|
618
|
-
"restore.steps.storage.noBucketsInBackup": "Nenhum bucket de Storage encontrado no backup",
|
|
619
|
-
"restore.steps.storage.projectIdNotFound": "Project ID do projeto origem não encontrado no manifest. Continuando sem substituição...",
|
|
620
|
-
"restore.steps.storage.extracting": "Extraindo arquivo .storage.zip...",
|
|
621
|
-
"restore.steps.storage.extracted": "Arquivo extraído com sucesso",
|
|
622
|
-
"restore.steps.storage.replacing": "Substituindo referências ao Project ID antigo nos arquivos extraídos...",
|
|
623
|
-
"restore.steps.storage.replacingProjectId": "Substituindo Project ID: {source} → {target}",
|
|
624
|
-
"restore.steps.storage.replaced": "Substituição de Project ID concluída",
|
|
625
|
-
"restore.steps.storage.noBucketsInZip": "Nenhum bucket encontrado no arquivo .storage.zip",
|
|
626
|
-
"restore.steps.storage.bucketConfig": "Configurações: {visibility}, limite: {limit}, tipos: {types}",
|
|
627
|
-
"restore.steps.storage.noLimit": "sem limite",
|
|
628
|
-
"restore.steps.storage.allTypes": "todos",
|
|
629
|
-
"restore.steps.storage.fileFound": "Arquivo de storage encontrado: {fileName}",
|
|
630
|
-
"restore.steps.storage.bucketsFoundInZip": "Encontrados {count} bucket(s) no arquivo ZIP",
|
|
631
|
-
"restore.steps.storage.processingBucket": "Processando bucket: {bucketName}",
|
|
632
|
-
"restore.steps.storage.creatingBucket": "Criando bucket {bucketName}...",
|
|
633
|
-
"restore.steps.storage.bucketCreated": "Bucket {bucketName} criado com configurações do backup",
|
|
634
|
-
"restore.steps.storage.bucketUpdated": "Configurações do bucket atualizadas",
|
|
635
|
-
"restore.steps.storage.bucketConfigCorrect": "Configurações do bucket já estão corretas",
|
|
636
|
-
"restore.steps.storage.filesFoundForUpload": "Encontrados {count} arquivo(s) para upload",
|
|
637
|
-
"restore.steps.storage.bucketDone": "Bucket {bucketName}: {uploaded}/{total} arquivo(s) enviado(s)",
|
|
638
|
-
"restore.steps.storage.bucketError": "Erro ao processar bucket {bucketName}: {message}",
|
|
639
|
-
"restore.steps.storage.uploadError": "Erro ao fazer upload de {path}: {message}",
|
|
640
|
-
"restore.steps.storage.restoreComplete": "Restauração de Storage concluída: {success}/{total} bucket(s) processado(s), {files} arquivo(s) enviado(s)",
|
|
641
|
-
"restore.steps.storage.bucketsFoundMetadata": "{count} bucket(s) encontrado(s) no backup (apenas metadados)",
|
|
642
|
-
"restore.steps.storage.noBucketsInSubfolders": "Erro: Nenhum bucket encontrado nas subpastas de {rootDir}",
|
|
643
|
-
"restore.steps.storage.updateError": "Não foi possível atualizar configurações: {errorText}",
|
|
644
|
-
"restore.steps.storage.uploadProgress": "Upload: {path}{metaInfo}",
|
|
645
|
-
"restore.steps.storage.metadataPreserved": "(metadados preservados)",
|
|
646
|
-
"restore.steps.storage.fileError": "Erro ao processar arquivo {path}: {message}",
|
|
647
|
-
"restore.steps.storage.rootIsProjectId": "A pasta raiz é um Project ID e não deve ser tratada como bucket",
|
|
648
|
-
"restore.steps.storage.bucketExists": "Bucket {bucketName} já existe",
|
|
649
|
-
"restore.steps.storage.updating": "Atualizando configurações do bucket para corresponder ao backup...",
|
|
650
|
-
"restore.steps.storage.detectedProjectId": "Detectada pasta raiz com Project ID: {projectId}{reason}",
|
|
651
|
-
"restore.steps.storage.searchingBuckets": "Buscando buckets nas subpastas...",
|
|
652
|
-
"restore.steps.storage.error": "Erro ao processar Storage: {message}",
|
|
653
|
-
|
|
654
|
-
"restore.steps.edgeFunctions.notFound": "Nenhuma Edge Function encontrada no backup",
|
|
655
|
-
"restore.steps.edgeFunctions.found": "Encontradas {count} Edge Function(s)",
|
|
656
|
-
"restore.steps.edgeFunctions.cleaningBefore": "Limpando supabase/functions antes de copiar...",
|
|
657
|
-
"restore.steps.edgeFunctions.linkMayExist": "Link pode já existir, continuando...",
|
|
658
|
-
"restore.steps.edgeFunctions.cleaningAfter": "Limpando supabase/functions após deploy...",
|
|
659
|
-
"restore.steps.edgeFunctions.success": "Edge Functions restauradas com sucesso!",
|
|
660
|
-
"restore.steps.edgeFunctions.error": "Erro ao restaurar Edge Functions: {message}",
|
|
661
|
-
"restore.steps.edgeFunctions.listBucketsError": "Erro ao listar buckets: {message}",
|
|
662
|
-
"restore.steps.edgeFunctions.createBucketError": "Erro ao criar bucket: {status} {errorText}",
|
|
663
|
-
"restore.steps.edgeFunctions.copying": "Copiando {funcName} para supabase/functions...",
|
|
664
|
-
"restore.steps.edgeFunctions.linking": "Linkando com projeto {projectId}...",
|
|
665
|
-
"restore.steps.edgeFunctions.deploying": "Deployando {funcName}...",
|
|
666
|
-
"restore.steps.edgeFunctions.deployed": "{funcName} deployada com sucesso!",
|
|
667
|
-
"restore.steps.edgeFunctions.deployFailed": "{funcName} - deploy falhou: {message}",
|
|
668
|
-
|
|
669
|
-
"restore.steps.auth.notFound": "Nenhuma configuração de Auth encontrada no backup",
|
|
670
|
-
"restore.steps.auth.error": "Erro ao processar Auth Settings: {message}",
|
|
671
|
-
"restore.steps.auth.urlTitle": "URL para configuração manual:",
|
|
672
|
-
"restore.steps.auth.configureTitle": "Configure manualmente as seguintes opções:",
|
|
673
|
-
"restore.steps.auth.pressEnter": "Após configurar, pressione Enter para continuar...",
|
|
674
|
-
"restore.steps.auth.success": "Auth Settings processados",
|
|
675
|
-
|
|
676
|
-
"restore.steps.databaseSettings.notFound": "Nenhuma configuração de Database encontrada no backup",
|
|
677
|
-
"restore.steps.databaseSettings.success": "Database Settings restaurados com sucesso!",
|
|
678
|
-
"restore.steps.databaseSettings.error": "Erro ao restaurar Database Settings: {message}",
|
|
679
|
-
"restore.steps.databaseSettings.enabling": "Habilitando {count} extension(s)...",
|
|
680
|
-
"restore.steps.databaseSettings.extension": "- {extName}",
|
|
681
|
-
"restore.steps.databaseSettings.invalidUrl": "URL inválida para {extName}",
|
|
682
|
-
"restore.steps.databaseSettings.extensionExists": "{extName} - extension já existe ou não pode ser habilitada",
|
|
683
|
-
|
|
684
|
-
"restore.steps.realtime.notFound": "Nenhuma configuração de Realtime encontrada no backup",
|
|
685
|
-
"restore.steps.realtime.urlTitle": "URL para configuração manual:",
|
|
686
|
-
"restore.steps.realtime.configureTitle": "Configure manualmente as seguintes opções:",
|
|
687
|
-
"restore.steps.realtime.pressEnter": "Após configurar, pressione Enter para continuar...",
|
|
688
|
-
"restore.steps.realtime.success": "Realtime Settings processados",
|
|
689
|
-
|
|
690
|
-
"restore.steps.backupSelection.title": "Backups disponíveis:",
|
|
691
|
-
"restore.steps.backupSelection.separator": "═══════════════════════════════════════════════════════════════════════════════",
|
|
692
|
-
"restore.steps.backupSelection.input": "Digite o número do backup para restaurar ({min}-{max}):",
|
|
693
|
-
"restore.steps.backupSelection.invalid": "Número inválido",
|
|
694
|
-
|
|
695
|
-
"utils.realtime.previousFound": "Foi identificada uma gravação anterior de Realtime Settings.",
|
|
696
|
-
"utils.realtime.reuse": "Deseja reutilizar as configurações anteriores?",
|
|
697
|
-
"utils.realtime.reusing": "Reutilizando configurações de Realtime Settings do backup anterior...",
|
|
698
|
-
"utils.realtime.configTitle": "Configurações de Realtime Settings",
|
|
699
|
-
"utils.realtime.separator": "════════════════════════════════════════════════════════════════",
|
|
700
|
-
"utils.realtime.access": "Acesse: {url}",
|
|
701
|
-
"utils.realtime.note": "Anote os valores dos 7 parâmetros abaixo:",
|
|
702
|
-
"utils.realtime.questions": "Responda as perguntas abaixo (pressione Enter para usar o valor padrão):",
|
|
703
|
-
"utils.realtime.saved": "Configurações de Realtime Settings salvas!",
|
|
704
|
-
"utils.realtime.copying": "Copiando Realtime Settings do backup anterior...",
|
|
705
|
-
|
|
706
|
-
"utils.supabaseLink.linking": "Zerando vínculo e linkando projeto: {projectId}...",
|
|
707
|
-
"utils.supabaseLink.validation": "Validação: linked-ref = {linkedRef} (esperado = {expected})",
|
|
708
|
-
"utils.supabaseLink.validationFailed": "Validação falhou: linked-ref = {linkedRef} (esperado = {expected}). O projeto linkado não corresponde ao projeto esperado.",
|
|
709
|
-
"utils.supabaseLink.cannotValidate": "Não foi possível validar o vínculo: {message}",
|
|
710
|
-
"utils.supabaseLink.linkFailed": "Falha ao linkar projeto {projectId}: {message}",
|
|
711
|
-
|
|
712
|
-
"restore.index.envUpdated": ".env.local atualizado com sucesso. Nenhuma chave renomeada; valores sincronizados.",
|
|
713
|
-
"restore.index.searchingBackups": "Buscando backups em: {path}",
|
|
714
|
-
"restore.index.noBackupsFound": "Nenhum backup válido encontrado",
|
|
715
|
-
"restore.index.runBackupFirst": "Execute primeiro: npx smoonb backup",
|
|
716
|
-
"restore.index.summaryTitle": "RESUMO DA RESTAURAÇÃO:",
|
|
717
|
-
"restore.index.selectedBackup": "Backup selecionado: {name}",
|
|
718
|
-
"restore.index.targetProject": "Projeto destino: {projectId}",
|
|
719
|
-
"restore.index.database": "Database: {value}",
|
|
720
|
-
"restore.index.edgeFunctions": "Edge Functions: {value}",
|
|
721
|
-
"restore.index.authSettings": "Auth Settings: {value}",
|
|
722
|
-
"restore.index.storage": "Storage: {value}",
|
|
723
|
-
"restore.index.databaseSettings": "Database Settings: {value}",
|
|
724
|
-
"restore.index.realtimeSettings": "Realtime Settings: {value}",
|
|
725
|
-
"restore.index.yes": "Sim",
|
|
726
|
-
"restore.index.no": "Não",
|
|
727
|
-
"restore.index.notConfigured": "(não configurado)",
|
|
728
|
-
"restore.index.confirmRestore": "Deseja iniciar a restauração com estas configurações?",
|
|
729
|
-
"restore.index.restoreCancelled": "Restauração cancelada.",
|
|
730
|
-
"restore.disclaimer.errorsTitle": "IMPORTANTE: Erros esperados durante a restauração",
|
|
731
|
-
"restore.disclaimer.errorsIntro": "Durante a restauração do banco de dados você verá muitas mensagens de erro no terminal. Isso é NORMAL e esperado.",
|
|
732
|
-
"restore.disclaimer.errorsReason": "O Supabase confirma que erros como \"object already exists\" ou \"constraint already exists\" são normais ao restaurar um dump completo, pois o backup contém comandos CREATE para todos os esquemas e seu projeto destino já possui parte desses objetos.",
|
|
733
|
-
"restore.disclaimer.supabaseDoc": "Documentação oficial do Supabase (restauração e erros esperados):",
|
|
734
|
-
"restore.disclaimer.waitComplete": "Mesmo com inúmeros erros, você deve aguardar o término completo do processo. Não interrompa a restauração.",
|
|
735
|
-
"restore.disclaimer.testResult": "Após o término, teste seu projeto (tabelas, dados, funções) para verificar se a restauração foi bem-sucedida.",
|
|
736
|
-
"restore.disclaimer.acceptProceed": "Entendo que erros são esperados, aguardarei o término e testarei o resultado. Prosseguir com a restauração?",
|
|
737
|
-
"restore.index.startingRestore": "Iniciando restauração...",
|
|
738
|
-
"restore.index.restoringDatabase": "Restaurando Database...",
|
|
739
|
-
"restore.index.restoringEdgeFunctions": "Restaurando Edge Functions...",
|
|
740
|
-
"restore.index.restoringAuthSettings": "Restaurando Auth Settings...",
|
|
741
|
-
"restore.index.restoringStorageBuckets": "Restaurando Storage Buckets...",
|
|
742
|
-
"restore.index.restoringDatabaseSettings": "Restaurando Database Settings...",
|
|
743
|
-
"restore.index.restoringRealtimeSettings": "Restaurando Realtime Settings...",
|
|
744
|
-
"restore.index.restoreComplete": "
|
|
745
|
-
"restore.index.targetProjectFinal": "Projeto destino: {projectId}",
|
|
746
|
-
"restore.index.databaseRestored": "Database: Restaurada com sucesso via Docker",
|
|
747
|
-
"restore.index.edgeFunctionsRestored": "Edge Functions: {success}/{total} functions restauradas",
|
|
748
|
-
"restore.index.authSettingsRestored": "Auth Settings: Configurações exibidas para configuração manual",
|
|
749
|
-
"restore.index.storageRestored": "Storage: {buckets} bucket(s) restaurado(s), {files} arquivo(s) enviado(s)",
|
|
750
|
-
"restore.index.storageMetadataOnly": "Storage: {buckets} bucket(s) encontrado(s) - apenas metadados (arquivo .storage.zip não encontrado)",
|
|
751
|
-
"restore.index.databaseSettingsRestored": "Database Settings: Extensões e configurações restauradas via SQL",
|
|
752
|
-
"restore.index.realtimeSettingsRestored": "Realtime Settings: Configurações exibidas para configuração manual",
|
|
753
|
-
"restore.index.error": "Erro na restauração: {message}",
|
|
754
|
-
|
|
755
|
-
"restore.utils.componentsTitle": "Componentes que serão restaurados:",
|
|
756
|
-
"restore.utils.database": "Database (psql -f via Docker)",
|
|
757
|
-
"restore.utils.edgeFunctions": "Edge Functions: {count} function(s)",
|
|
758
|
-
"restore.utils.authSettings": "Auth Settings: Exibir URL e valores para configuração manual",
|
|
759
|
-
"restore.utils.storageBuckets": "Storage Buckets: Restauração automática de buckets e arquivos via API",
|
|
760
|
-
"restore.utils.storageMetadataOnly": "Storage Buckets: Exibir informações (apenas metadados - arquivo .storage.zip não encontrado)",
|
|
761
|
-
"restore.utils.databaseSettings": "Database Extensions and Settings: Restaurar via SQL",
|
|
762
|
-
"restore.utils.realtimeSettings": "Realtime Settings: Exibir URL e valores para configuração manual",
|
|
763
|
-
"restore.utils.summaryTitle": "Resumo da Restauração:",
|
|
764
|
-
"restore.utils.summarySeparator": "═══════════════════════════════════════════════════════════════════════════════",
|
|
765
|
-
"restore.utils.backup": "Backup: {name}",
|
|
766
|
-
"restore.utils.sourceProject": "Projeto Origem: {projectId}",
|
|
767
|
-
"restore.utils.targetProject": "Projeto Destino: {projectId}",
|
|
768
|
-
|
|
769
|
-
"restore.steps.auth.pressEnter": "Pressione Enter para continuar",
|
|
770
|
-
"restore.steps.realtime.pressEnter": "Pressione Enter para continuar",
|
|
771
|
-
|
|
772
|
-
"restore.import.fileNotFound": "Arquivo de backup não encontrado: {path}",
|
|
773
|
-
"restore.import.invalidFormat": "Arquivo de backup deve ser .backup.gz ou .backup",
|
|
774
|
-
"restore.import.storageNotFound": "Arquivo de storage não encontrado: {path}",
|
|
775
|
-
"restore.import.storageInvalidFormat": "Arquivo de storage deve ser .storage.zip",
|
|
776
|
-
"restore.import.invalidFileName": "Nome do arquivo de backup não está no formato esperado do Dashboard. Formato esperado: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz",
|
|
777
|
-
"restore.import.importing": "Importando backup para: {name}",
|
|
778
|
-
"restore.import.backupImported": "Arquivo de backup importado: {fileName} ({size} MB)",
|
|
779
|
-
"restore.import.storageImported": "Arquivo de storage importado: {fileName} ({size} MB)",
|
|
780
|
-
"restore.import.importingFile": "Importando arquivo de backup...",
|
|
781
|
-
"restore.import.importedSelected": "Backup importado e selecionado automaticamente: {name}",
|
|
782
|
-
"restore.import.cannotFind": "Não foi possível encontrar o backup importado",
|
|
783
|
-
"restore.import.envBackup": "Backup do .env.local: {path}",
|
|
784
|
-
"restore.import.envNotFound": "⚠️ Arquivo .env.local não encontrado. Será criado durante o mapeamento.",
|
|
785
|
-
"restore.import.noComponents": "\n❌ Nenhum componente selecionado para restauração!",
|
|
786
|
-
|
|
787
|
-
"backup.steps.functions.noFunctionsMessage": "Nenhuma Edge Function encontrada neste projeto",
|
|
788
|
-
"backup.steps.storage.noBucketsMessage": "Nenhum bucket de Storage encontrado neste projeto",
|
|
789
|
-
|
|
790
|
-
"check.connectionSuccess": "Conexão estabelecida com sucesso",
|
|
791
|
-
"check.unexpectedResponse": "Resposta inesperada da database",
|
|
792
|
-
"check.connectionError": "Falha na conexão: {message}",
|
|
793
|
-
|
|
794
|
-
"error.databaseUrlInvalid": "Database URL inválida. Formato esperado: postgresql://user:password@host/database",
|
|
795
|
-
"error.databaseUrlInvalidSimple": "Database URL inválida",
|
|
796
|
-
"error.storageCredentialsNotConfigured": "Credenciais do projeto destino não configuradas. É necessário SUPABASE_PROJECT_ID e SUPABASE_ACCESS_TOKEN",
|
|
797
|
-
"error.supabaseCredentialsNotConfigured": "Credenciais do Supabase não configuradas. É necessário NEXT_PUBLIC_SUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY"
|
|
798
|
-
|
|
799
|
-
|
|
418
|
+
"backup.steps.database.separated.exportingRoles": "Exportando roles...",
|
|
419
|
+
|
|
420
|
+
"backup.steps.databaseSettings.title": "Backup das Database Extensions and Settings via SQL...",
|
|
421
|
+
"backup.steps.databaseSettings.capturing": "Capturando Database Extensions and Settings...",
|
|
422
|
+
"backup.steps.databaseSettings.executing": "Executando queries de configurações via Docker...",
|
|
423
|
+
|
|
424
|
+
"backup.steps.auth.title": "Backup das Auth Settings via API...",
|
|
425
|
+
"backup.steps.auth.exporting": "Exportando configurações de Auth via Management API...",
|
|
426
|
+
|
|
427
|
+
"backup.steps.realtime.title": "Backup das Realtime Settings via API...",
|
|
428
|
+
"backup.steps.realtime.capturing": "Capturando as configurações atuais de Realtime...",
|
|
429
|
+
"backup.steps.realtime.previousFound": "Foi identificada uma gravação anterior de Realtime Settings.",
|
|
430
|
+
"backup.steps.realtime.reuse": "Deseja reutilizar as configurações anteriores?",
|
|
431
|
+
"backup.steps.realtime.configTitle": "Configurações de Realtime Settings",
|
|
432
|
+
"backup.steps.realtime.access": "Acesse: {url}",
|
|
433
|
+
"backup.steps.realtime.note": "Anote os valores dos 7 parâmetros abaixo:",
|
|
434
|
+
"backup.steps.realtime.questions": "Responda as perguntas abaixo (pressione Enter para usar o valor padrão):",
|
|
435
|
+
"backup.steps.realtime.saved": "Configurações de Realtime Settings salvas!",
|
|
436
|
+
|
|
437
|
+
"backup.steps.storage.title": "Backup do Storage via API...",
|
|
438
|
+
"backup.steps.storage.listing": "Listando buckets de Storage via Management API...",
|
|
439
|
+
"backup.steps.storage.found": "Encontrados {count} buckets",
|
|
440
|
+
"backup.steps.storage.processing": "Processando bucket: {bucketName}",
|
|
441
|
+
"backup.steps.storage.listingFiles": "Listando arquivos do bucket {bucketName}...",
|
|
442
|
+
"backup.steps.storage.scanningFolder": "Escaneando {path} ({count} encontrado(s))",
|
|
443
|
+
"backup.steps.storage.totalFound": "Total: {count} arquivo(s) encontrado(s)",
|
|
444
|
+
"backup.steps.storage.listRetry": "Tentativa {attempt}/{max} ao listar {path} falhou ({message}). Retentando em {delay}s...",
|
|
445
|
+
"backup.steps.storage.listFailed": "Falha ao listar bucket {bucketName} após {max} tentativas: {message}",
|
|
446
|
+
"backup.steps.storage.downloading": "Baixando {count} arquivo(s) do bucket {bucketName}...",
|
|
447
|
+
"backup.steps.storage.downloaded": "Baixados {current}/{total} arquivo(s)...",
|
|
448
|
+
"backup.steps.storage.downloadRetry": "Arquivo {path}: tentativa {attempt}/{max} falhou. Retentando em {delay}s...",
|
|
449
|
+
"backup.steps.storage.downloadFailed": "Arquivo {path}: falhou após todas as tentativas: {message}",
|
|
450
|
+
"backup.steps.storage.bucketDone": "Bucket {bucketName}: {downloaded}/{total} arquivo(s) baixado(s)",
|
|
451
|
+
"backup.steps.storage.bucketDoneWithSkips": "Bucket {bucketName}: {downloaded}/{total} arquivo(s) baixado(s), {skipped} pulado(s)",
|
|
452
|
+
"backup.steps.storage.creatingZip": "Criando arquivo ZIP no padrão do Dashboard...",
|
|
453
|
+
"backup.steps.storage.zipCreated": "Arquivo ZIP criado: {fileName} ({size} MB)",
|
|
454
|
+
"backup.steps.storage.cleanup": "Deseja limpar storage_temp após o backup",
|
|
455
|
+
"backup.steps.storage.tempKept": "Estrutura temporária mantida em: {path}",
|
|
456
|
+
"backup.steps.storage.done": "Storage backupado: {buckets} buckets, {files} arquivo(s) baixado(s)",
|
|
457
|
+
|
|
458
|
+
"backup.steps.roles.title": "Backup dos Custom Roles via SQL...",
|
|
459
|
+
"backup.steps.roles.exporting": "Exportando Custom Roles via Docker...",
|
|
460
|
+
|
|
461
|
+
"backup.steps.functions.title": "Backup das Edge Functions via Docker...",
|
|
462
|
+
"backup.steps.functions.linking": "Zerando vínculo e linkando projeto: {projectId}...",
|
|
463
|
+
"backup.steps.functions.validation": "Validação: linked-ref = {linkedRef} (esperado = {expected})",
|
|
464
|
+
"backup.steps.functions.prepared": "Pasta supabase/functions preparada (será preservada após backup).",
|
|
465
|
+
"backup.steps.functions.listing": "Listando Edge Functions via Management API...",
|
|
466
|
+
"backup.steps.functions.noneFound": "Nenhuma Edge Function encontrada",
|
|
467
|
+
|
|
468
|
+
"backup.steps.temp.title": "Backup do Supabase .temp...",
|
|
469
|
+
"backup.steps.temp.copying": "Copiando supabase/.temp → {path} ({count} arquivos)...",
|
|
470
|
+
|
|
471
|
+
"backup.steps.migrations.title": "Backup das Migrations...",
|
|
472
|
+
"backup.steps.migrations.linking": "Zerando vínculo e linkando projeto: {projectId}...",
|
|
473
|
+
"backup.steps.migrations.validation": "Validação: linked-ref = {linkedRef} (esperado = {expected})",
|
|
474
|
+
"backup.steps.migrations.cleaning": "Limpando supabase/migrations...",
|
|
475
|
+
"backup.steps.migrations.downloading": "Baixando todas as migrations do servidor usando migration fetch...",
|
|
476
|
+
"backup.steps.migrations.downloaded": "Arquivos baixados: {count} migrations",
|
|
477
|
+
"backup.steps.migrations.copying": "Copiando supabase/migrations → {path} ({count} arquivos)...",
|
|
478
|
+
|
|
479
|
+
"backup.complete.title": "BACKUP COMPLETO FINALIZADO VIA DOCKER!",
|
|
480
|
+
"backup.complete.location": "Localização: {path}",
|
|
481
|
+
"backup.complete.database": "Database: {fileName} ({size}) - Idêntico ao Dashboard",
|
|
482
|
+
"backup.complete.databaseSql": "Database SQL: {count} arquivos separados ({size}) - Para troubleshooting",
|
|
483
|
+
"backup.complete.databaseSettings": "Database Settings: {fileName} ({size}) - Extensions e Configurações",
|
|
484
|
+
"backup.complete.auth": "Auth Settings: Exportadas via API",
|
|
485
|
+
"backup.complete.realtime": "Configurações capturadas interativamente",
|
|
486
|
+
"backup.complete.realtimeReused": "Configurações importadas do backup {backup}",
|
|
487
|
+
"backup.complete.storage": "Storage: {buckets} buckets, {files} arquivo(s) baixado(s), ZIP: {zipFile} ({size})",
|
|
488
|
+
"backup.complete.roles": "Custom Roles: {count} roles exportados via SQL",
|
|
489
|
+
"backup.complete.functions": "Edge Functions: {downloaded}/{total} functions baixadas via Docker",
|
|
490
|
+
"backup.complete.temp": "Supabase .temp: {count} arquivo(s) copiado(s)",
|
|
491
|
+
"backup.complete.migrations": "Migrations: {count} migration(s) copiada(s)",
|
|
492
|
+
|
|
493
|
+
"backup.error.databaseUrlNotConfigured": "DATABASE_URL NÃO CONFIGURADA",
|
|
494
|
+
"backup.error.databaseUrlInstructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
495
|
+
"backup.error.databaseUrlStep1": "1. Configurar SUPABASE_DB_URL no .env.local",
|
|
496
|
+
"backup.error.databaseUrlStep2": "2. Repetir o comando de backup",
|
|
497
|
+
"backup.error.databaseUrlExample": "Exemplo de configuração:",
|
|
498
|
+
"backup.error.databaseUrlExampleValue": "\"databaseUrl\": \"postgresql://postgres:[senha]@db.[projeto].supabase.co:5432/postgres\"",
|
|
499
|
+
"backup.error.databaseUrlCancelled": "Backup cancelado - Configuração incompleta",
|
|
500
|
+
|
|
501
|
+
"backup.error.accessTokenNotConfigured": "ACCESS_TOKEN NÃO CONFIGURADO",
|
|
502
|
+
"backup.error.accessTokenInstructions": "Para fazer backup completo do Supabase, você precisa:",
|
|
503
|
+
"backup.error.accessTokenStep1": "1. Obter Personal Access Token do Supabase",
|
|
504
|
+
"backup.error.accessTokenStep2": "2. Configurar SUPABASE_ACCESS_TOKEN no .env.local",
|
|
505
|
+
"backup.error.accessTokenStep3": "3. Repetir o comando de backup",
|
|
506
|
+
"backup.error.accessTokenHowTo": "Como obter o token:",
|
|
507
|
+
"backup.error.accessTokenStep1Detail": "1. Acesse: https://supabase.com/dashboard/account/tokens",
|
|
508
|
+
"backup.error.accessTokenStep2Detail": "2. Clique: \"Generate new token\"",
|
|
509
|
+
"backup.error.accessTokenStep3Detail": "3. Copie o token (formato: sbp_...)",
|
|
510
|
+
"backup.error.accessTokenCancelled": "Backup cancelado - Token não configurado",
|
|
511
|
+
|
|
512
|
+
"backup.error.postgresMajorNotSet": "SUPABASE_POSTGRES_MAJOR não definido.",
|
|
513
|
+
"backup.error.postgresMajorInstructions": "Defina SUPABASE_POSTGRES_MAJOR com a major do Postgres do seu projeto (ex.: 15 ou 17).",
|
|
514
|
+
"backup.error.postgresMajorWhereToCheck": "Você pode conferir no Supabase Dashboard: Project Settings -> Infrastructure -> Service Versions (linha do Postgres).",
|
|
515
|
+
"backup.error.postgresMajorInvalid": "SUPABASE_POSTGRES_MAJOR inválido. Use um inteiro (ex.: 15 ou 17).",
|
|
516
|
+
"backup.steps.postgresVersion.postgresMajorValidationFailed": "SUPABASE_POSTGRES_MAJOR não definido (falha de validação).",
|
|
517
|
+
|
|
518
|
+
"backup.steps.storage.noBuckets": "Nenhum bucket encontrado",
|
|
519
|
+
"backup.steps.storage.credentialsNotAvailable": "Credenciais do Supabase não disponíveis. Fazendo backup apenas de metadados...",
|
|
520
|
+
"backup.steps.storage.cleanupRemoving": "Limpando estrutura temporária...",
|
|
521
|
+
"backup.steps.storage.cleanupRemoved": "Estrutura temporária removida",
|
|
522
|
+
"backup.steps.storage.cleanupError": "Erro ao limpar estrutura temporária: {message}",
|
|
523
|
+
"backup.steps.storage.listError": "Erro ao listar {path}: {message}",
|
|
524
|
+
"backup.steps.storage.processError": "Erro ao processar {path}: {message}",
|
|
525
|
+
"backup.steps.storage.error": "Erro no backup do Storage: {message}",
|
|
526
|
+
"backup.steps.storage.listBucketsError": "Erro ao listar buckets: {status} {statusText}",
|
|
527
|
+
"backup.steps.storage.downloadError": "Erro ao baixar {path}: {message}",
|
|
528
|
+
"backup.steps.storage.processFileError": "Erro ao processar arquivo {path}: {message}",
|
|
529
|
+
"backup.steps.storage.processBucketError": "Erro ao processar bucket {bucketName}: {message}",
|
|
530
|
+
"backup.steps.database.error": "Erro no backup do database: {message}",
|
|
531
|
+
"backup.steps.database.separated.error": "Erro nos backups SQL separados: {message}",
|
|
532
|
+
"backup.steps.database.separated.schemaError": "Erro no schema: {message}",
|
|
533
|
+
"backup.steps.database.separated.dataError": "Erro nos dados: {message}",
|
|
534
|
+
"backup.steps.database.separated.rolesError": "Erro nos roles: {message}",
|
|
535
|
+
"backup.steps.databaseSettings.error": "Erro no backup das Database Settings: {message}",
|
|
536
|
+
"backup.steps.auth.error": "Erro no backup das Auth Settings: {message}",
|
|
537
|
+
"backup.steps.auth.getError": "Erro ao obter Auth Settings: {status} {statusText}",
|
|
538
|
+
"backup.steps.realtime.error": "Erro ao capturar Realtime Settings: {message}",
|
|
539
|
+
"backup.steps.roles.error": "Erro no backup dos Custom Roles: {message}",
|
|
540
|
+
"backup.steps.roles.exportError": "Erro ao exportar Custom Roles via Docker: {message}",
|
|
541
|
+
"backup.steps.functions.error": "Erro durante backup de Edge Functions: {message}",
|
|
542
|
+
"backup.steps.functions.listError": "Erro ao listar Edge Functions: {status} {statusText}",
|
|
543
|
+
"backup.steps.functions.downloadError": "Erro ao baixar {funcName}: {message}",
|
|
544
|
+
"backup.steps.temp.error": "Erro no backup do supabase/.temp: {message}",
|
|
545
|
+
"backup.steps.migrations.error": "Erro no backup das migrations: {message}",
|
|
546
|
+
|
|
547
|
+
"backup.steps.functions.cleanBefore": "Pasta supabase/functions limpa antes do backup.",
|
|
548
|
+
"backup.steps.functions.preserving": "Preservando {count} função(ões) existente(s) na pasta supabase/functions.",
|
|
549
|
+
"backup.steps.functions.cleanAfter": "supabase/functions limpo após o backup.",
|
|
550
|
+
"backup.steps.functions.preserved": "supabase/functions preservada conforme solicitado.",
|
|
551
|
+
|
|
552
|
+
"backup.steps.migrations.cleaning": "Limpando supabase/migrations...",
|
|
553
|
+
"backup.steps.migrations.downloading": "Baixando todas as migrations do servidor usando migration fetch...",
|
|
554
|
+
"backup.steps.migrations.fetchError": "Erro ao executar migration fetch: {message}",
|
|
555
|
+
"backup.steps.migrations.fetchTip": "Verifique se o projeto está linkado corretamente e se o token está válido.",
|
|
556
|
+
"backup.steps.migrations.downloaded": "Arquivos baixados: {count} migrations",
|
|
557
|
+
"backup.steps.migrations.copying": "Copiando supabase/migrations → {path} ({count} arquivos)...",
|
|
558
|
+
"backup.steps.migrations.copied": "{count} migration(s) copiada(s)",
|
|
559
|
+
"backup.steps.migrations.cleaned": "supabase/migrations apagado.",
|
|
560
|
+
|
|
561
|
+
"backup.steps.temp.noFiles": "Nenhum arquivo encontrado em supabase/.temp",
|
|
562
|
+
"backup.steps.temp.copied": "{count} arquivo(s) copiado(s)",
|
|
563
|
+
"backup.steps.temp.cleaned": "supabase/.temp apagado.",
|
|
564
|
+
|
|
565
|
+
"restore.steps.components.edgeFunctions.title": "Edge Functions:",
|
|
566
|
+
"restore.steps.components.edgeFunctions.description1": "As Edge Functions serão copiadas para supabase/functions e implantadas no projeto destino.",
|
|
567
|
+
"restore.steps.components.edgeFunctions.description2": "A pasta supabase/functions será limpa antes do processo.",
|
|
568
|
+
"restore.steps.components.edgeFunctions.include": "Deseja restaurar Edge Functions",
|
|
569
|
+
|
|
570
|
+
"restore.steps.components.auth.title": "Auth Settings:",
|
|
571
|
+
"restore.steps.components.auth.description1": "As configurações de Auth serão aplicadas pela API e verificadas no destino.",
|
|
572
|
+
"restore.steps.components.auth.description2": "Inclui SMTP e redirecionamentos registrados no backup.",
|
|
573
|
+
"restore.steps.components.auth.include": "Deseja restaurar Auth",
|
|
574
|
+
|
|
575
|
+
"restore.steps.components.storage.title": "Storage:",
|
|
576
|
+
"restore.steps.components.storage.zipFound": "Arquivo .storage.zip encontrado: {fileName}",
|
|
577
|
+
"restore.steps.components.storage.withZip.description1": "Os buckets e arquivos serão restaurados automaticamente no projeto destino.",
|
|
578
|
+
"restore.steps.components.storage.withZip.description2": "O arquivo ZIP será extraído, buckets criados e arquivos enviados via API.",
|
|
579
|
+
"restore.steps.components.storage.metadataOnly.description1": "Apenas metadados dos buckets encontrados (pasta storage).",
|
|
580
|
+
"restore.steps.components.storage.metadataOnly.description2": "Para restaurar os arquivos, é necessário o arquivo .storage.zip do Dashboard.",
|
|
581
|
+
"restore.steps.components.storage.metadataOnly.description3": "Apenas informações dos buckets serão exibidas.",
|
|
582
|
+
"restore.steps.components.storage.include": "Deseja restaurar Storage",
|
|
583
|
+
|
|
584
|
+
"restore.steps.components.databaseSettings.title": "Database Extensions and Settings:",
|
|
585
|
+
"restore.steps.components.databaseSettings.description1": "As extensões e configurações do banco de dados serão restauradas via SQL.",
|
|
586
|
+
"restore.steps.components.databaseSettings.description2": "Isso inclui extensões PostgreSQL e configurações específicas do projeto.",
|
|
587
|
+
"restore.steps.components.databaseSettings.include": "Deseja restaurar Database Settings",
|
|
588
|
+
|
|
589
|
+
"restore.steps.components.realtime.title": "Realtime Settings:",
|
|
590
|
+
"restore.steps.components.realtime.description1": "As configurações de Realtime do backup serão aplicadas e verificadas pela API.",
|
|
591
|
+
"restore.steps.components.realtime.description2": "Capturas antigas reproduzem os valores registrados naquela data.",
|
|
592
|
+
"restore.steps.components.realtime.include": "Deseja restaurar Realtime",
|
|
593
|
+
"restore.steps.components.database.include": "Deseja restaurar Database",
|
|
594
|
+
|
|
595
|
+
"restore.steps.database.detectedGz": "Arquivo .backup.gz detectado",
|
|
596
|
+
"restore.steps.database.extractingGz": "Extraindo arquivo .gz...",
|
|
597
|
+
"restore.steps.database.uncompressed": "Arquivo descompactado: {file}",
|
|
598
|
+
"restore.steps.database.detectedBackup": "Arquivo .backup detectado (já descompactado)",
|
|
599
|
+
"restore.steps.database.proceeding": "Prosseguindo com restauração direta",
|
|
600
|
+
"restore.steps.database.executing": "Executando psql via Docker...",
|
|
601
|
+
"restore.steps.database.followingDocs": "Seguindo documentação oficial Supabase",
|
|
602
|
+
"restore.steps.database.warning": "AVISO: Erros como \"object already exists\" são ESPERADOS",
|
|
603
|
+
"restore.steps.database.warningReason1": "Isto acontece porque o backup contém CREATE para todos os schemas",
|
|
604
|
+
"restore.steps.database.warningReason2": "Supabase já tem auth e storage criados, então esses erros são normais",
|
|
605
|
+
"restore.steps.database.success": "Database restaurada com sucesso!",
|
|
606
|
+
"restore.steps.database.normalErrors": "Erros \"already exists\" são normais e não afetam a restauração",
|
|
607
|
+
"restore.steps.database.expectedErrors": "Erros esperados encontrados (conforme documentação Supabase)",
|
|
608
|
+
"restore.steps.database.errorsIgnored": "Erros são ignorados pois são comandos de CREATE que já existem",
|
|
609
|
+
"restore.steps.database.error": "Erro ao restaurar database: {message}",
|
|
610
|
+
|
|
611
|
+
"restore.steps.storage.noBuckets": "Nenhum bucket de Storage encontrado no backup",
|
|
612
|
+
"restore.steps.storage.zipNotFound": "Arquivo .storage.zip não encontrado",
|
|
613
|
+
"restore.steps.storage.metadataOnly": "Apenas metadados dos buckets foram encontrados",
|
|
614
|
+
"restore.steps.storage.zipRequired": "Para restaurar os arquivos, é necessário o arquivo .storage.zip do Dashboard",
|
|
615
|
+
"restore.steps.storage.bucketInfo": "{name} ({visibility})",
|
|
616
|
+
"restore.steps.storage.public": "público",
|
|
617
|
+
"restore.steps.storage.private": "privado",
|
|
618
|
+
"restore.steps.storage.noBucketsInBackup": "Nenhum bucket de Storage encontrado no backup",
|
|
619
|
+
"restore.steps.storage.projectIdNotFound": "Project ID do projeto origem não encontrado no manifest. Continuando sem substituição...",
|
|
620
|
+
"restore.steps.storage.extracting": "Extraindo arquivo .storage.zip...",
|
|
621
|
+
"restore.steps.storage.extracted": "Arquivo extraído com sucesso",
|
|
622
|
+
"restore.steps.storage.replacing": "Substituindo referências ao Project ID antigo nos arquivos extraídos...",
|
|
623
|
+
"restore.steps.storage.replacingProjectId": "Substituindo Project ID: {source} → {target}",
|
|
624
|
+
"restore.steps.storage.replaced": "Substituição de Project ID concluída",
|
|
625
|
+
"restore.steps.storage.noBucketsInZip": "Nenhum bucket encontrado no arquivo .storage.zip",
|
|
626
|
+
"restore.steps.storage.bucketConfig": "Configurações: {visibility}, limite: {limit}, tipos: {types}",
|
|
627
|
+
"restore.steps.storage.noLimit": "sem limite",
|
|
628
|
+
"restore.steps.storage.allTypes": "todos",
|
|
629
|
+
"restore.steps.storage.fileFound": "Arquivo de storage encontrado: {fileName}",
|
|
630
|
+
"restore.steps.storage.bucketsFoundInZip": "Encontrados {count} bucket(s) no arquivo ZIP",
|
|
631
|
+
"restore.steps.storage.processingBucket": "Processando bucket: {bucketName}",
|
|
632
|
+
"restore.steps.storage.creatingBucket": "Criando bucket {bucketName}...",
|
|
633
|
+
"restore.steps.storage.bucketCreated": "Bucket {bucketName} criado com configurações do backup",
|
|
634
|
+
"restore.steps.storage.bucketUpdated": "Configurações do bucket atualizadas",
|
|
635
|
+
"restore.steps.storage.bucketConfigCorrect": "Configurações do bucket já estão corretas",
|
|
636
|
+
"restore.steps.storage.filesFoundForUpload": "Encontrados {count} arquivo(s) para upload",
|
|
637
|
+
"restore.steps.storage.bucketDone": "Bucket {bucketName}: {uploaded}/{total} arquivo(s) enviado(s)",
|
|
638
|
+
"restore.steps.storage.bucketError": "Erro ao processar bucket {bucketName}: {message}",
|
|
639
|
+
"restore.steps.storage.uploadError": "Erro ao fazer upload de {path}: {message}",
|
|
640
|
+
"restore.steps.storage.restoreComplete": "Restauração de Storage concluída: {success}/{total} bucket(s) processado(s), {files} arquivo(s) enviado(s)",
|
|
641
|
+
"restore.steps.storage.bucketsFoundMetadata": "{count} bucket(s) encontrado(s) no backup (apenas metadados)",
|
|
642
|
+
"restore.steps.storage.noBucketsInSubfolders": "Erro: Nenhum bucket encontrado nas subpastas de {rootDir}",
|
|
643
|
+
"restore.steps.storage.updateError": "Não foi possível atualizar configurações: {errorText}",
|
|
644
|
+
"restore.steps.storage.uploadProgress": "Upload: {path}{metaInfo}",
|
|
645
|
+
"restore.steps.storage.metadataPreserved": "(metadados preservados)",
|
|
646
|
+
"restore.steps.storage.fileError": "Erro ao processar arquivo {path}: {message}",
|
|
647
|
+
"restore.steps.storage.rootIsProjectId": "A pasta raiz é um Project ID e não deve ser tratada como bucket",
|
|
648
|
+
"restore.steps.storage.bucketExists": "Bucket {bucketName} já existe",
|
|
649
|
+
"restore.steps.storage.updating": "Atualizando configurações do bucket para corresponder ao backup...",
|
|
650
|
+
"restore.steps.storage.detectedProjectId": "Detectada pasta raiz com Project ID: {projectId}{reason}",
|
|
651
|
+
"restore.steps.storage.searchingBuckets": "Buscando buckets nas subpastas...",
|
|
652
|
+
"restore.steps.storage.error": "Erro ao processar Storage: {message}",
|
|
653
|
+
|
|
654
|
+
"restore.steps.edgeFunctions.notFound": "Nenhuma Edge Function encontrada no backup",
|
|
655
|
+
"restore.steps.edgeFunctions.found": "Encontradas {count} Edge Function(s)",
|
|
656
|
+
"restore.steps.edgeFunctions.cleaningBefore": "Limpando supabase/functions antes de copiar...",
|
|
657
|
+
"restore.steps.edgeFunctions.linkMayExist": "Link pode já existir, continuando...",
|
|
658
|
+
"restore.steps.edgeFunctions.cleaningAfter": "Limpando supabase/functions após deploy...",
|
|
659
|
+
"restore.steps.edgeFunctions.success": "Edge Functions restauradas com sucesso!",
|
|
660
|
+
"restore.steps.edgeFunctions.error": "Erro ao restaurar Edge Functions: {message}",
|
|
661
|
+
"restore.steps.edgeFunctions.listBucketsError": "Erro ao listar buckets: {message}",
|
|
662
|
+
"restore.steps.edgeFunctions.createBucketError": "Erro ao criar bucket: {status} {errorText}",
|
|
663
|
+
"restore.steps.edgeFunctions.copying": "Copiando {funcName} para supabase/functions...",
|
|
664
|
+
"restore.steps.edgeFunctions.linking": "Linkando com projeto {projectId}...",
|
|
665
|
+
"restore.steps.edgeFunctions.deploying": "Deployando {funcName}...",
|
|
666
|
+
"restore.steps.edgeFunctions.deployed": "{funcName} deployada com sucesso!",
|
|
667
|
+
"restore.steps.edgeFunctions.deployFailed": "{funcName} - deploy falhou: {message}",
|
|
668
|
+
|
|
669
|
+
"restore.steps.auth.notFound": "Nenhuma configuração de Auth encontrada no backup",
|
|
670
|
+
"restore.steps.auth.error": "Erro ao processar Auth Settings: {message}",
|
|
671
|
+
"restore.steps.auth.urlTitle": "URL para configuração manual:",
|
|
672
|
+
"restore.steps.auth.configureTitle": "Configure manualmente as seguintes opções:",
|
|
673
|
+
"restore.steps.auth.pressEnter": "Após configurar, pressione Enter para continuar...",
|
|
674
|
+
"restore.steps.auth.success": "Auth Settings processados",
|
|
675
|
+
|
|
676
|
+
"restore.steps.databaseSettings.notFound": "Nenhuma configuração de Database encontrada no backup",
|
|
677
|
+
"restore.steps.databaseSettings.success": "Database Settings restaurados com sucesso!",
|
|
678
|
+
"restore.steps.databaseSettings.error": "Erro ao restaurar Database Settings: {message}",
|
|
679
|
+
"restore.steps.databaseSettings.enabling": "Habilitando {count} extension(s)...",
|
|
680
|
+
"restore.steps.databaseSettings.extension": "- {extName}",
|
|
681
|
+
"restore.steps.databaseSettings.invalidUrl": "URL inválida para {extName}",
|
|
682
|
+
"restore.steps.databaseSettings.extensionExists": "{extName} - extension já existe ou não pode ser habilitada",
|
|
683
|
+
|
|
684
|
+
"restore.steps.realtime.notFound": "Nenhuma configuração de Realtime encontrada no backup",
|
|
685
|
+
"restore.steps.realtime.urlTitle": "URL para configuração manual:",
|
|
686
|
+
"restore.steps.realtime.configureTitle": "Configure manualmente as seguintes opções:",
|
|
687
|
+
"restore.steps.realtime.pressEnter": "Após configurar, pressione Enter para continuar...",
|
|
688
|
+
"restore.steps.realtime.success": "Realtime Settings processados",
|
|
689
|
+
|
|
690
|
+
"restore.steps.backupSelection.title": "Backups disponíveis:",
|
|
691
|
+
"restore.steps.backupSelection.separator": "═══════════════════════════════════════════════════════════════════════════════",
|
|
692
|
+
"restore.steps.backupSelection.input": "Digite o número do backup para restaurar ({min}-{max}):",
|
|
693
|
+
"restore.steps.backupSelection.invalid": "Número inválido",
|
|
694
|
+
|
|
695
|
+
"utils.realtime.previousFound": "Foi identificada uma gravação anterior de Realtime Settings.",
|
|
696
|
+
"utils.realtime.reuse": "Deseja reutilizar as configurações anteriores?",
|
|
697
|
+
"utils.realtime.reusing": "Reutilizando configurações de Realtime Settings do backup anterior...",
|
|
698
|
+
"utils.realtime.configTitle": "Configurações de Realtime Settings",
|
|
699
|
+
"utils.realtime.separator": "════════════════════════════════════════════════════════════════",
|
|
700
|
+
"utils.realtime.access": "Acesse: {url}",
|
|
701
|
+
"utils.realtime.note": "Anote os valores dos 7 parâmetros abaixo:",
|
|
702
|
+
"utils.realtime.questions": "Responda as perguntas abaixo (pressione Enter para usar o valor padrão):",
|
|
703
|
+
"utils.realtime.saved": "Configurações de Realtime Settings salvas!",
|
|
704
|
+
"utils.realtime.copying": "Copiando Realtime Settings do backup anterior...",
|
|
705
|
+
|
|
706
|
+
"utils.supabaseLink.linking": "Zerando vínculo e linkando projeto: {projectId}...",
|
|
707
|
+
"utils.supabaseLink.validation": "Validação: linked-ref = {linkedRef} (esperado = {expected})",
|
|
708
|
+
"utils.supabaseLink.validationFailed": "Validação falhou: linked-ref = {linkedRef} (esperado = {expected}). O projeto linkado não corresponde ao projeto esperado.",
|
|
709
|
+
"utils.supabaseLink.cannotValidate": "Não foi possível validar o vínculo: {message}",
|
|
710
|
+
"utils.supabaseLink.linkFailed": "Falha ao linkar projeto {projectId}: {message}",
|
|
711
|
+
|
|
712
|
+
"restore.index.envUpdated": ".env.local atualizado com sucesso. Nenhuma chave renomeada; valores sincronizados.",
|
|
713
|
+
"restore.index.searchingBackups": "Buscando backups em: {path}",
|
|
714
|
+
"restore.index.noBackupsFound": "Nenhum backup válido encontrado",
|
|
715
|
+
"restore.index.runBackupFirst": "Execute primeiro: npx smoonb backup",
|
|
716
|
+
"restore.index.summaryTitle": "RESUMO DA RESTAURAÇÃO:",
|
|
717
|
+
"restore.index.selectedBackup": "Backup selecionado: {name}",
|
|
718
|
+
"restore.index.targetProject": "Projeto destino: {projectId}",
|
|
719
|
+
"restore.index.database": "Database: {value}",
|
|
720
|
+
"restore.index.edgeFunctions": "Edge Functions: {value}",
|
|
721
|
+
"restore.index.authSettings": "Auth Settings: {value}",
|
|
722
|
+
"restore.index.storage": "Storage: {value}",
|
|
723
|
+
"restore.index.databaseSettings": "Database Settings: {value}",
|
|
724
|
+
"restore.index.realtimeSettings": "Realtime Settings: {value}",
|
|
725
|
+
"restore.index.yes": "Sim",
|
|
726
|
+
"restore.index.no": "Não",
|
|
727
|
+
"restore.index.notConfigured": "(não configurado)",
|
|
728
|
+
"restore.index.confirmRestore": "Deseja iniciar a restauração com estas configurações?",
|
|
729
|
+
"restore.index.restoreCancelled": "Restauração cancelada.",
|
|
730
|
+
"restore.disclaimer.errorsTitle": "IMPORTANTE: Erros esperados durante a restauração",
|
|
731
|
+
"restore.disclaimer.errorsIntro": "Durante a restauração do banco de dados você verá muitas mensagens de erro no terminal. Isso é NORMAL e esperado.",
|
|
732
|
+
"restore.disclaimer.errorsReason": "O Supabase confirma que erros como \"object already exists\" ou \"constraint already exists\" são normais ao restaurar um dump completo, pois o backup contém comandos CREATE para todos os esquemas e seu projeto destino já possui parte desses objetos.",
|
|
733
|
+
"restore.disclaimer.supabaseDoc": "Documentação oficial do Supabase (restauração e erros esperados):",
|
|
734
|
+
"restore.disclaimer.waitComplete": "Mesmo com inúmeros erros, você deve aguardar o término completo do processo. Não interrompa a restauração.",
|
|
735
|
+
"restore.disclaimer.testResult": "Após o término, teste seu projeto (tabelas, dados, funções) para verificar se a restauração foi bem-sucedida.",
|
|
736
|
+
"restore.disclaimer.acceptProceed": "Entendo que erros são esperados, aguardarei o término e testarei o resultado. Prosseguir com a restauração?",
|
|
737
|
+
"restore.index.startingRestore": "Iniciando restauração...",
|
|
738
|
+
"restore.index.restoringDatabase": "Restaurando Database...",
|
|
739
|
+
"restore.index.restoringEdgeFunctions": "Restaurando Edge Functions...",
|
|
740
|
+
"restore.index.restoringAuthSettings": "Restaurando Auth Settings...",
|
|
741
|
+
"restore.index.restoringStorageBuckets": "Restaurando Storage Buckets...",
|
|
742
|
+
"restore.index.restoringDatabaseSettings": "Restaurando Database Settings...",
|
|
743
|
+
"restore.index.restoringRealtimeSettings": "Restaurando Realtime Settings...",
|
|
744
|
+
"restore.index.restoreComplete": "Restauração dos componentes selecionados concluída e verificada.",
|
|
745
|
+
"restore.index.targetProjectFinal": "Projeto destino: {projectId}",
|
|
746
|
+
"restore.index.databaseRestored": "Database: Restaurada com sucesso via Docker",
|
|
747
|
+
"restore.index.edgeFunctionsRestored": "Edge Functions: {success}/{total} functions restauradas",
|
|
748
|
+
"restore.index.authSettingsRestored": "Auth Settings: Configurações exibidas para configuração manual",
|
|
749
|
+
"restore.index.storageRestored": "Storage: {buckets} bucket(s) restaurado(s), {files} arquivo(s) enviado(s)",
|
|
750
|
+
"restore.index.storageMetadataOnly": "Storage: {buckets} bucket(s) encontrado(s) - apenas metadados (arquivo .storage.zip não encontrado)",
|
|
751
|
+
"restore.index.databaseSettingsRestored": "Database Settings: Extensões e configurações restauradas via SQL",
|
|
752
|
+
"restore.index.realtimeSettingsRestored": "Realtime Settings: Configurações exibidas para configuração manual",
|
|
753
|
+
"restore.index.error": "Erro na restauração: {message}",
|
|
754
|
+
|
|
755
|
+
"restore.utils.componentsTitle": "Componentes que serão restaurados:",
|
|
756
|
+
"restore.utils.database": "Database (psql -f via Docker)",
|
|
757
|
+
"restore.utils.edgeFunctions": "Edge Functions: {count} function(s)",
|
|
758
|
+
"restore.utils.authSettings": "Auth Settings: Exibir URL e valores para configuração manual",
|
|
759
|
+
"restore.utils.storageBuckets": "Storage Buckets: Restauração automática de buckets e arquivos via API",
|
|
760
|
+
"restore.utils.storageMetadataOnly": "Storage Buckets: Exibir informações (apenas metadados - arquivo .storage.zip não encontrado)",
|
|
761
|
+
"restore.utils.databaseSettings": "Database Extensions and Settings: Restaurar via SQL",
|
|
762
|
+
"restore.utils.realtimeSettings": "Realtime Settings: Exibir URL e valores para configuração manual",
|
|
763
|
+
"restore.utils.summaryTitle": "Resumo da Restauração:",
|
|
764
|
+
"restore.utils.summarySeparator": "═══════════════════════════════════════════════════════════════════════════════",
|
|
765
|
+
"restore.utils.backup": "Backup: {name}",
|
|
766
|
+
"restore.utils.sourceProject": "Projeto Origem: {projectId}",
|
|
767
|
+
"restore.utils.targetProject": "Projeto Destino: {projectId}",
|
|
768
|
+
|
|
769
|
+
"restore.steps.auth.pressEnter": "Pressione Enter para continuar",
|
|
770
|
+
"restore.steps.realtime.pressEnter": "Pressione Enter para continuar",
|
|
771
|
+
|
|
772
|
+
"restore.import.fileNotFound": "Arquivo de backup não encontrado: {path}",
|
|
773
|
+
"restore.import.invalidFormat": "Arquivo de backup deve ser .backup.gz ou .backup",
|
|
774
|
+
"restore.import.storageNotFound": "Arquivo de storage não encontrado: {path}",
|
|
775
|
+
"restore.import.storageInvalidFormat": "Arquivo de storage deve ser .storage.zip",
|
|
776
|
+
"restore.import.invalidFileName": "Nome do arquivo de backup não está no formato esperado do Dashboard. Formato esperado: db_cluster-DD-MM-YYYY@HH-MM-SS.backup.gz",
|
|
777
|
+
"restore.import.importing": "Importando backup para: {name}",
|
|
778
|
+
"restore.import.backupImported": "Arquivo de backup importado: {fileName} ({size} MB)",
|
|
779
|
+
"restore.import.storageImported": "Arquivo de storage importado: {fileName} ({size} MB)",
|
|
780
|
+
"restore.import.importingFile": "Importando arquivo de backup...",
|
|
781
|
+
"restore.import.importedSelected": "Backup importado e selecionado automaticamente: {name}",
|
|
782
|
+
"restore.import.cannotFind": "Não foi possível encontrar o backup importado",
|
|
783
|
+
"restore.import.envBackup": "Backup do .env.local: {path}",
|
|
784
|
+
"restore.import.envNotFound": "⚠️ Arquivo .env.local não encontrado. Será criado durante o mapeamento.",
|
|
785
|
+
"restore.import.noComponents": "\n❌ Nenhum componente selecionado para restauração!",
|
|
786
|
+
|
|
787
|
+
"backup.steps.functions.noFunctionsMessage": "Nenhuma Edge Function encontrada neste projeto",
|
|
788
|
+
"backup.steps.storage.noBucketsMessage": "Nenhum bucket de Storage encontrado neste projeto",
|
|
789
|
+
|
|
790
|
+
"check.connectionSuccess": "Conexão estabelecida com sucesso",
|
|
791
|
+
"check.unexpectedResponse": "Resposta inesperada da database",
|
|
792
|
+
"check.connectionError": "Falha na conexão: {message}",
|
|
793
|
+
|
|
794
|
+
"error.databaseUrlInvalid": "Database URL inválida. Formato esperado: postgresql://user:password@host/database",
|
|
795
|
+
"error.databaseUrlInvalidSimple": "Database URL inválida",
|
|
796
|
+
"error.storageCredentialsNotConfigured": "Credenciais do projeto destino não configuradas. É necessário SUPABASE_PROJECT_ID e SUPABASE_ACCESS_TOKEN",
|
|
797
|
+
"error.supabaseCredentialsNotConfigured": "Credenciais do Supabase não configuradas. É necessário NEXT_PUBLIC_SUPABASE_URL e SUPABASE_SERVICE_ROLE_KEY",
|
|
798
|
+
"restore.verified.remapUrls": "Atualizar os endereços Supabase do projeto antigo para o novo nos dados e arquivos? (Inclui URLs em campos JSON; outros textos e IDs são preservados.)"
|
|
799
|
+
}
|