@moraya/core 0.2.0 → 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 (54) 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 +806 -732
  42. package/dist/i18n/locales/de.json +912 -838
  43. package/dist/i18n/locales/en.json +34 -5
  44. package/dist/i18n/locales/es.json +952 -876
  45. package/dist/i18n/locales/fr.json +1784 -1708
  46. package/dist/i18n/locales/hi.json +1808 -1734
  47. package/dist/i18n/locales/ja.json +839 -765
  48. package/dist/i18n/locales/ko.json +1783 -1709
  49. package/dist/i18n/locales/pt.json +894 -820
  50. package/dist/i18n/locales/ru.json +812 -738
  51. package/dist/i18n/locales/zh-CN.json +34 -5
  52. package/dist/i18n/locales/zh-Hant.json +1039 -965
  53. package/dist/types-CwM77g7u.d.ts +88 -0
  54. package/package.json +26 -2
@@ -1,58 +1,56 @@
1
1
  {
2
2
  "admin": {
3
- "__mt": true,
4
- "title": "Team Admin",
5
- "tab_members": "Members",
6
- "tab_kbs": "Knowledge Bases",
3
+ "title": "Администратор команды",
4
+ "tab_members": "Члены",
5
+ "tab_kbs": "Базы знаний",
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",
13
- "no_members": "No members yet.",
14
- "no_kbs": "No knowledge bases yet.",
15
- "col_name": "Name",
16
- "col_email": "Email",
17
- "col_role": "Role",
18
- "col_joined": "Joined",
19
- "e2e": "E2E",
7
+ "members": "Члены",
8
+ "knowledge_bases": "Базы знаний",
9
+ "invite_member": "Пригласить участника",
10
+ "remove_member": "Удалять",
11
+ "create_kb": "Создать базу знаний",
12
+ "no_members": "Пока нет участников.",
13
+ "no_kbs": "Баз знаний пока нет.",
14
+ "col_name": "Имя",
15
+ "col_email": "Электронная почта",
16
+ "col_role": "Роль",
17
+ "col_joined": "Присоединился",
18
+ "e2e": "Е2Е",
20
19
  "ai": "AI",
21
- "usage_summary": "Usage Summary",
22
- "storage": "Storage",
23
- "notes": "Notes",
20
+ "usage_summary": "Сводка по использованию",
21
+ "storage": "Хранилище",
22
+ "notes": "Примечания",
24
23
  "ai_queries": "AI Queries",
25
- "active_members": "Active Members",
26
- "this_month": "this month"
24
+ "active_members": "Активные участники",
25
+ "this_month": "в этом месяце"
27
26
  },
28
27
  "agent": {
29
- "__mt": true,
30
- "title": "AI Agent",
31
- "subtitle": "Let AI handle multi-step tasks across your knowledge base",
32
- "query_placeholder": "Describe a task for the agent to complete...",
33
- "run": "Run",
34
- "pause": "Pause",
35
- "resume": "Resume",
28
+ "title": "ИИ-агент",
29
+ "subtitle": "Позвольте ИИ решать многоэтапные задачи в вашей базе знаний",
30
+ "query_placeholder": "Опишите задачу, которую должен выполнить агент...",
31
+ "run": "Бегать",
32
+ "pause": "Пауза",
33
+ "resume": "Резюме",
36
34
  "cancel": "Cancel",
37
- "new_task": "New Task",
38
- "final_answer": "Final Answer",
35
+ "new_task": "Новая задача",
36
+ "final_answer": "Окончательный ответ",
39
37
  "upgrade_required": "AI Agent is available on Personal and above plans.",
40
38
  "mode": {
41
- "react": "ReAct (Adaptive)",
42
- "plan_execute": "Plan & Execute"
39
+ "react": "Реакт (адаптивный)",
40
+ "plan_execute": "Планировать и выполнять"
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": "История агента",
44
+ "search_placeholder": "Поиск задач...",
45
+ "no_results": "Нет задач, соответствующих вашему запросу.",
46
+ "empty": "Заданий агента пока нет. Начните свое первое задание!",
47
+ "steps": "шаги"
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": "Шаблоны агентов",
51
+ "subtitle": "Просмотрите готовые к использованию шаблоны агентов",
52
+ "search_placeholder": "Поиск шаблонов...",
53
+ "no_results": "Нет шаблонов, соответствующих вашему запросу.",
56
54
  "all_tags": "All",
57
55
  "use": "Use Template"
58
56
  }
@@ -101,7 +99,8 @@
101
99
  "testing": "Проверка...",
102
100
  "connected": "Подключено!",
103
101
  "failed": "Ошибка",
104
- "test_failed": "Ошибка проверки соединения"
102
+ "test_failed": "Ошибка проверки соединения",
103
+ "endpoint_id_placeholder": "Введите идентификатор конечной точки вывода"
105
104
  },
106
105
  "providers": {
107
106
  "claude": "Anthropic Claude",
@@ -191,51 +190,99 @@
191
190
  },
192
191
  "sections": {
193
192
  "image_ai": "ИИ изображений",
194
- "image_aihint": "Конфигурации модели генерации изображений с ИИ."
193
+ "image_aihint": "Конфигурации модели генерации изображений с ИИ.",
194
+ "session_ai": "Session AI",
195
+ "session_aihint": "Конфигурации модели текстового чата.",
196
+ "realtime_voice_ai": "Комплексный голосовой ИИ",
197
+ "realtime_voice_aihint": "Realtime voice conversation configurations (multiple providers)."
195
198
  },
196
199
  "generating": "Генерация…",
197
- "not_configured": "Поставщик AI не настроен"
200
+ "not_configured": "Поставщик AI не настроен",
201
+ "model_short": {
202
+ "none": "Ни одна модель не настроена",
203
+ "chat": "Chat",
204
+ "realtime": "РТ Голос",
205
+ "image": "Изображение",
206
+ "speech": "Голос"
207
+ },
208
+ "voice": {
209
+ "record": "Запись голоса",
210
+ "cancel": "Отменить голосовой ввод",
211
+ "commit": "Использовать расшифровку"
212
+ },
213
+ "realtime": {
214
+ "chat_model_group": "Модели чата",
215
+ "realtime_model_group": "Сквозные модели",
216
+ "image_model_group": "Генерация изображений",
217
+ "speech_model_group": "Голосовая транскрипция",
218
+ "add_model": "+ Добавить модель голоса",
219
+ "no_models": "No end-to-end voice models configured",
220
+ "no_models_hint": "Добавьте модель голоса в реальном времени, чтобы включить голосовой чат с помощью кнопок волны.",
221
+ "missing_config": "Нет доступной сквозной голосовой модели. Настройте его в «Настройки» -> «Чат».",
222
+ "start_voice": "Начать голосовой разговор",
223
+ "stop_voice": "Остановить голосовой разговор",
224
+ "live": "Жить",
225
+ "providers": {
226
+ "gemini-live": "Близнецы в прямом эфире",
227
+ "openai-realtime": "OpenAI в реальном времени",
228
+ "doubao-realtime": "Дубао в реальном времени",
229
+ "qwen-realtime": "Квен в реальном времени",
230
+ "stepfun-realtime": "StepFun в реальном времени",
231
+ "tongyi-bailing": "Тонги Бэйлинг",
232
+ "amazon-nova-sonic": "Амазон Нова Соник"
233
+ },
234
+ "config": {
235
+ "access_key_id": "Идентификатор ключа доступа",
236
+ "secret_access_key": "Секретный ключ доступа",
237
+ "session_token": "Токен сеанса",
238
+ "doubao_app_id": "Идентификатор приложения (X-Api-App-ID)",
239
+ "doubao_access_key": "Токен доступа (X-Api-Access-Key)",
240
+ "doubao_secret_key": "Ключ приложения (X-Api-App-Key)",
241
+ "voice": "Голос",
242
+ "region": "Область",
243
+ "optional": "Необязательный",
244
+ "secret_placeholder": "Введите секретный ключ",
245
+ "missing_credential": "Please provide API key or required credentials first."
246
+ }
247
+ }
198
248
  },
199
249
  "ai_budget": {
200
- "__mt": true,
201
- "title": "AI Budget",
202
- "description": "Set monthly and per-call spending limits for AI requests routed through Moraya.",
203
- "monthly_spend": "Monthly Spend",
204
- "monthly_limit": "Monthly Limit",
205
- "per_call_limit": "Per-Call Limit",
206
- "hard_stop": "Hard Stop",
207
- "hard_stop_hint": "Block all AI calls once the monthly limit is reached.",
250
+ "title": "Бюджет ИИ",
251
+ "description": "Установите ежемесячные лимиты расходов и лимиты на звонки для запросов ИИ, направляемых через Морайю.",
252
+ "monthly_spend": "Ежемесячные расходы",
253
+ "monthly_limit": "Ежемесячный лимит",
254
+ "per_call_limit": "Лимит на вызов",
255
+ "hard_stop": "Жесткая остановка",
256
+ "hard_stop_hint": "Блокируйте все вызовы AI после достижения месячного лимита.",
208
257
  "zero_unlimited": "0 = unlimited",
209
258
  "limit_reached": "Monthly budget limit reached. AI calls are blocked.",
210
- "near_limit": "You have used {pct}% of your monthly budget.",
211
- "saved": "Settings saved.",
212
- "save": "Save",
213
- "reset": "Reset Month",
214
- "how_it_works": "How It Works",
259
+ "near_limit": "Вы израсходовали {pct}% своего месячного бюджета.",
260
+ "saved": "Настройки сохранены.",
261
+ "save": "Сохранять",
262
+ "reset": "Сбросить месяц",
263
+ "how_it_works": "Как это работает",
215
264
  "info1": "The router tracks estimated and actual costs per API call.",
216
- "info2": "Hard stop blocks new calls; soft limit shows warnings only.",
217
- "info3": "Monthly counters reset on the 1st of each month automatically."
265
+ "info2": "Жесткая остановка блокирует новые вызовы; мягкий предел отображает только предупреждения.",
266
+ "info3": "Месячные счетчики сбрасываются 1-го числа каждого месяца автоматически."
218
267
  },
219
268
  "ai_history": {
220
- "__mt": true,
221
- "title": "AI Call History",
222
- "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",
228
- "no_records": "No call records yet.",
229
- "failed": "Failed",
230
- "provider": "Provider",
231
- "calls": "Calls",
232
- "cost": "Cost",
233
- "share": "Share"
269
+ "title": "История вызовов ИИ",
270
+ "total_calls": "Всего звонков",
271
+ "month_cost": "В этом месяце",
272
+ "success_rate": "Уровень успеха",
273
+ "tab_list": "Звонки",
274
+ "tab_provider": "По поставщику",
275
+ "tab_daily": "Днем",
276
+ "no_records": "Записей звонков пока нет.",
277
+ "failed": "Неуспешный",
278
+ "provider": "Поставщик",
279
+ "calls": "Звонки",
280
+ "cost": "Расходы",
281
+ "share": "Делиться"
234
282
  },
235
283
  "app": {
236
- "__mt": true,
237
- "name": "Moraya Web",
238
- "tagline": "Your AI, your data, your cloud."
284
+ "name": "Морайя Веб",
285
+ "tagline": "Ваш ИИ, ваши данные, ваше облако."
239
286
  },
240
287
  "audit": {
241
288
  "report_title": "Document Audit Report: {filename}",
@@ -279,22 +326,20 @@
279
326
  "loading": "Loading audit log…"
280
327
  },
281
328
  "auth": {
282
- "__mt": true,
283
- "login": "Sign in with Picora",
284
- "logout": "Sign out",
329
+ "login": "Войти с помощью Picora",
330
+ "logout": "выход",
285
331
  "logging_in": "Signing in...",
286
- "login_title": "Welcome to Moraya Web",
287
- "login_subtitle": "Sign in with your Picora account to access your knowledge base.",
288
- "continue_offline": "Continue offline (no sync)",
289
- "connect_picora": "Connect Picora to sync",
290
- "connected_to_picora": "Connected to Picora",
291
- "disconnect": "Disconnect",
292
- "local_only_notice": "You are working locally. Notes are stored on this device only."
332
+ "login_title": "Добро пожаловать в сеть Морайя",
333
+ "login_subtitle": "Войдите в свою учетную запись Picora, чтобы получить доступ к базе знаний.",
334
+ "continue_offline": "Продолжить в автономном режиме (без синхронизации)",
335
+ "connect_picora": "Подключите Пикору для синхронизации",
336
+ "connected_to_picora": "Подключено к Пикоре",
337
+ "disconnect": "Отключить",
338
+ "local_only_notice": "Вы работаете локально. Заметки хранятся только на этом устройстве."
293
339
  },
