@object-ui/i18n 16.1.0 → 17.1.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 +1133 -0
- package/dist/locales/ar.d.ts +825 -2
- package/dist/locales/ar.js +829 -5
- package/dist/locales/de.d.ts +823 -2
- package/dist/locales/de.js +827 -5
- package/dist/locales/en.d.ts +380 -6
- package/dist/locales/en.js +395 -8
- package/dist/locales/es.d.ts +823 -2
- package/dist/locales/es.js +827 -5
- package/dist/locales/fr.d.ts +825 -2
- package/dist/locales/fr.js +829 -5
- package/dist/locales/index.d.ts +7322 -76
- package/dist/locales/ja.d.ts +823 -2
- package/dist/locales/ja.js +827 -5
- package/dist/locales/ko.d.ts +823 -2
- package/dist/locales/ko.js +827 -5
- package/dist/locales/pt.d.ts +825 -2
- package/dist/locales/pt.js +829 -5
- package/dist/locales/ru.d.ts +825 -2
- package/dist/locales/ru.js +829 -5
- package/dist/locales/zh.d.ts +301 -5
- package/dist/locales/zh.js +303 -5
- package/dist/useObjectLabel.d.ts +24 -12
- package/dist/useObjectLabel.js +50 -41
- package/dist/useSafeTranslation.d.ts +2 -0
- package/dist/useSafeTranslation.js +7 -2
- package/package.json +3 -3
package/dist/locales/pt.js
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
const pt = {
|
|
2
2
|
// objectui#2600 B5 — capability picker scope group headers (labels come from the sys_capability registry).
|
|
3
3
|
capability: {
|
|
4
|
+
label: {
|
|
5
|
+
manage_users: "Gerenciar usuários",
|
|
6
|
+
manage_org_users: "Gerenciar usuários da organização",
|
|
7
|
+
manage_metadata: "Gerenciar metadados",
|
|
8
|
+
manage_platform_settings: "Gerenciar configurações da plataforma",
|
|
9
|
+
setup_access: "Acesso à configuração",
|
|
10
|
+
setup_write: "Gravação de configurações",
|
|
11
|
+
studio_access: "Acesso ao Studio",
|
|
12
|
+
},
|
|
4
13
|
group: {
|
|
5
14
|
platform: 'Plataforma',
|
|
6
15
|
org: 'Organização',
|
|
@@ -74,6 +83,10 @@ const pt = {
|
|
|
74
83
|
package: "Pacote",
|
|
75
84
|
},
|
|
76
85
|
actions: {
|
|
86
|
+
decisionOutput: {
|
|
87
|
+
help: 'Entregue ao fluxo como saída da decisão.',
|
|
88
|
+
helpMultiValue: 'Entregue ao fluxo como saída da decisão. Separe vários valores por vírgulas.',
|
|
89
|
+
},
|
|
77
90
|
resultDialog: {
|
|
78
91
|
defaultTitle: 'Guarde este valor agora',
|
|
79
92
|
acknowledge: 'Eu o salvei',
|
|
@@ -94,6 +107,16 @@ const pt = {
|
|
|
94
107
|
type: "{{field}} deve ser um {{type}} válido",
|
|
95
108
|
},
|
|
96
109
|
form: {
|
|
110
|
+
noPermissionToSave: "Você não tem permissão para salvar este registro.",
|
|
111
|
+
submitFailed: "Não foi possível salvar. Tente novamente.",
|
|
112
|
+
discardTitle: "Descartar as alterações?",
|
|
113
|
+
discardMessage: "Você tem alterações não salvas. Se fechar este formulário agora, suas edições serão perdidas.",
|
|
114
|
+
keepEditing: "Continuar editando",
|
|
115
|
+
discard: "Descartar",
|
|
116
|
+
conflictTitle: "Conflito ao salvar",
|
|
117
|
+
conflictMessage: "Outra pessoa alterou este registro enquanto você editava. Sobrescrever substituirá as alterações dela pelas suas.",
|
|
118
|
+
conflictLatestVersion: "Salvamento dela: {{time}}",
|
|
119
|
+
conflictOverwrite: "Sobrescrever",
|
|
97
120
|
addItem: "Adicionar item",
|
|
98
121
|
removeItem: "Remover item",
|
|
99
122
|
fieldRequired: "Este campo é obrigatório",
|
|
@@ -104,8 +127,6 @@ const pt = {
|
|
|
104
127
|
stepOf: "Etapa {{current}} de {{total}}",
|
|
105
128
|
createTitle: "Criar {{object}}",
|
|
106
129
|
editTitle: "Editar {{object}}",
|
|
107
|
-
createDescription: "Adicionar um novo {{object}} ao seu banco de dados.",
|
|
108
|
-
editDescription: "Atualizar detalhes de {{object}}",
|
|
109
130
|
saveRecord: "Salvar registro",
|
|
110
131
|
create: "Criar",
|
|
111
132
|
update: "Atualizar",
|
|
@@ -114,14 +135,70 @@ const pt = {
|
|
|
114
135
|
deleteSuccess: "{{object}} excluído",
|
|
115
136
|
},
|
|
116
137
|
fields: {
|
|
138
|
+
image: {
|
|
139
|
+
upload: "Enviar imagem",
|
|
140
|
+
addMore: "Adicionar mais imagens",
|
|
141
|
+
uploading: "Enviando…",
|
|
142
|
+
imageAlt: "Imagem {{index}}",
|
|
143
|
+
crop: "Recortar a imagem {{index}}",
|
|
144
|
+
remove: "Remover a imagem {{index}}",
|
|
145
|
+
enlarge: "Ampliar {{name}}",
|
|
146
|
+
preview: "Pré-visualização da imagem",
|
|
147
|
+
previous: "Imagem anterior",
|
|
148
|
+
next: "Próxima imagem",
|
|
149
|
+
counter: "{{current}} / {{total}}",
|
|
150
|
+
},
|
|
117
151
|
relativeDate: {
|
|
118
152
|
overdue: "Atrasado {{count}} d",
|
|
119
153
|
},
|
|
154
|
+
file: {
|
|
155
|
+
dragDropHere: 'Arraste e solte arquivos aqui',
|
|
156
|
+
dropFilesHere: 'Solte os arquivos aqui',
|
|
157
|
+
browseHint: 'ou clique para procurar',
|
|
158
|
+
browseHintCamera: 'ou clique para procurar • use o botão da câmera abaixo',
|
|
159
|
+
takePhoto: 'Tirar foto',
|
|
160
|
+
takeSelfie: 'Tirar selfie',
|
|
161
|
+
cameraCapture: 'Captura da câmera',
|
|
162
|
+
uploading: 'Enviando…',
|
|
163
|
+
uploadingPct: 'Enviando… ({{pct}} %)',
|
|
164
|
+
fileFallback: 'Arquivo',
|
|
165
|
+
upload: 'Enviar',
|
|
166
|
+
remove: 'Remover {{name}}',
|
|
167
|
+
exceedsMaxSize: '"{{name}}" excede o tamanho máximo ({{max}} MB)',
|
|
168
|
+
uploadFailed: 'Falha ao enviar "{{name}}": {{error}}',
|
|
169
|
+
},
|
|
120
170
|
richText: {
|
|
121
171
|
format: "Formato: {{format}}",
|
|
122
172
|
basicEditorHint: "Editor de texto rico (básico)",
|
|
123
173
|
placeholder: "Digite algo...",
|
|
124
174
|
},
|
|
175
|
+
objectRef: {
|
|
176
|
+
loading: "Carregando objetos…",
|
|
177
|
+
placeholder: "Selecionar um objeto",
|
|
178
|
+
search: "Pesquisar objetos…",
|
|
179
|
+
empty: "Nenhum objeto encontrado",
|
|
180
|
+
},
|
|
181
|
+
recipient: {
|
|
182
|
+
selectTypeFirst: "Selecione primeiro um tipo de destinatário.",
|
|
183
|
+
loading: "Carregando…",
|
|
184
|
+
search: "Pesquisar…",
|
|
185
|
+
empty: "Nenhuma correspondência",
|
|
186
|
+
select: "Selecionar um destinatário",
|
|
187
|
+
selectUser: "Selecionar um usuário",
|
|
188
|
+
selectTeam: "Selecionar uma equipe",
|
|
189
|
+
selectBusinessUnit: "Selecionar uma unidade de negócio",
|
|
190
|
+
selectPosition: "Selecionar um cargo",
|
|
191
|
+
selectUnitAndSubordinates: "Selecionar uma unidade de negócio",
|
|
192
|
+
},
|
|
193
|
+
filterCondition: {
|
|
194
|
+
selectObjectFirst: "Selecione primeiro um objeto.",
|
|
195
|
+
noCriteria: "Sem critérios — esta regra não compartilha nada",
|
|
196
|
+
criteriaRequired: "Adicione pelo menos uma condição. Uma regra sem critérios compartilharia todos os registros, portanto não pode ser salva.",
|
|
197
|
+
invalidJson: "JSON inválido — a regra não corresponderá a nenhum registro até ser corrigida.",
|
|
198
|
+
jsonOnly: "Este critério só pode ser editado como JSON",
|
|
199
|
+
editAsJson: "Editar como JSON",
|
|
200
|
+
useVisualBuilder: "Usar o construtor visual",
|
|
201
|
+
},
|
|
125
202
|
},
|
|
126
203
|
table: {
|
|
127
204
|
rowsPerPage: "Linhas por página",
|
|
@@ -156,6 +233,37 @@ const pt = {
|
|
|
156
233
|
delete: "Excluir",
|
|
157
234
|
},
|
|
158
235
|
grid: {
|
|
236
|
+
bulkSelected: "{{count}} selecionados",
|
|
237
|
+
bulkSelectedAllMatches: "{{count}} selecionados (todas as correspondências)",
|
|
238
|
+
bulkClear: "Limpar seleção",
|
|
239
|
+
bulkAllOnPage: "Os {{count}} desta página estão selecionados.",
|
|
240
|
+
bulkSelectAllMatching: "Selecionar todas as {{count}} correspondências",
|
|
241
|
+
bulkAllMatchingSelected: "Todos os {{count}} registros correspondentes estão selecionados.",
|
|
242
|
+
bulk: {
|
|
243
|
+
confirmDefault: "Isto será aplicado a {{count}} registro(s).",
|
|
244
|
+
overLimit: "A seleção ({{count}}) excede o limite da ação ({{limit}}). Reduza a seleção para prosseguir.",
|
|
245
|
+
affectedRecords: "Registros afetados ({{count}}):",
|
|
246
|
+
skippedIneligible: '{{count}} dos registros selecionados não são elegíveis para esta ação e serão ignorados.',
|
|
247
|
+
rowFallback: "Linha {{index}}",
|
|
248
|
+
andMore: "… e mais {{count}}",
|
|
249
|
+
processed: "{{count}} / {{total}} processados",
|
|
250
|
+
processedFailed: " · {{count}} com falha",
|
|
251
|
+
undonePrefix: "Desfeito — ",
|
|
252
|
+
succeeded: "Concluídos {{count}} / {{total}}",
|
|
253
|
+
resultFailed: " · Falhas {{count}}",
|
|
254
|
+
retry: "Tentar novamente",
|
|
255
|
+
downloadErrorCsv: "Baixar CSV de erros",
|
|
256
|
+
cancel: "Cancelar",
|
|
257
|
+
back: "Voltar",
|
|
258
|
+
next: "Avançar",
|
|
259
|
+
run: "Executar",
|
|
260
|
+
running: "Executando…",
|
|
261
|
+
undo: "Desfazer",
|
|
262
|
+
undoing: "Desfazendo…",
|
|
263
|
+
done: "Concluído",
|
|
264
|
+
selectPlaceholder: "Selecionar…",
|
|
265
|
+
loading: "Carregando…",
|
|
266
|
+
},
|
|
159
267
|
actions: "Ações",
|
|
160
268
|
edit: "Editar",
|
|
161
269
|
delete: "Excluir",
|
|
@@ -181,7 +289,88 @@ const pt = {
|
|
|
181
289
|
densityCycleShortHint: "Clique para alterar",
|
|
182
290
|
},
|
|
183
291
|
import: {
|
|
292
|
+
downloadTemplate: "Baixar modelo",
|
|
293
|
+
downloadTemplateHint: "Obtenha um CSV com as colunas corretas (campos obrigatórios marcados com *).",
|
|
294
|
+
templateFileName: "{{object}}-import-template",
|
|
295
|
+
autoMatched: "Correspondência automática",
|
|
296
|
+
autoMatchedSummary: "{{count}} coluna(s) com correspondência automática — revise e ajuste abaixo.",
|
|
297
|
+
confidence: {
|
|
298
|
+
high: "Confiança alta",
|
|
299
|
+
medium: "Confiança média",
|
|
300
|
+
low: "Confiança baixa",
|
|
301
|
+
},
|
|
302
|
+
asyncQueued: "Na fila — preparando a importação…",
|
|
303
|
+
asyncProcessing: "Importando {{processed}} de {{total}} linhas… {{progress}}%",
|
|
304
|
+
asyncLargeHint: "Este arquivo é grande, portanto será importado em segundo plano.",
|
|
305
|
+
largeSampleNotice: "Pré-visualizando as primeiras {{shown}} de {{total}} linhas.",
|
|
306
|
+
cancelImport: "Cancelar a importação",
|
|
307
|
+
importCancelled: "Importação cancelada",
|
|
308
|
+
resultsTruncated: "Mostrando os primeiros {{count}} resultados de linhas (de {{total}}).",
|
|
309
|
+
createdCount: "{{count}} criados",
|
|
310
|
+
updatedCount: "{{count}} atualizados",
|
|
311
|
+
downloadFailed: "Baixar as linhas com falha",
|
|
312
|
+
options: "Opções de importação",
|
|
313
|
+
writeMode: "Quando uma linha corresponde a um registro existente",
|
|
314
|
+
writeModeOpt: {
|
|
315
|
+
insert: "Sempre criar novo",
|
|
316
|
+
update: "Atualizar o existente (ignorar se não houver correspondência)",
|
|
317
|
+
upsert: "Atualizar se corresponder, senão criar",
|
|
318
|
+
},
|
|
319
|
+
matchFields: "Corresponder por",
|
|
320
|
+
matchFieldsPlaceholder: "Escolha o(s) campo(s) de correspondência…",
|
|
321
|
+
matchFieldsHint: "As linhas são associadas a registros existentes por estes campos.",
|
|
322
|
+
needMatchFields: "Selecione pelo menos um campo de correspondência.",
|
|
323
|
+
matchOnlyField: "(somente correspondência)",
|
|
324
|
+
optCreateOptions: "Manter valores de opção desconhecidos",
|
|
325
|
+
optRunAutomations: "Executar automações e gatilhos",
|
|
326
|
+
optTreatHistorical: "Importar como dados históricos",
|
|
327
|
+
optTreatHistoricalHint: "(importa registros concluídos como estão — ignora as verificações da máquina de estados e mantém os carimbos de data/hora e o autor originais em vez de carimbar agora)",
|
|
328
|
+
optSkipBlankKey: "Ignorar linhas com valor de correspondência em branco",
|
|
329
|
+
optBackground: "Importar em segundo plano",
|
|
330
|
+
optBackgroundHint: "(executa como um trabalho reversível)",
|
|
331
|
+
validate: "Validar os dados",
|
|
332
|
+
validating: "Validando…",
|
|
333
|
+
validateHint: "Verificar cada linha no servidor antes de importar.",
|
|
334
|
+
validatePassed: "Todas as {{ok}} linhas são válidas.",
|
|
335
|
+
validateFailed: "{{ok}} válidas, {{errors}} com erros.",
|
|
336
|
+
errorRowPrefix: "Linha {{row}}: ",
|
|
337
|
+
referenceNotFound: "Nenhum registro corresponde a \"{{value}}\"",
|
|
338
|
+
referenceAmbiguous: "\"{{value}}\" corresponde a mais de um registro — use um valor único ou o id do registro",
|
|
339
|
+
invalidBoolean: "\"{{value}}\" não é um valor verdadeiro/falso válido",
|
|
340
|
+
invalidNumber: "\"{{value}}\" não é um número válido",
|
|
341
|
+
invalidDate: "\"{{value}}\" não é uma data válida",
|
|
342
|
+
invalidOption: "\"{{value}}\" não está entre as opções permitidas",
|
|
343
|
+
requiredValue: "Este campo é obrigatório",
|
|
344
|
+
matchAmbiguous: "Corresponde a mais de um registro existente — use um valor único ou o id do registro",
|
|
345
|
+
history: "Histórico",
|
|
346
|
+
historyBack: "Voltar para a importação",
|
|
347
|
+
historyDescription: "Importações recentes deste objeto.",
|
|
348
|
+
historyHint: "Trabalhos de importação em segundo plano, dos mais recentes aos mais antigos.",
|
|
349
|
+
historyRefresh: "Atualizar",
|
|
350
|
+
historyLoading: "Carregando…",
|
|
351
|
+
historyEmpty: "Ainda não há importações.",
|
|
352
|
+
historyUnsupported: "O histórico de importações não está disponível para esta fonte de dados.",
|
|
353
|
+
historyColStatus: "Status",
|
|
354
|
+
historyColRows: "Linhas",
|
|
355
|
+
historyColResult: "Resultado",
|
|
356
|
+
historyColTime: "Quando",
|
|
357
|
+
errorCount: "{{count}} erros",
|
|
358
|
+
undoImport: "Desfazer a importação",
|
|
359
|
+
undoing: "Desfazendo…",
|
|
360
|
+
undoConfirm: "Desfazer esta importação? Os registros criados serão excluídos e os registros atualizados voltarão aos valores anteriores.",
|
|
361
|
+
reverted: "Desfeita",
|
|
362
|
+
jobStatus: {
|
|
363
|
+
pending: "Pendente",
|
|
364
|
+
running: "Em execução",
|
|
365
|
+
succeeded: "Concluída",
|
|
366
|
+
failed: "Falhou",
|
|
367
|
+
cancelled: "Cancelada",
|
|
368
|
+
},
|
|
369
|
+
legacyReferenceBlocked: "Importação bloqueada: {{fields}} são campos de relação que precisam da rota de importação do servidor para converter nomes em IDs de registro, e esta conexão não oferece suporte a isso. Importá-los como texto simples corromperia os dados. Atualize o backend/cliente, ou desfaça o mapeamento dessas colunas e importe-as separadamente.",
|
|
370
|
+
missingRequiredHint: "Não é possível continuar — campos obrigatórios não mapeados: {{fields}}. Adicione uma coluna correspondente ao seu arquivo, ou volte e envie um arquivo que a inclua.",
|
|
371
|
+
legacyFallbackNotice: "Importado por um modo de compatibilidade: esta conexão não oferece suporte à rota de importação do servidor, então os valores foram salvos como texto sem conversão de tipos no servidor. Atualize o backend/cliente para ter a importação completa (conversão de tipos e busca de relações).",
|
|
184
372
|
title: "Importar {{object}}",
|
|
373
|
+
notAllowed: "Este objeto não está aberto para importação.",
|
|
185
374
|
stepUpload: "Enviar",
|
|
186
375
|
stepMapping: "Mapeamento",
|
|
187
376
|
stepPreview: "Pré-visualização",
|
|
@@ -257,6 +446,42 @@ const pt = {
|
|
|
257
446
|
moreEvents: "+{{count}} mais",
|
|
258
447
|
},
|
|
259
448
|
list: {
|
|
449
|
+
firstRunTitle: "Ainda não há nada aqui",
|
|
450
|
+
firstRunMessage: "Crie seu primeiro registro para começar.",
|
|
451
|
+
noMatches: "Nenhum registro correspondente",
|
|
452
|
+
noMatchesMessage: "Nenhum registro corresponde aos seus filtros ou à sua busca atuais. Tente ajustá-los ou limpá-los.",
|
|
453
|
+
loadErrorTitle: "Não foi possível carregar os registros",
|
|
454
|
+
loadErrorMessage: "Algo deu errado ao carregar estes dados. Verifique sua conexão e tente novamente.",
|
|
455
|
+
loadErrorForbiddenTitle: "Você não tem acesso",
|
|
456
|
+
loadErrorForbiddenMessage: "Você não tem permissão para ver estes registros. Contate seu administrador se acha que deveria ter acesso.",
|
|
457
|
+
loadErrorUnauthorizedTitle: "É necessário entrar",
|
|
458
|
+
loadErrorUnauthorizedMessage: "Sua sessão expirou ou você saiu. Entre novamente para ver estes registros.",
|
|
459
|
+
loadErrorRejectedTitle: "A consulta desta visualização foi rejeitada",
|
|
460
|
+
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.",
|
|
461
|
+
retry: "Tentar novamente",
|
|
462
|
+
managedBy: {
|
|
463
|
+
system: {
|
|
464
|
+
title: "Ainda não há nada aqui",
|
|
465
|
+
message: "As entradas aparecem automaticamente quando a ação de origem é executada (por exemplo, Enviar para aprovação, Compartilhar, Convidar). Acione uma delas em um registro de origem para criar uma linha.",
|
|
466
|
+
},
|
|
467
|
+
appendOnly: {
|
|
468
|
+
title: "Nenhum evento registrado",
|
|
469
|
+
message: "Este é um log de auditoria imutável. As linhas são gravadas pela plataforma quando ocorrem eventos — você pode exportar o histórico, mas não criar entradas aqui.",
|
|
470
|
+
},
|
|
471
|
+
betterAuth: {
|
|
472
|
+
title: "Nenhum registro de identidade",
|
|
473
|
+
message: "Estes registros são criados pelo provedor de autenticação — por meio de login, provisionamento e fluxos de segurança — e não adicionados manualmente aqui.",
|
|
474
|
+
},
|
|
475
|
+
betterAuthUser: {
|
|
476
|
+
title: "Ainda não há usuários",
|
|
477
|
+
message: "As contas de usuário são provisionadas pelo provedor de autenticação, não criadas aqui. Convide colegas para sua organização e eles aparecerão automaticamente no primeiro login (provisionamento SSO just-in-time). Os usuários finais do app chegam quando se cadastram por meio dele.",
|
|
478
|
+
},
|
|
479
|
+
betterAuthTeam: {
|
|
480
|
+
title: "Ainda não há equipes",
|
|
481
|
+
message: "As equipes agrupam membros dentro de uma organização. Crie uma com \"Criar equipe\", ou elas surgem pelos fluxos de provisionamento de organização e SSO do seu provedor de autenticação.",
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
refresh: "Atualizar",
|
|
260
485
|
loading: 'Loading records...',
|
|
261
486
|
recordCount: "{{count}} registros",
|
|
262
487
|
recordCountOne: "{{count}} registro",
|
|
@@ -268,6 +493,8 @@ const pt = {
|
|
|
268
493
|
filterRecords: "Filtrar registros",
|
|
269
494
|
sort: "Ordenar",
|
|
270
495
|
sortRecords: "Ordenar registros",
|
|
496
|
+
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, adicione um campo de fórmula que o contenha.",
|
|
271
498
|
group: "Agrupar",
|
|
272
499
|
groupBy: "Agrupar por",
|
|
273
500
|
export: "Exportar",
|
|
@@ -297,6 +524,11 @@ const pt = {
|
|
|
297
524
|
recordEditingTitle: "Edição de registros",
|
|
298
525
|
},
|
|
299
526
|
managedByBadge: {
|
|
527
|
+
systemWritable: {
|
|
528
|
+
short: "Esquema da plataforma",
|
|
529
|
+
title: "Definido pela plataforma, gravável pelo administrador",
|
|
530
|
+
body: "O esquema deste objeto é definido pela plataforma, mas as linhas são suas para criar e editar aqui. Quem pode gravar é determinado pela administração delegada e pela segurança em nível de registro, não por este selo.",
|
|
531
|
+
},
|
|
300
532
|
config: {
|
|
301
533
|
short: "Config. de admin",
|
|
302
534
|
title: "Configuração do administrador",
|
|
@@ -319,6 +551,7 @@ const pt = {
|
|
|
319
551
|
},
|
|
320
552
|
},
|
|
321
553
|
kanban: {
|
|
554
|
+
uncategorized: "Sem categoria",
|
|
322
555
|
addCard: "Adicionar cartão",
|
|
323
556
|
addColumn: "Adicionar coluna",
|
|
324
557
|
moveCard: "Mover cartão",
|
|
@@ -340,12 +573,92 @@ const pt = {
|
|
|
340
573
|
},
|
|
341
574
|
},
|
|
342
575
|
gantt: {
|
|
576
|
+
viewMode: {
|
|
577
|
+
day: "Dia",
|
|
578
|
+
week: "Semana",
|
|
579
|
+
month: "Mês",
|
|
580
|
+
quarter: "Trimestre",
|
|
581
|
+
year: "Ano",
|
|
582
|
+
},
|
|
583
|
+
row: {
|
|
584
|
+
expand: "Expandir",
|
|
585
|
+
collapse: "Recolher",
|
|
586
|
+
open: "Abrir detalhes",
|
|
587
|
+
},
|
|
588
|
+
aria: {
|
|
589
|
+
taskList: "Lista de tarefas",
|
|
590
|
+
},
|
|
591
|
+
tooltip: {
|
|
592
|
+
days: "d",
|
|
593
|
+
},
|
|
594
|
+
menu: {
|
|
595
|
+
view: "Ver detalhes",
|
|
596
|
+
edit: "Editar em linha",
|
|
597
|
+
delete: "Excluir",
|
|
598
|
+
addPredecessor: "Adicionar predecessora…",
|
|
599
|
+
addSuccessor: "Adicionar sucessora…",
|
|
600
|
+
removeDependency: "Remover a dependência",
|
|
601
|
+
noCandidates: "Nenhuma tarefa disponível",
|
|
602
|
+
searchTasks: "Pesquisar tarefas…",
|
|
603
|
+
},
|
|
604
|
+
delete: {
|
|
605
|
+
title: "Excluir esta tarefa?",
|
|
606
|
+
body: "\"{{title}}\" será removida permanentemente. Esta ação não pode ser desfeita.",
|
|
607
|
+
cancel: "Cancelar",
|
|
608
|
+
confirm: "Excluir",
|
|
609
|
+
deleting: "Excluindo…",
|
|
610
|
+
},
|
|
611
|
+
drawer: {
|
|
612
|
+
fallbackTitle: "Detalhes da tarefa",
|
|
613
|
+
},
|
|
614
|
+
linkType: {
|
|
615
|
+
fs: "Término → Início",
|
|
616
|
+
ss: "Início → Início",
|
|
617
|
+
ff: "Término → Término",
|
|
618
|
+
sf: "Início → Término",
|
|
619
|
+
},
|
|
620
|
+
conflict: {
|
|
621
|
+
title: "Conflito de agendamento",
|
|
622
|
+
body: "Esta movimentação conflita com as restrições de dependência. Reagendar automaticamente {{count}} tarefa(s) afetada(s)?",
|
|
623
|
+
confirm: "Reagendar automaticamente",
|
|
624
|
+
cancel: "Manter como está",
|
|
625
|
+
},
|
|
626
|
+
autoScheduleDlg: {
|
|
627
|
+
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.",
|
|
630
|
+
confirm: "Aplicar",
|
|
631
|
+
cancel: "Cancelar",
|
|
632
|
+
none: "Todas as dependências foram atendidas — nada a reagendar.",
|
|
633
|
+
},
|
|
634
|
+
resource: {
|
|
635
|
+
header: "Recurso",
|
|
636
|
+
peak: "Pico",
|
|
637
|
+
over: "sobrecarregado",
|
|
638
|
+
empty: "Nenhuma tarefa para alocar.",
|
|
639
|
+
},
|
|
640
|
+
readOnly: "Somente leitura",
|
|
641
|
+
readOnlyHint: "A edição está desativada nesta visão.",
|
|
642
|
+
lockedHint: "Sem permissão de edição",
|
|
643
|
+
writeFailed: "Falha ao salvar — a alteração foi revertida",
|
|
343
644
|
column: {
|
|
344
645
|
taskName: "Nome da tarefa",
|
|
345
646
|
start: "Início",
|
|
346
647
|
end: "Fim",
|
|
347
648
|
},
|
|
348
649
|
toolbar: {
|
|
650
|
+
thisWeek: "Esta semana",
|
|
651
|
+
thisMonth: "Este mês",
|
|
652
|
+
viewMode: "Granularidade da linha do tempo",
|
|
653
|
+
enterFullscreen: "Entrar em tela cheia",
|
|
654
|
+
exitFullscreen: "Sair da tela cheia",
|
|
655
|
+
criticalPath: "Destacar o caminho crítico",
|
|
656
|
+
autoSchedule: "Agendar dependências automaticamente",
|
|
657
|
+
exportPng: "Exportar como PNG",
|
|
658
|
+
exportPdf: "Exportar PDF",
|
|
659
|
+
saveLayout: "Salvar o layout",
|
|
660
|
+
undo: "Desfazer",
|
|
661
|
+
redo: "Refazer",
|
|
349
662
|
prevPeriod: "Período anterior",
|
|
350
663
|
nextPeriod: "Próximo período",
|
|
351
664
|
zoomIn: "Ampliar",
|
|
@@ -391,6 +704,11 @@ const pt = {
|
|
|
391
704
|
redo: 'Redo',
|
|
392
705
|
},
|
|
393
706
|
detail: {
|
|
707
|
+
editInlineHint: "Clique duas vezes para editar",
|
|
708
|
+
systemActor: "Sistema",
|
|
709
|
+
unknownUser: "Desconhecido",
|
|
710
|
+
created: "Criado",
|
|
711
|
+
updated: "Atualizado",
|
|
394
712
|
back: "Voltar",
|
|
395
713
|
edit: "Editar",
|
|
396
714
|
editInline: "Editar",
|
|
@@ -440,6 +758,18 @@ const pt = {
|
|
|
440
758
|
attachmentCount: "{{count}} anexo",
|
|
441
759
|
attachmentCountPlural: "{{count}} anexos",
|
|
442
760
|
removeAttachment: "Remover anexo",
|
|
761
|
+
// Record Attachments panel (enable.files, objectstack#4358)
|
|
762
|
+
attachments: "Anexos",
|
|
763
|
+
uploadAttachment: "Enviar",
|
|
764
|
+
loadingAttachments: "Carregando anexos…",
|
|
765
|
+
noAttachments: "Ainda não há anexos. Envie um arquivo para começar.",
|
|
766
|
+
downloadAttachment: "Baixar",
|
|
767
|
+
deleteAttachment: "Excluir anexo",
|
|
768
|
+
attachmentDeleteDenied: "Somente quem enviou ou alguém que pode editar este registro pode excluir este anexo.",
|
|
769
|
+
attachmentParentAccessDenied: "Você não tem acesso para anexar arquivos a este registro.",
|
|
770
|
+
attachmentDownloadDenied: "Você não tem acesso para baixar este anexo.",
|
|
771
|
+
attachmentAuthRequired: "Faça login para baixar este anexo.",
|
|
772
|
+
attachmentPermissionDenied: "Você não tem permissão para fazer isso.",
|
|
443
773
|
unifiedDiff: "Visualização unificada",
|
|
444
774
|
sideBySideDiff: "Visualização lado a lado",
|
|
445
775
|
noChanges: "Sem alterações",
|
|
@@ -487,9 +817,15 @@ const pt = {
|
|
|
487
817
|
saving: "Salvando…",
|
|
488
818
|
lockedByApproval: "Bloqueado para aprovação",
|
|
489
819
|
lockedTooltip: "Este registro tem uma solicitação de aprovação pendente; a edição está bloqueada",
|
|
820
|
+
writeStrippedTitle: "Alguns campos não foram salvos",
|
|
821
|
+
writeStrippedReadonly: "Somente leitura, portanto não foi salvo: {{fields}}",
|
|
822
|
+
writeStrippedByState: "Não editável no estado atual deste registro, portanto não foi salvo: {{fields}}",
|
|
823
|
+
approvalPendingEditable: "Em aprovação · editável",
|
|
824
|
+
approvalPendingTooltip: "Este registro tem uma solicitação de aprovação pendente; esta etapa ainda permite a edição",
|
|
490
825
|
cancelApproval: "Cancelar aprovação",
|
|
491
826
|
cancelApprovalInFlight: "Cancelando…",
|
|
492
827
|
cancelApprovalTooltip: "Cancelar a solicitação de aprovação pendente para desbloquear o registro",
|
|
828
|
+
cancelApprovalTooltipUnlocked: "Cancelar a solicitação de aprovação pendente",
|
|
493
829
|
cancelApprovalFailed: "Falha ao cancelar aprovação",
|
|
494
830
|
cancelApprovalUnavailable: "O cancelamento de aprovações não é suportado por esta fonte de dados",
|
|
495
831
|
linkCopied: "Link copiado para a área de transferência",
|
|
@@ -603,6 +939,35 @@ const pt = {
|
|
|
603
939
|
resetZoom: "Redefinir zoom",
|
|
604
940
|
},
|
|
605
941
|
dashboard: {
|
|
942
|
+
noRows: "Sem linhas",
|
|
943
|
+
pickMeasures: "Escolha medidas (valores) para este widget de dataset.",
|
|
944
|
+
datasetUnsupported: "Esta fonte de dados não oferece suporte a consultas de dataset.",
|
|
945
|
+
details: "Detalhes",
|
|
946
|
+
exportCsv: "Exportar CSV",
|
|
947
|
+
openInList: "Abrir na lista",
|
|
948
|
+
filters: {
|
|
949
|
+
label: "Filtros do painel",
|
|
950
|
+
dateRange: "Período",
|
|
951
|
+
allTime: "Todo o período",
|
|
952
|
+
custom: "Personalizado…",
|
|
953
|
+
all: "Tudo",
|
|
954
|
+
reset: "Redefinir",
|
|
955
|
+
range: {
|
|
956
|
+
today: "Hoje",
|
|
957
|
+
yesterday: "Ontem",
|
|
958
|
+
this_week: "Esta semana",
|
|
959
|
+
last_week: "Semana passada",
|
|
960
|
+
this_month: "Este mês",
|
|
961
|
+
last_month: "Mês passado",
|
|
962
|
+
this_quarter: "Este trimestre",
|
|
963
|
+
last_quarter: "Trimestre passado",
|
|
964
|
+
this_year: "Este ano",
|
|
965
|
+
last_year: "Ano passado",
|
|
966
|
+
last_7_days: "Últimos 7 dias",
|
|
967
|
+
last_30_days: "Últimos 30 dias",
|
|
968
|
+
last_90_days: "Últimos 90 dias",
|
|
969
|
+
},
|
|
970
|
+
},
|
|
606
971
|
addWidget: "Adicionar widget",
|
|
607
972
|
removeWidget: "Remover widget",
|
|
608
973
|
editLayout: "Editar layout",
|
|
@@ -730,6 +1095,7 @@ const pt = {
|
|
|
730
1095
|
navTypeGroup: "Grupo",
|
|
731
1096
|
navTypeSeparator: "Separador",
|
|
732
1097
|
navTypeAction: "Ação",
|
|
1098
|
+
navTypeComponent: "Componente",
|
|
733
1099
|
navEditIcon: "Editar ícone",
|
|
734
1100
|
navToggleVisible: "Alternar visibilidade",
|
|
735
1101
|
navHidden: "Oculto",
|
|
@@ -831,8 +1197,199 @@ const pt = {
|
|
|
831
1197
|
},
|
|
832
1198
|
},
|
|
833
1199
|
console: {
|
|
1200
|
+
settingsHub: {
|
|
1201
|
+
title: "Configurações",
|
|
1202
|
+
subtitle: "Configure seu workspace, integrações e sinalizadores de recursos.",
|
|
1203
|
+
loadError: "Falha ao carregar as configurações",
|
|
1204
|
+
empty: "Nenhuma configuração registrada. Os plugins podem registrar manifestos de configuração pelo SettingsService.",
|
|
1205
|
+
settingsCount: "{{n}} configurações",
|
|
1206
|
+
beta: "Beta",
|
|
1207
|
+
categories: {
|
|
1208
|
+
Workspace: "Workspace",
|
|
1209
|
+
Communication: "Comunicação",
|
|
1210
|
+
Security: "Segurança",
|
|
1211
|
+
Infrastructure: "Infraestrutura",
|
|
1212
|
+
Beta: "Beta",
|
|
1213
|
+
Other: "Outros",
|
|
1214
|
+
},
|
|
1215
|
+
},
|
|
1216
|
+
objectData: {
|
|
1217
|
+
badge: "Dados",
|
|
1218
|
+
description: "Recorte de dados definido pela URL — não vinculado a nenhuma visão salva.",
|
|
1219
|
+
filteredBy: "Filtrado por",
|
|
1220
|
+
removeFilter: "Remover o filtro {{field}}",
|
|
1221
|
+
saveAsView: "Salvar como visão",
|
|
1222
|
+
noAccessTitle: "Acesso negado",
|
|
1223
|
+
noAccess: "Você não tem permissão para ver estes dados.",
|
|
1224
|
+
},
|
|
1225
|
+
identityImport: {
|
|
1226
|
+
policyTitle: "Configuração de acesso para usuários importados",
|
|
1227
|
+
policy: {
|
|
1228
|
+
auto: "Automático (recomendado)",
|
|
1229
|
+
invite: "Enviar convites",
|
|
1230
|
+
temporary: "Senhas temporárias",
|
|
1231
|
+
none: "Sem senha (apenas identidade)",
|
|
1232
|
+
},
|
|
1233
|
+
policyHint: {
|
|
1234
|
+
auto: "Usuários acessíveis recebem um convite (e-mail ou SMS); quem não puder ser contatado recebe uma senha de uso único, exibida UMA ÚNICA VEZ na tela de resultados. Funciona com ou sem serviço de e-mail/SMS.",
|
|
1235
|
+
invite: "Cada usuário criado recebe um e-mail para definir a senha (ou um SMS de convite nas linhas apenas com telefone). Requer um serviço de e-mail/SMS configurado — linhas inacessíveis falham.",
|
|
1236
|
+
temporary: "Para implantações sem e-mail/SMS: cada usuário criado recebe uma senha de uso único, exibida UMA ÚNICA VEZ na tela de resultados. O primeiro acesso exige a troca.",
|
|
1237
|
+
none: "Os usuários entram primeiro com um OTP por telefone, um link mágico ou um link de redefinição, e depois definem a própria senha.",
|
|
1238
|
+
},
|
|
1239
|
+
passwordsNote: "Senhas temporárias — exibidas uma única vez, nunca armazenadas. Salve-as agora; cada usuário deve trocar a sua no primeiro acesso.",
|
|
1240
|
+
passwordsMore: "Demais entradas omitidas — use o download.",
|
|
1241
|
+
passwordsDownload: "Baixar CSV",
|
|
1242
|
+
},
|
|
1243
|
+
ai: {
|
|
1244
|
+
usage: {
|
|
1245
|
+
title: "Uso de IA",
|
|
1246
|
+
meterBuild: "Criar",
|
|
1247
|
+
meterAsk: "Perguntar",
|
|
1248
|
+
statusOk: "Ainda há bastante",
|
|
1249
|
+
statusLow: "Está acabando",
|
|
1250
|
+
statusFull: "Limite atingido",
|
|
1251
|
+
resetsDaily: "Redefine hoje à noite",
|
|
1252
|
+
resetsMonthly: "Redefine no próximo ciclo",
|
|
1253
|
+
ctaUpgrade: "Faça upgrade para continuar",
|
|
1254
|
+
ctaTopUp: "Adicione créditos para continuar",
|
|
1255
|
+
ariaLabel: "Uso de IA: {{status}}",
|
|
1256
|
+
},
|
|
1257
|
+
workspaceTitle: "Workspace de IA",
|
|
1258
|
+
workspaceSubtitle: "Pergunte, inspecione e retome conversas",
|
|
1259
|
+
openChats: "Abrir conversas",
|
|
1260
|
+
chats: "Conversas",
|
|
1261
|
+
chatsDescription: "Navegue e gerencie as conversas com a IA.",
|
|
1262
|
+
share: "Compartilhar",
|
|
1263
|
+
shareTitle: "Compartilhar esta conversa",
|
|
1264
|
+
shareDisabledTitle: "Comece a conversar para habilitar o compartilhamento",
|
|
1265
|
+
newChat: "Nova",
|
|
1266
|
+
searchChats: "Pesquisar conversas...",
|
|
1267
|
+
noChatsYet: "Ainda não há conversas",
|
|
1268
|
+
noChatsDescription: "Inicie uma nova conversa para vê-la aqui.",
|
|
1269
|
+
noMatchingChats: "Nenhuma conversa correspondente.",
|
|
1270
|
+
newConversation: "Nova conversa",
|
|
1271
|
+
renameConversation: "Renomear conversa",
|
|
1272
|
+
deleteConversation: "Excluir conversa",
|
|
1273
|
+
saveRename: "Salvar novo nome",
|
|
1274
|
+
cancelRename: "Cancelar renomeação",
|
|
1275
|
+
loadingHistory: "Carregando o histórico da conversa...",
|
|
1276
|
+
conversationReady: "Conversa pronta",
|
|
1277
|
+
preparingConversation: "Preparando uma nova conversa",
|
|
1278
|
+
offlineDemoMode: "Modo de demonstração off-line — lista de agentes indisponível",
|
|
1279
|
+
sendFailedRateLimited: "Você está enviando mensagens rápido demais. Sua mensagem foi mantida abaixo — aguarde um momento e tente novamente.",
|
|
1280
|
+
sendFailedGeneric: "Não foi possível enviar sua mensagem. Ela foi mantida abaixo — tente novamente.",
|
|
1281
|
+
askAgent: "Pergunte a {{agent}}...",
|
|
1282
|
+
assistant: "Assistente",
|
|
1283
|
+
liveCanvas: "Pré-visualização ao vivo — {{app}} (rascunho)",
|
|
1284
|
+
liveCanvasUnlisted: "Aplicativo ao vivo — {{app}} (não listado até ser publicado)",
|
|
1285
|
+
loadingAgents: "Carregando agentes...",
|
|
1286
|
+
askAnything: "Pergunte qualquer coisa...",
|
|
1287
|
+
emptyTitle: "Iniciar uma conversa",
|
|
1288
|
+
emptyDescription: "Pergunte qualquer coisa — o assistente tem acesso ao contexto do seu aplicativo atual.",
|
|
1289
|
+
switchAssistant: "Trocar de assistente",
|
|
1290
|
+
chooseAgent: "Escolher assistente…",
|
|
1291
|
+
empty: {
|
|
1292
|
+
build: {
|
|
1293
|
+
title: "Criar com IA",
|
|
1294
|
+
description: "Descreva um aplicativo ou fluxo de trabalho em linguagem simples — eu rascunho os objetos, telas e automações, e então você revisa e publica.",
|
|
1295
|
+
},
|
|
1296
|
+
ask: {
|
|
1297
|
+
title: "Pergunte aos seus dados",
|
|
1298
|
+
description: "Faça perguntas sobre seus registros — contagens, listas e resumos dos dados a que você tem acesso.",
|
|
1299
|
+
},
|
|
1300
|
+
editApp: {
|
|
1301
|
+
title: "Editando “{{app}}”",
|
|
1302
|
+
titleGeneric: "Editar este aplicativo",
|
|
1303
|
+
description: "O que você quer mudar? Eu altero este aplicativo no lugar — adicionar um campo, objeto, visão ou automação, ou ajustar o que já existe.",
|
|
1304
|
+
},
|
|
1305
|
+
},
|
|
1306
|
+
clearConversation: "Limpar",
|
|
1307
|
+
sendHint: "para enviar",
|
|
1308
|
+
agentActivity: "Atividade do agente",
|
|
1309
|
+
toolCompleted: "Concluído",
|
|
1310
|
+
toolRunning: "Em execução",
|
|
1311
|
+
toolAwaitingApproval: "Aguardando aprovação",
|
|
1312
|
+
toolFailed: "Falhou",
|
|
1313
|
+
toolDetailsHidden: "As entradas das ferramentas e os resultados brutos estão ocultos nesta visão.",
|
|
1314
|
+
copy: "Copiar",
|
|
1315
|
+
copied: "Copiado",
|
|
1316
|
+
regenerate: "Gerar novamente",
|
|
1317
|
+
model: "Modelo",
|
|
1318
|
+
submit: "Enviar",
|
|
1319
|
+
uploadFiles: "Enviar arquivos",
|
|
1320
|
+
stopResponse: "Parar a resposta",
|
|
1321
|
+
trace: "rastro",
|
|
1322
|
+
viewTrace: "Ver o rastro",
|
|
1323
|
+
nextSteps: "Próximos passos",
|
|
1324
|
+
publishDrafts: "Publicar",
|
|
1325
|
+
publishOk: "Publicado — os objetos já estão ativos.",
|
|
1326
|
+
seedWarn: "Publicado, mas alguns dados de exemplo não puderam ser carregados.",
|
|
1327
|
+
openBuiltApp: "Abrir o aplicativo",
|
|
1328
|
+
designBuiltApp: "Projetar no Studio",
|
|
1329
|
+
previewDraft: "Pré-visualizar",
|
|
1330
|
+
previewApp: "Pré-visualizar o aplicativo",
|
|
1331
|
+
resizeSplit: "Redimensionar a conversa e a pré-visualização",
|
|
1332
|
+
hideChats: "Ocultar conversas",
|
|
1333
|
+
showChats: "Mostrar conversas",
|
|
1334
|
+
planTitle: "Plano proposto",
|
|
1335
|
+
planQuestions: "Confirmar antes de criar",
|
|
1336
|
+
planAssumptions: "Suposições",
|
|
1337
|
+
planApproveHint: "Responda para aprovar ou ajustar este plano.",
|
|
1338
|
+
planApprove: "Criar",
|
|
1339
|
+
planAdjust: "Ajustar",
|
|
1340
|
+
justNow: "agora mesmo",
|
|
1341
|
+
minutesAgo: "há {{count}} min",
|
|
1342
|
+
hoursAgo: "há {{count}} h",
|
|
1343
|
+
daysAgo: "há {{count}} d",
|
|
1344
|
+
agentLabels: {
|
|
1345
|
+
ask: "Perguntar",
|
|
1346
|
+
build: "Criar",
|
|
1347
|
+
dataChat: "Assistente",
|
|
1348
|
+
metadataAssistant: "Assistente de metadados",
|
|
1349
|
+
},
|
|
1350
|
+
suggestions: {
|
|
1351
|
+
dataChat: {
|
|
1352
|
+
userCount: "Quantos usuários existem no sistema? Liste os e-mails deles.",
|
|
1353
|
+
recentRecords: "Liste os 5 registros criados mais recentemente.",
|
|
1354
|
+
recordCounts: "Conte os registros de cada objeto.",
|
|
1355
|
+
},
|
|
1356
|
+
metadataAssistant: {
|
|
1357
|
+
buildCrm: "Crie um CRM de vendas — clientes, contatos e um funil de negócios que eu possa totalizar por etapa.",
|
|
1358
|
+
buildApp: "Crie um controle de projetos — projetos, tarefas com responsáveis e prazos, e um quadro por status.",
|
|
1359
|
+
buildFlow: "Projete uma central de suporte — chamados com prioridade, um fluxo de status e vínculos com clientes.",
|
|
1360
|
+
buildInventory: "Crie um aplicativo de estoque — produtos, níveis de estoque, fornecedores e visibilidade de estoque baixo.",
|
|
1361
|
+
buildRecruiting: "Crie um controle de candidaturas — candidatos, vagas abertas, etapas de entrevista e anotações.",
|
|
1362
|
+
},
|
|
1363
|
+
generic: {
|
|
1364
|
+
help: "Com o que você pode me ajudar?",
|
|
1365
|
+
availableObjects: "Liste os objetos de dados disponíveis.",
|
|
1366
|
+
recentActivity: "Resuma minha atividade recente.",
|
|
1367
|
+
},
|
|
1368
|
+
editApp: {
|
|
1369
|
+
addField: "Adicione um campo a um dos objetos.",
|
|
1370
|
+
addObject: "Adicione um novo objeto e relacione-o a um existente.",
|
|
1371
|
+
addDashboard: "Adicione um painel para as métricas principais.",
|
|
1372
|
+
addAutomation: "Adicione uma automação — uma aprovação, um fluxo de status ou uma notificação.",
|
|
1373
|
+
},
|
|
1374
|
+
},
|
|
1375
|
+
changesTitle: "Confirmar alterações",
|
|
1376
|
+
changesConfirmed: "Confirmado",
|
|
1377
|
+
changesConfirm: "Confirmar",
|
|
1378
|
+
changesConfirmHint: "Responda para confirmar ou ajustar esta alteração.",
|
|
1379
|
+
changeVerb: {
|
|
1380
|
+
createObject: "Criar objeto",
|
|
1381
|
+
addField: "Adicionar campo",
|
|
1382
|
+
modifyField: "Modificar campo",
|
|
1383
|
+
deleteField: "Excluir campo",
|
|
1384
|
+
createMetadata: "Criar",
|
|
1385
|
+
updateMetadata: "Modificar",
|
|
1386
|
+
createSeed: "Gerar dados de exemplo",
|
|
1387
|
+
createPackage: "Criar pacote de aplicativo",
|
|
1388
|
+
},
|
|
1389
|
+
},
|
|
834
1390
|
title: "Console ObjectStack",
|
|
835
1391
|
initializing: "Inicializando aplicação...",
|
|
1392
|
+
loadingHint: "Configurar um novo ambiente pode levar alguns instantes.",
|
|
836
1393
|
breadcrumb: {
|
|
837
1394
|
dashboards: "Painéis",
|
|
838
1395
|
pages: "Páginas",
|
|
@@ -874,6 +1431,7 @@ const pt = {
|
|
|
874
1431
|
toggleDarkMode: "Alternar modo escuro",
|
|
875
1432
|
},
|
|
876
1433
|
commandPalette: {
|
|
1434
|
+
title: "Paleta de comandos",
|
|
877
1435
|
placeholder: "Digite um comando ou pesquise...",
|
|
878
1436
|
noResults: "Nenhum resultado encontrado.",
|
|
879
1437
|
objects: "Objetos",
|
|
@@ -907,6 +1465,14 @@ const pt = {
|
|
|
907
1465
|
system: "Sistema",
|
|
908
1466
|
},
|
|
909
1467
|
objectView: {
|
|
1468
|
+
viewTypeTree: "Árvore",
|
|
1469
|
+
viewTypeTreeDesc: "Aninha registros autorreferenciados em uma hierarquia por um campo pai.",
|
|
1470
|
+
parentField: "Campo pai",
|
|
1471
|
+
parentFieldHelp: "O campo que aponta para o registro pai (mesmo objeto) e define a hierarquia. Apenas campos autorreferenciados são válidos.",
|
|
1472
|
+
viewName: "Nome",
|
|
1473
|
+
viewNameHelp: "Chave técnica (snake_case). Preenchida automaticamente a partir do título — edite se quiser.",
|
|
1474
|
+
viewNameRequired: "Informe uma chave (letras minúsculas, números, sublinhado). Não é preenchida automaticamente para títulos não latinos.",
|
|
1475
|
+
viewNameInvalid: "Use letras minúsculas, números e sublinhados; comece com uma letra ou sublinhado.",
|
|
910
1476
|
systemViewReadonly: 'System view defined in code - duplicate to customize.',
|
|
911
1477
|
expandToPage: 'Open as full page',
|
|
912
1478
|
objectNotFound: "Objeto não encontrado",
|
|
@@ -1120,7 +1686,28 @@ const pt = {
|
|
|
1120
1686
|
},
|
|
1121
1687
|
},
|
|
1122
1688
|
auth: {
|
|
1689
|
+
setPassword: {
|
|
1690
|
+
title: "Definir uma senha de recuperação",
|
|
1691
|
+
description: "Você entrou por logon único. Defina uma senha local para continuar conseguindo acessar este ambiente diretamente caso o SSO fique indisponível.",
|
|
1692
|
+
email: "E-mail",
|
|
1693
|
+
newPassword: "Nova senha",
|
|
1694
|
+
confirmPassword: "Confirmar a senha",
|
|
1695
|
+
submit: "Definir a senha",
|
|
1696
|
+
submitting: "Salvando…",
|
|
1697
|
+
success: "Senha local definida",
|
|
1698
|
+
failed: "Não foi possível definir a senha",
|
|
1699
|
+
passwordsMismatch: "As senhas não coincidem",
|
|
1700
|
+
noSession: "Sua sessão expirou.",
|
|
1701
|
+
backToSignIn: "Entrar novamente",
|
|
1702
|
+
},
|
|
1123
1703
|
login: {
|
|
1704
|
+
signingIn: "Entrando…",
|
|
1705
|
+
ssoHandoff: "Continuar para {{target}}",
|
|
1706
|
+
devAdminHint: {
|
|
1707
|
+
title: "Instância de desenvolvimento",
|
|
1708
|
+
body: "Entre com o administrador de desenvolvimento pré-configurado:",
|
|
1709
|
+
dismiss: "Dispensar",
|
|
1710
|
+
},
|
|
1124
1711
|
title: "Entre na sua conta",
|
|
1125
1712
|
description: "Digite seu e-mail e senha para continuar",
|
|
1126
1713
|
emailLabel: "E-mail",
|
|
@@ -1133,6 +1720,7 @@ const pt = {
|
|
|
1133
1720
|
noAccountText: "Não tem uma conta?",
|
|
1134
1721
|
signUpText: "Cadastre-se",
|
|
1135
1722
|
errors: {
|
|
1723
|
+
oauthCallbackFailed: "Não foi possível concluir o logon único — o link de acesso expirou ou já foi utilizado. Tente novamente.",
|
|
1136
1724
|
invalidCredentials: "E-mail ou senha inválidos. Por favor, tente novamente.",
|
|
1137
1725
|
emailNotVerified: "Por favor, verifique seu e-mail antes de fazer login.",
|
|
1138
1726
|
},
|
|
@@ -1258,6 +1846,40 @@ const pt = {
|
|
|
1258
1846
|
shell: {
|
|
1259
1847
|
tenantHostHint: "Você está fazendo login neste espaço de trabalho",
|
|
1260
1848
|
},
|
|
1849
|
+
layout: {
|
|
1850
|
+
headline: "Crie aplicativos de negócios poderosos, com mais rapidez.",
|
|
1851
|
+
subhead: "A plataforma universal para gestão de dados corporativos, fluxos de trabalho e analytics.",
|
|
1852
|
+
},
|
|
1853
|
+
remediation: {
|
|
1854
|
+
signOut: "Sair da conta",
|
|
1855
|
+
password: {
|
|
1856
|
+
title: "Sua senha expirou",
|
|
1857
|
+
fallbackMessage: "Defina uma nova senha para continuar.",
|
|
1858
|
+
current: "Senha atual",
|
|
1859
|
+
next: "Nova senha",
|
|
1860
|
+
confirm: "Confirmar nova senha",
|
|
1861
|
+
submit: "Alterar senha e continuar",
|
|
1862
|
+
submitting: "Atualizando…",
|
|
1863
|
+
mismatch: "As novas senhas não coincidem.",
|
|
1864
|
+
failed: "Não foi possível alterar a senha.",
|
|
1865
|
+
},
|
|
1866
|
+
mfa: {
|
|
1867
|
+
title: "Configurar a autenticação em duas etapas",
|
|
1868
|
+
fallbackMessage: "Sua organização exige um aplicativo autenticador para continuar.",
|
|
1869
|
+
confirmPassword: "Confirme sua senha",
|
|
1870
|
+
continue: "Continuar",
|
|
1871
|
+
preparing: "Preparando…",
|
|
1872
|
+
enrollFailed: "Não foi possível iniciar o registro.",
|
|
1873
|
+
scanTitle: "Escaneie com seu aplicativo autenticador",
|
|
1874
|
+
scanBody: "Escaneie este QR code com o Google Authenticator, 1Password, Authy etc. e digite o código de 6 dígitos.",
|
|
1875
|
+
backupTitle: "Salve seus códigos de backup",
|
|
1876
|
+
backupBody: "Guarde-os em local seguro — cada um pode ser usado uma vez se você perder seu dispositivo.",
|
|
1877
|
+
codeLabel: "Código de 6 dígitos",
|
|
1878
|
+
verify: "Verificar e continuar",
|
|
1879
|
+
verifying: "Verificando…",
|
|
1880
|
+
invalidCode: "Código inválido. Tente novamente.",
|
|
1881
|
+
},
|
|
1882
|
+
},
|
|
1261
1883
|
},
|
|
1262
1884
|
profile: {
|
|
1263
1885
|
title: "Perfil",
|
|
@@ -1322,11 +1944,15 @@ const pt = {
|
|
|
1322
1944
|
settings: "Configurações do espaço de trabalho",
|
|
1323
1945
|
},
|
|
1324
1946
|
help: {
|
|
1947
|
+
onThisPage: "Nesta página",
|
|
1948
|
+
keyboardShortcuts: "Atalhos de teclado",
|
|
1325
1949
|
appDocs: 'Documentação deste app',
|
|
1326
1950
|
allDocs: 'Toda a documentação',
|
|
1327
1951
|
onlineDocs: 'Documentação online',
|
|
1328
1952
|
},
|
|
1329
1953
|
sidebar: {
|
|
1954
|
+
packageManagement: "Gerenciamento de pacotes",
|
|
1955
|
+
searchNavigation: "Pesquisar na navegação...",
|
|
1330
1956
|
settings: "Configurações",
|
|
1331
1957
|
help: "Ajuda",
|
|
1332
1958
|
helpTooltip: "Ajuda e documentação",
|
|
@@ -1343,14 +1969,66 @@ const pt = {
|
|
|
1343
1969
|
removeFromFavorites: "Remover {{name}} dos favoritos",
|
|
1344
1970
|
},
|
|
1345
1971
|
topbar: {
|
|
1972
|
+
openAssistant: "Abrir o assistente {{name}}",
|
|
1973
|
+
offline: "Off-line",
|
|
1974
|
+
usersOnline: "Usuários on-line no momento",
|
|
1975
|
+
switchView: "Trocar de visão",
|
|
1976
|
+
switchObject: "Trocar de objeto",
|
|
1977
|
+
connection: {
|
|
1978
|
+
connected: "Conectado",
|
|
1979
|
+
connecting: "Conectando...",
|
|
1980
|
+
reconnecting: "Reconectando...",
|
|
1981
|
+
disconnected: "Desconectado",
|
|
1982
|
+
error: "Erro de conexão",
|
|
1983
|
+
},
|
|
1984
|
+
stage: {
|
|
1985
|
+
preview: "Pré-visualização",
|
|
1986
|
+
beta: "Beta",
|
|
1987
|
+
tooltip: "Esta plataforma está em pré-visualização — os recursos podem mudar.",
|
|
1988
|
+
},
|
|
1346
1989
|
aiAssistant: "Assistente de IA",
|
|
1347
1990
|
designInStudio: "Projetar no Studio",
|
|
1348
1991
|
},
|
|
1349
1992
|
home: {
|
|
1993
|
+
build: {
|
|
1994
|
+
title: "Criar um aplicativo",
|
|
1995
|
+
subtitle: "Comece do zero — projete objetos, formulários, automações e interfaces.",
|
|
1996
|
+
},
|
|
1997
|
+
template: {
|
|
1998
|
+
title: "Comece com um modelo",
|
|
1999
|
+
subtitle: "Instale um aplicativo modelo do marketplace e personalize-o.",
|
|
2000
|
+
},
|
|
2001
|
+
welcomeAdminDescription: "Descreva seu negócio em uma frase — a IA gera os objetos, as telas, as APIs e as ferramentas do agente. Ou configure você mesmo pelo menu à esquerda.",
|
|
2002
|
+
welcomeAdminDescriptionNoBuild: "Configure seu primeiro aplicativo pelo menu de Administração à esquerda. Quando houver dados, o assistente de IA poderá ajudar a explorá-los.",
|
|
2003
|
+
welcomeAdminDescriptionNoAi: "Configure seu primeiro aplicativo pelo menu de Administração à esquerda.",
|
|
2004
|
+
noAppsTitle: "Ainda não há aplicativos",
|
|
2005
|
+
noAppsDescription: "Seu workspace está sendo preparado — os aplicativos que seu administrador compartilhar aparecerão aqui.",
|
|
2006
|
+
buildWithAI: "Criar com IA",
|
|
2007
|
+
askAI: "Perguntar à IA",
|
|
2008
|
+
recoveryReminder: {
|
|
2009
|
+
message: "Defina uma senha de recuperação para conseguir entrar mesmo que o logon único fique indisponível.",
|
|
2010
|
+
cta: "Definir senha",
|
|
2011
|
+
dismiss: "Dispensar",
|
|
2012
|
+
},
|
|
2013
|
+
pendingDrafts: {
|
|
2014
|
+
message: "Você tem {{count}} alteração(ões) não publicada(s) — publique para ativá-las.",
|
|
2015
|
+
cta: "Publicar",
|
|
2016
|
+
publishing: "Publicando…",
|
|
2017
|
+
published: "Publicado! Suas alterações estão ativas.",
|
|
2018
|
+
publishFailed: "Falha ao publicar",
|
|
2019
|
+
},
|
|
1350
2020
|
title: "Início",
|
|
1351
2021
|
subtitle: "Painel do seu espaço de trabalho",
|
|
1352
2022
|
nav: "Início",
|
|
1353
2023
|
allApps: "Todas as aplicações",
|
|
2024
|
+
yourApps: "As suas aplicações",
|
|
2025
|
+
showMoreApps: "Mais",
|
|
2026
|
+
showLess: "Mostrar menos",
|
|
2027
|
+
continueEmpty: "Os itens que abrir aparecerão aqui.",
|
|
2028
|
+
actionCenter: {
|
|
2029
|
+
title: "Requer a sua atenção",
|
|
2030
|
+
empty: "Está tudo em dia",
|
|
2031
|
+
},
|
|
1354
2032
|
loading: "Carregando espaço de trabalho...",
|
|
1355
2033
|
recent: "Recentes",
|
|
1356
2034
|
starred: "Favoritos",
|
|
@@ -1402,7 +2080,21 @@ const pt = {
|
|
|
1402
2080
|
},
|
|
1403
2081
|
},
|
|
1404
2082
|
layout: {
|
|
2083
|
+
systemNav: {
|
|
2084
|
+
systemSettings: "Configurações do sistema",
|
|
2085
|
+
applications: "Aplicativos",
|
|
2086
|
+
appMarketplace: "Marketplace de aplicativos",
|
|
2087
|
+
objectManager: "Gerenciador de objetos",
|
|
2088
|
+
users: "Usuários",
|
|
2089
|
+
organizations: "Organizações",
|
|
2090
|
+
roles: "Perfis",
|
|
2091
|
+
configuration: "Configuração",
|
|
2092
|
+
createApp: "Criar aplicativo",
|
|
2093
|
+
},
|
|
1405
2094
|
appSwitcher: {
|
|
2095
|
+
switchApplication: "Trocar de aplicativo",
|
|
2096
|
+
appsAvailable: "{{count}} aplicativos disponíveis",
|
|
2097
|
+
editNavigation: "Editar a navegação",
|
|
1406
2098
|
home: "Início",
|
|
1407
2099
|
addApp: "Adicionar aplicativo",
|
|
1408
2100
|
editApp: "Editar aplicativo",
|
|
@@ -1495,8 +2187,8 @@ const pt = {
|
|
|
1495
2187
|
uploading: "Enviando…",
|
|
1496
2188
|
defaultActionTitle: "Ação",
|
|
1497
2189
|
ok: "OK",
|
|
1498
|
-
lookupPlaceholder: "
|
|
1499
|
-
lookupHelpText: "
|
|
2190
|
+
lookupPlaceholder: "ID do registro para {{label}}",
|
|
2191
|
+
lookupHelpText: "Este parâmetro não tem um objeto de referência configurado, portanto o seletor de registros não está disponível. Insira um ID de registro ou peça a um administrador para corrigir o parâmetro da ação.",
|
|
1500
2192
|
},
|
|
1501
2193
|
actionConfirm: {
|
|
1502
2194
|
title: "Confirmar ação",
|
|
@@ -1521,6 +2213,8 @@ const pt = {
|
|
|
1521
2213
|
updateFailed: "Não foi possível atualizar a navegação",
|
|
1522
2214
|
},
|
|
1523
2215
|
objectActions: {
|
|
2216
|
+
resetPackageSetConfirm: "Este conjunto de permissões acompanha um pacote instalado e não pode ser removido. Excluí-lo o redefine para a versão original do pacote e descarta suas personalizações neste ambiente. Continuar?",
|
|
2217
|
+
resetPackageSetSuccess: "Conjunto de permissões redefinido para a versão original do pacote",
|
|
1524
2218
|
deleteSuccess: "{{label}} excluído com sucesso",
|
|
1525
2219
|
deleteFailed: "Não foi possível excluir {{label}}",
|
|
1526
2220
|
noRecordId: "Nenhum ID de registro fornecido",
|
|
@@ -1685,6 +2379,7 @@ const pt = {
|
|
|
1685
2379
|
},
|
|
1686
2380
|
},
|
|
1687
2381
|
organizations: {
|
|
2382
|
+
create: "Criar workspace",
|
|
1688
2383
|
mine: "Minhas organizações",
|
|
1689
2384
|
title: "Organizações",
|
|
1690
2385
|
heading: "Suas organizações",
|
|
@@ -1698,6 +2393,11 @@ const pt = {
|
|
|
1698
2393
|
noMatches: "Nenhuma organização corresponde à sua pesquisa.",
|
|
1699
2394
|
},
|
|
1700
2395
|
notifications: {
|
|
2396
|
+
regionLabel: "Notificações",
|
|
2397
|
+
groupCount: "{{count}} notificações",
|
|
2398
|
+
groupUnread: "{{count}} não lidas",
|
|
2399
|
+
groupMarkRead: "Marcar como lidas",
|
|
2400
|
+
groupMarkReadTitle: "Marcar todas deste tipo como lidas",
|
|
1701
2401
|
empty: "Sem notificações",
|
|
1702
2402
|
markAllRead: "Marcar tudo como lido",
|
|
1703
2403
|
viewAll: "Ver todas as notificações",
|
|
@@ -1816,7 +2516,103 @@ const pt = {
|
|
|
1816
2516
|
done: 'Concluído — ocultar',
|
|
1817
2517
|
},
|
|
1818
2518
|
},
|
|
2519
|
+
excelImport: {
|
|
2520
|
+
noImportableFields: "Esse objeto não tem campos importáveis.",
|
|
2521
|
+
schemaReadFailed: "Não foi possível ler o esquema do objeto.",
|
|
2522
|
+
imported: "{{count}} linha(s) importada(s) para {{object}}.",
|
|
2523
|
+
importFrom: "Importar as linhas reais de",
|
|
2524
|
+
into: "para",
|
|
2525
|
+
opening: "Abrindo…",
|
|
2526
|
+
importAction: "Importar",
|
|
2527
|
+
dismiss: "Dispensar",
|
|
2528
|
+
},
|
|
2529
|
+
cloudOnboarding: {
|
|
2530
|
+
hintCreate: "Crie seu primeiro ambiente — um espaço de trabalho privado com URL, banco de dados e plano próprios. A construção acontece dentro dele.",
|
|
2531
|
+
hintReady: "Seu ambiente de produção está pronto. Abra-o para criar e executar seus aplicativos — tudo acontece dentro do ambiente.",
|
|
2532
|
+
createEnvironment: "Crie seu ambiente",
|
|
2533
|
+
openProduction: "Abrir produção",
|
|
2534
|
+
manageEnvironments: "Gerenciar ambientes",
|
|
2535
|
+
},
|
|
2536
|
+
aiModelStatus: {
|
|
2537
|
+
summary: "Criar / Perguntar usa {{conversational}} ({{conversationalSource}}); estruturado usa {{structured}} ({{structuredSource}}).",
|
|
2538
|
+
summaryRouting: "Política de roteamento: planos gratuitos → {{free}}, planos pagos → {{paid}}.",
|
|
2539
|
+
modelUnknown: "desconhecido",
|
|
2540
|
+
sourceUnknown: "não informado pelo adaptador",
|
|
2541
|
+
rowConversational: "Modelo Build / Ask",
|
|
2542
|
+
rowStructured: "Estruturado (blueprint / seed)",
|
|
2543
|
+
rowReasoning: "Esforço de raciocínio",
|
|
2544
|
+
readFailed: "Não foi possível ler o modelo de IA efetivo. Este ambiente pode não executar um serviço de IA, ou você pode não ter a permissão ai:read.",
|
|
2545
|
+
readFailedWithStatus: "Não foi possível ler o modelo de IA efetivo (HTTP {{status}}). Este ambiente pode não executar um serviço de IA, ou você pode não ter a permissão ai:read.",
|
|
2546
|
+
overridesInEffect: "Substituições em vigor: ",
|
|
2547
|
+
noOverrides: "nenhuma — usando os padrões do código implantado.",
|
|
2548
|
+
adapter: "Adaptador: ",
|
|
2549
|
+
sourceCodeDefault: "padrão do código (sem substituição env)",
|
|
2550
|
+
sourceInherits: "igual a build/ask",
|
|
2551
|
+
sourcePinned: "fixado por {{source}}",
|
|
2552
|
+
},
|
|
2553
|
+
chatbotError: {
|
|
2554
|
+
title: "Falha na resposta",
|
|
2555
|
+
fallbackDetail: "Algo deu errado. Tente novamente.",
|
|
2556
|
+
details: "Detalhes",
|
|
2557
|
+
hide: "Ocultar",
|
|
2558
|
+
retry: "Tentar novamente",
|
|
2559
|
+
},
|
|
2560
|
+
chatbotQuota: {
|
|
2561
|
+
title: "Upgrade necessário",
|
|
2562
|
+
fallbackMessage: "Você atingiu sua cota de IA.",
|
|
2563
|
+
buyCredits: "Comprar um pacote de créditos",
|
|
2564
|
+
upgradePlan: "Fazer upgrade do plano",
|
|
2565
|
+
},
|
|
2566
|
+
environment: {
|
|
2567
|
+
addEnvironment: "Adicionar ambiente",
|
|
2568
|
+
setUpProduction: "Configure seu ambiente de produção",
|
|
2569
|
+
addDevelopment: "Adicionar ambiente de desenvolvimento",
|
|
2570
|
+
},
|
|
2571
|
+
cloudConnection: {
|
|
2572
|
+
checking: "Verificando a conexão…",
|
|
2573
|
+
retry: "Tentar novamente",
|
|
2574
|
+
errors: {
|
|
2575
|
+
expired: "A solicitação expirou antes de ser aprovada. Comece novamente.",
|
|
2576
|
+
bindFailed: "Falha ao vincular.",
|
|
2577
|
+
deviceCodeFailed: "Falha na solicitação do código do dispositivo.",
|
|
2578
|
+
},
|
|
2579
|
+
waiting: {
|
|
2580
|
+
popupOpened: "Aprove a conexão na janela que acabou de abrir — esta página se atualiza sozinha.",
|
|
2581
|
+
polling: "Aguardando a aprovação no console da nuvem…",
|
|
2582
|
+
openApproval: "Abrir a página de aprovação",
|
|
2583
|
+
copy: "Copiar",
|
|
2584
|
+
copied: "Copiado",
|
|
2585
|
+
codePrefilled: "O código já vem preenchido na página de aprovação.",
|
|
2586
|
+
openItHere: "A janela não apareceu? Abra aqui",
|
|
2587
|
+
cancel: "Cancelar",
|
|
2588
|
+
},
|
|
2589
|
+
bound: {
|
|
2590
|
+
title: "Conectado ao ObjectStack Cloud",
|
|
2591
|
+
runtime: "Runtime",
|
|
2592
|
+
organization: "Organização",
|
|
2593
|
+
approvedBy: "Aprovado por",
|
|
2594
|
+
runtimeId: "ID do runtime",
|
|
2595
|
+
environment: "Ambiente",
|
|
2596
|
+
since: "Desde",
|
|
2597
|
+
privatePackages: "Os pacotes privados da sua organização agora aparecem no Marketplace em “Sua organização”.",
|
|
2598
|
+
disconnect: "Desconectar",
|
|
2599
|
+
},
|
|
2600
|
+
unbound: {
|
|
2601
|
+
title: "Não conectado",
|
|
2602
|
+
body: "Conecte este runtime a um plano de controle do ObjectStack para explorar os pacotes privados da sua organização e instalá-los aqui. A aprovação é um único clique na sua conta da nuvem — nenhum id ou credencial é digitado nesta página.",
|
|
2603
|
+
connect: "Conectar",
|
|
2604
|
+
},
|
|
2605
|
+
},
|
|
1819
2606
|
marketplace: {
|
|
2607
|
+
suggestedBindings: {
|
|
2608
|
+
promptEveryone: "Este app sugere conceder \"{{set}}\" a todos os usuários autenticados (a posição Everyone).",
|
|
2609
|
+
promptGuest: "Este app sugere conceder \"{{set}}\" a visitantes não autenticados (a posição Guest).",
|
|
2610
|
+
confirm: "Conceder",
|
|
2611
|
+
confirming: "Concedendo…",
|
|
2612
|
+
dismiss: "Dispensar",
|
|
2613
|
+
confirmedToast: "\"{{set}}\" agora está concedido a {{anchor}}.",
|
|
2614
|
+
dismissedToast: "Sugestão de \"{{set}}\" dispensada.",
|
|
2615
|
+
},
|
|
1820
2616
|
title: "Marketplace de aplicativos",
|
|
1821
2617
|
subtitle: "Explore aplicativos aprovados publicados no catálogo ObjectStack. Clique em um aplicativo para ver os detalhes e instalá-lo em um de seus ambientes.",
|
|
1822
2618
|
searchPlaceholder: "Pesquisar aplicativos por nome ou ID de manifesto…",
|
|
@@ -1868,6 +2664,7 @@ const pt = {
|
|
|
1868
2664
|
updateAvailable: 'Atualização disponível',
|
|
1869
2665
|
},
|
|
1870
2666
|
action: {
|
|
2667
|
+
installed: "Instalado",
|
|
1871
2668
|
install: "Instalar",
|
|
1872
2669
|
reinstall: "Reinstalar",
|
|
1873
2670
|
working: "Processando…",
|
|
@@ -1938,6 +2735,14 @@ const pt = {
|
|
|
1938
2735
|
yearsAgo: "há {{count}} anos",
|
|
1939
2736
|
},
|
|
1940
2737
|
},
|
|
2738
|
+
approvals: {
|
|
2739
|
+
approve: 'Aprovar',
|
|
2740
|
+
reject: 'Rejeitar',
|
|
2741
|
+
comment: 'Comentário (opcional)',
|
|
2742
|
+
approveSuccess: 'Aprovado',
|
|
2743
|
+
rejectSuccess: 'Rejeitado',
|
|
2744
|
+
rejectConfirm: 'Rejeitar esta solicitação de aprovação?',
|
|
2745
|
+
},
|
|
1941
2746
|
approvalsInbox: {
|
|
1942
2747
|
loadMore: 'Carregar mais',
|
|
1943
2748
|
loadingMore: 'Carregando…',
|
|
@@ -1962,13 +2767,28 @@ const pt = {
|
|
|
1962
2767
|
slaRemaining: 'SLA: faltam {{dur}}',
|
|
1963
2768
|
slaOverdue: 'SLA vencido há {{dur}}',
|
|
1964
2769
|
actReassign: 'Reatribuída',
|
|
2770
|
+
reassignFromTo: 'de {{from}} para {{to}}',
|
|
1965
2771
|
actRemind: 'Lembrete',
|
|
1966
2772
|
actRequestInfo: 'Pediu mais informações',
|
|
1967
2773
|
actComment: 'Comentou',
|
|
1968
2774
|
stepProgress: 'Etapas de aprovação',
|
|
1969
2775
|
prevRequest: 'Anterior',
|
|
1970
2776
|
nextRequest: 'Próxima',
|
|
1971
|
-
positionOf: '{{index}} de {{total}}',
|
|
2777
|
+
positionOf: 'Solicitação {{index}} de {{total}}',
|
|
2778
|
+
progressApprovals: 'Aprovações — {{got}} de {{need}}',
|
|
2779
|
+
progressGroups: 'Progresso de assinaturas — {{got}} de {{need}} grupos',
|
|
2780
|
+
progressEligible: '{{count}} aprovador(es) elegível(eis)',
|
|
2781
|
+
progressBar: 'Progresso da decisão',
|
|
2782
|
+
declaredActions: 'Ações',
|
|
2783
|
+
attachmentChip: 'Anexo',
|
|
2784
|
+
attachmentOpenFailed: 'Não foi possível abrir o anexo — tente novamente',
|
|
2785
|
+
approveOneTitle: 'Aprovar "{{title}}"?',
|
|
2786
|
+
approveOneBody: 'Isso aprova a solicitação com a sua identidade. Para adicionar um comentário ou anexo, abra a solicitação.',
|
|
2787
|
+
flowOrigin: 'Iniciada por fluxo',
|
|
2788
|
+
sortBy: 'Ordenar',
|
|
2789
|
+
sortRecent: 'Mais recentes primeiro',
|
|
2790
|
+
sortOldest: 'Mais antigas primeiro',
|
|
2791
|
+
sortAmount: 'Valor (maior→menor)',
|
|
1972
2792
|
quickPhrase1: 'Aprovada — atende aos requisitos.',
|
|
1973
2793
|
quickPhrase2: 'Aprovada com condições — acompanhe a execução.',
|
|
1974
2794
|
quickPhrase3: 'Adicione material de apoio e reenvie.',
|
|
@@ -2097,6 +2917,10 @@ const pt = {
|
|
|
2097
2917
|
retry: 'Tentar novamente',
|
|
2098
2918
|
},
|
|
2099
2919
|
draftBar: {
|
|
2920
|
+
messageClean: "Pré-visualização do rascunho — não há alterações não publicadas; tudo aqui já está no ar.",
|
|
2921
|
+
sampleDataTitle: "Os dados de exemplo aparecem depois que você publicar",
|
|
2922
|
+
sampleDataBody: "Você está pré-visualizando a estrutura do seu app. Publique para carregar registros de exemplo e colocá-lo no ar.",
|
|
2923
|
+
publishCta: "Publicar para ver no ar",
|
|
2100
2924
|
message: 'Pré-visualização de rascunho — você está vendo alterações não publicadas. Nada entra no ar até você publicar.',
|
|
2101
2925
|
publish: 'Publicar',
|
|
2102
2926
|
publishing: 'Publicando…',
|