@moraya/core 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/README.md +215 -41
  2. package/dist/ai/drivers/claude.d.ts +6 -0
  3. package/dist/ai/drivers/claude.js +229 -0
  4. package/dist/ai/drivers/claude.js.map +1 -0
  5. package/dist/ai/drivers/gemini.d.ts +6 -0
  6. package/dist/ai/drivers/gemini.js +212 -0
  7. package/dist/ai/drivers/gemini.js.map +1 -0
  8. package/dist/ai/drivers/index.d.ts +14 -0
  9. package/dist/ai/drivers/index.js +617 -0
  10. package/dist/ai/drivers/index.js.map +1 -0
  11. package/dist/ai/drivers/ollama.d.ts +8 -0
  12. package/dist/ai/drivers/ollama.js +158 -0
  13. package/dist/ai/drivers/ollama.js.map +1 -0
  14. package/dist/ai/drivers/openai.d.ts +7 -0
  15. package/dist/ai/drivers/openai.js +225 -0
  16. package/dist/ai/drivers/openai.js.map +1 -0
  17. package/dist/ai/drivers/tool-bridge.d.ts +37 -0
  18. package/dist/ai/drivers/tool-bridge.js +138 -0
  19. package/dist/ai/drivers/tool-bridge.js.map +1 -0
  20. package/dist/ai/drivers/types.d.ts +2 -0
  21. package/dist/ai/drivers/types.js +1 -0
  22. package/dist/ai/drivers/types.js.map +1 -0
  23. package/dist/ai/drivers/util.d.ts +13 -0
  24. package/dist/ai/drivers/util.js +40 -0
  25. package/dist/ai/drivers/util.js.map +1 -0
  26. package/dist/ai/image.d.ts +37 -0
  27. package/dist/ai/image.js +36 -0
  28. package/dist/ai/image.js.map +1 -0
  29. package/dist/ai/index.d.ts +37 -0
  30. package/dist/ai/index.js +826 -0
  31. package/dist/ai/index.js.map +1 -0
  32. package/dist/ai/types.d.ts +92 -0
  33. package/dist/ai/types.js +1 -0
  34. package/dist/ai/types.js.map +1 -0
  35. package/dist/ai/voice.d.ts +42 -0
  36. package/dist/ai/voice.js +34 -0
  37. package/dist/ai/voice.js.map +1 -0
  38. package/dist/chat-markdown/index.d.ts +82 -0
  39. package/dist/chat-markdown/index.js +165 -0
  40. package/dist/chat-markdown/index.js.map +1 -0
  41. package/dist/i18n/locales/ar.json +802 -732
  42. package/dist/i18n/locales/de.json +908 -838
  43. package/dist/i18n/locales/es.json +948 -876
  44. package/dist/i18n/locales/fr.json +1780 -1708
  45. package/dist/i18n/locales/hi.json +1804 -1734
  46. package/dist/i18n/locales/ja.json +835 -765
  47. package/dist/i18n/locales/ko.json +1779 -1709
  48. package/dist/i18n/locales/pt.json +890 -820
  49. package/dist/i18n/locales/ru.json +808 -738
  50. package/dist/i18n/locales/zh-Hant.json +1035 -965
  51. package/dist/types-CwM77g7u.d.ts +88 -0
  52. package/package.json +26 -2
@@ -1,17 +1,16 @@
1
1
  {
2
2
  "admin": {
3
- "__mt": true,
4
- "title": "Team Admin",
5
- "tab_members": "Members",
6
- "tab_kbs": "Knowledge Bases",
3
+ "title": "Administrador da equipe",
4
+ "tab_members": "Membros",
5
+ "tab_kbs": "Bases de Conhecimento",
7
6
  "tab_usage": "Usage",
8
- "members": "Members",
9
- "knowledge_bases": "Knowledge Bases",
10
- "invite_member": "Invite Member",
11
- "remove_member": "Remove",
12
- "create_kb": "Create KB",
7
+ "members": "Membros",
8
+ "knowledge_bases": "Bases de Conhecimento",
9
+ "invite_member": "Convidar membro",
10
+ "remove_member": "Remover",
11
+ "create_kb": "Criar base de conhecimento",
13
12
  "no_members": "No members yet.",
14
- "no_kbs": "No knowledge bases yet.",
13
+ "no_kbs": "Ainda não bases de conhecimento.",
15
14
  "col_name": "Name",
16
15
  "col_email": "Email",
17
16
  "col_role": "Role",
@@ -26,7 +25,6 @@
26
25
  "this_month": "this month"
27
26
  },
28
27
  "agent": {
29
- "__mt": true,
30
28
  "title": "AI Agent",
31
29
  "subtitle": "Let AI handle multi-step tasks across your knowledge base",
32
30
  "query_placeholder": "Describe a task for the agent to complete...",
@@ -39,22 +37,22 @@
39
37
  "upgrade_required": "AI Agent is available on Personal and above plans.",
40
38
  "mode": {
41
39
  "react": "ReAct (Adaptive)",
42
- "plan_execute": "Plan & Execute"
40
+ "plan_execute": "Planejar e executar"
43
41
  },
44
42
  "history": {
45
- "title": "Agent History",
46
- "search_placeholder": "Search tasks...",
47
- "no_results": "No tasks match your search.",
48
- "empty": "No agent tasks yet. Start your first task!",
49
- "steps": "steps"
43
+ "title": "Histórico do agente",
44
+ "search_placeholder": "Pesquisar tarefas...",
45
+ "no_results": "Nenhuma tarefa corresponde à sua pesquisa.",
46
+ "empty": "Nenhuma tarefa de agente ainda. Comece sua primeira tarefa!",
47
+ "steps": "passos"
50
48
  },
51
49
  "market": {
52
- "title": "Agent Templates",
53
- "subtitle": "Browse ready-to-use agent templates",
54
- "search_placeholder": "Search templates...",
55
- "no_results": "No templates match your search.",
50
+ "title": "Modelos de agente",
51
+ "subtitle": "Procure modelos de agentes prontos para uso",
52
+ "search_placeholder": "Pesquisar modelos...",
53
+ "no_results": "Nenhum modelo corresponde à sua pesquisa.",
56
54
  "all_tags": "All",
57
- "use": "Use Template"
55
+ "use": "Usar modelo"
58
56
  }
59
57
  },
60
58
  "ai": {
@@ -101,7 +99,8 @@
101
99
  "testing": "Testando...",
102
100
  "connected": "Conectado!",
103
101
  "failed": "Falhou",
104
- "test_failed": "Falha no teste de conexão"
102
+ "test_failed": "Falha no teste de conexão",
103
+ "endpoint_id_placeholder": "Enter inference endpoint ID"
105
104
  },
106
105
  "providers": {
107
106
  "claude": "Anthropic Claude",
@@ -191,13 +190,63 @@
191
190
  },
192
191
  "sections": {
193
192
  "image_ai": "IA de imagens",
194
- "image_aihint": "Configurações do modelo de geração de imagens com IA."
193
+ "image_aihint": "Configurações do modelo de geração de imagens com IA.",
194
+ "session_ai": "Session AI",
195
+ "session_aihint": "Text chat model configurations.",
196
+ "realtime_voice_ai": "End-to-End Voice AI",
197
+ "realtime_voice_aihint": "Realtime voice conversation configurations (multiple providers)."
195
198
  },
196
199
  "generating": "Gerando…",
197
- "not_configured": "Provedor de IA não configurado"
200
+ "not_configured": "Provedor de IA não configurado",
201
+ "model_short": {
202
+ "none": "Nenhum modelo configurado",
203
+ "chat": "Chat",
204
+ "realtime": "Voz RT",
205
+ "image": "Imagem",
206
+ "speech": "Voz"
207
+ },
208
+ "voice": {
209
+ "record": "Gravar voz",
210
+ "cancel": "Cancelar entrada de voz",
211
+ "commit": "Use transcript"
212
+ },
213
+ "realtime": {
214
+ "chat_model_group": "Chat Models",
215
+ "realtime_model_group": "Modelos ponta a ponta",
216
+ "image_model_group": "Image Generation",
217
+ "speech_model_group": "Voice Transcription",
218
+ "add_model": "+ Add Voice Model",
219
+ "no_models": "No end-to-end voice models configured",
220
+ "no_models_hint": "Add a realtime voice model to enable wave-button voice chat.",
221
+ "missing_config": "No available end-to-end voice model. Configure one in Settings -> Chat.",
222
+ "start_voice": "Start voice conversation",
223
+ "stop_voice": "Stop voice conversation",
224
+ "live": "Live",
225
+ "providers": {
226
+ "gemini-live": "Gemini Live",
227
+ "openai-realtime": "OpenAI Realtime",
228
+ "doubao-realtime": "Doubao Realtime",
229
+ "qwen-realtime": "Qwen Realtime",
230
+ "stepfun-realtime": "StepFun Realtime",
231
+ "tongyi-bailing": "Tongyi Bailing",
232
+ "amazon-nova-sonic": "Amazon Nova Sonic"
233
+ },
234
+ "config": {
235
+ "access_key_id": "Access Key ID",
236
+ "secret_access_key": "Chave de acesso secreta",
237
+ "session_token": "Token de sessão",
238
+ "doubao_app_id": "ID do aplicativo (X-Api-App-ID)",
239
+ "doubao_access_key": "Token de acesso (X-Api-Access-Key)",
240
+ "doubao_secret_key": "Chave do aplicativo (X-Api-App-Key)",
241
+ "voice": "Voz",
242
+ "region": "Region",
243
+ "optional": "Optional",
244
+ "secret_placeholder": "Enter secret key",
245
+ "missing_credential": "Please provide API key or required credentials first."
246
+ }
247
+ }
198
248
  },
199
249
  "ai_budget": {
200
- "__mt": true,
201
250
  "title": "AI Budget",
202
251
  "description": "Set monthly and per-call spending limits for AI requests routed through Moraya.",
203
252
  "monthly_spend": "Monthly Spend",
@@ -217,23 +266,21 @@
217
266
  "info3": "Monthly counters reset on the 1st of each month automatically."
218
267
  },
219
268
  "ai_history": {
220
- "__mt": true,
221
269
  "title": "AI Call History",
222
270
  "total_calls": "Total Calls",
223
- "month_cost": "This Month",
224
- "success_rate": "Success Rate",
225
- "tab_list": "Calls",
226
- "tab_provider": "By Provider",
227
- "tab_daily": "By Day",
271
+ "month_cost": "Este mês",
272
+ "success_rate": "Taxa de sucesso",
273
+ "tab_list": "Chamadas",
274
+ "tab_provider": "Por provedor",
275
+ "tab_daily": "Por dia",
228
276
  "no_records": "No call records yet.",
229
277
  "failed": "Failed",
230
- "provider": "Provider",
231
- "calls": "Calls",
278
+ "provider": "Provedor",
279
+ "calls": "Chamadas",
232
280
  "cost": "Cost",
233
281
  "share": "Share"
234
282
  },
235
283
  "app": {
236
- "__mt": true,
237
284
  "name": "Moraya Web",
238
285
  "tagline": "Your AI, your data, your cloud."
239
286
  },
@@ -279,7 +326,6 @@
279
326
  "loading": "Loading audit log…"
280
327
  },
281
328
  "auth": {
282
- "__mt": true,
283
329
  "login": "Sign in with Picora",
284
330
  "logout": "Sign out",
285
331
  "logging_in": "Signing in...",
@@ -292,7 +338,6 @@
292
338
  "local_only_notice": "You are working locally. Notes are stored on this device only."
293
339
  },
294
340
  "billing": {
295
- "__mt": true,
296
341
  "title": "Billing",
297
342
  "current_plan": "Current Plan",
298
343
  "upgrade_title": "Upgrade Your Plan",
@@ -305,49 +350,50 @@
305
350
  "plan_team": "Team",
306
351
  "plan_enterprise": "Enterprise",
307
352
  "plan_connect": "Connect (Free)",
308
- "monthly": "Monthly",
353
+ "monthly": "Mensal",
309
354
  "yearly": "Yearly",
310
- "yearly_savings": "Save 2 months",
355
+ "yearly_savings": "Economize 2 meses",
311
356
  "per_seat": "/seat",
312
- "pay_with_stripe": "Pay with Card (Stripe)",
357
+ "pay_with_stripe": "Pague com cartão (faixa)",
313
358
  "pay_with_alipay": "Pay with Alipay",
314
359
  "seats_label": "Number of seats",
315
360
  "seats_hint": "Minimum 1 seat",
316
- "effective_immediate": "Effective immediately",
317
- "effective_period_end": "At the end of the billing period",
318
- "cancel_confirm": "I understand my subscription will end",
319
- "downgrade_confirm": "I understand I may lose access to some features",
320
- "confirm_cancel": "Cancel Subscription",
321
- "confirm_downgrade": "Confirm Downgrade",
322
- "refund_title": "Request Refund",
323
- "refund_14day": "As a first-time subscriber within 14 days, you qualify for an automatic refund.",
324
- "refund_request": "Request Refund",
325
- "refund_pending": "Refund request submitted. Our team will review it.",
326
- "back_to_billing": "Back to Billing",
327
- "loading": "Loading...",
328
- "error": "Something went wrong. Please try again.",
329
- "checkout_redirect": "Redirecting to checkout...",
330
- "alipay_scan": "Scan with Alipay app to complete payment",
361
+ "effective_immediate": "Em vigor imediatamente",
362
+ "effective_period_end": "No final do período de faturamento",
363
+ "cancel_confirm": "Entendo que minha assinatura terminará",
364
+ "downgrade_confirm": "Entendo que posso perder o acesso a alguns recursos",
365
+ "confirm_cancel": "Cancelar assinatura",
366
+ "confirm_downgrade": "Confirmar downgrade",
367
+ "refund_title": "Solicitar reembolso",
368
+ "refund_14day": "Como assinante pela primeira vez em 14 dias, você se qualifica para um reembolso automático.",
369
+ "refund_request": "Solicitar reembolso",
370
+ "refund_pending": "Solicitação de reembolso enviada. Nossa equipe irá analisá-lo.",
371
+ "back_to_billing": "Voltar ao faturamento",
372
+ "loading": "Carregando...",
373
+ "error": "Algo deu errado. Por favor, tente novamente.",
374
+ "checkout_redirect": "Redirecionando para finalização da compra...",
375
+ "alipay_scan": "Digitalize com o aplicativo Alipay para concluir o pagamento",
331
376
  "devices_title": "Manage Devices",
332
377
  "devices_subtitle": "Devices signed into your account.",
333
378
  "device_current": "This device",
334
- "device_revoke": "Sign out",
335
- "device_revoke_confirm": "Sign out this device?",
379
+ "device_revoke": "sair",
380
+ "device_revoke_confirm": "Desconectar este dispositivo?",
336
381
  "device_last_active": "Last active",
337
- "devices_limit_reached": "You've reached the device limit for your plan.",
382
+ "devices_limit_reached": "Você atingiu o limite de dispositivos do seu plano.",
338
383
  "usage_ai_calls": "AI Calls",
339
384
  "usage_kbs": "Knowledge Bases",
340
- "usage_devices": "Devices",
341
- "usage_of": "{used} of {limit}",
342
- "upgrade_prompt_ai": "You've used {used}/{limit} AI calls this month.",
343
- "upgrade_prompt_kb": "You've reached your KB limit ({limit}).",
344
- "upgrade_now": "Upgrade Now",
385
+ "usage_devices": "Dispositivos",
386
+ "usage_of": "{used} de {limit}",
387
+ "upgrade_prompt_ai": "Você usou chamadas de IA {used}/{limit} este mês.",
388
+ "upgrade_prompt_kb": "Você atingiu seu limite de KB ({limit}).",
389
+ "upgrade_now": "Atualize agora",
345
390
  "plan_features_personal": "Unlimited KBs, 2000 AI calls/month, BYO API key, E2E encryption, BYOC storage",
346
391
  "plan_features_team": "Everything in Personal, team collaboration, 5000 AI calls/month, Cloud KMS",
347
392
  "currency_usd": "USD ($)",
348
393
  "currency_cny": "CNY (¥)",
349
394
  "currency_eur": "EUR (€)",
350
- "change_currency": "Change currency"
395
+ "change_currency": "Change currency",
396
+ "upgrade": "Upgrade"
351
397
  },
