@object-ui/i18n 17.2.0 → 17.5.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.
- package/CHANGELOG.md +1817 -1
- package/README.md +26 -13
- package/dist/index.d.ts +3 -1
- package/dist/index.js +14 -1
- package/dist/locales/ar.d.ts +550 -107
- package/dist/locales/ar.js +646 -156
- package/dist/locales/de.d.ts +550 -107
- package/dist/locales/de.js +661 -178
- package/dist/locales/en.d.ts +586 -143
- package/dist/locales/en.js +851 -143
- package/dist/locales/es.d.ts +550 -107
- package/dist/locales/es.js +647 -160
- package/dist/locales/fr.d.ts +550 -107
- package/dist/locales/fr.js +640 -155
- package/dist/locales/index.d.ts +5587 -1157
- package/dist/locales/ja.d.ts +550 -107
- package/dist/locales/ja.js +632 -149
- package/dist/locales/ko.d.ts +550 -107
- package/dist/locales/ko.js +638 -156
- package/dist/locales/pt.d.ts +550 -107
- package/dist/locales/pt.js +639 -157
- package/dist/locales/ru.d.ts +550 -107
- package/dist/locales/ru.js +650 -156
- package/dist/locales/zh.d.ts +588 -145
- package/dist/locales/zh.js +629 -145
- package/dist/pickLocalized.d.ts +21 -0
- package/dist/pickLocalized.js +40 -7
- package/dist/provider.d.ts +125 -1
- package/dist/provider.js +380 -4
- package/dist/useDisplayLocale.d.ts +49 -0
- package/dist/useDisplayLocale.js +55 -0
- package/dist/useObjectLabel.d.ts +8 -2
- package/dist/useObjectLabel.js +28 -8
- package/dist/useSafeTranslation.js +67 -3
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/number-display.d.ts +32 -0
- package/dist/utils/number-display.js +32 -0
- package/dist/utils/spec-formatters.d.ts +39 -13
- package/dist/utils/spec-formatters.js +3 -3
- package/package.json +5 -4
package/dist/locales/pt.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
const pt = {
|
|
2
|
+
// objectui#4467 — the impersonation banner (app-shell ImpersonationBanner).
|
|
3
|
+
// Raised by `session.impersonatedBy`, so it survives SPA reboots; it names
|
|
4
|
+
// BOTH parties because the audit trail attributes the work to the impersonated
|
|
5
|
+
// user, and the exit states its own failure rather than appearing to succeed.
|
|
6
|
+
impersonation: {
|
|
7
|
+
banner: {
|
|
8
|
+
message: 'Você está personificando {{user}} — todas as ações são registradas em nome dele.',
|
|
9
|
+
startedBy: 'Iniciado pelo administrador {{admin}}.',
|
|
10
|
+
stop: 'Parar personificação',
|
|
11
|
+
stopping: 'Encerrando…',
|
|
12
|
+
stopFailed: 'Não foi possível parar a personificação: {{reason}}',
|
|
13
|
+
notRestored: 'O servidor aceitou a solicitação, mas não restaurou sua sessão de administrador — você ainda está personificando {{user}}. Saia e entre novamente para encerrar.',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
2
16
|
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
17
|
capability: {
|
|
4
18
|
label: {
|
|
@@ -16,6 +30,25 @@ const pt = {
|
|
|
16
30
|
other: 'Outro',
|
|
17
31
|
},
|
|
18
32
|
},
|
|
33
|
+
// objectui#3546 slice six — o resumo somente leitura das facetas de
|
|
34
|
+
// autorização de PermissionFacetLink. "aba" como em list.tabs.
|
|
35
|
+
perm: {
|
|
36
|
+
facet: {
|
|
37
|
+
none: "Nenhum",
|
|
38
|
+
more: "+{{count}} mais",
|
|
39
|
+
objects: "{{count}} objetos",
|
|
40
|
+
objects_one: "{{count}} objeto",
|
|
41
|
+
fields: "{{count}} regras de campo",
|
|
42
|
+
fields_one: "{{count}} regra de campo",
|
|
43
|
+
rls: "{{count}} políticas RLS",
|
|
44
|
+
rls_one: "{{count}} política RLS",
|
|
45
|
+
tabs: "{{count}} regras de aba",
|
|
46
|
+
tabs_one: "{{count}} regra de aba",
|
|
47
|
+
adminScope: "Administração delegada configurada",
|
|
48
|
+
designInStudio: "Projetar no Studio →",
|
|
49
|
+
designInStudioHint: "Projetar no Studio",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
19
52
|
lookup: {
|
|
20
53
|
recentlyUsed: 'Usados recentemente',
|
|
21
54
|
allResults: 'Todos os resultados',
|
|
@@ -46,13 +79,12 @@ const pt = {
|
|
|
46
79
|
common: {
|
|
47
80
|
addToFavorites: "Adicionar aos favoritos",
|
|
48
81
|
removeFromFavorites: "Remover dos favoritos",
|
|
49
|
-
loading: "Carregando
|
|
82
|
+
loading: "Carregando…",
|
|
50
83
|
save: "Salvar",
|
|
51
84
|
cancel: "Cancelar",
|
|
52
85
|
delete: "Excluir",
|
|
53
86
|
edit: "Editar",
|
|
54
87
|
create: "Criar",
|
|
55
|
-
search: "Pesquisar",
|
|
56
88
|
filter: "Filtrar",
|
|
57
89
|
reset: "Redefinir",
|
|
58
90
|
confirm: "Confirmar",
|
|
@@ -76,11 +108,20 @@ const pt = {
|
|
|
76
108
|
required: "Obrigatório",
|
|
77
109
|
optional: "Opcional",
|
|
78
110
|
selectOption: "Selecionar uma opção",
|
|
79
|
-
select: "Selecionar
|
|
111
|
+
select: "Selecionar…",
|
|
80
112
|
openChat: "Abrir chat",
|
|
81
113
|
closeChat: "Fechar chat",
|
|
114
|
+
closePanel: "Fechar painel",
|
|
115
|
+
resizeDrawer: "Redimensionar painel",
|
|
116
|
+
itemCount: "{{count}} itens",
|
|
117
|
+
itemCountOne: "{{count}} item",
|
|
82
118
|
toggleSidebar: "Alternar barra lateral",
|
|
83
119
|
package: "Pacote",
|
|
120
|
+
done: "Concluído",
|
|
121
|
+
editInStudio: "Editar no Studio",
|
|
122
|
+
record: "Registro",
|
|
123
|
+
retry: "Tentar novamente",
|
|
124
|
+
printDialogHint: "Abre a caixa de diálogo de impressão do navegador (não é uma exportação para PDF)",
|
|
84
125
|
},
|
|
85
126
|
actions: {
|
|
86
127
|
decisionOutput: {
|
|
@@ -103,6 +144,7 @@ const pt = {
|
|
|
103
144
|
url: "Por favor, insira uma URL válida",
|
|
104
145
|
pattern: "O formato de {{field}} é inválido",
|
|
105
146
|
formInvalid: "Verifique os campos destacados: {{fields}}",
|
|
147
|
+
formInvalidJoiner: ", ",
|
|
106
148
|
unique: "{{field}} deve ser único",
|
|
107
149
|
type: "{{field}} deve ser um {{type}} válido",
|
|
108
150
|
},
|
|
@@ -111,6 +153,9 @@ const pt = {
|
|
|
111
153
|
submitFailed: "Não foi possível salvar. Tente novamente.",
|
|
112
154
|
discardTitle: "Descartar as alterações?",
|
|
113
155
|
discardMessage: "Você tem alterações não salvas. Se fechar este formulário agora, suas edições serão perdidas.",
|
|
156
|
+
// objectui#4024 — the create/edit dialog's `sr-only` accessible
|
|
157
|
+
// description, used when the form declares no `description` of its own.
|
|
158
|
+
dialogDescriptionFallback: "Preencha os campos do formulário e depois envie ou cancele.",
|
|
114
159
|
keepEditing: "Continuar editando",
|
|
115
160
|
discard: "Descartar",
|
|
116
161
|
conflictTitle: "Conflito ao salvar",
|
|
@@ -127,12 +172,21 @@ const pt = {
|
|
|
127
172
|
stepOf: "Etapa {{current}} de {{total}}",
|
|
128
173
|
createTitle: "Criar {{object}}",
|
|
129
174
|
editTitle: "Editar {{object}}",
|
|
175
|
+
viewTitle: "Ver {{object}}",
|
|
176
|
+
createTargetOrg: "Criação em {{org}}",
|
|
130
177
|
saveRecord: "Salvar registro",
|
|
131
178
|
create: "Criar",
|
|
132
179
|
update: "Atualizar",
|
|
133
180
|
createSuccess: "{{object}} criado",
|
|
134
181
|
updateSuccess: "{{object}} atualizado",
|
|
135
182
|
deleteSuccess: "{{object}} excluído",
|
|
183
|
+
fullscreen: {
|
|
184
|
+
title: "Editar texto",
|
|
185
|
+
description: "Edite o valor de texto completo e depois salve ou cancele as alterações.",
|
|
186
|
+
done: "Concluído",
|
|
187
|
+
toggle: "Editar {{label}} em tela cheia",
|
|
188
|
+
textFallback: "texto",
|
|
189
|
+
},
|
|
136
190
|
},
|
|
137
191
|
fields: {
|
|
138
192
|
image: {
|
|
@@ -170,7 +224,11 @@ const pt = {
|
|
|
170
224
|
richText: {
|
|
171
225
|
format: "Formato: {{format}}",
|
|
172
226
|
basicEditorHint: "Editor de texto rico (básico)",
|
|
173
|
-
placeholder: "Digite algo
|
|
227
|
+
placeholder: "Digite algo…",
|
|
228
|
+
},
|
|
229
|
+
options: {
|
|
230
|
+
empty: "Nenhuma opção disponível",
|
|
231
|
+
selectFirst: "Selecione primeiro {{fields}}",
|
|
174
232
|
},
|
|
175
233
|
objectRef: {
|
|
176
234
|
loading: "Carregando objetos…",
|
|
@@ -199,6 +257,13 @@ const pt = {
|
|
|
199
257
|
editAsJson: "Editar como JSON",
|
|
200
258
|
useVisualBuilder: "Usar o construtor visual",
|
|
201
259
|
},
|
|
260
|
+
tags: {
|
|
261
|
+
placeholder: "Digite e pressione Enter para adicionar…",
|
|
262
|
+
},
|
|
263
|
+
textarea: {
|
|
264
|
+
characterCount: "Contagem de caracteres: {{count}} de {{max}}",
|
|
265
|
+
charactersRemaining: "Caracteres restantes: {{count}}",
|
|
266
|
+
},
|
|
202
267
|
},
|
|
203
268
|
table: {
|
|
204
269
|
rowsPerPage: "Linhas por página",
|
|
@@ -225,7 +290,7 @@ const pt = {
|
|
|
225
290
|
saveAll: "Salvar tudo ({{count}})",
|
|
226
291
|
addRecord: "Adicionar registro",
|
|
227
292
|
open: "Abrir",
|
|
228
|
-
search: "Pesquisar
|
|
293
|
+
search: "Pesquisar…",
|
|
229
294
|
modified: "{{count}} linha(s) modificada(s)",
|
|
230
295
|
saveFailed: 'Falha ao salvar',
|
|
231
296
|
selected: "{{count}} selecionado(s)",
|
|
@@ -269,7 +334,7 @@ const pt = {
|
|
|
269
334
|
delete: "Excluir",
|
|
270
335
|
export: "Exportar",
|
|
271
336
|
exportAs: "Exportar como {{format}}",
|
|
272
|
-
loading: "Carregando grade
|
|
337
|
+
loading: "Carregando grade…",
|
|
273
338
|
errorLoading: "Erro ao carregar grade",
|
|
274
339
|
pullToRefresh: "Puxe para atualizar",
|
|
275
340
|
refreshing: "Atualizando…",
|
|
@@ -280,6 +345,22 @@ const pt = {
|
|
|
280
345
|
yes: "Sim",
|
|
281
346
|
no: "Não",
|
|
282
347
|
systemFields: "Sistema",
|
|
348
|
+
// objectui#4024 — column-footer aggregate prefixes, keyed by the spec's
|
|
349
|
+
// `ColumnSummary` vocabulary. `pattern` owns the label/value join so this
|
|
350
|
+
// pack controls its own separator and word order.
|
|
351
|
+
summary: {
|
|
352
|
+
pattern: "{{label}}: {{value}}",
|
|
353
|
+
count: "Contagem",
|
|
354
|
+
countEmpty: "Vazios",
|
|
355
|
+
countFilled: "Preenchidos",
|
|
356
|
+
countUnique: "Únicos",
|
|
357
|
+
percentEmpty: "Vazios",
|
|
358
|
+
percentFilled: "Preenchidos",
|
|
359
|
+
sum: "Soma",
|
|
360
|
+
avg: "Média",
|
|
361
|
+
min: "Mín.",
|
|
362
|
+
max: "Máx.",
|
|
363
|
+
},
|
|
283
364
|
toolbar: {
|
|
284
365
|
densityMode: "Densidade",
|
|
285
366
|
densityCompact: "Compacto",
|
|
@@ -393,12 +474,12 @@ const pt = {
|
|
|
393
474
|
templateName: "Nome do modelo",
|
|
394
475
|
save: "Salvar",
|
|
395
476
|
deleteTemplate: "Excluir modelo",
|
|
396
|
-
savedMapping: '
|
|
397
|
-
chooseSavedMapping: '
|
|
398
|
-
manualMapping: '—
|
|
399
|
-
transform: '
|
|
400
|
-
savedMappingHint: '
|
|
401
|
-
savedMappingPreviewNote: '
|
|
477
|
+
savedMapping: 'Mapeamento salvo:',
|
|
478
|
+
chooseSavedMapping: 'Escolher um mapeamento salvo…',
|
|
479
|
+
manualMapping: '— Mapear colunas manualmente —',
|
|
480
|
+
transform: 'Transformação',
|
|
481
|
+
savedMappingHint: 'O mapeamento "{{name}}" aplica renomeação + transformações + conversão de tipos no servidor. O mapeamento de colunas é somente leitura.',
|
|
482
|
+
savedMappingPreviewNote: 'A pré-visualização mostra suas colunas de origem; na importação, o mapeamento "{{name}}" aplica renomeação, transformações e conversão de tipos no servidor.',
|
|
402
483
|
csvColumn: "Coluna",
|
|
403
484
|
mapsTo: "Mapeia para",
|
|
404
485
|
typeMismatch: "Parece {{type}}",
|
|
@@ -458,6 +539,8 @@ const pt = {
|
|
|
458
539
|
loadErrorUnauthorizedMessage: "Sua sessão expirou ou você saiu. Entre novamente para ver estes registros.",
|
|
459
540
|
loadErrorRejectedTitle: "A consulta desta visualização foi rejeitada",
|
|
460
541
|
loadErrorRejectedMessage: "O servidor não conseguiu processar o filtro ou as opções de consulta desta visualização. Limpar os filtros costuma resolver; se a visualização estiver salva assim, um administrador precisa corrigi-la.",
|
|
542
|
+
loadErrorApiDisabledTitle: "Este objeto não está disponível pela API",
|
|
543
|
+
loadErrorApiDisabledMessage: "Esta página não consegue carregar seus registros porque o objeto não está exposto pela API. Isso é uma configuração do próprio objeto, não uma permissão — um administrador precisa habilitar o acesso via API para que esta página funcione.",
|
|
461
544
|
retry: "Tentar novamente",
|
|
462
545
|
managedBy: {
|
|
463
546
|
system: {
|
|
@@ -482,7 +565,7 @@ const pt = {
|
|
|
482
565
|
},
|
|
483
566
|
},
|
|
484
567
|
refresh: "Atualizar",
|
|
485
|
-
loading:
|
|
568
|
+
loading: "Carregando registros…",
|
|
486
569
|
recordCount: "{{count}} registros",
|
|
487
570
|
recordCountOne: "{{count}} registro",
|
|
488
571
|
addRecord: "Adicionar registro",
|
|
@@ -494,7 +577,8 @@ const pt = {
|
|
|
494
577
|
sort: "Ordenar",
|
|
495
578
|
sortRecords: "Ordenar registros",
|
|
496
579
|
sortByIdSuffix: "(por ID)",
|
|
497
|
-
sortRelationalHint: "As colunas que apontam para outro registro não são listadas: elas só podem ser ordenadas pelo ID armazenado, não pelo nome exibido na célula. Para ordenar por esse nome,
|
|
580
|
+
sortRelationalHint: "As colunas que apontam para outro registro não são listadas: elas só podem ser ordenadas pelo ID armazenado, não pelo nome exibido na célula. Para ordenar por esse nome, desnormalize-o neste objeto como um campo armazenado, gravado quando a origem muda, e ordene por ele. Não um campo de fórmula: ele é virtual, nenhuma coluna é armazenada para ele e o servidor recusa ordenar por ele.",
|
|
581
|
+
resetSortToDefault: "Restaurar o padrão da exibição",
|
|
498
582
|
group: "Agrupar",
|
|
499
583
|
groupBy: "Agrupar por",
|
|
500
584
|
export: "Exportar",
|
|
@@ -552,13 +636,16 @@ const pt = {
|
|
|
552
636
|
},
|
|
553
637
|
kanban: {
|
|
554
638
|
uncategorized: "Sem categoria",
|
|
639
|
+
columns: "colunas",
|
|
555
640
|
addCard: "Adicionar cartão",
|
|
556
641
|
addColumn: "Adicionar coluna",
|
|
557
642
|
moveCard: "Mover cartão",
|
|
558
643
|
deleteCard: "Excluir cartão",
|
|
559
644
|
deleteColumn: "Excluir coluna",
|
|
560
645
|
noCards: "Sem cartões",
|
|
561
|
-
cardTitlePlaceholder: "Digite o título do cartão
|
|
646
|
+
cardTitlePlaceholder: "Digite o título do cartão…",
|
|
647
|
+
requiredFieldsTitle: "Preencha os campos obrigatórios",
|
|
648
|
+
requiredFieldsDescription: "Esta movimentação torna os campos abaixo obrigatórios. Preencha-os para continuar.",
|
|
562
649
|
},
|
|
563
650
|
timeline: {
|
|
564
651
|
bucket: {
|
|
@@ -571,6 +658,13 @@ const pt = {
|
|
|
571
658
|
noDate: "Sem data",
|
|
572
659
|
unassigned: "Não atribuído",
|
|
573
660
|
},
|
|
661
|
+
scale: {
|
|
662
|
+
week: "Semana {{n}}",
|
|
663
|
+
quarter: "T{{quarter}} {{year}}",
|
|
664
|
+
},
|
|
665
|
+
gantt: {
|
|
666
|
+
rowLabel: "Itens",
|
|
667
|
+
},
|
|
574
668
|
},
|
|
575
669
|
gantt: {
|
|
576
670
|
viewMode: {
|
|
@@ -617,6 +711,18 @@ const pt = {
|
|
|
617
711
|
ff: "Término → Término",
|
|
618
712
|
sf: "Início → Término",
|
|
619
713
|
},
|
|
714
|
+
linkEnd: {
|
|
715
|
+
start: "Início",
|
|
716
|
+
end: "Fim",
|
|
717
|
+
},
|
|
718
|
+
link: {
|
|
719
|
+
rejected: {
|
|
720
|
+
self: "Uma tarefa não pode depender de si mesma.",
|
|
721
|
+
locked: "Esta linha está bloqueada e não pode receber uma nova dependência.",
|
|
722
|
+
group: "Uma linha de resumo não pode receber dependências: vincule uma das suas tarefas.",
|
|
723
|
+
cycle: "Esse vínculo criaria uma dependência circular.",
|
|
724
|
+
},
|
|
725
|
+
},
|
|
620
726
|
conflict: {
|
|
621
727
|
title: "Conflito de agendamento",
|
|
622
728
|
body: "Esta movimentação conflita com as restrições de dependência. Reagendar automaticamente {{count}} tarefa(s) afetada(s)?",
|
|
@@ -625,8 +731,8 @@ const pt = {
|
|
|
625
731
|
},
|
|
626
732
|
autoScheduleDlg: {
|
|
627
733
|
title: "Agendamento automático",
|
|
628
|
-
body: "Adiar {count} tarefa(s) para atender aos vínculos de dependência?",
|
|
629
|
-
skipped: "{count} tarefa(s) bloqueada(s) também violam os vínculos e foram ignoradas.",
|
|
734
|
+
body: "Adiar {{count}} tarefa(s) para atender aos vínculos de dependência?",
|
|
735
|
+
skipped: "{{count}} tarefa(s) bloqueada(s) também violam os vínculos e foram ignoradas.",
|
|
630
736
|
confirm: "Aplicar",
|
|
631
737
|
cancel: "Cancelar",
|
|
632
738
|
none: "Todas as dependências foram atendidas — nada a reagendar.",
|
|
@@ -637,6 +743,12 @@ const pt = {
|
|
|
637
743
|
over: "sobrecarregado",
|
|
638
744
|
empty: "Nenhuma tarefa para alocar.",
|
|
639
745
|
},
|
|
746
|
+
quickFilter: {
|
|
747
|
+
all: "Todos",
|
|
748
|
+
clear: "Limpar filtros",
|
|
749
|
+
empty: "Sem opções",
|
|
750
|
+
resultSummary: "Exibindo {shown} / {total} tarefas",
|
|
751
|
+
},
|
|
640
752
|
readOnly: "Somente leitura",
|
|
641
753
|
readOnlyHint: "A edição está desativada nesta visão.",
|
|
642
754
|
lockedHint: "Sem permissão de edição",
|
|
@@ -657,6 +769,7 @@ const pt = {
|
|
|
657
769
|
exportPng: "Exportar como PNG",
|
|
658
770
|
exportPdf: "Exportar PDF",
|
|
659
771
|
saveLayout: "Salvar o layout",
|
|
772
|
+
refresh: "Atualizar",
|
|
660
773
|
undo: "Desfazer",
|
|
661
774
|
redo: "Refazer",
|
|
662
775
|
prevPeriod: "Período anterior",
|
|
@@ -697,11 +810,11 @@ const pt = {
|
|
|
697
810
|
defaultBadge: "padrão",
|
|
698
811
|
tabActionsFor: "Ações de exibição para {{name}}",
|
|
699
812
|
readonlyAriaLabel: "Exibição somente leitura",
|
|
700
|
-
readonlyTooltip: "Exibição do sistema —
|
|
813
|
+
readonlyTooltip: "Exibição do sistema — definida no código, somente leitura.",
|
|
701
814
|
},
|
|
702
815
|
designer: {
|
|
703
|
-
undo:
|
|
704
|
-
redo:
|
|
816
|
+
undo: "Desfazer",
|
|
817
|
+
redo: "Refazer",
|
|
705
818
|
},
|
|
706
819
|
detail: {
|
|
707
820
|
editInlineHint: "Clique duas vezes para editar",
|
|
@@ -721,6 +834,15 @@ const pt = {
|
|
|
721
834
|
viewHistory: "Ver histórico",
|
|
722
835
|
delete: "Excluir",
|
|
723
836
|
moreActions: "Mais ações",
|
|
837
|
+
addReaction: "Adicionar reação",
|
|
838
|
+
pageHeaderActions: "Ações do cabeçalho da página",
|
|
839
|
+
emojiPicker: "Seletor de emojis",
|
|
840
|
+
reactionCount: "{{emoji}} {{count}} reações",
|
|
841
|
+
reactionCountOne: "{{emoji}} {{count}} reação",
|
|
842
|
+
recordDetail: "Detalhe do registro",
|
|
843
|
+
recordDetailWithLabel: "Detalhe de {{label}}",
|
|
844
|
+
openAsFullPage: "Abrir como página inteira",
|
|
845
|
+
recordDetailOverlay: "Sobreposição de detalhe do registro para {{title}}.",
|
|
724
846
|
addToFavorites: "Adicionar aos favoritos",
|
|
725
847
|
removeFromFavorites: "Remover dos favoritos",
|
|
726
848
|
previousRecord: "Registro anterior",
|
|
@@ -734,13 +856,15 @@ const pt = {
|
|
|
734
856
|
relatedRecords: "{{count}} registros",
|
|
735
857
|
relatedRecordOne: "{{count}} registro",
|
|
736
858
|
noRelatedRecords: "Nenhum registro relacionado encontrado",
|
|
737
|
-
loading: "Carregando
|
|
859
|
+
loading: "Carregando…",
|
|
738
860
|
copyToClipboard: "Copiar para área de transferência",
|
|
739
861
|
copied: "Copiado!",
|
|
740
862
|
deleteConfirmation: "Tem certeza de que deseja excluir este registro?",
|
|
863
|
+
deleted: "Registro excluído",
|
|
741
864
|
editRecord: "Editar registro",
|
|
742
865
|
viewAll: "Ver tudo",
|
|
743
866
|
new: "Novo",
|
|
867
|
+
add: "Adicionar",
|
|
744
868
|
emptyValue: "—",
|
|
745
869
|
comments: "Comentários",
|
|
746
870
|
searchComments: "Pesquisar comentários…",
|
|
@@ -805,6 +929,7 @@ const pt = {
|
|
|
805
929
|
loadMore: "Carregar mais",
|
|
806
930
|
edited: "(editado)",
|
|
807
931
|
via: "via {{source}}",
|
|
932
|
+
viewSource: "Ver origem",
|
|
808
933
|
replyCount: "{{count}} resposta",
|
|
809
934
|
replyCountPlural: "{{count}} respostas",
|
|
810
935
|
replyPlaceholder: "Responder…",
|
|
@@ -817,14 +942,15 @@ const pt = {
|
|
|
817
942
|
saving: "Salvando…",
|
|
818
943
|
lockedByApproval: "Bloqueado para aprovação",
|
|
819
944
|
lockedTooltip: "Este registro tem uma solicitação de aprovação pendente; a edição está bloqueada",
|
|
820
|
-
writeStrippedTitle: "
|
|
821
|
-
writeStrippedReadonly: "Somente leitura, portanto não foi
|
|
822
|
-
writeStrippedByState: "Não editável no estado atual deste registro, portanto não foi
|
|
945
|
+
writeStrippedTitle: "Salvo, mas alguns campos não foram aplicados",
|
|
946
|
+
writeStrippedReadonly: "Somente leitura, portanto não foi aplicado: {{fields}}",
|
|
947
|
+
writeStrippedByState: "Não editável no estado atual deste registro, portanto não foi aplicado: {{fields}}",
|
|
823
948
|
approvalPendingEditable: "Em aprovação · editável",
|
|
824
949
|
approvalPendingTooltip: "Este registro tem uma solicitação de aprovação pendente; esta etapa ainda permite a edição",
|
|
825
950
|
approvalProgress: "Aprovações — {{got}} de {{need}}",
|
|
826
951
|
approvalProgressGroups: "Assinaturas — {{got}} de {{need}} grupos",
|
|
827
952
|
approvalProgressLabel: "Progresso da aprovação",
|
|
953
|
+
approvalsPanelTitle: "Aprovações",
|
|
828
954
|
cancelApproval: "Cancelar aprovação",
|
|
829
955
|
cancelApprovalInFlight: "Cancelando…",
|
|
830
956
|
cancelApprovalTooltip: "Cancelar a solicitação de aprovação pendente para desbloquear o registro",
|
|
@@ -837,7 +963,7 @@ const pt = {
|
|
|
837
963
|
cancelEdit: "Descartar alterações",
|
|
838
964
|
sectionMoreDetails: "Mais detalhes",
|
|
839
965
|
concurrentUpdateTitle: "Este registro foi modificado por outra pessoa",
|
|
840
|
-
concurrentUpdateDescription: "Outro usuário salvou uma versão mais recente
|
|
966
|
+
concurrentUpdateDescription: "Outro usuário salvou, durante sua edição, uma versão mais recente que afeta {{field}}. Escolha como resolver o conflito.",
|
|
841
967
|
concurrentUpdateYourEdit: "Sua edição",
|
|
842
968
|
concurrentUpdateCurrentValue: "Valor atual",
|
|
843
969
|
concurrentUpdateUpdatedBy: "Atualizado por {{name}}",
|
|
@@ -845,9 +971,11 @@ const pt = {
|
|
|
845
971
|
concurrentUpdateReload: "Carregar versão atual",
|
|
846
972
|
concurrentUpdateOverwrite: "Sobrescrever mesmo assim",
|
|
847
973
|
concurrentUpdateCancel: "Cancelar",
|
|
974
|
+
concurrentUpdateRecordLabel: "este registro",
|
|
848
975
|
openInNewTab: "Abrir em nova aba",
|
|
849
976
|
activity: "Atividade",
|
|
850
977
|
history: "Histórico",
|
|
978
|
+
historyEmpty: "Nenhum histórico ainda",
|
|
851
979
|
editRow: "Editar",
|
|
852
980
|
deleteRow: "Excluir",
|
|
853
981
|
deleteRowConfirmation: "Excluir este registro?",
|
|
@@ -857,10 +985,13 @@ const pt = {
|
|
|
857
985
|
nextPage: "Próximo",
|
|
858
986
|
pageOf: "Página {{current}} de {{total}}",
|
|
859
987
|
sortBy: "Ordenar por",
|
|
860
|
-
filterPlaceholder: "Filtrar
|
|
988
|
+
filterPlaceholder: "Filtrar…",
|
|
861
989
|
highlightFields: "Campos principais",
|
|
862
990
|
createdBy: "Criado por",
|
|
863
991
|
updatedBy: "Atualizado por",
|
|
992
|
+
// objectui#3863 — base key. pt's third category `many` starts at a million, where
|
|
993
|
+
// the plural form is correct, so the base repeats `_other`.
|
|
994
|
+
showEmptyRelated: "+ {{count}} vazios",
|
|
864
995
|
showEmptyRelated_one: "+ {{count}} vazio",
|
|
865
996
|
showEmptyRelated_other: "+ {{count}} vazios",
|
|
866
997
|
copyEmail: "Copiar e-mail",
|
|
@@ -872,7 +1003,8 @@ const pt = {
|
|
|
872
1003
|
},
|
|
873
1004
|
chart: {
|
|
874
1005
|
noData: "Nenhum dado de gráfico disponível",
|
|
875
|
-
loading: "Carregando gráfico
|
|
1006
|
+
loading: "Carregando gráfico…",
|
|
1007
|
+
nullCategory: "(Não especificado)",
|
|
876
1008
|
},
|
|
877
1009
|
map: {
|
|
878
1010
|
searchLocations: "Pesquisar locais…",
|
|
@@ -894,8 +1026,8 @@ const pt = {
|
|
|
894
1026
|
properties: "Propriedades",
|
|
895
1027
|
connections: "Conexões",
|
|
896
1028
|
quickConnect: "Conexão rápida",
|
|
897
|
-
fromPlaceholder: "De
|
|
898
|
-
toPlaceholder: "Para
|
|
1029
|
+
fromPlaceholder: "De…",
|
|
1030
|
+
toPlaceholder: "Para…",
|
|
899
1031
|
connect: "Conectar",
|
|
900
1032
|
label: "Rótulo",
|
|
901
1033
|
type: "Tipo",
|
|
@@ -943,6 +1075,7 @@ const pt = {
|
|
|
943
1075
|
},
|
|
944
1076
|
dashboard: {
|
|
945
1077
|
noRows: "Sem linhas",
|
|
1078
|
+
loading: "Carregando…",
|
|
946
1079
|
pickMeasures: "Escolha medidas (valores) para este widget de dataset.",
|
|
947
1080
|
datasetUnsupported: "Esta fonte de dados não oferece suporte a consultas de dataset.",
|
|
948
1081
|
details: "Detalhes",
|
|
@@ -1036,7 +1169,7 @@ const pt = {
|
|
|
1036
1169
|
faviconUrl: "Favicon URL",
|
|
1037
1170
|
preview: "Pré-visualização",
|
|
1038
1171
|
complete: "Concluir",
|
|
1039
|
-
snakeCaseHint: "
|
|
1172
|
+
snakeCaseHint: "Deve ser snake_case (ex. my_app)",
|
|
1040
1173
|
modeEdit: "Editar",
|
|
1041
1174
|
modePreview: "Pré-visualizar",
|
|
1042
1175
|
modeCode: "Código",
|
|
@@ -1200,6 +1333,7 @@ const pt = {
|
|
|
1200
1333
|
},
|
|
1201
1334
|
},
|
|
1202
1335
|
console: {
|
|
1336
|
+
saveAdvisoryTitle: "Salvo — a verificação de criação gerou {{count}} recomendação(ões)",
|
|
1203
1337
|
settingsHub: {
|
|
1204
1338
|
title: "Configurações",
|
|
1205
1339
|
subtitle: "Configure seu workspace, integrações e sinalizadores de recursos.",
|
|
@@ -1266,7 +1400,7 @@ const pt = {
|
|
|
1266
1400
|
shareTitle: "Compartilhar esta conversa",
|
|
1267
1401
|
shareDisabledTitle: "Comece a conversar para habilitar o compartilhamento",
|
|
1268
1402
|
newChat: "Nova",
|
|
1269
|
-
searchChats: "Pesquisar conversas
|
|
1403
|
+
searchChats: "Pesquisar conversas…",
|
|
1270
1404
|
noChatsYet: "Ainda não há conversas",
|
|
1271
1405
|
noChatsDescription: "Inicie uma nova conversa para vê-la aqui.",
|
|
1272
1406
|
noMatchingChats: "Nenhuma conversa correspondente.",
|
|
@@ -1275,18 +1409,18 @@ const pt = {
|
|
|
1275
1409
|
deleteConversation: "Excluir conversa",
|
|
1276
1410
|
saveRename: "Salvar novo nome",
|
|
1277
1411
|
cancelRename: "Cancelar renomeação",
|
|
1278
|
-
loadingHistory: "Carregando o histórico da conversa
|
|
1412
|
+
loadingHistory: "Carregando o histórico da conversa…",
|
|
1279
1413
|
conversationReady: "Conversa pronta",
|
|
1280
1414
|
preparingConversation: "Preparando uma nova conversa",
|
|
1281
1415
|
offlineDemoMode: "Modo de demonstração off-line — lista de agentes indisponível",
|
|
1282
1416
|
sendFailedRateLimited: "Você está enviando mensagens rápido demais. Sua mensagem foi mantida abaixo — aguarde um momento e tente novamente.",
|
|
1283
1417
|
sendFailedGeneric: "Não foi possível enviar sua mensagem. Ela foi mantida abaixo — tente novamente.",
|
|
1284
|
-
askAgent: "Pergunte a {{agent}}
|
|
1418
|
+
askAgent: "Pergunte a {{agent}}…",
|
|
1285
1419
|
assistant: "Assistente",
|
|
1286
1420
|
liveCanvas: "Pré-visualização ao vivo — {{app}} (rascunho)",
|
|
1287
1421
|
liveCanvasUnlisted: "Aplicativo ao vivo — {{app}} (não listado até ser publicado)",
|
|
1288
|
-
loadingAgents: "Carregando agentes
|
|
1289
|
-
askAnything: "Pergunte qualquer coisa
|
|
1422
|
+
loadingAgents: "Carregando agentes…",
|
|
1423
|
+
askAnything: "Pergunte qualquer coisa…",
|
|
1290
1424
|
emptyTitle: "Iniciar uma conversa",
|
|
1291
1425
|
emptyDescription: "Pergunte qualquer coisa — o assistente tem acesso ao contexto do seu aplicativo atual.",
|
|
1292
1426
|
switchAssistant: "Trocar de assistente",
|
|
@@ -1389,9 +1523,60 @@ const pt = {
|
|
|
1389
1523
|
createSeed: "Gerar dados de exemplo",
|
|
1390
1524
|
createPackage: "Criar pacote de aplicativo",
|
|
1391
1525
|
},
|
|
1526
|
+
// objectui#3546 slice four — the AI console surfaces: the /ai chat page's app switcher,
|
|
1527
|
+
// connection banner and plan/publish cards, the ChatDock chrome, and the
|
|
1528
|
+
// conversation-list date buckets. `group.*` is the template-key family
|
|
1529
|
+
// `console.ai.group.${key}` (ConversationsSidebar), enumerated from the
|
|
1530
|
+
// ConversationGroupKey union — all five members, no wildcard.
|
|
1531
|
+
collapseToDock: "Recolher para o painel lateral",
|
|
1532
|
+
switchApp: "Trocar de aplicativo",
|
|
1533
|
+
switchAppLabel: "Conversas de criação por aplicativo",
|
|
1534
|
+
newApp: "Novo aplicativo",
|
|
1535
|
+
connectionWaiting: "Aguardando o servidor…",
|
|
1536
|
+
connectionStalled: "Ainda processando…",
|
|
1537
|
+
connectionOffline: "Conexão perdida — reconectando…",
|
|
1538
|
+
designingPlan: "Projetando seu aplicativo…",
|
|
1539
|
+
designingPlanHint: {
|
|
1540
|
+
data: "Mapeando os dados que você vai acompanhar…",
|
|
1541
|
+
objects: "Modelando os objetos e seus campos…",
|
|
1542
|
+
relations: "Conectando os registros relacionados…",
|
|
1543
|
+
lookups: "Configurando as relações e os campos de busca…",
|
|
1544
|
+
views: "Planejando as telas e as visualizações…",
|
|
1545
|
+
forms: "Organizando os formulários e as listas…",
|
|
1546
|
+
defaults: "Adicionando valores padrão e validações sensatas…",
|
|
1547
|
+
dashboard: "Esboçando um painel para acompanhar…",
|
|
1548
|
+
review: "Verificando se a estrutura faz sentido…",
|
|
1549
|
+
finalize: "Reunindo o plano…",
|
|
1550
|
+
},
|
|
1551
|
+
planBuilding: "Criando…",
|
|
1552
|
+
planBuilt: "Criado",
|
|
1553
|
+
planDeferred: "Ainda não criado",
|
|
1554
|
+
planReady: "O plano está pronto. Crie agora ou diga o que ajustar.",
|
|
1555
|
+
published: "Publicado",
|
|
1556
|
+
publishFailed: "Falha ao publicar",
|
|
1557
|
+
unavailableTitle: "Assistente de IA indisponível",
|
|
1558
|
+
unavailableDescription: "Esta implantação não tem um assistente de IA habilitado. Todo o resto funciona normalmente.",
|
|
1559
|
+
unavailableError: "Não foi possível acessar o serviço de IA. Ele pode estar temporariamente off-line — tente novamente ou volte ao início.",
|
|
1560
|
+
unavailableRetry: "Tentar novamente",
|
|
1561
|
+
unavailableHome: "Voltar ao início",
|
|
1562
|
+
dock: {
|
|
1563
|
+
title: "Assistente",
|
|
1564
|
+
description: "Conversa com o assistente de IA",
|
|
1565
|
+
resize: "Redimensionar a conversa",
|
|
1566
|
+
collapse: "Recolher a conversa",
|
|
1567
|
+
maximize: "Abrir como página inteira",
|
|
1568
|
+
open: "Abrir o assistente",
|
|
1569
|
+
},
|
|
1570
|
+
group: {
|
|
1571
|
+
today: "Hoje",
|
|
1572
|
+
yesterday: "Ontem",
|
|
1573
|
+
previous7Days: "7 dias anteriores",
|
|
1574
|
+
previous30Days: "30 dias anteriores",
|
|
1575
|
+
older: "Mais antigas",
|
|
1576
|
+
},
|
|
1392
1577
|
},
|
|
1393
1578
|
title: "Console ObjectStack",
|
|
1394
|
-
initializing: "Inicializando aplicação
|
|
1579
|
+
initializing: "Inicializando aplicação…",
|
|
1395
1580
|
loadingHint: "Configurar um novo ambiente pode levar alguns instantes.",
|
|
1396
1581
|
breadcrumb: {
|
|
1397
1582
|
dashboards: "Painéis",
|
|
@@ -1399,6 +1584,31 @@ const pt = {
|
|
|
1399
1584
|
reports: "Relatórios",
|
|
1400
1585
|
system: "Sistema",
|
|
1401
1586
|
},
|
|
1587
|
+
// objectui#4024 — the single-namespace settings screen. Its sibling
|
|
1588
|
+
// `settingsHub` above already resolved through this pack; the view was the
|
|
1589
|
+
// one file still carrying English literals.
|
|
1590
|
+
settingsView: {
|
|
1591
|
+
backToHub: "Todas as configurações",
|
|
1592
|
+
back: "Voltar",
|
|
1593
|
+
noNamespace: "Nenhum namespace selecionado.",
|
|
1594
|
+
loadError: "Falha ao carregar as configurações",
|
|
1595
|
+
saved: "Configurações salvas",
|
|
1596
|
+
saveFailed: "Falha ao salvar",
|
|
1597
|
+
lockedByEnv: "Bloqueado pelo ambiente: {{key}}",
|
|
1598
|
+
lockedByEnvNoKey: "Bloqueado pelo ambiente",
|
|
1599
|
+
actionSucceeded: "A ação foi concluída",
|
|
1600
|
+
actionFailed: "A ação falhou",
|
|
1601
|
+
discard: "Descartar",
|
|
1602
|
+
saveChanges: "Salvar alterações",
|
|
1603
|
+
unsavedCount: "{{count}} alterações não salvas",
|
|
1604
|
+
unsavedCount_one: "{{count}} alteração não salva",
|
|
1605
|
+
unsavedCount_other: "{{count}} alterações não salvas",
|
|
1606
|
+
cryptoRefusalTitle: "Esta implantação não consegue criptografar segredos",
|
|
1607
|
+
cryptoRefusalSubjectSuffix: "está declarado como criptografado, portanto nada foi gravado.",
|
|
1608
|
+
cryptoRefusalNoSubject: "O valor declarado como criptografado foi recusado, portanto nada foi gravado.",
|
|
1609
|
+
cryptoRefusalToast: "Não é possível criptografar segredos: {{subject}}",
|
|
1610
|
+
cryptoRefusalToastNoSubject: "Não é possível criptografar segredos",
|
|
1611
|
+
},
|
|
1402
1612
|
loadingSteps: {
|
|
1403
1613
|
connecting: "Conectando à fonte de dados",
|
|
1404
1614
|
loadingConfig: "Carregando configuração",
|
|
@@ -1414,6 +1624,13 @@ const pt = {
|
|
|
1414
1624
|
retry: "Tentar novamente",
|
|
1415
1625
|
retrying: "Tentando novamente…",
|
|
1416
1626
|
},
|
|
1627
|
+
serverAction: {
|
|
1628
|
+
openingTitle: "Abrindo…",
|
|
1629
|
+
openingBody: "Abrindo… isso pode levar um momento.",
|
|
1630
|
+
popupBlockedTitle: "Pop-up bloqueado",
|
|
1631
|
+
popupBlockedDescription: "O navegador bloqueou a abertura da nova aba.",
|
|
1632
|
+
popupBlockedAction: "Abrir em nova aba",
|
|
1633
|
+
},
|
|
1417
1634
|
shortcuts: {
|
|
1418
1635
|
title: "Atalhos de teclado",
|
|
1419
1636
|
description: "Referência rápida de todos os atalhos de teclado disponíveis.",
|
|
@@ -1421,6 +1638,7 @@ const pt = {
|
|
|
1421
1638
|
general: "Geral",
|
|
1422
1639
|
navigation: "Navegação",
|
|
1423
1640
|
dataViews: "Visualizações de dados",
|
|
1641
|
+
aiChat: "Assistente de IA",
|
|
1424
1642
|
preferences: "Preferências",
|
|
1425
1643
|
},
|
|
1426
1644
|
openCommandPalette: "Abrir paleta de comandos",
|
|
@@ -1431,11 +1649,13 @@ const pt = {
|
|
|
1431
1649
|
createRecord: "Criar novo registro",
|
|
1432
1650
|
refreshData: "Atualizar dados",
|
|
1433
1651
|
editRecord: "Editar registro selecionado",
|
|
1652
|
+
newChat: "Nova conversa",
|
|
1653
|
+
toggleChatsList: "Alternar lista de conversas",
|
|
1434
1654
|
toggleDarkMode: "Alternar modo escuro",
|
|
1435
1655
|
},
|
|
1436
1656
|
commandPalette: {
|
|
1437
1657
|
title: "Paleta de comandos",
|
|
1438
|
-
placeholder: "Digite um comando ou pesquise
|
|
1658
|
+
placeholder: "Digite um comando ou pesquise…",
|
|
1439
1659
|
noResults: "Nenhum resultado encontrado.",
|
|
1440
1660
|
objects: "Objetos",
|
|
1441
1661
|
dashboards: "Painéis",
|
|
@@ -1461,6 +1681,12 @@ const pt = {
|
|
|
1461
1681
|
goHome: "Ir para início",
|
|
1462
1682
|
errorDetails: "Detalhes do erro (somente desenvolvimento)",
|
|
1463
1683
|
},
|
|
1684
|
+
// objectui#3546 slice four — the console's catch-all route (AppContent `RouteNotFound`).
|
|
1685
|
+
notFound: {
|
|
1686
|
+
title: "Página não encontrada",
|
|
1687
|
+
description: "A URL que você acessou não corresponde a nenhuma visualização deste aplicativo.",
|
|
1688
|
+
back: "Voltar",
|
|
1689
|
+
},
|
|
1464
1690
|
theme: {
|
|
1465
1691
|
toggle: "Alternar tema",
|
|
1466
1692
|
light: "Claro",
|
|
@@ -1476,11 +1702,15 @@ const pt = {
|
|
|
1476
1702
|
viewNameHelp: "Chave técnica (snake_case). Preenchida automaticamente a partir do título — edite se quiser.",
|
|
1477
1703
|
viewNameRequired: "Informe uma chave (letras minúsculas, números, sublinhado). Não é preenchida automaticamente para títulos não latinos.",
|
|
1478
1704
|
viewNameInvalid: "Use letras minúsculas, números e sublinhados; comece com uma letra ou sublinhado.",
|
|
1479
|
-
systemViewReadonly:
|
|
1480
|
-
|
|
1705
|
+
systemViewReadonly: "Exibição do sistema definida no código — somente leitura.",
|
|
1706
|
+
cannotEditMetaView: "Esta exibição é integrada e definida no código — não é possível alterá-la.",
|
|
1707
|
+
cannotDeleteMetaView: "Esta exibição é integrada e definida no código — não é possível excluí-la.",
|
|
1708
|
+
expandToPage: "Abrir como página inteira",
|
|
1481
1709
|
objectNotFound: "Objeto não encontrado",
|
|
1482
1710
|
objectNotFoundDescription: "O objeto \"{{objectName}}\" não existe na configuração atual.",
|
|
1483
1711
|
objectNotFoundHint: "Verifique as configurações de navegação do seu aplicativo ou selecione um objeto diferente na barra lateral.",
|
|
1712
|
+
filterOrNotSavable: "Este filtro une as condições com OU, algo que uma visão salva ainda não consegue armazenar. Ele continua aplicado a esta lista — remova o agrupamento OU para salvá-lo na visão.",
|
|
1713
|
+
filterNestedNotSavable: "Este filtro usa grupos de condições aninhados, que uma visão salva não consegue armazenar. Transforme-o em uma única lista de condições para salvá-lo na visão.",
|
|
1484
1714
|
allRecords: "Todos os registros",
|
|
1485
1715
|
exitDesignMode: "Sair do modo de design",
|
|
1486
1716
|
enterDesignMode: "Entrar no modo de design",
|
|
@@ -1507,7 +1737,7 @@ const pt = {
|
|
|
1507
1737
|
exportPrintHint: "Formatos de exportação, impressão e exibição da contagem de registros",
|
|
1508
1738
|
showAllFields: "Mostrar tudo",
|
|
1509
1739
|
hideAllFields: "Ocultar tudo",
|
|
1510
|
-
searchFields: "Pesquisar campos
|
|
1740
|
+
searchFields: "Pesquisar campos…",
|
|
1511
1741
|
title: "Título",
|
|
1512
1742
|
description: "Descrição",
|
|
1513
1743
|
data: "Dados",
|
|
@@ -1546,7 +1776,7 @@ const pt = {
|
|
|
1546
1776
|
longitudeField: "Campo de longitude",
|
|
1547
1777
|
imageField: "Campo de imagem",
|
|
1548
1778
|
dateField: "Campo de data",
|
|
1549
|
-
selectField: "Selecionar campo
|
|
1779
|
+
selectField: "Selecionar campo…",
|
|
1550
1780
|
gridOptionsHint: "A visualização de grade usa as colunas configuradas acima.",
|
|
1551
1781
|
groupBy: "Agrupar por",
|
|
1552
1782
|
prefixField: "Campo de prefixo",
|
|
@@ -1609,7 +1839,7 @@ const pt = {
|
|
|
1609
1839
|
latitudeFieldHelp: "Campo contendo a latitude (apenas campos geográficos).",
|
|
1610
1840
|
longitudeFieldHelp: "Campo contendo a longitude (apenas campos geográficos).",
|
|
1611
1841
|
imageFieldHelp: "A capa da galeria vem deste campo de imagem ou anexo.",
|
|
1612
|
-
selectOption: "Selecionar
|
|
1842
|
+
selectOption: "Selecionar…",
|
|
1613
1843
|
noEligibleFieldForType: "Nenhum campo elegível desse tipo. Adicione um ao objeto primeiro.",
|
|
1614
1844
|
viewTypeUnavailable: "Este objeto não tem um campo que sirva como \"{{field}}\".",
|
|
1615
1845
|
viewTypeUnavailableShort: "Não suportado por este objeto.",
|
|
@@ -1659,7 +1889,7 @@ const pt = {
|
|
|
1659
1889
|
ufDropdown: "Lista suspensa",
|
|
1660
1890
|
ufTabs: "Abas",
|
|
1661
1891
|
ufToggle: "Alternar",
|
|
1662
|
-
ufAddField: "+ Adicionar campo de filtro
|
|
1892
|
+
ufAddField: "+ Adicionar campo de filtro…",
|
|
1663
1893
|
ufNoFields: "Sem campos disponíveis",
|
|
1664
1894
|
ufAddTab: "+ Adicionar aba",
|
|
1665
1895
|
ufTabLabel: "Rótulo",
|
|
@@ -1719,7 +1949,7 @@ const pt = {
|
|
|
1719
1949
|
passwordPlaceholder: "Digite sua senha",
|
|
1720
1950
|
forgotPasswordText: "Esqueceu a senha?",
|
|
1721
1951
|
submitButton: "Entrar",
|
|
1722
|
-
submittingButton: "Entrando
|
|
1952
|
+
submittingButton: "Entrando…",
|
|
1723
1953
|
noAccountText: "Não tem uma conta?",
|
|
1724
1954
|
signUpText: "Cadastre-se",
|
|
1725
1955
|
errors: {
|
|
@@ -1727,6 +1957,18 @@ const pt = {
|
|
|
1727
1957
|
invalidCredentials: "E-mail ou senha inválidos. Por favor, tente novamente.",
|
|
1728
1958
|
emailNotVerified: "Por favor, verifique seu e-mail antes de fazer login.",
|
|
1729
1959
|
},
|
|
1960
|
+
// objectui#3546 slice three — phone/OTP sign-in. `{seconds}` is LoginForm's own
|
|
1961
|
+
// literal `.replace()` hole, not i18next interpolation: keep the single braces.
|
|
1962
|
+
emailOrPhoneLabel: "E-mail ou número de telefone",
|
|
1963
|
+
emailOrPhonePlaceholder: "name@example.com ou +1 555 000 0000",
|
|
1964
|
+
phoneLabel: "Número de telefone",
|
|
1965
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
1966
|
+
otpCodeLabel: "Código de verificação",
|
|
1967
|
+
otpCodePlaceholder: "Código de 6 dígitos",
|
|
1968
|
+
sendOtpButton: "Obter código",
|
|
1969
|
+
resendOtpCountdownText: "Reenviar em {seconds} s",
|
|
1970
|
+
usePhoneOtpText: "Entrar com código de verificação",
|
|
1971
|
+
usePasswordSignInText: "Entrar com senha em vez disso",
|
|
1730
1972
|
},
|
|
1731
1973
|
register: {
|
|
1732
1974
|
title: "Criar uma conta",
|
|
@@ -1742,7 +1984,7 @@ const pt = {
|
|
|
1742
1984
|
passwordMismatchError: "As senhas não coincidem",
|
|
1743
1985
|
passwordTooShortError: "A senha deve ter pelo menos 8 caracteres",
|
|
1744
1986
|
submitButton: "Criar conta",
|
|
1745
|
-
submittingButton: "Criando conta
|
|
1987
|
+
submittingButton: "Criando conta…",
|
|
1746
1988
|
hasAccountText: "Já tem uma conta?",
|
|
1747
1989
|
signInText: "Entrar",
|
|
1748
1990
|
errors: {
|
|
@@ -1763,12 +2005,26 @@ const pt = {
|
|
|
1763
2005
|
emailLabel: "E-mail",
|
|
1764
2006
|
emailPlaceholder: "name@example.com",
|
|
1765
2007
|
submitButton: "Enviar link de redefinição",
|
|
1766
|
-
submittingButton: "Enviando
|
|
2008
|
+
submittingButton: "Enviando…",
|
|
1767
2009
|
successTitle: "Verifique seu e-mail",
|
|
1768
2010
|
successDescription: "Enviamos um link para redefinição de senha para {{email}}. Por favor verifique sua caixa de entrada.",
|
|
1769
2011
|
backToSignInText: "Voltar para o login",
|
|
1770
2012
|
rememberPasswordText: "Lembra da sua senha?",
|
|
1771
2013
|
signInText: "Entrar",
|
|
2014
|
+
// objectui#3546 slice three — the SMS reset branch of the same form.
|
|
2015
|
+
phoneLabel: "Número de telefone",
|
|
2016
|
+
phonePlaceholder: "+1 555 000 0000",
|
|
2017
|
+
otpCodeLabel: "Código de verificação",
|
|
2018
|
+
otpCodePlaceholder: "Código de 6 dígitos",
|
|
2019
|
+
sendOtpButton: "Obter código",
|
|
2020
|
+
resendOtpCountdownText: "Reenviar em {seconds} s",
|
|
2021
|
+
newPasswordLabel: "Nova senha",
|
|
2022
|
+
newPasswordPlaceholder: "Digite uma nova senha",
|
|
2023
|
+
resetButton: "Redefinir senha",
|
|
2024
|
+
usePhoneResetText: "Redefinir com código por SMS",
|
|
2025
|
+
useEmailResetText: "Redefinir por e-mail em vez disso",
|
|
2026
|
+
phoneSuccessTitle: "Senha redefinida",
|
|
2027
|
+
phoneSuccessDescription: "Sua senha foi redefinida. Agora você pode entrar com a nova senha.",
|
|
1772
2028
|
},
|
|
1773
2029
|
resetPassword: {
|
|
1774
2030
|
title: "Definir nova senha",
|
|
@@ -1807,6 +2063,8 @@ const pt = {
|
|
|
1807
2063
|
backToLogin: "Voltar ao login",
|
|
1808
2064
|
checkSpam: "Não recebeu o e-mail? Verifique sua pasta de spam ou entre em contato com o suporte.",
|
|
1809
2065
|
or: "Ou",
|
|
2066
|
+
// objectui#3546 slice three.
|
|
2067
|
+
resendUnavailable: "O envio de e-mails pode não estar configurado neste ambiente. Entre em contato com o suporte se o problema persistir.",
|
|
1810
2068
|
},
|
|
1811
2069
|
setup: {
|
|
1812
2070
|
welcomeTitle: "Bem-vindo ao ObjectStack",
|
|
@@ -1845,6 +2103,9 @@ const pt = {
|
|
|
1845
2103
|
invalidDescription: "Nenhum código de dispositivo foi fornecido na URL.",
|
|
1846
2104
|
loading: "Carregando…",
|
|
1847
2105
|
cancel: "Cancelar",
|
|
2106
|
+
// objectui#3546 slice three — device-authorization plugin switched off.
|
|
2107
|
+
disabledTitle: "Autorização de dispositivo não habilitada",
|
|
2108
|
+
disabledDescription: "Esta implantação não tem a autorização de dispositivo habilitada, por isso este dispositivo não pode ser aprovado aqui.",
|
|
1848
2109
|
},
|
|
1849
2110
|
shell: {
|
|
1850
2111
|
tenantHostHint: "Você está fazendo login neste espaço de trabalho",
|
|
@@ -1884,6 +2145,29 @@ const pt = {
|
|
|
1884
2145
|
},
|
|
1885
2146
|
},
|
|
1886
2147
|
},
|
|
2148
|
+
// objectui#3546 slice three — the /oauth/consent screen.
|
|
2149
|
+
oauth: {
|
|
2150
|
+
consent: {
|
|
2151
|
+
title: "{{appName}} quer acessar sua conta",
|
|
2152
|
+
request: "{{appName}} está solicitando permissão{{suffix}}.",
|
|
2153
|
+
unknownApp: "um aplicativo",
|
|
2154
|
+
willAllow: "Este aplicativo poderá:",
|
|
2155
|
+
scope: {
|
|
2156
|
+
openid: "Confirmar sua identidade",
|
|
2157
|
+
profile: "Ler seu perfil básico (nome, foto)",
|
|
2158
|
+
email: "Ler seu endereço de e-mail",
|
|
2159
|
+
offlineAccess: "Manter a sessão ativa (renovar o acesso)",
|
|
2160
|
+
},
|
|
2161
|
+
deny: "Negar",
|
|
2162
|
+
authorize: "Autorizar",
|
|
2163
|
+
submitting: "Autorizando…",
|
|
2164
|
+
granted: "Acesso concedido",
|
|
2165
|
+
denied: "Acesso negado",
|
|
2166
|
+
noRedirect: "O servidor não retornou nenhuma URL de redirecionamento.",
|
|
2167
|
+
failed: "Falha no consentimento",
|
|
2168
|
+
footer: "Você pode revogar o acesso a qualquer momento nas configurações da sua conta.",
|
|
2169
|
+
},
|
|
2170
|
+
},
|
|
1887
2171
|
profile: {
|
|
1888
2172
|
title: "Perfil",
|
|
1889
2173
|
subtitle: "Gerencie as configurações da sua conta",
|
|
@@ -1945,6 +2229,8 @@ const pt = {
|
|
|
1945
2229
|
invite: "Convidar membro",
|
|
1946
2230
|
members: "Membros",
|
|
1947
2231
|
settings: "Configurações do espaço de trabalho",
|
|
2232
|
+
multiOrgDisabled: "A criação de novas organizações está desativada nesta instância.",
|
|
2233
|
+
createFailed: 'Falha ao criar o espaço de trabalho',
|
|
1948
2234
|
},
|
|
1949
2235
|
help: {
|
|
1950
2236
|
onThisPage: "Nesta página",
|
|
@@ -1955,7 +2241,7 @@ const pt = {
|
|
|
1955
2241
|
},
|
|
1956
2242
|
sidebar: {
|
|
1957
2243
|
packageManagement: "Gerenciamento de pacotes",
|
|
1958
|
-
searchNavigation: "Pesquisar na navegação
|
|
2244
|
+
searchNavigation: "Pesquisar na navegação…",
|
|
1959
2245
|
settings: "Configurações",
|
|
1960
2246
|
help: "Ajuda",
|
|
1961
2247
|
helpTooltip: "Ajuda e documentação",
|
|
@@ -1979,8 +2265,8 @@ const pt = {
|
|
|
1979
2265
|
switchObject: "Trocar de objeto",
|
|
1980
2266
|
connection: {
|
|
1981
2267
|
connected: "Conectado",
|
|
1982
|
-
connecting: "Conectando
|
|
1983
|
-
reconnecting: "Reconectando
|
|
2268
|
+
connecting: "Conectando…",
|
|
2269
|
+
reconnecting: "Reconectando…",
|
|
1984
2270
|
disconnected: "Desconectado",
|
|
1985
2271
|
error: "Erro de conexão",
|
|
1986
2272
|
},
|
|
@@ -2019,6 +2305,14 @@ const pt = {
|
|
|
2019
2305
|
publishing: "Publicando…",
|
|
2020
2306
|
published: "Publicado! Suas alterações estão ativas.",
|
|
2021
2307
|
publishFailed: "Falha ao publicar",
|
|
2308
|
+
// objectui#3546 slice six — seedWarn reaproveita a tradução de
|
|
2309
|
+
// console.ai.seedWarn (mesma frase em inglês). Marcador "(s)" como em
|
|
2310
|
+
// home.pendingDrafts.message, da mesma família.
|
|
2311
|
+
nothing: "Nada para publicar.",
|
|
2312
|
+
probeWarn: "Publicado, mas a verificação encontrou problemas.",
|
|
2313
|
+
seedWarn: "Publicado, mas alguns dados de exemplo não puderam ser carregados.",
|
|
2314
|
+
publishedVerified: "Publicado e verificado — {{count}} linha(s) de exemplo ativa(s).",
|
|
2315
|
+
capabilityWarn: "Verificação de autoria: {{count}} referência(s) de capacidade não apontam para nada.",
|
|
2022
2316
|
},
|
|
2023
2317
|
title: "Início",
|
|
2024
2318
|
subtitle: "Painel do seu espaço de trabalho",
|
|
@@ -2032,7 +2326,7 @@ const pt = {
|
|
|
2032
2326
|
title: "Requer a sua atenção",
|
|
2033
2327
|
empty: "Está tudo em dia",
|
|
2034
2328
|
},
|
|
2035
|
-
loading: "Carregando espaço de trabalho
|
|
2329
|
+
loading: "Carregando espaço de trabalho…",
|
|
2036
2330
|
recent: "Recentes",
|
|
2037
2331
|
starred: "Favoritos",
|
|
2038
2332
|
welcome: "Bem-vindo ao ObjectUI",
|
|
@@ -2093,6 +2387,9 @@ const pt = {
|
|
|
2093
2387
|
roles: "Perfis",
|
|
2094
2388
|
configuration: "Configuração",
|
|
2095
2389
|
createApp: "Criar aplicativo",
|
|
2390
|
+
administration: "Administração",
|
|
2391
|
+
datasources: "Fontes de dados",
|
|
2392
|
+
documentation: "Documentação",
|
|
2096
2393
|
},
|
|
2097
2394
|
appSwitcher: {
|
|
2098
2395
|
switchApplication: "Trocar de aplicativo",
|
|
@@ -2132,7 +2429,7 @@ const pt = {
|
|
|
2132
2429
|
search: {
|
|
2133
2430
|
title: "Pesquisar",
|
|
2134
2431
|
back: "Voltar",
|
|
2135
|
-
placeholder: "Pesquisar objetos, painéis, páginas, relatórios
|
|
2432
|
+
placeholder: "Pesquisar objetos, painéis, páginas, relatórios…",
|
|
2136
2433
|
inputAriaLabel: "Pesquisar objetos, painéis, páginas, relatórios",
|
|
2137
2434
|
resultsCount: "{{count}} resultado para \"{{query}}\"",
|
|
2138
2435
|
resultsCountPlural: "{{count}} resultados para \"{{query}}\"",
|
|
@@ -2151,6 +2448,7 @@ const pt = {
|
|
|
2151
2448
|
empty: {
|
|
2152
2449
|
objectNotFound: "Objeto não encontrado",
|
|
2153
2450
|
objectNotFoundDescription: "A definição do objeto \"{{name}}\" está ausente. Verifique sua configuração ou navegue de volta.",
|
|
2451
|
+
interfacePageSourceMissing: "Esta página de interface faz referência a \"{{name}}\", que não está disponível.",
|
|
2154
2452
|
pageNotFound: "Página não encontrada",
|
|
2155
2453
|
pageNotFoundDescription: "A página \"{{name}}\" não foi encontrada. Ela pode ter sido removida ou renomeada.",
|
|
2156
2454
|
dashboardNotFound: "Painel não encontrado",
|
|
@@ -2159,6 +2457,11 @@ const pt = {
|
|
|
2159
2457
|
reportNotFoundDescription: "O relatório \"{{name}}\" não foi encontrado. Ele pode ter sido removido ou renomeado.",
|
|
2160
2458
|
noAppsConfigured: "Nenhum aplicativo configurado",
|
|
2161
2459
|
noAppsConfiguredDescription: "Nenhum aplicativo está registrado. Crie seu primeiro aplicativo ou visite as configurações do sistema.",
|
|
2460
|
+
appNotAvailable: "Aplicativo indisponível",
|
|
2461
|
+
appNotAvailableDescription: "Este aplicativo ainda não está disponível — a publicação pode estar em andamento. Tente novamente em instantes.",
|
|
2462
|
+
appAccessDenied: "Você não tem acesso a este aplicativo",
|
|
2463
|
+
appAccessDeniedDescription: "Este aplicativo existe, mas sua conta não tem autorização para abri-lo. Peça acesso a um administrador.",
|
|
2464
|
+
appAccessDeniedHome: "Voltar ao início",
|
|
2162
2465
|
createFirstApp: "Criar primeiro aplicativo",
|
|
2163
2466
|
systemSettings: "Configurações do sistema",
|
|
2164
2467
|
back: "Voltar",
|
|
@@ -2230,7 +2533,7 @@ const pt = {
|
|
|
2230
2533
|
deleteFailed: "Não foi possível excluir a exibição",
|
|
2231
2534
|
},
|
|
2232
2535
|
dashboardActions: {
|
|
2233
|
-
|
|
2536
|
+
printDialogOpening: "Abrindo a caixa de diálogo de impressão do navegador (não é uma exportação para PDF)",
|
|
2234
2537
|
exportFailed: "Falha na exportação: {{message}}",
|
|
2235
2538
|
forecastSoon: "A exibição de previsão está chegando em breve",
|
|
2236
2539
|
},
|
|
@@ -2274,111 +2577,7 @@ const pt = {
|
|
|
2274
2577
|
first: "Primeiro",
|
|
2275
2578
|
},
|
|
2276
2579
|
editor: {
|
|
2277
|
-
|
|
2278
|
-
basic: "Geral",
|
|
2279
|
-
title: "Título",
|
|
2280
|
-
titlePlaceholder: "ex.: Pipeline por trimestre",
|
|
2281
|
-
description: "Descrição",
|
|
2282
|
-
descriptionPlaceholder: "O que este relatório mostra?",
|
|
2283
|
-
type: "Tipo de relatório",
|
|
2284
|
-
typeTabular: "Tabular — lista plana",
|
|
2285
|
-
typeSummary: "Resumo — agrupado com totais",
|
|
2286
|
-
typeMatrix: "Matriz — pivô linhas × colunas",
|
|
2287
|
-
typeJoined: "Combinado — vários blocos",
|
|
2288
|
-
typeHelp: "Escolha o layout que corresponde ao que deseja ver.",
|
|
2289
|
-
data: "Dados",
|
|
2290
|
-
objectName: "Fonte de dados",
|
|
2291
|
-
objectNamePlaceholder: "ex.: opportunity",
|
|
2292
|
-
objectNameHelp: "Qual objeto este relatório deve consultar?",
|
|
2293
|
-
limit: "Limite de linhas",
|
|
2294
|
-
limitPlaceholder: "ex.: 100",
|
|
2295
|
-
columns: "Colunas",
|
|
2296
|
-
columnsHint: "Escolha quais campos aparecem como colunas. Adicione uma agregação (Soma, Contagem…) em relatórios de Resumo ou Matriz.",
|
|
2297
|
-
filters: "Filtros",
|
|
2298
|
-
filtersHint: "Restrinja as linhas incluídas neste relatório.",
|
|
2299
|
-
filtersComplex: "Este relatório usa um filtro avançado que não pode ser editado aqui. Ao salvar será mantido inalterado.",
|
|
2300
|
-
groupBy: "Agrupar por",
|
|
2301
|
-
groupByHint: "Agrupe os dados e calcule subtotais.",
|
|
2302
|
-
rows: "Linhas",
|
|
2303
|
-
rowsHint: "Agrupe linhas por estes campos.",
|
|
2304
|
-
columnsAxis: "Colunas",
|
|
2305
|
-
columnsAxisHint: "Pivote estes campos no topo.",
|
|
2306
|
-
values: "Valores",
|
|
2307
|
-
valuesHint: "Números exibidos em cada célula. Escolha um ou mais campos e adicione uma agregação (Soma, Contagem…).",
|
|
2308
|
-
grouping: "Agrupamento",
|
|
2309
|
-
addGrouping: "Adicionar agrupamento",
|
|
2310
|
-
dateGranularity: "Granularidade de data",
|
|
2311
|
-
dateGranularityNone: "(usar valor bruto)",
|
|
2312
|
-
day: "Dia",
|
|
2313
|
-
week: "Semana",
|
|
2314
|
-
month: "Mês",
|
|
2315
|
-
quarter: "Trimestre",
|
|
2316
|
-
year: "Ano",
|
|
2317
|
-
sortAsc: "Crescente",
|
|
2318
|
-
sortDesc: "Decrescente",
|
|
2319
|
-
chart: "Gráfico",
|
|
2320
|
-
chartHint: "Visualização opcional ao lado da tabela.",
|
|
2321
|
-
chartType: "Tipo de gráfico",
|
|
2322
|
-
chartTitle: "Título do gráfico",
|
|
2323
|
-
chartTitlePlaceholder: "Padrão: título do relatório",
|
|
2324
|
-
chartXAxis: "Eixo X (categoria)",
|
|
2325
|
-
chartYAxis: "Eixo Y (valor)",
|
|
2326
|
-
chartShowLegend: "Mostrar legenda",
|
|
2327
|
-
chartShowDataLabels: "Mostrar rótulos de dados",
|
|
2328
|
-
chartNone: "(sem gráfico)",
|
|
2329
|
-
chartBar: "Barras",
|
|
2330
|
-
chartLine: "Linhas",
|
|
2331
|
-
chartArea: "Áreas",
|
|
2332
|
-
chartPie: "Pizza",
|
|
2333
|
-
chartDonut: "Rosca",
|
|
2334
|
-
chartFunnel: "Funil",
|
|
2335
|
-
validationNeedsObject: "Escolha uma fonte de dados antes de adicionar colunas.",
|
|
2336
|
-
validationMatrixNeedsRowsCols: "Relatórios de matriz precisam de pelo menos uma Linha e uma Coluna.",
|
|
2337
|
-
validationSummaryNeedsRows: "Relatórios de resumo precisam de pelo menos um campo de agrupamento.",
|
|
2338
|
-
blocks: "Blocos",
|
|
2339
|
-
blocksHint: "Cada bloco é sua própria tabela ou gráfico. Filtros de bloco são combinados (E) com o filtro do relatório.",
|
|
2340
|
-
addBlock: "Adicionar bloco",
|
|
2341
|
-
removeBlock: "Remover bloco",
|
|
2342
|
-
blockName: "Nome do bloco",
|
|
2343
|
-
blockNamePlaceholder: "nome_unico_do_bloco",
|
|
2344
|
-
blockLabel: "Rótulo de exibição",
|
|
2345
|
-
blockLabelPlaceholder: "Exibido acima do bloco",
|
|
2346
|
-
blockDescription: "Descrição",
|
|
2347
|
-
blockDescriptionPlaceholder: "Contexto opcional para este bloco",
|
|
2348
|
-
validationJoinedNeedsBlocks: "Relatórios combinados precisam de pelo menos um bloco.",
|
|
2349
|
-
validationBlockNameRequired: "Cada bloco precisa de um nome não vazio.",
|
|
2350
|
-
validationBlockNameDuplicate: "Os nomes dos blocos devem ser únicos no relatório.",
|
|
2351
|
-
validationBlockNeedsColumns: "Cada bloco precisa de pelo menos uma coluna.",
|
|
2352
|
-
noneOption: "(nenhum)",
|
|
2353
|
-
addCondition: "Adicionar condição",
|
|
2354
|
-
combineLogic: "Combinar com",
|
|
2355
|
-
opContains: "contém",
|
|
2356
|
-
opIsEmpty: "está vazio",
|
|
2357
|
-
opIsNotEmpty: "não está vazio",
|
|
2358
|
-
formatAuto: "Automático",
|
|
2359
|
-
formatCurrency: "Moeda",
|
|
2360
|
-
formatPercent: "Porcentagem",
|
|
2361
|
-
formatInteger: "Inteiro",
|
|
2362
|
-
formatDate: "Data",
|
|
2363
|
-
formatDatetime: "Data e hora",
|
|
2364
|
-
columnLabelPlaceholder: "Substituir rótulo",
|
|
2365
|
-
aggregateColumn: "Agregação",
|
|
2366
|
-
formatColumn: "Formato",
|
|
2367
|
-
addColumns: "Adicionar colunas",
|
|
2368
|
-
searchFields: "Pesquisar campos…",
|
|
2369
|
-
noMatchingFields: "Nenhum campo corresponde à sua pesquisa.",
|
|
2370
|
-
noFieldsAvailable: "Nenhum campo disponível.",
|
|
2371
|
-
columnsCount: "{n} coluna(s) selecionada(s)",
|
|
2372
|
-
columnsEmpty: "Nenhuma coluna selecionada ainda.",
|
|
2373
|
-
fieldPickerTitle: "Selecionar campos",
|
|
2374
|
-
fieldPickerDescription: "Escolha um ou mais campos para adicionar. Use o campo de pesquisa para filtrar a lista.",
|
|
2375
|
-
fieldPickerChangeTitle: "Alterar campo",
|
|
2376
|
-
fieldPickerAddGroupingTitle: "Adicionar agrupamento",
|
|
2377
|
-
fieldPickerEmpty: "(Selecionar campo)",
|
|
2378
|
-
fieldPickerSelected: "{n} selecionado(s)",
|
|
2379
|
-
fieldPickerClear: "Limpar seleção",
|
|
2380
|
-
fieldPickerAdd: "Adicionar",
|
|
2381
|
-
fieldPickerAddN: "Adicionar {n}",
|
|
2580
|
+
panelTitle: "Editar relatório",
|
|
2382
2581
|
},
|
|
2383
2582
|
},
|
|
2384
2583
|
organizations: {
|
|
@@ -2395,6 +2594,140 @@ const pt = {
|
|
|
2395
2594
|
emptyDescription: "Crie sua primeira organização para começar.",
|
|
2396
2595
|
noMatches: "Nenhuma organização corresponde à sua pesquisa.",
|
|
2397
2596
|
},
|
|
2597
|
+
organization: {
|
|
2598
|
+
roles: {
|
|
2599
|
+
owner: 'Proprietário',
|
|
2600
|
+
admin: 'Administrador',
|
|
2601
|
+
delegatedAdmin: 'Administrador delegado',
|
|
2602
|
+
member: 'Membro',
|
|
2603
|
+
},
|
|
2604
|
+
errors: {
|
|
2605
|
+
notAllowedToInvite: 'Você não tem permissão para convidar usuários para esta organização.',
|
|
2606
|
+
notAllowedToInviteWithRole: 'Você não tem permissão para convidar um usuário com esta função.',
|
|
2607
|
+
alreadyInvited: 'Este usuário já foi convidado para esta organização.',
|
|
2608
|
+
organizationExists: 'Essa organização já existe.',
|
|
2609
|
+
slugTaken: 'Esse slug já está em uso.',
|
|
2610
|
+
notAllowedToCreate: 'Você não tem permissão para criar uma nova organização.',
|
|
2611
|
+
notTheRecipient: 'Você não é o destinatário deste convite.',
|
|
2612
|
+
invitationNotFound: 'Este convite não existe mais ou expirou.',
|
|
2613
|
+
unknown: 'Algo deu errado. Tente novamente.',
|
|
2614
|
+
},
|
|
2615
|
+
backToList: "Voltar para as organizações",
|
|
2616
|
+
notFound: "Organização não encontrada",
|
|
2617
|
+
notFoundDescription: "Esta organização não existe ou você não tem acesso.",
|
|
2618
|
+
tabs: {
|
|
2619
|
+
members: "Membros",
|
|
2620
|
+
invitations: "Convites",
|
|
2621
|
+
settings: "Configurações",
|
|
2622
|
+
},
|
|
2623
|
+
members: {
|
|
2624
|
+
title: "Membros",
|
|
2625
|
+
inviteMember: "Convidar membro",
|
|
2626
|
+
inviteRestrictedNote: "Apenas administradores da organização podem convidar membros.",
|
|
2627
|
+
removeMember: "Remover membro",
|
|
2628
|
+
removeConfirmTitle: "Remover membro?",
|
|
2629
|
+
removeConfirmDescription: "Isso removerá {{name}} da organização. O acesso será perdido imediatamente.",
|
|
2630
|
+
removeConfirmAction: "Remover",
|
|
2631
|
+
memberRemoved: "Membro removido",
|
|
2632
|
+
removeFailed: "Falha ao remover o membro",
|
|
2633
|
+
roleUpdated: "Função atualizada",
|
|
2634
|
+
roleUpdateFailed: "Falha ao atualizar a função",
|
|
2635
|
+
memberActions: 'Ações do membro',
|
|
2636
|
+
loadFailed: 'Falha ao carregar os membros',
|
|
2637
|
+
},
|
|
2638
|
+
invitations: {
|
|
2639
|
+
title: "Convites",
|
|
2640
|
+
empty: "Nenhum convite encontrado.",
|
|
2641
|
+
expiresAt: "Expira em",
|
|
2642
|
+
linkCopied: "Link do convite copiado",
|
|
2643
|
+
copyFailed: "Falha ao copiar o link",
|
|
2644
|
+
canceled: "Convite cancelado",
|
|
2645
|
+
cancelFailed: "Falha ao cancelar o convite",
|
|
2646
|
+
cancelTitle: "Cancelar convite?",
|
|
2647
|
+
cancelDescription: "O convite de {{email}} será revogado.",
|
|
2648
|
+
cancelAction: "Cancelar convite",
|
|
2649
|
+
inviteTitle: "Convidar um membro",
|
|
2650
|
+
inviteDescription: "A pessoa receberá um convite para entrar nesta organização.",
|
|
2651
|
+
emailLabel: "E-mail",
|
|
2652
|
+
roleLabel: "Função",
|
|
2653
|
+
placementLabel: "Alocação (opcional)",
|
|
2654
|
+
placementDescription: "Aplicada quando o convite for aceito. Somente as unidades e os cargos que você pode delegar são listados.",
|
|
2655
|
+
businessUnitLabel: "Unidade de negócio",
|
|
2656
|
+
businessUnitPlaceholder: "Sem alocação",
|
|
2657
|
+
positionsLabel: "Cargos",
|
|
2658
|
+
sendInvite: "Enviar convite",
|
|
2659
|
+
sentTitle: "Convite criado",
|
|
2660
|
+
sentDescription: "Compartilhe o link abaixo com a pessoa convidada. Ela precisará entrar para aceitar.",
|
|
2661
|
+
linkLabel: "Link de aceitação",
|
|
2662
|
+
invitedAs: "{{email}} convidado como {{role}}",
|
|
2663
|
+
copyLinkLabel: 'Copiar link do convite',
|
|
2664
|
+
loadFailed: 'Falha ao carregar os convites',
|
|
2665
|
+
inviteFailed: 'Falha ao convidar o membro',
|
|
2666
|
+
status: {
|
|
2667
|
+
all: "Todos",
|
|
2668
|
+
pending: "Pendente",
|
|
2669
|
+
accepted: "Aceito",
|
|
2670
|
+
rejected: "Recusado",
|
|
2671
|
+
canceled: "Cancelado",
|
|
2672
|
+
},
|
|
2673
|
+
},
|
|
2674
|
+
settings: {
|
|
2675
|
+
generalTitle: "Geral",
|
|
2676
|
+
generalDescription: "Atualize as informações da sua organização.",
|
|
2677
|
+
readOnlyNote: "Somente proprietários podem alterar as configurações.",
|
|
2678
|
+
nameLabel: "Nome da organização",
|
|
2679
|
+
slugLabel: "Slug",
|
|
2680
|
+
logoLabel: "Logo",
|
|
2681
|
+
logoUpload: "Enviar",
|
|
2682
|
+
logoReplace: "Substituir",
|
|
2683
|
+
logoClear: "Remover",
|
|
2684
|
+
logoUploaded: "Logo enviado — salve para aplicar",
|
|
2685
|
+
logoUploadFailed: "Falha ao enviar o logo",
|
|
2686
|
+
save: "Salvar alterações",
|
|
2687
|
+
saved: "Configurações salvas",
|
|
2688
|
+
saveFailed: "Falha ao salvar as configurações",
|
|
2689
|
+
leaveTitle: "Sair da organização",
|
|
2690
|
+
leaveDescription: "Você perderá o acesso a esta organização.",
|
|
2691
|
+
leaveAction: "Sair",
|
|
2692
|
+
leaveConfirmTitle: "Sair da organização?",
|
|
2693
|
+
leaveConfirmDescription: "Tem certeza de que deseja sair de {{name}}? Você perderá o acesso imediatamente.",
|
|
2694
|
+
leaveConfirmAction: "Sair",
|
|
2695
|
+
leftOrg: "Você saiu da organização",
|
|
2696
|
+
leaveFailed: "Falha ao sair da organização",
|
|
2697
|
+
dangerZone: "Zona de perigo",
|
|
2698
|
+
deleteTitle: "Excluir organização",
|
|
2699
|
+
deleteDescription: "Exclua permanentemente esta organização e todos os seus dados.",
|
|
2700
|
+
deleteAction: "Excluir",
|
|
2701
|
+
deleteConfirmTitle: "Excluir organização?",
|
|
2702
|
+
deleteConfirmDescription: "Esta ação é irreversível. Todos os dados serão excluídos permanentemente. Digite o slug da organização para confirmar.",
|
|
2703
|
+
deleteConfirmSlugLabel: "Digite \"{{slug}}\" para confirmar",
|
|
2704
|
+
deleteConfirmAction: "Excluir organização",
|
|
2705
|
+
deleted: "Organização excluída",
|
|
2706
|
+
deleteFailed: "Falha ao excluir a organização",
|
|
2707
|
+
},
|
|
2708
|
+
accept: {
|
|
2709
|
+
title: "Você foi convidado",
|
|
2710
|
+
description: "Você foi convidado para entrar em {{orgName}} como {{role}}.",
|
|
2711
|
+
errorTitle: "Convite indisponível",
|
|
2712
|
+
goToOrgs: "Ir para as organizações",
|
|
2713
|
+
loading: "Carregando o convite…",
|
|
2714
|
+
organization: "Organização",
|
|
2715
|
+
role: "Função",
|
|
2716
|
+
expiresAt: "Expira em",
|
|
2717
|
+
accept: "Aceitar convite",
|
|
2718
|
+
accepted: "Convite aceito",
|
|
2719
|
+
acceptFailed: "Falha ao aceitar o convite",
|
|
2720
|
+
decline: "Recusar",
|
|
2721
|
+
declined: "Convite recusado",
|
|
2722
|
+
declineFailed: "Falha ao recusar o convite",
|
|
2723
|
+
},
|
|
2724
|
+
switcher: {
|
|
2725
|
+
label: "Trocar de organização",
|
|
2726
|
+
groupLabel: "Organização de trabalho",
|
|
2727
|
+
groupHint: "Novos registros são criados aqui. As exibições mostram dados de todas as suas organizações.",
|
|
2728
|
+
manageMembers: "Gerenciar membros",
|
|
2729
|
+
},
|
|
2730
|
+
},
|
|
2398
2731
|
notifications: {
|
|
2399
2732
|
regionLabel: "Notificações",
|
|
2400
2733
|
groupCount: "{{count}} notificações",
|
|
@@ -2408,6 +2741,9 @@ const pt = {
|
|
|
2408
2741
|
viewApprovals: "Ver aprovações",
|
|
2409
2742
|
noPendingApprovals: "Sem aprovações pendentes",
|
|
2410
2743
|
openApprovalsInbox: "Abrir caixa de aprovações",
|
|
2744
|
+
badgeTotal: "{{total}} no total",
|
|
2745
|
+
badgeNotifications: "{{unread}} notificações",
|
|
2746
|
+
badgeApprovals: "{{approvals}} aprovações pendentes",
|
|
2411
2747
|
emptyUnread: "Tudo lido",
|
|
2412
2748
|
filterUnread: "Não lidos",
|
|
2413
2749
|
filterAll: "Todos",
|
|
@@ -2694,6 +3030,7 @@ const pt = {
|
|
|
2694
3030
|
dismiss: "Fechar",
|
|
2695
3031
|
openOnCloud: "Abrir na nuvem",
|
|
2696
3032
|
backHome: "Voltar ao início",
|
|
3033
|
+
updateTo: "Atualizar",
|
|
2697
3034
|
},
|
|
2698
3035
|
install: {
|
|
2699
3036
|
dialogTitle: "Instalar {{name}}",
|
|
@@ -2710,6 +3047,37 @@ const pt = {
|
|
|
2710
3047
|
localManifestConflict: "{{message}}\nNota: Um aplicativo local já possui este manifest_id. Remova-o primeiro de objectstack.config.ts.",
|
|
2711
3048
|
localUnauthorized: "Faça login neste runtime primeiro.",
|
|
2712
3049
|
localMarketplaceUnavailable: "Este runtime não tem OS_CLOUD_URL configurado.",
|
|
3050
|
+
updateTo: "Atualizar → v{{version}}",
|
|
3051
|
+
installedVersion: "Instalado v{{version}}",
|
|
3052
|
+
},
|
|
3053
|
+
// objectui#3546 — the MarketplacePage "Your organization" strip.
|
|
3054
|
+
org: {
|
|
3055
|
+
heading: "Sua organização",
|
|
3056
|
+
install: "Instalar",
|
|
3057
|
+
installed: "{{name}} instalado",
|
|
3058
|
+
installedBadge: "Instalado",
|
|
3059
|
+
installing: "Instalando…",
|
|
3060
|
+
},
|
|
3061
|
+
// ADR-0025 PD4 §3.5/§3.11 — the pre-install consent panel
|
|
3062
|
+
// (PluginDisclosure.tsx). `runtime` is a CLOSED enum: spec
|
|
3063
|
+
// PluginRuntimeSchema = z.enum(['node', 'sandbox', 'worker']).
|
|
3064
|
+
disclosure: {
|
|
3065
|
+
containsCode: "Este pacote contém código",
|
|
3066
|
+
reviewed: "Revisado e aprovado",
|
|
3067
|
+
unreviewed: "Ainda não revisado",
|
|
3068
|
+
signed: "Assinado",
|
|
3069
|
+
grantsIntro: "Na instalação, este pacote receberá:",
|
|
3070
|
+
services: "Serviços da plataforma",
|
|
3071
|
+
hooks: "Hooks de ciclo de vida",
|
|
3072
|
+
network: "Acesso à rede",
|
|
3073
|
+
fs: "Acesso ao sistema de arquivos",
|
|
3074
|
+
noPermissions: "Não solicita permissões especiais.",
|
|
3075
|
+
acknowledge: "Entendo que este pacote executa código e recebe as permissões acima.",
|
|
3076
|
+
runtime: {
|
|
3077
|
+
node: "No processo · confiança total",
|
|
3078
|
+
sandbox: "Em sandbox",
|
|
3079
|
+
worker: "Fora do processo",
|
|
3080
|
+
},
|
|
2713
3081
|
},
|
|
2714
3082
|
uninstall: {
|
|
2715
3083
|
confirm: "Desinstalar {{manifestId}} v{{version}} deste runtime?\n\nO manifesto em cache será removido.",
|
|
@@ -2959,6 +3327,34 @@ const pt = {
|
|
|
2959
3327
|
confirmNote: 'Publicar libera atomicamente todos os {{count}} rascunhos pendentes deste pacote.',
|
|
2960
3328
|
publishConfirm: 'Publicar tudo',
|
|
2961
3329
|
},
|
|
3330
|
+
// ADR-0045 — the materialized-but-unlisted app banner
|
|
3331
|
+
// (UnpublishedAppBar.tsx), sibling of draftBar above.
|
|
3332
|
+
unpublishedBar: {
|
|
3333
|
+
message: 'App não publicado — totalmente funcional, mas somente os criadores o veem. Publique-o para que seus usuários o vejam.',
|
|
3334
|
+
publish: 'Publicar',
|
|
3335
|
+
publishing: 'Publicando…',
|
|
3336
|
+
published: 'Publicado! O app já está visível para seus usuários.',
|
|
3337
|
+
publishFailed: 'Falha ao publicar',
|
|
3338
|
+
},
|
|
3339
|
+
// ADR-0067 — the append-only build/revert timeline (CommitTimeline.tsx);
|
|
3340
|
+
// `button` is the banner's entry point into it.
|
|
3341
|
+
history: {
|
|
3342
|
+
button: 'Histórico',
|
|
3343
|
+
title: 'Histórico de compilações',
|
|
3344
|
+
description: 'Todas as alterações deste app, as mais recentes primeiro. Desfaça qualquer etapa para revertê-la — não é necessário confirmar a publicação.',
|
|
3345
|
+
loadFailed: 'Não foi possível carregar o histórico:',
|
|
3346
|
+
loadFailedUnavailable: 'Armazenamento de commits temporariamente inacessível — esta leitura não aconteceu, portanto nenhum histórico é exibido. Tente novamente em instantes.',
|
|
3347
|
+
loading: 'Carregando histórico…',
|
|
3348
|
+
empty: 'Ainda não há histórico para este app.',
|
|
3349
|
+
revertLabel: 'Uma alteração foi desfeita',
|
|
3350
|
+
applyLabel: 'Alteração de compilação',
|
|
3351
|
+
revert: 'desfazer',
|
|
3352
|
+
items: 'itens',
|
|
3353
|
+
revertAction: 'Desfazer',
|
|
3354
|
+
reverted: 'Desfeito — a alteração foi revertida.',
|
|
3355
|
+
revertFailed: 'Falha ao desfazer',
|
|
3356
|
+
revertUnavailable: 'Armazenamento de commits temporariamente inacessível — a reversão pode não ter sido aplicada. Reabra este histórico para verificar antes de tentar novamente.',
|
|
3357
|
+
},
|
|
2962
3358
|
},
|
|
2963
3359
|
filterBuilder: {
|
|
2964
3360
|
where: "Onde",
|
|
@@ -3003,5 +3399,91 @@ const pt = {
|
|
|
3003
3399
|
addSort: "Adicionar ordenação",
|
|
3004
3400
|
removeSort: "Remover ordenação",
|
|
3005
3401
|
},
|
|
3402
|
+
collaboration: {
|
|
3403
|
+
commentCount: "{{count}} comentários",
|
|
3404
|
+
commentCountOne: "{{count}} comentário",
|
|
3405
|
+
resolvedSuffix: " · Resolvido",
|
|
3406
|
+
sortComments: "Ordenar comentários",
|
|
3407
|
+
sortOldest: "Mais antigos",
|
|
3408
|
+
sortNewest: "Mais recentes",
|
|
3409
|
+
resolve: "Resolver",
|
|
3410
|
+
reopen: "Reabrir",
|
|
3411
|
+
justNow: "agora mesmo",
|
|
3412
|
+
minutesAgo: "há {{count}} min",
|
|
3413
|
+
hoursAgo: "há {{count}} h",
|
|
3414
|
+
daysAgo: "há {{count}} d",
|
|
3415
|
+
edited: "(editado)",
|
|
3416
|
+
reactionCount: "{{count}} reações",
|
|
3417
|
+
reactionCountOne: "{{count}} reação",
|
|
3418
|
+
addThumbsUp: "Adicionar curtida",
|
|
3419
|
+
reply: "Responder",
|
|
3420
|
+
reactThumbsUp: "Reagir com curtida",
|
|
3421
|
+
reactHeart: "Reagir com coração",
|
|
3422
|
+
cancelReply: "Cancelar resposta",
|
|
3423
|
+
replyingTo: "Respondendo a {{name}}…",
|
|
3424
|
+
replyingToComment: "Respondendo ao comentário…",
|
|
3425
|
+
commentPlaceholder: "Adicionar um comentário… (use @ para mencionar)",
|
|
3426
|
+
send: "Enviar",
|
|
3427
|
+
presentUserCount: "{{count}} usuários presentes",
|
|
3428
|
+
presentUserCountOne: "{{count}} usuário presente",
|
|
3429
|
+
moreUserCount: "mais {{count}} usuários",
|
|
3430
|
+
moreUserCountOne: "mais {{count}} usuário",
|
|
3431
|
+
userStatusTitle: "{{name}} ({{status}})",
|
|
3432
|
+
statusActive: "ativo",
|
|
3433
|
+
statusIdle: "inativo",
|
|
3434
|
+
statusAway: "ausente",
|
|
3435
|
+
},
|
|
3436
|
+
wizard: {
|
|
3437
|
+
missingRequired: "Preencha os campos obrigatórios: {{fields}}",
|
|
3438
|
+
},
|
|
3439
|
+
appManagement: {
|
|
3440
|
+
title: "Aplicativos",
|
|
3441
|
+
subtitle: "Gerencie todos os aplicativos configurados",
|
|
3442
|
+
newApp: "Novo aplicativo",
|
|
3443
|
+
searchLabel: "Pesquisar aplicativos",
|
|
3444
|
+
searchPlaceholder: "Pesquisar aplicativos…",
|
|
3445
|
+
selectedCount: "{{n}} selecionados",
|
|
3446
|
+
bulkEnable: "Habilitar",
|
|
3447
|
+
bulkDisable: "Desabilitar",
|
|
3448
|
+
selectAll: "Selecionar tudo ({{n}})",
|
|
3449
|
+
empty: "Nenhum aplicativo encontrado.",
|
|
3450
|
+
defaultBadge: "Padrão",
|
|
3451
|
+
active: "Ativo",
|
|
3452
|
+
inactive: "Inativo",
|
|
3453
|
+
selectApp: "Selecionar {{name}}",
|
|
3454
|
+
openApp: "Abrir aplicativo",
|
|
3455
|
+
openAppNamed: "Abrir {{name}}",
|
|
3456
|
+
editApp: "Editar aplicativo",
|
|
3457
|
+
editAppNamed: "Editar {{name}}",
|
|
3458
|
+
editWithAi: "Editar com IA",
|
|
3459
|
+
editWithAiNamed: "Editar {{name}} com IA",
|
|
3460
|
+
enableApp: "Habilitar aplicativo",
|
|
3461
|
+
disableApp: "Desabilitar aplicativo",
|
|
3462
|
+
enableAppNamed: "Habilitar {{name}}",
|
|
3463
|
+
disableAppNamed: "Desabilitar {{name}}",
|
|
3464
|
+
setDefault: "Definir como padrão",
|
|
3465
|
+
setDefaultNamed: "Definir {{name}} como padrão",
|
|
3466
|
+
deleteApp: "Excluir aplicativo",
|
|
3467
|
+
deleteAppNamed: "Excluir {{name}}",
|
|
3468
|
+
confirmDelete: "Clique novamente para confirmar a exclusão",
|
|
3469
|
+
confirmDeleteNamed: "Confirmar a exclusão de {{name}}",
|
|
3470
|
+
toast: {
|
|
3471
|
+
noClient: "Não é possível acessar o serviço de metadados",
|
|
3472
|
+
unknownError: "erro desconhecido",
|
|
3473
|
+
appEnabled: "{{name}} habilitado",
|
|
3474
|
+
appDisabled: "{{name}} desabilitado",
|
|
3475
|
+
toggleFailed: "Falha ao alterar o status do aplicativo: {{reason}}",
|
|
3476
|
+
setDefaultDone: "{{name}} definido como padrão",
|
|
3477
|
+
setDefaultFailed: "Falha ao definir o aplicativo padrão: {{reason}}",
|
|
3478
|
+
appDeleted: "{{name}} excluído",
|
|
3479
|
+
deleteFailed: "Falha ao excluir o aplicativo: {{reason}}",
|
|
3480
|
+
bulkEnabled: "{{n}} aplicativos habilitados",
|
|
3481
|
+
bulkDisabled: "{{n}} aplicativos desabilitados",
|
|
3482
|
+
bulkFailed: "Falha em {{n}}: {{details}}",
|
|
3483
|
+
bulkFailureEntry: "{{name}} ({{reason}})",
|
|
3484
|
+
bulkFailureJoiner: "; ",
|
|
3485
|
+
bulkOperationFailed: "Falha na operação em massa: {{reason}}",
|
|
3486
|
+
},
|
|
3487
|
+
},
|
|
3006
3488
|
};
|
|
3007
3489
|
export default pt;
|