294
340
  "billing": {
295
- "__mt": true,
296
- "title": "Billing",
297
- "current_plan": "Current Plan",
341
+ "title": "Биллинг",
342
+ "current_plan": "Текущий план",
298
343
  "upgrade_title": "Upgrade Your Plan",
299
344
  "upgrade_subtitle": "Get more AI calls, unlimited storage, and premium features.",
300
345
  "downgrade_title": "Downgrade Plan",
@@ -304,15 +349,15 @@
304
349
  "plan_personal": "Personal",
305
350
  "plan_team": "Team",
306
351
  "plan_enterprise": "Enterprise",
307
- "plan_connect": "Connect (Free)",
308
- "monthly": "Monthly",
309
- "yearly": "Yearly",
310
- "yearly_savings": "Save 2 months",
311
- "per_seat": "/seat",
312
- "pay_with_stripe": "Pay with Card (Stripe)",
313
- "pay_with_alipay": "Pay with Alipay",
314
- "seats_label": "Number of seats",
315
- "seats_hint": "Minimum 1 seat",
352
+ "plan_connect": "Подключиться (бесплатно)",
353
+ "monthly": "Ежемесячно",
354
+ "yearly": "Ежегодно",
355
+ "yearly_savings": "Сэкономьте 2 месяца",
356
+ "per_seat": "/сиденье",
357
+ "pay_with_stripe": "Оплата картой (полоска)",
358
+ "pay_with_alipay": "Оплатить через Alipay",
359
+ "seats_label": "Количество мест",
360
+ "seats_hint": "Минимум 1 место",
316
361
  "effective_immediate": "Effective immediately",
317
362
  "effective_period_end": "At the end of the billing period",
318
363
  "cancel_confirm": "I understand my subscription will end",
@@ -324,30 +369,31 @@
324
369
  "refund_request": "Request Refund",
325
370
  "refund_pending": "Refund request submitted. Our team will review it.",
326
371
  "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",
372
+ "loading": "Загрузка...",
373
+ "error": "Что-то пошло не так. Пожалуйста, попробуйте еще раз.",
374
+ "checkout_redirect": "Перенаправление на оформление заказа...",
375
+ "alipay_scan": "Отсканируйте с помощью приложения Alipay, чтобы завершить оплату.",
331
376
  "devices_title": "Manage Devices",
332
377
  "devices_subtitle": "Devices signed into your account.",
333
- "device_current": "This device",
334
- "device_revoke": "Sign out",
335
- "device_revoke_confirm": "Sign out this device?",
336
- "device_last_active": "Last active",
337
- "devices_limit_reached": "You've reached the device limit for your plan.",
378
+ "device_current": "Это устройство",
379
+ "device_revoke": "выход",
380
+ "device_revoke_confirm": "Выйти из этого устройства?",
381
+ "device_last_active": "Последний активный",
382
+ "devices_limit_reached": "Вы достигли лимита устройств для вашего плана.",
338
383
  "usage_ai_calls": "AI Calls",
339
- "usage_kbs": "Knowledge Bases",
340
- "usage_devices": "Devices",
341
- "usage_of": "{used} of {limit}",
384
+ "usage_kbs": "Базы знаний",
385
+ "usage_devices": "Устройства",
386
+ "usage_of": "{used} из {limit}",
342
387
  "upgrade_prompt_ai": "You've used {used}/{limit} AI calls this month.",
343
388
  "upgrade_prompt_kb": "You've reached your KB limit ({limit}).",
344
389
  "upgrade_now": "Upgrade Now",
345
- "plan_features_personal": "Unlimited KBs, 2000 AI calls/month, BYO API key, E2E encryption, BYOC storage",
390
+ "plan_features_personal": "Неограниченное количество КБ, 2000 вызовов AI в месяц, ключ API BYO, шифрование E2E, хранилище BYOC",
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": "Вставить облачное изображение",
@@ -396,7 +442,6 @@
396
442
  "no_results": "Результаты не найдены"
397
443
  },
398
444
  "commands": {
399
- "__mt": true,
400
445
  "palette_title": "Command Palette",
401
446
  "placeholder": "Search commands...",
402
447
  "no_results": "No commands found",
@@ -433,7 +478,6 @@
433
478
  "new": "Новый"
434
479
  },
435
480
  "compose": {
436
- "__mt": true,
437
481
  "title": "Compose article",
438
482
  "start_over": "Start over",
439
483
  "stepper_label": "Compose stages",
@@ -498,27 +542,26 @@
498
542
  "send": "Send to…",
499
543
  "opening": "Preparing…",
500
544
  "picker_title": "Where to publish?",
501
- "empty": "No publish targets configured yet.",
502
- "configure": "Configure publish targets",
503
- "success": "Published to {target}",
504
- "failed": "{target} failed: {err}"
545
+ "empty": "Цели публикации пока не настроены.",
546
+ "configure": "Настройка целей публикации",
547
+ "success": "Опубликовано в {target}",
548
+ "failed": "{target} не удалось: {err}"
505
549
  },
506
550
  "drafts": {
507
- "title": "Drafts",
508
- "new": "New draft",
509
- "new_sub": "Archive current and start fresh",
510
- "active": "Active",
511
- "untitled": "Untitled draft",
512
- "delete": "Delete draft"
551
+ "title": "Черновики",
552
+ "new": "Новый проект",
553
+ "new_sub": "Архивируйте текущие и начните заново",
554
+ "active": "Активный",
555
+ "untitled": "Безымянный черновик",
556
+ "delete": "Удалить черновик"
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": "Обнаружен конфликт",
561
+ "description": "Эта заметка была отредактирована на другом устройстве.",
562
+ "keep_server": "Сохранить версию сервера",
563
+ "keep_local": "Держи мою версию",
564
+ "merge": "Объединить вручную"
522
565
  },
523
566
  "context_menu": {
524
567
  "cut": "Вырезать",
@@ -569,101 +612,100 @@
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": "Аппаратный модуль безопасности (HSM)",
617
+ "subtitle": "Подключите своего поставщика HSM для выполнения ключевых операций FIPS 140-2 уровня 3+.",
618
+ "upgrade_required": "Для интеграции HSM требуется план Enterprise.",
577
619
  "providers": {
578
620
  "aws": "AWS CloudHSM",
579
- "aliyun": "Aliyun HSM",
580
- "pkcs11": "PKCS#11 (Generic)"
621
+ "aliyun": "Алиюн ХСМ",
622
+ "pkcs11": "PKCS#11 (общий)"
581
623
  },
582
624
  "aws": {
583
625
  "cluster_id": "Cluster ID",
584
- "region": "AWS Region"
626
+ "region": "Регион AWS"
585
627
  },
586
628
  "aliyun": {
587
- "instance_id": "Instance ID",
588
- "region": "Region"
629
+ "instance_id": "Идентификатор экземпляра",
630
+ "region": "Область"
589
631
  },
590
632
  "pkcs11": {
591
- "lib_path": "Library Path (.so / .dll / .dylib)",
592
- "slot": "Slot ID",
633
+ "lib_path": "Путь к библиотеке (.so/.dll/.dylib)",
634
+ "slot": "Идентификатор слота",
593
635
  "supported_mechanisms": "Supported Mechanisms"
594
636
  }
595
637
  },
596
638
  "orgs": {
597
- "title": "Multi-Organization Management",
598
- "subtitle": "Manage seat allocation and cross-org knowledge sharing",
639
+ "title": "Управление несколькими организациями",
640
+ "subtitle": "Управляйте распределением мест и обменом знаниями между организациями.",
599
641
  "upgrade_required": "Multi-org management requires the Enterprise plan.",
600
- "seat_allocation": "Seat Allocation",
601
- "total_seats": "Total Seats",
642
+ "seat_allocation": "Распределение мест",
643
+ "total_seats": "Всего мест",
602
644
  "allocated": "Allocated",
603
- "unallocated": "Unallocated",
604
- "org_list": "Organizations",
605
- "members": "Members",
645
+ "unallocated": "Нераспределенный",
646
+ "org_list": "Организации",
647
+ "members": "Члены",
606
648
  "cross_org_sharing": "Cross-Org Sharing",
607
- "shares_to": "shares KBs to",
649
+ "shares_to": "делится КБ с",
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": "GDPR, HIPAA, SOC2, экспорт соответствия ISO 27001 и архивирование WORM",
656
+ "upgrade_required": "Для архивирования соответствия требуется план Enterprise.",
615
657
  "tabs": {
616
- "retention": "Retention",
617
- "worm": "WORM",
618
- "export": "Export"
658
+ "retention": "Удержание",
659
+ "worm": "ЧЕРВЬ",
660
+ "export": "Экспорт"
619
661
  },
620
662
  "retention": {
621
- "title": "7-Year Retention",
663
+ "title": "7-летнее хранение",
622
664
  "hint": "Records are retained for 7 years and cannot be deleted during this period.",
623
- "days_left": "days left",
624
- "years": "years"
665
+ "days_left": "осталось дней",
666
+ "years": "годы"
625
667
  },
626
668
  "worm": {
627
669
  "title": "WORM Records",
628
670
  "description": "Write-Once-Read-Many records are immutable once created.",
629
671
  "immutable_label": "Immutable",
630
- "immutable_desc": "Records cannot be modified or deleted after creation.",
631
- "retention_years": "Retention Period"
672
+ "immutable_desc": "Записи не могут быть изменены или удалены после создания.",
673
+ "retention_years": "Срок хранения"
632
674
  },
633
675
  "export": {
634
- "title": "Compliance Export",
635
- "standard": "Standard",
676
+ "title": "Соответствие экспорту",
677
+ "standard": "Стандартный",
636
678
  "format": "Format",
637
- "generate": "Generate Export",
638
- "applicable_events": "Applicable audit events"
679
+ "generate": "Создать экспорт",
680
+ "applicable_events": "Применимые события аудита"
639
681
  }
640
682
  },
641
683
  "custom_domain": {
642
- "title": "Custom Domain",
643
- "subtitle": "Use your own domain name for the Moraya workspace.",
684
+ "title": "Пользовательский домен",
685
+ "subtitle": "Используйте собственное доменное имя для рабочей области Moraya.",
644
686
  "upgrade_required": "Custom domain requires the Enterprise plan.",
645
687
  "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."
688
+ "cname_target": "Цель CNAME",
689
+ "dns_record": "DNS-запись для добавления",
690
+ "dns_hint": "Добавьте эту запись CNAME к своему провайдеру DNS и дождитесь распространения (до 48 часов).",
691
+ "save": "Сохранить и проверить",
692
+ "verifying_hint": "Выполняется проверка. Распространение DNS может занять до 48 часов."
651
693
  },
652
694
  "custom_ai": {
653
- "title": "Custom AI Endpoint",
695
+ "title": "Пользовательская конечная точка ИИ",
654
696
  "subtitle": "Connect your own OpenAI-compatible LLM endpoint.",
655
- "upgrade_required": "Custom AI endpoints require the Enterprise plan.",
656
- "add_provider": "Add Provider",
697
+ "upgrade_required": "Для пользовательских конечных точек AI требуется план Enterprise.",
698
+ "add_provider": "Добавить поставщика",
657
699
  "provider_name": "Provider Name",
658
700
  "base_url": "Base URL",
659
701
  "api_key_ref": "API Key Reference (Keychain ID)",
660
702
  "models_csv": "Models (comma-separated)",
661
703
  "add": "Add Provider",
662
- "saved_providers": "Saved Providers",
663
- "context_window": "Context window",
664
- "models": "models",
704
+ "saved_providers": "Сохраненные поставщики",
705
+ "context_window": "Контекстное окно",
706
+ "models": "модели",
665
707
  "openai_compatible": "OpenAI-compatible",
666
- "custom_format": "Custom format"
708
+ "custom_format": "Пользовательский формат"
667
709
  },