352
398
  "cloud_picker": {
353
399
  "title_image": "Inserir imagem da nuvem",
@@ -396,16 +442,15 @@
396
442
  "no_results": "Nenhum resultado encontrado"
397
443
  },
398
444
  "commands": {
399
- "__mt": true,
400
- "palette_title": "Command Palette",
401
- "placeholder": "Search commands...",
402
- "no_results": "No commands found",
403
- "type_to_search": "Type to search commands",
404
- "go_home": "Go to Home",
445
+ "palette_title": "Paleta de Comandos",
446
+ "placeholder": "Comandos de pesquisa...",
447
+ "no_results": "Nenhum comando encontrado",
448
+ "type_to_search": "Digite para pesquisar comandos",
449
+ "go_home": " para casa",
405
450
  "open_settings": "Open Settings",
406
- "open_workflows": "Open Workflows",
407
- "toggle_sidebar": "Toggle Sidebar",
408
- "sidebar_kb": "Sidebar: Knowledge Bases",
451
+ "open_workflows": "Fluxos de trabalho abertos",
452
+ "toggle_sidebar": "Alternar barra lateral",
453
+ "sidebar_kb": "Barra lateral: Bases de conhecimento",
409
454
  "sidebar_explorer": "Sidebar: Files",
410
455
  "sidebar_outline": "Sidebar: Outline"
411
456
  },
@@ -433,34 +478,33 @@
433
478
  "new": "Novo"
434
479
  },
435
480
  "compose": {
436
- "__mt": true,
437
- "title": "Compose article",
481
+ "title": "Compor artigo",
438
482
  "start_over": "Start over",
439
- "stepper_label": "Compose stages",
483
+ "stepper_label": "Compor etapas",
440
484
  "step": {
441
- "topic": "Topic",
442
- "article": "Article",
443
- "cover": "Cover",
444
- "review": "Review"
485
+ "topic": "Tópico",
486
+ "article": "Artigo",
487
+ "cover": "Cobrir",
488
+ "review": "Análise"
445
489
  },
446
490
  "topic": {
447
- "title": "What's the article about?",
448
- "hint": "Describe the topic, audience, key points the more specific, the better.",
449
- "placeholder": "e.g. A deep dive on why Rust's async model handles backpressure better than Go's…",
450
- "next": "Next: write article →"
491
+ "title": "Sobre o que é o artigo?",
492
+ "hint": "Descreva o tema, o público, os pontos-chave quanto mais específico, melhor.",
493
+ "placeholder": "por exemplo Um mergulho profundo sobre por que o modelo assíncrono do Rust lida com a contrapressão melhor do que o do Go…",
494
+ "next": "Próximo: escrever artigo →"
451
495
  },
452
496
  "tone": {
453
- "title": "Tone",
454
- "general": "General",
497
+ "title": "Tom",
498
+ "general": "Em geral",
455
499
  "marketing": "Marketing",
456
- "technical": "Technical",
457
- "story": "Story"
500
+ "technical": "Técnico",
501
+ "story": "História"
458
502
  },
459
503
  "length": {
460
- "title": "Length",
461
- "short": "Short",
462
- "medium": "Medium",
463
- "long": "Long"
504
+ "title": "Comprimento",
505
+ "short": "Curto",
506
+ "medium": "Médio",
507
+ "long": "Longo"
464
508
  },
465
509
  "article": {
466
510
  "title": "Write the article",
@@ -507,18 +551,17 @@
507
551
  "title": "Drafts",
508
552
  "new": "New draft",
509
553
  "new_sub": "Archive current and start fresh",
510
- "active": "Active",
511
- "untitled": "Untitled draft",
512
- "delete": "Delete draft"
554
+ "active": "Ativo",
555
+ "untitled": "Rascunho sem título",
556
+ "delete": "Excluir rascunho"
513
557
  }
514
558
  },
515
559
  "conflict": {
516
- "__mt": true,
517
- "title": "Conflict Detected",
518
- "description": "This note was edited on another device.",
519
- "keep_server": "Keep server version",
520
- "keep_local": "Keep my version",
521
- "merge": "Merge manually"
560
+ "title": "Conflito detectado",
561
+ "description": "Esta nota foi editada em outro dispositivo.",
562
+ "keep_server": "Manter a versão do servidor",
563
+ "keep_local": "Mantenha minha versão",
564
+ "merge": "Mesclar manualmente"
522
565
  },
523
566
  "context_menu": {
524
567
  "cut": "Recortar",
@@ -569,124 +612,122 @@
569
612
  "new_note": "New note"
570
613
  },
571
614
  "enterprise": {
572
- "__mt": true,
573
615
  "hsm": {
574
- "title": "Hardware Security Module (HSM)",
575
- "subtitle": "Connect your HSM provider for FIPS 140-2 Level 3+ key operations",
576
- "upgrade_required": "HSM integration requires the Enterprise plan.",
616
+ "title": "Módulo de segurança de hardware (HSM)",
617
+ "subtitle": "Conecte seu provedor de HSM para operações de chave FIPS 140-2 Nível 3+",
618
+ "upgrade_required": "A integração do HSM requer o plano Enterprise.",
577
619
  "providers": {
578
620
  "aws": "AWS CloudHSM",
579
621
  "aliyun": "Aliyun HSM",
580
- "pkcs11": "PKCS#11 (Generic)"
622
+ "pkcs11": "PKCS#11 (genérico)"
581
623
  },
582
624
  "aws": {
583
- "cluster_id": "Cluster ID",
584
- "region": "AWS Region"
625
+ "cluster_id": "ID do cluster",
626
+ "region": "Região AWS"
585
627
  },
586
628
  "aliyun": {
587
- "instance_id": "Instance ID",
588
- "region": "Region"
629
+ "instance_id": "ID da instância",
630
+ "region": "Região"
589
631
  },
590
632
  "pkcs11": {
591
633
  "lib_path": "Library Path (.so / .dll / .dylib)",
592
- "slot": "Slot ID",
593
- "supported_mechanisms": "Supported Mechanisms"
634
+ "slot": "ID do slot",
635
+ "supported_mechanisms": "Mecanismos Suportados"
594
636
  }
595
637
  },
596
638
  "orgs": {
597
- "title": "Multi-Organization Management",
598
- "subtitle": "Manage seat allocation and cross-org knowledge sharing",
599
- "upgrade_required": "Multi-org management requires the Enterprise plan.",
600
- "seat_allocation": "Seat Allocation",
601
- "total_seats": "Total Seats",
602
- "allocated": "Allocated",
603
- "unallocated": "Unallocated",
604
- "org_list": "Organizations",
639
+ "title": "Gestão Multiorganizacional",
640
+ "subtitle": "Gerencie a alocação de licenças e o compartilhamento de conhecimento entre organizações",
641
+ "upgrade_required": "O gerenciamento multiorganizacional requer o plano Enterprise.",
642
+ "seat_allocation": "Alocação de assentos",
643
+ "total_seats": "Total de assentos",
644
+ "allocated": "Alocado",
645
+ "unallocated": "Não alocado",
646
+ "org_list": "Organizações",
605
647
  "members": "Members",
606
- "cross_org_sharing": "Cross-Org Sharing",
607
- "shares_to": "shares KBs to",
648
+ "cross_org_sharing": "Compartilhamento entre organizações",
649
+ "shares_to": "compartilha KBs para",
608
650
  "kb_ids_placeholder": "kb-1, kb-2, ...",
609
651
  "request_share": "Request Share"
610
652
  },
611
653
  "compliance": {
612
654
  "title": "Compliance & Archiving",
613
- "subtitle": "GDPR, HIPAA, SOC2, ISO 27001 compliance exports and WORM archiving",
614
- "upgrade_required": "Compliance archiving requires the Enterprise plan.",
655
+ "subtitle": "Exportações em conformidade com GDPR, HIPAA, SOC2, ISO 27001 e arquivamento WORM",
656
+ "upgrade_required": "O arquivamento de conformidade requer o plano Enterprise.",
615
657
  "tabs": {
616
- "retention": "Retention",
658
+ "retention": "Retenção",
617
659
  "worm": "WORM",
618
- "export": "Export"
660
+ "export": "Exportar"
619
661
  },
620
662
  "retention": {
621
- "title": "7-Year Retention",
622
- "hint": "Records are retained for 7 years and cannot be deleted during this period.",
623
- "days_left": "days left",
624
- "years": "years"
663
+ "title": "Retenção de 7 anos",
664
+ "hint": "Os registros são retidos por 7 anos e não podem ser excluídos durante esse período.",
665
+ "days_left": "dias restantes",
666
+ "years": "anos"
625
667
  },
626
668
  "worm": {
627
- "title": "WORM Records",
628
- "description": "Write-Once-Read-Many records are immutable once created.",
629
- "immutable_label": "Immutable",
630
- "immutable_desc": "Records cannot be modified or deleted after creation.",
631
- "retention_years": "Retention Period"
669
+ "title": "Registros WORM",
670
+ "description": "Os registros Write-Once-Read-Many são imutáveis ​​depois de criados.",
671
+ "immutable_label": "Imutável",
672
+ "immutable_desc": "Os registros não podem ser modificados ou excluídos após a criação.",
673
+ "retention_years": "Período de retenção"
632
674
  },
633
675
  "export": {
634
- "title": "Compliance Export",
635
- "standard": "Standard",
636
- "format": "Format",
637
- "generate": "Generate Export",
638
- "applicable_events": "Applicable audit events"
676
+ "title": "Exportação de conformidade",
677
+ "standard": "Padrão",
678
+ "format": "Formatar",
679
+ "generate": "Gerar exportação",
680
+ "applicable_events": "Eventos de auditoria aplicáveis"
639
681
  }
640
682
  },
641
683
  "custom_domain": {
642
- "title": "Custom Domain",
643
- "subtitle": "Use your own domain name for the Moraya workspace.",
644
- "upgrade_required": "Custom domain requires the Enterprise plan.",
645
- "hostname": "Your Domain",
646
- "cname_target": "CNAME Target",
647
- "dns_record": "DNS Record to Add",
648
- "dns_hint": "Add this CNAME record to your DNS provider and wait for propagation (up to 48h).",
649
- "save": "Save & Verify",
650
- "verifying_hint": "Verification in progress. DNS propagation may take up to 48 hours."
684
+ "title": "Domínio Personalizado",
685
+ "subtitle": "Use seu próprio nome de domínio para o espaço de trabalho Moraya.",
686
+ "upgrade_required": "O domínio personalizado requer o plano Enterprise.",
687
+ "hostname": "Seu domínio",
688
+ "cname_target": "Alvo CNAME",
689
+ "dns_record": "Registro DNS para adicionar",
690
+ "dns_hint": "Adicione este registro CNAME ao seu provedor DNS e aguarde a propagação (até 48h).",
691
+ "save": "Salvar e verificar",
692
+ "verifying_hint": "Verificação em andamento. A propagação do DNS pode levar até 48 horas."
651
693
  },
652
694
  "custom_ai": {
653
- "title": "Custom AI Endpoint",
654
- "subtitle": "Connect your own OpenAI-compatible LLM endpoint.",
655
- "upgrade_required": "Custom AI endpoints require the Enterprise plan.",
656
- "add_provider": "Add Provider",
657
- "provider_name": "Provider Name",
658
- "base_url": "Base URL",
659
- "api_key_ref": "API Key Reference (Keychain ID)",
660
- "models_csv": "Models (comma-separated)",
661
- "add": "Add Provider",
662
- "saved_providers": "Saved Providers",
695
+ "title": "Endpoint de IA personalizado",
696
+ "subtitle": "Conecte seu próprio endpoint LLM compatível com OpenAI.",
697
+ "upgrade_required": "Os endpoints de IA personalizados exigem o plano Enterprise.",
698
+ "add_provider": "Adicionar provedor",
699
+ "provider_name": "Nome do provedor",
700
+ "base_url": "URL base",
701
+ "api_key_ref": "Referência de chave de API (ID das chaves)",
702
+ "models_csv": "Modelos (separados por vírgula)",
703
+ "add": "Adicionar provedor",
704
+ "saved_providers": "Provedores salvos",
663
705
  "context_window": "Context window",
664
- "models": "models",
665
- "openai_compatible": "OpenAI-compatible",
666
- "custom_format": "Custom format"
706
+ "models": "modelos",
707
+ "openai_compatible": "Compatível com OpenAI",
708
+ "custom_format": "Formato personalizado"
667
709
  },
668
710
  "data_residency": {
669
- "title": "Data Residency",
670
- "subtitle": "Control where your organization's data is stored and processed.",
671
- "upgrade_required": "Data residency control requires the Enterprise plan.",
672
- "primary_region": "Primary Region",
673
- "allowed_regions": "Allowed Regions",
674
- "restrict_cross_region": "Restrict cross-region data transfers",
675
- "filter_by_compliance": "Filter by Compliance Standard",
676
- "all": "All",
677
- "requirements": "Legal Requirements",
678
- "save_policy": "Save Policy",
679
- "policy_saved": "Policy saved"
711
+ "title": "Residência de dados",
712
+ "subtitle": "Controle onde os dados da sua organização são armazenados e processados.",
713
+ "upgrade_required": "O controle de residência de dados requer o plano Enterprise.",
714
+ "primary_region": "Região Primária",
715
+ "allowed_regions": "Regiões permitidas",
716
+ "restrict_cross_region": "Restringir transferências de dados entre regiões",
717
+ "filter_by_compliance": "Filtrar por Padrão de Conformidade",
718
+ "all": "Todos",
719
+ "requirements": "Requisitos Legais",
720
+ "save_policy": "Salvar política",
721
+ "policy_saved": "Política salva"
680
722
  }
681
723
  },
