This is an automated email from the ASF dual-hosted git repository.
bbovenzi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new c2ff56eff6b UI: Complete the Portuguese translation (#76412)
c2ff56eff6b is described below
commit c2ff56eff6b1b6c0733170c35ea65f131e8ce59c
Author: Aldo <[email protected]>
AuthorDate: Fri Nov 6 15:50:07 2026 +0100
UI: Complete the Portuguese translation (#76412)
* UI: Complete the Portuguese translation
Portuguese coverage had fallen to about 58%, so screens that landed after
the
last translation pass showed English to Portuguese users.
Exact multiples of a million select the _many plural, and that form needs
"de" before the noun. The locale guide records the rule so a later
translation pass does not copy _other back over it.
Co-authored-by: Cursor <[email protected]>
* UI(i18n/pt): use agendador in assetInactive.tooltip
Co-authored-by: Aldo <[email protected]>
* UI(i18n/pt): use disparador in degradedHint.triggerer
Co-authored-by: Aldo <[email protected]>
* UI(i18n/pt): standardize graph UI term as gráfico
Co-authored-by: Aldo <[email protected]>
* UI(i18n/pt): translate triggerer.job as Tarefa do Disparador
Co-authored-by: Aldo <[email protected]>
* UI(i18n/pt): unify alertName to Nome do alerta
Co-authored-by: Aldo <[email protected]>
* UI(i18n/pt): standardize graph UI term as grafo
Co-authored-by: Aldo <[email protected]>
---------
Co-authored-by: Cursor <[email protected]>
---
.agents/skills/airflow-translations/locales/pt.md | 26 ++
.../airflow/ui/public/i18n/locales/pt/admin.json | 33 ++-
.../airflow/ui/public/i18n/locales/pt/assets.json | 39 ++-
.../airflow/ui/public/i18n/locales/pt/browse.json | 60 ++++
.../airflow/ui/public/i18n/locales/pt/common.json | 314 ++++++++++++++++++++-
.../ui/public/i18n/locales/pt/components.json | 92 +++++-
.../src/airflow/ui/public/i18n/locales/pt/dag.json | 236 ++++++++++++++--
.../airflow/ui/public/i18n/locales/pt/dags.json | 65 ++++-
.../ui/public/i18n/locales/pt/dashboard.json | 44 ++-
.../airflow/ui/public/i18n/locales/pt/hitl.json | 15 +
10 files changed, 868 insertions(+), 56 deletions(-)
diff --git a/.agents/skills/airflow-translations/locales/pt.md
b/.agents/skills/airflow-translations/locales/pt.md
index bc2089a1bca..2351f485ac3 100644
--- a/.agents/skills/airflow-translations/locales/pt.md
+++ b/.agents/skills/airflow-translations/locales/pt.md
@@ -27,6 +27,32 @@ This file contains locale-specific guidelines so AI
translation agents produce n
- Respect gender and number agreement (feminine/masculine, singular/plural).
- Follow existing i18next plural keys: `_one`, `_many`, `_other`, `_zero`
- Capitalization: Sentence case for descriptions, title-like for
headers/buttons (match existing files).
+
+### Plurals and "de"
+
+Portuguese needs `_zero`, `_one`, `_many` and `_other`. A key that omits
`_many` falls through to the English `fallbackLng` rather than to the
Portuguese `_other`.
+
+`_many` resolves only at exact multiples of a million (1.000.000, 2.000.000,
…). 1.500.000 and 1.000.001 resolve to `_other`. `_zero` is the explicit
zero-count message (`Nenhum` / `Nenhuma`).
+
+At those million counts a numeral takes **de** before the noun it quantifies
("um milhão **de** tarefas"), so a `_many` form that merely repeats `_other`
reads ungrammatically when the string interpolates a count directly in front of
a noun:
+
+```json
+"change_one": "{{count, number}} alteração",
+"change_many": "{{count, number}} de alterações",
+"change_other": "{{count, number}} alterações",
+"change_zero": "Nenhuma alteração"
+```
+
+When the count stands in brackets and does not quantify the following noun,
**de** does not apply and `_many` matches `_other`:
+
+```json
+"requiredActionCount_many": "Ações Necessárias ({{count, number}})"
+```
+
+`outros` is still a quantified word, so `teams.more_many` is `e {{count,
number}} de outros`. A bare noun with no numeral in the string is unaffected
(`task_many` stays `Tarefas`). The UI prints the count as digits (`1.000.000`),
not as the words "um milhão". Keep `{{count, number}}` anyway: that is the form
i18next selects `_many` for.
+
+A saved filter is `filtro salvo`. `padrão` is only the default (`Definir como
padrão`). A deadline is `Prazo`. A loop is `Ciclo`; one pass of it is
`Iteração`. A Dag bundle is `Pacote do Dag`, matching the existing "versão mais
recente do pacote".
+
- Spelling/vocab: Follow patterns in current JSON (e.g. "Excluir",
"Adicionar", "Executando", "Enfileirado", "Secção", "detetadas",
"Sobreescreve").
## 3. Examples from Existing Translations
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/admin.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/admin.json
index c3043b31ae8..735ad0ca2c1 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/admin.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/admin.json
@@ -9,7 +9,11 @@
"config": {
"columns": {
"section": "Secção"
- }
+ },
+ "config_many": "Configurações",
+ "config_one": "Configuração",
+ "config_other": "Configurações",
+ "config_zero": "Nenhuma configuração"
},
"connections": {
"add": "Adicionar Conexão",
@@ -24,7 +28,7 @@
"connection_other": "Conexões",
"connection_zero": "Nenhuma conexão",
"delete": {
- "deleteConnection_many": "Excluir {{count, number}} conexões",
+ "deleteConnection_many": "Excluir {{count, number}} de conexões",
"deleteConnection_one": "Excluir 1 conexão",
"deleteConnection_other": "Excluir {{count, number}} conexões",
"deleteConnection_zero": "Nenhuma conexão para excluir",
@@ -34,13 +38,16 @@
"firstConfirmMessage_zero": "Nenhuma conexão para excluir",
"title": "Excluir Conexão"
},
+ "duplicate": "Duplicar $t(connections.connection_one)",
"edit": "Editar Conexão",
"form": {
"connectionIdRequired": "ID da Conexão é obrigatório",
"connectionIdRequirement": "ID da Conexão não pode conter somente
espaços",
+ "connectionTypeFields": "Campos de {{connectionType}}",
"connectionTypeRequired": "Tipo de Conexão é obrigatório",
"extraFieldsJson": "Campos Extra JSON",
"helperText": "Tipo de conexão faltando? Certifique-se de ter instalado
o pacote do provider correspondente ao Airflow.",
+ "helperTextForDuplicatedRedactedFields": "Campos ocultos ('***') não são
copiados. Preencha-os para a nova conexão.",
"helperTextForRedactedFields": "Os campos redigidos ('***') permanecerão
inalterados se não forem modificados.",
"selectConnectionType": "Selecionar Tipo de Conexão",
"standardFields": "Campos Padrão"
@@ -100,7 +107,11 @@
"dagProcessorJob": "DagProcessorJob",
"schedulerJob": "SchedulerJob",
"triggererJob": "TriggererJob"
- }
+ },
+ "job_many": "Jobs",
+ "job_one": "Job",
+ "job_other": "Jobs",
+ "job_zero": "Nenhum Job"
},
"plugins": {
"columns": {
@@ -110,6 +121,10 @@
"importError_one": "Erro de Importação de Plugin",
"importError_other": "Erros de Importação de Plugins",
"importError_zero": "Nenhum erro de importação de plugin",
+ "plugin_many": "Plugins",
+ "plugin_one": "Plugin",
+ "plugin_other": "Plugins",
+ "plugin_zero": "Nenhum Plugin",
"searchPlaceholder": "Pesquisar por arquivo"
},
"pools": {
@@ -126,7 +141,8 @@
"includeDeferred": "Incluir Deferidos",
"nameMaxLength": "Nome pode conter um máximo de 256 caracteres",
"nameRequired": "Nome é obrigatório",
- "slots": "Slots"
+ "slots": "Slots",
+ "slotsHelperText": "Use -1 para slots ilimitados."
},
"noPoolsFound": "Nenhum pool encontrado",
"pool_many": "Pools",
@@ -144,7 +160,11 @@
"columns": {
"packageName": "Nome do Pacote",
"version": "Versão"
- }
+ },
+ "provider_many": "Providers",
+ "provider_one": "Provider",
+ "provider_other": "Providers",
+ "provider_zero": "Nenhum Provider"
},
"variables": {
"add": "Adicionar Variável",
@@ -152,7 +172,7 @@
"isEncrypted": "Está Encriptado"
},
"delete": {
- "deleteVariable_many": "Excluir {{count, number}} Variáveis",
+ "deleteVariable_many": "Excluir {{count, number}} de Variáveis",
"deleteVariable_one": "Excluir 1 Variável",
"deleteVariable_other": "Excluir {{count, number}} Variáveis",
"deleteVariable_zero": "Nenhuma variável para excluir",
@@ -188,6 +208,7 @@
"title": "Ignorar"
}
},
+ "parsingFile": "Analisando arquivo...",
"title": "Importar Variáveis",
"upload": "Upload um Arquivo JSON",
"uploadPlaceholder": "Upload um arquivo JSON contendo variáveis
(exemplo: {\"key\": \"value\", ...})"
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/assets.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/assets.json
index fb396f13212..889634b04d4 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/assets.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/assets.json
@@ -1,9 +1,34 @@
{
"additional_data": "Dados Adicionais",
+ "alias_many": "Aliases",
+ "alias_one": "Alias",
+ "alias_other": "Aliases",
+ "alias_zero": "Nenhum alias",
+ "aliases": "Aliases",
"asset_many": "Assets",
"asset_one": "Asset",
"asset_other": "Assets",
"asset_zero": "Nenhum asset",
+ "assetStateStore": {
+ "add": "Adicionar armazenamento de estado do Asset",
+ "clearAll": {
+ "resource": "todo o armazenamento de estado do Asset",
+ "title": "Limpar todo o armazenamento de estado do Asset",
+ "warning": "Todo o armazenamento de estado do Asset será apagado.
Tarefas que usam este armazenamento para coordenar trabalho perderão a memória
persistida."
+ },
+ "delete": "Excluir armazenamento de estado do Asset",
+ "deleteWarning": "O Asset perderá esta entrada persistida do armazenamento
de estado.",
+ "edit": "Editar armazenamento de estado do Asset",
+ "emptyState": "O armazenamento de estado do Asset guarda valores no âmbito
de uma identidade de Asset, compartilhados entre todas as execuções do Dag. Os
workers podem escrever no armazenamento de estado do Asset através do Task
SDK.",
+ "entry_many": "Entradas",
+ "entry_one": "Entrada",
+ "entry_other": "Entradas",
+ "entry_zero": "Nenhuma entrada",
+ "lastUpdatedBy": "Última atualização por",
+ "lastUpdatedByApi": "API",
+ "lastUpdatedByWatcher": "Watcher",
+ "title": "Armazenamento de Estado do Asset"
+ },
"consumingDags": "Consumindo Dags",
"consumingTasks": "Tarefas Consumidoras",
"createEvent": {
@@ -27,7 +52,12 @@
},
"title": "Criar Evento de Asset para {{name}}"
},
- "extra": "Extra",
+ "events": "Eventos",
+ "filters": {
+ "groupPlaceholder": "Pesquisar grupo",
+ "hasEvents": "Tem eventos",
+ "lastEventDateRange": "Data do último evento"
+ },
"group": "Grupo",
"lastAssetEvent": "Último Evento de Asset",
"name": "Nome",
@@ -35,5 +65,10 @@
"scheduledDags": "Dags Programados",
"scheduling": "Agendamento",
"searchPlaceholder": "Pesquisar Assets",
- "taskDependencies": "Dependências de Tarefas"
+ "taskDependencies": "Dependências de Tarefas",
+ "watcher_many": "Watchers",
+ "watcher_one": "Watcher",
+ "watcher_other": "Watchers",
+ "watcher_zero": "Nenhum Watcher",
+ "watchers": "Watchers"
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/browse.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/browse.json
index bb976259928..63ffd5ec8d8 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/browse.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/browse.json
@@ -10,6 +10,61 @@
"eventType": "Tipo de Evento"
}
},
+ "dagBundles": {
+ "active": "Ativo",
+ "columns": {
+ "active": "Ativo",
+ "importErrors": "Erros de importação",
+ "lastRefreshed": "Última atualização",
+ "name": "Nome",
+ "version": "Versão"
+ },
+ "detail": {
+ "status": "Estado"
+ },
+ "files": {
+ "columns": {
+ "file": "Arquivo",
+ "lastParsed": "Último parse",
+ "parseDuration": "Duração do parse"
+ },
+ "file_many": "Arquivos",
+ "file_one": "Arquivo",
+ "file_other": "Arquivos",
+ "file_zero": "Nenhum arquivo",
+ "importErrorForbidden": "Você não tem permissão para ler este erro de
importação.",
+ "importErrorGone": "Este erro de importação já não está registrado.
Provavelmente foi corrigido por um novo parse.",
+ "neverParsed": "Nunca",
+ "showImportError_many": "Ver {{count, number}} de erros",
+ "showImportError_one": "Ver erro",
+ "showImportError_other": "Ver {{count, number}} erros",
+ "showImportError_zero": "Nenhum erro"
+ },
+ "inactive": "Inativo",
+ "neverRefreshed": "Nunca",
+ "notRefreshedYet": "Ainda não atualizado",
+ "notVersioned": "Sem versão"
+ },
+ "deadlines": {
+ "columns": {
+ "alertName": "Nome do alerta",
+ "deadlineTime": "Hora do prazo",
+ "status": "Estado"
+ },
+ "deadline_many": "Prazos",
+ "deadline_one": "Prazo",
+ "deadline_other": "Prazos",
+ "deadline_zero": "Nenhum prazo",
+ "filters": {
+ "status": "Estado",
+ "statusOptions": {
+ "all": "Todos",
+ "missed": "Não cumprido",
+ "pending": "Pendente"
+ }
+ },
+ "title": "Prazos"
+ },
"xcom": {
"add": {
"error": "Falha ao adicionar XCom",
@@ -21,6 +76,7 @@
"columns": {
"dag": "Dag",
"key": "Chave",
+ "timestamp": "Data e hora",
"value": "Valor"
},
"delete": {
@@ -38,6 +94,10 @@
"successTitle": "XCom Atualizado",
"title": "Editar XCom"
},
+ "entry_many": "Entradas de XCom",
+ "entry_one": "Entrada de XCom",
+ "entry_other": "Entradas de XCom",
+ "entry_zero": "Nenhuma entrada de XCom",
"key": "Chave",
"title": "XCom",
"value": "Valor"
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/common.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/common.json
index 2396620372f..09ace2367ab 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/common.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/common.json
@@ -8,6 +8,7 @@
"Variables": "Variáveis"
},
"allOperators": "Todos os Operadores",
+ "allTeams": "Todas as equipes",
"appearance": {
"appearance": "Aparência",
"darkMode": "Modo Escuro",
@@ -22,18 +23,25 @@
"assetEvent_one": "Evento de Asset",
"assetEvent_other": "Eventos de Asset",
"assetEvent_zero": "Nenhum evento de asset",
+ "assetInactive": {
+ "tooltip": "O Asset upstream foi desativado; o agendador está retendo a
avaliação da partição até que ele seja reativado."
+ },
"backfill_many": "Backfills",
"backfill_one": "Backfill",
"backfill_other": "Backfills",
"backfill_zero": "Nenhum backfill",
+ "breadcrumb": "Trilha",
"browse": {
"auditLog": "Log de Auditoria",
+ "dagBundles": "Pacotes do Dag",
+ "deadlines": "Prazos",
"jobs": "Tarefas",
"requiredActions": "Ações Necessárias",
"xcoms": "XComs"
},
"collapseAllExtra": "Recolher todos os extra json",
"collapseDetailsPanel": "Recolher Painel de Detalhes",
+ "consumingAsset": "Asset consumidor",
"createdAssetEvent_many": "Eventos de Asset Criados",
"createdAssetEvent_one": "Evento de Asset Criado",
"createdAssetEvent_other": "Eventos de Asset Criados",
@@ -42,8 +50,13 @@
"dag_one": "Dag",
"dag_other": "Dags",
"dag_zero": "Nenhum Dag",
+ "dagBundle_many": "Pacotes do Dag",
+ "dagBundle_one": "Pacote do Dag",
+ "dagBundle_other": "Pacotes do Dag",
+ "dagBundle_zero": "Nenhum pacote do Dag",
"dagDetails": {
"activeRuns": "Execuções Ativas",
+ "bundleVersion": "Versão do pacote",
"catchup": "Catchup",
"dagRunTimeout": "Tempo Limite da Execução do Dag",
"defaultArgs": "Argumentos Padrão",
@@ -63,7 +76,8 @@
"owner": "Proprietário",
"params": "Parâmetros",
"schedule": "Agendamento",
- "tags": "Etiquetas"
+ "tags": "Etiquetas",
+ "team": "Equipe"
},
"dagId": "ID do Dag",
"dagRun": {
@@ -78,6 +92,7 @@
"expectedDuration": "Duração Esperada",
"lastSchedulingDecision": "Última Decisão de Agendamento",
"mappedPartitionKey": "Chave de partição mapeada",
+ "partitionDate": "Data da partição",
"partitionKey": "Chave de partição",
"queuedAt": "Enfileirado Em",
"runAfter": "Executar Depois",
@@ -91,8 +106,7 @@
"dagRun_other": "Execuções do Dag",
"dagRun_zero": "Nenhuma execução do Dag",
"dagRunId": "ID da Execução do Dag",
- "defaultToGraphView": "Padrão para visualização gráfica",
- "defaultToGridView": "Padrão para visualização em grade",
+ "dagRunState": "Estado da execução do Dag",
"delete": "Excluir",
"diff": "Diff",
"diffCompareWith": "Comparar com",
@@ -118,8 +132,19 @@
"home": "Início",
"invalidUrl": "Página não encontrada. Verifique o URL e tente novamente.",
"notFound": "Página Não Encontrada",
+ "reload": "Recarregar página",
"title": "Erro"
},
+ "errors": {
+ "forbidden": {
+ "description": "Você não tem permissão para realizar esta ação.",
+ "title": "Acesso negado"
+ }
+ },
+ "event_many": "Eventos",
+ "event_one": "Evento",
+ "event_other": "Eventos",
+ "event_zero": "Nenhum evento",
"expand": {
"collapse": "Recolher",
"expand": "Expandir",
@@ -131,19 +156,48 @@
"all": "Todos",
"and": "E",
"any": "Qualquer",
+ "hiddenAsset": "Asset oculto",
"or": "OU"
},
"filter": "Filtro",
"filters": {
+ "addFilter": "Adicionar filtro",
+ "allIterations": "Todas",
+ "completedAt": "Concluído em",
+ "date": "Data",
"durationFrom": "Duração De",
"durationTo": "Duração Até",
"endTime": "Hora de Fim",
+ "iteration": "Iteração",
"logicalDateFrom": "Data Lógica De",
"logicalDateTo": "Data Lógica Para",
+ "loop": "Ciclo",
+ "loopAllIterations": "{{loop}} todas",
+ "loopIteration": "{{loop}} {{index}}",
+ "loopPlaceholder": "Selecionar um ciclo",
+ "maxActiveRunsFrom": "Máximo de execuções ativas de",
+ "maxActiveRunsTo": "Máximo de execuções ativas até",
+ "removeFilter": "Remover filtro",
"runAfterFrom": "Executar Depois De",
"runAfterTo": "Executar Depois Para",
+ "searchAsset": "Pesquisar Asset",
"selectDateRange": "Selecionar intervalo de datas",
- "startTime": "Hora de Início"
+ "selectDateTime": "Selecionar data e hora",
+ "startTime": "Hora de Início",
+ "switchIteration": "Trocar iteração",
+ "time": "Hora"
+ },
+ "fullscreen": {
+ "tooltip": "Pressione {{hotkey}} para tela cheia"
+ },
+ "generateToken": "Gerar token",
+ "includedIn": "Incluído em",
+ "key": "Chave",
+ "loading": "Carregando…",
+ "logLevel": {
+ "hide": "Ocultar níveis de log",
+ "hotkey": "l",
+ "show": "Mostrar níveis de log"
},
"logicalDate": "Data Lógica",
"logout": "Sair",
@@ -164,20 +218,34 @@
"assets": "Assets",
"browse": "Navegar",
"dags": "Dags",
+ "dashboard": "Painel",
"docs": "Documentação",
"home": "Início",
"legacyFabViews": "Visualizações Legacy FAB",
"plugins": "Plugins",
"security": "Segurança"
},
+ "no": "Não",
"noItemsFound": "Nenhum {{modelName}} encontrado",
"note": {
"add": "Adicionar uma nota",
"dagRun": "Nota da Execução do Dag",
+ "edit": "Editar nota",
"label": "Nota",
"placeholder": "Adicionar uma nota...",
- "taskInstance": "Nota da Instância de Tarefa"
+ "preview": "Pré-visualizar",
+ "taskInstance": "Nota da Instância de Tarefa",
+ "write": "Escrever"
+ },
+ "overallStatus": "Estado geral",
+ "pagination": {
+ "nextPage": "Página seguinte",
+ "previousPage": "Página anterior"
},
+ "partition_many": "Partições",
+ "partition_one": "Partição",
+ "partition_other": "Partições",
+ "partition_zero": "Nenhuma partição",
"partitionedDagRun_many": "Execuções de Dag Particionadas",
"partitionedDagRun_one": "Execução de Dag Particionada",
"partitionedDagRun_other": "Execuções de Dag Particionadas",
@@ -185,13 +253,32 @@
"partitionedDagRunDetail": {
"receivedAssetEvents": "Eventos de Asset recebidos"
},
- "pendingDagRun_many": "{{count, number}} Execuções de Dag Pendentes",
+ "pause": "Pausar",
+ "pendingDagRun_many": "{{count, number}} de Execuções de Dag Pendentes",
"pendingDagRun_one": "{{count, number}} Execução de Dag Pendente",
"pendingDagRun_other": "{{count, number}} Execuções de Dag Pendentes",
"pendingDagRun_zero": "Nenhuma execução de dag pendente",
+ "presetFilters": {
+ "deleteTitle": "Excluir filtro salvo",
+ "deleteWarning": "Os filtros salvos ficam armazenados apenas neste
navegador.",
+ "duplicate": "O filtro salvo \"{{name}}\" já guarda exatamente esta
configuração.",
+ "empty": "Nenhum filtro salvo",
+ "info": {
+ "default": "Fixe um filtro salvo como padrão e ele é aplicado
automaticamente quando você abre esta página sem filtros.",
+ "save": "Salve os filtros e a ordenação atuais como um filtro salvo
nomeado e volte a ele quando quiser.",
+ "storage": "Os filtros salvos ficam armazenados neste navegador."
+ },
+ "namePlaceholder": "Nome do filtro salvo",
+ "nothingToSave": "Nada para salvar. Aplique filtros ou ordenação para
salvar um filtro salvo.",
+ "save": "Salvar",
+ "setDefault": "Definir como padrão",
+ "title": "Filtros salvos",
+ "unsetDefault": "Remover o padrão"
+ },
"reset": "Resetar",
"runId": "ID da Execução",
"runTypes": {
+ "asset_materialization": "Materialização de Asset",
"asset_triggered": "Asset Acionado",
"backfill": "Backfill",
"manual": "Manual",
@@ -204,6 +291,13 @@
},
"tooltip": "Pressione {{hotkey}} para rolar para {{direction}}"
},
+ "search": {
+ "advanced": {
+ "description": "Corresponder em qualquer parte do valor (busca por
substring). Mais lento nas instalações grandes porque não pode usar o índice
B-tree padrão. Veja a seção da documentação sobre índices de metadados
personalizados para detalhes.",
+ "title": "Corresponder em qualquer parte",
+ "toggleLabel": "Alternar a busca em qualquer parte"
+ }
+ },
"security": {
"actions": "Ações",
"permissions": "Permissões",
@@ -212,8 +306,131 @@
"users": "Usuários"
},
"selectLanguage": "Selecionar Idioma",
+ "selected": "Selecionado",
+ "settings": {
+ "clearing": {
+ "keepTaskState": {
+ "helper": "Manter por padrão as entradas do armazenamento de estado da
tarefa ao limpar instâncias de tarefa, em vez de descartá-las.",
+ "label": "Manter o estado da tarefa ao limpar"
+ },
+ "preventRunningTask": {
+ "helper": "Ignorar tarefas que estão em execução ao limpar instâncias
de tarefa.",
+ "label": "Impedir limpar tarefas em execução"
+ },
+ "runSelection": {
+ "helper": "Opções selecionadas por padrão ao limpar uma execução do
Dag.",
+ "label": "Seleção padrão ao limpar a execução"
+ },
+ "taskSelection": {
+ "helper": "Opções selecionadas por padrão ao limpar instâncias de
tarefa.",
+ "label": "Seleção padrão ao limpar a tarefa"
+ },
+ "title": "Limpeza"
+ },
+ "dagsList": {
+ "recentTasks": {
+ "helper": "Mostrar os estados recentes das tarefas de cada Dag na
lista de Dags. Desligue para não carregá-los, o que pode ajudar nas instalações
com muitos Dags.",
+ "label": "Mostrar tarefas recentes"
+ },
+ "title": "Lista de Dags"
+ },
+ "description": "Estas preferências ficam salvas apenas neste navegador e
valem para toda a aplicação.",
+ "general": {
+ "landingPage": {
+ "helper": "Página mostrada quando você abre o Airflow.",
+ "label": "Página inicial",
+ "options": {
+ "dags": "Dags",
+ "dashboard": "Painel"
+ }
+ },
+ "title": "Geral"
+ },
+ "graph": {
+ "defaultDirection": {
+ "helper": "Direção do layout para grafos de Dag e de Asset que você
ainda não definiu individualmente.",
+ "label": "Direção padrão do grafo"
+ },
+ "taskGroupsExpanded": {
+ "helper": "Expandir grupos de tarefas em Dags nos quais você não
salvou uma seleção de grupo. As seleções existentes são mantidas.",
+ "label": "Expandir grupos de tarefas por padrão"
+ },
+ "title": "Grafo"
+ },
+ "marking": {
+ "taskSelection": {
+ "helper": "Opções selecionadas por padrão ao marcar o estado de uma
instância de tarefa.",
+ "label": "Seleção padrão ao marcar"
+ },
+ "title": "Marcação"
+ },
+ "search": {
+ "matchAnywhere": {
+ "helper": "$t(search.advanced.description) As escolhas de cada barra
de pesquisa e os links compartilhados continuam a ter prioridade.",
+ "label": "Corresponder em qualquer parte por padrão"
+ },
+ "title": "Pesquisa"
+ },
+ "taskInstance": {
+ "defaultTab": {
+ "helper": "Aba mostrada primeiro quando você abre uma instância de
tarefa. Links para uma aba específica continuam a abrir essa aba.",
+ "label": "Aba padrão da instância de tarefa"
+ },
+ "title": "Instância de tarefa"
+ },
+ "title": "Configurações"
+ },
+ "shortcuts": {
+ "categories": {
+ "code": "Código",
+ "dagView": "Visualização do Dag",
+ "filters": "Filtros",
+ "global": "Global",
+ "logs": "Logs",
+ "navigation": "Navegação",
+ "runActions": "Ações de execução e tarefa",
+ "search": "Pesquisa"
+ },
+ "descriptions": {
+ "clearRun": "Limpar $t(dagRun_one)",
+ "clearTaskInstance": "Limpar $t(taskInstance_one)",
+ "downloadLogs": "Baixar logs",
+ "focusFilterSearch": "Focar a pesquisa de filtros",
+ "focusLogSearch": "Pesquisar logs",
+ "focusSearch": "Focar a pesquisa",
+ "markRunFailed": "Marcar $t(dagRun_one) como falha",
+ "markRunSuccess": "Marcar $t(dagRun_one) como sucesso",
+ "markTaskFailed": "Marcar $t(task_one) como falha",
+ "markTaskGroupFailed": "Marcar $t(taskGroup_one) como falha",
+ "markTaskGroupSuccess": "Marcar $t(taskGroup_one) como sucesso",
+ "markTaskSuccess": "Marcar $t(task_one) como sucesso",
+ "navigateTasks": "Navegar $t(task_other)",
+ "openGraphFilters": "Abrir filtros do grafo",
+ "scrollBottom": "Rolar até o fim",
+ "scrollTop": "Rolar até o topo",
+ "searchDags": "Pesquisar $t(dag_other)",
+ "selectGridCellRange": "Selecionar um intervalo de
$t(taskInstance_other) ou $t(taskGroup_other)",
+ "showHelp": "Mostrar $t(shortcuts.title)",
+ "toggleExpand": "Expandir ou recolher todos os grupos",
+ "toggleFullscreen": "Alternar tela cheia",
+ "toggleGraphGrid": "Alternar visualização de grafo / grade",
+ "toggleGridCellSelection": "Adicionar ou remover $t(taskInstance_one) ou
$t(taskGroup_one) da seleção",
+ "toggleLogLevel": "Alternar níveis de log",
+ "toggleSource": "Alternar fonte",
+ "toggleTaskGroup": "Expandir ou recolher $t(taskGroup_one)",
+ "toggleTimestamp": "Alternar datas e horas",
+ "toggleWrap": "Alternar $t(wrap.wrap)"
+ },
+ "empty": "Não há atalhos de teclado disponíveis nesta página.",
+ "title": "Atalhos de teclado"
+ },
"showDetailsPanel": "Mostrar Painel de Detalhes",
"signedInAs": "Sessão iniciada como",
+ "slot": "Slot",
+ "slot_many": "Slots",
+ "slot_one": "Slot",
+ "slot_other": "Slots",
+ "slot_zero": "Nenhum slot",
"source": {
"hide": "Ocultar",
"hotkey": "s",
@@ -226,11 +443,13 @@
"startDate": "Data Inicial",
"state": "Estado",
"states": {
+ "awaiting_input": "Aguardando entrada",
"deferred": "Deferido",
"failed": "Falha",
"no_status": "Sem Status",
"none": "Sem Status",
"open": "Aberto",
+ "pending": "Pendente",
"planned": "Planejado",
"queued": "Enfileirado",
"removed": "Removido",
@@ -243,6 +462,9 @@
"up_for_retry": "Pronto para tentar novamente",
"upstream_failed": "Falha no upstream"
},
+ "switchDag": "Trocar $t(dag_one)",
+ "switchDagRun": "Trocar $t(dagRun_one)",
+ "switchMapIndex": "Trocar $t(mapIndex)",
"table": {
"completedAt": "Concluído em",
"createdAt": "Criado em",
@@ -254,30 +476,49 @@
"filterReset_zero": "Nenhum filtro para resetar",
"from": "De",
"maxActiveRuns": "Máximo de Execuções Ativas",
+ "noResultsFound": "Nenhum resultado encontrado",
"noTagsFound": "Nenhuma tag encontrada",
+ "noTeamsFound": "Nenhuma equipe encontrada",
+ "ownerPlaceholder": "Filtrar por proprietário",
"tagMode": {
"all": "Todos",
"any": "Qualquer"
},
"tagPlaceholder": "Filtrar por tag",
- "to": "Para"
+ "to": "Para",
+ "updatedAt": "Atualizado em"
},
"task": {
+ "dependsOnPast": "Depende do passado",
"documentation": "Documentação da Tarefa",
"lastInstance": "Última Instância",
"operator": "Operador",
- "triggerRule": "Regra de Trigger"
+ "retries": "Tentativas",
+ "triggerRule": "Regra de Trigger",
+ "waitForDownstream": "Aguardar o downstream"
},
"task_many": "Tarefas",
"task_one": "Tarefa",
"task_other": "Tarefas",
"task_zero": "Nenhuma tarefa",
+ "taskGroup": {
+ "documentation": "Documentação do grupo de tarefas"
+ },
+ "taskGroup_many": "Grupos de Tarefas",
+ "taskGroup_one": "Grupo de Tarefas",
+ "taskGroup_other": "Grupos de Tarefas",
+ "taskGroup_zero": "Nenhum grupo de tarefas",
"taskId": "ID da Tarefa",
"taskInstance": {
+ "additionalAttributes": "Atributos adicionais da instância de tarefa",
"dagVersion": "Versão do Dag",
"executor": "Executor",
"executorConfig": "Configuração do Executor",
"hostname": "Hostname",
+ "id": "ID",
+ "iteration": "Iteração",
+ "loopDecision": "Decisão",
+ "loopIterations": "Iterações executadas",
"maxTries": "Máximo de Tentativas",
"pid": "PID",
"pool": "Pool",
@@ -285,12 +526,21 @@
"priorityWeight": "Prioridade",
"queue": "Fila",
"queuedWhen": "Enfileirado em",
+ "renderedMapIndex": "Índice do mapa renderizado",
+ "retryAt": "Tentar novamente em",
"scheduledWhen": "Agendado em",
+ "stateReason": "Motivo do estado",
+ "stateReasonSummary": {
+ "failed": "Parou na tentativa {{tryNumber}} de {{totalTries}}",
+ "upForRetry": "Tentando novamente após a tentativa {{tryNumber}} de
{{totalTries}}"
+ },
+ "trigger": "Trigger",
"triggerer": {
"assigned": "Triggerer atribuído",
"class": "Classe do Trigger",
"createdAt": "Tempo de criação do Trigger",
"id": "ID do Trigger",
+ "job": "Tarefa do Disparador",
"latestHeartbeat": "Último heartbeat do Trigger",
"title": "Informações do Trigger"
},
@@ -300,10 +550,23 @@
"taskInstance_one": "Instância de Tarefa",
"taskInstance_other": "Instâncias de Tarefa",
"taskInstance_zero": "Nenhuma instância de tarefa",
+ "teams": {
+ "more_many": "e {{count, number}} de outros",
+ "more_one": "e {{count, number}} outro",
+ "more_other": "e {{count, number}} outros",
+ "more_zero": "e nenhum outro",
+ "none": "Nenhuma equipe",
+ "title": "Equipes"
+ },
"timeRange": {
+ "anyTime": "Qualquer momento",
+ "in": "em",
+ "last7Days": "Últimos 7 dias",
"last12Hours": "Últimas 12 Horas",
"last24Hours": "Últimas 24 Horas",
+ "last30Days": "Últimos 30 dias",
"lastHour": "Última Hora",
+ "latestRun": "Última execução",
"pastWeek": "Semana Passada"
},
"timestamp": {
@@ -319,6 +582,13 @@
"utc": "UTC (Tempo Universal Coordenado)"
},
"toaster": {
+ "bulkClear": {
+ "error": "Limpeza em Massa de {{resourceName}} Falhou",
+ "success": {
+ "description": "{{count, number}} {{resourceName}} foram limpos com
sucesso. Chaves: {{keys}}",
+ "title": "Limpeza em Massa de {{resourceName}} Submetida"
+ }
+ },
"bulkDelete": {
"error": "Exclusão em Massa de {{resourceName}} Falhou",
"success": {
@@ -326,6 +596,13 @@
"title": "Exclusão em Massa de {{resourceName}} Submetida"
}
},
+ "bulkUpdate": {
+ "error": "Atualização em Massa de {{resourceName}} Falhou",
+ "success": {
+ "description": "{{count, number}} {{resourceName}} foram atualizados
com sucesso. Chaves: {{keys}}",
+ "title": "Atualização em Massa de {{resourceName}} Submetida"
+ }
+ },
"create": {
"error": "Criação de {{resourceName}} Falhou",
"success": {
@@ -355,14 +632,33 @@
}
}
},
+ "tokenGeneration": {
+ "apiToken": "Token de API",
+ "cliToken": "Token de CLI",
+ "errorDescription": "Ocorreu um erro ao gerar o token. Tente novamente.",
+ "errorTitle": "Falha ao gerar o token",
+ "generate": "Gerar",
+ "selectType": "Selecione o tipo de token a gerar.",
+ "title": "Gerar token",
+ "tokenExpiresIn": "Este token expira em {{duration}}.",
+ "tokenGenerated": "O seu token foi gerado.",
+ "tokenShownOnce": "Este token só será mostrado uma vez. Copie-o agora."
+ },
"total": "Total {{state}}",
"triggered": "Acionado",
"tryNumber": "Número de Tentativas",
+ "unpause": "Despausar",
"user": "Usuário",
+ "validation": {
+ "mustBeAtLeast": "Deve ser pelo menos {{min}}.",
+ "mustBeValidNumber": "Deve ser um número válido."
+ },
+ "value": "Valor",
"wrap": {
"hotkey": "w",
"tooltip": "Pressione {{hotkey}} para expandir ou recolher a secção",
"unwrap": "Expandir",
"wrap": "Recolher"
- }
+ },
+ "yes": "Sim"
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/components.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/components.json
index 54c7602e657..aed7db5ea95 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/components.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/components.json
@@ -1,22 +1,40 @@
{
"backfill": {
- "affected_many": "{{count, number}} execuções serão acionadas.",
+ "affected_many": "{{count, number}} de execuções serão acionadas.",
"affected_one": "1 execução será acionada.",
"affected_other": "{{count, number}} execuções serão acionadas.",
"affected_zero": "Nenhuma execução será acionada.",
"affectedNone": "Nenhuma execução correspondente aos critérios
selecionados.",
"allRuns": "Todas as Execuções",
"backwards": "Executar para trás",
+ "completed": "Concluído",
"dateRange": "Intervalo de Data",
"errorStartDateBeforeEndDate": "A Data Inicial deve ser antes da Data
Final",
+ "exceptionReason": {
+ "alreadyExists": "Já existe",
+ "inFlight": "Em andamento",
+ "unknown": "Desconhecido"
+ },
"maxRuns": "Máximo de Execuções Ativas",
"missingAndErroredRuns": "Execuções Faltando e com Erro",
"missingRuns": "Execuções Faltando",
+ "notCreatedReason": "Motivo de não criação",
+ "overrideExistingParams": "Sobrescrever parâmetros nas execuções
existentes",
+ "partitionRange": "Intervalo de partições",
+ "partitionsAffected_many": "{{count, number}} de partições receberão
backfill:",
+ "partitionsAffected_one": "1 partição receberá backfill:",
+ "partitionsAffected_other": "{{count, number}} partições receberão
backfill:",
+ "partitionsAffected_zero": "Nenhuma partição receberá backfill.",
+ "partitionsNone": "Nenhuma partição corresponde ao intervalo selecionado.",
"permissionDenied": "Execução de teste falhou: o utilizador não tem
permissão para criar backfills.",
"reprocessBehavior": "Comportamento de Reprocessamento",
"run": "Executar Backfill",
+ "running": "Executando",
+ "scheduleNotBackfillable": "O agendamento deste Dag não suporta backfills",
+ "schedulerPriorityHint": "As execuções de Dag de backfill são ordenadas
depois das execuções que não são de backfill em cada ciclo do scheduler. As
execuções de backfill podem permanecer enfileiradas por mais tempo se houver
outras execuções que não são de backfill.",
"selectDescription": "Executar este Dag para um intervalo de datas",
"selectLabel": "Backfill",
+ "status": "Estado",
"title": "Executar Backfill",
"toaster": {
"success": {
@@ -27,7 +45,8 @@
"validation": {
"datesRequired": "Ambas as datas de início e fim do intervalo devem ser
fornecidas.",
"startBeforeEnd": "A Data Inicial do Intervalo deve ser menor ou igual à
Data Final do Intervalo."
- }
+ },
+ "viewSlots": "Ver slots do Backfill #{{id}}"
},
"banner": {
"backfillInProgress": "Backfill em progresso",
@@ -44,10 +63,7 @@
"invalidJson": "Formato JSON inválido: {{errorMessage}}"
},
"dagWarnings": {
- "error_many": "{{count, number}} Erros",
"error_one": "1 Erro",
- "error_other": "{{count, number}} Erros",
- "error_zero": "Nenhum erro",
"errorAndWarning": "1 Erro e {{warningText}}",
"types": {
"asset conflict": "Conflito de Asset",
@@ -56,7 +72,7 @@
"runtime varying value": "Valor variável em tempo de execução",
"task group cycle": "Ciclo no grupo de tarefas"
},
- "warning_many": "{{count, number}} Avisos",
+ "warning_many": "{{count, number}} de Avisos",
"warning_one": "1 Aviso",
"warning_other": "{{count, number}} Avisos",
"warning_zero": "Nenhum aviso"
@@ -70,32 +86,36 @@
},
"durationChart": {
"duration": "Duração (segundos)",
- "lastDagRun_many": "Últimas {{count, number}} Execuções do Dag",
+ "lastDagRun_many": "Últimas {{count, number}} de Execuções do Dag",
"lastDagRun_one": "Última Execução do Dag",
"lastDagRun_other": "Últimas {{count, number}} Execuções do Dag",
"lastDagRun_zero": "Nenhuma execução do Dag",
- "lastTaskInstance_many": "Últimas {{count, number}} Instâncias de Tarefa",
+ "lastTaskInstance_many": "Últimas {{count, number}} de Instâncias de
Tarefa",
"lastTaskInstance_one": "Última Instância de Tarefa",
"lastTaskInstance_other": "Últimas {{count, number}} Instâncias de Tarefa",
"lastTaskInstance_zero": "Nenhuma instância de tarefa",
+ "medianTotalDuration": "Total: {{duration}}",
"queuedDuration": "Duração da Fila",
"runAfter": "Executar Depois",
"runDuration": "Duração da Execução"
},
"fileUpload": {
- "files_many": "{{count, number}} arquivos",
+ "files_many": "{{count, number}} de arquivos",
"files_one": "1 arquivo",
"files_other": "{{count, number}} arquivos",
"files_zero": "Nenhum arquivo"
},
"flexibleForm": {
+ "durationPlaceholder": "Informe a duração no formato ISO 8601",
"placeholder": "Selecionar Valor",
"placeholderArray": "Digite cada string em uma nova linha",
"placeholderExamples": "Comece a digitar para ver opções",
"placeholderMulti": "Selecione um ou vários valores",
+ "validationErrorArrayElement": "Valor(es) de {{type}} inválido(s):
{{values}}",
"validationErrorArrayNotArray": "O valor deve ser um array.",
"validationErrorArrayNotNumbers": "Todos os elementos do array devem ser
números.",
"validationErrorArrayNotObject": "Todos os elementos do array devem ser
objetos.",
+ "validationErrorDuration": "Formato de duração ISO 8601 inválido",
"validationErrorRequired": "Este campo é obrigatório"
},
"graph": {
@@ -103,15 +123,22 @@
"directionLeft": "Direita para Esquerda",
"directionRight": "Esquerda para Direita",
"directionUp": "Inferior para Superior",
- "downloadImage": "Baixar imagem do gráfico",
- "downloadImageError": "Falha ao baixar a imagem do gráfico.",
+ "downloadImage": "Baixar imagem do grafo",
+ "downloadImageError": "Falha ao baixar a imagem do grafo.",
"downloadImageErrorTitle": "Download Falhou",
"otherDagRuns": "+Outras Execuções do Dag",
- "taskCount_many": "{{count, number}} Tarefas",
+ "taskCount_many": "{{count, number}} de Tarefas",
"taskCount_one": "{{count, number}} Tarefa",
"taskCount_other": "{{count, number}} Tarefas",
"taskCount_zero": "Nenhuma tarefa",
- "taskGroup": "Grupo de Tarefas"
+ "taskGroup": "Grupo de Tarefas",
+ "zoomToTask": "Ampliar para a tarefa selecionada"
+ },
+ "jsonPreview": {
+ "items_many": "{{count, number}} de itens",
+ "items_one": "1 item",
+ "items_other": "{{count, number}} itens",
+ "items_zero": "Nenhum item"
},
"limitedList": "+{{count, number}} mais",
"limitedList.allItems": "Todos os {{count, number}} itens:",
@@ -122,7 +149,7 @@
"limitedList.clickToInteract": "Clique em uma etiqueta para filtrar os Dags",
"limitedList.clickToOpenFull": "Clique em \"+{{count, number}} mais\" para
ver a lista completa",
"limitedList.copyPasteText": "Você pode copiar e colar o texto acima",
- "limitedList.showingItems_many": "Mostrando {{count, number}} itens",
+ "limitedList.showingItems_many": "Mostrando {{count, number}} de itens",
"limitedList.showingItems_one": "Mostrando 1 item",
"limitedList.showingItems_other": "Mostrando {{count, number}} itens",
"limitedList.showingItems_zero": "Mostrando 0 itens",
@@ -130,7 +157,30 @@
"file": "Arquivo",
"location": "linha {{line}} em {{name}}"
},
+ "passwordToggle": {
+ "hide": "Ocultar valor",
+ "show": "Mostrar valor"
+ },
+ "pausedDag": {
+ "drain": "Drenar",
+ "drainDescription": "As execuções inacabadas continuam, mas nenhuma
execução agendada é criada. Backfills pausados permanecem pausados. O Dag pausa
de novo quando todas as execuções inacabadas terminam.",
+ "keepPaused": "Manter pausado",
+ "keepPausedDescription": "Execuções novas e inacabadas esperam até o Dag
ser despausado.",
+ "title": "O Dag está pausado",
+ "unfinishedRunsWillRun_many": "{{count, number}} de execuções do Dag
inacabadas serão iniciadas ou retomadas.",
+ "unfinishedRunsWillRun_one": "1 execução do Dag inacabada será iniciada ou
retomada.",
+ "unfinishedRunsWillRun_other": "{{count, number}} execuções do Dag
inacabadas serão iniciadas ou retomadas.",
+ "unfinishedRunsWillRun_zero": "Nenhuma execução do Dag inacabada será
iniciada ou retomada.",
+ "unpause": "Despausar",
+ "unpauseDescription": "O Dag fica ativo: as execuções inacabadas continuam
e o agendamento é retomado. Backfills pausados permanecem pausados."
+ },
"reparseDag": "Reparse Dag",
+ "slowestTaskInstances": {
+ "empty": "Nenhuma instância de tarefa concluída neste intervalo",
+ "title": "Instâncias de tarefa mais lentas"
+ },
+ "sort": "ordenar",
+ "sortMultiColumnHint": "Shift-clique para ordenar por várias colunas",
"sortedAscending": "Ordenado em ordem crescente",
"sortedDescending": "Ordenado em ordem decrescente",
"sortedUnsorted": "Não ordenado",
@@ -147,14 +197,24 @@
"toggleTableView": "Mostrar visualização de tabela",
"triggerDag": {
"button": "Acionar",
+ "dagStartEndDate": {
+ "both": "Data inicial do Dag: {{startDate}}, data final: {{endDate}}",
+ "end": "Data final do Dag: {{endDate}}",
+ "noTaskWillRun": "Nenhuma tarefa será executada.",
+ "start": "Data inicial do Dag: {{startDate}}"
+ },
"dataInterval": "Intervalo de Dados",
"dataIntervalAuto": "Inferido da Data Lógica e do Timetable",
"dataIntervalManual": "Especificar Manualmente",
+ "editConfigAndTrigger": "Editar configuração e acionar",
"intervalEnd": "Fim",
"intervalStart": "Início",
"loading": "Carregando informações do Dag...",
"loadingFailed": "Falha ao carregar informações do Dag. Por favor, tente
novamente.",
"manualRunDenied": "Execuções manuais não são permitidas para este Dag",
+ "partitionKeyHelp": "Opcional — aplica-se apenas a Dags particionados",
+ "recentConfig": "Configurações recentes",
+ "recentConfigPlaceholder": "Selecionar uma configuração recente",
"runIdHelp": "Opcional - será gerado se não for fornecido",
"selectDescription": "Acionar uma única execução deste Dag",
"selectLabel": "Execução Única",
@@ -168,7 +228,8 @@
"title": "Execução do Dag acionada"
}
},
- "triggerAgainWithConfig": "Acionar novamente com esta configuração"
+ "triggerAgainWithConfig": "Acionar novamente com esta configuração",
+ "triggerOptions": "Opções de acionamento"
},
"trimText": {
"details": "Detalhes",
@@ -185,6 +246,7 @@
"versionSelect": {
"allVersions": "Todas as Versões",
"dagVersion": "Versão do Dag",
+ "placeholder": "Selecionar versão",
"versionCode": "v{{versionCode}}"
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/dag.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/dag.json
index 8c294d74820..27496fd8a93 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/dag.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/dag.json
@@ -1,4 +1,5 @@
{
+ "allMapIndexes": "Todos os índices do mapa",
"allRuns": "Todas as Execuções",
"blockingDeps": {
"dependency": "Dependência",
@@ -6,6 +7,7 @@
"title": "Dependências Bloqueando Tarefa de Ser Agendada"
},
"calendar": {
+ "backfill": "Backfill",
"daily": "Diário",
"hourly": "Por Hora",
"legend": {
@@ -34,23 +36,79 @@
"wednesday": "Qua"
}
},
+ "callbacks": {
+ "callback_many": "Callbacks",
+ "callback_one": "Callback",
+ "callback_other": "Callbacks",
+ "callback_zero": "Nenhum Callback",
+ "columns": {
+ "alertName": "Nome do alerta",
+ "callback": "Callback",
+ "deadlineTime": "Hora do prazo",
+ "missedBy": "Atraso",
+ "type": "Tipo"
+ },
+ "types": {
+ "executor": "Síncrono",
+ "triggerer": "Assíncrono"
+ }
+ },
"code": {
"bundleUrl": "URL do Bundle",
"noCode": "Nenhum Código Encontrado",
"parseDuration": "Duração do Processamento:",
"parsedAt": "Processado em:"
},
+ "deadlineAlerts": {
+ "completionRule": "Deve terminar em até {{interval}} a partir de
{{reference}}",
+ "completionRuleDynamic": "Deve terminar em um intervalo variável medido a
partir de {{reference}}",
+ "count_many": "{{count, number}} de prazos",
+ "count_one": "{{count, number}} prazo",
+ "count_other": "{{count, number}} prazos",
+ "count_zero": "Nenhum prazo",
+ "referenceType": {
+ "AverageRuntimeDeadline": "tempo médio de execução",
+ "DagRunLogicalDateDeadline": "data lógica",
+ "DagRunQueuedAtDeadline": "tempo de fila"
+ }
+ },
+ "deadlineStatus": {
+ "actual": "Real",
+ "expected": "Esperado",
+ "finishedEarly": "Terminou {{duration}} antes do prazo",
+ "finishedLate": "Terminou {{duration}} depois do prazo",
+ "label": "Prazo",
+ "met": "Cumprido",
+ "missed": "Não cumprido",
+ "missedCount_many": "{{count, number}} de prazos não cumpridos",
+ "missedCount_one": "{{count, number}} prazo não cumprido",
+ "missedCount_other": "{{count, number}} prazos não cumpridos",
+ "missedCount_zero": "Nenhum prazo não cumprido",
+ "mixedCount": "{{missedCount, number}} não cumpridos, {{upcomingCount,
number}} iminentes",
+ "stillRunning": "Ainda executando",
+ "upcoming": "Iminente",
+ "upcomingCount_many": "{{count, number}} de prazos iminentes",
+ "upcomingCount_one": "{{count, number}} prazo iminente",
+ "upcomingCount_other": "{{count, number}} prazos iminentes",
+ "upcomingCount_zero": "Nenhum prazo iminente"
+ },
"extraLinks": "Links Extra",
"grid": {
"buttons": {
+ "newerRuns": "Execuções mais recentes",
+ "olderRuns": "Execuções mais antigas",
"resetToLatest": "Redefinir para a Última",
"toggleGroup": "Alternar Grupo"
- }
+ },
+ "runTypeLegend": "Legenda do tipo de execução"
},
"header": {
"buttons": {
"advanced": "Avançado",
"dagDocs": "Documentação do Dag"
+ },
+ "status": {
+ "deactivated": "Desativado"
}
},
"logs": {
@@ -59,19 +117,53 @@
"critical": "CRÍTICO",
"debug": "DEBUG",
"error": "ERRO",
- "fullscreen": {
- "button": "Tela cheia",
- "tooltip": "Pressione {{hotkey}} para tela cheia"
- },
"info": "INFO",
"noTryNumber": "Nenhum número de tentativa",
+ "search": {
+ "matchCount": "{{current, number}} de {{total, number}}",
+ "nextMatch": "Correspondência seguinte",
+ "noMatches": "Nenhuma correspondência",
+ "placeholder": "Pesquisar logs...",
+ "previousMatch": "Correspondência anterior"
+ },
"settings": "Configurações",
+ "tryNotStarted": "Esta tentativa ainda não começou.",
+ "viewFailedTry": "Ver logs da tentativa falhada {{tryNumber}}",
"viewInExternal": "Ver logs em {{name}} (tentativa {{attempt}})",
+ "viewPreviousTry": "Ver logs da tentativa anterior {{tryNumber}}",
+ "waitingToRetry": "A tentativa {{tryNumber}} está aguardando para tentar
novamente.",
"warning": "AVISO"
},
- "navigation": {
- "navigation": "Navegação: Shift+{{arrow}}",
- "toggleGroup": "Alternar grupo: Espaço"
+ "loop": {
+ "history": {
+ "capLabel": "Limite: {{max}}",
+ "iterationsAxis": "Iterações",
+ "stats": {
+ "capHits": "Atingiu o limite",
+ "medianIterations": "Mediana de iterações"
+ },
+ "title": "Iterações por execução"
+ },
+ "iterationLabel": "Iteração {{index}}",
+ "iterations": "Iterações",
+ "outcome": "Resultado",
+ "reason": {
+ "cap_reached": "Atingiu o limite de iterações ({{max}})",
+ "failed": "Falhou na iteração {{index}}",
+ "iteration_failed": "A iteração {{index}} falhou em {{taskId}}",
+ "ran_to_cap": "Executou todas as {{max}} iterações permitidas",
+ "removed": "Removido",
+ "running": "Executando",
+ "skipped": "Pulado",
+ "stopped_early": "Parou antes, na iteração {{index}}"
+ },
+ "rules": {
+ "behaviour": "Comportamento",
+ "boundedFor": "Executa um número fixo de iterações",
+ "exitCriteria": "Critério de saída",
+ "maxIterations": "Máximo de iterações",
+ "whileUntil": "Repete até {{criteria}}"
+ }
},
"notFound": {
"back": "Voltar",
@@ -100,6 +192,10 @@
"assetEvent_other": "Eventos de Asset Criados",
"assetEvent_zero": "Nenhum evento de asset criado"
},
+ "deadlines": {
+ "showAll": "Mostrar tudo",
+ "title": "Prazos"
+ },
"failedLogs": {
"hideLogs": "Ocultar Logs",
"showLogs": "Mostrar Logs",
@@ -111,23 +207,27 @@
"buttons": {
"options": "Opções",
"showGantt": "Mostrar Gantt",
- "showGraphShortcut": "Mostrar Gráfico (Pressione g)",
+ "showGraphShortcut": "Mostrar Grafo (Pressione g)",
"showGridShortcut": "Mostrar Grade (Pressione g)"
},
"dagRuns": {
"label": "Número de Execuções do Dag"
},
"dependencies": {
- "label": "Dependências",
- "options": {
- "allDagDependencies": "Todas as Dependências do Dag",
- "externalConditions": "Condições Externas",
- "onlyTasks": "Somente Tarefas"
- },
- "placeholder": "Dependências"
+ "allDagDependencies": "Todas as dependências do Dag"
},
"graphDirection": {
- "label": "Direção do Gráfico"
+ "label": "Direção do Grafo"
+ },
+ "graphFilters": {
+ "clearFilters": "Limpar filtros",
+ "durationGte": "Duração mínima (s)",
+ "durationGteHint": "Para tarefas mapeadas, mede o intervalo total entre
todas as instâncias",
+ "mapIndex": "Índice do mapa mínimo",
+ "mapIndexHint": "Mostra tarefas mapeadas expandidas pelo menos até este
índice",
+ "selectStatus": "Selecionar estado",
+ "selectTaskGroup": "Selecionar grupo de tarefas",
+ "title": "Filtros de tarefas"
},
"showVersionIndicator": {
"label": "Mostrar Indicador de Versão",
@@ -177,6 +277,7 @@
"auditLog": "Log de Auditoria",
"backfills": "Backfills",
"calendar": "Calendário",
+ "callbacks": "Callbacks",
"code": "Código",
"details": "Detalhes",
"logs": "Logs",
@@ -189,11 +290,112 @@
"requiredActions": "Ações Necessárias",
"runs": "Execuções",
"taskInstances": "Instâncias de Tarefa",
+ "taskStateStore": "Armazenamento de estado da tarefa",
"tasks": "Tarefas",
+ "versions": "Versões",
"xcom": "XCom"
},
"taskGroups": {
"collapseAll": "Recolher todos os grupos de tarefas",
"expandAll": "Expandir todos os grupos de tarefas"
+ },
+ "taskStateStore": {
+ "add": "Adicionar armazenamento de estado da tarefa",
+ "clearAll": {
+ "resource": "todo o armazenamento de estado da tarefa",
+ "title": "Limpar todo o armazenamento de estado da tarefa",
+ "warning": "Todo o armazenamento de estado da tarefa será apagado.
Tarefas que usam este armazenamento para acompanhar trabalho externo não
poderão retomar sem executar de novo desde o início."
+ },
+ "delete": "Excluir armazenamento de estado da tarefa",
+ "deleteWarning": "A tarefa perderá esta memória persistida. Se a tarefa
usa esta chave para acompanhar trabalho externo (por exemplo, o ID de um job
externo), não poderá retomá-lo.",
+ "edit": "Editar armazenamento de estado da tarefa",
+ "emptyStore": "O armazenamento de estado da tarefa guarda valores que
persistem entre tentativas. Os workers podem escrever no armazenamento de
estado da tarefa através do Task SDK.",
+ "entry_many": "Entradas",
+ "entry_one": "Entrada",
+ "entry_other": "Entradas",
+ "entry_zero": "Nenhuma entrada",
+ "expiresAt": {
+ "column": "Expira em",
+ "custom": "Personalizado",
+ "default": "Padrão ({{interval}})",
+ "label": "Expiração",
+ "never": "Nunca"
+ },
+ "title": "Armazenamento de Estado da Tarefa"
+ },
+ "versions": {
+ "base": "Comparar de",
+ "categories": {
+ "asset": "Asset",
+ "authorization": "Autorização",
+ "callback": "Callback",
+ "deadline": "Prazo",
+ "dependency": "Dependência",
+ "metadata": "Metadados",
+ "param": "Parâmetro",
+ "provenance": "Proveniência",
+ "schedule": "Agendamento",
+ "task": "Tarefa",
+ "unknown": "Desconhecido"
+ },
+ "codeAccess": "Os valores exigem acesso ao código do Dag",
+ "columns": {
+ "after": "Depois",
+ "before": "Antes",
+ "category": "Categoria",
+ "impact": "Impacto",
+ "operation": "Operação",
+ "path": "Caminho"
+ },
+ "heading": "Versão {{base}} → Versão {{target}}",
+ "impacts": {
+ "authorization": "Autorização",
+ "execution": "Execução",
+ "metadata": "Metadados",
+ "provenance": "Proveniência",
+ "unknown": "Desconhecido"
+ },
+ "limitReached": {
+ "description": "Há mais alterações do que o limite de Máximo de
alterações permite. Aumente o limite para ver o restante.",
+ "descriptionDefault": "Há mais alterações do que o limite padrão
permite. Defina Máximo de alterações mais alto para ver o restante.",
+ "title": "Mostrando apenas as primeiras {{limit, number}} alterações"
+ },
+ "maxChanges": "Máximo de alterações",
+ "maxChangesDefault": "Padrão",
+ "noChanges": "Estas versões têm o mesmo estado.",
+ "operations": {
+ "added": "Adicionado",
+ "changed": "Alterado",
+ "removed": "Removido"
+ },
+ "pathOccurrences_many": "{{count, number}} de alterações compartilham este
caminho",
+ "pathOccurrences_one": "{{count, number}} alteração compartilha este
caminho",
+ "pathOccurrences_other": "{{count, number}} alterações compartilham este
caminho",
+ "pathOccurrences_zero": "Nenhuma alteração compartilha este caminho",
+ "pathOccurrencesAtLeast_many": "Pelo menos {{count, number}} de alterações
compartilham este caminho",
+ "pathOccurrencesAtLeast_one": "Pelo menos {{count, number}} alteração
compartilha este caminho",
+ "pathOccurrencesAtLeast_other": "Pelo menos {{count, number}} alterações
compartilham este caminho",
+ "pathOccurrencesAtLeast_zero": "Nenhuma alteração compartilha este
caminho",
+ "record_many": "Registros",
+ "record_one": "Registro",
+ "record_other": "Registros",
+ "record_zero": "Nenhum registro",
+ "schemaChange": "Schema serializado {{baseSchema}} → {{targetSchema}}",
+ "selectPrompt": "Selecione duas versões para ver o que mudou entre elas.",
+ "summary_many": "{{count, number}} de alterações",
+ "summary_one": "{{count, number}} alteração",
+ "summary_other": "{{count, number}} alterações",
+ "summary_zero": "Nenhuma alteração",
+ "summaryAtLeast_many": "Pelo menos {{count, number}} de alterações",
+ "summaryAtLeast_one": "Pelo menos {{count, number}} alteração",
+ "summaryAtLeast_other": "Pelo menos {{count, number}} alterações",
+ "summaryAtLeast_zero": "Nenhuma alteração",
+ "target": "Comparar com",
+ "unavailable": {
+ "description": "Não foi possível comparar estas versões. Motivo:",
+ "title": "Comparação indisponível",
+ "withoutReason": "Não foi possível comparar estas versões."
+ },
+ "valuesHidden": "Valores ocultos"
}
}
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/dags.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/dags.json
index 9e741427c34..c2afad257a3 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/dags.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/dags.json
@@ -6,6 +6,11 @@
"warning": "Isso removerá todas as metadados relacionados ao Dag,
incluindo Execuções e Tarefas."
}
},
+ "draining": {
+ "badgeTooltip": "Este Dag pausa quando as execuções em andamento
terminam.",
+ "label": "Em drenagem",
+ "tooltip": "Drenando {{dagDisplayName}} — pausa quando as execuções em
andamento terminam. Clique para retomar."
+ },
"favoriteDag": "Dag Favorito",
"filters": {
"allRunTypes": "Todos os Tipos de Execução",
@@ -15,14 +20,37 @@
"favorite": "Favorito",
"unfavorite": "Remover dos Favoritos"
},
+ "favoriteState": "Estado de favorito",
+ "favoriteStatePlaceholder": "Selecionar estado de favorito…",
+ "hasImportErrors": "Tem erros de importação",
+ "noTimetableTypesFound": "Nenhum tipo de timetable encontrado",
"paused": {
"active": "Ativo",
"all": "Todos",
"paused": "Pausado"
},
- "runIdPatternFilter": "Pesquisar Execuções de Dag"
+ "pausedPlaceholder": "Selecionar estado de pausa…",
+ "pausedState": "Estado de pausa",
+ "requiresHitlAction": "Requer ação HITL",
+ "runIdPatternFilter": "Pesquisar Execuções de Dag",
+ "runState": "Estado da execução",
+ "runStatePlaceholder": "Selecionar estado da execução…",
+ "timetableType": "Tipo de timetable"
+ },
+ "folders": {
+ "all": "Todos os Dags",
+ "empty": "Nenhuma pasta",
+ "hide": "Ocultar pastas",
+ "show": "Mostrar pastas",
+ "title": "Pastas"
},
"ownerLink": "Link do Proprietário para {{owner}}",
+ "recentTaskStateCounts": {
+ "description": "Estado das tarefas de todas as execuções do Dag em
andamento ou, se nenhuma estiver em andamento, da execução mais recente. Você
pode desligar isso nas suas configurações.",
+ "label": "Tarefas recentes",
+ "loading": "Carregando contagens de estado das tarefas recentes",
+ "tooltip": "{{state}}: {{formattedCount}} — clique para filtrar tarefas"
+ },
"runAndTaskActions": {
"affectedTasks": {
"noItemsFound": "Nenhuma tarefa encontrada.",
@@ -34,6 +62,11 @@
"error": "Falha ao limpar {{type}}",
"title": "Limpar {{type}}"
},
+ "clearAllMapped": {
+ "button": "Limpar todas as tarefas mapeadas",
+ "buttonTooltip": "Pressione shift+c para limpar todas as instâncias de
tarefa mapeadas",
+ "title": "Limpar todas as instâncias de tarefa mapeadas"
+ },
"confirmationDialog": {
"description": "A tarefa está atualmente em estado {{state}} iniciado
pelo utilizador {{user}} às {{time}}. O utilizador não pode limpar esta tarefa
até que termine de executar ou até que um utilizador desmarque a opção
\"Impedir nova execução se a tarefa estiver em execução\" no diálogo de
limpeza.",
"title": "Não é Possível Limpar a Instância de Tarefa"
@@ -57,25 +90,47 @@
"failed": "Pressione shift+f para marcar como falha",
"success": "Pressione shift+s para marcar como sucesso"
},
+ "skippedInfo": "Marcar uma instância de tarefa como pulada registra que
ela foi intencionalmente não executada. As tarefas Downstream continuam a ser
avaliadas pelas regras de trigger: com a regra padrão \"all_success\", elas
também serão puladas. Só é possível pular instâncias de tarefa que ainda não
começaram a executar, e apenas esta instância de tarefa é afetada.",
"title": "Marcar {{type}} como {{state}}"
},
"options": {
"downstream": "Downstream",
"existingTasks": "Limpar tarefas existentes",
"future": "Futuro",
+ "keepTaskState": "Manter o estado da tarefa e retomar",
+ "laterIterations": "Iterações posteriores",
"onlyFailed": "Limpar somente tarefas falhadas",
"past": "Passado",
"preventRunningTasks": "Impedir nova execução se a tarefa estiver em
execução",
"queueNew": "Enfileirar novas tarefas",
"runOnLatestVersion": "Executar com a versão mais recente do pacote",
- "upstream": "Upstream"
+ "runOnLatestVersionForced": "Usa sempre a mais recente — não há uma
versão anterior para a qual voltar",
+ "upstream": "Upstream",
+ "wholeExpansion": "Expansão completa"
}
},
+ "runStateCounts": {
+ "label": "Estados da execução",
+ "loading": "Carregando contagens de estado das execuções",
+ "tooltip": "{{state}}: {{formattedCount}} — clique para filtrar execuções"
+ },
+ "schedulingActions": {
+ "cancelDrain": "Cancelar drenagem",
+ "drain": "Drenar e depois pausar",
+ "drainPrompt": "Este Dag tem execuções em andamento. Drenar permite que
elas terminem antes de o Dag pausar; pausar agora interrompe o agendamento
imediatamente, sem esperar por elas.",
+ "pauseNow": "Pausar agora",
+ "pauseSelected": "Pausar / Drenar"
+ },
+ "schedulingBanner": {
+ "message": "Este Dag está em drenagem. Ele pausará quando as execuções em
andamento terminarem."
+ },
"search": {
"advanced": "Pesquisa Avançada",
"clear": "Limpar pesquisa",
+ "dagRuns": "Pesquisar $t(common:dagRun_other)",
"dags": "Pesquisar Dags",
"hotkey": "+K",
+ "mapIndexes": "Pesquisar $t(common:mapIndex)",
"tasks": "Pesquisar Tarefas"
},
"sort": {
@@ -83,9 +138,9 @@
"asc": "Ordenar por Nome (A-Z)",
"desc": "Ordenar por Nome (Z-A)"
},
- "lastRunStartDate": {
- "asc": "Ordenar por Data de Início da Última Execução (Mais Antiga-Mais
Recente)",
- "desc": "Ordenar por Data de Início da Última Execução (Mais
Recente-Mais Antiga)"
+ "lastRunAfter": {
+ "asc": "Ordenar por última execução depois (mais antiga–mais recente)",
+ "desc": "Ordenar por última execução depois (mais recente–mais antiga)"
},
"lastRunState": {
"asc": "Ordenar por Estado da Última Execução (A-Z)",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/dashboard.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/dashboard.json
index db3b16db425..02c5ac4ca09 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/dashboard.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/dashboard.json
@@ -1,6 +1,28 @@
{
+ "alerts": {
+ "seeLessContext": "Ver menos",
+ "seeMoreContext": "Ver mais",
+ "showMoreAlerts_many": "+{{count, number}} de alertas",
+ "showMoreAlerts_one": "+{{count, number}} alerta",
+ "showMoreAlerts_other": "+{{count, number}} alertas",
+ "showMoreAlerts_zero": "Nenhum alerta"
+ },
+ "deadlines": {
+ "pending": {
+ "empty": "Nenhum prazo iminente",
+ "title": "Iminentes"
+ },
+ "recentlyMissed": {
+ "empty": "Nenhum prazo não cumprido",
+ "title": "Prazos não cumpridos"
+ },
+ "showMore": "Mostrar mais",
+ "title": "Prazos"
+ },
+ "deferredSlotsNotCounted": "Deferidos não contabilizados nos slots: {{count,
number}}",
+ "deferredSlotsNotCountedTooltip": "As tarefas deferidas mostradas na barra
são contabilizadas nos slots do pool. As tarefas deferidas mostradas abaixo da
barra vêm de pools que não contabilizam tarefas deferidas nos slots.",
"favorite": {
- "favoriteDags_many": "Primeiros {{count, number}} Dags favoritos",
+ "favoriteDags_many": "Primeiros {{count, number}} de Dags favoritos",
"favoriteDags_one": "Primeiro {{count, number}} Dag favorito",
"favoriteDags_other": "Primeiros {{count, number}} Dags favoritos",
"favoriteDags_zero": "Nenhum Dag favorito",
@@ -10,17 +32,35 @@
"group": "Grupo",
"health": {
"dagProcessor": "Processador de Dag",
+ "degraded": "Degradado",
+ "degradedHint": {
+ "dagProcessor": "Alguns pacotes de Dag configurados não têm um
processador de Dag fazendo o parse deles.",
+ "triggerer": "Algumas equipes não têm um disparador executando tarefas
deferidas para elas."
+ },
+ "down": "Indisponível",
"health": "Saúde",
"healthy": "Saúde",
+ "instances": {
+ "bundles": "Pacotes",
+ "hostname": "Host",
+ "team": "Equipe",
+ "title_many": "{{title}} — {{status}} ({{count, number}} instâncias)",
+ "title_one": "{{title}} — {{status}} ({{count, number}} instância)",
+ "title_other": "{{title}} — {{status}} ({{count, number}} instâncias)",
+ "title_zero": "{{title}} — {{status}} (nenhuma instância)",
+ "unknownHostname": "Host desconhecido"
+ },
"lastHeartbeat": "Último Heartbeat",
"metaDatabase": "Base de Dados de Metadados",
"scheduler": "Agendador",
"status": "Estado",
"triggerer": "Disparador",
- "unhealthy": "Não saudável"
+ "unhealthy": "Não saudável",
+ "unknownStatus": "Desconhecido"
},
"history": "Histórico",
"importErrors": {
+ "bundle": "Pacote",
"dagImportError_many": "Erros de Importação de Dag",
"dagImportError_one": "Erro de Importação de Dag",
"dagImportError_other": "Erros de Importação de Dag",
diff --git a/airflow-core/src/airflow/ui/public/i18n/locales/pt/hitl.json
b/airflow-core/src/airflow/ui/public/i18n/locales/pt/hitl.json
index b3a879e50ea..1ef3e05fea6 100644
--- a/airflow-core/src/airflow/ui/public/i18n/locales/pt/hitl.json
+++ b/airflow-core/src/airflow/ui/public/i18n/locales/pt/hitl.json
@@ -25,9 +25,24 @@
"received": "Resposta recebida em ",
"respond": "Responder",
"responded_by_user_name": "Respondido por (Nome de usuário)",
+ "selectAtLeastOne": "Selecione pelo menos uma opção",
"success": "Resposta de {{taskId}} bem-sucedida",
"title": "Instância de Tarefa Humana - {{taskId}}"
},
+ "review": {
+ "detail": {
+ "selectRequiredAction": "Selecione uma ação necessária para ver os
detalhes"
+ },
+ "list": {
+ "completedRequiredActions": "Ações necessárias concluídas ({{count,
number}})",
+ "loadError": "Não foi possível carregar as ações necessárias",
+ "loadingActions": "Carregando ações necessárias...",
+ "pendingRequiredActions": "Ações necessárias pendentes ({{count,
number}})"
+ },
+ "openReviewDrawer": "Abrir painel de revisão",
+ "pageLimitHint": "Apenas as primeiras ações são mostradas aqui. Use
\"$t(review.viewAll)\" para ver todas.",
+ "viewAll": "Ver todas as ações necessárias"
+ },
"state": {
"approvalReceived": "Aprovação Recebida",
"approvalRequired": "Aprovação Necessária",