668
710
  "data_residency": {
669
711
  "title": "Data Residency",
@@ -671,16 +713,15 @@
671
713
  "upgrade_required": "Data residency control requires the Enterprise plan.",
672
714
  "primary_region": "Primary Region",
673
715
  "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"
716
+ "restrict_cross_region": "Ограничить передачу данных между регионами",
717
+ "filter_by_compliance": "Фильтровать по стандарту соответствия",
718
+ "all": "Все",
719
+ "requirements": "Юридические требования",
720
+ "save_policy": "Сохранить политику",
721
+ "policy_saved": "Политика сохранена."
680
722
  }
681
723
  },
682
724
  "entitlement": {
683
- "__mt": true,
684
725
  "connect": "Connect",
685
726
  "personal": "Personal",
686
727
  "team": "Team",
@@ -727,7 +768,6 @@
727
768
  }
728
769
  },
729
770
  "explorer": {
730
- "__mt": true,
731
771
  "title": "Files",
732
772
  "filter_placeholder": "Filter notes...",
733
773
  "empty": "No notes yet",
@@ -735,13 +775,13 @@
735
775
  "new_note": "New note",
736
776
  "new_folder": "New folder",
737
777
  "rename": "Rename",
738
- "delete": "Delete",
739
- "favorite": "Add to favorites",
778
+ "delete": "Удалить",
779
+ "favorite": "Добавить в избранное",
740
780
  "unfavorite": "Remove from favorites",
741
- "context_menu": "File options",
742
- "tags": "Tags",
743
- "no_tags": "No tags found",
744
- "untagged": "Untagged"
781
+ "context_menu": "Параметры файла",
782
+ "tags": "Теги",
783
+ "no_tags": "Теги не найдены",
784
+ "untagged": "Без тегов"
745
785
  },
746
786
  "export": {
747
787
  "export_as": "Экспорт в {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",
818
+ "title": "Гибридный поиск",
819
+ "placeholder": "Поиск заметок, воспоминаний, рабочих процессов...",
820
+ "clear": "Прозрачный",
821
+ "filters": "Фильтры",
822
+ "filter_time": "Время",
784
823
  "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",
824
+ "filter_tags": "Теги",
825
+ "time_all": "Все время",
826
+ "time_today": "Сегодня",
827
+ "time_7d": "Последние 7 дней",
828
+ "time_30d": "Последние 30 дней",
829
+ "time_90d": "Последние 90 дней",
830
+ "source_all": "Все источники",
831
+ "source_note": "Примечания",
832
+ "source_memory": "Память",
833
+ "source_workflow": "Рабочие процессы",
834
+ "cross_kb_hint": "Обновление для поиска между КБ",
835
+ "tab_results": "Результаты",
836
+ "tab_history": "История",
837
+ "tab_saved": "Сохранено",
838
+ "save_search": "Сохранить поиск",
839
+ "save_name_prompt": "Назовите этот сохраненный поиск",
801
840
  "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"
841
+ "no_results": "Результаты не найдены",
842
+ "start_typing": "Введите для поиска",
843
+ "history_empty": "Нет истории поиска",
844
+ "saved_empty": "Нет сохраненных поисков",
845
+ "clear_history": "Очистить историю",
846
+ "hint_navigate": "Навигация",
847
+ "hint_open": "Открыть",
848
+ "hint_close": "Закрывать"
810
849
  },
811
850
  "git": {
812
851
  "bind_title": "Привязать репозиторий Git",
@@ -891,16 +930,15 @@
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",
933
+ "copy_url": "Копировать URL",
896
934
  "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...",
935
+ "edit_alt": "Редактировать альтернативный текст",
936
+ "resize": "Изменить размер",
937
+ "delete": "Удалить изображение",
938
+ "alt_label": "Альтернативный текст",
939
+ "alt_placeholder": "Опишите изображение...",
902
940
  "alt_hint": "Improves accessibility and SEO",
903
- "save_alt": "Save"
941
+ "save_alt": "Сохранять"
904
942
  },
905
943
  "image_dialog": {
906
944
  "title": "Вставить изображение",
@@ -1492,65 +1530,63 @@
1492
1530
  }
1493
1531
  },
1494
1532
  "media": {
1495
- "__mt": true,
1496
- "upload_title": "Media Uploads",
1533
+ "upload_title": "Медиа-загрузки",
1497
1534
  "uploading": "Uploading",
1498
- "upload_done": "Uploaded",
1499
- "upload_error": "Upload failed",
1500
- "compressed_from": "Compressed",
1501
- "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"
1535
+ "upload_done": "Загружено",
1536
+ "upload_error": "Загрузка не удалась",
1537
+ "compressed_from": "Сжатый",
1538
+ "compress_auto": "Автоматическое сжатие изображений > 1 МБ",
1539
+ "size_limit_exceeded": "Размер файла превышает ограничение по размеру для вашего плана",
1540
+ "mime_not_allowed": "Тип файла не поддерживается",
1541
+ "quota_warn": "Эта заметка содержит более 10 МБ медиафайла.",
1542
+ "quota_hard": "Превышена медиа-квота (100 МБ на заметку)",
1543
+ "quota_title": "Использование СМИ",
1544
+ "paste_title": "Вставить медиа"
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",
1515
- "half_life_label": "Memory half-life",
1516
- "half_life_never": "Never (no decay)",
1517
- "days": "days",
1547
+ "title": "Долговременная память",
1548
+ "upgrade_required": "Для долговременной памяти требуется план «Личный» или выше.",
1549
+ "health_title": "Здоровье памяти",
1550
+ "settings_title": "Настройки памяти",
1551
+ "half_life_label": "Период полураспада памяти",
1552
+ "half_life_never": "Никогда (без распада)",
1553
+ "days": "дни",
1518
1554
  "export_import": "Export / Import",
1519
- "memories_title": "Memories",
1520
- "search_placeholder": "Search memories...",
1521
- "filter_all": "All types",
1522
- "kind_preference": "Preference",
1523
- "kind_project": "Project",
1524
- "kind_fact": "Fact",
1555
+ "memories_title": "Воспоминания",
1556
+ "search_placeholder": "Поиск воспоминаний...",
1557
+ "filter_all": "Все типы",
1558
+ "kind_preference": "Предпочтение",
1559
+ "kind_project": "Проект",
1560
+ "kind_fact": "Факт",
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",
1562
+ "edit": "Редактировать",
1563
+ "delete": "Удалить",
1564
+ "enable": "Давать возможность",
1565
+ "disable": "Запрещать",
1566
+ "save": "Сохранять",
1567
+ "cancel": "Отмена",
1568
+ "weight": "Масса",
1533
1569
  "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.",
1570
+ "reset_all": "Сбросить все воспоминания",
1571
+ "reset_confirm_instruction": "Введите RESET, чтобы подтвердить удаление всех воспоминаний. Это невозможно отменить.",
1536
1572
  "confirm_reset": "Delete all memories",
1537
1573
  "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.",
1574
+ "export_hint": "Загрузите все свои воспоминания в виде файла JSON для резервного копирования или миграции.",
1575
+ "export_btn": "Экспорт воспоминаний",
1576
+ "export_invalid_format": "Неверный формат экспорта памяти.",
1577
+ "import_title": "Импортировать воспоминания",
1578
+ "import_hint": "Импортируйте воспоминания из ранее экспортированного файла JSON.",
1579
+ "choose_file": "Выберите файл (.json)",
1580
+ "import_placeholder": "Или вставьте сюда JSON...",
1581
+ "import_btn": "Импорт",
1582
+ "import_success": "Воспоминания успешно импортированы.",
1583
+ "memorize_ack": "Память сохранена.",
1584
+ "forget_ack": "Память забыта.",
1549
1585
  "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."
1586
+ "private_mode_on": "Приватный режим включенэтот разговор не будет извлечен.",
1587
+ "extract_queued": "{n} память/воспоминания ожидают вашего рассмотрения.",
1588
+ "conflict_detected": "Обнаружен конфликт с существующей памятью.",
1589
+ "upgrade_memory": "Обновите версию до Personal, чтобы разблокировать долговременную память."
1554
1590
  },
1555
1591
  "menu": {
1556
1592
  "file": "Файл",
@@ -1623,362 +1659,371 @@
1623
1659
  "empty": "Пустая диаграмма"
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": "Многофакторная аутентификация",
1663
+ "description": "Настройте требования MFA для членов команды.",
1664
+ "policy": "Политика МИД",
1665
+ "allowed_types": "Разрешенные методы MFA",
1666
+ "grace_period": "Льготный период",
1667
+ "grace_period_hint": "Часы, в течение которых новые члены должны зарегистрироваться в MFA после присоединения.",
1668
+ "hours": "часы",
1669
+ "required_banner": "МИД обязателен. Все участники должны зарегистрироваться, прежде чем получить доступ к ресурсам команды.",
1670
+ "save": "Сохранить настройки MFA",
1671
+ "saved_success": "Настройки MFA сохранены."
1637
1672
  },
1638
1673
  "migration": {
1639
- "__mt": true,
1640
- "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",
1645
- "kb_name": "KB Name",
1646
- "provider": "Provider",
1647
- "bucket": "Bucket",
1648
- "prefix": "Prefix",
1649
- "source": "Source",
1650
- "target": "Target",
1674
+ "title": "Миграция базы знаний",
1675
+ "subtitle": "Перенесите свою базу знаний к другому поставщику хранилища.",
1676
+ "new_migration": "Новая миграция",
1677
+ "wizard_title": "Новый мастер миграции",
1678
+ "kb_id": "Идентификатор базы знаний",
1679
+ "kb_name": "Имя базы знаний",
1680
+ "provider": "Поставщик",
1681
+ "bucket": "Ведро",
1682
+ "prefix": "Префикс",
1683
+ "source": "Источник",
1684
+ "target": "Цель",
1651
1685
  "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",
1686
+ "dry_run_label": "Пробный прогон (только моделирование, файлы не копируются)",
1687
+ "dry_run_badge": "Пробный прогон",
1688
+ "dry_run_start": "Запустить пробный прогон",
1689
+ "start_migration": "Начать миграцию",
1690
+ "cancel": "Отмена",
1691
+ "files": "файлы",
1692
+ "errors": "Ошибки",
1693
+ "started": "Началось",
1694
+ "rollback_deadline": "Срок отката",
1695
+ "rollback": "Откат",
1696
+ "download_log": "Скачать журнал",
1697
+ "history_title": "История миграции",
1664
1698
  "history_empty": "No migrations yet",
1665
- "loading": "Loading...",
1699
+ "loading": "Загрузка...",
1666
1700
  "confirm_delete": "Delete this migration session?"
1667
1701
  },