682
724
  "entitlement": {
683
- "__mt": true,
684
- "connect": "Connect",
685
- "personal": "Personal",
686
- "team": "Team",
687
- "enterprise": "Enterprise",
688
- "current_plan": "Current plan",
689
- "upgrade": "Upgrade"
725
+ "connect": "Conectar",
726
+ "personal": "Pessoal",
727
+ "team": "Equipe",
728
+ "enterprise": "Empresa",
729
+ "current_plan": "Plano atual",
730
+ "upgrade": "Atualizar"
690
731
  },
691
732
  "errors": {
692
733
  "ai_not_configured": "A IA não está configurada.",
@@ -727,21 +768,20 @@
727
768
  }
728
769
  },
729
770
  "explorer": {
730
- "__mt": true,
731
- "title": "Files",
732
- "filter_placeholder": "Filter notes...",
733
- "empty": "No notes yet",
734
- "no_results": "No matching notes",
735
- "new_note": "New note",
736
- "new_folder": "New folder",
737
- "rename": "Rename",
771
+ "title": "Arquivos",
772
+ "filter_placeholder": "Filtrar notas...",
773
+ "empty": "Ainda não há notas",
774
+ "no_results": "Nenhuma nota correspondente",
775
+ "new_note": "Nova nota",
776
+ "new_folder": "Nova pasta",
777
+ "rename": "Renomear",
738
778
  "delete": "Delete",
739
- "favorite": "Add to favorites",
740
- "unfavorite": "Remove from favorites",
741
- "context_menu": "File options",
742
- "tags": "Tags",
743
- "no_tags": "No tags found",
744
- "untagged": "Untagged"
779
+ "favorite": "Adicionar aos favoritos",
780
+ "unfavorite": "Remover dos favoritos",
781
+ "context_menu": "Opções de arquivo",
782
+ "tags": "Etiquetas",
783
+ "no_tags": "Nenhuma tag encontrada",
784
+ "untagged": "Sem etiqueta"
745
785
  },
746
786
  "export": {
747
787
  "export_as": "Exportar como {format}",
@@ -775,38 +815,37 @@
775
815
  }
776
816
  },
777
817
  "fulltext_search": {
778
- "__mt": true,
779
- "title": "Hybrid Search",
780
- "placeholder": "Search notes, memories, workflows...",
781
- "clear": "Clear",
782
- "filters": "Filters",
783
- "filter_time": "Time",
784
- "filter_source": "Source",
785
- "filter_tags": "Tags",
786
- "time_all": "All time",
787
- "time_today": "Today",
788
- "time_7d": "Last 7 days",
789
- "time_30d": "Last 30 days",
790
- "time_90d": "Last 90 days",
791
- "source_all": "All sources",
792
- "source_note": "Notes",
793
- "source_memory": "Memory",
794
- "source_workflow": "Workflows",
795
- "cross_kb_hint": "Upgrade for cross-KB search",
796
- "tab_results": "Results",
797
- "tab_history": "History",
798
- "tab_saved": "Saved",
799
- "save_search": "Save search",
800
- "save_name_prompt": "Name this saved search",
801
- "searching": "Searching...",
802
- "no_results": "No results found",
803
- "start_typing": "Type to search",
804
- "history_empty": "No search history",
805
- "saved_empty": "No saved searches",
806
- "clear_history": "Clear history",
807
- "hint_navigate": "Navigate",
808
- "hint_open": "Open",
809
- "hint_close": "Close"
818
+ "title": "Pesquisa Híbrida",
819
+ "placeholder": "Pesquise notas, memórias, fluxos de trabalho...",
820
+ "clear": "Claro",
821
+ "filters": "Filtros",
822
+ "filter_time": "Tempo",
823
+ "filter_source": "Fonte",
824
+ "filter_tags": "Etiquetas",
825
+ "time_all": "Todo o tempo",
826
+ "time_today": "Hoje",
827
+ "time_7d": "Últimos 7 dias",
828
+ "time_30d": "Últimos 30 dias",
829
+ "time_90d": "Últimos 90 dias",
830
+ "source_all": "Todas as fontes",
831
+ "source_note": "Notas",
832
+ "source_memory": "Memória",
833
+ "source_workflow": "Fluxos de trabalho",
834
+ "cross_kb_hint": "Atualização para pesquisa entre KB",
835
+ "tab_results": "Resultados",
836
+ "tab_history": "História",
837
+ "tab_saved": "Salvo",
838
+ "save_search": "Salvar pesquisa",
839
+ "save_name_prompt": "Nomeie esta pesquisa salva",
840
+ "searching": "Procurando...",
841
+ "no_results": "Nenhum resultado encontrado",
842
+ "start_typing": "Digite para pesquisar",
843
+ "history_empty": "Sem histórico de pesquisa",
844
+ "saved_empty": "Nenhuma pesquisa salva",
845
+ "clear_history": "Limpar histórico",
846
+ "hint_navigate": "Navegar",
847
+ "hint_open": "Abrir",
848
+ "hint_close": "Fechar"
810
849
  },
811
850
  "git": {
812
851
  "bind_title": "Vincular repositório Git",
@@ -891,15 +930,14 @@
891
930
  "merge_blocked": "Repository is in the middle of a merge. Resolve conflicts first."
892
931
  },
893
932
  "image_ctx": {
894
- "__mt": true,
895
- "copy_url": "Copy URL",
896
- "replace": "Replace Image",
897
- "edit_alt": "Edit Alt Text",
898
- "resize": "Resize",
899
- "delete": "Delete Image",
900
- "alt_label": "Alt Text",
901
- "alt_placeholder": "Describe the image...",
902
- "alt_hint": "Improves accessibility and SEO",
933
+ "copy_url": "Copiar URL",
934
+ "replace": "Substituir imagem",
935
+ "edit_alt": "Editar texto alternativo",
936
+ "resize": "Redimensionar",
937
+ "delete": "Excluir imagem",
938
+ "alt_label": "Texto alternativo",
939
+ "alt_placeholder": "Descreva a imagem...",
940
+ "alt_hint": "Melhora a acessibilidade e SEO",
903
941
  "save_alt": "Save"
904
942
  },
905
943
  "image_dialog": {
@@ -1492,65 +1530,63 @@
1492
1530
  }
1493
1531
  },
1494
1532
  "media": {
1495
- "__mt": true,
1496
- "upload_title": "Media Uploads",
1497
- "uploading": "Uploading",
1533
+ "upload_title": "Carregamentos de mídia",
1534
+ "uploading": "Enviando",
1498
1535
  "upload_done": "Uploaded",
1499
- "upload_error": "Upload failed",
1500
- "compressed_from": "Compressed",
1536
+ "upload_error": "Falha no upload",
1537
+ "compressed_from": "Comprimido",
1501
1538
  "compress_auto": "Auto-compress images > 1MB",
1502
- "size_limit_exceeded": "File exceeds size limit for your plan",
1503
- "mime_not_allowed": "File type not supported",
1504
- "quota_warn": "This note has over 10MB of media",
1505
- "quota_hard": "Media quota exceeded (100MB per note)",
1506
- "quota_title": "Media Usage",
1507
- "paste_title": "Paste Media"
1539
+ "size_limit_exceeded": "O arquivo excede o limite de tamanho do seu plano",
1540
+ "mime_not_allowed": "Tipo de arquivo não suportado",
1541
+ "quota_warn": "Esta nota tem mais de 10 MB de mídia",
1542
+ "quota_hard": "Cota de mídia excedida (100 MB por nota)",
1543
+ "quota_title": "Uso de mídia",
1544
+ "paste_title": "Colar mídia"
1508
1545
  },
1509
1546
  "memory": {
1510
- "__mt": true,
1511
- "title": "Long-Term Memory",
1512
- "upgrade_required": "Long-term memory requires Personal plan or above.",
1513
- "health_title": "Memory Health",
1514
- "settings_title": "Memory Settings",
1547
+ "title": "Memória de longo prazo",
1548
+ "upgrade_required": "A memória de longo prazo requer plano pessoal ou superior.",
1549
+ "health_title": "Saúde da memória",
1550
+ "settings_title": "Configurações de memória",
1515
1551
  "half_life_label": "Memory half-life",
1516
1552
  "half_life_never": "Never (no decay)",
1517
- "days": "days",
1518
- "export_import": "Export / Import",
1519
- "memories_title": "Memories",
1520
- "search_placeholder": "Search memories...",
1553
+ "days": "dias",
1554
+ "export_import": "Exportar/Importar",
1555
+ "memories_title": "Memórias",
1556
+ "search_placeholder": "Pesquisar memórias...",
1521
1557
  "filter_all": "All types",
1522
- "kind_preference": "Preference",
1523
- "kind_project": "Project",
1524
- "kind_fact": "Fact",
1558
+ "kind_preference": "Preferência",
1559
+ "kind_project": "Projeto",
1560
+ "kind_fact": "Fato",
1525
1561
  "no_memories": "No memories yet. Use /memorize in chat to add one.",
1526
- "edit": "Edit",
1527
- "delete": "Delete",
1528
- "enable": "Enable",
1529
- "disable": "Disable",
1530
- "save": "Save",
1531
- "cancel": "Cancel",
1532
- "weight": "Weight",
1533
- "danger_zone": "Danger Zone",
1534
- "reset_all": "Reset all memories",
1535
- "reset_confirm_instruction": "Type RESET to confirm deleting all memories. This cannot be undone.",
1536
- "confirm_reset": "Delete all memories",
1537
- "export_title": "Export Memories",
1538
- "export_hint": "Download all your memories as a JSON file for backup or migration.",
1539
- "export_btn": "Export memories",
1540
- "export_invalid_format": "Invalid memory export format.",
1541
- "import_title": "Import Memories",
1542
- "import_hint": "Import memories from a previously exported JSON file.",
1543
- "choose_file": "Choose file (.json)",
1544
- "import_placeholder": "Or paste JSON here...",
1545
- "import_btn": "Import",
1546
- "import_success": "Memories imported successfully.",
1547
- "memorize_ack": "Memory saved.",
1548
- "forget_ack": "Memory forgotten.",
1549
- "forget_not_found": "No matching memories found.",
1550
- "private_mode_on": "Private mode onthis conversation will not be extracted.",
1551
- "extract_queued": "{n} memory/memories pending your review.",
1552
- "conflict_detected": "Conflict detected with existing memory.",
1553
- "upgrade_memory": "Upgrade to Personal to unlock long-term memory."
1562
+ "edit": "Editar",
1563
+ "delete": "Excluir",
1564
+ "enable": "Habilitar",
1565
+ "disable": "Desativar",
1566
+ "save": "Salvar",
1567
+ "cancel": "Cancelar",
1568
+ "weight": "Peso",
1569
+ "danger_zone": "Zona de perigo",
1570
+ "reset_all": "Redefinir todas as memórias",
1571
+ "reset_confirm_instruction": "Digite RESET para confirmar a exclusão de todas as memórias. Isto não pode ser desfeito.",
1572
+ "confirm_reset": "Exclua todas as memórias",
1573
+ "export_title": "Exportar memórias",
1574
+ "export_hint": "Baixe todas as suas memórias como um arquivo JSON para backup ou migração.",
1575
+ "export_btn": "Exportar memórias",
1576
+ "export_invalid_format": "Formato de exportação de memória inválido.",
1577
+ "import_title": "Importar memórias",
1578
+ "import_hint": "Importe memórias de um arquivo JSON exportado anteriormente.",
1579
+ "choose_file": "Escolha o arquivo (.json)",
1580
+ "import_placeholder": "Ou cole JSON aqui...",
1581
+ "import_btn": "Importar",
1582
+ "import_success": "Memórias importadas com sucesso.",
1583
+ "memorize_ack": "Memória salva.",
1584
+ "forget_ack": "Memória esquecida.",
1585
+ "forget_not_found": "Nenhuma memória correspondente encontrada.",
1586
+ "private_mode_on": "Modo privado ativadoesta conversa não será extraída.",
1587
+ "extract_queued": "{n} memória/memórias pendentes de revisão.",
1588
+ "conflict_detected": "Conflito detectado com memória existente.",
1589
+ "upgrade_memory": "Atualize para Pessoal para desbloquear a memória de longo prazo."
1554
1590
  },
1555
1591
  "menu": {
1556
1592
  "file": "Arquivo",
@@ -1623,366 +1659,371 @@
1623
1659
  "empty": "Diagrama vazio"
1624
1660
  },
