pgkiln 0.80.0 → 0.82.0

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.
Files changed (85) hide show
  1. package/db/migrations/146_database_model_providers.sql +53 -0
  2. package/db/migrations/147_condition_types.sql +80 -0
  3. package/db/migrations/148_validation_types.sql +44 -0
  4. package/db/migrations/149_dynamic_action_events.sql +45 -0
  5. package/db/migrations/150_process_types.sql +23 -0
  6. package/db/migrations/151_item_types.sql +16 -0
  7. package/db/migrations/152_workflow_diagram_region.sql +10 -0
  8. package/docs/apex-feature-parity.md +12 -10
  9. package/docs/guide/02-concepts.md +3 -3
  10. package/docs/guide/03-builder.md +13 -3
  11. package/docs/guide/04-pages-and-regions.md +17 -3
  12. package/docs/guide/05-items.md +5 -0
  13. package/docs/guide/06-processing.md +104 -17
  14. package/docs/guide/07-dynamic-actions.md +16 -1
  15. package/docs/guide/11-from-apex.md +7 -0
  16. package/examples/hr/hr_79_condition_types.sql +17 -0
  17. package/package.json +1 -1
  18. package/public/app.css +12 -0
  19. package/public/app.js +157 -9
  20. package/src/ai/embeddings.ts +20 -7
  21. package/src/appfiles.ts +4 -4
  22. package/src/builder/advisor.ts +43 -7
  23. package/src/builder/code-editor.ts +14 -10
  24. package/src/builder/components.ts +51 -21
  25. package/src/builder/conditions.ts +64 -0
  26. package/src/builder/db-users.ts +124 -118
  27. package/src/builder/designer.ts +9 -1
  28. package/src/builder/home.ts +42 -40
  29. package/src/builder/i18n/de.ts +464 -0
  30. package/src/builder/i18n/en.ts +464 -0
  31. package/src/builder/i18n/es.ts +464 -0
  32. package/src/builder/i18n/fr.ts +464 -0
  33. package/src/builder/i18n/it.ts +464 -0
  34. package/src/builder/i18n/ja.ts +464 -0
  35. package/src/builder/i18n/ko.ts +464 -0
  36. package/src/builder/i18n/nl.ts +464 -0
  37. package/src/builder/i18n/pt.ts +464 -0
  38. package/src/builder/i18n/zh-cn.ts +464 -0
  39. package/src/builder/i18n/zh-tw.ts +464 -0
  40. package/src/builder/instance.ts +27 -23
  41. package/src/builder/ldap.ts +50 -47
  42. package/src/builder/mail-queue.ts +50 -45
  43. package/src/builder/network-access.ts +46 -43
  44. package/src/builder/region-help.ts +3 -1
  45. package/src/builder/region-settings.ts +30 -5
  46. package/src/builder/vector-column.ts +3 -3
  47. package/src/builder/vector-providers.ts +16 -5
  48. package/src/i18n/ar.ts +5 -0
  49. package/src/i18n/cs.ts +5 -0
  50. package/src/i18n/da.ts +5 -0
  51. package/src/i18n/de.ts +5 -0
  52. package/src/i18n/el.ts +5 -0
  53. package/src/i18n/es.ts +5 -0
  54. package/src/i18n/fi.ts +5 -0
  55. package/src/i18n/fr.ts +5 -0
  56. package/src/i18n/he.ts +5 -0
  57. package/src/i18n/it.ts +5 -0
  58. package/src/i18n/ja.ts +5 -0
  59. package/src/i18n/ko.ts +5 -0
  60. package/src/i18n/nb.ts +5 -0
  61. package/src/i18n/pl.ts +5 -0
  62. package/src/i18n/pt.ts +5 -0
  63. package/src/i18n/ru.ts +5 -0
  64. package/src/i18n/sv.ts +5 -0
  65. package/src/i18n/tr.ts +5 -0
  66. package/src/i18n/uk.ts +5 -0
  67. package/src/i18n/zh.ts +5 -0
  68. package/src/i18n.ts +10 -0
  69. package/src/metadata.ts +72 -9
  70. package/src/runtime/authz.ts +9 -5
  71. package/src/runtime/context.ts +4 -0
  72. package/src/runtime/da-styles.ts +37 -0
  73. package/src/runtime/documents.ts +3 -2
  74. package/src/runtime/engine.ts +95 -13
  75. package/src/runtime/items.ts +33 -0
  76. package/src/runtime/logic.ts +79 -8
  77. package/src/runtime/maps.ts +50 -4
  78. package/src/runtime/process-types.ts +139 -0
  79. package/src/runtime/processes.ts +2 -0
  80. package/src/runtime/regions.ts +4 -0
  81. package/src/runtime/render.ts +13 -2
  82. package/src/runtime/routes.ts +2 -2
  83. package/src/runtime/workflow-diagram.ts +45 -0
  84. package/src/vector.ts +3 -3
  85. package/src/workflow.ts +10 -2