1668
1702
  "mobile": {
1669
- "__mt": true,
1670
1703
  "tab": {
1671
1704
  "nav_label": "Primary navigation",
1672
- "edit": "Edit",
1673
- "ai": "AI",
1674
- "files": "Knowledge Base",
1675
- "settings": "Settings"
1705
+ "edit": "Редактировать",
1706
+ "ai": "ИИ",
1707
+ "files": "База знаний",
1708
+ "settings": "Настройки"
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": "Открыть боковую панель",
1712
+ "more": "Дополнительные действия",
1713
+ "toggle_ai_pane": "Переключить панель ИИ",
1714
+ "untitled": "Без названия"
1682
1715
  },
1683
1716
  "overflow": {
1684
1717
  "mode_label": "Mode",
1685
- "mode_visual": "Visual",
1686
- "mode_source": "Source",
1687
- "search": "Find & Replace",
1688
- "outline": "Outline",
1718
+ "mode_visual": "Визуальный",
1719
+ "mode_source": "Источник",
1720
+ "search": "Найти и заменить",
1721
+ "outline": "Контур",
1689
1722
  "export": "Export",
1690
- "share": "Share"
1723
+ "share": "Делиться"
1691
1724
  },
1692
1725
  "format": {
1693
- "bold": "Bold",
1694
- "italic": "Italic",
1726
+ "bold": "Смелый",
1727
+ "italic": "Курсив",
1695
1728
  "heading": "Heading",
1696
- "list": "List",
1697
- "code": "Code",
1698
- "link": "Link",
1729
+ "list": "Список",
1730
+ "code": "Код",
1731
+ "link": "Связь",
1699
1732
  "link_prompt": "Enter URL",
1700
- "image": "Image"
1733
+ "image": "Изображение"
1701
1734
  },
1702
1735
  "ai": {
1703
- "title": "AI",
1704
- "placeholder": "Ask anything or describe what you want to write…",
1705
- "send": "Send",
1736
+ "title": "ИИ",
1737
+ "placeholder": "Спросите что-нибудь или опишите, что вы хотите написать…",
1738
+ "send": "Отправлять",
1706
1739
  "voice": "Voice",
1707
- "model": "Model",
1708
- "empty_state": "Your AI conversations will appear here.",
1709
- "thinking": "Thinking…",
1740
+ "model": "Модель",
1741
+ "empty_state": "Здесь появятся ваши разговоры с искусственным интеллектом.",
1742
+ "thinking": "Думая…",
1710
1743
  "clear": "Clear conversation",
1711
1744
  "clear_confirm": "Clear all messages?",
1712
- "stub_response": "Hi! I'm a placeholder response. The real AI provider will be wired up in v0.68.",
1713
- "not_configured_title": "AI is not configured yet",
1714
- "not_configured_text": "Add an API key or pick a local model in Settings → AI to start chatting.",
1715
- "not_configured": "AI is not configured. Open Settings to set up an AI model?",
1745
+ "cleared": "Беседа очищена",
1746
+ "clear_undone": "Сообщения восстановлены",
1747
+ "stub_response": "Привет! Я ответ-заполнитель. Настоящий поставщик ИИ будет подключен в версии 0.68.",
1748
+ "not_configured_title": "ИИ еще не настроен",
1749
+ "not_configured_text": "Добавьте ключ API или выберите локальную модель в «Настройки» → «ИИ», чтобы начать общение.",
1750
+ "not_configured": "ИИ не настроен. Открыть настройки, чтобы настроить модель ИИ?",
1716
1751
  "configure_now": "Set up",
1717
- "stop": "Stop",
1718
- "error_prefix": "Error",
1719
- "pick_model": "Switch AI model",
1720
- "no_providers": "No AI providers configured yet. Tap “Set up” to add one.",
1721
- "conversations": "Conversations",
1722
- "new_chat": "New chat",
1723
- "no_conversations": "No conversations yet. Tap “New chat” to start.",
1724
- "no_matches": "No conversations match your search.",
1725
- "search_placeholder": "Search conversations…",
1752
+ "stop": "Останавливаться",
1753
+ "error_prefix": "Ошибка",
1754
+ "pick_model": "Переключить модель ИИ",
1755
+ "no_providers": "Поставщики ИИ пока не настроены. Нажмите «Настроить», чтобы добавить его.",
1756
+ "conversations": "Разговоры",
1757
+ "new_chat": "Новый чат",
1758
+ "no_conversations": "Разговоров пока нет. Нажмите «Новый чат», чтобы начать.",
1759
+ "no_matches": "Нет разговоров, соответствующих вашему запросу.",
1760
+ "search_placeholder": "Поиск разговоров…",
1726
1761
  "attach_image": "Attach image",
1727
1762
  "remove_attachment": "Remove attachment",
1728
1763
  "attached_image": "Attached image",
1729
1764
  "compressing": "Compressing…",
1730
1765
  "copy": "Copy",
1731
- "sync_syncing": "Syncing with Picora…",
1732
- "sync_idle": "Synced with Picora",
1733
- "sync_offline": "Offline (will retry)",
1766
+ "sync_syncing": "Синхронизация с Пикорой…",
1767
+ "sync_idle": "Синхронизировано с Пикорой",
1768
+ "sync_offline": "Оффлайн (попробует повторно)",
1734
1769
  "sync_error": "Sync error — check connection",
1735
- "sync_disabled": "Sync disabled",
1736
- "mention_title": "Mention a note",
1737
- "mention_search": "Search your notes…",
1738
- "no_notes": "No notes yetopen one from the Files tab.",
1739
- "insert_action": "Insert",
1740
- "insert_title": "Insert into note",
1741
- "insert_append": "Append to current note",
1742
- "insert_append_sub": "Add this AI reply to the doc you have open in the Edit tab.",
1743
- "insert_new": "Create new note",
1744
- "insert_new_sub": "Make a new doc from this AI reply and open it.",
1745
- "insert_no_active": "No document is open in the Edit tab.",
1746
- "insert_failed": "Could not write the note check storage permissions.",
1747
- "insert_append_ok": "Appended to current note.",
1748
- "insert_new_ok": "New note created.",
1749
- "export": "Export / Share",
1750
- "export_failed": "Could not export this conversation.",
1751
- "export_ok": "Conversation exported.",
1752
- "rag_used": "Referenced {n} past message(s)",
1770
+ "sync_disabled": "Синхронизация отключена",
1771
+ "mention_title": "Упоминание заметки",
1772
+ "mention_search": "Поиск в заметках…",
1773
+ "no_notes": "Заметок пока нетоткройте их на вкладке «Файлы».",
1774
+ "insert_action": "Вставлять",
1775
+ "insert_title": "Вставить в заметку",
1776
+ "insert_append": "Добавить к текущей заметке",
1777
+ "insert_append_sub": "Добавьте этот ответ AI в документ, открытый на вкладке «Редактировать».",
1778
+ "insert_new": "Создать новую заметку",
1779
+ "insert_new_sub": "Создайте новый документ на основе этого ответа AI и откройте его.",
1780
+ "insert_no_active": "Ни один документ не открыт на вкладке «Редактировать».",
1781
+ "insert_failed": "Не удалось написать заметкупроверьте права хранения.",
1782
+ "insert_append_ok": "Добавлено в текущую заметку.",
1783
+ "insert_new_ok": "Новая заметка создана.",
1784
+ "export": "Экспорт/Поделиться",
1785
+ "export_failed": "Не удалось экспортировать этот разговор.",
1786
+ "export_ok": "Разговор экспортирован.",
1787
+ "rag_used": "Ссылка на прошлые сообщения {n}",
1753
1788
  "rag_on_title": "History RAG enabled — past conversations may be used as context",
1754
- "citations_title": "{n} reference(s)",
1789
+ "citations_title": "{n} ссылка(и)",
1755
1790
  "citations_empty": "No citations attached to this message.",
1756
- "params_title": "Generation parameters",
1791
+ "params_title": "Параметры генерации",
1757
1792
  "params_hint": "Override AI generation settings for this conversation only. Leave blank to use the provider default.",
1758
1793
  "params_save": "Save",
1759
- "params_reset": "Reset to defaults",
1760
- "param_temperature": "Temperature",
1761
- "param_temperature_sub": "0 = deterministic · 1 = balanced · 2 = creative",
1762
- "param_max_tokens": "Max output tokens",
1794
+ "params_reset": "Сбросить настройки по умолчанию",
1795
+ "param_temperature": "Температура",
1796
+ "param_temperature_sub": "0 = детерминированный · 1 = сбалансированный · 2 = творческий",
1797
+ "param_max_tokens": "Максимальное количество токенов вывода",
1763
1798
  "param_max_tokens_sub": "Hard cap on the model's reply length",
1764
- "param_top_p": "Top-P",
1765
- "param_top_p_sub": "Nucleus sampling threshold (0–1)",
1766
- "param_stop": "Stop sequences",
1767
- "param_stop_sub": "Model halts when about to emit any of these. Comma-separated; use \\n for newline.",
1768
- "param_stop_placeholder": "\\n\\n###, END",
1769
- "presets_label": "Presets",
1770
- "preset_save_as": "Save current as preset",
1771
- "preset_save_prompt": "Name this preset:",
1799
+ "param_top_p": "Топ-П",
1800
+ "param_top_p_sub": "Порог выборки ядра (0–1)",
1801
+ "param_stop": "Остановить последовательность",
1802
+ "param_stop_sub": "Модель останавливается, когда собирается испустить любой из них. через запятую; используйте \\n для новой строки.",
1803
+ "param_stop_placeholder": "\\n\\n###, КОНЕЦ",
1804
+ "presets_label": "Пресеты",
1805
+ "preset_save_as": "Сохранить текущий как предустановку",
1806
+ "preset_save_prompt": "Назовите этот пресет:",
1772
1807
  "preset_delete_confirm": "Delete preset \"{name}\"?",
1773
- "preset_delete_aria": "Delete preset",
1774
- "preset_picker_title": "Pick a preset",
1775
- "preset_picker_hint": "Switch tone for this conversation. For fine-tuning, use the ⚙ gear.",
1776
- "preset_picker_custom_note": "Currently using custom values — open ⚙ to view or save them as a preset.",
1808
+ "preset_delete_aria": "Удалить пресет",
1809
+ "preset_deleted": "Пресет \"{name}\" удалён",
1810
+ "preset_restored": "Пресет восстановлен",
1811
+ "preset_picker_title": "Выберите предустановку",
1812
+ "preset_picker_hint": "Переключите тон для этого разговора. Для точной настройки используйте шестеренку ⚙.",
1813
+ "preset_picker_custom_note": "В настоящее время используются пользовательские значения — откройте ⚙, чтобы просмотреть или сохранить их в качестве предустановки.",
1777
1814
  "preset_custom_label": "Custom",
1778
- "retry_title": "Retry this reply",
1779
- "retry_action": "Retry",
1780
- "retry_as_is": "Retry with current params",
1781
- "retry_with_preset": "Or try a different preset",
1782
- "retry_done": "Reply regenerating",
1783
- "retry_undone": "Original reply restored",
1815
+ "retry_title": "Повторите этот ответ",
1816
+ "retry_action": "Повторить попытку",
1817
+ "retry_as_is": "Повторить попытку с текущими параметрами",
1818
+ "retry_with_preset": "Или попробуйте другой пресет",
1819
+ "retry_done": "Регенерация ответа",
1820
+ "retry_undone": "Исходный ответ восстановлен",
1784
1821
  "undo": "Undo",
1785
1822
  "presets": {
1786
1823
  "default": {
1787
- "label": "Default"
1824
+ "label": "По умолчанию"
1788
1825
  },
1789
1826
  "precise": {
1790
- "label": "Precise"
1827
+ "label": "Точный"
1791
1828
  },
1792
1829
  "balanced": {
1793
- "label": "Balanced"
1830
+ "label": "Сбалансированный"
1794
1831
  },
1795
1832
  "creative": {
1796
- "label": "Creative"
1833
+ "label": "Креатив"
1797
1834
  }
1798
1835
  },
1799
- "default": "Default",
1800
- "quick_actions_header": "Start with",
1836
+ "default": "По умолчанию",
1837
+ "quick_actions_header": "Начните с",
1801
1838
  "workflows_header": "Workflows",
1802
1839
  "wf_steps": "steps",
1803
1840
  "wf": {
1804
1841
  "summarize-then-translate": {
1805
- "name": "SummarizeTranslate",
1806
- "desc": "TL;DR the input, then translate the summary."
1842
+ "name": "ОбобщитьПеревести",
1843
+ "desc": "TL;DR введите ввод, затем переведите резюме."
1807
1844
  },
1808
1845
  "translate-then-polish": {
1809
1846
  "name": "Translate → Polish",
1810
1847
  "desc": "Translate input, then smooth the translation."
1811
1848
  },
1812
1849
  "step": {
1813
- "summarize": "Summarizing",
1814
- "translate": "Translating",
1850
+ "summarize": "Подведение итогов",
1851
+ "translate": "Перевод",
1815
1852
  "polish": "Polishing",
1816
- "tone": "Tone",
1817
- "length": "Length",
1818
- "article": "Writing article",
1819
- "cover": "Cover image",
1853
+ "tone": "Тон",
1854
+ "length": "Длина",
1855
+ "article": "Написание статьи",
1856
+ "cover": "Обложка",
1820
1857
  "target_lang": "Target language",
1821
- "dictate": "Dictation",
1822
- "structurize": "Structuring"
1858
+ "dictate": "Диктант",
1859
+ "structurize": "Структурирование"
1823
1860
  },
1824
1861
  "write-article": {
1825
- "name": "Write article + cover",
1826
- "desc": "Topictone/lengtharticle → AI cover",
1827
- "ask_tone": "What tone should the article take?",
1828
- "ask_length": "How long should it be?",
1829
- "cover_hint": "Generating a cover image…"
1862
+ "name": "Написать статью + обложку",
1863
+ "desc": "Тематон/длинастатья → AI обложка",
1864
+ "ask_tone": "В каком тоне должна быть статья?",
1865
+ "ask_length": "Как долго это должно быть?",
1866
+ "cover_hint": "Создание обложки…"
1830
1867
  },
1831
1868
  "translate": {
1832
- "name": "Translate",
1833
- "desc": "Translate text into a target language",
1834
- "ask_lang": "Translate into which language?"
1869
+ "name": "Переводить",
1870
+ "desc": "Перевести текст на целевой язык",
1871
+ "ask_lang": "Перевести на какой язык?"
1835
1872
  },
1836
1873
  "voice-transcribe": {
1837
- "name": "Voicenote",
1838
- "desc": "Dictate, then structure into a note",
1874
+ "name": "Голосзаметка",
1875
+ "desc": "Продиктуйте, а затем структурируйте в заметку",
1839
1876
  "hint": "Tap done when you finish speaking."
1840
1877
  },
1841
1878
  "tone": {
1842
- "general": "General",
1843
- "marketing": "Marketing",
1844
- "technical": "Technical",
1845
- "story": "Story"
1879
+ "general": "Общий",
1880
+ "marketing": "Маркетинг",
1881
+ "technical": "Технический",
1882
+ "story": "История"
1846
1883
  },
1847
1884
  "length": {
1848
- "short": "Short (~500)",
1849
- "medium": "Medium (~1500)",
1850
- "long": "Long (~3000)"
1885
+ "short": "Короткие (~500)",
1886
+ "medium": "Средний (~1500)",
1887
+ "long": "Длинный (~3000)"
1851
1888
  },
1852
1889
  "lang": {
1853
- "en": "English",
1854
- "zh": "Chinese",
1855
- "ja": "Japanese",
1856
- "ko": "Korean"
1890
+ "en": "Английский",
1891
+ "zh": "китайский",
1892
+ "ja": "японский",
1893
+ "ko": "корейский"
1857
1894
  },
1858
- "cancel": "Cancel",
1859
- "listening": "Listening…",
1860
- "stt_done": "Done",
1861
- "generating_cover": "Generating cover…",
1862
- "cover_failed": "Cover generation failed",
1863
- "skip_cover": "Skip cover",
1864
- "regenerate": "Regenerate",
1865
- "insert_with_cover": "Insert article + cover",
1866
- "no_image_provider": "No image providerset one up in Settings Image generation."
1895
+ "cancel": "Отмена",
1896
+ "listening": "Слушаю…",
1897
+ "stt_done": "Сделанный",
1898
+ "generating_cover": "Создание укрытия…",
1899
+ "cover_failed": "Не удалось создать обложку",
1900
+ "skip_cover": "Пропустить обложку",
1901
+ "regenerate": "Регенерировать",
1902
+ "insert_with_cover": "Вставить статью + обложку",
1903
+ "no_image_provider": "Нет поставщика изображенийнастройте его в «Настройки»«Генерация изображений»."
1867
1904
  },
1868
1905
  "tpl": {
1869
1906
  "screenshot-to-md": {
1870
- "name": "ImageMarkdown",
1871
- "desc": "Convert a screenshot, photo, or chart to clean Markdown.",
1872
- "input": "Add a caption or leave empty the model uses your image."
1907
+ "name": "ИзображениеУценка",
1908
+ "desc": "Преобразуйте снимок экрана, фотографию или диаграмму в чистую Markdown.",
1909
+ "input": "Добавьте подпись или оставьте пустыммодель использует ваше изображение."
1873
1910
  },
1874
1911
  "summarize-current": {
1875
- "name": "Summarize note",
1876
- "desc": "TL;DR + key terms of the doc open in the Edit tab.",
1912
+ "name": "Сводная заметка",
1913
+ "desc": "TL;DR + ключевые термины документа, открытые на вкладке «Редактировать».",
1877
1914
  "input": "Optional focus: “key claims only”, “as bullet list”…"
1878
1915
  },
1879
1916
  "continue-writing": {
1880
1917
  "name": "Continue writing",
1881
- "desc": "Pick up where you left off in the current doc.",
1918
+ "desc": "Продолжайте с того места, где вы остановились в текущем документе.",
1882
1919
  "input": "Optional steering: tone, length, next section…"
1883
1920
  },
1884
1921
  "translate-zh-en": {
1885
- "name": "Translate ZH ↔ EN",
1886
- "desc": "Auto-detects source language. Preserves Markdown.",
1887
- "input": "Paste the text to translate."
1922
+ "name": "Перевести ZH ↔ RU",
1923
+ "desc": "Автоматически определяет исходный язык. Сохраняет Markdown.",
1924
+ "input": "Вставьте текст для перевода."
1888
1925
  }
1889
1926
  },
1890
- "rename": "Rename",
1891
- "rename_prompt": "New title",
1892
- "delete_confirm": "Delete {title}”? This cannot be undone.",
1893
- "conv_deleted": "Deleted {title}",
1894
- "conv_restored": "Conversation restored",
1927
+ "rename": "Переименовать",
1928
+ "rename_prompt": "Новое название",
1929
+ "delete_confirm": "Удалить «{title}»? Это невозможно отменить.",
1930
+ "conv_deleted": "Удален «{title}»",
1931
+ "conv_restored": "Разговор восстановлен",
1895
1932
  "usage_tooltip": "Prompt tokens ↑ Completion tokens ↓",
1896
1933
  "budget_warn_confirm": "You are nearing your monthly AI budget. Send anyway?",
1897
1934
  "budget_over_confirm": "You are OVER your monthly AI budget. Send anyway?",
1898
- "bulk_import": "Import all",
1899
- "bulk_export": "Export all",
1900
- "import_ok": "Imported {n} conversation(s).",
1901
- "import_empty": "No conversations in that file.",
1902
- "import_failed": "Import failed: {err}",
1903
- "compose": "Compose article",
1904
- "commands_title": "Commands",
1935
+ "bulk_import": "Импортировать все",
1936
+ "bulk_export": "Экспортировать все",
1937
+ "import_ok": "Импортированы разговоры {n}.",
1938
+ "import_empty": "В этом файле нет разговоров.",
1939
+ "import_failed": "Не удалось импортировать: {err}",
1940
+ "compose": "Написать статью",
1941
+ "commands_title": "Команды",
1905
1942
  "more_actions": "More actions",
1906
- "commands_empty": "No matching commands.",
1943
+ "commands_empty": "Нет подходящих команд.",
1907
1944
  "voice_dictate": "Voice input",
1908
- "voice_stop": "Stop",
1909
- "voice_read_aloud": "Read aloud",
1910
- "voice_local_badge": "On-device",
1911
- "voice_permission_denied": "Microphone or speech permission denied. Enable it in Settings to use voice.",
1912
- "voice_start_failed": "Could not start voice input.",
1913
- "voice_speak_failed": "Could not read this message aloud."
1945
+ "voice_stop": "Останавливаться",
1946
+ "voice_read_aloud": "Читать вслух",
1947
+ "voice_local_badge": "На устройстве",
1948
+ "voice_permission_denied": "Разрешение на использование микрофона или речи отклонено. Включите его в настройках, чтобы использовать голос.",
1949
+ "voice_start_failed": "Не удалось запустить голосовой ввод.",
1950
+ "voice_speak_failed": "Could not read this message aloud.",
1951
+ "delete": "Delete"
1914
1952
  },
1915
1953
  "files": {
1916
1954
  "title": "Knowledge Base",
1917
- "kb": "Knowledge Bases",
1918
- "tree": "All Notes",
1919
- "recent": "Recent",
1955
+ "kb": "Базы знаний",
1956
+ "tree": "Все заметки",
1957
+ "recent": "Недавний",
1920
1958
  "favorites": "Favorites",
1921
1959
  "open_local": "Open from device",
1922
1960
  "open_local_failed": "Could not open this file. Make sure it's a text or Markdown file.",
1923
1961
  "new": "New document",
1924
- "no_recent": "No recently opened documents.",
1925
- "no_favorites": "No favorites yet. Star a document from the editor to add it here.",
1926
- "empty": "No notes yet. Tap “New document” or “Open from device” to start.",
1927
- "loading": "Loading…",
1928
- "new_kb": "New knowledge base",
1929
- "kb_name_placeholder": "Knowledge base name",
1930
- "create": "Create",
1962
+ "no_recent": "Нет недавно открытых документов.",
1963
+ "no_favorites": "Пока нет фаворитов. Отметьте документ в редакторе, чтобы добавить его сюда.",
1964
+ "empty": "Примечаний пока нет. Нажмите «Новый документ» или «Открыть с устройства», чтобы начать.",
1965
+ "loading": "Загрузка…",
1966
+ "new_kb": "Новая база знаний",
1967
+ "kb_name_placeholder": "Название базы знаний",
1968
+ "create": "Создавать",
1931
1969
  "cancel": "Cancel",
1932
1970
  "kb_create_failed": "Could not create the knowledge base."
1933
1971
  },
1934
1972
  "media": {
1935
- "title": "Cloud images",
1936
- "search": "Search images",
1937
- "loading": "Loading…",
1938
- "empty": "No cloud images yet.",
1939
- "insert": "Insert cloud image"
1973
+ "title": "Облачные изображения",
1974
+ "search": "Поиск изображений",
1975
+ "loading": "Загрузка…",
1976
+ "empty": "Изображения облаков пока нет.",
1977
+ "insert": "Вставить изображение облака"
1940
1978
  }
1941
1979
  },