1625
1661
  "mfa": {
1626
- "__mt": true,
1627
- "title": "Multi-Factor Authentication",
1628
- "description": "Configure MFA requirements for team members.",
1629
- "policy": "MFA Policy",
1630
- "allowed_types": "Allowed MFA Methods",
1631
- "grace_period": "Grace Period",
1632
- "grace_period_hint": "Hours new members have to enroll in MFA after joining.",
1633
- "hours": "hours",
1634
- "required_banner": "MFA is required. All members must enroll before accessing team resources.",
1635
- "save": "Save MFA Settings",
1636
- "saved_success": "MFA settings saved."
1662
+ "title": "Autenticação multifator",
1663
+ "description": "Configure os requisitos de MFA para membros da equipe.",
1664
+ "policy": "Política de AMF",
1665
+ "allowed_types": "Métodos MFA permitidos",
1666
+ "grace_period": "Período de carência",
1667
+ "grace_period_hint": "Horas que os novos membros devem se inscrever no MFA após ingressar.",
1668
+ "hours": "horas",
1669
+ "required_banner": "AMF é necessária. Todos os membros devem se inscrever antes de acessar os recursos da equipe.",
1670
+ "save": "Salvar configurações de MFA",
1671
+ "saved_success": "Configurações de MFA salvas."
1637
1672
  },
1638
1673
  "migration": {
1639
- "__mt": true,
1640
1674
  "title": "KB Migration",
1641
- "subtitle": "Move your knowledge base to a different storage provider",
1642
- "new_migration": "New Migration",
1643
- "wizard_title": "New Migration Wizard",
1644
- "kb_id": "KB ID",
1675
+ "subtitle": "Mova sua base de conhecimento para um provedor de armazenamento diferente",
1676
+ "new_migration": "Nova Migração",
1677
+ "wizard_title": "Novo assistente de migração",
1678
+ "kb_id": "ID da base de conhecimento",
1645
1679
  "kb_name": "KB Name",
1646
- "provider": "Provider",
1647
- "bucket": "Bucket",
1648
- "prefix": "Prefix",
1649
- "source": "Source",
1650
- "target": "Target",
1651
- "encryption_mode": "Encryption Mode",
1652
- "dry_run_label": "Dry run (simulate only, no files copied)",
1653
- "dry_run_badge": "Dry Run",
1654
- "dry_run_start": "Start Dry Run",
1655
- "start_migration": "Start Migration",
1656
- "cancel": "Cancel",
1657
- "files": "files",
1658
- "errors": "Errors",
1659
- "started": "Started",
1660
- "rollback_deadline": "Rollback deadline",
1661
- "rollback": "Rollback",
1662
- "download_log": "Download Log",
1663
- "history_title": "Migration History",
1664
- "history_empty": "No migrations yet",
1665
- "loading": "Loading...",
1666
- "confirm_delete": "Delete this migration session?"
1680
+ "provider": "Provedor",
1681
+ "bucket": "Balde",
1682
+ "prefix": "Prefixo",
1683
+ "source": "Fonte",
1684
+ "target": "Alvo",
1685
+ "encryption_mode": "Modo de criptografia",
1686
+ "dry_run_label": "Teste (somente simulação, nenhum arquivo copiado)",
1687
+ "dry_run_badge": "Teste a seco",
1688
+ "dry_run_start": "Iniciar simulação",
1689
+ "start_migration": "Iniciar migração",
1690
+ "cancel": "Cancelar",
1691
+ "files": "arquivos",
1692
+ "errors": "Erros",
1693
+ "started": "Iniciado",
1694
+ "rollback_deadline": "Prazo de reversão",
1695
+ "rollback": "Reverter",
1696
+ "download_log": "Baixar registro",
1697
+ "history_title": "Histórico de Migração",
1698
+ "history_empty": "Ainda não há migrações",
1699
+ "loading": "Carregando...",
1700
+ "confirm_delete": "Excluir esta sessão de migração?"
1667
1701
  },