@@ -1958,4 +1958,468 @@ export const pt: BuilderMessages = {
1958
1958
  'us.mfa_reset_help': 'Remove os aplicativos autenticadores e os códigos de recuperação de {user} e encerra todas as sessões. Onde um aplicativo exigir login em duas etapas, um novo aplicativo será adicionado no próximo login. Registrado.',
1959
1959
  'us.mfa_reset_done': 'O login em duas etapas de {user} foi redefinido.',
1960
1960
  'us.mfa_reason_needed': 'Informe um motivo para a redefinição.',
1961
+ // ------------------------------------------------------------ Mail queue (sprint 152)
1962
+ 'mq.title': 'Fila de e-mail',
1963
+ 'mq.refused': 'Somente administradores e administradores do espaço de trabalho veem a fila de e-mail.',
1964
+ 'mq.period.24': 'Últimas 24 horas',
1965
+ 'mq.period.48': 'Últimas 48 horas',
1966
+ 'mq.period.168': 'Últimos 7 dias',
1967
+ 'mq.period': 'Período',
1968
+ 'mq.workspace': 'Espaço de trabalho',
1969
+ 'mq.all_workspaces': 'Todos os espaços de trabalho',
1970
+ 'mq.app': 'Aplicativo',
1971
+ 'mq.all_apps': 'Todos os aplicativos',
1972
+ 'mq.intro_ws': 'Entrega dos e-mails do espaço de trabalho {workspace}: o que foi enfileirado, enviado e falhou, quais e-mails estão sendo repetidos, quanto tempo os provedores levaram e as falhas com a resposta do provedor. Os e-mails são mantidos por 30 dias.',
1973
+ 'mq.intro_all': 'Entrega dos e-mails de todos os espaços de trabalho: o que foi enfileirado, enviado e falhou, quais e-mails estão sendo repetidos, quanto tempo os provedores levaram e as falhas com a resposta do provedor. Os e-mails são mantidos por 30 dias.',
1974
+ 'mq.only_yours': 'Você vê apenas os aplicativos do seu espaço de trabalho.',
1975
+ 'mq.stat.queued': 'na fila agora',
1976
+ 'mq.stat.retrying': 'sendo repetidos',
1977
+ 'mq.stat.sending': 'sendo enviados',
1978
+ 'mq.stat.sent': 'enviados',
1979
+ 'mq.stat.failed': 'falharam',
1980
+ 'mq.stat.delivered': 'entregues',
1981
+ 'mq.stat.avg': 'chamada média ao provedor',
1982
+ 'mq.per_hour': 'Por hora',
1983
+ 'mq.col.hour': 'Hora (UTC)',
1984
+ 'mq.col.hour_short': 'Hora',
1985
+ 'mq.col.queued': 'Na fila',
1986
+ 'mq.col.sent': 'Enviados',
1987
+ 'mq.col.failed': 'Falharam',
1988
+ 'mq.col.retrying': 'Repetindo',
1989
+ 'mq.none_period': 'Nenhum e-mail neste período.',
1990
+ 'mq.slowest': 'Chamadas mais lentas ao provedor',
1991
+ 'mq.col.when': 'Quando (UTC)',
1992
+ 'mq.col.when_short': 'Quando',
1993
+ 'mq.col.service': 'Serviço',
1994
+ 'mq.col.status': 'Status',
1995
+ 'mq.col.time': 'Tempo',
1996
+ 'mq.status.sent': 'enviado',
1997
+ 'mq.status.error': 'erro',
1998
+ 'mq.status.retrying': 'repetindo',
1999
+ 'mq.status.sending': 'enviando',
2000
+ 'mq.status.cancelled': 'cancelado',
2001
+ 'mq.none_calls': 'Nenhuma chamada ao provedor neste período.',
2002
+ 'mq.per_app': 'Por espaço de trabalho e aplicativo',
2003
+ 'mq.col.average': 'Média',
2004
+ 'mq.col.slowest': 'Mais lento',
2005
+ 'mq.failures': 'Falhas',
2006
+ 'mq.failures_intro': 'E-mails que não serão tentados de novo: o provedor os recusou, ou falharam {n} vezes. {retry} os coloca de novo na fila com novas tentativas; {purge} os exclui.',
2007
+ 'mq.col.failed_at': 'Falhou (UTC)',
2008
+ 'mq.col.to': 'Para',
2009
+ 'mq.col.subject': 'Assunto',
2010
+ 'mq.col.answer': 'Resposta do provedor',
2011
+ 'mq.col.actions': 'Ações',
2012
+ 'mq.queued_at': 'enfileirado {when}',
2013
+ 'mq.attempts_one': '{n} tentativa',
2014
+ 'mq.attempts': '{n} tentativas',
2015
+ 'mq.retry': 'Repetir',
2016
+ 'mq.purge': 'Excluir',
2017
+ 'mq.purge_confirm': 'Excluir este e-mail?',
2018
+ 'mq.none_failed': 'Nenhum e-mail com falha.',
2019
+ 'mq.retry_all': 'Repetir todos com falha',
2020
+ 'mq.purge_all': 'Excluir todos com falha',
2021
+ 'mq.purge_all_confirm': 'Excluir todos os e-mails com falha mostrados aqui?',
2022
+ 'mq.requeued': 'O e-mail está na fila de novo.',
2023
+ 'mq.changed': 'O e-mail mudou nesse meio-tempo.',
2024
+ 'mq.deleted': 'O e-mail foi excluído.',
2025
+ 'mq.only_done': 'Só é possível excluir e-mails enviados, com falha ou cancelados.',
2026
+ 'mq.n_requeued_one': '{n} e-mail colocado na fila de novo.',
2027
+ 'mq.n_requeued': '{n} e-mails colocados na fila de novo.',
2028
+ 'mq.n_deleted_one': '{n} e-mail excluído.',
2029
+ 'mq.n_deleted': '{n} e-mails excluídos.',
2030
+ // ------------------------------------------------------------ Network access (sprint 152)
2031
+ 'na.title': 'Acesso à rede',
2032
+ 'na.refused': 'Somente administradores e administradores do espaço de trabalho gerenciam o acesso à rede.',
2033
+ 'na.none': 'Nenhum.',
2034
+ 'na.url_invalid': 'A URL não é válida.',
2035
+ 'na.url_ok': '{host} pode ser chamado pelos aplicativos deste espaço de trabalho (o endereço resolvido é verificado no momento da chamada).',
2036
+ 'na.intro': 'Quais serviços web os aplicativos podem chamar: {web_request}, fontes de dados REST, o processo e a etapa de fluxo de trabalho Invoke API, endpoints de token de credenciais web, armazenamento de objetos e catálogos de fontes REST. A lista da instalação vale para todos os espaços de trabalho; a lista própria de um espaço de trabalho só pode restringi-la, nunca ampliá-la. Endereços privados e de loopback continuam recusados, a menos que a instalação os permita, seja o que for que um espaço de trabalho liste.',
2037
+ 'na.workspace': 'Espaço de trabalho {name}',
2038
+ 'na.outgoing': 'Chamadas de saída dos aplicativos deste espaço de trabalho',
2039
+ 'na.any_host': 'Qualquer host que a instalação permita',
2040
+ 'na.only_hosts': 'Somente os hosts abaixo (e a instalação também precisa permiti-los)',
2041
+ 'na.hosts': 'Hosts',
2042
+ 'na.hosts_help': 'Um por linha: {a}, {b} para os seus subdomínios, {c} para uma única porta. Sem esquema nem caminho. Restrito sem hosts: nenhuma chamada de saída.',
2043
+ 'na.unreachable': 'Fora da lista da instalação, portanto nunca acessível: {hosts}.',
2044
+ 'na.servers_on_hosts': 'Servidores remotos nesses hosts: {list}.',
2045
+ 'na.save': 'Salvar',
2046
+ 'na.installation': 'Instalação',
2047
+ 'na.installation_note': 'Definido no ambiente do servidor pelos administradores ({env}).',
2048
+ 'na.any_public': 'Qualquer host público ({star}).',
2049
+ 'na.private': 'Hosts privados',
2050
+ 'na.private_note': 'Hosts em endereços privados ou de loopback que podem ser chamados ({env}).',
2051
+ 'na.servers': 'Servidores remotos',
2052
+ 'na.servers_intro': 'Os hosts que os {link} deste espaço de trabalho representam agora: as fontes de dados REST, catálogos e serviços de IA de um servidor chamam este host.',
2053
+ 'na.servers_link': 'servidores remotos',
2054
+ 'na.col.server': 'Servidor',
2055
+ 'na.col.host': 'Host',
2056
+ 'na.col.from': 'Origem',
2057
+ 'na.col.called': 'Seria chamado',
2058
+ 'na.host_none': 'nenhum',
2059
+ 'na.base_url': 'URL base',
2060
+ 'na.no': 'não',
2061
+ 'na.yes': 'sim',
2062
+ 'na.no_servers': 'Nenhum servidor remoto.',
2063
+ 'na.check': 'Verificar uma URL',
2064
+ 'na.url': 'URL',
2065
+ 'na.check_btn': 'Verificar',
2066
+ 'na.check_note': 'Nada é chamado: isto aplica as listas à URL como estão agora.',
2067
+ 'na.workspaces': 'Espaços de trabalho',
2068
+ 'na.col.workspace': 'Espaço de trabalho',
2069
+ 'na.col.outgoing': 'Chamadas de saída',
2070
+ 'na.n_hosts_one': '{n} host',
2071
+ 'na.n_hosts': '{n} hosts',
2072
+ 'na.inst_list': 'a lista da instalação',
2073
+ 'na.ws_list': 'a lista do espaço de trabalho',
2074
+ 'na.refusals': 'Chamadas recusadas',
2075
+ 'na.refusals_intro': 'As últimas 100 chamadas deste espaço de trabalho que uma lista recusou (mantidas por 7 dias). O log de depuração do aplicativo também as tem.',
2076
+ 'na.col.when': 'Quando (UTC)',
2077
+ 'na.col.when_short': 'Quando',
2078
+ 'na.col.app': 'Aplicativo',
2079
+ 'na.col.call': 'Chamada',
2080
+ 'na.col.refused_by': 'Recusada por',
2081
+ 'na.no_refusals': 'Nenhuma chamada recusada.',
2082
+ 'na.saved_only': 'Salvo: os aplicativos deste espaço de trabalho chamam apenas estes hosts.',
2083
+ 'na.saved_none': 'Salvo: os aplicativos deste espaço de trabalho não chamam nenhum host.',
2084
+ 'na.saved_inst': 'Salvo: vale a lista da instalação.',
2085
+ // ------------------------------------------------------------ Workspace utilities and dashboard (sprint 152)
2086
+ 'wu.title': 'Utilitários do espaço de trabalho',
2087
+ 'wu.users': 'Usuários',
2088
+ 'wu.users_text': 'Contas das pessoas que usam os aplicativos e o acesso delas.',
2089
+ 'wu.app_groups': 'Grupos de aplicativos',
2090
+ 'wu.app_groups_text': 'Organize os aplicativos deste espaço de trabalho em grupos.',
2091
+ 'wu.gallery': 'Galeria de aplicativos',
2092
+ 'wu.gallery_text': 'Aplicativos de exemplo e iniciais para instalar, e os modelos deste espaço de trabalho.',
2093
+ 'wu.providers': 'Provedores de identidade',
2094
+ 'wu.providers_text': 'Login com OpenID Connect e SAML.',
2095
+ 'wu.ldap': 'Diretórios LDAP',
2096
+ 'wu.ldap_text': 'Entrar com contas do diretório.',
2097
+ 'wu.password_policy': 'Política de senhas',
2098
+ 'wu.password_policy_text': 'Comprimento, complexidade e validade das senhas.',
2099
+ 'wu.developers': 'Desenvolvedores',
2100
+ 'wu.developers_text': 'Quem pode usar este construtor.',
2101
+ 'wu.sql': 'SQL Workshop',
2102
+ 'wu.sql_text': 'Execute SQL, navegue pelos objetos e carregue dados.',
2103
+ 'wu.backups': 'Gerenciar backups',
2104
+ 'wu.backups_text': 'Os backups de todos os aplicativos deste espaço de trabalho; faça backup de todos de uma vez.',
2105
+ 'wu.files': 'Arquivos estáticos do espaço de trabalho',
2106
+ 'wu.files_text': 'CSS, JavaScript, imagens e fontes que todo aplicativo deste espaço de trabalho pode carregar ({tag}).',
2107
+ 'wu.servers': 'Servidores remotos',
2108
+ 'wu.servers_text': 'URLs base nomeadas para fontes de dados REST, catálogos e serviços de IA: altere um valor para mover todos.',
2109
+ 'wu.remote_dbs': 'Bancos de dados remotos',
2110
+ 'wu.remote_dbs_text': 'As tabelas de outro banco PostgreSQL como tabelas externas (postgres_fdw) que os aplicativos consultam como as próprias (administradores).',
2111
+ 'wu.credentials': 'Credenciais web',
2112
+ 'wu.credentials_text': 'Chaves e clientes OAuth2 que os aplicativos deste espaço de trabalho usam pelo nome (segredos criptografados, somente gravação).',
2113
+ 'wu.catalogs': 'Catálogos de fontes REST',
2114
+ 'wu.catalogs_text': 'Serviços web descritos uma vez para o espaço de trabalho (por ex., a partir de um documento OpenAPI); os aplicativos criam fontes de dados REST a partir deles.',
2115
+ 'wu.export': 'Exportar e importar',
2116
+ 'wu.export_text': 'Os componentes deste espaço de trabalho em um arquivo: configurações, desenvolvedores, grupos, links, catálogos, scripts, blueprints (administradores do espaço de trabalho).',
2117
+ 'wu.dashboard': 'Painel',
2118
+ 'wu.dashboard_text': 'Uso e problemas em todo o espaço de trabalho.',
2119
+ 'wu.instance': 'Configurações da instância',
2120
+ 'wu.instance_text': 'Duração da sessão, limitação de logins e a configuração do servidor (administradores).',
2121
+ 'wu.workspaces': 'Espaços de trabalho',
2122
+ 'wu.workspaces_text': 'Grupos de aplicativos e seus desenvolvedores (administradores).',
2123
+ 'wu.workspace': 'Espaço de trabalho {name}',
2124
+ 'wu.workspace_text': 'Nome, desenvolvedores, preferências e links de extensão (administradores do espaço de trabalho).',
2125
+ 'wu.ui_defaults': 'Padrões da interface',
2126
+ 'wu.ui_defaults_text': 'Rótulos, máscaras de formato, ajuda e listas de valores por coluna de tabela, usados pelos assistentes de página.',
2127
+ 'wu.icons': 'Ícones',
2128
+ 'wu.icons_text': 'Navegue pelos ícones do seletor de ícones.',
2129
+ 'wu.vectors': 'Provedores de vetores',
2130
+ 'wu.vectors_text': 'Embeddings para busca por significado: os provedores de vetores dos aplicativos, suas colunas de vetores e se o pgvector está instalado.',
2131
+ 'wu.ai': 'Serviços de IA',
2132
+ 'wu.ai_text': 'Claude, OpenAI, Gemini e serviços compatíveis com OpenAI para os aplicativos: modelos, chaves, limites e uso (administradores).',
2133
+ 'wu.mail': 'Serviços de e-mail',
2134
+ 'wu.mail_text': 'SMTP, Microsoft 365, Amazon SES, Resend, Postmark, SendGrid ou Mailgun para os e-mails dos aplicativos (administradores).',
2135
+ 'wu.otel': 'OpenTelemetry',
2136
+ 'wu.otel_text': 'Traces, logs e métricas para o seu próprio monitoramento por meio de um OpenTelemetry Collector; /metrics para Prometheus (administradores).',
2137
+ 'wu.installation': 'Instalação',
2138
+ 'wu.installation_text': 'Versão, execuções de instalação e atualização, migrações aplicadas (administradores).',
2139
+ 'wu.about': 'Sobre',
2140
+ 'wu.about_text': 'Os utilitários do espaço de trabalho reúnem o que os aplicativos deste espaço de trabalho compartilham: usuários e login, grupos, a galeria e relatórios entre aplicativos.',
2141
+ 'wu.learn_more': 'Saiba mais …',
2142
+ 'wu.cross_app': 'Relatórios entre aplicativos',
2143
+ 'wu.side': 'Sobre e relatórios',
2144
+ 'wd.title': 'Painel do espaço de trabalho',
2145
+ 'wd.crumb': 'Painel',
2146
+ 'wd.apps': 'aplicativos',
2147
+ 'wd.pages': 'páginas',
2148
+ 'wd.accounts': 'contas ativas',
2149
+ 'wd.views': 'visualizações de página (24 h)',
2150
+ 'wd.users': 'usuários distintos (24 h)',
2151
+ 'wd.failures': 'logins com falha / bloqueados (24 h)',
2152
+ 'wd.problems': 'erros / acesso negado (24 h)',
2153
+ 'wd.per_app': 'Aplicativos (7 dias)',
2154
+ 'wd.col.app': 'Aplicativo',
2155
+ 'wd.col.views_day': 'Visualizações (24 h)',
2156
+ 'wd.col.views_week': 'Visualizações (7 dias)',
2157
+ 'wd.col.users': 'Usuários',
2158
+ 'wd.col.avg': 'ms méd.',
2159
+ 'wd.col.problems': 'Erros / negados',
2160
+ 'wd.activity': 'Atividade',
2161
+ // ------------------------------------------------------------ Instance settings (sprint 152)
2162
+ 'ins.title': 'Configurações da instância',
2163
+ 'ins.refused': 'Somente administradores alteram as configurações da instância.',
2164
+ 'ins.intro': 'Configurações para todos os aplicativos e o construtor desta instalação. Um valor definido aqui prevalece sobre a variável de ambiente; vazio usa a variável de ambiente ou o padrão. Os outros servidores desta instalação aplicam uma alteração em até 30 segundos.',
2165
+ 'ins.sessions': 'Sessões e login',
2166
+ 'ins.in_effect': 'Em vigor: {value} ({origin}; {env}, padrão {default}).',
2167
+ 'ins.origin.builder': 'definido aqui',
2168
+ 'ins.origin.environment': 'variável de ambiente',
2169
+ 'ins.origin.default': 'padrão',
2170
+ 'ins.save': 'Salvar',
2171
+ 'ins.checks': 'Verificações de bloqueio',
2172
+ 'ins.attention_one': '{n} delas precisa de atenção.',
2173
+ 'ins.attention': '{n} delas precisam de atenção.',
2174
+ 'ins.nothing': 'Nada precisa de atenção.',
2175
+ 'ins.checks_cli': 'As mesmas verificações rodam no servidor com {cmd}; {url} mostra quais chaves de acesso um novo endereço quebraria.',
2176
+ 'ins.level.ok': 'OK',
2177
+ 'ins.level.info': 'Observação',
2178
+ 'ins.level.warning': 'Aviso',
2179
+ 'ins.level.error': 'Erro',
2180
+ 'ins.have_copy': 'Tenho uma cópia desta chave',
2181
+ 'ins.configuration': 'Configuração',
2182
+ 'ins.config_intro': 'Variáveis de ambiente deste servidor (capítulo 1 do guia). Os segredos mostram apenas se estão definidos.',
2183
+ 'ins.col.variable': 'Variável',
2184
+ 'ins.col.value': 'Valor',
2185
+ 'ins.col.purpose': 'Finalidade',
2186
+ 'ins.backup_ok': 'Backup da chave da instância confirmado.',
2187
+ 'ins.no_key': 'PGKILN_SECRET_KEY não está definida.',
2188
+ 'ins.saved': 'Configurações da instância salvas.',
2189
+ // ------------------------------------------------------------ LDAP directories (sprint 152)
2190
+ 'ldap.title': 'Diretórios LDAP',
2191
+ 'ldap.server': 'Servidor',
2192
+ 'ldap.name': 'Nome',
2193
+ 'ldap.name_help': 'em minúsculas, por ex. corp ou ad',
2194
+ 'ldap.display_name': 'Nome de exibição',
2195
+ 'ldap.url': 'URL',
2196
+ 'ldap.url_help': 'ldaps:// (TLS) ou ldap://, com StartTLS abaixo. ldap:// simples envia senhas sem criptografia.',
2197
+ 'ldap.bind_dn': 'DN da conta de serviço',
2198
+ 'ldap.bind_dn_help': 'Procura usuários (e grupos). Vazio: uma busca anônima.',
2199
+ 'ldap.bind_password': 'Senha da conta de serviço',
2200
+ 'ldap.password_stored': 'Há uma senha armazenada. Deixe vazio para mantê-la.',
2201
+ 'ldap.start_tls': 'StartTLS (para URLs ldap://)',
2202
+ 'ldap.tls_verify': 'Verificar o certificado do servidor',
2203
+ 'ldap.tls_verify_help': 'Desative apenas para servidores de teste com certificados autoassinados.',
2204
+ 'ldap.remove_password': 'Remover a senha armazenada (busca anônima)',
2205
+ 'ldap.users': 'Usuários',
2206
+ 'ldap.user_base': 'Base de busca de usuários',
2207
+ 'ldap.user_filter': 'Filtro de usuários',
2208
+ 'ldap.user_filter_help': '{username} é substituído pelo nome de usuário com escape. Active Directory: {ad}',
2209
+ 'ldap.username_attr': 'Atributo do nome de usuário',
2210
+ 'ldap.username_attr_help': 'O nome de usuário do pgkiln; AD: sAMAccountName',
2211
+ 'ldap.display_attr': 'Atributo do nome de exibição',
2212
+ 'ldap.email_attr': 'Atributo de e-mail',
2213
+ 'ldap.auto_create': 'Criar contas automaticamente no primeiro login',
2214
+ 'ldap.auto_create_help': 'Caso contrário, só pessoas com uma conta existente (mesmo nome de usuário) podem entrar.',
2215
+ 'ldap.groups': 'Grupos (mapeados para funções no controle de acesso de cada aplicativo)',
2216
+ 'ldap.group_attr': 'Atributo de grupo do usuário',
2217
+ 'ldap.group_attr_help': 'DNs de grupos; o primeiro valor de cada um é o nome do grupo. Vazio: não usado.',
2218
+ 'ldap.group_base': 'Base de busca de grupos',
2219
+ 'ldap.group_base_help': 'Opcional: procurar grupos também.',
2220
+ 'ldap.group_filter': 'Filtro de grupos',
2221
+ 'ldap.group_filter_help': '{dn}: o DN do usuário, {username}: o nome de usuário (ambos com escape).',
2222
+ 'ldap.group_name_attr': 'Atributo do nome do grupo',
2223
+ 'ldap.enabled': 'Ativado',
2224
+ 'ldap.add': 'Adicionar diretório',
2225
+ 'ldap.save': 'Salvar',
2226
+ 'ldap.intro': 'OpenLDAP, Active Directory e outros servidores LDAP. O formulário de login de um aplicativo verifica primeiro as senhas locais e depois os diretórios ativados em {where}. Os grupos do diretório são mapeados para funções no {access} de cada aplicativo.',
2227
+ 'ldap.where': 'Configurações → Métodos de login',
2228
+ 'ldap.access': 'controle de acesso',
2229
+ 'ldap.directories': 'Diretórios',
2230
+ 'ldap.col.directory': 'Diretório',
2231
+ 'ldap.col.used_by': 'Usado por',
2232
+ 'ldap.col.linked': 'Contas vinculadas',
2233
+ 'ldap.col.status': 'Status',
2234
+ 'ldap.no_apps': 'nenhum aplicativo',
2235
+ 'ldap.status_enabled': 'ativado',
2236
+ 'ldap.status_disabled': 'desativado',
2237
+ 'ldap.status_auto': 'criação automática',
2238
+ 'ldap.none': 'Ainda não há diretórios LDAP.',
2239
+ 'ldap.settings': 'Configurações',
2240
+ 'ldap.delete_confirm': 'Excluir {name}? Os vínculos com as contas são removidos; as contas permanecem.',
2241
+ 'ldap.delete': 'Excluir diretório',
2242
+ 'ldap.test': 'Testar conexão',
2243
+ 'ldap.test_intro': 'Conecta, autentica com a conta de serviço (ou anonimamente) e verifica a base de busca; com um nome de usuário, procura o usuário com o filtro. Nenhuma senha é verificada.',
2244
+ 'ldap.test_username': 'Nome de usuário (opcional)',
2245
+ 'ldap.test_username_label': 'Nome de usuário a procurar',
2246
+ 'ldap.test_btn': 'Testar',
2247
+ 'ldap.added': 'Diretório adicionado. Teste a conexão e depois ative-o para um aplicativo.',
2248
+ 'ldap.saved': 'Diretório salvo.',
2249
+ 'ldap.test_failed': 'O teste falhou: {error}',
2250
+ 'ldap.deleted': 'Diretório excluído.',
2251
+ // ------------------------------------------------------------ Database users (sprint 153)
2252
+ 'dbu.title': 'Usuários do banco de dados',
2253
+ 'dbu.priv.none': 'Nenhum',
2254
+ 'dbu.priv.read': 'Leitura (SELECT)',
2255
+ 'dbu.priv.write': 'Leitura e gravação',
2256
+ 'dbu.existing.none': 'Sem alteração',
2257
+ 'dbu.existing.read': 'Conceder leitura',
2258
+ 'dbu.existing.write': 'Conceder leitura e gravação',
2259
+ 'dbu.existing.revoke': 'Revogar tudo',
2260
+ 'dbu.pw.none': 'Sem senha',
2261
+ 'dbu.pw.set': 'Definir uma senha',
2262
+ 'dbu.pw.keep': 'Manter a senha',
2263
+ 'dbu.pw.new': 'Definir uma nova senha',
2264
+ 'dbu.pw.remove': 'Remover a senha',
2265
+ 'dbu.role': 'Função',
2266
+ 'dbu.name': 'Nome',
2267
+ 'dbu.name_help': 'Letras, dígitos, _ e $; nomes que começam com pg_ ou pgkiln são reservados.',
2268
+ 'dbu.sign_in': 'Login',
2269
+ 'dbu.can_login': 'Pode entrar (LOGIN)',
2270
+ 'dbu.can_login_help': 'Uma função sem isto é uma função de grupo: outros recebem os privilégios dela sendo membros.',
2271
+ 'dbu.password': 'Senha',
2272
+ 'dbu.password_help': 'Você digita a senha na próxima etapa, depois de revisar o SQL. Ela é armazenada como verificador SCRAM-SHA-256 e nunca é exibida.',
2273
+ 'dbu.valid_until': 'Válido até',
2274
+ 'dbu.valid_until_help': 'A senha deixa de funcionar após esta data (VALID UNTIL). Vazio: não expira.',
2275
+ 'dbu.conn_limit': 'Limite de conexões',
2276
+ 'dbu.conn_limit_help': 'Vazio: sem limite.',
2277
+ 'dbu.search_path': 'Esquema padrão (caminho de busca)',
2278
+ 'dbu.search_path_help': 'Esquemas, separados por vírgulas, para as sessões desta função neste banco. Vazio: o padrão do servidor.',
2279
+ 'dbu.comment': 'Comentário',
2280
+ 'dbu.member_of': 'Membro de',
2281
+ 'dbu.member_of_intro': 'A função recebe os privilégios das funções de que é membro. As funções do próprio pgkiln, superusuários, funções de login e as funções predefinidas que acessam os arquivos do servidor não podem ser concedidas aqui.',
2282
+ 'dbu.no_groups': 'Não há funções de grupo para conceder.',
2283
+ 'dbu.schemas': 'Esquemas',
2284
+ 'dbu.schemas_intro': '{usage} permite que a função use os objetos de um esquema (até onde os privilégios deles permitirem), {create} criar objetos nele. {future} são privilégios padrão nas tabelas (e, para gravação, sequências) que a conexão proprietária do pgkiln criar ali daqui em diante; {existing} concede ou revoga uma vez nas tabelas que existem agora. Os esquemas do próprio pgkiln não são listados.',
2285
+ 'dbu.col.schema': 'Esquema',
2286
+ 'dbu.col.usage': 'Uso',
2287
+ 'dbu.col.create': 'Criar',
2288
+ 'dbu.col.future': 'Tabelas futuras',
2289
+ 'dbu.col.existing': 'Tabelas existentes',
2290
+ 'dbu.usage_on': 'Uso de {schema}',
2291
+ 'dbu.create_in': 'Criar em {schema}',
2292
+ 'dbu.future_in': 'Tabelas futuras em {schema}',
2293
+ 'dbu.existing_in': 'Tabelas existentes em {schema}',
2294
+ 'dbu.custom': 'Como estão (personalizado)',
2295
+ 'dbu.no_schemas': 'Nenhum esquema.',
2296
+ 'dbu.review': 'Revisar SQL',
2297
+ 'dbu.cancel': 'Cancelar',
2298
+ 'dbu.sql': 'SQL',
2299
+ 'dbu.sql_intro': 'Estas instruções rodam em uma transação quando você as aplica: todas ou nenhuma.',
2300
+ 'dbu.sql_masked': 'A senha aparece como \'********\': o pgkiln envia ao PostgreSQL apenas o verificador SCRAM-SHA-256.',
2301
+ 'dbu.generated_sql': 'SQL gerado',
2302
+ 'dbu.nothing_sql': 'Nada a alterar: a função está como o formulário diz.',
2303
+ 'dbu.confirm_password': 'Confirmar senha',
2304
+ 'dbu.password_note': 'Pelo menos 8 caracteres. Ela recebe hash do pgkiln antes de chegar ao banco e não é mantida.',
2305
+ 'dbu.apply': 'Aplicar',
2306
+ 'dbu.back_form': 'Voltar ao formulário',
2307
+ 'dbu.tag.in_use': 'em uso',
2308
+ 'dbu.tag.superuser': 'superusuário',
2309
+ 'dbu.tag.bypassrls': 'ignora RLS',
2310
+ 'dbu.tag.createrole': 'criar funções',
2311
+ 'dbu.tag.createdb': 'criar BD',
2312
+ 'dbu.tag.replication': 'replicação',
2313
+ 'dbu.never': 'nunca',
2314
+ 'dbu.expired': 'expirado',
2315
+ 'dbu.in_days_one': 'em {n} dia',
2316
+ 'dbu.in_days': 'em {n} dias',
2317
+ 'dbu.f.all': 'Todas as funções',
2318
+ 'dbu.f.login': 'Pode entrar',
2319
+ 'dbu.f.expiring': 'Senha expira em até 30 dias',
2320
+ 'dbu.f.bypassrls': 'Ignora a segurança em nível de linha',
2321
+ 'dbu.f.owners': 'Sem login, mas donos de objetos',
2322
+ 'dbu.f.pgkiln': 'Do próprio pgkiln',
2323
+ 'dbu.list_intro': 'As funções PostgreSQL deste servidor (pg_roles), sem as funções predefinidas pg_.',
2324
+ 'dbu.create_user': 'Criar usuário do banco de dados',
2325
+ 'dbu.filters': 'Filtros',
2326
+ 'dbu.search_roles': 'Pesquisar funções',
2327
+ 'dbu.search': 'Pesquisar',
2328
+ 'dbu.col.attributes': 'Atributos',
2329
+ 'dbu.col.connections': 'Conexões',
2330
+ 'dbu.col.owns': 'Possui',
2331
+ 'dbu.yes': 'Sim',
2332
+ 'dbu.no': 'Não',
2333
+ 'dbu.no_limit': 'sem limite',
2334
+ 'dbu.owns_schemas': 'esquemas {list}',
2335
+ 'dbu.n_objects_one': '{n} objeto',
2336
+ 'dbu.n_objects': '{n} objetos',
2337
+ 'dbu.nothing': 'nada',
2338
+ 'dbu.elsewhere': '(+{n} em outro lugar)',
2339
+ 'dbu.no_roles': 'Nenhuma função.',
2340
+ 'dbu.list_note': 'O PostgreSQL não registra quando uma função foi criada. As funções {pgkiln} são as conexões e funções do próprio pgkiln: são mostradas, não alteradas aqui. Funções {in_use} por um aplicativo ou um espaço de trabalho isolado podem ser alteradas, mas não excluídas.',
2341
+ 'dbu.details': 'Detalhes',
2342
+ 'dbu.no_login': 'Sem login (uma função de grupo)',
2343
+ 'dbu.members': 'Membros',
2344
+ 'dbu.used_by': 'Usado por',
2345
+ 'dbu.none': 'nenhum',
2346
+ 'dbu.owned_first': '{n} objetos, os primeiros {first}:',
2347
+ 'dbu.nothing_here': 'nada neste banco de dados',
2348
+ 'dbu.owned_other': '{n} em outros bancos ou compartilhados',
2349
+ 'dbu.protected': '{name} é uma das funções do próprio pgkiln (sua conexão proprietária ou de execução, uma função pgkiln_ ou o superusuário inicial): o pgkiln precisa dela como está, por isso ela não é alterada nem excluída aqui.',
2350
+ 'dbu.role_title': 'Função {name}',
2351
+ 'dbu.drop_role_link': 'Excluir função…',
2352
+ 'dbu.used_change_only_one': '{users} usa esta função: ela pode ser alterada, não excluída.',
2353
+ 'dbu.used_change_only': '{users} usam esta função: ela pode ser alterada, não excluída.',
2354
+ 'dbu.create_title': 'Criar usuário do banco de dados {name}',
2355
+ 'dbu.change_title': 'Alterar a função {name}',
2356
+ 'dbu.crumb.create': 'Criar',
2357
+ 'dbu.crumb.review': 'Revisar',
2358
+ 'dbu.crumb.drop': 'Excluir',
2359
+ 'dbu.exists': 'Já existe uma função chamada {name}.',
2360
+ 'dbu.changed_since': 'As instruções mudaram desde que você as revisou (a função ou o formulário mudou): revise-as de novo.',
2361
+ 'dbu.nothing_change': 'Nada a alterar.',
2362
+ 'dbu.rolled_back': '{nothing}: as instruções rodaram em uma transação, que foi revertida.',
2363
+ 'dbu.nothing_changed': 'Nada foi alterado',
2364
+ 'dbu.created_one': 'Função {name} criada: {n} instrução.',
2365
+ 'dbu.created': 'Função {name} criada: {n} instruções.',
2366
+ 'dbu.changed_one': 'Função {name} alterada: {n} instrução.',
2367
+ 'dbu.changed': 'Função {name} alterada: {n} instruções.',
2368
+ 'dbu.drop_title': 'Excluir a função {name}',
2369
+ 'dbu.drop_refused_one': '{users} usa {name}: ela não é excluída enquanto isso.',
2370
+ 'dbu.drop_refused': '{users} usam {name}: ela não é excluída enquanto isso.',
2371
+ 'dbu.owns_here_one': '{name} possui {n} objeto neste banco de dados',
2372
+ 'dbu.owns_here': '{name} possui {n} objetos neste banco de dados',
2373
+ 'dbu.owns_elsewhere': 'e {n} em outros bancos ou compartilhados (bancos de dados, tablespaces)',
2374
+ 'dbu.reassign_note': 'Reatribua-os a outra função ou exclua-os com a função.',
2375
+ 'dbu.elsewhere_note': 'Objetos em outros bancos precisam ser reatribuídos ou excluídos lá primeiro, ou DROP ROLE falha.',
2376
+ 'dbu.owned_objects': 'Objetos possuídos',
2377
+ 'dbu.objects_it_owns': 'Objetos que ela possui',
2378
+ 'dbu.reassign_to': 'Reatribuir a {name}',
2379
+ 'dbu.drop_owned': 'Excluí-los com a função (DROP OWNED)',
2380
+ 'dbu.owns_nothing': 'Ela não possui nada aqui: apenas revogar seus privilégios',
2381
+ 'dbu.drop_owned_help': 'DROP OWNED também revoga os privilégios concedidos à função neste banco de dados.',
2382
+ 'dbu.drop_objects_one': 'Excluir o {n} objeto que {name} possui, com seus dados',
2383
+ 'dbu.drop_objects': 'Excluir os {n} objetos que {name} possui, com seus dados',
2384
+ 'dbu.drop_confirm': 'Excluir a função {name}?',
2385
+ 'dbu.drop_btn': 'Excluir função',
2386
+ 'dbu.choose_target': 'Escolha uma função para reatribuir os objetos.',
2387
+ 'dbu.changed_since_drop': 'As instruções mudaram desde que você as revisou: revise-as de novo.',
2388
+ 'dbu.tick_box': 'Marque a caixa para excluir os objetos que {name} possui, ou reatribua-os.',
2389
+ 'dbu.dropped': 'Função {name} excluída.',
2390
+ // ------------------------------------------------------------ server-side conditions in words (sprint 154)
2391
+ 'cond.sql': 'Quando a expressão SQL é verdadeira',
2392
+ 'cond.exists': 'Quando a consulta retorna uma linha',
2393
+ 'cond.not_exists': 'Quando a consulta não retorna linhas',
2394
+ 'cond.function_body': 'Quando o corpo da função retorna true',
2395
+ 'cond.item_null': 'Quando {item} está vazio',
2396
+ 'cond.item_not_null': 'Quando {item} não está vazio',
2397
+ 'cond.item_zero': 'Quando {item} é zero',
2398
+ 'cond.item_not_zero': 'Quando {item} não é zero',
2399
+ 'cond.item_null_or_zero': 'Quando {item} está vazio ou é zero',
2400
+ 'cond.item_not_null_or_zero': 'Quando {item} não está vazio nem é zero',
2401
+ 'cond.item_equals': 'Quando {item} é {value}',
2402
+ 'cond.item_not_equals': 'Quando {item} não é {value}',
2403
+ 'cond.item_equals_item': 'Quando {item} é igual a {value}',
2404
+ 'cond.item_not_equals_item': 'Quando {item} é diferente de {value}',
2405
+ 'cond.item_in_list': 'Quando {item} é um de {value}',
2406
+ 'cond.item_not_in_list': 'Quando {item} não é nenhum de {value}',
2407
+ 'cond.request_in': 'Quando a solicitação é {value}',
2408
+ 'cond.request_not_in': 'Quando a solicitação não é {value}',
2409
+ 'cond.page_in': 'Na página {value}',
2410
+ 'cond.page_not_in': 'Fora da página {value}',
2411
+ 'cond.page_is_dialog': 'Quando a página é uma caixa de diálogo modal',
2412
+ 'cond.page_is_not_dialog': 'Quando a página não é uma caixa de diálogo modal',
2413
+ 'cond.user_signed_in': 'Quando o usuário está conectado',
2414
+ 'cond.user_public': 'Quando o usuário não está conectado',
2415
+ 'cond.language_in': 'Quando o idioma é {value}',
2416
+ 'cond.language_not_in': 'Quando o idioma não é {value}',
2417
+ 'cond.always': 'Sempre',
2418
+ 'cond.never': 'Nunca',
2419
+ // ------------------------------------------------------------ gallery: sprint 158 and 160 types
2420
+ 'gallery.region.workflow_diagram': 'Diagrama de fluxo de trabalho',
2421
+ 'gallery.item.image_upload': 'Carregamento de imagem',
2422
+ 'gallery.item.autocomplete': 'Campo de texto com preenchimento automático',
2423
+ 'gallery.item.percent_graph': 'Gráfico de percentagem',
2424
+ 'gallery.item.display_map': 'Mostrar mapa',
1961
2425
  };