1942
1980
  "notifications": {
1943
- "__mt": true,
1944
1981
  "title": "Push Notifications",
1945
- "subtitle": "Receive alerts when your AI tasks finish or collaborators @ you.",
1982
+ "subtitle": "Получайте оповещения, когда ваши задачи ИИ завершатся или когда сотрудники сообщат вам.",
1946
1983
  "unsupported": "This browser does not support push notifications.",
1947
- "permission_status": "Permission",
1948
- "permission_denied": "Notification permission denied.",
1949
- "denied_hint": "Open your browser settings to re-enable notifications.",
1984
+ "permission_status": "Разрешение",
1985
+ "permission_denied": "Разрешение на уведомление отклонено.",
1986
+ "denied_hint": "Откройте настройки браузера, чтобы снова включить уведомления.",
1950
1987
  "enable": "Enable",
1951
- "disable": "Disable",
1952
- "no_token": "Failed to obtain a device token.",
1988
+ "disable": "Запрещать",
1989
+ "no_token": "Не удалось получить токен устройства.",
1953
1990
  "device_registered": "This device is registered:",
1954
- "registered_devices": "Registered devices",
1991
+ "registered_devices": "Зарегистрированные устройства",
1955
1992
  "no_devices": "No devices registered yet.",
1956
- "revoke": "Revoke",
1957
- "revoke_confirm": "Revoke this device? It will stop receiving push notifications immediately.",
1993
+ "revoke": "Отозвать",
1994
+ "revoke_confirm": "Отозвать это устройство? Он немедленно перестанет получать push-уведомления.",
1958
1995
  "platform": {
1959
- "web": "Web",
1996
+ "web": "Интернет",
1960
1997
  "ios": "iOS",
1961
- "android": "Android",
1962
- "desktop": "Desktop",
1963
- "unknown": "Unknown"
1964
- },
1965
- "registered_at": "Registered {date}",
1966
- "last_seen": "Last seen {date}",
1967
- "error_register": "Could not register this device.",
1968
- "error_list": "Could not load device list."
1998
+ "android": "Андроид",
1999
+ "desktop": "Рабочий стол",
2000
+ "unknown": "Неизвестный"
2001
+ },
2002
+ "registered_at": "Зарегистрировано {date}",
2003
+ "last_seen": "Последний раз был на связи {date}",
2004
+ "error_register": "Не удалось зарегистрировать это устройство.",
2005
+ "error_list": "Не удалось загрузить список устройств.",
2006
+ "recent": "Недавние уведомления"
2007
+ },
2008
+ "ocr": {
2009
+ "capture_button": "Захват и извлечение текста",
2010
+ "capture_short": "Capture",
2011
+ "recognizing": "Распознавание текста…",
2012
+ "empty_result": "Текст не обнаружен",
2013
+ "failed": "Ошибка распознавания текста",
2014
+ "engine_unavailable": "OCR недоступно на этом устройстве"
1969
2015
  },