1668
1702
  "mobile": {
1669
- "__mt": true,
1670
1703
  "tab": {
1671
- "nav_label": "Primary navigation",
1672
- "edit": "Edit",
1673
- "ai": "AI",
1674
- "files": "Knowledge Base",
1675
- "settings": "Settings"
1704
+ "nav_label": "Navegação primária",
1705
+ "edit": "Editar",
1706
+ "ai": "IA",
1707
+ "files": "Base de conhecimento",
1708
+ "settings": "Configurações"
1676
1709
  },
1677
1710
  "appbar": {
1678
- "menu": "Open sidebar",
1679
- "more": "More actions",
1680
- "toggle_ai_pane": "Toggle AI pane",
1681
- "untitled": "Untitled"
1711
+ "menu": "Abrir barra lateral",
1712
+ "more": "Mais ações",
1713
+ "toggle_ai_pane": "Alternar painel AI",
1714
+ "untitled": "Sem título"
1682
1715
  },
1683
1716
  "overflow": {
1684
- "mode_label": "Mode",
1717
+ "mode_label": "Modo",
1685
1718
  "mode_visual": "Visual",
1686
- "mode_source": "Source",
1687
- "search": "Find & Replace",
1688
- "outline": "Outline",
1689
- "export": "Export",
1690
- "share": "Share"
1719
+ "mode_source": "Fonte",
1720
+ "search": "Localizar e substituir",
1721
+ "outline": "Contorno",
1722
+ "export": "Exportar",
1723
+ "share": "Compartilhar"
1691
1724
  },
1692
1725
  "format": {
1693
- "bold": "Bold",
1694
- "italic": "Italic",
1695
- "heading": "Heading",
1696
- "list": "List",
1697
- "code": "Code",
1726
+ "bold": "Audacioso",
1727
+ "italic": "itálico",
1728
+ "heading": "Cabeçalho",
1729
+ "list": "Lista",
1730
+ "code": "Código",
1698
1731
  "link": "Link",
1699
- "link_prompt": "Enter URL",
1700
- "image": "Image"
1732
+ "link_prompt": "Insira o URL",
1733
+ "image": "Imagem"
1701
1734
  },
1702
1735
  "ai": {
1703
- "title": "AI",
1704
- "placeholder": "Ask anything or describe what you want to write…",
1705
- "send": "Send",
1706
- "voice": "Voice",
1707
- "model": "Model",
1708
- "empty_state": "Your AI conversations will appear here.",
1709
- "thinking": "Thinking…",
1710
- "clear": "Clear conversation",
1711
- "clear_confirm": "Clear all messages?",
1736
+ "title": "IA",
1737
+ "placeholder": "Pergunte qualquer coisa ou descreva o que você deseja escrever…",
1738
+ "send": "Enviar",
1739
+ "voice": "Voz",
1740
+ "model": "Modelo",
1741
+ "empty_state": "Suas conversas de IA aparecerão aqui.",
1742
+ "thinking": "Pensamento…",
1743
+ "clear": "Limpar conversa",
1744
+ "clear_confirm": "Limpar todas as mensagens?",
1712
1745
  "cleared": "Conversa apagada",
1713
1746
  "clear_undone": "Mensagens restauradas",
1714
- "stub_response": "Hi! I'm a placeholder response. The real AI provider will be wired up in v0.68.",
1715
- "not_configured_title": "AI is not configured yet",
1716
- "not_configured_text": "Add an API key or pick a local model in Settings AI to start chatting.",
1717
- "not_configured": "AI is not configured. Open Settings to set up an AI model?",
1718
- "configure_now": "Set up",
1719
- "stop": "Stop",
1720
- "error_prefix": "Error",
1721
- "pick_model": "Switch AI model",
1722
- "no_providers": "No AI providers configured yet. TapSet upto add one.",
1723
- "conversations": "Conversations",
1724
- "new_chat": "New chat",
1725
- "no_conversations": "No conversations yet. TapNew chatto start.",
1726
- "no_matches": "No conversations match your search.",
1727
- "search_placeholder": "Search conversations…",
1728
- "attach_image": "Attach image",
1729
- "remove_attachment": "Remove attachment",
1730
- "attached_image": "Attached image",
1731
- "compressing": "Compressing…",
1732
- "copy": "Copy",
1733
- "sync_syncing": "Syncing with Picora…",
1734
- "sync_idle": "Synced with Picora",
1735
- "sync_offline": "Offline (will retry)",
1736
- "sync_error": "Sync error check connection",
1737
- "sync_disabled": "Sync disabled",
1738
- "mention_title": "Mention a note",
1747
+ "stub_response": "Oi! Sou uma resposta de espaço reservado. O verdadeiro provedor de IA será conectado na v0.68.",
1748
+ "not_configured_title": "A IA ainda não está configurada",
1749
+ "not_configured_text": "Adicione uma chave de API ou escolha um modelo local em ConfiguraçõesIA para começar a conversar.",
1750
+ "not_configured": "A IA não está configurada. Abrir Configurações para configurar um modelo de IA?",
1751
+ "configure_now": "Configurar",
1752
+ "stop": "Parar",
1753
+ "error_prefix": "Erro",
1754
+ "pick_model": "Mudar modelo de IA",
1755
+ "no_providers": "Nenhum provedor de IA configurado ainda. Toque em Configurarpara adicionar um.",
1756
+ "conversations": "Conversas",
1757
+ "new_chat": "Novo bate-papo",
1758
+ "no_conversations": "Nenhuma conversa ainda. Toque em Novo bate-papopara começar.",
1759
+ "no_matches": "Nenhuma conversa corresponde à sua pesquisa.",
1760
+ "search_placeholder": "Pesquisar conversas…",
1761
+ "attach_image": "Anexar imagem",
1762
+ "remove_attachment": "Remover anexo",
1763
+ "attached_image": "Imagem anexada",
1764
+ "compressing": "Comprimindo…",
1765
+ "copy": "Cópia",
1766
+ "sync_syncing": "Sincronizando com Picora…",
1767
+ "sync_idle": "Sincronizado com Picora",
1768
+ "sync_offline": "Off-line (tentarei novamente)",
1769
+ "sync_error": "Erro de sincronização verifique a conexão",
1770
+ "sync_disabled": "Sincronização desativada",
1771
+ "mention_title": "Mencione uma nota",
1739
1772
  "mention_search": "Search your notes…",
1740
- "no_notes": "No notes yet open one from the Files tab.",
1773
+ "no_notes": "Nenhuma nota ainda abra uma na guia Arquivos.",
1741
1774
  "insert_action": "Insert",
1742
1775
  "insert_title": "Insert into note",
1743
- "insert_append": "Append to current note",
1744
- "insert_append_sub": "Add this AI reply to the doc you have open in the Edit tab.",
1745
- "insert_new": "Create new note",
1746
- "insert_new_sub": "Make a new doc from this AI reply and open it.",
1747
- "insert_no_active": "No document is open in the Edit tab.",
1748
- "insert_failed": "Could not write the note check storage permissions.",
1749
- "insert_append_ok": "Appended to current note.",
1750
- "insert_new_ok": "New note created.",
1751
- "export": "Export / Share",
1752
- "export_failed": "Could not export this conversation.",
1753
- "export_ok": "Conversation exported.",
1754
- "rag_used": "Referenced {n} past message(s)",
1755
- "rag_on_title": "History RAG enabled past conversations may be used as context",
1756
- "citations_title": "{n} reference(s)",
1757
- "citations_empty": "No citations attached to this message.",
1758
- "params_title": "Generation parameters",
1759
- "params_hint": "Override AI generation settings for this conversation only. Leave blank to use the provider default.",
1760
- "params_save": "Save",
1761
- "params_reset": "Reset to defaults",
1762
- "param_temperature": "Temperature",
1763
- "param_temperature_sub": "0 = deterministic · 1 = balanced · 2 = creative",
1764
- "param_max_tokens": "Max output tokens",
1765
- "param_max_tokens_sub": "Hard cap on the model's reply length",
1766
- "param_top_p": "Top-P",
1767
- "param_top_p_sub": "Nucleus sampling threshold (0–1)",
1768
- "param_stop": "Stop sequences",
1769
- "param_stop_sub": "Model halts when about to emit any of these. Comma-separated; use \\n for newline.",
1770
- "param_stop_placeholder": "\\n\\n###, END",
1771
- "presets_label": "Presets",
1772
- "preset_save_as": "Save current as preset",
1773
- "preset_save_prompt": "Name this preset:",
1774
- "preset_delete_confirm": "Delete preset \"{name}\"?",
1775
- "preset_delete_aria": "Delete preset",
1776
+ "insert_append": "Anexar à nota atual",
1777
+ "insert_append_sub": "Adicione esta resposta de IA ao documento que você abriu na guia Editar.",
1778
+ "insert_new": "Criar nova nota",
1779
+ "insert_new_sub": "Faça um novo documento a partir desta resposta da IA ​​e abra-o.",
1780
+ "insert_no_active": "Nenhum documento está aberto na guia Editar.",
1781
+ "insert_failed": "Não foi possível escrever a nota. Verifique as permissões de armazenamento.",
1782
+ "insert_append_ok": "Anexado à nota atual.",
1783
+ "insert_new_ok": "Nova nota criada.",
1784
+ "export": "Exportar/Compartilhar",
1785
+ "export_failed": "Não foi possível exportar esta conversa.",
1786
+ "export_ok": "Conversa exportada.",
1787
+ "rag_used": "Mensagens anteriores {n} referenciadas",
1788
+ "rag_on_title": "Histórico RAG ativado conversas anteriores podem ser usadas como contexto",
1789
+ "citations_title": "{n} referência(s)",
1790
+ "citations_empty": "Nenhuma citação anexada a esta mensagem.",
1791
+ "params_title": "Parâmetros de geração",
1792
+ "params_hint": "Substitua as configurações de geração de IA apenas para esta conversa. Deixe em branco para usar o padrão do provedor.",
1793
+ "params_save": "Salvar",
1794
+ "params_reset": "Redefinir para os padrões",
1795
+ "param_temperature": "Temperatura",
1796
+ "param_temperature_sub": "0 = determinístico · 1 = equilibrado · 2 = criativo",
1797
+ "param_max_tokens": "Máximo de tokens de saída",
1798
+ "param_max_tokens_sub": "Limite rígido no comprimento da resposta do modelo",
1799
+ "param_top_p": "Topo-P",
1800
+ "param_top_p_sub": "Limite de amostragem de núcleo (0–1)",
1801
+ "param_stop": "Parar sequências",
1802
+ "param_stop_sub": "O modelo para quando está prestes a emitir qualquer um deles. Separados por vírgula; use \\n para nova linha.",
1803
+ "param_stop_placeholder": "\\n\\n###, FIM",
1804
+ "presets_label": "Predefinições",
1805
+ "preset_save_as": "Salvar atual como predefinido",
1806
+ "preset_save_prompt": "Nomeie esta predefinição:",
1807
+ "preset_delete_confirm": "Excluir predefinição \"{name}\"?",
1808
+ "preset_delete_aria": "Excluir predefinição",
1776
1809
  "preset_deleted": "Predefinição \"{name}\" excluída",
1777
1810
  "preset_restored": "Predefinição restaurada",
1778
- "preset_picker_title": "Pick a preset",
1779
- "preset_picker_hint": "Switch tone for this conversation. For fine-tuning, use the gear.",
1780
- "preset_picker_custom_note": "Currently using custom valuesopento view or save them as a preset.",
1781
- "preset_custom_label": "Custom",
1782
- "retry_title": "Retry this reply",
1783
- "retry_action": "Retry",
1784
- "retry_as_is": "Retry with current params",
1785
- "retry_with_preset": "Or try a different preset",
1786
- "retry_done": "Reply regenerating",
1787
- "retry_undone": "Original reply restored",
1788
- "undo": "Undo",
1811
+ "preset_picker_title": "Escolha uma predefinição",
1812
+ "preset_picker_hint": "Mude o tom desta conversa. Para ajuste fino, use a engrenagem ⚙.",
1813
+ "preset_picker_custom_note": "Atualmente usando valores personalizadosabrapara visualizá-los ou salvá-los como uma predefinição.",
1814
+ "preset_custom_label": "Personalizado",
1815
+ "retry_title": "Tente esta resposta novamente",
1816
+ "retry_action": "Tentar novamente",
1817
+ "retry_as_is": "Tente novamente com os parâmetros atuais",
1818
+ "retry_with_preset": "Ou tente uma predefinição diferente",
1819
+ "retry_done": "Resposta regenerando",
1820
+ "retry_undone": "Resposta original restaurada",
1821
+ "undo": "Desfazer",
1789
1822
  "presets": {
1790
1823
  "default": {
1791
1824
  "label": "Default"
1792
1825
  },
1793
1826
  "precise": {
1794
- "label": "Precise"
1827
+ "label": "Preciso"
1795
1828
  },
1796
1829
  "balanced": {
1797
- "label": "Balanced"
1830
+ "label": "Equilibrado"
1798
1831
  },
1799
1832
  "creative": {
1800
- "label": "Creative"
1833
+ "label": "Criativo"
1801
1834
  }
1802
1835
  },
1803
- "default": "Default",
1804
- "quick_actions_header": "Start with",
1805
- "workflows_header": "Workflows",
1806
- "wf_steps": "steps",
1836
+ "default": "Padrão",
1837
+ "quick_actions_header": "Comece com",
1838
+ "workflows_header": "Fluxos de trabalho",
1839
+ "wf_steps": "passos",
1807
1840
  "wf": {
1808
1841
  "summarize-then-translate": {
1809
- "name": "SummarizeTranslate",
1810
- "desc": "TL;DR the input, then translate the summary."
1842
+ "name": "ResumirTraduzir",
1843
+ "desc": "DR a entrada e, em seguida, traduza o resumo."
1811
1844
  },
1812
1845
  "translate-then-polish": {
1813
- "name": "TranslatePolish",
1814
- "desc": "Translate input, then smooth the translation."
1846
+ "name": "TraduzirPolonês",
1847
+ "desc": "Traduza a entrada e suavize a tradução."
1815
1848
  },
1816
1849
  "step": {
1817
- "summarize": "Summarizing",
1818
- "translate": "Translating",
1819
- "polish": "Polishing",
1820
- "tone": "Tone",
1821
- "length": "Length",
1822
- "article": "Writing article",
1823
- "cover": "Cover image",
1824
- "target_lang": "Target language",
1825
- "dictate": "Dictation",
1826
- "structurize": "Structuring"
1850
+ "summarize": "Resumindo",
1851
+ "translate": "Traduzindo",
1852
+ "polish": "Polimento",
1853
+ "tone": "Tom",
1854
+ "length": "Comprimento",
1855
+ "article": "Escrevendo artigo",
1856
+ "cover": "Imagem da capa",
1857
+ "target_lang": "Idioma alvo",
1858
+ "dictate": "Ditado",
1859
+ "structurize": "Estruturação"
1827
1860
  },
1828
1861
  "write-article": {
1829
- "name": "Write article + cover",
1830
- "desc": "Topictone/lengtharticle → AI cover",
1831
- "ask_tone": "What tone should the article take?",
1832
- "ask_length": "How long should it be?",
1833
- "cover_hint": "Generating a cover image…"
1862
+ "name": "Escrever artigo + capa",
1863
+ "desc": "Tópicotom/duraçãoartigocapa AI",
1864
+ "ask_tone": "Que tom o artigo deve ter?",
1865
+ "ask_length": "Quanto tempo deveria durar?",
1866
+ "cover_hint": "Gerando uma imagem de capa…"
1834
1867
  },
1835
1868
  "translate": {
1836
- "name": "Translate",
1837
- "desc": "Translate text into a target language",
1838
- "ask_lang": "Translate into which language?"
1869
+ "name": "Traduzir",
1870
+ "desc": "Traduzir texto para um idioma de destino",
1871
+ "ask_lang": "Traduzir para qual idioma?"
1839
1872
  },
1840
1873
  "voice-transcribe": {
1841
- "name": "Voicenote",
1842
- "desc": "Dictate, then structure into a note",
1843
- "hint": "Tap done when you finish speaking."
1874
+ "name": "Voznota",
1875
+ "desc": "Dite e depois estruture em uma nota",
1876
+ "hint": "Toque em concluído quando terminar de falar."
1844
1877
  },
1845
1878
  "tone": {
1846
- "general": "General",
1879
+ "general": "Em geral",
1847
1880
  "marketing": "Marketing",
1848
- "technical": "Technical",
1849
- "story": "Story"
1881
+ "technical": "Técnico",
1882
+ "story": "História"
1850
1883
  },
1851
1884
  "length": {
1852
- "short": "Short (~500)",
1853
- "medium": "Medium (~1500)",
1885
+ "short": "Curto (~500)",
1886
+ "medium": "Médio (~1500)",
1854
1887
  "long": "Long (~3000)"
1855
1888
  },
1856
1889
  "lang": {
1857
1890
  "en": "English",
1858
- "zh": "Chinese",
1859
- "ja": "Japanese",
1860
- "ko": "Korean"
1891
+ "zh": "chinês",
1892
+ "ja": "japonês",
1893
+ "ko": "coreano"
1861
1894
  },
1862
- "cancel": "Cancel",
1863
- "listening": "Listening…",
1864
- "stt_done": "Done",
1865
- "generating_cover": "Generating cover…",
1866
- "cover_failed": "Cover generation failed",
1867
- "skip_cover": "Skip cover",
1868
- "regenerate": "Regenerate",
1869
- "insert_with_cover": "Insert article + cover",
1870
- "no_image_provider": "No image provider set one up in SettingsImage generation."
1895
+ "cancel": "Cancelar",
1896
+ "listening": "Audição…",
1897
+ "stt_done": "Feito",
1898
+ "generating_cover": "Gerando cobertura…",
1899
+ "cover_failed": "Falha na geração da capa",
1900
+ "skip_cover": "Pular capa",
1901
+ "regenerate": "Regenerado",
1902
+ "insert_with_cover": "Inserir artigo + capa",
1903
+ "no_image_provider": "Nenhum provedor de imagem configure um em ConfiguraçõesGeração de imagem."
1871
1904
  },
1872
1905
  "tpl": {
1873
1906
  "screenshot-to-md": {
1874
- "name": "ImageMarkdown",
1875
- "desc": "Convert a screenshot, photo, or chart to clean Markdown.",
1876
- "input": "Add a caption or leave empty the model uses your image."
1907
+ "name": "ImagemRemarcação",
1908
+ "desc": "Converta uma captura de tela, foto ou gráfico para limpar o Markdown.",
1909
+ "input": "Adicione uma legenda ou deixe em branco o modelo usa sua imagem."
1877
1910
  },
1878
1911
  "summarize-current": {
1879
- "name": "Summarize note",
1880
- "desc": "TL;DR + key terms of the doc open in the Edit tab.",
1881
- "input": "Optional focus: “key claims only”, “as bullet list”…"
1912
+ "name": "Resumir nota",
1913
+ "desc": "TL;DR + termos-chave do documento abertos na guia Editar.",
1914
+ "input": "Foco opcional: “somente reivindicações principais”, “como lista com marcadores”…"
1882
1915
  },
1883
1916
  "continue-writing": {
1884
- "name": "Continue writing",
1885
- "desc": "Pick up where you left off in the current doc.",
1886
- "input": "Optional steering: tone, length, next section…"
1917
+ "name": "Continuar escrevendo",
1918
+ "desc": "Continue de onde parou no documento atual.",
1919
+ "input": "Direção opcional: tom, comprimento, próxima seção…"
1887
1920
  },
1888
1921
  "translate-zh-en": {
1889
- "name": "Translate ZH ↔ EN",
1890
- "desc": "Auto-detects source language. Preserves Markdown.",
1891
- "input": "Paste the text to translate."
1922
+ "name": "Traduzir ZH ↔ EN",
1923
+ "desc": "Detecta automaticamente o idioma de origem. Preserva Markdown.",
1924
+ "input": "Cole o texto para traduzir."
1892
1925
  }
1893
1926
  },
1894
- "rename": "Rename",
1895
- "rename_prompt": "New title",
1896
- "delete_confirm": "Delete “{title}”? This cannot be undone.",
1897
- "conv_deleted": "Deleted “{title}”",
1898
- "conv_restored": "Conversation restored",
1899
- "usage_tooltip": "Prompt tokens Completion tokens ↓",
1900
- "budget_warn_confirm": "You are nearing your monthly AI budget. Send anyway?",
1901
- "budget_over_confirm": "You are OVER your monthly AI budget. Send anyway?",
1902
- "bulk_import": "Import all",
1927
+ "rename": "Renomear",
1928
+ "rename_prompt": "Novo título",
1929
+ "delete_confirm": "Excluir “{title}”? Isto não pode ser desfeito.",
1930
+ "conv_deleted": "Excluído “{title}”",
1931
+ "conv_restored": "Conversa restaurada",
1932
+ "usage_tooltip": "Tokens de prompt Tokens de conclusão ↓",
1933
+ "budget_warn_confirm": "Você está se aproximando do seu orçamento mensal de IA. Enviar mesmo assim?",
1934
+ "budget_over_confirm": "Você superou seu orçamento mensal de IA. Enviar mesmo assim?",
1935
+ "bulk_import": "Importar tudo",
1903
1936
  "bulk_export": "Export all",
1904
- "import_ok": "Imported {n} conversation(s).",
1905
- "import_empty": "No conversations in that file.",
1906
- "import_failed": "Import failed: {err}",
1907
- "compose": "Compose article",
1937
+ "import_ok": "Conversa(s) {n} importadas.",
1938
+ "import_empty": "Nenhuma conversa nesse arquivo.",
1939
+ "import_failed": "Falha na importação: {err}",
1940
+ "compose": "Compor artigo",
1908
1941
  "commands_title": "Commands",
1909
- "more_actions": "More actions",
1910
- "commands_empty": "No matching commands.",
1911
- "voice_dictate": "Voice input",
1912
- "voice_stop": "Stop",
1913
- "voice_read_aloud": "Read aloud",
1914
- "voice_local_badge": "On-device",
1915
- "voice_permission_denied": "Microphone or speech permission denied. Enable it in Settings to use voice.",
1916
- "voice_start_failed": "Could not start voice input.",
1917
- "voice_speak_failed": "Could not read this message aloud."
1942
+ "more_actions": "Mais ações",
1943
+ "commands_empty": "Nenhum comando correspondente.",
1944
+ "voice_dictate": "Entrada de voz",
1945
+ "voice_stop": "Parar",
1946
+ "voice_read_aloud": "Ler em voz alta",
1947
+ "voice_local_badge": "No dispositivo",
1948
+ "voice_permission_denied": "Permissão de microfone ou fala negada. Ative-o em Configurações para usar a voz.",
1949
+ "voice_start_failed": "Não foi possível iniciar a entrada de voz.",
1950
+ "voice_speak_failed": "Não foi possível ler esta mensagem em voz alta.",
1951
+ "delete": "Excluir"
1918
1952
  },
1919
1953
  "files": {
1920
1954
  "title": "Knowledge Base",
1921
1955
  "kb": "Knowledge Bases",
1922
- "tree": "All Notes",
1923
- "recent": "Recent",
1924
- "favorites": "Favorites",
1925
- "open_local": "Open from device",
1926
- "open_local_failed": "Could not open this file. Make sure it's a text or Markdown file.",
1927
- "new": "New document",
1928
- "no_recent": "No recently opened documents.",
1929
- "no_favorites": "No favorites yet. Star a document from the editor to add it here.",
1930
- "empty": "No notes yet. TapNew documentorOpen from deviceto start.",
1931
- "loading": "Loading…",
1932
- "new_kb": "New knowledge base",
1956
+ "tree": "Todas as notas",
1957
+ "recent": "Recente",
1958
+ "favorites": "Favoritos",
1959
+ "open_local": "Abrir no dispositivo",
1960
+ "open_local_failed": "Não foi possível abrir este arquivo. Certifique-se de que seja um arquivo de texto ou Markdown.",
1961
+ "new": "Novo documento",
1962
+ "no_recent": "Nenhum documento aberto recentemente.",
1963
+ "no_favorites": "Ainda não há favoritos. Marque um documento do editor com estrela para adicioná-lo aqui.",
1964
+ "empty": "Ainda não há notas. Toque em Novo documentoouAbrir no dispositivopara começar.",
1965
+ "loading": "Carregando…",
1966
+ "new_kb": "Nova base de conhecimento",
1933
1967
  "kb_name_placeholder": "Knowledge base name",
1934
- "create": "Create",
1935
- "cancel": "Cancel",
1968
+ "create": "Criar",
1969
+ "cancel": "Cancelar",
1936
1970
  "kb_create_failed": "Could not create the knowledge base."
1937
1971
  },
1938
1972
  "media": {
1939
- "title": "Cloud images",
1973
+ "title": "Imagens de nuvem",
1940
1974
  "search": "Search images",
1941
- "loading": "Loading…",
1942
- "empty": "No cloud images yet.",
1943
- "insert": "Insert cloud image"
1975
+ "loading": "Carregando…",
1976
+ "empty": "Ainda não imagens de nuvem.",
1977
+ "insert": "Inserir imagem da nuvem"
1944
1978
  }
1945
1979
  },
1946
1980
  "notifications": {
1947
- "__mt": true,
1948
- "title": "Push Notifications",
1949
- "subtitle": "Receive alerts when your AI tasks finish or collaborators @ you.",
1950
- "unsupported": "This browser does not support push notifications.",
1951
- "permission_status": "Permission",
1952
- "permission_denied": "Notification permission denied.",
1953
- "denied_hint": "Open your browser settings to re-enable notifications.",
1954
- "enable": "Enable",
1955
- "disable": "Disable",
1956
- "no_token": "Failed to obtain a device token.",
1957
- "device_registered": "This device is registered:",
1958
- "registered_devices": "Registered devices",
1959
- "no_devices": "No devices registered yet.",
1960
- "revoke": "Revoke",
1961
- "revoke_confirm": "Revoke this device? It will stop receiving push notifications immediately.",
1981
+ "title": "Notificações push",
1982
+ "subtitle": "Receba alertas quando suas tarefas de IA terminarem ou quando colaboradores @ você.",
1983
+ "unsupported": "Este navegador não suporta notificações push.",
1984
+ "permission_status": "Permissão",
1985
+ "permission_denied": "Permissão de notificação negada.",
1986
+ "denied_hint": "Abra as configurações do seu navegador para reativar as notificações.",
1987
+ "enable": "Habilitar",
1988
+ "disable": "Desativar",
1989
+ "no_token": "Falha ao obter um token de dispositivo.",
1990
+ "device_registered": "Este dispositivo está registrado:",
1991
+ "registered_devices": "Dispositivos registrados",
1992
+ "no_devices": "Nenhum dispositivo cadastrado ainda.",
1993
+ "revoke": "Revogar",
1994
+ "revoke_confirm": "Revogar este dispositivo? Ele irá parar de receber notificações push imediatamente.",
1962
1995
  "platform": {
1963
- "web": "Web",
1996
+ "web": "Rede",
1964
1997
  "ios": "iOS",
1965
1998
  "android": "Android",
1966
- "desktop": "Desktop",
1999
+ "desktop": "Área de trabalho",
1967
2000
  "unknown": "Unknown"
1968
2001
  },
1969
- "registered_at": "Registered {date}",
1970
- "last_seen": "Last seen {date}",
1971
- "error_register": "Could not register this device.",
1972
- "error_list": "Could not load device list."
2002
+ "registered_at": "Registrado {date}",
2003
+ "last_seen": "Visto pela última vez {date}",
2004
+ "error_register": "Não foi possível registrar este dispositivo.",
2005
+ "error_list": "Não foi possível carregar a lista de dispositivos.",
2006
+ "recent": "Notificações recentes"
2007
+ },
2008
+ "ocr": {
2009
+ "capture_button": "Capture e extraia texto",
2010
+ "capture_short": "Capturar",
2011
+ "recognizing": "Reconhecendo texto…",
2012
+ "empty_result": "Nenhum texto detectado",
2013
+ "failed": "Falha no OCR",
2014
+ "engine_unavailable": "OCR não disponível neste dispositivo"
1973
2015
  },
1974
2016
  "offline": {
1975
- "__mt": true,
1976
- "cache_enabled": "Offline cache enabled",
1977
- "cache_disabled": "Offline cache disabled",
1978
- "cache_size": "{size} cached",
1979
- "cache_note_count": "{count} notes cached",
1980
- "cache_expired": "Cache expired",
1981
- "note_cached": "Note cached for offline",
2017
+ "cache_enabled": "Cache off-line ativado",
2018
+ "cache_disabled": "Cache off-line desativado",
2019
+ "cache_size": "{size} em cache",
2020
+ "cache_note_count": "{count} notas armazenadas em cache",
2021
+ "cache_expired": "Cache expirou",
2022
+ "note_cached": "Nota armazenada em cache para off-line",
1982
2023
  "note_evicted": "Note evicted from cache",
1983
- "offline_banner": "You are offline. Showing cached content.",
1984
- "cache_settings": "Offline Cache Settings",
1985
- "max_notes": "Max cached notes"
2024
+ "offline_banner": "Você está off-line. Mostrando conteúdo em cache.",
2025
+ "cache_settings": "Configurações de cache off-line",
2026
+ "max_notes": "Máximo de notas em cache"
1986
2027
  },
1987
2028
  "outline": {
1988
2029
  "empty": "No headings found",
@@ -1991,27 +2032,25 @@
1991
2032
  "collapse": "Collapse"
1992
2033
  },
1993
2034
  "perf": {
1994
- "__mt": true,
1995
- "memory_warning": "High memory usage detected ({percent}%)",
1996
- "memory_critical": "Critical memory usage ({percent}%)",
1997
- "memory_trend_growing": "Memory growing",
1998
- "memory_trend_stable": "Memory stable",
1999
- "memory_trend_shrinking": "Memory shrinking",
2000
- "vitals_score": "Performance score: {score}",
2001
- "vitals_good": "Good",
2002
- "vitals_needs_improvement": "Needs improvement",
2003
- "vitals_poor": "Poor"
2035
+ "memory_warning": "Alto uso de memória detectado ({percent}%)",
2036
+ "memory_critical": "Uso crítico de memória ({percent}%)",
2037
+ "memory_trend_growing": "Memória crescendo",
2038
+ "memory_trend_stable": "Memória estável",
2039
+ "memory_trend_shrinking": "Encolhimento de memória",
2040
+ "vitals_score": "Pontuação de desempenho: {score}",
2041
+ "vitals_good": "Bom",
2042
+ "vitals_needs_improvement": "Precisa de melhorias",
2043
+ "vitals_poor": "Pobre"
2004
2044
  },
2005
2045
  "permissions": {
2006
- "__mt": true,
2007
- "paste_title": "Allow Clipboard Access?",
2008
- "paste_desc": "Moraya wants to read image data from your clipboard. This is used only when you paste an image.",
2009
- "allow_once": "Allow Once",
2010
- "allow_always": "Always Allow",
2011
- "deny": "Deny",
2012
- "granted": "Clipboard access granted",
2013
- "denied": "Clipboard access denied",
2014
- "revoke": "Revoke Permission"
2046
+ "paste_title": "Permitir acesso à área de transferência?",
2047
+ "paste_desc": "Moraya deseja ler dados de imagem da sua área de transferência. Isso é usado apenas quando você cola uma imagem.",
2048
+ "allow_once": "Permitir uma vez",
2049
+ "allow_always": "Sempre permitir",
2050
+ "deny": "Negar",
2051
+ "granted": "Acesso à área de transferência concedido",
2052
+ "denied": "Acesso à área de transferência negado",
2053
+ "revoke": "Revogar permissão"
2015
2054
  },
2016
2055
  "plugin_action": {
2017
2056
  "title": "Executar plugin",
@@ -2156,43 +2195,40 @@
2156
2195
  "seo_no_provider": "Nenhum provedor de IA configurado. Configure um provedor de IA nas Configurações."
2157
2196
  },
2158
2197
  "pwa": {
2159
- "__mt": true,
2160
- "install_prompt": "Install Moraya Web for a better experience.",
2161
- "install": "Install",
2162
- "dismiss": "Not now",
2163
- "update_available": "A new version is available.",
2164
- "refresh": "Refresh"
2198
+ "install_prompt": "Instale Moraya Web para uma melhor experiência.",
2199
+ "install": "Instalar",
2200
+ "dismiss": "Agora não",
2201
+ "update_available": "Uma nova versão está disponível.",
2202
+ "refresh": "Atualizar"
2165
2203
  },
2166
2204
  "quickopen": {
2167
- "__mt": true,
2168
- "title": "Quick Open",
2169
- "placeholder": "Search notes...",
2170
- "no_results": "No notes found",
2171
- "hint_enter": " Open",
2172
- "hint_cmd_enter": "⌘↵ Open in new tab"
2205
+ "title": "Abertura rápida",
2206
+ "placeholder": "Pesquisar notas...",
2207
+ "no_results": "Nenhuma nota encontrada",
2208
+ "hint_enter": " Abrir",
2209
+ "hint_cmd_enter": "⌘↵ Abrir em uma nova aba"
2173
2210
  },
2174
2211
  "rag": {
2175
- "__mt": true,
2176
- "title": "AI Knowledge Search (RAG)",
2177
- "mode_label": "Search Mode",
2178
- "mode_disabled": "Disabled",
2179
- "mode_client": "Client-side (E2E compatible)",
2180
- "mode_server": "Server-side (faster, KMS required)",
2181
- "index_status": "Index Status",
2182
- "indexed_notes": "Indexed notes",
2183
- "rebuild_index": "Rebuild Full Index",
2184
- "pause_rebuild": "Pause",
2185
- "rebuilding": "Rebuilding index...",
2186
- "search_settings": "Search Settings",
2187
- "top_k_label": "Results (top-K)",
2188
- "threshold_label": "Min. similarity",
2189
- "sources_label": "Sources",
2190
- "sources_count": "{n} note excerpts",
2191
- "jump_to_source": "Jump to note →",
2212
+ "title": "Pesquisa de conhecimento de IA (RAG)",
2213
+ "mode_label": "Modo de pesquisa",
2214
+ "mode_disabled": "Desabilitado",
2215
+ "mode_client": "Lado do cliente (compatível com E2E)",
2216
+ "mode_server": "Lado do servidor (mais rápido, requer KMS)",
2217
+ "index_status": "Status do índice",
2218
+ "indexed_notes": "Notas indexadas",
2219
+ "rebuild_index": "Reconstruir índice completo",
2220
+ "pause_rebuild": "Pausa",
2221
+ "rebuilding": "Reconstruindo índice...",
2222
+ "search_settings": "Configurações de pesquisa",
2223
+ "top_k_label": "Resultados (top-K)",
2224
+ "threshold_label": "Min. semelhança",
2225
+ "sources_label": "Fontes",
2226
+ "sources_count": "{n} trechos de notas",
2227
+ "jump_to_source": "Ir para a nota →",
2192
2228
  "no_sources": "No sources",
2193
- "server_mode_warning": "Server mode lets Moraya temporarily decrypt your notes for indexing. Requires Cloud KMS.",
2194
- "model_version": "Model version",
2195
- "upgrade_for_cross_kb": "Upgrade to Personal to search across all your knowledge bases."
2229
+ "server_mode_warning": "O modo servidor permite que Moraya descriptografe temporariamente suas notas para indexação. Requer Cloud KMS.",
2230
+ "model_version": "Versão do modelo",
2231
+ "upgrade_for_cross_kb": "Atualize para Pessoal para pesquisar em todas as suas bases de conhecimento."
2196
2232
  },
2197
2233
  "review": {
2198
2234
  "panel_title": "Revisões",
@@ -2282,64 +2318,73 @@
2282
2318
  "invalid_regex": "Invalid regular expression"
2283
2319
  },