1970
2016
  "offline": {
1971
- "__mt": true,
1972
- "cache_enabled": "Offline cache enabled",
1973
- "cache_disabled": "Offline cache disabled",
1974
- "cache_size": "{size} cached",
2017
+ "cache_enabled": "Автономный кэш включен",
2018
+ "cache_disabled": "Офлайн-кеш отключен",
2019
+ "cache_size": "{size} кэширован",
1975
2020
  "cache_note_count": "{count} notes cached",
1976
- "cache_expired": "Cache expired",
1977
- "note_cached": "Note cached for offline",
1978
- "note_evicted": "Note evicted from cache",
1979
- "offline_banner": "You are offline. Showing cached content.",
2021
+ "cache_expired": "Срок действия кэша истек",
2022
+ "note_cached": "Заметка кэширована для офлайн-режима",
2023
+ "note_evicted": "Заметка удалена из кеша",
2024
+ "offline_banner": "Вы не в сети. Отображение кэшированного контента.",
1980
2025
  "cache_settings": "Offline Cache Settings",
1981
- "max_notes": "Max cached notes"
2026
+ "max_notes": "Максимальное количество кэшированных заметок"
1982
2027
  },
1983
2028
  "outline": {
1984
2029
  "empty": "No headings found",
@@ -1987,26 +2032,24 @@
1987
2032
  "collapse": "Collapse"
1988
2033
  },
1989
2034
  "perf": {
1990
- "__mt": true,
1991
- "memory_warning": "High memory usage detected ({percent}%)",
1992
- "memory_critical": "Critical memory usage ({percent}%)",
1993
- "memory_trend_growing": "Memory growing",
1994
- "memory_trend_stable": "Memory stable",
1995
- "memory_trend_shrinking": "Memory shrinking",
1996
- "vitals_score": "Performance score: {score}",
2035
+ "memory_warning": "Обнаружено высокое использование памяти ({percent}%)",
2036
+ "memory_critical": "Критическое использование памяти ({percent}%)",
2037
+ "memory_trend_growing": "Память растет",
2038
+ "memory_trend_stable": "Память стабильная",
2039
+ "memory_trend_shrinking": "Сжатие памяти",
2040
+ "vitals_score": "Оценка производительности: {score}",
1997
2041
  "vitals_good": "Good",
1998
- "vitals_needs_improvement": "Needs improvement",
1999
- "vitals_poor": "Poor"
2042
+ "vitals_needs_improvement": "Требует улучшения",
2043
+ "vitals_poor": "Бедный"
2000
2044
  },
2001
2045
  "permissions": {
2002
- "__mt": true,
2003
- "paste_title": "Allow Clipboard Access?",
2004
- "paste_desc": "Moraya wants to read image data from your clipboard. This is used only when you paste an image.",
2005
- "allow_once": "Allow Once",
2006
- "allow_always": "Always Allow",
2007
- "deny": "Deny",
2046
+ "paste_title": "Разрешить доступ к буферу обмена?",
2047
+ "paste_desc": "Морайя хочет прочитать данные изображения из вашего буфера обмена. Используется только при вставке изображения.",
2048
+ "allow_once": "Разрешить один раз",
2049
+ "allow_always": "Всегда разрешать",
2050
+ "deny": "Отрицать",
2008
2051
  "granted": "Clipboard access granted",
2009
- "denied": "Clipboard access denied",
2052
+ "denied": "Доступ к буферу обмена запрещен",
2010
2053
  "revoke": "Revoke Permission"
2011
2054
  },
2012
2055
  "plugin_action": {
@@ -2152,15 +2195,13 @@
2152
2195
  "seo_no_provider": "Поставщик ИИ не настроен. Пожалуйста, настройте поставщика ИИ в настройках."
2153
2196
  },
2154
2197
  "pwa": {
2155
- "__mt": true,
2156
- "install_prompt": "Install Moraya Web for a better experience.",
2157
- "install": "Install",
2158
- "dismiss": "Not now",
2159
- "update_available": "A new version is available.",
2198
+ "install_prompt": "Установите Moraya Web для лучшего опыта.",
2199
+ "install": "Установить",
2200
+ "dismiss": "Не сейчас",
2201
+ "update_available": "Доступна новая версия.",
2160
2202
  "refresh": "Refresh"
2161
2203
  },
2162
2204
  "quickopen": {
2163
- "__mt": true,
2164
2205
  "title": "Quick Open",
2165
2206
  "placeholder": "Search notes...",
2166
2207
  "no_results": "No notes found",
@@ -2168,27 +2209,26 @@
2168
2209
  "hint_cmd_enter": "⌘↵ Open in new tab"
2169
2210
  },
2170
2211
  "rag": {
2171
- "__mt": true,
2172
- "title": "AI Knowledge Search (RAG)",
2173
- "mode_label": "Search Mode",
2174
- "mode_disabled": "Disabled",
2175
- "mode_client": "Client-side (E2E compatible)",
2176
- "mode_server": "Server-side (faster, KMS required)",
2177
- "index_status": "Index Status",
2178
- "indexed_notes": "Indexed notes",
2179
- "rebuild_index": "Rebuild Full Index",
2180
- "pause_rebuild": "Pause",
2181
- "rebuilding": "Rebuilding index...",
2182
- "search_settings": "Search Settings",
2212
+ "title": "Поиск знаний ИИ (RAG)",
2213
+ "mode_label": "Режим поиска",
2214
+ "mode_disabled": "Неполноценный",
2215
+ "mode_client": "Клиентская сторона (совместимость с E2E)",
2216
+ "mode_server": "Серверная часть (быстрее, требуется KMS)",
2217
+ "index_status": "Статус индекса",
2218
+ "indexed_notes": "Индексированные заметки",
2219
+ "rebuild_index": "Восстановить полный индекс",
2220
+ "pause_rebuild": "Пауза",
2221
+ "rebuilding": "Восстановление индекса...",
2222
+ "search_settings": "Настройки поиска",
2183
2223
  "top_k_label": "Results (top-K)",
2184
- "threshold_label": "Min. similarity",
2185
- "sources_label": "Sources",
2186
- "sources_count": "{n} note excerpts",
2187
- "jump_to_source": "Jump to note →",
2188
- "no_sources": "No sources",
2189
- "server_mode_warning": "Server mode lets Moraya temporarily decrypt your notes for indexing. Requires Cloud KMS.",
2190
- "model_version": "Model version",
2191
- "upgrade_for_cross_kb": "Upgrade to Personal to search across all your knowledge bases."
2224
+ "threshold_label": "Мин. сходство",
2225
+ "sources_label": "Источники",
2226
+ "sources_count": "{n} выдержки из заметок",
2227
+ "jump_to_source": "Перейти к заметке →",
2228
+ "no_sources": "Нет источников",
2229
+ "server_mode_warning": "Режим сервера позволяет Морайе временно расшифровывать ваши заметки для индексации. Требуется облачный KMS.",
2230
+ "model_version": "Версия модели",
2231
+ "upgrade_for_cross_kb": "Выполните обновление до уровня Personal, чтобы осуществлять поиск по всем вашим базам знаний."
2192
2232
  },
2193
2233
  "review": {
2194
2234
  "panel_title": "Рецензии",
@@ -2278,64 +2318,73 @@
2278
2318
  "invalid_regex": "Invalid regular expression"
2279
2319
  },
2280
2320
  "security": {
2281
- "__mt": true,
2282
- "title": "Security",
2283
- "encryption_mode_label": "Encryption Mode",
2284
- "mode_none": "None",
2285
- "mode_e2e": "E2E Client Encryption",
2286
- "mode_kms": "Cloud KMS",
2321
+ "title": "Безопасность",
2322
+ "encryption_mode_label": "Режим шифрования",
2323
+ "mode_none": "Никто",
2324
+ "mode_e2e": "Шифрование клиента E2E",
2325
+ "mode_kms": "Облачный КМС",
2287
2326
  "setup_title": "Set Up E2E Encryption",
2288
- "setup_subtitle": "Your notes will be encrypted before leaving your device. Moraya cannot read your notes.",
2289
- "passphrase_label": "Passphrase",
2290
- "passphrase_confirm_label": "Confirm Passphrase",
2327
+ "setup_subtitle": "Ваши заметки будут зашифрованы перед тем, как покинуть устройство. Морайя не может читать ваши записи.",
2328
+ "passphrase_label": "Парольная фраза",
2329
+ "passphrase_confirm_label": "Подтвердите парольную фразу",
2291
2330
  "passphrase_strength_weak": "Too weak",
2292
- "passphrase_strength_fair": "Fair",
2293
- "passphrase_strength_strong": "Strong",
2294
- "passphrase_strength_very_strong": "Very strong",
2295
- "passphrase_min_length": "Minimum 12 characters",
2296
- "passphrase_mismatch": "Passphrases do not match",
2297
- "passphrase_too_weak": "Passphrase is too weak. Use a longer, more complex phrase.",
2298
- "warning_no_recovery": "⚠️ If you forget your passphrase and lose your recovery code, your data cannot be recovered. Moraya has no backup.",
2299
- "recovery_code_title": "Your Recovery Code",
2331
+ "passphrase_strength_fair": "Справедливый",
2332
+ "passphrase_strength_strong": "Сильный",
2333
+ "passphrase_strength_very_strong": "Очень сильный",
2334
+ "passphrase_min_length": "Минимум 12 символов",
2335
+ "passphrase_mismatch": "Парольные фразы не совпадают",
2336
+ "passphrase_too_weak": "Парольная фраза слишком слабая. Используйте более длинную и сложную фразу.",
2337
+ "warning_no_recovery": "⚠️ Если вы забудете парольную фразу и потеряете код восстановления, ваши данные невозможно будет восстановить. У Морайи нет поддержки.",
2338
+ "recovery_code_title": "Ваш код восстановления",
2300
2339
  "recovery_code_subtitle": "Write down these 12 words. You will need them if you forget your passphrase.",
2301
- "recovery_confirm_instruction": "Enter word #{n} to confirm you wrote it down:",
2302
- "recovery_confirm_correct": "Correct! Enter word #{n}:",
2303
- "recovery_confirm_wrong": "Wrong word. Try again.",
2340
+ "recovery_confirm_instruction": "Введите слово #{n}, чтобы подтвердить, что вы его записали:",
2341
+ "recovery_confirm_correct": "Правильный! Введите слово #{n}:",
2342
+ "recovery_confirm_wrong": "Неправильное слово. Попробуйте еще раз.",
2304
2343
  "recovery_complete": "Recovery code confirmed.",
2305
- "i_have_written_down": "I have written down my recovery code",
2344
+ "i_have_written_down": "Я записал свой код восстановления",
2306
2345
  "unlock_title": "Unlock Your Notes",
2307
- "unlock_subtitle": "Enter your passphrase to decrypt your notes.",
2308
- "unlock_button": "Unlock",
2309
- "unlock_failed": "Wrong passphrase. Please try again.",
2346
+ "unlock_subtitle": "Введите парольную фразу, чтобы расшифровать свои заметки.",
2347
+ "unlock_button": "Разблокировать",
2348
+ "unlock_failed": "Неверный пароль. Пожалуйста, попробуйте еще раз.",
2310
2349
  "unlock_remember_device": "Remember this device for 7 days",
2311
- "migrate_title": "Upgrade to Cloud KMS",
2312
- "migrate_subtitle": "Your notes will be re-encrypted using your cloud KMS. Moraya can use your KMS to assist with AI features.",
2313
- "migrate_warning": "This is a one-way migration. You cannot revert to E2E mode without exporting and re-importing all data.",
2314
- "migrate_confirm": "I understand and want to proceed",
2315
- "migrate_progress": "Migrating {completed}/{total} notes...",
2316
- "migrate_done": "Migration complete!",
2317
- "migrate_failed": "Migration failed. Your original data is unchanged.",
2318
- "kms_provider_label": "KMS Provider",
2319
- "kms_key_arn_label": "Key ARN / Key ID",
2320
- "kms_role_arn_label": "Role ARN (for AssumeRole)",
2321
- "kms_verify": "Verify KMS Connection",
2322
- "kms_verified": "KMS connection verified",
2323
- "kms_verify_failed": "KMS connection failed",
2350
+ "migrate_title": "Обновление до облачного KMS",
2351
+ "migrate_subtitle": "Ваши заметки будут повторно зашифрованы с помощью облачного KMS. Морайя может использовать ваш KMS для помощи с функциями искусственного интеллекта.",
2352
+ "migrate_warning": "Это односторонняя миграция. Вы не можете вернуться в режим E2E без экспорта и повторного импорта всех данных.",
2353
+ "migrate_confirm": "Я понимаю и хочу продолжить",
2354
+ "migrate_progress": "Перенос заметок {completed}/{total}...",
2355
+ "migrate_done": "Миграция завершена!",
2356
+ "migrate_failed": "Миграция не удалась. Исходные данные не изменились.",
2357
+ "kms_provider_label": "KMS-провайдер",
2358
+ "kms_key_arn_label": "Ключ ARN/Идентификатор ключа",
2359
+ "kms_role_arn_label": "Роль ARN (для AssumeRole)",
2360
+ "kms_verify": "Проверьте соединение KMS",
2361
+ "kms_verified": "Соединение KMS проверено",
2362
+ "kms_verify_failed": "Не удалось подключиться к KMS",
2324
2363
  "back": "Back",
2325
2364
  "next": "Next",
2326
2365
  "save": "Save",
2327
2366
  "cancel": "Cancel",
2328
- "setup_complete": "E2E encryption enabled",
2329
- "deriving_key": "Deriving encryption key...",
2367
+ "setup_complete": "E2E-шифрование включено",
2368
+ "deriving_key": "Получение ключа шифрования...",
2330
2369
  "encrypting": "Encrypting notes...",
2331
- "current_mode": "Current mode: {mode}",
2370
+ "current_mode": "Текущий режим: {mode}",
2332
2371
  "last_unlock": "Last unlocked: {time}",
2333
- "use_recovery_code": "Use recovery code instead",
2334
- "recovery_unlock_title": "Recover Access",
2335
- "recovery_unlock_subtitle": "Enter your 12-word recovery code to regain access.",
2336
- "recovery_code_input": "Recovery Code (12 words, space-separated)",
2337
- "recovery_unlock_button": "Recover",
2338
- "set_new_passphrase": "Set New Passphrase"
2372
+ "use_recovery_code": "Вместо этого используйте код восстановления",
2373
+ "recovery_unlock_title": "Восстановить доступ",
2374
+ "recovery_unlock_subtitle": "Введите код восстановления из 12 слов, чтобы восстановить доступ.",
2375
+ "recovery_code_input": "Код восстановления (12 слов, разделенных пробелами)",
2376
+ "recovery_unlock_button": "Восстанавливаться",
2377
+ "set_new_passphrase": "Установить новую парольную фразу",
2378
+ "biometric_unlock_title": "Unlock Moraya",
2379
+ "biometric_unlock_subtitle": "Authenticate to access your data",
2380
+ "biometric_failed": "Аутентификация не удалась",
2381
+ "unlock_with_biometric": "Разблокировка с помощью биометрии",
2382
+ "unlock_with_face_id": "Разблокировка с помощью Face ID",
2383
+ "unlock_with_touch_id": "Unlock with Touch ID",
2384
+ "unlock_with_fingerprint": "Разблокировка отпечатком пальца",
2385
+ "unlock_with_iris": "Разблокировка с помощью сканирования радужной оболочки глаза",
2386
+ "unlock_with_passkey": "Разблокировать с помощью пароля",
2387
+ "use_passphrase_fallback": "Вместо этого используйте парольную фразу"
2339
2388
  },
2340
2389
  "seo": {
2341
2390
  "title": "SEO Оптимизация",
@@ -2355,20 +2404,19 @@
2355
2404
  "step_description": "Генерация заголовка, аннотации и тегов"
2356
2405
  },
2357
2406
  "sessions": {
2358
- "__mt": true,
2359
2407
  "title": "Active Sessions",
2360
- "active_sessions": "Active Sessions",
2361
- "anomaly_alerts": "Security Alerts",
2362
- "current": "Current",
2363
- "last_active": "Last active",
2408
+ "active_sessions": "Активные сессии",
2409
+ "anomaly_alerts": "Оповещения безопасности",
2410
+ "current": "Текущий",
2411
+ "last_active": "Последний активный",
2364
2412
  "revoke": "Revoke",
2365
- "revoking": "Revoking…",
2366
- "confirm_revoke": "Revoke this session?",
2413
+ "revoking": "Отзыв…",
2414
+ "confirm_revoke": "Отменить этот сеанс?",
2367
2415
  "yes": "Yes",
2368
2416
  "no": "Cancel",
2369
- "dismiss": "Dismiss",
2370
- "just_now": "Just now",
2371
- "hours_ago": "h ago",
2417
+ "dismiss": "Увольнять",
2418
+ "just_now": "Прямо сейчас",
2419
+ "hours_ago": "час назад",
2372
2420
  "days_ago": "d ago"
2373
2421
  },
2374
2422
  "settings": {
@@ -3007,25 +3055,24 @@
3007
3055
  "local_workspace": "Local"
3008
3056
  },
3009
3057
  "sso": {
3010
- "__mt": true,
3011
- "title": "Single Sign-On",
3012
- "description": "Configure SSO to let team members authenticate via your identity provider.",
3013
- "enable_sso": "Enable SSO",
3058
+ "title": "Единый вход",
3059
+ "description": "Настройте единый вход, чтобы члены команды могли проходить аутентификацию через вашего поставщика удостоверений.",
3060
+ "enable_sso": "Включить единый вход",
3014
3061
  "require_sso": "Require SSO for all members",
3015
- "oidc": "OIDC / OAuth 2.0",
3062
+ "oidc": "ОИДК/ОАутент 2.0",
3016
3063
  "saml": "SAML 2.0",
3017
- "provider": "Identity Provider",
3064
+ "provider": "Поставщик удостоверений",
3018
3065
  "custom_provider": "Custom",
3019
3066
  "issuer": "Issuer URL",
3020
- "client_id": "Client ID",
3021
- "client_secret": "Client Secret",
3022
- "scopes": "Scopes",
3067
+ "client_id": "Идентификатор клиента",
3068
+ "client_secret": "Секрет клиента",
3069
+ "scopes": "Области применения",
3023
3070
  "idp_metadata_url": "IdP Metadata URL",
3024
3071
  "sp_entity_id": "SP Entity ID",
3025
- "sp_acs_url": "ACS URL",
3026
- "signing_cert": "Signing Certificate",
3027
- "save": "Save SSO Configuration",
3028
- "saved_success": "SSO configuration saved."
3072
+ "sp_acs_url": "URL-адрес ACS",
3073
+ "signing_cert": "Сертификат подписи",
3074
+ "save": "Сохранить конфигурацию единого входа",
3075
+ "saved_success": "Конфигурация единого входа сохранена."
3029
3076
  },
3030
3077
  "stale_dmg": {
3031
3078
  "title": "Очистить старые образы дисков",
@@ -3045,53 +3092,52 @@
3045
3092
  "ai_tooltip": "AI"
3046
3093
  },
3047
3094
  "storage": {
3048
- "__mt": true,
3049
- "title": "Storage",
3050
- "connected_providers": "Connected Providers",
3095
+ "title": "Хранилище",
3096
+ "connected_providers": "Подключенные провайдеры",
3051
3097
  "connect_provider": "Connect Provider",
3052
- "primary": "Primary",
3098
+ "primary": "Начальный",
3053
3099
  "set_primary": "Set as Primary",
3054
- "remove": "Remove",
3055
- "edit": "Edit",
3100
+ "remove": "Удалять",
3101
+ "edit": "Редактировать",
3056
3102
  "verify": "Verify Connection",
3057
- "verifying": "Verifying...",
3058
- "verify_success": "Connection verified",
3059
- "verify_failed": "Verification failed",
3060
- "no_providers": "No storage providers connected.",
3061
- "connect_prompt": "Connect your own cloud storage to keep full control of your data.",
3062
- "picora_default": "Picora is your storage provider (Connect plan)",
3063
- "upgrade_for_byoc": "Upgrade to Personal to connect your own storage.",
3064
- "step_choose": "Choose Provider",
3065
- "step_setup": "Setup Script",
3066
- "step_credentials": "Enter Credentials",
3067
- "step_verify": "Verify",
3068
- "step_name": "Name & Save",
3069
- "provider_label": "Provider",
3070
- "bucket_label": "Bucket Name",
3071
- "region_label": "Region",
3072
- "access_key_label": "Access Key ID",
3073
- "secret_key_label": "Secret Access Key",
3074
- "role_arn_label": "Role ARN (for STS)",
3103
+ "verifying": "Проверка...",
3104
+ "verify_success": "Соединение проверено",
3105
+ "verify_failed": "Проверка не удалась",
3106
+ "no_providers": "Поставщики хранилищ не подключены.",
3107
+ "connect_prompt": "Подключите собственное облачное хранилище, чтобы получить полный контроль над своими данными.",
3108
+ "picora_default": "Picora ваш поставщик хранилища (план Connect)",
3109
+ "upgrade_for_byoc": "Обновите версию до Personal, чтобы подключить собственное хранилище.",
3110
+ "step_choose": "Выберите провайдера",
3111
+ "step_setup": "Сценарий установки",
3112
+ "step_credentials": "Введите учетные данные",
3113
+ "step_verify": "Проверять",
3114
+ "step_name": "Имя и сохранение",
3115
+ "provider_label": "Поставщик",
3116
+ "bucket_label": "Имя сегмента",
3117
+ "region_label": "Область",
3118
+ "access_key_label": "Идентификатор ключа доступа",
3119
+ "secret_key_label": "Секретный ключ доступа",
3120
+ "role_arn_label": "Роль ARN (для STS)",
3075
3121
  "account_id_label": "Account ID",
3076
3122
  "key_id_label": "Key ID",
3077
- "application_key_label": "Application Key",
3078
- "binding_label": "Display Name",
3079
- "copy_script": "Copy Script",
3080
- "copy_policy": "Copy Policy JSON",
3081
- "copied": "Copied!",
3082
- "back": "Back",
3083
- "next": "Next",
3084
- "save": "Save",
3085
- "health_ok": "Healthy",
3086
- "health_degraded": "Degraded",
3123
+ "application_key_label": "Ключ приложения",
3124
+ "binding_label": "Отображаемое имя",
3125
+ "copy_script": "Копировать скрипт",
3126
+ "copy_policy": "Копировать политику JSON",
3127
+ "copied": "Скопировано!",
3128
+ "back": "Назад",
3129
+ "next": "Следующий",
3130
+ "save": "Сохранять",
3131
+ "health_ok": "Здоровый",
3132
+ "health_degraded": "Деградированный",
3087
3133
  "health_failed": "Failed",
3088
- "health_unknown": "Unknown",
3089
- "access_denied": "Access denied.",
3090
- "bucket_not_found": "Bucket not found.",
3091
- "bucket_exists": "Bucket already exists.",
3092
- "clock_skew": "System clock is out of sync. Please check your date/time settings.",
3093
- "b2_no_sts_warning": "Backblaze B2 does not support STS. Credentials are stored in session only. Enable E2E encryption (v0.43) for better security.",
3094
- "r2_token_info": "Create an API Token in Cloudflare Dashboard with R2 Read/Write permissions for this bucket."
3134
+ "health_unknown": "Неизвестный",
3135
+ "access_denied": "Доступ запрещен.",
3136
+ "bucket_not_found": "Ведро не найдено.",
3137
+ "bucket_exists": "Ведро уже существует.",
3138
+ "clock_skew": "Системные часы не синхронизированы. Пожалуйста, проверьте настройки даты/времени.",
3139
+ "b2_no_sts_warning": "Backblaze B2 не поддерживает STS. Учетные данные хранятся только в сеансе. Включите шифрование E2E (v0.43) для большей безопасности.",
3140
+ "r2_token_info": "Создайте токен API в Cloudflare Dashboard с разрешениями R2 на чтение/запись для этого сегмента."
3095
3141
  },