2284
2320
  "security": {
2285
- "__mt": true,
2286
- "title": "Security",
2287
- "encryption_mode_label": "Encryption Mode",
2288
- "mode_none": "None",
2289
- "mode_e2e": "E2E Client Encryption",
2290
- "mode_kms": "Cloud KMS",
2291
- "setup_title": "Set Up E2E Encryption",
2292
- "setup_subtitle": "Your notes will be encrypted before leaving your device. Moraya cannot read your notes.",
2293
- "passphrase_label": "Passphrase",
2294
- "passphrase_confirm_label": "Confirm Passphrase",
2295
- "passphrase_strength_weak": "Too weak",
2296
- "passphrase_strength_fair": "Fair",
2297
- "passphrase_strength_strong": "Strong",
2298
- "passphrase_strength_very_strong": "Very strong",
2299
- "passphrase_min_length": "Minimum 12 characters",
2300
- "passphrase_mismatch": "Passphrases do not match",
2301
- "passphrase_too_weak": "Passphrase is too weak. Use a longer, more complex phrase.",
2302
- "warning_no_recovery": "⚠️ If you forget your passphrase and lose your recovery code, your data cannot be recovered. Moraya has no backup.",
2303
- "recovery_code_title": "Your Recovery Code",
2304
- "recovery_code_subtitle": "Write down these 12 words. You will need them if you forget your passphrase.",
2305
- "recovery_confirm_instruction": "Enter word #{n} to confirm you wrote it down:",
2306
- "recovery_confirm_correct": "Correct! Enter word #{n}:",
2307
- "recovery_confirm_wrong": "Wrong word. Try again.",
2308
- "recovery_complete": "Recovery code confirmed.",
2309
- "i_have_written_down": "I have written down my recovery code",
2310
- "unlock_title": "Unlock Your Notes",
2311
- "unlock_subtitle": "Enter your passphrase to decrypt your notes.",
2312
- "unlock_button": "Unlock",
2313
- "unlock_failed": "Wrong passphrase. Please try again.",
2314
- "unlock_remember_device": "Remember this device for 7 days",
2315
- "migrate_title": "Upgrade to Cloud KMS",
2316
- "migrate_subtitle": "Your notes will be re-encrypted using your cloud KMS. Moraya can use your KMS to assist with AI features.",
2317
- "migrate_warning": "This is a one-way migration. You cannot revert to E2E mode without exporting and re-importing all data.",
2318
- "migrate_confirm": "I understand and want to proceed",
2319
- "migrate_progress": "Migrating {completed}/{total} notes...",
2320
- "migrate_done": "Migration complete!",
2321
- "migrate_failed": "Migration failed. Your original data is unchanged.",
2322
- "kms_provider_label": "KMS Provider",
2323
- "kms_key_arn_label": "Key ARN / Key ID",
2324
- "kms_role_arn_label": "Role ARN (for AssumeRole)",
2325
- "kms_verify": "Verify KMS Connection",
2326
- "kms_verified": "KMS connection verified",
2327
- "kms_verify_failed": "KMS connection failed",
2328
- "back": "Back",
2329
- "next": "Next",
2330
- "save": "Save",
2331
- "cancel": "Cancel",
2332
- "setup_complete": "E2E encryption enabled",
2333
- "deriving_key": "Deriving encryption key...",
2334
- "encrypting": "Encrypting notes...",
2321
+ "title": "Segurança",
2322
+ "encryption_mode_label": "Modo de criptografia",
2323
+ "mode_none": "Nenhum",
2324
+ "mode_e2e": "Criptografia de cliente E2E",
2325
+ "mode_kms": "Nuvem KMS",
2326
+ "setup_title": "Configurar criptografia E2E",
2327
+ "setup_subtitle": "Suas notas serão criptografadas antes de sair do dispositivo. Moraya não consegue ler suas anotações.",
2328
+ "passphrase_label": "Senha",
2329
+ "passphrase_confirm_label": "Confirmar senha",
2330
+ "passphrase_strength_weak": "Muito fraco",
2331
+ "passphrase_strength_fair": "Justo",
2332
+ "passphrase_strength_strong": "Forte",
2333
+ "passphrase_strength_very_strong": "Muito forte",
2334
+ "passphrase_min_length": "Mínimo 12 caracteres",
2335
+ "passphrase_mismatch": "As senhas não correspondem",
2336
+ "passphrase_too_weak": "A senha é muito fraca. Use uma frase mais longa e complexa.",
2337
+ "warning_no_recovery": "⚠️ Se você esquecer sua senha e perder seu código de recuperação, seus dados não poderão ser recuperados. Moraya não tem backup.",
2338
+ "recovery_code_title": "Seu código de recuperação",
2339
+ "recovery_code_subtitle": "Escreva essas 12 palavras. Você precisará deles se esquecer sua senha.",
2340
+ "recovery_confirm_instruction": "Digite a palavra #{n} para confirmar que você anotou:",
2341
+ "recovery_confirm_correct": "Correto! Digite a palavra #{n}:",
2342
+ "recovery_confirm_wrong": "Palavra errada. Tente novamente.",
2343
+ "recovery_complete": "Código de recuperação confirmado.",
2344
+ "i_have_written_down": "Eu anotei meu código de recuperação",
2345
+ "unlock_title": "Desbloqueie suas notas",
2346
+ "unlock_subtitle": "Digite sua senha para descriptografar suas notas.",
2347
+ "unlock_button": "Desbloquear",
2348
+ "unlock_failed": "Senha errada. Por favor, tente novamente.",
2349
+ "unlock_remember_device": "Lembre-se deste dispositivo por 7 dias",
2350
+ "migrate_title": "Atualizar para o Cloud KMS",
2351
+ "migrate_subtitle": "Suas notas serão criptografadas novamente usando seu KMS na nuvem. Moraya pode usar seu KMS para auxiliar nos recursos de IA.",
2352
+ "migrate_warning": "Esta é uma migração unilateral. Você não pode reverter para o modo E2E sem exportar e reimportar todos os dados.",
2353
+ "migrate_confirm": "Eu entendo e quero prosseguir",
2354
+ "migrate_progress": "Migrando notas {completed}/{total}...",
2355
+ "migrate_done": "Migração concluída!",
2356
+ "migrate_failed": "A migração falhou. Seus dados originais permanecem inalterados.",
2357
+ "kms_provider_label": "Provedor KMS",
2358
+ "kms_key_arn_label": "ARN da chave/ID da chave",
2359
+ "kms_role_arn_label": "Função ARN (para AssumeRole)",
2360
+ "kms_verify": "Verifique a conexão KMS",
2361
+ "kms_verified": "Conexão KMS verificada",
2362
+ "kms_verify_failed": "Falha na conexão KMS",
2363
+ "back": "Voltar",
2364
+ "next": "Próximo",
2365
+ "save": "Salvar",
2366
+ "cancel": "Cancelar",
2367
+ "setup_complete": "Criptografia E2E habilitada",
2368
+ "deriving_key": "Derivando chave de criptografia...",
2369
+ "encrypting": "Criptografando notas...",
2335
2370
  "current_mode": "Current mode: {mode}",
2336
- "last_unlock": "Last unlocked: {time}",
2371
+ "last_unlock": "Último desbloqueio: {time}",
2337
2372
  "use_recovery_code": "Use recovery code instead",
2338
- "recovery_unlock_title": "Recover Access",
2339
- "recovery_unlock_subtitle": "Enter your 12-word recovery code to regain access.",
2340
- "recovery_code_input": "Recovery Code (12 words, space-separated)",
2341
- "recovery_unlock_button": "Recover",
2342
- "set_new_passphrase": "Set New Passphrase"
2373
+ "recovery_unlock_title": "Recuperar acesso",
2374
+ "recovery_unlock_subtitle": "Digite seu código de recuperação de 12 palavras para recuperar o acesso.",
2375
+ "recovery_code_input": "Código de recuperação (12 palavras, separadas por espaço)",
2376
+ "recovery_unlock_button": "Recuperar",
2377
+ "set_new_passphrase": "Definir nova senha",
2378
+ "biometric_unlock_title": "Desbloquear Moraya",
2379
+ "biometric_unlock_subtitle": "Autentique-se para acessar seus dados",
2380
+ "biometric_failed": "Falha na autenticação",
2381
+ "unlock_with_biometric": "Unlock with biometric",
2382
+ "unlock_with_face_id": "Desbloquear com Face ID",
2383
+ "unlock_with_touch_id": "Desbloquear com Touch ID",
2384
+ "unlock_with_fingerprint": "Desbloquear com impressão digital",
2385
+ "unlock_with_iris": "Desbloquear com leitura de íris",
2386
+ "unlock_with_passkey": "Desbloquear com senha",
2387
+ "use_passphrase_fallback": "Em vez disso, use a senha"
2343
2388
  },
2344
2389
  "seo": {
2345
2390
  "title": "Otimização SEO",
@@ -2359,21 +2404,20 @@
2359
2404
  "step_description": "Gerar título, resumo e tags"
2360
2405
  },
2361
2406
  "sessions": {
2362
- "__mt": true,
2363
- "title": "Active Sessions",
2364
- "active_sessions": "Active Sessions",
2365
- "anomaly_alerts": "Security Alerts",
2366
- "current": "Current",
2367
- "last_active": "Last active",
2368
- "revoke": "Revoke",
2369
- "revoking": "Revoking…",
2370
- "confirm_revoke": "Revoke this session?",
2371
- "yes": "Yes",
2407
+ "title": "Sessões ativas",
2408
+ "active_sessions": "Sessões ativas",
2409
+ "anomaly_alerts": "Alertas de segurança",
2410
+ "current": "Atual",
2411
+ "last_active": "Último ativo",
2412
+ "revoke": "Revogar",
2413
+ "revoking": "Revogando…",
2414
+ "confirm_revoke": "Revogar esta sessão?",
2415
+ "yes": "Sim",
2372
2416
  "no": "Cancel",
2373
- "dismiss": "Dismiss",
2374
- "just_now": "Just now",
2375
- "hours_ago": "h ago",
2376
- "days_ago": "d ago"
2417
+ "dismiss": "Liberar",
2418
+ "just_now": "Agora mesmo",
2419
+ "hours_ago": "h atrás",
2420
+ "days_ago": "d atrás"
2377
2421
  },
2378
2422
  "settings": {
2379
2423
  "title": "Settings",
@@ -3011,25 +3055,24 @@
3011
3055
  "local_workspace": "Local"
3012
3056
  },
3013
3057
  "sso": {
3014
- "__mt": true,
3015
- "title": "Single Sign-On",
3016
- "description": "Configure SSO to let team members authenticate via your identity provider.",
3017
- "enable_sso": "Enable SSO",
3018
- "require_sso": "Require SSO for all members",
3019
- "oidc": "OIDC / OAuth 2.0",
3020
- "saml": "SAML 2.0",
3021
- "provider": "Identity Provider",
3022
- "custom_provider": "Custom",
3023
- "issuer": "Issuer URL",
3024
- "client_id": "Client ID",
3025
- "client_secret": "Client Secret",
3026
- "scopes": "Scopes",
3027
- "idp_metadata_url": "IdP Metadata URL",
3028
- "sp_entity_id": "SP Entity ID",
3029
- "sp_acs_url": "ACS URL",
3030
- "signing_cert": "Signing Certificate",
3031
- "save": "Save SSO Configuration",
3032
- "saved_success": "SSO configuration saved."
3058
+ "title": "Logon único",
3059
+ "description": "Configure o SSO para permitir que os membros da equipe se autentiquem por meio do seu provedor de identidade.",
3060
+ "enable_sso": "Habilitar SSO",
3061
+ "require_sso": "Exigir SSO para todos os membros",
3062
+ "oidc": "OIDC/OAuth 2.0",
3063
+ "saml": "SAML2.0",
3064
+ "provider": "Provedor de identidade",
3065
+ "custom_provider": "Personalizado",
3066
+ "issuer": "URL do emissor",
3067
+ "client_id": "ID do cliente",
3068
+ "client_secret": "Segredo do cliente",
3069
+ "scopes": "Escopos",
3070
+ "idp_metadata_url": "URL de metadados do IdP",
3071
+ "sp_entity_id": "ID da entidade SP",
3072
+ "sp_acs_url": "URL do ACS",
3073
+ "signing_cert": "Certificado de Assinatura",
3074
+ "save": "Salvar configuração de SSO",
3075
+ "saved_success": "Configuração de SSO salva."
3033
3076
  },
3034
3077
  "stale_dmg": {
3035
3078
  "title": "Limpar imagens de disco antigas",
@@ -3049,53 +3092,52 @@
3049
3092
  "ai_tooltip": "IA"
3050
3093
  },
3051
3094
  "storage": {
3052
- "__mt": true,
3053
- "title": "Storage",
3054
- "connected_providers": "Connected Providers",
3055
- "connect_provider": "Connect Provider",
3056
- "primary": "Primary",
3057
- "set_primary": "Set as Primary",
3058
- "remove": "Remove",
3059
- "edit": "Edit",
3060
- "verify": "Verify Connection",
3061
- "verifying": "Verifying...",
3062
- "verify_success": "Connection verified",
3063
- "verify_failed": "Verification failed",
3064
- "no_providers": "No storage providers connected.",
3065
- "connect_prompt": "Connect your own cloud storage to keep full control of your data.",
3066
- "picora_default": "Picora is your storage provider (Connect plan)",
3067
- "upgrade_for_byoc": "Upgrade to Personal to connect your own storage.",
3068
- "step_choose": "Choose Provider",
3069
- "step_setup": "Setup Script",
3070
- "step_credentials": "Enter Credentials",
3071
- "step_verify": "Verify",
3072
- "step_name": "Name & Save",
3073
- "provider_label": "Provider",
3074
- "bucket_label": "Bucket Name",
3075
- "region_label": "Region",
3076
- "access_key_label": "Access Key ID",
3077
- "secret_key_label": "Secret Access Key",
3078
- "role_arn_label": "Role ARN (for STS)",
3079
- "account_id_label": "Account ID",
3080
- "key_id_label": "Key ID",
3081
- "application_key_label": "Application Key",
3082
- "binding_label": "Display Name",
3083
- "copy_script": "Copy Script",
3084
- "copy_policy": "Copy Policy JSON",
3085
- "copied": "Copied!",
3086
- "back": "Back",
3087
- "next": "Next",
3088
- "save": "Save",
3089
- "health_ok": "Healthy",
3090
- "health_degraded": "Degraded",
3091
- "health_failed": "Failed",
3095
+ "title": "Armazenar",
3096
+ "connected_providers": "Provedores Conectados",
3097
+ "connect_provider": "Conectar provedor",
3098
+ "primary": "Primário",
3099
+ "set_primary": "Definir como principal",
3100
+ "remove": "Remover",
3101
+ "edit": "Editar",
3102
+ "verify": "Verifique a conexão",
3103
+ "verifying": "Verificando...",
3104
+ "verify_success": "Conexão verificada",
3105
+ "verify_failed": "Falha na verificação",
3106
+ "no_providers": "Nenhum provedor de armazenamento conectado.",
3107
+ "connect_prompt": "Conecte seu próprio armazenamento em nuvem para manter controle total de seus dados.",
3108
+ "picora_default": "Picora é seu provedor de armazenamento (plano Connect)",
3109
+ "upgrade_for_byoc": "Atualize para Pessoal para conectar seu próprio armazenamento.",
3110
+ "step_choose": "Escolha o provedor",
3111
+ "step_setup": "Script de configuração",
3112
+ "step_credentials": "Insira as credenciais",
3113
+ "step_verify": "Verificar",
3114
+ "step_name": "Nomear e salvar",
3115
+ "provider_label": "Provedor",
3116
+ "bucket_label": "Nome do intervalo",
3117
+ "region_label": "Região",
3118
+ "access_key_label": "ID da chave de acesso",
3119
+ "secret_key_label": "Chave de acesso secreta",
3120
+ "role_arn_label": "Função ARN (para STS)",
3121
+ "account_id_label": "ID da conta",
3122
+ "key_id_label": "ID da chave",
3123
+ "application_key_label": "Chave do aplicativo",
3124
+ "binding_label": "Nome de exibição",
3125
+ "copy_script": "Copiar roteiro",
3126
+ "copy_policy": "Copiar política JSON",
3127
+ "copied": "Copiado!",
3128
+ "back": "Voltar",
3129
+ "next": "Próximo",
3130
+ "save": "Salvar",
3131
+ "health_ok": "Saudável",
3132
+ "health_degraded": "Degradado",
3133
+ "health_failed": "Fracassado",
3092
3134
  "health_unknown": "Unknown",
3093
- "access_denied": "Access denied.",
3094
- "bucket_not_found": "Bucket not found.",
3095
- "bucket_exists": "Bucket already exists.",
3096
- "clock_skew": "System clock is out of sync. Please check your date/time settings.",
3135
+ "access_denied": "Acesso negado.",
3136
+ "bucket_not_found": "Balde não encontrado.",
3137
+ "bucket_exists": "O balde já existe.",
3138
+ "clock_skew": "O relógio do sistema está fora de sincronia. Verifique suas configurações de data/hora.",
3097
3139
  "b2_no_sts_warning": "Backblaze B2 does not support STS. Credentials are stored in session only. Enable E2E encryption (v0.43) for better security.",
3098
- "r2_token_info": "Create an API Token in Cloudflare Dashboard with R2 Read/Write permissions for this bucket."
3140
+ "r2_token_info": "Crie um token de API no Cloudflare Dashboard com permissões de leitura/gravação R2 para este bucket."
3099
3141
  },