3096
3142
  "table": {
3097
3143
  "insert_row_above": "Вставить строку выше",
@@ -3135,36 +3181,35 @@
3135
3181
  "dirty_dot": "Unsaved changes"
3136
3182
  },
3137
3183
  "team": {
3138
- "__mt": true,
3139
- "title": "Team Knowledge Bases",
3140
- "create": "New Team KB",
3141
- "no_kbs": "You don't have any team knowledge bases yet.",
3142
- "create_first": "Create your first team KB",
3143
- "members": "members",
3144
- "open": "Open",
3145
- "settings": "Settings",
3146
- "encryption_kms": "Cloud KMS (AI Review enabled)",
3147
- "encryption_e2e": "E2E Encryption (AI Review disabled)",
3148
- "wizard_title": "Create Team Knowledge Base",
3149
- "step_info": "Name",
3150
- "step_provider": "Storage",
3184
+ "title": "Командные базы знаний",
3185
+ "create": "Новая команда КБ",
3186
+ "no_kbs": "У вас пока нет командных баз знаний.",
3187
+ "create_first": "Создайте свою первую команду базы знаний",
3188
+ "members": "члены",
3189
+ "open": "Открыть",
3190
+ "settings": "Настройки",
3191
+ "encryption_kms": "Cloud KMS (проверка AI включена)",
3192
+ "encryption_e2e": "Шифрование E2E (проверка AI отключена)",
3193
+ "wizard_title": "Создать базу знаний команды",
3194
+ "step_info": "Имя",
3195
+ "step_provider": "Хранилище",
3151
3196
  "step_members": "Members",
3152
3197
  "step_encryption": "Encryption",
3153
- "step_confirm": "Confirm",
3198
+ "step_confirm": "Подтверждать",
3154
3199
  "kb_name_label": "Team KB Name",
3155
- "kb_name_placeholder": "e.g. Engineering Docs",
3156
- "provider_label": "Provider",
3157
- "bucket_label": "Bucket",
3158
- "prefix_label": "Prefix (optional)",
3159
- "invite_emails_label": "Email addresses (comma-separated)",
3160
- "invite_role_label": "Role",
3200
+ "kb_name_placeholder": "например Инженерная документация",
3201
+ "provider_label": "Поставщик",
3202
+ "bucket_label": "Ведро",
3203
+ "prefix_label": "Префикс (необязательно)",
3204
+ "invite_emails_label": "Адреса электронной почты (через запятую)",
3205
+ "invite_role_label": "Роль",
3161
3206
  "mode_kms_name": "Cloud KMS",
3162
- "mode_kms_desc": "AI Review and server-side features enabled.",
3163
- "mode_e2e_name": "End-to-End",
3164
- "mode_e2e_desc": "Maximum privacy. AI Review not available.",
3165
- "confirm_summary": "Confirm & Create",
3166
- "creating": "Creating…",
3167
- "create_kb": "Create Team KB"
3207
+ "mode_kms_desc": "Обзор AI и функции на стороне сервера включены.",
3208
+ "mode_e2e_name": "Сквозной",
3209
+ "mode_e2e_desc": "Максимальная конфиденциальность. Обзор AI недоступен.",
3210
+ "confirm_summary": "Подтвердить и создать",
3211
+ "creating": "Создание…",
3212
+ "create_kb": "Создать команду базы знаний"
3168
3213
  },
3169
3214
  "templates": {
3170
3215
  "gallery": {
@@ -3587,29 +3632,28 @@
3587
3632
  }
3588
3633
  },
3589
3634
  "theme": {
3590
- "__mt": true,
3591
- "title": "Appearance",
3592
- "mode_title": "Color Mode",
3593
- "mode_light": "Light",
3594
- "mode_dark": "Dark",
3595
- "mode_system": "System",
3635
+ "title": "Появление",
3636
+ "mode_title": "Цветовой режим",
3637
+ "mode_light": "Свет",
3638
+ "mode_dark": "Темный",
3639
+ "mode_system": "Система",
3596
3640
  "custom_title": "Custom Themes",
3597
- "custom_new": "New Theme",
3598
- "custom_export": "Export",
3599
- "custom_import": "Import",
3600
- "custom_delete": "Delete",
3601
- "custom_activate": "Activate",
3602
- "custom_deactivate": "Deactivate",
3641
+ "custom_new": "Новая тема",
3642
+ "custom_export": "Экспорт",
3643
+ "custom_import": "Импорт",
3644
+ "custom_delete": "Удалить",
3645
+ "custom_activate": "Активировать",
3646
+ "custom_deactivate": "Деактивировать",
3603
3647
  "custom_edit": "Edit",
3604
- "editor_title": "Theme Editor",
3605
- "name_label": "Theme Name",
3606
- "no_custom": "No custom themes yet. Create one below.",
3607
- "groups_base": "Base Colors",
3608
- "groups_editor": "Editor",
3609
- "groups_ui": "UI Components",
3610
- "groups_code": "Code Block",
3611
- "saved": "Save",
3612
- "import_error": "Invalid theme file. Please use a valid Moraya theme JSON."
3648
+ "editor_title": "Редактор тем",
3649
+ "name_label": "Название темы",
3650
+ "no_custom": "Пользовательских тем пока нет. Создайте его ниже.",
3651
+ "groups_base": "Базовые цвета",
3652
+ "groups_editor": "Редактор",
3653
+ "groups_ui": "Компоненты пользовательского интерфейса",
3654
+ "groups_code": "Кодовый блок",
3655
+ "saved": "Сохранять",
3656
+ "import_error": "Неверный файл темы. Используйте действительный JSON темы Moraya."
3613
3657
  },
3614
3658
  "titlebar": {
3615
3659
  "unsaved": "Не сохранено",
@@ -3638,7 +3682,34 @@
3638
3682
  "summarize_prompt": "Пожалуйста, создайте резюме встречи по следующей транскрипции. Определите ключевые темы обсуждения, принятые решения и задачи. Оформите в формате Markdown.",
3639
3683
  "no_speech_config": "Провайдер распознавания речи не настроен. Добавьте его в Настройках → Голос.",
3640
3684
  "no_speech_config_hint": "Перейдите в Настройки → Голос, чтобы добавить провайдера распознавания речи (напр., Deepgram).",
3641
- "go_to_voice_settings": "Открыть настройки голоса"
3685
+ "go_to_voice_settings": "Открыть настройки голоса",
3686
+ "mute_mic": "Mute mic",
3687
+ "unmute_mic": "Включить микрофон",
3688
+ "source_label": "Источник",
3689
+ "source_mic": "микрофон",
3690
+ "source_system": "Система",
3691
+ "source_mixed": "Смешанный",
3692
+ "mode_label": "Режим",
3693
+ "mode_transcription": "Транскрипция",
3694
+ "mode_interview": "Интервью",
3695
+ "summarize_interview": "Подведение итогов интервью",
3696
+ "to_document_append": "Append to Current Document",
3697
+ "interview_summarize_prompt": "Пожалуйста, кратко изложите следующую стенограмму интервью. Извлеките ключевые вопросы, краткие ответы и предложения по оптимизации. Форматировать как Markdown.",
3698
+ "interview_no_aiconfig": "Модель ИИ чата не настроена. Пожалуйста, добавьте его в Настройки → AI.",
3699
+ "interview_empty_answer": "AI returned an empty answer.",
3700
+ "interview_answer_pending": "Analyzing latest context...",
3701
+ "interview_answer_failed": "Не удалось создать ответ на интервью.",
3702
+ "interview_system_share_hint": "Режим интервью соответствует текущей настройке источника звука; Совместное использование экрана запрашивается только в том случае, если выбран источник «Система».",
3703
+ "interview_native_system_hint": "Режим интервью соответствует текущей настройке источника звука. В macOS система и смешанный источник используют встроенный захват системного звука вместо диалогового окна совместного использования экрана.",
3704
+ "system_source_restart_hint": "Запись была остановлена ​​после переключения на источник «Система/Смешанный». Нажмите «Пуск» еще раз, чтобы повторно авторизоваться и продолжить.",
3705
+ "system_source_click_start_hint": "Разрешение системного источника должно активироваться с помощью кнопки «Пуск». Пожалуйста, нажмите «Начать» еще раз.",
3706
+ "system_source_permission_denied": "System source permission was denied. Allow screen sharing and enable audio sharing, then try again.",
3707
+ "system_source_no_audio_track_hint": "No system audio track was captured. In the share dialog, enable audio sharing and prefer Entire Screen; if your platform has no audio-share option, use Mic or Mixed source.",
3708
+ "system_source_unsupported_hint": "This environment does not expose a system-audio track in the share dialog. Source has auto-fallen back to Mic. For true system audio, use a native loopback capture path.",
3709
+ "system_source_native_hint": "macOS native system-audio capture is active. No screen-sharing dialog is required for System source.",
3710
+ "system_source_native_mixed_hint": "Собственный системный захват звука macOS активен. Смешанный источник сочетает в себе собственный системный звук с входом микрофона в приложении.",
3711
+ "system_source_native_permission_denied": "macOS отказал в захвате встроенного системного звука. Разрешите приложение в «Системных настройках» → «Конфиденциальность и безопасность», затем повторите попытку.",
3712
+ "system_source_runtime_incompatible": "This macOS runtime is not fully compatible with native system-audio capture. Update macOS or switch to Mic source."
3642
3713
  },
3643
3714
  "update": {
3644
3715
  "title": "Информация о версии",
@@ -3658,34 +3729,37 @@
3658
3729
  "new_version_available": "Доступна новая версия! Нажмите для обновления."
3659
3730
  },
3660
3731
  "voice": {
3661
- "__mt": true,
3662
- "title": "Voice Capture",
3663
- "provider": "Provider",
3664
- "language": "Language",
3665
- "doubao": "Doubao (Realtime)",
3666
- "start": "Record",
3667
- "stop": "Stop",
3668
- "processing": "Processing...",
3669
- "transcript": "Transcript",
3670
- "words": "words",
3671
- "structurize": "AI Structurize",
3672
- "view_history": "View History",
3673
- "untitled": "Untitled",
3674
- "key_points": "Key Points",
3675
- "action_items": "Action Items",
3676
- "save_note": "Save Note",
3677
- "discard": "Discard",
3732
+ "title": "Захват голоса",
3733
+ "provider": "Поставщик",
3734
+ "language": "Язык",
3735
+ "doubao": "Дубао (в реальном времени)",
3736
+ "start": "Записывать",
3737
+ "stop": "Останавливаться",
3738
+ "processing": "Обработка...",
3739
+ "transcript": "Стенограмма",
3740
+ "words": "слова",
3741
+ "structurize": "Структурирование ИИ",
3742
+ "view_history": "Просмотреть историю",
3743
+ "untitled": "Без названия",
3744
+ "key_points": "Ключевые моменты",
3745
+ "action_items": "Действия",
3746
+ "save_note": "Сохранить заметку",
3747
+ "discard": "Отказаться",
3678
3748
  "quota_exceeded": "Monthly voice quota exceeded. Upgrade or wait until next month.",
3679
3749
  "quota_near": "You are near your monthly voice limit.",
3680
3750
  "history": {
3681
- "title": "Voice History",
3682
- "new_capture": "+ New Recording",
3683
- "search_placeholder": "Search transcripts...",
3684
- "no_results": "No transcripts match your search.",
3751
+ "title": "История голоса",
3752
+ "new_capture": "+ Новая запись",
3753
+ "search_placeholder": "Поиск транскриптов...",
3754
+ "no_results": "Нет транскриптов, соответствующих вашему запросу.",
3685
3755
  "empty": "No recordings yet. Start capturing your voice!",
3686
3756
  "reprocess": "Re-process",
3687
3757
  "delete": "Delete"
3688
- }
3758
+ },
3759
+ "hold_to_record": "Удерживайте, чтобы записать",
3760
+ "release_to_send": "Отпустите для отправки",
3761
+ "cancel": "Слайд для отмены",
3762
+ "permission_denied": "Microphone permission denied"
3689
3763
  },
3690
3764
  "welcome": {
3691
3765
  "title": "Добро пожаловать в Moraya",