3100
3142
  "table": {
3101
3143
  "insert_row_above": "Inserir linha acima",
@@ -3139,36 +3181,35 @@
3139
3181
  "dirty_dot": "Unsaved changes"
3140
3182
  },
3141
3183
  "team": {
3142
- "__mt": true,
3143
- "title": "Team Knowledge Bases",
3144
- "create": "New Team KB",
3145
- "no_kbs": "You don't have any team knowledge bases yet.",
3146
- "create_first": "Create your first team KB",
3147
- "members": "members",
3148
- "open": "Open",
3149
- "settings": "Settings",
3150
- "encryption_kms": "Cloud KMS (AI Review enabled)",
3151
- "encryption_e2e": "E2E Encryption (AI Review disabled)",
3152
- "wizard_title": "Create Team Knowledge Base",
3153
- "step_info": "Name",
3154
- "step_provider": "Storage",
3155
- "step_members": "Members",
3156
- "step_encryption": "Encryption",
3157
- "step_confirm": "Confirm",
3158
- "kb_name_label": "Team KB Name",
3159
- "kb_name_placeholder": "e.g. Engineering Docs",
3160
- "provider_label": "Provider",
3161
- "bucket_label": "Bucket",
3162
- "prefix_label": "Prefix (optional)",
3163
- "invite_emails_label": "Email addresses (comma-separated)",
3164
- "invite_role_label": "Role",
3165
- "mode_kms_name": "Cloud KMS",
3166
- "mode_kms_desc": "AI Review and server-side features enabled.",
3167
- "mode_e2e_name": "End-to-End",
3168
- "mode_e2e_desc": "Maximum privacy. AI Review not available.",
3169
- "confirm_summary": "Confirm & Create",
3170
- "creating": "Creating…",
3171
- "create_kb": "Create Team KB"
3184
+ "title": "Bases de conhecimento da equipe",
3185
+ "create": "Nova base de conhecimento da equipe",
3186
+ "no_kbs": "Você ainda não tem nenhuma base de conhecimento da equipe.",
3187
+ "create_first": "Crie sua primeira KB de equipe",
3188
+ "members": "membros",
3189
+ "open": "Abrir",
3190
+ "settings": "Configurações",
3191
+ "encryption_kms": "Cloud KMS (revisão de IA ativada)",
3192
+ "encryption_e2e": "Criptografia E2E (revisão de IA desativada)",
3193
+ "wizard_title": "Criar base de conhecimento da equipe",
3194
+ "step_info": "Nome",
3195
+ "step_provider": "Armazenar",
3196
+ "step_members": "Membros",
3197
+ "step_encryption": "Criptografia",
3198
+ "step_confirm": "Confirmar",
3199
+ "kb_name_label": "Nome da base de conhecimento da equipe",
3200
+ "kb_name_placeholder": "por exemplo Documentos de engenharia",
3201
+ "provider_label": "Provedor",
3202
+ "bucket_label": "Balde",
3203
+ "prefix_label": "Prefixo (opcional)",
3204
+ "invite_emails_label": "Endereços de e-mail (separados por vírgula)",
3205
+ "invite_role_label": "Papel",
3206
+ "mode_kms_name": "Nuvem KMS",
3207
+ "mode_kms_desc": "Revisão de IA e recursos do lado do servidor ativados.",
3208
+ "mode_e2e_name": "De ponta a ponta",
3209
+ "mode_e2e_desc": "Máxima privacidade. Revisão de IA não disponível.",
3210
+ "confirm_summary": "Confirmar e criar",
3211
+ "creating": "Criando…",
3212
+ "create_kb": "Criar equipe KB"
3172
3213
  },
3173
3214
  "templates": {
3174
3215
  "gallery": {
@@ -3591,29 +3632,28 @@
3591
3632
  }
3592
3633
  },
3593
3634
  "theme": {
3594
- "__mt": true,
3595
- "title": "Appearance",
3596
- "mode_title": "Color Mode",
3597
- "mode_light": "Light",
3598
- "mode_dark": "Dark",
3599
- "mode_system": "System",
3600
- "custom_title": "Custom Themes",
3601
- "custom_new": "New Theme",
3602
- "custom_export": "Export",
3603
- "custom_import": "Import",
3604
- "custom_delete": "Delete",
3605
- "custom_activate": "Activate",
3606
- "custom_deactivate": "Deactivate",
3607
- "custom_edit": "Edit",
3608
- "editor_title": "Theme Editor",
3609
- "name_label": "Theme Name",
3610
- "no_custom": "No custom themes yet. Create one below.",
3611
- "groups_base": "Base Colors",
3635
+ "title": "Aparência",
3636
+ "mode_title": "Modo de cor",
3637
+ "mode_light": "Luz",
3638
+ "mode_dark": "Escuro",
3639
+ "mode_system": "Sistema",
3640
+ "custom_title": "Temas personalizados",
3641
+ "custom_new": "Novo tema",
3642
+ "custom_export": "Exportar",
3643
+ "custom_import": "Importar",
3644
+ "custom_delete": "Excluir",
3645
+ "custom_activate": "Ativar",
3646
+ "custom_deactivate": "Desativar",
3647
+ "custom_edit": "Editar",
3648
+ "editor_title": "Editor de Tema",
3649
+ "name_label": "Nome do tema",
3650
+ "no_custom": "Ainda não há temas personalizados. Crie um abaixo.",
3651
+ "groups_base": "Cores básicas",
3612
3652
  "groups_editor": "Editor",
3613
- "groups_ui": "UI Components",
3614
- "groups_code": "Code Block",
3615
- "saved": "Save",
3616
- "import_error": "Invalid theme file. Please use a valid Moraya theme JSON."
3653
+ "groups_ui": "Componentes da IU",
3654
+ "groups_code": "Bloco de código",
3655
+ "saved": "Salvar",
3656
+ "import_error": "Arquivo de tema inválido. Use um JSON de tema Moraya válido."
3617
3657
  },
3618
3658
  "titlebar": {
3619
3659
  "unsaved": "Não salvo",
@@ -3642,7 +3682,34 @@
3642
3682
  "summarize_prompt": "Por favor, gere um resumo de reunião a partir da transcrição a seguir. Identifique os principais pontos de discussão, decisões tomadas e itens de ação. Formate como Markdown.",
3643
3683
  "no_speech_config": "Nenhum provedor de fala configurado. Adicione um em Configurações → Voz.",
3644
3684
  "no_speech_config_hint": "Vá para Configurações → Voz para adicionar um provedor de fala (ex.: Deepgram).",
3645
- "go_to_voice_settings": "Abrir configurações de voz"
3685
+ "go_to_voice_settings": "Abrir configurações de voz",
3686
+ "mute_mic": "Silenciar microfone",
3687
+ "unmute_mic": "Ativar microfone",
3688
+ "source_label": "Fonte",
3689
+ "source_mic": "Microfone",
3690
+ "source_system": "Sistema",
3691
+ "source_mixed": "Misturado",
3692
+ "mode_label": "Modo",
3693
+ "mode_transcription": "Transcrição",
3694
+ "mode_interview": "Entrevista",
3695
+ "summarize_interview": "Resumir entrevista",
3696
+ "to_document_append": "Anexar ao documento atual",
3697
+ "interview_summarize_prompt": "Por favor, resuma a seguinte transcrição da entrevista. Extraia perguntas importantes, pontos de resposta concisos e sugestões de otimização. Formatar como Markdown.",
3698
+ "interview_no_aiconfig": "Nenhum modelo de IA de chat configurado. Adicione um em Configurações → AI.",
3699
+ "interview_empty_answer": "AI retornou uma resposta vazia.",
3700
+ "interview_answer_pending": "Analisando o contexto mais recente...",
3701
+ "interview_answer_failed": "Falha ao gerar a resposta da entrevista.",
3702
+ "interview_system_share_hint": "Interview mode follows the current audio source setting; screen sharing is requested only when System source is selected.",
3703
+ "interview_native_system_hint": "O modo Entrevista segue a configuração atual da fonte de áudio. No macOS, o sistema e a fonte mista usam a captura nativa de áudio do sistema em vez da caixa de diálogo de compartilhamento de tela.",
3704
+ "system_source_restart_hint": "A gravação foi interrompida após mudar para fonte Sistema/Misto. Clique em Iniciar novamente para autorizar novamente e continuar.",
3705
+ "system_source_click_start_hint": "A permissão de origem do sistema deve ser acionada no botão Iniciar. Clique em Iniciar novamente.",
3706
+ "system_source_permission_denied": "A permissão de origem do sistema foi negada. Permita o compartilhamento de tela e de áudio e tente novamente.",
3707
+ "system_source_no_audio_track_hint": "Nenhuma trilha de áudio do sistema foi capturada. Na caixa de diálogo de compartilhamento, habilite o compartilhamento de áudio e prefira Tela Inteira; se sua plataforma não tiver opção de compartilhamento de áudio, use microfone ou fonte mista.",
3708
+ "system_source_unsupported_hint": "Este ambiente não expõe uma trilha de áudio do sistema na caixa de diálogo de compartilhamento. A fonte voltou automaticamente para o microfone. Para um verdadeiro áudio do sistema, use um caminho de captura de loopback nativo.",
3709
+ "system_source_native_hint": "A captura de áudio do sistema nativo do macOS está ativa. Nenhuma caixa de diálogo de compartilhamento de tela é necessária para a origem do sistema.",
3710
+ "system_source_native_mixed_hint": "A captura de áudio do sistema nativo do macOS está ativa. A fonte mista combina o áudio nativo do sistema com entrada de microfone no aplicativo.",
3711
+ "system_source_native_permission_denied": "macOS negou captura de áudio do sistema nativo. Permita o aplicativo em Configurações do sistema → Privacidade e segurança e tente novamente.",
3712
+ "system_source_runtime_incompatible": "Este tempo de execução do macOS não é totalmente compatível com a captura nativa de áudio do sistema. Atualize o macOS ou mude para a fonte do microfone."
3646
3713
  },
3647
3714
  "update": {
3648
3715
  "title": "Informações da versão",
@@ -3662,34 +3729,37 @@
3662
3729
  "new_version_available": "Nova versão disponível! Clique para atualizar."
3663
3730
  },
3664
3731
  "voice": {
3665
- "__mt": true,
3666
- "title": "Voice Capture",
3667
- "provider": "Provider",
3668
- "language": "Language",
3669
- "doubao": "Doubao (Realtime)",
3732
+ "title": "Captura de voz",
3733
+ "provider": "Provedor",
3734
+ "language": "Linguagem",
3735
+ "doubao": "Doubao (tempo real)",
3670
3736
  "start": "Record",
3671
- "stop": "Stop",
3672
- "processing": "Processing...",
3673
- "transcript": "Transcript",
3674
- "words": "words",
3675
- "structurize": "AI Structurize",
3676
- "view_history": "View History",
3677
- "untitled": "Untitled",
3678
- "key_points": "Key Points",
3679
- "action_items": "Action Items",
3680
- "save_note": "Save Note",
3681
- "discard": "Discard",
3682
- "quota_exceeded": "Monthly voice quota exceeded. Upgrade or wait until next month.",
3683
- "quota_near": "You are near your monthly voice limit.",
3737
+ "stop": "Parar",
3738
+ "processing": "Processamento...",
3739
+ "transcript": "Transcrição",
3740
+ "words": "palavras",
3741
+ "structurize": "Estruturação de IA",
3742
+ "view_history": "Ver histórico",
3743
+ "untitled": "Sem título",
3744
+ "key_points": "Pontos-chave",
3745
+ "action_items": "Itens de ação",
3746
+ "save_note": "Salvar nota",
3747
+ "discard": "Descartar",
3748
+ "quota_exceeded": "Cota mensal de voz excedida. Atualize ou espere até o próximo mês.",
3749
+ "quota_near": "Você está próximo do seu limite mensal de voz.",
3684
3750
  "history": {
3685
- "title": "Voice History",
3686
- "new_capture": "+ New Recording",
3687
- "search_placeholder": "Search transcripts...",
3688
- "no_results": "No transcripts match your search.",
3689
- "empty": "No recordings yet. Start capturing your voice!",
3690
- "reprocess": "Re-process",
3691
- "delete": "Delete"
3692
- }
3751
+ "title": "Histórico de voz",
3752
+ "new_capture": "+ Nova Gravação",
3753
+ "search_placeholder": "Pesquisar transcrições...",
3754
+ "no_results": "Nenhuma transcrição corresponde à sua pesquisa.",
3755
+ "empty": "Ainda não há gravações. Comece a capturar sua voz!",
3756
+ "reprocess": "Reprocessar",
3757
+ "delete": "Excluir"
3758
+ },
3759
+ "hold_to_record": "Segure para gravar",
3760
+ "release_to_send": "Liberar para enviar",
3761
+ "cancel": "Deslize para cancelar",
3762
+ "permission_denied": "Permissão de microfone negada"
3693
3763
  },
3694
3764
  "welcome": {
3695
3765
  "title": "Bem-vindo ao Moraya",