@moraya/core 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/i18n/index.d.ts +231 -0
- package/dist/i18n/index.js +301 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/locales/ar.json +3869 -0
- package/dist/i18n/locales/de.json +3869 -0
- package/dist/i18n/locales/en.json +3914 -0
- package/dist/i18n/locales/es.json +3867 -0
- package/dist/i18n/locales/fr.json +3867 -0
- package/dist/i18n/locales/hi.json +3869 -0
- package/dist/i18n/locales/ja.json +3869 -0
- package/dist/i18n/locales/ko.json +3869 -0
- package/dist/i18n/locales/pt.json +3869 -0
- package/dist/i18n/locales/ru.json +3869 -0
- package/dist/i18n/locales/zh-CN.json +3914 -0
- package/dist/i18n/locales/zh-Hant.json +3869 -0
- package/package.json +7 -2
|
@@ -0,0 +1,3867 @@
|
|
|
1
|
+
{
|
|
2
|
+
"admin": {
|
|
3
|
+
"__mt": true,
|
|
4
|
+
"title": "Team Admin",
|
|
5
|
+
"tab_members": "Members",
|
|
6
|
+
"tab_kbs": "Knowledge Bases",
|
|
7
|
+
"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",
|
|
20
|
+
"ai": "AI",
|
|
21
|
+
"usage_summary": "Usage Summary",
|
|
22
|
+
"storage": "Storage",
|
|
23
|
+
"notes": "Notes",
|
|
24
|
+
"ai_queries": "AI Queries",
|
|
25
|
+
"active_members": "Active Members",
|
|
26
|
+
"this_month": "this month"
|
|
27
|
+
},
|
|
28
|
+
"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",
|
|
36
|
+
"cancel": "Cancel",
|
|
37
|
+
"new_task": "New Task",
|
|
38
|
+
"final_answer": "Final Answer",
|
|
39
|
+
"upgrade_required": "AI Agent is available on Personal and above plans.",
|
|
40
|
+
"mode": {
|
|
41
|
+
"react": "ReAct (Adaptive)",
|
|
42
|
+
"plan_execute": "Plan & Execute"
|
|
43
|
+
},
|
|
44
|
+
"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"
|
|
50
|
+
},
|
|
51
|
+
"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.",
|
|
56
|
+
"all_tags": "All",
|
|
57
|
+
"use": "Use Template"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"ai": {
|
|
61
|
+
"title": "AI",
|
|
62
|
+
"rules_active": "Reglas MORAYA.md activas ({count} secciones)",
|
|
63
|
+
"clear_chat": "Limpiar chat",
|
|
64
|
+
"unconfigured": "La IA no está configurada.",
|
|
65
|
+
"unconfigured_hint": "Abra Configuración ({shortcut}) y configure su API Key para habilitar las funciones de IA.",
|
|
66
|
+
"open_settings": "Abrir configuración de IA",
|
|
67
|
+
"open_image_settings": "Abrir configuración de AIGC",
|
|
68
|
+
"text_ai_label": "IA de texto (generación de prompts)",
|
|
69
|
+
"image_ai_label": "IA de imagen (generación de imágenes)",
|
|
70
|
+
"welcome_title": "¿En qué puedo ayudarle?",
|
|
71
|
+
"welcome_hint": "Escriba un mensaje o use {kbd} para comandos",
|
|
72
|
+
"you": "Usted",
|
|
73
|
+
"assistant": "IA",
|
|
74
|
+
"typing": "escribiendo...",
|
|
75
|
+
"placeholder": "Pregunte lo que sea a la IA...",
|
|
76
|
+
"placeholder_selection": "Pregunte sobre la selección...",
|
|
77
|
+
"send": "Enviar (⌘↵)",
|
|
78
|
+
"stop": "Detener (Esc)",
|
|
79
|
+
"retry": "Reintentar",
|
|
80
|
+
"interrupted": "Interrumpido",
|
|
81
|
+
"insert_to_editor": "Insertar en el editor",
|
|
82
|
+
"replace_selection": "Reemplazar selección",
|
|
83
|
+
"attach_image": "Adjuntar imagen",
|
|
84
|
+
"attach_image_max": "Máximo {max} imágenes",
|
|
85
|
+
"remove_image": "Eliminar imagen",
|
|
86
|
+
"close_preview": "Cerrar vista previa",
|
|
87
|
+
"more_actions": "Más acciones",
|
|
88
|
+
"voice_transcription": "Transcripción de voz con IA",
|
|
89
|
+
"config": {
|
|
90
|
+
"title": "Configuración de IA",
|
|
91
|
+
"provider": "Proveedor",
|
|
92
|
+
"api_key": "API Key",
|
|
93
|
+
"api_key_placeholder": "Introduzca la API Key de {provider}",
|
|
94
|
+
"api_key_not_required": "No es necesaria para Ollama",
|
|
95
|
+
"base_url": "URL base",
|
|
96
|
+
"model": "Modelo",
|
|
97
|
+
"model_placeholder": "Introduzca el nombre del modelo",
|
|
98
|
+
"max_tokens": "Tokens máximos",
|
|
99
|
+
"temperature": "Temperatura",
|
|
100
|
+
"test_connection": "Probar conexión",
|
|
101
|
+
"testing": "Probando...",
|
|
102
|
+
"connected": "¡Conectado!",
|
|
103
|
+
"failed": "Fallido",
|
|
104
|
+
"test_failed": "Falló la prueba de conexión"
|
|
105
|
+
},
|
|
106
|
+
"providers": {
|
|
107
|
+
"claude": "Anthropic Claude",
|
|
108
|
+
"openai": "OpenAI",
|
|
109
|
+
"gemini": "Google Gemini",
|
|
110
|
+
"deepseek": "DeepSeek",
|
|
111
|
+
"ollama": "Ollama (Local)",
|
|
112
|
+
"custom": "API personalizada",
|
|
113
|
+
"grok": "xAI Grok",
|
|
114
|
+
"mistral": "Mistral AI",
|
|
115
|
+
"glm": "Zhipu GLM",
|
|
116
|
+
"minimax": "MiniMax",
|
|
117
|
+
"doubao": "Doubao (ByteDance)"
|
|
118
|
+
},
|
|
119
|
+
"multi_model": {
|
|
120
|
+
"add_model": "+ Agregar modelo",
|
|
121
|
+
"default": "Predeterminado",
|
|
122
|
+
"set_default": "Establecer como predeterminado",
|
|
123
|
+
"no_models": "No hay modelos de IA configurados",
|
|
124
|
+
"no_models_hint": "Agregue un modelo de IA para comenzar a usar las funciones de IA.",
|
|
125
|
+
"no_image_models": "No hay modelos de imagen configurados",
|
|
126
|
+
"no_image_models_hint": "Agregue un modelo de generación de imágenes para usar las funciones de imagen con IA."
|
|
127
|
+
},
|
|
128
|
+
"image_config": {
|
|
129
|
+
"title": "IA de generación de imágenes",
|
|
130
|
+
"provider": "Proveedor",
|
|
131
|
+
"provider_openai": "OpenAI DALL-E",
|
|
132
|
+
"provider_grok": "Grok (xAI)",
|
|
133
|
+
"provider_custom": "Personalizado (compatible con OpenAI)",
|
|
134
|
+
"api_key": "API Key",
|
|
135
|
+
"api_key_placeholder": "Introduzca la API Key de imágenes",
|
|
136
|
+
"base_url": "URL base",
|
|
137
|
+
"model": "Modelo",
|
|
138
|
+
"model_placeholder": "Introduzca el nombre del modelo",
|
|
139
|
+
"default_size": "Tamaño predeterminado",
|
|
140
|
+
"ratio": "Relación de aspecto",
|
|
141
|
+
"size_level": "Tamaño",
|
|
142
|
+
"size_large": "Grande",
|
|
143
|
+
"size_medium": "Mediano",
|
|
144
|
+
"size_small": "Pequeño",
|
|
145
|
+
"provider_gemini": "Google Gemini Imagen",
|
|
146
|
+
"provider_qwen": "Qwen (Alibaba)",
|
|
147
|
+
"provider_doubao": "Doubao (ByteDance)"
|
|
148
|
+
},
|
|
149
|
+
"commands": {
|
|
150
|
+
"write": "Escribir",
|
|
151
|
+
"write_desc": "Escribir contenido basado en su indicación",
|
|
152
|
+
"continue": "Continuar escribiendo",
|
|
153
|
+
"continue_desc": "Continuar desde donde se detuvo el texto",
|
|
154
|
+
"summarize": "Resumir",
|
|
155
|
+
"summarize_desc": "Resumir el texto seleccionado",
|
|
156
|
+
"translate": "Traducir",
|
|
157
|
+
"translate_desc": "Traducir texto a otro idioma",
|
|
158
|
+
"improve": "Mejorar",
|
|
159
|
+
"improve_desc": "Mejorar la calidad de la escritura",
|
|
160
|
+
"fix_grammar": "Corregir gramática",
|
|
161
|
+
"fix_grammar_desc": "Corregir errores gramaticales y ortográficos",
|
|
162
|
+
"simplify": "Simplificar",
|
|
163
|
+
"simplify_desc": "Simplificar texto complejo",
|
|
164
|
+
"expand": "Expandir",
|
|
165
|
+
"expand_desc": "Ampliar sobre el tema",
|
|
166
|
+
"outline": "Generar esquema",
|
|
167
|
+
"outline_desc": "Generar un esquema del artículo",
|
|
168
|
+
"explain": "Explicar",
|
|
169
|
+
"explain_desc": "Explicar el texto seleccionado"
|
|
170
|
+
},
|
|
171
|
+
"prompts": {
|
|
172
|
+
"empty_response": "Ha devuelto una respuesta vacía. Por favor continúe la tarea: realice las llamadas a herramientas necesarias o resuma lo que se ha completado y enumere los elementos pendientes. No devuelva un mensaje vacío.",
|
|
173
|
+
"empty_response_continue": "\n\nSu último mensaje fue: \"{lastMessage}\"\nPor favor continúe desde allí.",
|
|
174
|
+
"truncation_continue": "Su respuesta anterior fue cortada debido a los límites de longitud de salida. El texto anterior ha sido guardado. Ahora por favor complete la tarea realizando las llamadas a herramientas necesarias. No repita el contenido — úselo directamente en los argumentos de la herramienta.",
|
|
175
|
+
"continuation_prompt": "Por favor continúe y realice las llamadas a herramientas necesarias para completar la tarea. No repita lo que ya se ha dicho — proceda directamente con las llamadas a herramientas.",
|
|
176
|
+
"mcp_tool_prompt": "Use la herramienta {toolName} (de {serverName})",
|
|
177
|
+
"review_context": "---\nThis document has {count} pending review comments:\n{items}\n---",
|
|
178
|
+
"review_context_item": "[Line {line}] @{author}: \"{text}\"",
|
|
179
|
+
"review_context_item_unanchored": "[Position lost] @{author}: \"{text}\"",
|
|
180
|
+
"ai_review_request": "Please review the current document and identify issues across four dimensions: logic, expression, fact, and structure. Use the write_ai_reviews tool to return up to 10 structured review comments. For each, provide markedText (an exact text fragment from the document being reviewed), comment (your review), and dimension (one of: logic, expression, fact, structure). If your model does not support tool calls, return the same data as a JSON code block.",
|
|
181
|
+
"ai_improve_request": "The document has {count} pending review comments:\n{items}\n\nPlease apply these reviews and improve the document. Use the update_editor_content tool to write the improved full document. Preserve formatting and original structure where possible.",
|
|
182
|
+
"ai_summary_request": "The document has {count} review comments (including resolved):\n{items}\n\nPlease summarize them across four dimensions (logic / expression / fact / structure), and rate the priority (high / medium / low) for each dimension.",
|
|
183
|
+
"ai_respond_request": "The document contains this text:\n\"{markedText}\"\n\nThe reviewer commented:\n\"{commentText}\"\n\nPlease provide specific suggestions for revision. Do NOT modify the document — give suggestions only."
|
|
184
|
+
},
|
|
185
|
+
"detection": {
|
|
186
|
+
"intent_prefixes": "Voy a|Necesito|Debo|Déjame|Primero|Ahora|A continuación",
|
|
187
|
+
"action_verbs": "crear|escribir|leer|actualizar|subir|generar|obtener|verificar|probar|usar|ejecutar|enviar|buscar|encontrar|guardar|eliminar|editar|configurar|exportar|mostrar",
|
|
188
|
+
"continuation_phrases": "Primero|Luego|Después|Ahora",
|
|
189
|
+
"remaining_phrases": "restante|siguiente|paso \\d+",
|
|
190
|
+
"unfinished_phrases": "por hacer|TODO|siguiente paso|aún no|pendiente"
|
|
191
|
+
},
|
|
192
|
+
"sections": {
|
|
193
|
+
"image_ai": "IA de imágenes",
|
|
194
|
+
"image_aihint": "Configuraciones del modelo de generación de imágenes con IA."
|
|
195
|
+
},
|
|
196
|
+
"generating": "Generando…",
|
|
197
|
+
"not_configured": "Proveedor de IA no configurado"
|
|
198
|
+
},
|
|
199
|
+
"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.",
|
|
208
|
+
"zero_unlimited": "0 = unlimited",
|
|
209
|
+
"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",
|
|
215
|
+
"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."
|
|
218
|
+
},
|
|
219
|
+
"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"
|
|
234
|
+
},
|
|
235
|
+
"app": {
|
|
236
|
+
"__mt": true,
|
|
237
|
+
"name": "Moraya Web",
|
|
238
|
+
"tagline": "Your AI, your data, your cloud."
|
|
239
|
+
},
|
|
240
|
+
"audit": {
|
|
241
|
+
"report_title": "Document Audit Report: {filename}",
|
|
242
|
+
"generated_at": "Generated at",
|
|
243
|
+
"knowledge_base": "Knowledge base",
|
|
244
|
+
"git_repo": "Git repository",
|
|
245
|
+
"branch": "branch",
|
|
246
|
+
"commit_history": "Commit History",
|
|
247
|
+
"col_time": "Time",
|
|
248
|
+
"col_author": "Author",
|
|
249
|
+
"col_summary": "Summary",
|
|
250
|
+
"review_summary": "Review Summary",
|
|
251
|
+
"summary_stats": "Total {total} review(s); {resolved} resolved, {wontfix} won't fix, {open} open",
|
|
252
|
+
"resolved_section": "Resolved ({count})",
|
|
253
|
+
"wontfix_section": "Won't Fix ({count})",
|
|
254
|
+
"open_section": "Open ({count})",
|
|
255
|
+
"resolved_note": "resolved at {date} by {user}",
|
|
256
|
+
"wontfix_note": "marked won't fix at {date} by {user}",
|
|
257
|
+
"no_reviews": "No reviews recorded",
|
|
258
|
+
"showing_last_commits": "(Showing only the last {count} commits)",
|
|
259
|
+
"not_git_bound": "Not linked to a Git repository",
|
|
260
|
+
"line_n": "Line {n}",
|
|
261
|
+
"unanchored_label": "Position lost",
|
|
262
|
+
"export_dialog_title": "Export Audit Report",
|
|
263
|
+
"export_filename": "Filename",
|
|
264
|
+
"export_format": "Format",
|
|
265
|
+
"format_markdown": "Markdown (.md)",
|
|
266
|
+
"include_history": "Commit history (last {count} commits)",
|
|
267
|
+
"include_reviews": "Review summary ({total} reviews, {resolved} resolved)",
|
|
268
|
+
"anonymize_authors": "Anonymize authors (@{name} → @reviewer-1)",
|
|
269
|
+
"include_full_discussion": "Include full review discussion (default: summary only)",
|
|
270
|
+
"privacy_notice": "The report will be saved locally. No data is sent to any external service.",
|
|
271
|
+
"cancel": "Cancel",
|
|
272
|
+
"save": "Save…",
|
|
273
|
+
"title": "Audit Log",
|
|
274
|
+
"events": "events",
|
|
275
|
+
"verify_integrity": "Verify Integrity",
|
|
276
|
+
"chain_valid": "Chain Valid",
|
|
277
|
+
"chain_invalid": "Chain Broken",
|
|
278
|
+
"no_events": "No audit events found.",
|
|
279
|
+
"loading": "Loading audit log…"
|
|
280
|
+
},
|
|
281
|
+
"auth": {
|
|
282
|
+
"__mt": true,
|
|
283
|
+
"login": "Sign in with Picora",
|
|
284
|
+
"logout": "Sign out",
|
|
285
|
+
"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."
|
|
293
|
+
},
|
|
294
|
+
"billing": {
|
|
295
|
+
"__mt": true,
|
|
296
|
+
"title": "Billing",
|
|
297
|
+
"current_plan": "Current Plan",
|
|
298
|
+
"upgrade_title": "Upgrade Your Plan",
|
|
299
|
+
"upgrade_subtitle": "Get more AI calls, unlimited storage, and premium features.",
|
|
300
|
+
"downgrade_title": "Downgrade Plan",
|
|
301
|
+
"downgrade_subtitle": "You can choose to downgrade effective immediately or at the end of your billing period.",
|
|
302
|
+
"cancel_title": "Cancel Subscription",
|
|
303
|
+
"cancel_subtitle": "We're sorry to see you go. You can cancel effective immediately or at the end of your billing period.",
|
|
304
|
+
"plan_personal": "Personal",
|
|
305
|
+
"plan_team": "Team",
|
|
306
|
+
"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",
|
|
316
|
+
"effective_immediate": "Effective immediately",
|
|
317
|
+
"effective_period_end": "At the end of the billing period",
|
|
318
|
+
"cancel_confirm": "I understand my subscription will end",
|
|
319
|
+
"downgrade_confirm": "I understand I may lose access to some features",
|
|
320
|
+
"confirm_cancel": "Cancel Subscription",
|
|
321
|
+
"confirm_downgrade": "Confirm Downgrade",
|
|
322
|
+
"refund_title": "Request Refund",
|
|
323
|
+
"refund_14day": "As a first-time subscriber within 14 days, you qualify for an automatic refund.",
|
|
324
|
+
"refund_request": "Request Refund",
|
|
325
|
+
"refund_pending": "Refund request submitted. Our team will review it.",
|
|
326
|
+
"back_to_billing": "Back to Billing",
|
|
327
|
+
"loading": "Loading...",
|
|
328
|
+
"error": "Something went wrong. Please try again.",
|
|
329
|
+
"checkout_redirect": "Redirecting to checkout...",
|
|
330
|
+
"alipay_scan": "Scan with Alipay app to complete payment",
|
|
331
|
+
"devices_title": "Manage Devices",
|
|
332
|
+
"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.",
|
|
338
|
+
"usage_ai_calls": "AI Calls",
|
|
339
|
+
"usage_kbs": "Knowledge Bases",
|
|
340
|
+
"usage_devices": "Devices",
|
|
341
|
+
"usage_of": "{used} of {limit}",
|
|
342
|
+
"upgrade_prompt_ai": "You've used {used}/{limit} AI calls this month.",
|
|
343
|
+
"upgrade_prompt_kb": "You've reached your KB limit ({limit}).",
|
|
344
|
+
"upgrade_now": "Upgrade Now",
|
|
345
|
+
"plan_features_personal": "Unlimited KBs, 2000 AI calls/month, BYO API key, E2E encryption, BYOC storage",
|
|
346
|
+
"plan_features_team": "Everything in Personal, team collaboration, 5000 AI calls/month, Cloud KMS",
|
|
347
|
+
"currency_usd": "USD ($)",
|
|
348
|
+
"currency_cny": "CNY (¥)",
|
|
349
|
+
"currency_eur": "EUR (€)",
|
|
350
|
+
"change_currency": "Change currency"
|
|
351
|
+
},
|
|
352
|
+
"cloud_picker": {
|
|
353
|
+
"title_image": "Insertar imagen en la nube",
|
|
354
|
+
"title_audio": "Insertar audio en la nube",
|
|
355
|
+
"title_video": "Insertar vídeo en la nube",
|
|
356
|
+
"no_targets": "No hay destino Picora configurado. Añada uno en Ajustes → Base de conocimiento.",
|
|
357
|
+
"scope_this_kb": "Esta base de conocimiento",
|
|
358
|
+
"scope_all": "Todos los archivos",
|
|
359
|
+
"scope_no_kb": "Sin base de conocimiento",
|
|
360
|
+
"tab_recent": "Recientes",
|
|
361
|
+
"tab_all": "Todos",
|
|
362
|
+
"tab_favorites": "Favoritos",
|
|
363
|
+
"search_placeholder": "Buscar…",
|
|
364
|
+
"grid_view": "Vista de cuadrícula",
|
|
365
|
+
"list_view": "Vista de lista",
|
|
366
|
+
"error_title": "Error al cargar",
|
|
367
|
+
"last_cache": "Última carga",
|
|
368
|
+
"empty_title": "No se encontraron archivos",
|
|
369
|
+
"empty_sub": "Ajuste los filtros o suba archivos a Picora.",
|
|
370
|
+
"loading_more": "Cargando…",
|
|
371
|
+
"selected_count": "{n} seleccionado(s)",
|
|
372
|
+
"insert_as_html": "Insertar como HTML",
|
|
373
|
+
"insert_btn": "Insertar",
|
|
374
|
+
"processing": "Procesando",
|
|
375
|
+
"public": "Público",
|
|
376
|
+
"private": "Privado",
|
|
377
|
+
"favorite": "Favorito",
|
|
378
|
+
"copy_url": "Copiar URL",
|
|
379
|
+
"privacy_title": "Archivos privados seleccionados",
|
|
380
|
+
"privacy_desc": "{n} archivo(s) son privados y pueden no ser visibles públicamente.",
|
|
381
|
+
"privacy_warn": "Hacer los archivos públicos permitirá que cualquiera con el enlace los vea.",
|
|
382
|
+
"suppress_privacy": "No volver a advertir",
|
|
383
|
+
"make_public_insert": "Hacer público e insertar",
|
|
384
|
+
"insert_anyway": "Insertar de todos modos",
|
|
385
|
+
"copy_markdown": "Copiar Markdown",
|
|
386
|
+
"empty_kb_scoped_sub": "No hay archivos en la KB actual. Las cargas anteriores pueden no estar etiquetadas con esta KB.",
|
|
387
|
+
"switch_scope_all": "Mostrar todos los archivos",
|
|
388
|
+
"url_missing": "Falta la URL del medio — el elemento puede no estar listo aún."
|
|
389
|
+
},
|
|
390
|
+
"command_palette": {
|
|
391
|
+
"placeholder": "Buscar archivos, comandos o base de conocimientos...",
|
|
392
|
+
"files": "Archivos",
|
|
393
|
+
"commands": "Comandos",
|
|
394
|
+
"semantic_search": "Búsqueda semántica",
|
|
395
|
+
"keyword_search": "Búsqueda por palabras clave",
|
|
396
|
+
"no_results": "No se encontraron resultados"
|
|
397
|
+
},
|
|
398
|
+
"commands": {
|
|
399
|
+
"__mt": true,
|
|
400
|
+
"palette_title": "Command Palette",
|
|
401
|
+
"placeholder": "Search commands...",
|
|
402
|
+
"no_results": "No commands found",
|
|
403
|
+
"type_to_search": "Type to search commands",
|
|
404
|
+
"go_home": "Go to Home",
|
|
405
|
+
"open_settings": "Open Settings",
|
|
406
|
+
"open_workflows": "Open Workflows",
|
|
407
|
+
"toggle_sidebar": "Toggle Sidebar",
|
|
408
|
+
"sidebar_kb": "Sidebar: Knowledge Bases",
|
|
409
|
+
"sidebar_explorer": "Sidebar: Files",
|
|
410
|
+
"sidebar_outline": "Sidebar: Outline"
|
|
411
|
+
},
|
|
412
|
+
"common": {
|
|
413
|
+
"save": "Guardar",
|
|
414
|
+
"cancel": "Cancelar",
|
|
415
|
+
"close": "Cerrar",
|
|
416
|
+
"add": "Agregar",
|
|
417
|
+
"remove": "Eliminar",
|
|
418
|
+
"connect": "Conectar",
|
|
419
|
+
"disconnect": "Desconectar",
|
|
420
|
+
"insert": "Insertar",
|
|
421
|
+
"replace": "Reemplazar",
|
|
422
|
+
"copy": "Copiar",
|
|
423
|
+
"edit": "Editar",
|
|
424
|
+
"delete": "Eliminar",
|
|
425
|
+
"browse": "Cambiar",
|
|
426
|
+
"clear": "Restablecer",
|
|
427
|
+
"play": "Reproducir",
|
|
428
|
+
"stop": "Detener",
|
|
429
|
+
"start": "Iniciar",
|
|
430
|
+
"untitled": "Sin título",
|
|
431
|
+
"retry": "Reintentar",
|
|
432
|
+
"refresh": "Actualizar",
|
|
433
|
+
"new": "Nuevo"
|
|
434
|
+
},
|
|
435
|
+
"compose": {
|
|
436
|
+
"__mt": true,
|
|
437
|
+
"title": "Compose article",
|
|
438
|
+
"start_over": "Start over",
|
|
439
|
+
"stepper_label": "Compose stages",
|
|
440
|
+
"step": {
|
|
441
|
+
"topic": "Topic",
|
|
442
|
+
"article": "Article",
|
|
443
|
+
"cover": "Cover",
|
|
444
|
+
"review": "Review"
|
|
445
|
+
},
|
|
446
|
+
"topic": {
|
|
447
|
+
"title": "What's the article about?",
|
|
448
|
+
"hint": "Describe the topic, audience, key points — the more specific, the better.",
|
|
449
|
+
"placeholder": "e.g. A deep dive on why Rust's async model handles backpressure better than Go's…",
|
|
450
|
+
"next": "Next: write article →"
|
|
451
|
+
},
|
|
452
|
+
"tone": {
|
|
453
|
+
"title": "Tone",
|
|
454
|
+
"general": "General",
|
|
455
|
+
"marketing": "Marketing",
|
|
456
|
+
"technical": "Technical",
|
|
457
|
+
"story": "Story"
|
|
458
|
+
},
|
|
459
|
+
"length": {
|
|
460
|
+
"title": "Length",
|
|
461
|
+
"short": "Short",
|
|
462
|
+
"medium": "Medium",
|
|
463
|
+
"long": "Long"
|
|
464
|
+
},
|
|
465
|
+
"article": {
|
|
466
|
+
"title": "Write the article",
|
|
467
|
+
"ready": "Ready to generate. Tap below to stream the article.",
|
|
468
|
+
"generate": "Generate article",
|
|
469
|
+
"generating": "Streaming from the model…",
|
|
470
|
+
"cancel": "Stop",
|
|
471
|
+
"regenerate": "Regenerate",
|
|
472
|
+
"next": "Next: cover image →",
|
|
473
|
+
"no_provider": "No AI provider configured. Set one up to generate articles.",
|
|
474
|
+
"configure": "Configure AI provider"
|
|
475
|
+
},
|
|
476
|
+
"cover": {
|
|
477
|
+
"title": "Cover image",
|
|
478
|
+
"prompt_hint": "This prompt was auto-derived from your article. Edit if you want a specific look.",
|
|
479
|
+
"prompt_placeholder": "Cover illustration for: ...",
|
|
480
|
+
"generate": "Generate cover",
|
|
481
|
+
"generating": "Generating…",
|
|
482
|
+
"next": "Next: review →",
|
|
483
|
+
"preview_alt": "Cover image preview",
|
|
484
|
+
"no_provider": "No image generation provider configured. Set one up to make cover images.",
|
|
485
|
+
"configure": "Configure image-gen provider",
|
|
486
|
+
"style": "Style"
|
|
487
|
+
},
|
|
488
|
+
"review": {
|
|
489
|
+
"title": "Review & publish",
|
|
490
|
+
"publish_hint": "Insert into a note, or set up an MCP publish target to send this article to WeChat / RSS / custom platforms.",
|
|
491
|
+
"insert": "Insert into note",
|
|
492
|
+
"configure_publish": "Configure publish target",
|
|
493
|
+
"uploading": "Uploading cover…",
|
|
494
|
+
"cover_upload_failed": "Cover upload failed — inserting without it.",
|
|
495
|
+
"insert_failed": "Insert failed: {err}"
|
|
496
|
+
},
|
|
497
|
+
"publish": {
|
|
498
|
+
"send": "Send to…",
|
|
499
|
+
"opening": "Preparing…",
|
|
500
|
+
"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}"
|
|
505
|
+
},
|
|
506
|
+
"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"
|
|
513
|
+
}
|
|
514
|
+
},
|
|
515
|
+
"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"
|
|
522
|
+
},
|
|
523
|
+
"context_menu": {
|
|
524
|
+
"cut": "Cortar",
|
|
525
|
+
"copy": "Copiar",
|
|
526
|
+
"paste": "Pegar",
|
|
527
|
+
"upload_all_images": "Subir todas las imágenes al alojamiento",
|
|
528
|
+
"upload_starting": "Subiendo imágenes al alojamiento...",
|
|
529
|
+
"upload_image_success": "Subida exitosa: {name}",
|
|
530
|
+
"upload_image_failed": "Error al subir: {name} — {error}",
|
|
531
|
+
"upload_all_complete": "Subida completa: {success}/{total} exitosas",
|
|
532
|
+
"upload_no_config": "Por favor, configure un alojamiento de imágenes en Ajustes primero",
|
|
533
|
+
"insert_cloud_image": "Insertar imagen en la nube…",
|
|
534
|
+
"insert_cloud_audio": "Insertar audio en la nube…",
|
|
535
|
+
"insert_cloud_video": "Insertar vídeo en la nube…"
|
|
536
|
+
},
|
|
537
|
+
"diff": {
|
|
538
|
+
"title": "{filename} · {hash1} ↔ {hash2}",
|
|
539
|
+
"back_to_edit": "← Back to Edit",
|
|
540
|
+
"no_changes": "The two versions are identical — no differences",
|
|
541
|
+
"binary_file": "This version contains binary content and cannot be displayed as text diff",
|
|
542
|
+
"added_line": "Added line",
|
|
543
|
+
"deleted_line": "Deleted line",
|
|
544
|
+
"stats_line": "+{added} added · -{deleted} deleted",
|
|
545
|
+
"left_label": "Old",
|
|
546
|
+
"right_label": "New"
|
|
547
|
+
},
|
|
548
|
+
"editor": {
|
|
549
|
+
"source_mode": "Source",
|
|
550
|
+
"visual_mode": "Visual",
|
|
551
|
+
"split_mode": "Split",
|
|
552
|
+
"unsaved_title": "Cambios sin guardar",
|
|
553
|
+
"unsaved_new_doc_msg": "Tiene contenido sin guardar que se perderá. ¿Desea guardarlo primero?",
|
|
554
|
+
"save_first": "Guardar",
|
|
555
|
+
"discard_changes": "No guardar",
|
|
556
|
+
"loading": {
|
|
557
|
+
"parsing": "Analizando markdown…",
|
|
558
|
+
"rendering": "Renderizando…"
|
|
559
|
+
},
|
|
560
|
+
"saving": "Saving...",
|
|
561
|
+
"saved": "Saved",
|
|
562
|
+
"offline_cached": "Saved offline",
|
|
563
|
+
"conflict": "Conflict detected",
|
|
564
|
+
"unsaved_changes": "You have unsaved changes. Discard?",
|
|
565
|
+
"discard": "Discard",
|
|
566
|
+
"cancel": "Cancel",
|
|
567
|
+
"words": "words",
|
|
568
|
+
"chars": "chars",
|
|
569
|
+
"new_note": "New note"
|
|
570
|
+
},
|
|
571
|
+
"enterprise": {
|
|
572
|
+
"__mt": true,
|
|
573
|
+
"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.",
|
|
577
|
+
"providers": {
|
|
578
|
+
"aws": "AWS CloudHSM",
|
|
579
|
+
"aliyun": "Aliyun HSM",
|
|
580
|
+
"pkcs11": "PKCS#11 (Generic)"
|
|
581
|
+
},
|
|
582
|
+
"aws": {
|
|
583
|
+
"cluster_id": "Cluster ID",
|
|
584
|
+
"region": "AWS Region"
|
|
585
|
+
},
|
|
586
|
+
"aliyun": {
|
|
587
|
+
"instance_id": "Instance ID",
|
|
588
|
+
"region": "Region"
|
|
589
|
+
},
|
|
590
|
+
"pkcs11": {
|
|
591
|
+
"lib_path": "Library Path (.so / .dll / .dylib)",
|
|
592
|
+
"slot": "Slot ID",
|
|
593
|
+
"supported_mechanisms": "Supported Mechanisms"
|
|
594
|
+
}
|
|
595
|
+
},
|
|
596
|
+
"orgs": {
|
|
597
|
+
"title": "Multi-Organization Management",
|
|
598
|
+
"subtitle": "Manage seat allocation and cross-org knowledge sharing",
|
|
599
|
+
"upgrade_required": "Multi-org management requires the Enterprise plan.",
|
|
600
|
+
"seat_allocation": "Seat Allocation",
|
|
601
|
+
"total_seats": "Total Seats",
|
|
602
|
+
"allocated": "Allocated",
|
|
603
|
+
"unallocated": "Unallocated",
|
|
604
|
+
"org_list": "Organizations",
|
|
605
|
+
"members": "Members",
|
|
606
|
+
"cross_org_sharing": "Cross-Org Sharing",
|
|
607
|
+
"shares_to": "shares KBs to",
|
|
608
|
+
"kb_ids_placeholder": "kb-1, kb-2, ...",
|
|
609
|
+
"request_share": "Request Share"
|
|
610
|
+
},
|
|
611
|
+
"compliance": {
|
|
612
|
+
"title": "Compliance & Archiving",
|
|
613
|
+
"subtitle": "GDPR, HIPAA, SOC2, ISO 27001 compliance exports and WORM archiving",
|
|
614
|
+
"upgrade_required": "Compliance archiving requires the Enterprise plan.",
|
|
615
|
+
"tabs": {
|
|
616
|
+
"retention": "Retention",
|
|
617
|
+
"worm": "WORM",
|
|
618
|
+
"export": "Export"
|
|
619
|
+
},
|
|
620
|
+
"retention": {
|
|
621
|
+
"title": "7-Year Retention",
|
|
622
|
+
"hint": "Records are retained for 7 years and cannot be deleted during this period.",
|
|
623
|
+
"days_left": "days left",
|
|
624
|
+
"years": "years"
|
|
625
|
+
},
|
|
626
|
+
"worm": {
|
|
627
|
+
"title": "WORM Records",
|
|
628
|
+
"description": "Write-Once-Read-Many records are immutable once created.",
|
|
629
|
+
"immutable_label": "Immutable",
|
|
630
|
+
"immutable_desc": "Records cannot be modified or deleted after creation.",
|
|
631
|
+
"retention_years": "Retention Period"
|
|
632
|
+
},
|
|
633
|
+
"export": {
|
|
634
|
+
"title": "Compliance Export",
|
|
635
|
+
"standard": "Standard",
|
|
636
|
+
"format": "Format",
|
|
637
|
+
"generate": "Generate Export",
|
|
638
|
+
"applicable_events": "Applicable audit events"
|
|
639
|
+
}
|
|
640
|
+
},
|
|
641
|
+
"custom_domain": {
|
|
642
|
+
"title": "Custom Domain",
|
|
643
|
+
"subtitle": "Use your own domain name for the Moraya workspace.",
|
|
644
|
+
"upgrade_required": "Custom domain requires the Enterprise plan.",
|
|
645
|
+
"hostname": "Your Domain",
|
|
646
|
+
"cname_target": "CNAME Target",
|
|
647
|
+
"dns_record": "DNS Record to Add",
|
|
648
|
+
"dns_hint": "Add this CNAME record to your DNS provider and wait for propagation (up to 48h).",
|
|
649
|
+
"save": "Save & Verify",
|
|
650
|
+
"verifying_hint": "Verification in progress. DNS propagation may take up to 48 hours."
|
|
651
|
+
},
|
|
652
|
+
"custom_ai": {
|
|
653
|
+
"title": "Custom AI Endpoint",
|
|
654
|
+
"subtitle": "Connect your own OpenAI-compatible LLM endpoint.",
|
|
655
|
+
"upgrade_required": "Custom AI endpoints require the Enterprise plan.",
|
|
656
|
+
"add_provider": "Add Provider",
|
|
657
|
+
"provider_name": "Provider Name",
|
|
658
|
+
"base_url": "Base URL",
|
|
659
|
+
"api_key_ref": "API Key Reference (Keychain ID)",
|
|
660
|
+
"models_csv": "Models (comma-separated)",
|
|
661
|
+
"add": "Add Provider",
|
|
662
|
+
"saved_providers": "Saved Providers",
|
|
663
|
+
"context_window": "Context window",
|
|
664
|
+
"models": "models",
|
|
665
|
+
"openai_compatible": "OpenAI-compatible",
|
|
666
|
+
"custom_format": "Custom format"
|
|
667
|
+
},
|
|
668
|
+
"data_residency": {
|
|
669
|
+
"title": "Data Residency",
|
|
670
|
+
"subtitle": "Control where your organization's data is stored and processed.",
|
|
671
|
+
"upgrade_required": "Data residency control requires the Enterprise plan.",
|
|
672
|
+
"primary_region": "Primary Region",
|
|
673
|
+
"allowed_regions": "Allowed Regions",
|
|
674
|
+
"restrict_cross_region": "Restrict cross-region data transfers",
|
|
675
|
+
"filter_by_compliance": "Filter by Compliance Standard",
|
|
676
|
+
"all": "All",
|
|
677
|
+
"requirements": "Legal Requirements",
|
|
678
|
+
"save_policy": "Save Policy",
|
|
679
|
+
"policy_saved": "Policy saved"
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
"entitlement": {
|
|
683
|
+
"__mt": true,
|
|
684
|
+
"connect": "Connect",
|
|
685
|
+
"personal": "Personal",
|
|
686
|
+
"team": "Team",
|
|
687
|
+
"enterprise": "Enterprise",
|
|
688
|
+
"current_plan": "Current plan",
|
|
689
|
+
"upgrade": "Upgrade"
|
|
690
|
+
},
|
|
691
|
+
"errors": {
|
|
692
|
+
"ai_not_configured": "La IA no está configurada.",
|
|
693
|
+
"ai_request_failed": "Solicitud de IA fallida",
|
|
694
|
+
"chat_request_failed": "Solicitud de chat fallida",
|
|
695
|
+
"unknown_command": "Comando de IA desconocido: {command}",
|
|
696
|
+
"auth": {
|
|
697
|
+
"picora_token_expired": "Session expired. Please sign in again.",
|
|
698
|
+
"picora_plan_expired": "Your Picora plan has expired. Please renew or upgrade.",
|
|
699
|
+
"oauth_state_missing": "Login session not found. Please try again.",
|
|
700
|
+
"csrf_state_mismatch": "Security check failed. Please try again."
|
|
701
|
+
},
|
|
702
|
+
"storage": {
|
|
703
|
+
"network_offline": "You're offline. Changes saved locally.",
|
|
704
|
+
"conflict_detected": "Someone else edited this note. Please resolve the conflict.",
|
|
705
|
+
"not_found": "Note not found.",
|
|
706
|
+
"access_denied": "Access denied.",
|
|
707
|
+
"too_large": "File is too large.",
|
|
708
|
+
"quota_exceeded": "Storage quota exceeded.",
|
|
709
|
+
"rate_limited": "Too many requests. Please wait.",
|
|
710
|
+
"server_error": "Server error. Please try again."
|
|
711
|
+
},
|
|
712
|
+
"editor": {
|
|
713
|
+
"mount_failed": "Editor failed to load. Please refresh the page."
|
|
714
|
+
},
|
|
715
|
+
"browser": {
|
|
716
|
+
"unsupported": "Your browser is not supported. Please use Chrome 96+, Firefox 95+, or Safari 14+."
|
|
717
|
+
},
|
|
718
|
+
"internal": {
|
|
719
|
+
"unknown": "An unexpected error occurred."
|
|
720
|
+
},
|
|
721
|
+
"ai": {
|
|
722
|
+
"e2e_proxy_blocked": "Moraya proxy AI is not available in E2E mode. Please use your own API key.",
|
|
723
|
+
"e2e_rag_blocked": "Server-side RAG requires Cloud KMS mode."
|
|
724
|
+
},
|
|
725
|
+
"kms": {
|
|
726
|
+
"gcp_not_implemented": "GCP KMS is not yet supported."
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
"explorer": {
|
|
730
|
+
"__mt": true,
|
|
731
|
+
"title": "Files",
|
|
732
|
+
"filter_placeholder": "Filter notes...",
|
|
733
|
+
"empty": "No notes yet",
|
|
734
|
+
"no_results": "No matching notes",
|
|
735
|
+
"new_note": "New note",
|
|
736
|
+
"new_folder": "New folder",
|
|
737
|
+
"rename": "Rename",
|
|
738
|
+
"delete": "Delete",
|
|
739
|
+
"favorite": "Add to favorites",
|
|
740
|
+
"unfavorite": "Remove from favorites",
|
|
741
|
+
"context_menu": "File options",
|
|
742
|
+
"tags": "Tags",
|
|
743
|
+
"no_tags": "No tags found",
|
|
744
|
+
"untagged": "Untagged"
|
|
745
|
+
},
|
|
746
|
+
"export": {
|
|
747
|
+
"export_as": "Exportar como {format}",
|
|
748
|
+
"pdf": "PDF",
|
|
749
|
+
"html": "HTML (con estilos)",
|
|
750
|
+
"html_plain": "HTML (sin estilos)",
|
|
751
|
+
"image": "Imagen (PNG)",
|
|
752
|
+
"doc": "Word (.doc)",
|
|
753
|
+
"rtf": "RTF",
|
|
754
|
+
"epub": "Epub",
|
|
755
|
+
"latex": "LaTeX",
|
|
756
|
+
"mediawiki": "MediaWiki",
|
|
757
|
+
"rst": "reStructuredText",
|
|
758
|
+
"textile": "Textile",
|
|
759
|
+
"opml": "OPML",
|
|
760
|
+
"progress": {
|
|
761
|
+
"preparing": "Preparando...",
|
|
762
|
+
"rendering": "Renderizando...",
|
|
763
|
+
"paginating": "Paginando ({current}/{total})",
|
|
764
|
+
"writing": "Escribiendo...",
|
|
765
|
+
"done": "Hecho"
|
|
766
|
+
},
|
|
767
|
+
"fallback": {
|
|
768
|
+
"notice": "Modo compat."
|
|
769
|
+
},
|
|
770
|
+
"error": {
|
|
771
|
+
"generic": "Exportación fallida",
|
|
772
|
+
"timeout": "Tiempo de exportación agotado",
|
|
773
|
+
"subprocess_failed": "Falló el subproceso",
|
|
774
|
+
"native_api_failed": "Falló la impresión nativa"
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"fulltext_search": {
|
|
778
|
+
"__mt": true,
|
|
779
|
+
"title": "Hybrid Search",
|
|
780
|
+
"placeholder": "Search notes, memories, workflows...",
|
|
781
|
+
"clear": "Clear",
|
|
782
|
+
"filters": "Filters",
|
|
783
|
+
"filter_time": "Time",
|
|
784
|
+
"filter_source": "Source",
|
|
785
|
+
"filter_tags": "Tags",
|
|
786
|
+
"time_all": "All time",
|
|
787
|
+
"time_today": "Today",
|
|
788
|
+
"time_7d": "Last 7 days",
|
|
789
|
+
"time_30d": "Last 30 days",
|
|
790
|
+
"time_90d": "Last 90 days",
|
|
791
|
+
"source_all": "All sources",
|
|
792
|
+
"source_note": "Notes",
|
|
793
|
+
"source_memory": "Memory",
|
|
794
|
+
"source_workflow": "Workflows",
|
|
795
|
+
"cross_kb_hint": "Upgrade for cross-KB search",
|
|
796
|
+
"tab_results": "Results",
|
|
797
|
+
"tab_history": "History",
|
|
798
|
+
"tab_saved": "Saved",
|
|
799
|
+
"save_search": "Save search",
|
|
800
|
+
"save_name_prompt": "Name this saved search",
|
|
801
|
+
"searching": "Searching...",
|
|
802
|
+
"no_results": "No results found",
|
|
803
|
+
"start_typing": "Type to search",
|
|
804
|
+
"history_empty": "No search history",
|
|
805
|
+
"saved_empty": "No saved searches",
|
|
806
|
+
"clear_history": "Clear history",
|
|
807
|
+
"hint_navigate": "Navigate",
|
|
808
|
+
"hint_open": "Open",
|
|
809
|
+
"hint_close": "Close"
|
|
810
|
+
},
|
|
811
|
+
"git": {
|
|
812
|
+
"bind_title": "Vincular repositorio Git",
|
|
813
|
+
"repo_url": "URL del repositorio",
|
|
814
|
+
"branch": "Rama",
|
|
815
|
+
"token": "Token de acceso personal",
|
|
816
|
+
"token_hint": "Token de acceso personal o clave API. Almacenado de forma segura en el llavero del SO.",
|
|
817
|
+
"auth_method": "Método de autenticación",
|
|
818
|
+
"auth_token": "Token de acceso",
|
|
819
|
+
"auth_password": "Usuario y contraseña",
|
|
820
|
+
"auth_ssh": "Clave SSH",
|
|
821
|
+
"username": "Usuario",
|
|
822
|
+
"password": "Contraseña",
|
|
823
|
+
"ssh_key_path": "Ruta de la clave SSH privada",
|
|
824
|
+
"ssh_passphrase": "Contraseña de clave SSH",
|
|
825
|
+
"ssh_key_path_hint": "Ruta absoluta a tu clave SSH privada (p.ej. ~/.ssh/id_ed25519)",
|
|
826
|
+
"ssh_passphrase_hint": "Dejar vacío si la clave no tiene contraseña",
|
|
827
|
+
"error_username_required": "El nombre de usuario es obligatorio",
|
|
828
|
+
"error_password_required": "La contraseña es obligatoria",
|
|
829
|
+
"error_ssh_key_required": "La ruta de la clave SSH es obligatoria",
|
|
830
|
+
"mode_clone": "Clonar en directorio local",
|
|
831
|
+
"mode_push": "Enviar contenido local al remoto",
|
|
832
|
+
"mode_connect": "Conectar al repositorio existente",
|
|
833
|
+
"detecting": "Detectando...",
|
|
834
|
+
"auto_commit": "Commit automático al guardar",
|
|
835
|
+
"auto_sync": "Sincronización automática en segundo plano",
|
|
836
|
+
"sync_interval": "Intervalo de sincronización",
|
|
837
|
+
"minutes": "min",
|
|
838
|
+
"confirm_bind": "Vincular repositorio",
|
|
839
|
+
"error_url_required": "La URL del repositorio es obligatoria",
|
|
840
|
+
"error_token_required": "El token de acceso es obligatorio",
|
|
841
|
+
"bind": "Vincular repositorio Git",
|
|
842
|
+
"unbind": "Desvincular Git",
|
|
843
|
+
"unbind_title": "Desvincular repositorio Git",
|
|
844
|
+
"unbind_confirm": "¿Desvincular el repositorio Git de \"{name}\"? Los archivos locales se conservarán.",
|
|
845
|
+
"synced": "Sincronizado",
|
|
846
|
+
"ahead": "por enviar",
|
|
847
|
+
"behind": "por recibir",
|
|
848
|
+
"syncing": "Sincronizando...",
|
|
849
|
+
"committing": "Confirmando...",
|
|
850
|
+
"sync_error": "Error de sincronización",
|
|
851
|
+
"sync_now": "Sincronizar ahora",
|
|
852
|
+
"not_installed": "Git no instalado"
|
|
853
|
+
},
|
|
854
|
+
"history": {
|
|
855
|
+
"tab_label": "History",
|
|
856
|
+
"title": "Commit history of {filename}",
|
|
857
|
+
"export_btn": "Export",
|
|
858
|
+
"view_snapshot": "View Snapshot",
|
|
859
|
+
"compare_with_current": "Compare with Current",
|
|
860
|
+
"compare_with_prev": "Compare with Previous",
|
|
861
|
+
"back_to_list": "← Back to History",
|
|
862
|
+
"blame_toggle": "Show Author Tracking",
|
|
863
|
+
"blame_not_supported_visual": "Blame is only available in Source Mode. Press ⌘/ to switch.",
|
|
864
|
+
"blame_uncommitted": "uncommitted",
|
|
865
|
+
"loading": "Loading…",
|
|
866
|
+
"showing_last": "Showing the last {count} commits",
|
|
867
|
+
"renamed_from": "↪ from {oldPath}",
|
|
868
|
+
"empty": {
|
|
869
|
+
"no_git": "This knowledge base is not linked to Git",
|
|
870
|
+
"no_git_hint": "History requires Git sync support",
|
|
871
|
+
"no_git_action": "Link a Git repository",
|
|
872
|
+
"no_commits": "This file has no commit history yet",
|
|
873
|
+
"no_commits_hint": "Save and sync to Git to view history",
|
|
874
|
+
"no_commits_action": "Save and commit now",
|
|
875
|
+
"error": "Failed to load Git history",
|
|
876
|
+
"error_hint": "Please check repository status",
|
|
877
|
+
"error_retry": "Retry"
|
|
878
|
+
},
|
|
879
|
+
"snapshot": {
|
|
880
|
+
"label": "Snapshot @ {hash}",
|
|
881
|
+
"notice": "This is a historical snapshot (read-only)",
|
|
882
|
+
"copy": "Copy snapshot",
|
|
883
|
+
"compare": "Compare with Current",
|
|
884
|
+
"restore": "Restore this version",
|
|
885
|
+
"confirm_restore": "Restoring will replace the editor content with this snapshot. After saving, a new commit will be created. Continue?"
|
|
886
|
+
},
|
|
887
|
+
"dirty_confirm": "The current document has unsaved changes. Continue anyway?",
|
|
888
|
+
"continue_anyway": "Continue",
|
|
889
|
+
"save_first": "Save first",
|
|
890
|
+
"cancel": "Cancel",
|
|
891
|
+
"merge_blocked": "Repository is in the middle of a merge. Resolve conflicts first."
|
|
892
|
+
},
|
|
893
|
+
"image_ctx": {
|
|
894
|
+
"__mt": true,
|
|
895
|
+
"copy_url": "Copy URL",
|
|
896
|
+
"replace": "Replace Image",
|
|
897
|
+
"edit_alt": "Edit Alt Text",
|
|
898
|
+
"resize": "Resize",
|
|
899
|
+
"delete": "Delete Image",
|
|
900
|
+
"alt_label": "Alt Text",
|
|
901
|
+
"alt_placeholder": "Describe the image...",
|
|
902
|
+
"alt_hint": "Improves accessibility and SEO",
|
|
903
|
+
"save_alt": "Save"
|
|
904
|
+
},
|
|
905
|
+
"image_dialog": {
|
|
906
|
+
"title": "Insertar imagen",
|
|
907
|
+
"url_tab": "URL",
|
|
908
|
+
"file_tab": "Archivo local",
|
|
909
|
+
"url_placeholder": "https://ejemplo.com/imagen.png",
|
|
910
|
+
"alt_placeholder": "Descripción de la imagen (opcional)",
|
|
911
|
+
"select_file": "Seleccionar imagen...",
|
|
912
|
+
"no_file_selected": "Ningún archivo seleccionado",
|
|
913
|
+
"insert": "Insertar",
|
|
914
|
+
"cancel": "Cancelar"
|
|
915
|
+
},
|
|
916
|
+
"image_gen": {
|
|
917
|
+
"title": "Generación de imágenes con IA",
|
|
918
|
+
"step1_title": "Modo de imagen",
|
|
919
|
+
"step2_title": "Generar imágenes",
|
|
920
|
+
"step3_title": "Insertar en el artículo",
|
|
921
|
+
"generating_prompts": "Generando indicaciones...",
|
|
922
|
+
"content_too_short": "El contenido del artículo es demasiado corto para la generación de imágenes.",
|
|
923
|
+
"style_label": "Estilo",
|
|
924
|
+
"count_label": "Cantidad",
|
|
925
|
+
"style_auto": "Automático",
|
|
926
|
+
"style_photo": "Fotografía",
|
|
927
|
+
"style_illustration": "Ilustración",
|
|
928
|
+
"style_flat": "Plano",
|
|
929
|
+
"style_ink": "Tinta lavada",
|
|
930
|
+
"style_watercolor": "Acuarela",
|
|
931
|
+
"style_isometric": "Isométrico",
|
|
932
|
+
"style_infographic": "Infografía",
|
|
933
|
+
"style_editorial": "Editorial",
|
|
934
|
+
"style_cartoon": "Caricatura",
|
|
935
|
+
"style_render": "Render 3D",
|
|
936
|
+
"style_sketch": "Boceto",
|
|
937
|
+
"style_blueprint": "Plano técnico",
|
|
938
|
+
"style_clay": "Modelo de arcilla",
|
|
939
|
+
"style_wireframe": "Wireframe",
|
|
940
|
+
"style_exploded": "Vista explosionada",
|
|
941
|
+
"style_section": "Corte transversal",
|
|
942
|
+
"style_cad": "Dibujo CAD",
|
|
943
|
+
"style_prototype": "Prototipo",
|
|
944
|
+
"style_anime": "Anime",
|
|
945
|
+
"style_comic": "Cómic",
|
|
946
|
+
"style_cinematic": "Cinematográfico",
|
|
947
|
+
"style_pixel": "Pixel Art",
|
|
948
|
+
"style_noir": "Cine negro",
|
|
949
|
+
"style_manga": "Manga",
|
|
950
|
+
"style_realistic": "Realista",
|
|
951
|
+
"style_studio": "Estudio",
|
|
952
|
+
"style_lifestyle": "Estilo de vida",
|
|
953
|
+
"style_flatlay": "Flat Lay",
|
|
954
|
+
"style_macro": "Macro",
|
|
955
|
+
"style_minimalist": "Minimalista",
|
|
956
|
+
"style_packaging": "Empaque",
|
|
957
|
+
"style_outdoor": "Exterior",
|
|
958
|
+
"style_mood": "Ambiental",
|
|
959
|
+
"style_abstract": "Abstracto",
|
|
960
|
+
"style_texture": "Textura",
|
|
961
|
+
"style_gradient": "Degradado",
|
|
962
|
+
"style_collage": "Collage",
|
|
963
|
+
"style_vintage": "Vintage",
|
|
964
|
+
"style_botanical": "Botánico",
|
|
965
|
+
"style_geometric": "Geométrico",
|
|
966
|
+
"style_ethereal": "Etéreo",
|
|
967
|
+
"style_brutalist": "Brutalista",
|
|
968
|
+
"generate": "Generar",
|
|
969
|
+
"next": "Siguiente",
|
|
970
|
+
"back": "Atrás",
|
|
971
|
+
"insert_confirm": "Insertar",
|
|
972
|
+
"insert_paragraph": "Insertar después del párrafo correspondiente (Recomendado)",
|
|
973
|
+
"insert_end": "Insertar al final del artículo",
|
|
974
|
+
"insert_replace": "Reemplazar imágenes en el artículo",
|
|
975
|
+
"insert_clipboard": "Copiar Markdown al portapapeles",
|
|
976
|
+
"selected": "{count} seleccionados",
|
|
977
|
+
"completed": "Imágenes generadas",
|
|
978
|
+
"step_description": "Generar ilustraciones para el artículo",
|
|
979
|
+
"mode_article": "Artículo",
|
|
980
|
+
"mode_design": "Diseño",
|
|
981
|
+
"mode_storyboard": "Storyboard",
|
|
982
|
+
"mode_product": "Producto",
|
|
983
|
+
"mode_moodboard": "Moodboard",
|
|
984
|
+
"mode_portrait": "Retrato",
|
|
985
|
+
"style_portrait": "Retrato",
|
|
986
|
+
"style_headshot": "Primer plano",
|
|
987
|
+
"style_fullbody": "Cuerpo entero",
|
|
988
|
+
"style_fashion": "Moda",
|
|
989
|
+
"style_street": "Callejero",
|
|
990
|
+
"style_glamour": "Glamour",
|
|
991
|
+
"style_environmental": "Ambiental",
|
|
992
|
+
"style_candid": "Espontáneo",
|
|
993
|
+
"style_group": "Grupal",
|
|
994
|
+
"pre_defined_detected": "Se detectaron {count} indicación(es) predefinida(s) en el documento",
|
|
995
|
+
"use_predefined": "Usar indicaciones predefinidas"
|
|
996
|
+
},
|
|
997
|
+
"image_host": {
|
|
998
|
+
"title": "Alojamiento de imágenes",
|
|
999
|
+
"provider": "Proveedor",
|
|
1000
|
+
"smms": "SM.MS",
|
|
1001
|
+
"imgur": "Imgur",
|
|
1002
|
+
"github": "Repositorio GitHub",
|
|
1003
|
+
"custom": "API personalizada",
|
|
1004
|
+
"api_token": "Token de API",
|
|
1005
|
+
"api_token_placeholder": "Introduzca el token de API",
|
|
1006
|
+
"custom_endpoint": "Endpoint de subida",
|
|
1007
|
+
"custom_endpoint_placeholder": "https://su-api.com/upload",
|
|
1008
|
+
"custom_headers": "Encabezados personalizados (JSON)",
|
|
1009
|
+
"custom_url_template": "Plantilla de URL de resultado",
|
|
1010
|
+
"custom_url_template_placeholder": "https://example.com/i/{id}",
|
|
1011
|
+
"custom_url_template_hint": "Marcadores: {id}, {storageKey}, {filename}, {url}. Déjalo vacío para detectar automáticamente los campos de URL.",
|
|
1012
|
+
"github_repo_url": "URL del repositorio",
|
|
1013
|
+
"github_repo_url_placeholder": "https://github.com/usuario/imagenes",
|
|
1014
|
+
"github_branch": "Rama",
|
|
1015
|
+
"github_dir": "Directorio de imágenes",
|
|
1016
|
+
"github_token": "Token de acceso personal",
|
|
1017
|
+
"github_token_placeholder": "ghp_xxxxxxxxxxxx",
|
|
1018
|
+
"github_cdn": "Formato de URL",
|
|
1019
|
+
"github_cdn_raw": "raw.githubusercontent.com",
|
|
1020
|
+
"github_cdn_jsdelivr": "CDN jsDelivr",
|
|
1021
|
+
"import_from_publish": "Importar desde destino de publicación",
|
|
1022
|
+
"auto_upload": "Subir imágenes automáticamente al pegar/soltar",
|
|
1023
|
+
"test_upload": "Prueba de subida",
|
|
1024
|
+
"test": "Probar",
|
|
1025
|
+
"testing": "Probando...",
|
|
1026
|
+
"success": "¡Subida exitosa!",
|
|
1027
|
+
"failed": "Subida fallida",
|
|
1028
|
+
"add_target": "Agregar alojamiento de imágenes",
|
|
1029
|
+
"target_name": "Nombre",
|
|
1030
|
+
"target_name_placeholder": "ej., Mi CDN de blog",
|
|
1031
|
+
"settings_empty": "No hay destinos de alojamiento de imágenes configurados",
|
|
1032
|
+
"settings_hint": "Agregue un servicio de alojamiento de imágenes para habilitar la subida automática.",
|
|
1033
|
+
"default": "Predeterminado",
|
|
1034
|
+
"set_default": "Establecer como predeterminado",
|
|
1035
|
+
"gitlab": "Repositorio GitLab",
|
|
1036
|
+
"git_custom": "Git personalizado (Gitea/Forgejo)",
|
|
1037
|
+
"qiniu": "Qiniu Kodo",
|
|
1038
|
+
"aliyun_oss": "Aliyun OSS",
|
|
1039
|
+
"tencent_cos": "Tencent COS",
|
|
1040
|
+
"aws_s3": "AWS S3",
|
|
1041
|
+
"google_gcs": "Google Cloud Storage",
|
|
1042
|
+
"group_api": "Alojamiento por API",
|
|
1043
|
+
"group_git": "Repositorio Git",
|
|
1044
|
+
"group_oss": "Almacenamiento de objetos",
|
|
1045
|
+
"gitlab_repo_url": "URL del repositorio",
|
|
1046
|
+
"gitlab_branch": "Rama",
|
|
1047
|
+
"gitlab_dir": "Directorio de imágenes",
|
|
1048
|
+
"gitlab_token": "Token de acceso personal",
|
|
1049
|
+
"gitlab_token_placeholder": "glpat-xxxxxxxxxxxx",
|
|
1050
|
+
"git_custom_repo_url": "URL del repositorio",
|
|
1051
|
+
"git_custom_branch": "Rama",
|
|
1052
|
+
"git_custom_dir": "Directorio de imágenes",
|
|
1053
|
+
"git_custom_token": "Token de acceso",
|
|
1054
|
+
"git_custom_token_placeholder": "Introduzca el token",
|
|
1055
|
+
"oss_access_key": "Access Key",
|
|
1056
|
+
"oss_access_key_placeholder": "Introduzca el Access Key ID",
|
|
1057
|
+
"oss_secret_key": "Secret Key",
|
|
1058
|
+
"oss_secret_key_placeholder": "Introduzca la Secret Key",
|
|
1059
|
+
"oss_bucket": "Bucket",
|
|
1060
|
+
"oss_bucket_placeholder": "ej. mi-bucket-imagenes",
|
|
1061
|
+
"oss_region": "Región",
|
|
1062
|
+
"oss_region_placeholder": "ej. cn-east-1, us-east-1",
|
|
1063
|
+
"select_region": "Seleccionar región",
|
|
1064
|
+
"oss_endpoint": "Endpoint personalizado (opcional)",
|
|
1065
|
+
"oss_endpoint_placeholder": "ej. https://s3.custom.com",
|
|
1066
|
+
"oss_cdn_domain": "Dominio CDN (opcional)",
|
|
1067
|
+
"oss_cdn_domain_placeholder": "ej. https://cdn.ejemplo.com",
|
|
1068
|
+
"oss_path_prefix": "Prefijo de ruta (opcional)",
|
|
1069
|
+
"oss_path_prefix_placeholder": "ej. imagenes/blog/",
|
|
1070
|
+
"required": "Requerido",
|
|
1071
|
+
"qiniu_cdn_required": "Qiniu requiere un dominio CDN para generar URLs de imagen accesibles.",
|
|
1072
|
+
"picora": "Picora",
|
|
1073
|
+
"picora_one_click": "Importación con un clic",
|
|
1074
|
+
"picora_import_title": "Importar desde Picora",
|
|
1075
|
+
"picora_import_hint": "Abre la consola de Picora y haz clic en \"Importar a Moraya\" junto a una API Key. O introduce la clave manualmente abajo.",
|
|
1076
|
+
"picora_open_console": "Abrir consola de Picora",
|
|
1077
|
+
"picora_manual_entry": "Ya tengo una API Key — introducir manualmente",
|
|
1078
|
+
"picora_verifying": "Verificando con Picora…",
|
|
1079
|
+
"picora_verify_failed": "Verificación fallida. Comprueba el token e inténtalo de nuevo.",
|
|
1080
|
+
"picora_import_success": "Picora importado ({email})",
|
|
1081
|
+
"picora_featured_badge": "Recomendado",
|
|
1082
|
+
"picora_api_url": "Endpoint de Picora",
|
|
1083
|
+
"picora_api_url_placeholder": "https://api.picora.me/v1/images",
|
|
1084
|
+
"picora_img_domain": "Dominio CDN",
|
|
1085
|
+
"picora_img_domain_placeholder": "https://media.picora.me",
|
|
1086
|
+
"picora_api_key": "API Key",
|
|
1087
|
+
"picora_api_key_placeholder": "sk_live_...",
|
|
1088
|
+
"picora_user_email": "Cuenta de Picora",
|
|
1089
|
+
"picora_token_preview": "Vista previa del token",
|
|
1090
|
+
"picora_confirm_import": "Confirmar importación",
|
|
1091
|
+
"picora_import_invalid": "Enlace de importación no válido — vuelve a intentarlo desde la consola de Picora.",
|
|
1092
|
+
"picora_verify": "Verificar",
|
|
1093
|
+
"picora_hero_desc": "Nuestro host de imágenes SaaS · configuración en 5 min con un clic",
|
|
1094
|
+
"other_providers": "Otros proveedores",
|
|
1095
|
+
"picora_api_key_keychain": "Almacenado en el Llavero del sistema · introduzca una nueva clave para reemplazarla",
|
|
1096
|
+
"picora_key_migrated_toast": "Se migraron {count} clave(s) de API de Picora al llavero del sistema."
|
|
1097
|
+
},
|
|
1098
|
+
"image_menu": {
|
|
1099
|
+
"resize": "Redimensionar",
|
|
1100
|
+
"upload": "Subir al alojamiento de imágenes",
|
|
1101
|
+
"edit_alt": "Editar descripción",
|
|
1102
|
+
"copy_url": "Copiar URL de imagen",
|
|
1103
|
+
"copy_image": "Copiar imagen",
|
|
1104
|
+
"open_in_browser": "Abrir imagen en navegador",
|
|
1105
|
+
"save_as": "Guardar imagen como...",
|
|
1106
|
+
"delete": "Eliminar imagen",
|
|
1107
|
+
"original_size": "Tamaño original"
|
|
1108
|
+
},
|
|
1109
|
+
"kb": {
|
|
1110
|
+
"index_all": "Indexar todos los documentos",
|
|
1111
|
+
"index_file": "Indexar archivo",
|
|
1112
|
+
"indexing": "Indexando...",
|
|
1113
|
+
"index_complete": "Indexación completa",
|
|
1114
|
+
"search_placeholder": "Buscar en la base de conocimiento...",
|
|
1115
|
+
"no_index": "No se encontró índice. Haz clic derecho en la base de conocimiento para crear uno.",
|
|
1116
|
+
"stale_index": "El índice está desactualizado. {count} archivos cambiaron desde la última indexación.",
|
|
1117
|
+
"dimensions": "Dimensiones",
|
|
1118
|
+
"auto_index": "Indexar automáticamente al guardar",
|
|
1119
|
+
"provider": "Proveedor de embedding",
|
|
1120
|
+
"model": "Modelo de embedding",
|
|
1121
|
+
"delete_index": "Eliminar índice",
|
|
1122
|
+
"reindex_all": "Reindexar todo",
|
|
1123
|
+
"delete_confirm": "¿Estás seguro de que quieres eliminar el índice?",
|
|
1124
|
+
"use_same_as_ai": "Usar la misma configuración que el chat de IA",
|
|
1125
|
+
"online_model": "Modelo en Línea",
|
|
1126
|
+
"dimension_warning": "Máximo para este modelo: {max}. Usando: {actual}.",
|
|
1127
|
+
"status": {
|
|
1128
|
+
"indexed": "Indexado ({chunks} fragmentos, {files} archivos)",
|
|
1129
|
+
"not_indexed": "No indexado",
|
|
1130
|
+
"stale": "{count} archivos cambiados"
|
|
1131
|
+
},
|
|
1132
|
+
"progress": {
|
|
1133
|
+
"scanning": "Escaneando archivos...",
|
|
1134
|
+
"chunking": "Dividiendo documentos... ({current}/{total})",
|
|
1135
|
+
"embedding": "Generando embeddings... ({current}/{total})",
|
|
1136
|
+
"indexing": "Construyendo índice...",
|
|
1137
|
+
"done": "Hecho"
|
|
1138
|
+
},
|
|
1139
|
+
"provider_no_embedding": "El proveedor de chat AI actual no admite embedding. Seleccione un proveedor de embedding arriba.",
|
|
1140
|
+
"local_models": "Modelos Locales",
|
|
1141
|
+
"download_model": "Descargar",
|
|
1142
|
+
"delete_model": "Eliminar Modelo",
|
|
1143
|
+
"select_local_model": "Seleccionar un modelo descargado",
|
|
1144
|
+
"no_local_models": "No hay modelos descargados. Descargue uno a continuación.",
|
|
1145
|
+
"loading": "Loading knowledge base...",
|
|
1146
|
+
"empty": "No knowledge base found.",
|
|
1147
|
+
"create_in_picora": "Create a KB in Picora",
|
|
1148
|
+
"select_note": "Select a note to edit",
|
|
1149
|
+
"untitled": "Untitled"
|
|
1150
|
+
},
|
|
1151
|
+
"kb_sync": {
|
|
1152
|
+
"card": {
|
|
1153
|
+
"bind": "☁ Picora Sync",
|
|
1154
|
+
"settings": "☁ Bound · Settings"
|
|
1155
|
+
},
|
|
1156
|
+
"bind_dialog": {
|
|
1157
|
+
"title": "Bind Picora Sync — {name}",
|
|
1158
|
+
"step": "Step {current} / {total}",
|
|
1159
|
+
"step1_title": "Select Picora account",
|
|
1160
|
+
"step2_title": "Link or create cloud KB",
|
|
1161
|
+
"step3_title": "Sync strategy",
|
|
1162
|
+
"step4_title": "Preview first sync (dry-run)",
|
|
1163
|
+
"no_picora": "No Picora accounts found. Please add one in Settings → Hosting first.",
|
|
1164
|
+
"loading_kbs": "Loading cloud KBs…",
|
|
1165
|
+
"create_new": "Create new cloud KB",
|
|
1166
|
+
"link_existing": "Link to existing cloud KB",
|
|
1167
|
+
"kb_name": "Name",
|
|
1168
|
+
"kb_slug": "Slug (URL-friendly ID)",
|
|
1169
|
+
"select_kb": "Select a cloud KB…",
|
|
1170
|
+
"back": "← Back",
|
|
1171
|
+
"next": "Next →",
|
|
1172
|
+
"start_sync": "Start Sync ✓",
|
|
1173
|
+
"binding": "Binding…",
|
|
1174
|
+
"previewing": "Scanning local files…",
|
|
1175
|
+
"will_upload": "↑ Upload to cloud ({n} items)",
|
|
1176
|
+
"will_download": "↓ Download to local ({n} items)",
|
|
1177
|
+
"will_delete": "⊘ Delete ({n} items)",
|
|
1178
|
+
"skipped": "⚠ Skipped — exceeds size limit ({n} items)",
|
|
1179
|
+
"first_bind_hint": "No conflicts detected. All local files will be uploaded.",
|
|
1180
|
+
"confirm_label": "I understand — my local KB will be the initial authority",
|
|
1181
|
+
"link_existing_instead": "Vincular KB existente en su lugar"
|
|
1182
|
+
},
|
|
1183
|
+
"strategy": {
|
|
1184
|
+
"mode": "Trigger",
|
|
1185
|
+
"mode_manual": "Manual only",
|
|
1186
|
+
"mode_on_save": "On save (3s delay)",
|
|
1187
|
+
"mode_interval": "Scheduled",
|
|
1188
|
+
"mode_startup": "On startup & close",
|
|
1189
|
+
"interval60": "Every 1 minute",
|
|
1190
|
+
"interval300": "Every 5 minutes",
|
|
1191
|
+
"interval900": "Every 15 minutes",
|
|
1192
|
+
"interval1800": "Every 30 minutes",
|
|
1193
|
+
"scope": "Scope",
|
|
1194
|
+
"scope_md_only": "Markdown files only (.md / .markdown)",
|
|
1195
|
+
"scope_md_rules": "Markdown + rule files (MORAYA.md / CLAUDE.md / .mdx)",
|
|
1196
|
+
"scope_all": "All text files including hidden directories",
|
|
1197
|
+
"conflict": "Conflict policy",
|
|
1198
|
+
"conflict_prompt": "Prompt me (recommended)",
|
|
1199
|
+
"conflict_local": "Prefer local",
|
|
1200
|
+
"conflict_remote": "Prefer remote"
|
|
1201
|
+
},
|
|
1202
|
+
"settings": {
|
|
1203
|
+
"global_switch": "Enable KB auto-sync on this machine",
|
|
1204
|
+
"global_switch_hint": "When off, all scheduled syncs are paused. Manual \"Sync Now\" still works.",
|
|
1205
|
+
"last_sync": "Last sync",
|
|
1206
|
+
"never": "Never",
|
|
1207
|
+
"unbound": "Not bound to Picora",
|
|
1208
|
+
"sync_now": "Sync Now",
|
|
1209
|
+
"syncing": "Syncing…",
|
|
1210
|
+
"edit_strategy": "Edit strategy",
|
|
1211
|
+
"unbind": "Unbind",
|
|
1212
|
+
"unbind_title": "Unbind Picora Sync",
|
|
1213
|
+
"unbind_confirm": "Remove Picora sync binding for \"{name}\"? Cloud data is preserved.",
|
|
1214
|
+
"view_conflicts": "Conflicts",
|
|
1215
|
+
"bind": "Bind to Picora",
|
|
1216
|
+
"no_kbs": "No knowledge bases added yet."
|
|
1217
|
+
},
|
|
1218
|
+
"conflict": {
|
|
1219
|
+
"title": "Conflict Resolution — {name} ({n} items)",
|
|
1220
|
+
"no_conflicts": "No conflicts to resolve.",
|
|
1221
|
+
"local": "Local version",
|
|
1222
|
+
"remote": "Cloud version",
|
|
1223
|
+
"no_preview": "(no preview)",
|
|
1224
|
+
"keep_local": "Keep local (overwrite cloud)",
|
|
1225
|
+
"keep_remote": "Pull cloud (overwrite local)",
|
|
1226
|
+
"keep_both": "Keep both (cloud copy saved as .conflict.md)",
|
|
1227
|
+
"skip": "Skip",
|
|
1228
|
+
"apply_one": "Apply this",
|
|
1229
|
+
"apply_all": "Apply all selected ({n})"
|
|
1230
|
+
},
|
|
1231
|
+
"statusbar": {
|
|
1232
|
+
"tooltip": "KB Sync status — click for details",
|
|
1233
|
+
"error_label": "Error de sincronización:"
|
|
1234
|
+
},
|
|
1235
|
+
"sync_now": "Sincronizar ahora",
|
|
1236
|
+
"error": {
|
|
1237
|
+
"target_missing": "Cuenta de Picora no encontrada — vuelva a vincular esta base de conocimiento o restaure la cuenta en Configuración."
|
|
1238
|
+
},
|
|
1239
|
+
"trash": {
|
|
1240
|
+
"title": "Papelera",
|
|
1241
|
+
"toast_deleted": "Picora eliminó {count} archivo(s). Movido(s) a la papelera.",
|
|
1242
|
+
"view": "Ver",
|
|
1243
|
+
"restore_all": "Restaurar todo",
|
|
1244
|
+
"restore_success": "Se restauraron {count} archivo(s).",
|
|
1245
|
+
"restore_failed": "No se pudieron restaurar algunos archivos.",
|
|
1246
|
+
"restore_conflict_title": "El archivo ya existe",
|
|
1247
|
+
"restore_conflict_body": "{path} ya existe. ¿Sobrescribir?",
|
|
1248
|
+
"overwrite": "Sobrescribir",
|
|
1249
|
+
"cancel": "Cancelar",
|
|
1250
|
+
"filter_kb_all": "Todas las BC",
|
|
1251
|
+
"filter_time7d": "Últimos 7 días",
|
|
1252
|
+
"filter_time30d": "Últimos 30 días",
|
|
1253
|
+
"filter_time_all": "Todo el tiempo",
|
|
1254
|
+
"empty_state": "La papelera está vacía.",
|
|
1255
|
+
"loading": "Cargando…",
|
|
1256
|
+
"restore": "Restaurar",
|
|
1257
|
+
"delete_forever": "Eliminar permanentemente",
|
|
1258
|
+
"delete_forever_confirm": "¿Eliminar permanentemente {path}? Esto no se puede deshacer.",
|
|
1259
|
+
"purge_all": "Vaciar papelera",
|
|
1260
|
+
"purge_all_confirm": "¿Vaciar todas las entradas con más de {days} días?",
|
|
1261
|
+
"purge_result": "Se limpiaron {files} archivo(s), se liberaron {size}.",
|
|
1262
|
+
"auto_purge_hint": "Las entradas con más de 7 días se eliminan automáticamente.",
|
|
1263
|
+
"entry_deleted_at": "Eliminado el {date}",
|
|
1264
|
+
"kb_unknown": "BC desconocida"
|
|
1265
|
+
}
|
|
1266
|
+
},
|
|
1267
|
+
"knowledge_base": {
|
|
1268
|
+
"title": "Base de conocimientos",
|
|
1269
|
+
"add": "Agregar base de conocimientos",
|
|
1270
|
+
"remove": "Eliminar",
|
|
1271
|
+
"rename": "Renombrar",
|
|
1272
|
+
"manage": "Gestionar bases de conocimientos...",
|
|
1273
|
+
"empty": "No hay bases de conocimientos configuradas",
|
|
1274
|
+
"empty_hint": "Agregue una carpeta como base de conocimientos para cambiar rápidamente.",
|
|
1275
|
+
"delete_confirm": "¿Eliminar \"{name}\" de las bases de conocimientos? La carpeta en sí no se eliminará.",
|
|
1276
|
+
"switch_to": "Cambiar base de conocimientos",
|
|
1277
|
+
"save_hint": "Esta carpeta no está en sus bases de conocimientos.",
|
|
1278
|
+
"save_as_kb": "Guardar como base de conocimientos"
|
|
1279
|
+
},
|
|
1280
|
+
"link": {
|
|
1281
|
+
"open": "Abrir enlace",
|
|
1282
|
+
"remove": "Eliminar enlace"
|
|
1283
|
+
},
|
|
1284
|
+
"mcp": {
|
|
1285
|
+
"title": "MCP servers",
|
|
1286
|
+
"tabs": {
|
|
1287
|
+
"servers": "Servidores",
|
|
1288
|
+
"publish": "Publicar",
|
|
1289
|
+
"sync": "Sincronizar",
|
|
1290
|
+
"marketplace": "Mercado"
|
|
1291
|
+
},
|
|
1292
|
+
"ai_services": {
|
|
1293
|
+
"empty": "No hay servicios creados por IA",
|
|
1294
|
+
"hint": "La IA puede crear servicios MCP durante el chat. ¡Pídale que interactúe con una API!",
|
|
1295
|
+
"node_required": "Se requiere Node.js 18+",
|
|
1296
|
+
"checking_node": "Verificando Node.js...",
|
|
1297
|
+
"temp": "Temporal",
|
|
1298
|
+
"saved": "Guardado",
|
|
1299
|
+
"view_code": "Código",
|
|
1300
|
+
"tools": "{count} herramientas",
|
|
1301
|
+
"service_created": "La IA creó el servicio \"{name}\" con {count} herramientas",
|
|
1302
|
+
"service_saved": "Servicio \"{name}\" guardado",
|
|
1303
|
+
"service_removed": "Servicio \"{name}\" eliminado",
|
|
1304
|
+
"launch_confirm_title": "Advertencia de seguridad del servicio de IA",
|
|
1305
|
+
"launch_confirm_msg": "La IA ha generado un servicio MCP que necesita ejecutar código autogenerado:\n Servicio: {name}\n Herramientas: {tools}\n\nEste código se ejecutará en un proceso local de Node.js.\nPor favor confirme que confía en el código generado por esta IA.",
|
|
1306
|
+
"launch_confirm_ok": "Ejecutar",
|
|
1307
|
+
"launch_confirm_cancel": "Cancelar"
|
|
1308
|
+
},
|
|
1309
|
+
"servers": {
|
|
1310
|
+
"empty": "No hay servidores MCP configurados",
|
|
1311
|
+
"local_mcp": "MCP local",
|
|
1312
|
+
"add_server": "Agregar servidor",
|
|
1313
|
+
"add_server_plus": "+ Agregar servidor",
|
|
1314
|
+
"connected": "Conectado",
|
|
1315
|
+
"disconnected": "Desconectado",
|
|
1316
|
+
"server_name": "Nombre del servidor",
|
|
1317
|
+
"server_url": "URL del servidor (ej., http://localhost:3000/mcp)",
|
|
1318
|
+
"http": "HTTP",
|
|
1319
|
+
"sse": "SSE (Server-Sent Events)",
|
|
1320
|
+
"stdio": "stdio (Proceso local)",
|
|
1321
|
+
"command": "Comando",
|
|
1322
|
+
"command_placeholder": "Comando (ej., npx, node, python)",
|
|
1323
|
+
"args_placeholder": "Argumentos (ej., -y @modelcontextprotocol/server-filesystem /ruta)",
|
|
1324
|
+
"env_placeholder": "CLAVE_ENV=valor (una por línea)",
|
|
1325
|
+
"presets": "MCP remoto",
|
|
1326
|
+
"presets_hint": "Agregue servidores MCP populares con un clic",
|
|
1327
|
+
"preset_desc": {
|
|
1328
|
+
"filesystem": "Leer, buscar y gestionar archivos locales",
|
|
1329
|
+
"fetch": "Obtener páginas web y convertir a Markdown",
|
|
1330
|
+
"git": "Leer y buscar repositorios Git",
|
|
1331
|
+
"memory": "Grafo de conocimiento persistente para memoria de IA",
|
|
1332
|
+
"puppeteer": "Automatización del navegador y web scraping",
|
|
1333
|
+
"sqlite": "Consultar y gestionar bases de datos SQLite",
|
|
1334
|
+
"slack": "Leer y buscar canales y mensajes de Slack",
|
|
1335
|
+
"google_maps": "Geocodificación, rutas y búsqueda de lugares",
|
|
1336
|
+
"sequential_thinking": "Razonamiento paso a paso y resolución de problemas",
|
|
1337
|
+
"everything": "Búsqueda de archivos en Windows con Everything"
|
|
1338
|
+
},
|
|
1339
|
+
"preset_env_title": "Variables de entorno",
|
|
1340
|
+
"preset_env_desc": {
|
|
1341
|
+
"slack_bot_token": "Slack Bot OAuth Token (xoxb-...)",
|
|
1342
|
+
"slack_team_id": "ID de equipo/espacio de trabajo de Slack (opcional)",
|
|
1343
|
+
"google_maps_api_key": "Clave de API de Google Maps"
|
|
1344
|
+
},
|
|
1345
|
+
"preset_add": "Agregar y conectar",
|
|
1346
|
+
"form_mode": "Formulario",
|
|
1347
|
+
"json_mode": "JSON",
|
|
1348
|
+
"json_placeholder": "Pegue la configuración JSON, ej.:\n{\n \"mcpServers\": {\n \"nombre\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@.../server-xxx\"]\n }\n }\n}",
|
|
1349
|
+
"json_no_config": "No se encontró configuración válida de servidor MCP",
|
|
1350
|
+
"json_parse_error": "error de análisis",
|
|
1351
|
+
"launch_confirm_title": "Advertencia de seguridad",
|
|
1352
|
+
"launch_confirm_msg": "A punto de iniciar un programa externo:\n Comando: {command}\n Argumentos: {args}\n\nEste servidor MCP se ejecutará con sus permisos de usuario y puede acceder a archivos locales y a la red.\nPor favor confirme que este servidor MCP proviene de una fuente confiable.",
|
|
1353
|
+
"launch_confirm_ok": "Iniciar",
|
|
1354
|
+
"launch_confirm_cancel": "Cancelar",
|
|
1355
|
+
"auto_approve": "Aprobación automática de inicio de MCP",
|
|
1356
|
+
"auto_approve_hint": "Omitir la confirmación de seguridad al conectar servidores MCP e iniciar servicios generados por IA. No recomendado para fuentes no confiables.",
|
|
1357
|
+
"error_name_required": "El nombre del servidor es obligatorio",
|
|
1358
|
+
"error_command_required": "El comando es obligatorio",
|
|
1359
|
+
"error_url_required": "La URL es obligatoria"
|
|
1360
|
+
},
|
|
1361
|
+
"publish": {
|
|
1362
|
+
"empty": "No hay destinos de publicación configurados",
|
|
1363
|
+
"hint": "Primero conecte un servidor MCP con capacidades de publicación.",
|
|
1364
|
+
"button": "Publicar",
|
|
1365
|
+
"publishing": "Publicando...",
|
|
1366
|
+
"published": "¡Publicado! {info}",
|
|
1367
|
+
"failed": "Fallido: {message}",
|
|
1368
|
+
"error": "Error: {message}"
|
|
1369
|
+
},
|
|
1370
|
+
"sync": {
|
|
1371
|
+
"empty": "No hay configuraciones de sincronización",
|
|
1372
|
+
"hint": "Primero conecte un servidor MCP, luego agregue una configuración de sincronización.",
|
|
1373
|
+
"sync_now": "Sincronizar ahora",
|
|
1374
|
+
"add_sync": "+ Agregar sincronización",
|
|
1375
|
+
"name": "Nombre de configuración",
|
|
1376
|
+
"server": "Servidor MCP",
|
|
1377
|
+
"remote_path": "Ruta remota",
|
|
1378
|
+
"local_path": "Ruta local",
|
|
1379
|
+
"direction": "Dirección",
|
|
1380
|
+
"push": "Subir (local → remoto)",
|
|
1381
|
+
"pull": "Descargar (remoto → local)",
|
|
1382
|
+
"bidirectional": "Bidireccional",
|
|
1383
|
+
"last_sync": "Última sincronización: {time}",
|
|
1384
|
+
"syncing": "Sincronizando...",
|
|
1385
|
+
"success": "Sincronización completada",
|
|
1386
|
+
"error": "Error de sincronización: {message}"
|
|
1387
|
+
},
|
|
1388
|
+
"marketplace": {
|
|
1389
|
+
"title": "Mercado",
|
|
1390
|
+
"search": "Buscar servidores MCP...",
|
|
1391
|
+
"source": "Fuente",
|
|
1392
|
+
"source_official": "Oficial",
|
|
1393
|
+
"source_lobehub": "LobeHub",
|
|
1394
|
+
"source_smithery": "Smithery",
|
|
1395
|
+
"install": "Instalar",
|
|
1396
|
+
"install_and_connect": "Instalar y conectar",
|
|
1397
|
+
"installing": "Instalando...",
|
|
1398
|
+
"installed": "Instalado",
|
|
1399
|
+
"view_details": "Detalles",
|
|
1400
|
+
"load_more": "Cargar más",
|
|
1401
|
+
"no_results": "No se encontraron servidores MCP",
|
|
1402
|
+
"network_error": "Error al cargar, verifique la red",
|
|
1403
|
+
"retry": "Reintentar",
|
|
1404
|
+
"env_vars": "Variables de entorno",
|
|
1405
|
+
"env_required": "(requerido)",
|
|
1406
|
+
"popularity": "usos",
|
|
1407
|
+
"installs": "Instalaciones / Usos",
|
|
1408
|
+
"verified": "Verificado",
|
|
1409
|
+
"cancel": "Cancelar"
|
|
1410
|
+
},
|
|
1411
|
+
"subtitle": "Connect to Model Context Protocol servers to give the AI agent tools and resources.",
|
|
1412
|
+
"settings_card_label": "MCP servers",
|
|
1413
|
+
"empty_state": {
|
|
1414
|
+
"title": "No MCP servers configured",
|
|
1415
|
+
"body": "Add a remote SSE or HTTP MCP server URL. Mobile builds intentionally do not spawn local processes — see the bridging guide below for how to expose a local MCP server (e.g. via Tailscale tailnet or an SSH tunnel) as a remote URL.",
|
|
1416
|
+
"cta": "Add server"
|
|
1417
|
+
},
|
|
1418
|
+
"list": {
|
|
1419
|
+
"add_button": "Add server",
|
|
1420
|
+
"status": {
|
|
1421
|
+
"connected": "Connected",
|
|
1422
|
+
"connecting": "Connecting…",
|
|
1423
|
+
"disconnected": "Disconnected",
|
|
1424
|
+
"error": "Error"
|
|
1425
|
+
},
|
|
1426
|
+
"tool_count": "{count} tools",
|
|
1427
|
+
"resource_count": "{count} resources",
|
|
1428
|
+
"last_connected": "Last connected {when}",
|
|
1429
|
+
"help_button": "How do I connect?"
|
|
1430
|
+
},
|
|
1431
|
+
"edit": {
|
|
1432
|
+
"title_new": "Add MCP server",
|
|
1433
|
+
"title_edit": "Edit MCP server",
|
|
1434
|
+
"name_label": "Name",
|
|
1435
|
+
"name_placeholder": "e.g. WeChat publisher",
|
|
1436
|
+
"transport_label": "Transport",
|
|
1437
|
+
"transport_sse": "SSE (Server-Sent Events)",
|
|
1438
|
+
"transport_http": "HTTP (Streamable)",
|
|
1439
|
+
"url_label": "URL",
|
|
1440
|
+
"url_placeholder_sse": "https://example.com/mcp/sse",
|
|
1441
|
+
"url_placeholder_http": "https://example.com/mcp",
|
|
1442
|
+
"headers_label": "HTTP headers (optional)",
|
|
1443
|
+
"headers_add": "Add header",
|
|
1444
|
+
"header_key_placeholder": "Authorization",
|
|
1445
|
+
"header_value_placeholder": "Bearer …",
|
|
1446
|
+
"enabled_label": "Enable on startup",
|
|
1447
|
+
"save_button": "Save",
|
|
1448
|
+
"cancel_button": "Cancel",
|
|
1449
|
+
"delete_button": "Delete server",
|
|
1450
|
+
"delete_confirm": "Remove this MCP server? Saved tools and any open connection will be cleared.",
|
|
1451
|
+
"validation": {
|
|
1452
|
+
"name_required": "Name is required.",
|
|
1453
|
+
"url_required": "URL is required.",
|
|
1454
|
+
"url_invalid": "URL must start with http:// or https://"
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
"detail": {
|
|
1458
|
+
"title": "Server details",
|
|
1459
|
+
"reconnect_button": "Reconnect",
|
|
1460
|
+
"disconnect_button": "Disconnect",
|
|
1461
|
+
"edit_button": "Edit",
|
|
1462
|
+
"tools_heading": "Tools ({count})",
|
|
1463
|
+
"resources_heading": "Resources ({count})",
|
|
1464
|
+
"no_tools": "No tools exposed yet. Connect first.",
|
|
1465
|
+
"no_resources": "No resources exposed.",
|
|
1466
|
+
"error_heading": "Last error",
|
|
1467
|
+
"transport_label": "Transport: {transport}",
|
|
1468
|
+
"url_label": "URL: {url}"
|
|
1469
|
+
},
|
|
1470
|
+
"help": {
|
|
1471
|
+
"title": "How to bridge a local MCP server",
|
|
1472
|
+
"intro": "Mobile builds only speak to remote MCP servers over SSE or HTTP. Local stdio servers must be exposed via an external bridge — Moraya does not embed Tailscale, an SSH tunnel, or any other bridging tool.",
|
|
1473
|
+
"tailscale": {
|
|
1474
|
+
"heading": "Via your own LAN (e.g. Tailscale tailnet)",
|
|
1475
|
+
"body": "Run your stdio MCP server on a laptop with a public-from-your-device hostname, then add a server here with a URL like http://laptop-name.your-tailnet.ts.net:3030/sse. The hostname is whatever your VPN / LAN provides — Moraya does not detect it for you."
|
|
1476
|
+
},
|
|
1477
|
+
"tunnel": {
|
|
1478
|
+
"heading": "Via a remote tunnel (e.g. SSH or Termex)",
|
|
1479
|
+
"body": "Forward a remote server's MCP port to a URL you can reach from the phone, then paste that URL here. Same shape as a local LAN URL — Moraya treats every remote endpoint identically."
|
|
1480
|
+
},
|
|
1481
|
+
"security": {
|
|
1482
|
+
"heading": "Security",
|
|
1483
|
+
"body": "URLs and headers are stored locally on this device. Headers are sent on every request — use a short-lived token if you connect to anything outside your private network. Plain http:// URLs may require an NSAppTransportSecurity exception on iOS; HTTPS is recommended whenever possible."
|
|
1484
|
+
},
|
|
1485
|
+
"close_button": "Got it"
|
|
1486
|
+
},
|
|
1487
|
+
"errors": {
|
|
1488
|
+
"connect_failed": "Failed to connect to {name}: {message}",
|
|
1489
|
+
"tool_call_failed": "Tool call failed: {message}",
|
|
1490
|
+
"server_not_connected": "Server is not connected.",
|
|
1491
|
+
"tool_not_found": "Tool not found on any connected server."
|
|
1492
|
+
}
|
|
1493
|
+
},
|
|
1494
|
+
"media": {
|
|
1495
|
+
"__mt": true,
|
|
1496
|
+
"upload_title": "Media Uploads",
|
|
1497
|
+
"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"
|
|
1508
|
+
},
|
|
1509
|
+
"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",
|
|
1518
|
+
"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",
|
|
1525
|
+
"no_memories": "No memories yet. Use /memorize in chat to add one.",
|
|
1526
|
+
"edit": "Edit",
|
|
1527
|
+
"delete": "Delete",
|
|
1528
|
+
"enable": "Enable",
|
|
1529
|
+
"disable": "Disable",
|
|
1530
|
+
"save": "Save",
|
|
1531
|
+
"cancel": "Cancel",
|
|
1532
|
+
"weight": "Weight",
|
|
1533
|
+
"danger_zone": "Danger Zone",
|
|
1534
|
+
"reset_all": "Reset all memories",
|
|
1535
|
+
"reset_confirm_instruction": "Type RESET to confirm deleting all memories. This cannot be undone.",
|
|
1536
|
+
"confirm_reset": "Delete all memories",
|
|
1537
|
+
"export_title": "Export Memories",
|
|
1538
|
+
"export_hint": "Download all your memories as a JSON file for backup or migration.",
|
|
1539
|
+
"export_btn": "Export memories",
|
|
1540
|
+
"export_invalid_format": "Invalid memory export format.",
|
|
1541
|
+
"import_title": "Import Memories",
|
|
1542
|
+
"import_hint": "Import memories from a previously exported JSON file.",
|
|
1543
|
+
"choose_file": "Choose file (.json)",
|
|
1544
|
+
"import_placeholder": "Or paste JSON here...",
|
|
1545
|
+
"import_btn": "Import",
|
|
1546
|
+
"import_success": "Memories imported successfully.",
|
|
1547
|
+
"memorize_ack": "Memory saved.",
|
|
1548
|
+
"forget_ack": "Memory forgotten.",
|
|
1549
|
+
"forget_not_found": "No matching memories found.",
|
|
1550
|
+
"private_mode_on": "Private mode on — this 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."
|
|
1554
|
+
},
|
|
1555
|
+
"menu": {
|
|
1556
|
+
"file": "Archivo",
|
|
1557
|
+
"edit": "Editar",
|
|
1558
|
+
"paragraph": "Párrafo",
|
|
1559
|
+
"format": "Formato",
|
|
1560
|
+
"view": "Ver",
|
|
1561
|
+
"window": "Ventana",
|
|
1562
|
+
"help": "Ayuda",
|
|
1563
|
+
"new": "Nuevo",
|
|
1564
|
+
"new_window": "Nueva ventana",
|
|
1565
|
+
"open": "Abrir...",
|
|
1566
|
+
"save": "Guardar",
|
|
1567
|
+
"save_as": "Guardar como...",
|
|
1568
|
+
"export": "Exportar",
|
|
1569
|
+
"export_html": "HTML",
|
|
1570
|
+
"export_pdf": "PDF",
|
|
1571
|
+
"export_image": "Imagen (PNG)",
|
|
1572
|
+
"export_doc": "Word (.doc)",
|
|
1573
|
+
"heading1": "Encabezado 1",
|
|
1574
|
+
"heading2": "Encabezado 2",
|
|
1575
|
+
"heading3": "Encabezado 3",
|
|
1576
|
+
"heading4": "Encabezado 4",
|
|
1577
|
+
"heading5": "Encabezado 5",
|
|
1578
|
+
"heading6": "Encabezado 6",
|
|
1579
|
+
"table": "Tabla",
|
|
1580
|
+
"code_block": "Bloque de código",
|
|
1581
|
+
"math_block": "Bloque matemático",
|
|
1582
|
+
"quote": "Cita",
|
|
1583
|
+
"bullet_list": "Lista con viñetas",
|
|
1584
|
+
"ordered_list": "Lista numerada",
|
|
1585
|
+
"task_list": "Lista de tareas",
|
|
1586
|
+
"horizontal_rule": "Línea horizontal",
|
|
1587
|
+
"bold": "Negrita",
|
|
1588
|
+
"italic": "Cursiva",
|
|
1589
|
+
"strikethrough": "Tachado",
|
|
1590
|
+
"code": "Código",
|
|
1591
|
+
"link": "Enlace",
|
|
1592
|
+
"image": "Imagen",
|
|
1593
|
+
"visual_mode": "Modo visual",
|
|
1594
|
+
"source_mode": "Modo fuente",
|
|
1595
|
+
"split_mode": "Modo dividido",
|
|
1596
|
+
"toggle_sidebar": "Alternar barra lateral",
|
|
1597
|
+
"toggle_aipanel": "Alternar panel de IA",
|
|
1598
|
+
"toggle_outline": "Alternar esquema",
|
|
1599
|
+
"zoom_in": "Acercar",
|
|
1600
|
+
"zoom_out": "Alejar",
|
|
1601
|
+
"actual_size": "Tamaño real",
|
|
1602
|
+
"find": "Buscar",
|
|
1603
|
+
"replace": "Reemplazar",
|
|
1604
|
+
"changelog": "Registro de cambios",
|
|
1605
|
+
"privacy_policy": "Política de privacidad",
|
|
1606
|
+
"official_website": "Sitio web oficial",
|
|
1607
|
+
"about_moraya": "Acerca de Moraya",
|
|
1608
|
+
"feedback": "Comentarios",
|
|
1609
|
+
"settings": "Configuración...",
|
|
1610
|
+
"version_info": "Información de versión",
|
|
1611
|
+
"workflow": "Flujo de trabajo",
|
|
1612
|
+
"seo_optimization": "Optimización SEO",
|
|
1613
|
+
"ai_image_generation": "Generación de imágenes IA",
|
|
1614
|
+
"publish": "Publicar",
|
|
1615
|
+
"mcp_tools": "Herramientas MCP",
|
|
1616
|
+
"no_mcptools": "No hay herramientas MCP conectadas"
|
|
1617
|
+
},
|
|
1618
|
+
"mermaid": {
|
|
1619
|
+
"loading": "Cargando diagrama...",
|
|
1620
|
+
"error": "Error al renderizar el diagrama",
|
|
1621
|
+
"edit": "Editar",
|
|
1622
|
+
"preview": "Vista previa",
|
|
1623
|
+
"empty": "Diagrama vacío"
|
|
1624
|
+
},
|
|
1625
|
+
"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."
|
|
1637
|
+
},
|
|
1638
|
+
"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",
|
|
1651
|
+
"encryption_mode": "Encryption Mode",
|
|
1652
|
+
"dry_run_label": "Dry run (simulate only, no files copied)",
|
|
1653
|
+
"dry_run_badge": "Dry Run",
|
|
1654
|
+
"dry_run_start": "Start Dry Run",
|
|
1655
|
+
"start_migration": "Start Migration",
|
|
1656
|
+
"cancel": "Cancel",
|
|
1657
|
+
"files": "files",
|
|
1658
|
+
"errors": "Errors",
|
|
1659
|
+
"started": "Started",
|
|
1660
|
+
"rollback_deadline": "Rollback deadline",
|
|
1661
|
+
"rollback": "Rollback",
|
|
1662
|
+
"download_log": "Download Log",
|
|
1663
|
+
"history_title": "Migration History",
|
|
1664
|
+
"history_empty": "No migrations yet",
|
|
1665
|
+
"loading": "Loading...",
|
|
1666
|
+
"confirm_delete": "Delete this migration session?"
|
|
1667
|
+
},
|
|
1668
|
+
"mobile": {
|
|
1669
|
+
"__mt": true,
|
|
1670
|
+
"tab": {
|
|
1671
|
+
"nav_label": "Primary navigation",
|
|
1672
|
+
"edit": "Edit",
|
|
1673
|
+
"ai": "AI",
|
|
1674
|
+
"files": "Knowledge Base",
|
|
1675
|
+
"settings": "Settings"
|
|
1676
|
+
},
|
|
1677
|
+
"appbar": {
|
|
1678
|
+
"menu": "Open sidebar",
|
|
1679
|
+
"more": "More actions",
|
|
1680
|
+
"toggle_ai_pane": "Toggle AI pane",
|
|
1681
|
+
"untitled": "Untitled"
|
|
1682
|
+
},
|
|
1683
|
+
"overflow": {
|
|
1684
|
+
"mode_label": "Mode",
|
|
1685
|
+
"mode_visual": "Visual",
|
|
1686
|
+
"mode_source": "Source",
|
|
1687
|
+
"search": "Find & Replace",
|
|
1688
|
+
"outline": "Outline",
|
|
1689
|
+
"export": "Export",
|
|
1690
|
+
"share": "Share"
|
|
1691
|
+
},
|
|
1692
|
+
"format": {
|
|
1693
|
+
"bold": "Bold",
|
|
1694
|
+
"italic": "Italic",
|
|
1695
|
+
"heading": "Heading",
|
|
1696
|
+
"list": "List",
|
|
1697
|
+
"code": "Code",
|
|
1698
|
+
"link": "Link",
|
|
1699
|
+
"link_prompt": "Enter URL",
|
|
1700
|
+
"image": "Image"
|
|
1701
|
+
},
|
|
1702
|
+
"ai": {
|
|
1703
|
+
"title": "AI",
|
|
1704
|
+
"placeholder": "Ask anything or describe what you want to write…",
|
|
1705
|
+
"send": "Send",
|
|
1706
|
+
"voice": "Voice",
|
|
1707
|
+
"model": "Model",
|
|
1708
|
+
"empty_state": "Your AI conversations will appear here.",
|
|
1709
|
+
"thinking": "Thinking…",
|
|
1710
|
+
"clear": "Clear conversation",
|
|
1711
|
+
"clear_confirm": "Clear all messages?",
|
|
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?",
|
|
1716
|
+
"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…",
|
|
1726
|
+
"attach_image": "Attach image",
|
|
1727
|
+
"remove_attachment": "Remove attachment",
|
|
1728
|
+
"attached_image": "Attached image",
|
|
1729
|
+
"compressing": "Compressing…",
|
|
1730
|
+
"copy": "Copy",
|
|
1731
|
+
"sync_syncing": "Syncing with Picora…",
|
|
1732
|
+
"sync_idle": "Synced with Picora",
|
|
1733
|
+
"sync_offline": "Offline (will retry)",
|
|
1734
|
+
"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 yet — open 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)",
|
|
1753
|
+
"rag_on_title": "History RAG enabled — past conversations may be used as context",
|
|
1754
|
+
"citations_title": "{n} reference(s)",
|
|
1755
|
+
"citations_empty": "No citations attached to this message.",
|
|
1756
|
+
"params_title": "Generation parameters",
|
|
1757
|
+
"params_hint": "Override AI generation settings for this conversation only. Leave blank to use the provider default.",
|
|
1758
|
+
"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",
|
|
1763
|
+
"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:",
|
|
1772
|
+
"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.",
|
|
1777
|
+
"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",
|
|
1784
|
+
"undo": "Undo",
|
|
1785
|
+
"presets": {
|
|
1786
|
+
"default": {
|
|
1787
|
+
"label": "Default"
|
|
1788
|
+
},
|
|
1789
|
+
"precise": {
|
|
1790
|
+
"label": "Precise"
|
|
1791
|
+
},
|
|
1792
|
+
"balanced": {
|
|
1793
|
+
"label": "Balanced"
|
|
1794
|
+
},
|
|
1795
|
+
"creative": {
|
|
1796
|
+
"label": "Creative"
|
|
1797
|
+
}
|
|
1798
|
+
},
|
|
1799
|
+
"default": "Default",
|
|
1800
|
+
"quick_actions_header": "Start with",
|
|
1801
|
+
"workflows_header": "Workflows",
|
|
1802
|
+
"wf_steps": "steps",
|
|
1803
|
+
"wf": {
|
|
1804
|
+
"summarize-then-translate": {
|
|
1805
|
+
"name": "Summarize → Translate",
|
|
1806
|
+
"desc": "TL;DR the input, then translate the summary."
|
|
1807
|
+
},
|
|
1808
|
+
"translate-then-polish": {
|
|
1809
|
+
"name": "Translate → Polish",
|
|
1810
|
+
"desc": "Translate input, then smooth the translation."
|
|
1811
|
+
},
|
|
1812
|
+
"step": {
|
|
1813
|
+
"summarize": "Summarizing",
|
|
1814
|
+
"translate": "Translating",
|
|
1815
|
+
"polish": "Polishing",
|
|
1816
|
+
"tone": "Tone",
|
|
1817
|
+
"length": "Length",
|
|
1818
|
+
"article": "Writing article",
|
|
1819
|
+
"cover": "Cover image",
|
|
1820
|
+
"target_lang": "Target language",
|
|
1821
|
+
"dictate": "Dictation",
|
|
1822
|
+
"structurize": "Structuring"
|
|
1823
|
+
},
|
|
1824
|
+
"write-article": {
|
|
1825
|
+
"name": "Write article + cover",
|
|
1826
|
+
"desc": "Topic → tone/length → article → 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…"
|
|
1830
|
+
},
|
|
1831
|
+
"translate": {
|
|
1832
|
+
"name": "Translate",
|
|
1833
|
+
"desc": "Translate text into a target language",
|
|
1834
|
+
"ask_lang": "Translate into which language?"
|
|
1835
|
+
},
|
|
1836
|
+
"voice-transcribe": {
|
|
1837
|
+
"name": "Voice → note",
|
|
1838
|
+
"desc": "Dictate, then structure into a note",
|
|
1839
|
+
"hint": "Tap done when you finish speaking."
|
|
1840
|
+
},
|
|
1841
|
+
"tone": {
|
|
1842
|
+
"general": "General",
|
|
1843
|
+
"marketing": "Marketing",
|
|
1844
|
+
"technical": "Technical",
|
|
1845
|
+
"story": "Story"
|
|
1846
|
+
},
|
|
1847
|
+
"length": {
|
|
1848
|
+
"short": "Short (~500)",
|
|
1849
|
+
"medium": "Medium (~1500)",
|
|
1850
|
+
"long": "Long (~3000)"
|
|
1851
|
+
},
|
|
1852
|
+
"lang": {
|
|
1853
|
+
"en": "English",
|
|
1854
|
+
"zh": "Chinese",
|
|
1855
|
+
"ja": "Japanese",
|
|
1856
|
+
"ko": "Korean"
|
|
1857
|
+
},
|
|
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 provider — set one up in Settings → Image generation."
|
|
1867
|
+
},
|
|
1868
|
+
"tpl": {
|
|
1869
|
+
"screenshot-to-md": {
|
|
1870
|
+
"name": "Image → Markdown",
|
|
1871
|
+
"desc": "Convert a screenshot, photo, or chart to clean Markdown.",
|
|
1872
|
+
"input": "Add a caption or leave empty — the model uses your image."
|
|
1873
|
+
},
|
|
1874
|
+
"summarize-current": {
|
|
1875
|
+
"name": "Summarize note",
|
|
1876
|
+
"desc": "TL;DR + key terms of the doc open in the Edit tab.",
|
|
1877
|
+
"input": "Optional focus: “key claims only”, “as bullet list”…"
|
|
1878
|
+
},
|
|
1879
|
+
"continue-writing": {
|
|
1880
|
+
"name": "Continue writing",
|
|
1881
|
+
"desc": "Pick up where you left off in the current doc.",
|
|
1882
|
+
"input": "Optional steering: tone, length, next section…"
|
|
1883
|
+
},
|
|
1884
|
+
"translate-zh-en": {
|
|
1885
|
+
"name": "Translate ZH ↔ EN",
|
|
1886
|
+
"desc": "Auto-detects source language. Preserves Markdown.",
|
|
1887
|
+
"input": "Paste the text to translate."
|
|
1888
|
+
}
|
|
1889
|
+
},
|
|
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",
|
|
1895
|
+
"usage_tooltip": "Prompt tokens ↑ Completion tokens ↓",
|
|
1896
|
+
"budget_warn_confirm": "You are nearing your monthly AI budget. Send anyway?",
|
|
1897
|
+
"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",
|
|
1905
|
+
"more_actions": "More actions",
|
|
1906
|
+
"commands_empty": "No matching commands.",
|
|
1907
|
+
"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."
|
|
1914
|
+
},
|
|
1915
|
+
"files": {
|
|
1916
|
+
"title": "Knowledge Base",
|
|
1917
|
+
"kb": "Knowledge Bases",
|
|
1918
|
+
"tree": "All Notes",
|
|
1919
|
+
"recent": "Recent",
|
|
1920
|
+
"favorites": "Favorites",
|
|
1921
|
+
"open_local": "Open from device",
|
|
1922
|
+
"open_local_failed": "Could not open this file. Make sure it's a text or Markdown file.",
|
|
1923
|
+
"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",
|
|
1931
|
+
"cancel": "Cancel",
|
|
1932
|
+
"kb_create_failed": "Could not create the knowledge base."
|
|
1933
|
+
},
|
|
1934
|
+
"media": {
|
|
1935
|
+
"title": "Cloud images",
|
|
1936
|
+
"search": "Search images",
|
|
1937
|
+
"loading": "Loading…",
|
|
1938
|
+
"empty": "No cloud images yet.",
|
|
1939
|
+
"insert": "Insert cloud image"
|
|
1940
|
+
}
|
|
1941
|
+
},
|
|
1942
|
+
"notifications": {
|
|
1943
|
+
"__mt": true,
|
|
1944
|
+
"title": "Push Notifications",
|
|
1945
|
+
"subtitle": "Receive alerts when your AI tasks finish or collaborators @ you.",
|
|
1946
|
+
"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.",
|
|
1950
|
+
"enable": "Enable",
|
|
1951
|
+
"disable": "Disable",
|
|
1952
|
+
"no_token": "Failed to obtain a device token.",
|
|
1953
|
+
"device_registered": "This device is registered:",
|
|
1954
|
+
"registered_devices": "Registered devices",
|
|
1955
|
+
"no_devices": "No devices registered yet.",
|
|
1956
|
+
"revoke": "Revoke",
|
|
1957
|
+
"revoke_confirm": "Revoke this device? It will stop receiving push notifications immediately.",
|
|
1958
|
+
"platform": {
|
|
1959
|
+
"web": "Web",
|
|
1960
|
+
"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."
|
|
1969
|
+
},
|
|
1970
|
+
"offline": {
|
|
1971
|
+
"__mt": true,
|
|
1972
|
+
"cache_enabled": "Offline cache enabled",
|
|
1973
|
+
"cache_disabled": "Offline cache disabled",
|
|
1974
|
+
"cache_size": "{size} cached",
|
|
1975
|
+
"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.",
|
|
1980
|
+
"cache_settings": "Offline Cache Settings",
|
|
1981
|
+
"max_notes": "Max cached notes"
|
|
1982
|
+
},
|
|
1983
|
+
"outline": {
|
|
1984
|
+
"empty": "No headings found",
|
|
1985
|
+
"title": "Outline",
|
|
1986
|
+
"expand": "Expand",
|
|
1987
|
+
"collapse": "Collapse"
|
|
1988
|
+
},
|
|
1989
|
+
"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}",
|
|
1997
|
+
"vitals_good": "Good",
|
|
1998
|
+
"vitals_needs_improvement": "Needs improvement",
|
|
1999
|
+
"vitals_poor": "Poor"
|
|
2000
|
+
},
|
|
2001
|
+
"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",
|
|
2008
|
+
"granted": "Clipboard access granted",
|
|
2009
|
+
"denied": "Clipboard access denied",
|
|
2010
|
+
"revoke": "Revoke Permission"
|
|
2011
|
+
},
|
|
2012
|
+
"plugin_action": {
|
|
2013
|
+
"title": "Ejecutar plugin",
|
|
2014
|
+
"run_action": "Ejecutar",
|
|
2015
|
+
"invoking": "Ejecutando...",
|
|
2016
|
+
"success": "Plugin aplicado",
|
|
2017
|
+
"no_changes": "Sin cambios",
|
|
2018
|
+
"no_plugins": "Sin plugins en ejecución"
|
|
2019
|
+
},
|
|
2020
|
+
"plugins": {
|
|
2021
|
+
"tabs": {
|
|
2022
|
+
"preset": "Integradas",
|
|
2023
|
+
"installed": "Instalados",
|
|
2024
|
+
"market": "Mercado"
|
|
2025
|
+
},
|
|
2026
|
+
"installed": {
|
|
2027
|
+
"empty": "Aún no hay plugins instalados."
|
|
2028
|
+
},
|
|
2029
|
+
"sandbox": {
|
|
2030
|
+
"label": "Nivel de sandbox",
|
|
2031
|
+
"sandbox": "Sandbox (JS)",
|
|
2032
|
+
"local": "Local (sin red)",
|
|
2033
|
+
"system": "Sistema (acceso a red)"
|
|
2034
|
+
},
|
|
2035
|
+
"permissions": {
|
|
2036
|
+
"label": "Permisos"
|
|
2037
|
+
},
|
|
2038
|
+
"market": {
|
|
2039
|
+
"search": "Buscar plugins...",
|
|
2040
|
+
"refresh": "Actualizar",
|
|
2041
|
+
"cat_all": "Todos",
|
|
2042
|
+
"cached": "Mostrando resultados en caché",
|
|
2043
|
+
"loading": "Cargando mercado...",
|
|
2044
|
+
"empty": "No se encontraron plugins",
|
|
2045
|
+
"install": "Instalar",
|
|
2046
|
+
"installed": "Instalado",
|
|
2047
|
+
"installing": "Instalando..."
|
|
2048
|
+
},
|
|
2049
|
+
"install": {
|
|
2050
|
+
"from_file": "Instalar desde .zip",
|
|
2051
|
+
"url_placeholder": "URL del repositorio GitHub (https://github.com/…)",
|
|
2052
|
+
"validate": "Importar",
|
|
2053
|
+
"confirm_url": "¿Instalar plugin desde URL?",
|
|
2054
|
+
"author": "Autor",
|
|
2055
|
+
"permissions": "Permisos",
|
|
2056
|
+
"no_permissions": "Sin permisos",
|
|
2057
|
+
"fetching_release": "Obteniendo información del lanzamiento...",
|
|
2058
|
+
"downloading": "Descargando..."
|
|
2059
|
+
},
|
|
2060
|
+
"verified": "Verificado",
|
|
2061
|
+
"enable": "Activar",
|
|
2062
|
+
"disable": "Desactivar",
|
|
2063
|
+
"uninstall": "Desinstalar",
|
|
2064
|
+
"changelog": "Registro de cambios",
|
|
2065
|
+
"view_source": "Código fuente",
|
|
2066
|
+
"blacklisted": "En lista negra",
|
|
2067
|
+
"blacklist_warning": "Este plugin ha sido puesto en lista negra debido a un problema de seguridad. Por favor desinstálelo.",
|
|
2068
|
+
"process_error": "El proceso del plugin falló. Alterne para reiniciar.",
|
|
2069
|
+
"error": {
|
|
2070
|
+
"platform_not_supported": "No hay descarga disponible para su plataforma."
|
|
2071
|
+
},
|
|
2072
|
+
"preset": {
|
|
2073
|
+
"initializing": "Cargando...",
|
|
2074
|
+
"download": "Descargar",
|
|
2075
|
+
"retry": "Reintentar",
|
|
2076
|
+
"ready": "Activado",
|
|
2077
|
+
"downloading": "Descargando...",
|
|
2078
|
+
"loading": "Cargando...",
|
|
2079
|
+
"error": "Error",
|
|
2080
|
+
"large_bundle": "Paquete grande (>500 KB) — la descarga puede tardar un momento",
|
|
2081
|
+
"cancel": "Cancelar",
|
|
2082
|
+
"delete": "Eliminar"
|
|
2083
|
+
}
|
|
2084
|
+
},
|
|
2085
|
+
"publish": {
|
|
2086
|
+
"settings_empty": "No hay destinos de publicación configurados",
|
|
2087
|
+
"settings_hint": "Agregue un repositorio de GitHub o un endpoint de API personalizado para publicar sus artículos.",
|
|
2088
|
+
"add_target": "Agregar destino",
|
|
2089
|
+
"edit_target": "Editar",
|
|
2090
|
+
"delete_target": "Eliminar",
|
|
2091
|
+
"test_connection": "Probar conexión",
|
|
2092
|
+
"github": "Repositorio GitHub",
|
|
2093
|
+
"custom_api": "API personalizada",
|
|
2094
|
+
"target_name": "Nombre",
|
|
2095
|
+
"target_name_placeholder": "ej., Mi blog",
|
|
2096
|
+
"repo_url": "URL del repositorio",
|
|
2097
|
+
"repo_url_placeholder": "https://github.com/usuario/blog",
|
|
2098
|
+
"branch": "Rama",
|
|
2099
|
+
"articles_dir": "Directorio de artículos",
|
|
2100
|
+
"articles_dir_placeholder": "content/posts/",
|
|
2101
|
+
"images_dir": "Directorio de imágenes",
|
|
2102
|
+
"images_dir_placeholder": "static/images/",
|
|
2103
|
+
"token": "Token de acceso personal",
|
|
2104
|
+
"token_placeholder": "ghp_xxxxxxxxxxxx",
|
|
2105
|
+
"front_matter_template": "Plantilla de Front Matter",
|
|
2106
|
+
"endpoint": "Endpoint de API",
|
|
2107
|
+
"endpoint_placeholder": "https://api.ejemplo.com/articulos",
|
|
2108
|
+
"method": "Método HTTP",
|
|
2109
|
+
"headers": "Encabezados (JSON)",
|
|
2110
|
+
"body_template": "Plantilla del cuerpo",
|
|
2111
|
+
"template_presets": "Plantillas preestablecidas",
|
|
2112
|
+
"preset_hugo": "Hugo",
|
|
2113
|
+
"preset_hexo": "Hexo",
|
|
2114
|
+
"preset_astro": "Astro",
|
|
2115
|
+
"preset_custom": "Personalizado",
|
|
2116
|
+
"file_name_pattern": "Patrón de nombre de archivo",
|
|
2117
|
+
"file_name_preset": "Preajuste de nombre",
|
|
2118
|
+
"file_name_preview": "Vista previa",
|
|
2119
|
+
"preset_simple": "Simple (nombre de archivo)",
|
|
2120
|
+
"preset_date_slug": "Fecha + Slug",
|
|
2121
|
+
"preset_date_filename": "Fecha + Nombre de archivo",
|
|
2122
|
+
"preset_year_month": "Año/Mes/Slug",
|
|
2123
|
+
"file_name_variables": "Variables: {{date}}, {{year}}, {{month}}, {{day}}, {{slug}}, {{filename}}, {{title}}",
|
|
2124
|
+
"rss_section": "Fuente RSS",
|
|
2125
|
+
"rss_enable": "Generar fuente RSS",
|
|
2126
|
+
"rss_enable_hint": "Actualizar automáticamente feed.xml al publicar",
|
|
2127
|
+
"rss_feed_path": "Ruta del archivo de fuente",
|
|
2128
|
+
"rss_feed_path_placeholder": "feed.xml",
|
|
2129
|
+
"rss_site_url": "URL del sitio",
|
|
2130
|
+
"rss_site_url_placeholder": "https://miblog.com",
|
|
2131
|
+
"rss_feed_title": "Título de la fuente",
|
|
2132
|
+
"rss_feed_title_placeholder": "Mi blog",
|
|
2133
|
+
"rss_feed_description": "Descripción de la fuente",
|
|
2134
|
+
"rss_feed_description_placeholder": "Artículos sobre...",
|
|
2135
|
+
"rss_language": "Idioma",
|
|
2136
|
+
"rss_author_name": "Autor",
|
|
2137
|
+
"rss_author_name_placeholder": "Juan Pérez",
|
|
2138
|
+
"rss_max_items": "Máximo de elementos en la fuente",
|
|
2139
|
+
"rss_include_full_content": "Incluir contenido completo del artículo en la fuente",
|
|
2140
|
+
"rss_feed_endpoint": "Endpoint de fuente RSS",
|
|
2141
|
+
"rss_feed_endpoint_placeholder": "https://api.ejemplo.com/rss",
|
|
2142
|
+
"rss_update_failed": "Actualización de fuente RSS fallida",
|
|
2143
|
+
"progress_title": "Publicando...",
|
|
2144
|
+
"progress_publishing": "Subiendo...",
|
|
2145
|
+
"progress_rss": "Actualizando RSS...",
|
|
2146
|
+
"progress_done": "Listo",
|
|
2147
|
+
"progress_failed": "Fallido",
|
|
2148
|
+
"enable_seo": "Optimización SEO",
|
|
2149
|
+
"enable_seohint": "Generar título, extracto, etiquetas y meta descripción antes de publicar",
|
|
2150
|
+
"next_seo": "Siguiente: SEO →",
|
|
2151
|
+
"back_to_targets": "Volver",
|
|
2152
|
+
"seo_no_provider": "No se ha configurado un proveedor de IA. Por favor, configure uno en Ajustes."
|
|
2153
|
+
},
|
|
2154
|
+
"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.",
|
|
2160
|
+
"refresh": "Refresh"
|
|
2161
|
+
},
|
|
2162
|
+
"quickopen": {
|
|
2163
|
+
"__mt": true,
|
|
2164
|
+
"title": "Quick Open",
|
|
2165
|
+
"placeholder": "Search notes...",
|
|
2166
|
+
"no_results": "No notes found",
|
|
2167
|
+
"hint_enter": "↵ Open",
|
|
2168
|
+
"hint_cmd_enter": "⌘↵ Open in new tab"
|
|
2169
|
+
},
|
|
2170
|
+
"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",
|
|
2183
|
+
"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."
|
|
2192
|
+
},
|
|
2193
|
+
"review": {
|
|
2194
|
+
"panel_title": "Revisiones",
|
|
2195
|
+
"tab_label": "Revisión",
|
|
2196
|
+
"no_reviews": "Sin revisiones todavía",
|
|
2197
|
+
"no_reviews_hint": "Selecciona texto en el editor y usa ⌘⇧R para agregar una revisión.",
|
|
2198
|
+
"not_git_bound": "No vinculado a un repositorio Git",
|
|
2199
|
+
"not_git_bound_hint": "Vincula la base de conocimientos a un repositorio Git para usar revisiones colaborativas.",
|
|
2200
|
+
"bind_git_btn": "Vincular repositorio Git",
|
|
2201
|
+
"open_count": "abierto",
|
|
2202
|
+
"resolved_count": "Resuelto",
|
|
2203
|
+
"add_review": "Agregar revisión",
|
|
2204
|
+
"reply": "Responder",
|
|
2205
|
+
"resolve": "Resolve",
|
|
2206
|
+
"wontfix": "No se corregirá",
|
|
2207
|
+
"reanchor": "Reancorar",
|
|
2208
|
+
"mark_resolved": "Marcar como resuelto",
|
|
2209
|
+
"resolved": "Resuelto",
|
|
2210
|
+
"wontfix_label": "No se corregirá",
|
|
2211
|
+
"unanchored": "Posición perdida",
|
|
2212
|
+
"relocated": "Posición movida",
|
|
2213
|
+
"verified_prompt": "El documento ha cambiado desde la última verificación. ¿Marcar como revisado?",
|
|
2214
|
+
"mark_verified": "Marcar como revisado",
|
|
2215
|
+
"lock_self": "Estás editando este archivo",
|
|
2216
|
+
"lock_other": "está editando este archivo",
|
|
2217
|
+
"lock_expiry": "min restantes",
|
|
2218
|
+
"view_readonly": "Ver solo lectura",
|
|
2219
|
+
"force_unlock": "Forzar desbloqueo",
|
|
2220
|
+
"select_text_first": "Por favor selecciona texto primero",
|
|
2221
|
+
"source_mode_limit_hint": "Las revisiones solo están disponibles en el modo visual",
|
|
2222
|
+
"default_comment": "",
|
|
2223
|
+
"ai_improve": "AI Improve",
|
|
2224
|
+
"ai_summary": "AI Summary",
|
|
2225
|
+
"ai_review": "AI Review",
|
|
2226
|
+
"ai_respond": "AI Suggest",
|
|
2227
|
+
"ai_in_progress": "AI is analyzing the document…",
|
|
2228
|
+
"ai_cancel": "Cancel",
|
|
2229
|
+
"ai_no_results": "AI generated no review suggestions",
|
|
2230
|
+
"ai_invalid_filtered": "{count} review(s) had invalid format and were skipped",
|
|
2231
|
+
"ai_author_badge": "AI",
|
|
2232
|
+
"ai_hint_from_tool": "AI returned reviews via tool call",
|
|
2233
|
+
"ai_hint_from_json": "AI returned reviews via JSON fallback",
|
|
2234
|
+
"ai_hint_failed": "This model does not support AI Review. Switch to Claude / GPT-4 / Gemini.",
|
|
2235
|
+
"ai_disclaimer_title": "Enable AI Review — Data Use Notice",
|
|
2236
|
+
"ai_disclaimer_body": "AI Review will send the entire current document and all review comments to your selected AI provider:",
|
|
2237
|
+
"ai_disclaimer_body_details": "Reviews may include team members' names and internal discussion. Please confirm this knowledge base is suitable for cloud processing.",
|
|
2238
|
+
"ai_disclaimer_local_hint": "Want to keep everything local? Switch to an Ollama provider — all processing happens on this machine.",
|
|
2239
|
+
"ai_disclaimer_switch_local": "Switch to local provider",
|
|
2240
|
+
"ai_disclaimer_confirm": "I understand, enable AI Review",
|
|
2241
|
+
"ai_disclaimer_dont_ask": "Don't ask again for this provider",
|
|
2242
|
+
"dimension_logic": "Logic",
|
|
2243
|
+
"dimension_expression": "Expression",
|
|
2244
|
+
"dimension_fact": "Fact",
|
|
2245
|
+
"dimension_structure": "Structure",
|
|
2246
|
+
"ai_inflight_cancelled": "AI Review cancelled because the active file changed",
|
|
2247
|
+
"ai_merge_blocked": "Repository is in the middle of a merge. Resolve conflicts first.",
|
|
2248
|
+
"title": "Reviews",
|
|
2249
|
+
"no_open": "No open reviews.",
|
|
2250
|
+
"resolved_section": "Resolved",
|
|
2251
|
+
"add_comment": "Add a comment…",
|
|
2252
|
+
"send": "Send",
|
|
2253
|
+
"orphaned": "orphaned",
|
|
2254
|
+
"type_suggest": "Suggestion",
|
|
2255
|
+
"type_question": "Question",
|
|
2256
|
+
"type_approve": "Approved",
|
|
2257
|
+
"type_reject": "Rejected",
|
|
2258
|
+
"ai_review_unavailable": "AI Review requires Cloud KMS encryption mode.",
|
|
2259
|
+
"close": "Close"
|
|
2260
|
+
},
|
|
2261
|
+
"search": {
|
|
2262
|
+
"find_placeholder": "Find...",
|
|
2263
|
+
"replace_placeholder": "Replace with...",
|
|
2264
|
+
"no_results": "No results",
|
|
2265
|
+
"case_sensitive": "Coincidencia exacta",
|
|
2266
|
+
"replace": "Replace",
|
|
2267
|
+
"replace_all": "Replace All",
|
|
2268
|
+
"regex": "Usar expresión regular",
|
|
2269
|
+
"regex_error": "Expresión regular inválida",
|
|
2270
|
+
"match_status": "{current} / {total}",
|
|
2271
|
+
"toggle_regex": "Toggle regular expression",
|
|
2272
|
+
"toggle_case": "Toggle case-sensitive",
|
|
2273
|
+
"prev": "Previous match",
|
|
2274
|
+
"next": "Next match",
|
|
2275
|
+
"open_replace": "Open replace",
|
|
2276
|
+
"close_replace": "Close replace",
|
|
2277
|
+
"close": "Close search",
|
|
2278
|
+
"invalid_regex": "Invalid regular expression"
|
|
2279
|
+
},
|
|
2280
|
+
"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",
|
|
2287
|
+
"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",
|
|
2291
|
+
"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",
|
|
2300
|
+
"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.",
|
|
2304
|
+
"recovery_complete": "Recovery code confirmed.",
|
|
2305
|
+
"i_have_written_down": "I have written down my recovery code",
|
|
2306
|
+
"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.",
|
|
2310
|
+
"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",
|
|
2324
|
+
"back": "Back",
|
|
2325
|
+
"next": "Next",
|
|
2326
|
+
"save": "Save",
|
|
2327
|
+
"cancel": "Cancel",
|
|
2328
|
+
"setup_complete": "E2E encryption enabled",
|
|
2329
|
+
"deriving_key": "Deriving encryption key...",
|
|
2330
|
+
"encrypting": "Encrypting notes...",
|
|
2331
|
+
"current_mode": "Current mode: {mode}",
|
|
2332
|
+
"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"
|
|
2339
|
+
},
|
|
2340
|
+
"seo": {
|
|
2341
|
+
"title": "Optimización SEO",
|
|
2342
|
+
"generating": "Analizando artículo...",
|
|
2343
|
+
"titles": "Candidatos de título",
|
|
2344
|
+
"custom_title": "Título personalizado...",
|
|
2345
|
+
"excerpt": "Extracto",
|
|
2346
|
+
"tags": "Etiquetas",
|
|
2347
|
+
"add_tag": "Agregar etiqueta...",
|
|
2348
|
+
"slug": "Slug de URL",
|
|
2349
|
+
"meta_description": "Meta descripción",
|
|
2350
|
+
"regenerate": "Regenerar",
|
|
2351
|
+
"apply": "Aplicar",
|
|
2352
|
+
"retry": "Reintentar",
|
|
2353
|
+
"content_too_short": "El contenido del artículo es demasiado corto para el análisis SEO.",
|
|
2354
|
+
"completed": "SEO optimizado",
|
|
2355
|
+
"step_description": "Generar título, extracto y etiquetas"
|
|
2356
|
+
},
|
|
2357
|
+
"sessions": {
|
|
2358
|
+
"__mt": true,
|
|
2359
|
+
"title": "Active Sessions",
|
|
2360
|
+
"active_sessions": "Active Sessions",
|
|
2361
|
+
"anomaly_alerts": "Security Alerts",
|
|
2362
|
+
"current": "Current",
|
|
2363
|
+
"last_active": "Last active",
|
|
2364
|
+
"revoke": "Revoke",
|
|
2365
|
+
"revoking": "Revoking…",
|
|
2366
|
+
"confirm_revoke": "Revoke this session?",
|
|
2367
|
+
"yes": "Yes",
|
|
2368
|
+
"no": "Cancel",
|
|
2369
|
+
"dismiss": "Dismiss",
|
|
2370
|
+
"just_now": "Just now",
|
|
2371
|
+
"hours_ago": "h ago",
|
|
2372
|
+
"days_ago": "d ago"
|
|
2373
|
+
},
|
|
2374
|
+
"settings": {
|
|
2375
|
+
"title": "Settings",
|
|
2376
|
+
"tabs": {
|
|
2377
|
+
"general": "General",
|
|
2378
|
+
"editor": "Editor",
|
|
2379
|
+
"appearance": "Apariencia",
|
|
2380
|
+
"ai": "Chat",
|
|
2381
|
+
"image_ai": "Imagen IA",
|
|
2382
|
+
"mcp": "MCP",
|
|
2383
|
+
"image": "Alojamiento",
|
|
2384
|
+
"publish": "Publicar",
|
|
2385
|
+
"voice": "Voz IA",
|
|
2386
|
+
"knowledge_base": "Base de conocimiento",
|
|
2387
|
+
"plugins": "Plugins",
|
|
2388
|
+
"kb_sync": "Sincronización KB",
|
|
2389
|
+
"picora": "Picora",
|
|
2390
|
+
"export": "Exportar",
|
|
2391
|
+
"shortcuts": "Atajos"
|
|
2392
|
+
},
|
|
2393
|
+
"groups": {
|
|
2394
|
+
"general": "General",
|
|
2395
|
+
"ai": "Configuración IA",
|
|
2396
|
+
"extensions": "Extensiones",
|
|
2397
|
+
"knowledge_base": "Base de Conocimiento",
|
|
2398
|
+
"picora": "Picora"
|
|
2399
|
+
},
|
|
2400
|
+
"language": {
|
|
2401
|
+
"label": "Idioma",
|
|
2402
|
+
"system": "Seguir sistema"
|
|
2403
|
+
},
|
|
2404
|
+
"theme": {
|
|
2405
|
+
"label": "Tema",
|
|
2406
|
+
"system": "Seguir sistema",
|
|
2407
|
+
"light": "Claro",
|
|
2408
|
+
"dark": "Oscuro"
|
|
2409
|
+
},
|
|
2410
|
+
"appearance": {
|
|
2411
|
+
"theme_section": "Tema",
|
|
2412
|
+
"dark_mode_section": "Modo oscuro",
|
|
2413
|
+
"font_section": "Fuente",
|
|
2414
|
+
"separate_dark_theme": "Usar tema independiente para el modo oscuro",
|
|
2415
|
+
"dark_theme": "Tema del modo oscuro",
|
|
2416
|
+
"dark_mode_label": "Apariencia"
|
|
2417
|
+
},
|
|
2418
|
+
"font_size": {
|
|
2419
|
+
"label": "Tamaño de fuente"
|
|
2420
|
+
},
|
|
2421
|
+
"auto_save": {
|
|
2422
|
+
"label": "Guardado automático",
|
|
2423
|
+
"interval": "Intervalo de guardado automático"
|
|
2424
|
+
},
|
|
2425
|
+
"remember_last_folder": "Recordar la última carpeta abierta",
|
|
2426
|
+
"show_cloud_insert_entries": "Mostrar opciones de inserción en la nube",
|
|
2427
|
+
"show_cloud_insert_entries_desc": "Añadir opciones 'Insertar imagen/audio/vídeo en la nube' al menú Formato y al menú contextual.",
|
|
2428
|
+
"rules_history_count": "Versiones de historial de MORAYA.md",
|
|
2429
|
+
"rules_history_count_hint": "Número de versiones históricas a conservar por archivo de reglas (predeterminado: 10)",
|
|
2430
|
+
"editor": {
|
|
2431
|
+
"line_width": "Ancho de línea del editor",
|
|
2432
|
+
"tab_size": "Tamaño de tabulación",
|
|
2433
|
+
"show_line_numbers": "Mostrar números de línea en modo fuente"
|
|
2434
|
+
},
|
|
2435
|
+
"version": "Moraya v{version}",
|
|
2436
|
+
"permissions": {
|
|
2437
|
+
"mcp_title": "Permisos de MCP",
|
|
2438
|
+
"ai_title": "Configuración de IA",
|
|
2439
|
+
"ai_max_tokens": "Tokens de salida máximos",
|
|
2440
|
+
"ai_max_tokens_hint": "Número máximo de tokens que la IA puede generar por respuesta. Valores más altos permiten respuestas más largas y llamadas a herramientas, pero cuestan más.",
|
|
2441
|
+
"ai_tool_result_max_chars": "Máx. caracteres del resultado de herramienta",
|
|
2442
|
+
"ai_tool_result_max_chars_hint": "Máximo de caracteres conservados de cada resultado de herramienta MCP. Valores más grandes preservan más detalle pero consumen más contexto.",
|
|
2443
|
+
"ai_max_tool_rounds": "Máx. rondas de llamadas a herramientas",
|
|
2444
|
+
"ai_max_tool_rounds_hint": "Número máximo de rondas de llamadas a herramientas que la IA puede realizar en un solo turno de conversación. Aumente esto para tareas complejas de múltiples pasos."
|
|
2445
|
+
},
|
|
2446
|
+
"voice": {
|
|
2447
|
+
"providers": "Proveedores de voz",
|
|
2448
|
+
"add_provider": "Agregar proveedor",
|
|
2449
|
+
"edit_provider": "Editar proveedor",
|
|
2450
|
+
"no_providers": "No hay proveedores de voz configurados.",
|
|
2451
|
+
"provider": "Proveedor",
|
|
2452
|
+
"api_key": "API Key",
|
|
2453
|
+
"api_key_optional": "Opcional para AWS (use Access Key en su lugar)",
|
|
2454
|
+
"aws_access_key": "AWS Access Key ID",
|
|
2455
|
+
"aws_secret_key": "AWS Secret Access Key",
|
|
2456
|
+
"region": "Región",
|
|
2457
|
+
"model": "Modelo",
|
|
2458
|
+
"model_placeholder": "Introduzca el nombre del modelo",
|
|
2459
|
+
"endpoint_id_placeholder": "Introduzca el ID del endpoint de inferencia",
|
|
2460
|
+
"language": "Idioma",
|
|
2461
|
+
"lang_auto": "Detección automática",
|
|
2462
|
+
"lang_multi": "Multiidioma",
|
|
2463
|
+
"base_url": "URL personalizada de WebSocket",
|
|
2464
|
+
"test_connection": "Probar conexión",
|
|
2465
|
+
"testing": "Probando...",
|
|
2466
|
+
"test_ok": "Conectado",
|
|
2467
|
+
"test_failed": "Conexión fallida",
|
|
2468
|
+
"set_active": "Establecer como predeterminado",
|
|
2469
|
+
"active": "Predeterminado",
|
|
2470
|
+
"custom": "Personalizado",
|
|
2471
|
+
"storage": "Almacenamiento",
|
|
2472
|
+
"recording_backup_dir": "Respaldo de grabaciones",
|
|
2473
|
+
"recording_backup_hint": "Guardar grabaciones completas como archivos WAV después de cada sesión.",
|
|
2474
|
+
"voice_sync_dir": "Directorio de sincronización de perfiles de voz",
|
|
2475
|
+
"voice_sync_hint": "Sincronice perfiles de voz mediante almacenamiento en la nube (ej. iCloud, Dropbox). Use el botón Cambiar para elegir una carpeta — los perfiles existentes se migrarán automáticamente.",
|
|
2476
|
+
"sync_default": "Datos de la aplicación (predeterminado)",
|
|
2477
|
+
"disabled": "Desactivado",
|
|
2478
|
+
"migrating_profiles": "Migrando...",
|
|
2479
|
+
"migration_failed": "Migración fallida",
|
|
2480
|
+
"profiles": "Perfiles de voz",
|
|
2481
|
+
"no_profiles": "Aún no hay perfiles de voz. Se crean automáticamente después de las sesiones de transcripción.",
|
|
2482
|
+
"naming": {
|
|
2483
|
+
"male": "Hombre {n}",
|
|
2484
|
+
"female": "Mujer {n}",
|
|
2485
|
+
"bystander": "Espectador {n}",
|
|
2486
|
+
"speaker": "Hablante {n}"
|
|
2487
|
+
},
|
|
2488
|
+
"providers_hint": "Configurar proveedores de voz para transcripción."
|
|
2489
|
+
},
|
|
2490
|
+
"image_host": {
|
|
2491
|
+
"picora": {
|
|
2492
|
+
"moved_hint": "Los ajustes de Picora ahora están en la pestaña Picora.",
|
|
2493
|
+
"jump_to_tab": "Saltar a la pestaña Picora"
|
|
2494
|
+
},
|
|
2495
|
+
"subtitle_suffix": "Las opciones específicas de Picora están en la pestaña Picora."
|
|
2496
|
+
},
|
|
2497
|
+
"picora": {
|
|
2498
|
+
"account": {
|
|
2499
|
+
"title": "Cuentas de Picora",
|
|
2500
|
+
"add": "Añadir cuenta de Picora",
|
|
2501
|
+
"add_first": "Empezar",
|
|
2502
|
+
"empty": "Aún no hay cuentas de Picora. Conecte su cuenta para insertar medios en la nube y sincronizar KB.",
|
|
2503
|
+
"set_default": "Establecer como predeterminado",
|
|
2504
|
+
"test": "Probar conexión",
|
|
2505
|
+
"edit": "Editar",
|
|
2506
|
+
"remove": "Eliminar",
|
|
2507
|
+
"quota": "Cuota",
|
|
2508
|
+
"unknown_email": "(sin correo)",
|
|
2509
|
+
"no_endpoint": "(sin endpoint)",
|
|
2510
|
+
"in_use": "En uso por {n}",
|
|
2511
|
+
"quota_loading": "Cargando cuota…",
|
|
2512
|
+
"quota_unavailable": "Cuota no disponible — pulse ↻ para reintentar",
|
|
2513
|
+
"data_point_na": "Punto de datos no disponible",
|
|
2514
|
+
"needs_picora_v017": "Requiere Picora v0.17.1+",
|
|
2515
|
+
"not_activated": "Aún no ha activado un plan de Picora.",
|
|
2516
|
+
"activate": "Activar plan",
|
|
2517
|
+
"remove_confirm_title": "Eliminar cuenta de Picora",
|
|
2518
|
+
"remove_confirm_body": "A punto de eliminar: {email}",
|
|
2519
|
+
"cascade_default": "Esta es la cuenta predeterminada de Picora — se elegirá un nuevo predeterminado automáticamente.",
|
|
2520
|
+
"cascade_image_host": "Este es el alojamiento de imágenes predeterminado — se borrará el predeterminado.",
|
|
2521
|
+
"cascade_kb_bindings": "{n} bases de conocimiento se desvincularán. Los datos en la nube se conservan en Picora.",
|
|
2522
|
+
"cloud_data_preserved": "Solo se eliminará la configuración local. Los datos en la nube en Picora se conservan.",
|
|
2523
|
+
"confirm_remove": "Eliminar"
|
|
2524
|
+
},
|
|
2525
|
+
"edit_title": "Editar cuenta de Picora",
|
|
2526
|
+
"kb_sync": {
|
|
2527
|
+
"title": "Sincronización de KB",
|
|
2528
|
+
"open_manager": "Abrir ajustes de sincronización de KB",
|
|
2529
|
+
"empty": "Aún no hay bases de conocimiento.",
|
|
2530
|
+
"missing_target": "(objetivo ausente)",
|
|
2531
|
+
"never": "Nunca sincronizado",
|
|
2532
|
+
"error": "error de sincronización",
|
|
2533
|
+
"unbound_label": "No vinculado a Picora:",
|
|
2534
|
+
"bind_action": "Vincular al predeterminado"
|
|
2535
|
+
},
|
|
2536
|
+
"resources": {
|
|
2537
|
+
"title": "Navegador de recursos en la nube",
|
|
2538
|
+
"tabs": {
|
|
2539
|
+
"image": "Imágenes",
|
|
2540
|
+
"audio": "Audio",
|
|
2541
|
+
"video": "Vídeos"
|
|
2542
|
+
}
|
|
2543
|
+
},
|
|
2544
|
+
"advanced": {
|
|
2545
|
+
"title": "Avanzado",
|
|
2546
|
+
"img_domain": "Dominio de inserción predeterminado",
|
|
2547
|
+
"img_domain_hint": "Se usa como prefijo de URL pública al insertar imágenes de Picora.",
|
|
2548
|
+
"rewrite_base64": "Reescribir automáticamente imágenes base64 en documentos a Picora CDN al subir",
|
|
2549
|
+
"sidebar_pin": "Mostrar acceso directo a Picora en la barra lateral principal",
|
|
2550
|
+
"debug": "Activar registro de depuración"
|
|
2551
|
+
},
|
|
2552
|
+
"banner": "Nueva pestaña Picora. Todos los ajustes de Picora se han trasladado aquí; la pestaña de alojamiento de imágenes sigue disponible.",
|
|
2553
|
+
"banner_dismiss": "Entendido",
|
|
2554
|
+
"welcome": {
|
|
2555
|
+
"title": "Bienvenido a Picora — un hogar para sus medios",
|
|
2556
|
+
"body": "Aloje imágenes, audio, vídeo y documentos Markdown en su propia cuenta de Picora. Sincronice bases de conocimiento entre dispositivos e inserte recursos de la nube desde el editor con un clic.",
|
|
2557
|
+
"one_click": "Importación con un clic (recomendado)",
|
|
2558
|
+
"manual": "Añadir manualmente",
|
|
2559
|
+
"or": "o",
|
|
2560
|
+
"register": "¿No tiene cuenta? Regístrese en Picora"
|
|
2561
|
+
},
|
|
2562
|
+
"quota": {
|
|
2563
|
+
"images": "Imágenes",
|
|
2564
|
+
"docs": "Documentos",
|
|
2565
|
+
"audio": "Audio",
|
|
2566
|
+
"videos": "Vídeos",
|
|
2567
|
+
"kbs": "KBs"
|
|
2568
|
+
},
|
|
2569
|
+
"plan": {
|
|
2570
|
+
"none": "Inactivo",
|
|
2571
|
+
"trial": "Prueba",
|
|
2572
|
+
"pro": "Pro",
|
|
2573
|
+
"pro_plus": "Pro+"
|
|
2574
|
+
}
|
|
2575
|
+
},
|
|
2576
|
+
"tab_desc": {
|
|
2577
|
+
"export": "Configurar la exportación a PDF — tamaño de página, márgenes, fuentes y opciones de contenido."
|
|
2578
|
+
},
|
|
2579
|
+
"export": {
|
|
2580
|
+
"paper_size": "Tamaño de papel",
|
|
2581
|
+
"paper_a4": "A4",
|
|
2582
|
+
"paper_letter": "Letter",
|
|
2583
|
+
"paper_legal": "Legal",
|
|
2584
|
+
"paper_a3": "A3",
|
|
2585
|
+
"paper_a5": "A5",
|
|
2586
|
+
"orientation": "Orientación",
|
|
2587
|
+
"orientation_portrait": "Vertical",
|
|
2588
|
+
"orientation_landscape": "Horizontal",
|
|
2589
|
+
"margins": "Márgenes (mm)",
|
|
2590
|
+
"margins_top": "Superior",
|
|
2591
|
+
"margins_right": "Derecha",
|
|
2592
|
+
"margins_bottom": "Inferior",
|
|
2593
|
+
"margins_left": "Izquierda",
|
|
2594
|
+
"header_footer": "Encabezado y pie",
|
|
2595
|
+
"header_enabled": "Activar encabezado",
|
|
2596
|
+
"footer_enabled": "Activar pie de página",
|
|
2597
|
+
"template_hint": "Marcadores: {title} {page} {total} {date}",
|
|
2598
|
+
"typography": "Tipografía",
|
|
2599
|
+
"font_family": "Fuente",
|
|
2600
|
+
"font_family_placeholder": "Predeterminada del sistema",
|
|
2601
|
+
"font_size": "Tamaño de fuente",
|
|
2602
|
+
"content": "Contenido",
|
|
2603
|
+
"enable_highlight": "Resaltado de sintaxis",
|
|
2604
|
+
"enable_math": "Matemáticas (KaTeX)",
|
|
2605
|
+
"enable_mermaid": "Diagramas Mermaid",
|
|
2606
|
+
"advanced": "Avanzado",
|
|
2607
|
+
"auto_fallback": "Recurrir automáticamente al modo de compatibilidad al fallar",
|
|
2608
|
+
"auto_fallback_hint": "Si la ruta nativa de impresión falla, reintentar con la ruta basada en canvas. Desactivar para mostrar errores y dejar que el usuario reintente."
|
|
2609
|
+
},
|
|
2610
|
+
"account": "Account",
|
|
2611
|
+
"devices": "Devices",
|
|
2612
|
+
"about": "About",
|
|
2613
|
+
"select_section": "Select a settings section from the left.",
|
|
2614
|
+
"ai": {
|
|
2615
|
+
"title": "AI",
|
|
2616
|
+
"cloud_providers": "Cloud Providers",
|
|
2617
|
+
"local_models": "On-device Models",
|
|
2618
|
+
"add": "Add",
|
|
2619
|
+
"edit": "Edit provider",
|
|
2620
|
+
"delete": "Delete",
|
|
2621
|
+
"delete_confirm": "Delete this provider configuration?",
|
|
2622
|
+
"provider_deleted": "Deleted “{label}”",
|
|
2623
|
+
"provider_restored": "Provider restored",
|
|
2624
|
+
"save": "Save",
|
|
2625
|
+
"test": "Test",
|
|
2626
|
+
"testing": "Testing…",
|
|
2627
|
+
"test_ok": "Connection OK",
|
|
2628
|
+
"test_auth_error": "Auth failed — check API key",
|
|
2629
|
+
"test_network_error": "Network error",
|
|
2630
|
+
"test_rate_limited": "Rate limited — try later",
|
|
2631
|
+
"test_unsupported": "Unsupported response",
|
|
2632
|
+
"test_not_configured": "Not configured",
|
|
2633
|
+
"provider": "Provider",
|
|
2634
|
+
"label": "Label",
|
|
2635
|
+
"api_key": "API Key",
|
|
2636
|
+
"api_key_hint": "Stored only on this device.",
|
|
2637
|
+
"base_url": "Base URL (optional)",
|
|
2638
|
+
"base_url_hint": "Custom OpenAI-compatible endpoint, e.g. Ollama: http://192.168.1.10:11434/v1",
|
|
2639
|
+
"default_model": "Default model",
|
|
2640
|
+
"active": "Active",
|
|
2641
|
+
"set_active": "Use",
|
|
2642
|
+
"status_ready": "Ready",
|
|
2643
|
+
"status_not_configured": "Not configured",
|
|
2644
|
+
"empty_cloud": "No cloud providers configured. Tap “Add” to set up OpenAI, Claude, Gemini, DeepSeek, or any OpenAI-compatible endpoint.",
|
|
2645
|
+
"cloud_hint": "Your API keys are stored locally and sent directly to the provider — Moraya never sees them.",
|
|
2646
|
+
"rag": {
|
|
2647
|
+
"title": "History Reference (RAG)",
|
|
2648
|
+
"enabled": "Reference past conversations",
|
|
2649
|
+
"topk": "Snippets per send",
|
|
2650
|
+
"hint": "When on, Moraya finds up to N relevant snippets from your past AI chats and includes them as context. Off by default — increases token usage. Keyword-based search (no embeddings yet)."
|
|
2651
|
+
},
|
|
2652
|
+
"local": {
|
|
2653
|
+
"free_space": "Device free space",
|
|
2654
|
+
"unknown": "Unknown",
|
|
2655
|
+
"estimate_hint": "Estimated from browser quota.",
|
|
2656
|
+
"native_probe_failed": "Could not read native device free space; showing browser estimate.",
|
|
2657
|
+
"browser_only_hint": "On-device models are available only inside the Moraya iOS / Android app.",
|
|
2658
|
+
"browser_only_footer": "Open this page inside the Moraya mobile app to download and run on-device models.",
|
|
2659
|
+
"mobile_only": "On-device models are only available in the Moraya iOS / Android app.",
|
|
2660
|
+
"download": "Download",
|
|
2661
|
+
"cancel": "Cancel",
|
|
2662
|
+
"use": "Use",
|
|
2663
|
+
"delete": "Delete",
|
|
2664
|
+
"delete_confirm": "Delete {name} from this device?",
|
|
2665
|
+
"delete_failed": "Delete failed: {err}",
|
|
2666
|
+
"download_failed": "Download failed: {err}",
|
|
2667
|
+
"now_active": "{name} is now your active AI model.",
|
|
2668
|
+
"installed": "Installed",
|
|
2669
|
+
"too_big": "Too large",
|
|
2670
|
+
"fit_warn_inline": "This download will use more than 70% of your free space.",
|
|
2671
|
+
"fit_warn": "This model ({size}) will use over 70% of your free space and may slow iOS. Continue?",
|
|
2672
|
+
"fit_block": "Not enough free space for this model ({size}).",
|
|
2673
|
+
"engine_pending_title": "Inference engine pending Xcode setup",
|
|
2674
|
+
"engine_pending_text": "Models can be downloaded today. To run them, link MLX-Swift via Xcode → File → Add Package Dependencies (https://github.com/ml-explore/mlx-swift + mlx-swift-examples), or run `ruby scripts/add-mlx-spm.rb` in moraya-mobile/. The plugin auto-detects the link and activates.",
|
|
2675
|
+
"wifi_only": "Wi-Fi only downloads",
|
|
2676
|
+
"on_wifi": "Connected via Wi-Fi.",
|
|
2677
|
+
"on_cellular_blocked": "On cellular — downloads paused. Toggle off to allow.",
|
|
2678
|
+
"on_cellular_ok": "On cellular — downloads allowed.",
|
|
2679
|
+
"offline": "No network connection.",
|
|
2680
|
+
"cellular_blocked": "Downloads are blocked on cellular. Connect to Wi-Fi or turn off “Wi-Fi only”.",
|
|
2681
|
+
"update": "Update",
|
|
2682
|
+
"update_confirm": "Update {name}? The current copy will be deleted and the latest version downloaded."
|
|
2683
|
+
},
|
|
2684
|
+
"custom_templates": "Custom AI Templates",
|
|
2685
|
+
"empty_templates": "No custom templates yet. Tap “Add” to create a reusable system prompt.",
|
|
2686
|
+
"templates_hint": "Your templates appear in the AI tab’s empty-state quick actions alongside the built-ins.",
|
|
2687
|
+
"custom_workflows": "Custom AI Workflows",
|
|
2688
|
+
"empty_workflows": "No custom workflows yet. Tap “Add” to chain multiple AI steps.",
|
|
2689
|
+
"workflows_hint": "Workflows run their steps sequentially, feeding each step’s output into the next.",
|
|
2690
|
+
"wf": {
|
|
2691
|
+
"add": "New workflow",
|
|
2692
|
+
"edit": "Edit workflow",
|
|
2693
|
+
"name_placeholder": "e.g. Translate then bullet-summarize",
|
|
2694
|
+
"desc_placeholder": "Shown under the tile in the AI tab",
|
|
2695
|
+
"step_label_placeholder": "Step label (e.g. “Translate”)",
|
|
2696
|
+
"step_system_placeholder": "System prompt for this step",
|
|
2697
|
+
"input_tpl_hint": "Use {prev} for the previous step's output and {input} for the user's first message.",
|
|
2698
|
+
"add_step": "Add step",
|
|
2699
|
+
"remove_step": "Remove step",
|
|
2700
|
+
"required_name": "Workflow needs a name.",
|
|
2701
|
+
"required_steps": "Workflow needs at least one step with a system prompt.",
|
|
2702
|
+
"delete_confirm": "Delete this workflow?",
|
|
2703
|
+
"deleted": "Deleted “{name}”",
|
|
2704
|
+
"restored": "Workflow restored"
|
|
2705
|
+
},
|
|
2706
|
+
"tpl": {
|
|
2707
|
+
"add": "New template",
|
|
2708
|
+
"edit": "Edit template",
|
|
2709
|
+
"icon": "Icon",
|
|
2710
|
+
"name": "Name",
|
|
2711
|
+
"name_placeholder": "e.g. Code reviewer",
|
|
2712
|
+
"desc": "Short description",
|
|
2713
|
+
"desc_placeholder": "Shown under the tile",
|
|
2714
|
+
"system_prompt": "System prompt",
|
|
2715
|
+
"system_prompt_placeholder": "Behavior guidance the model receives at the start of every conversation using this template.",
|
|
2716
|
+
"requires_image": "Open image picker on tap",
|
|
2717
|
+
"requires_doc": "Auto-mention the open doc",
|
|
2718
|
+
"auto_insert": "Auto-open “Insert into note” when finished",
|
|
2719
|
+
"save": "Save",
|
|
2720
|
+
"delete": "Delete",
|
|
2721
|
+
"delete_confirm": "Delete this template?",
|
|
2722
|
+
"deleted": "Deleted “{name}”",
|
|
2723
|
+
"restored": "Template restored",
|
|
2724
|
+
"required_fields": "Name and system prompt are required.",
|
|
2725
|
+
"import": "Import",
|
|
2726
|
+
"export": "Export",
|
|
2727
|
+
"import_merge_confirm": "Import {n} template(s) and append to your library?",
|
|
2728
|
+
"import_empty": "The file contains no templates.",
|
|
2729
|
+
"import_failed": "Import failed: {err}"
|
|
2730
|
+
},
|
|
2731
|
+
"usage": {
|
|
2732
|
+
"title": "AI Usage",
|
|
2733
|
+
"loading": "Reading conversations…",
|
|
2734
|
+
"empty": "No AI calls this month yet — usage shows up after your first reply.",
|
|
2735
|
+
"tokens": "Tokens",
|
|
2736
|
+
"conversations": "Conversations",
|
|
2737
|
+
"cost": "Cost",
|
|
2738
|
+
"by_model": "By model",
|
|
2739
|
+
"history": "Previous months"
|
|
2740
|
+
},
|
|
2741
|
+
"budget": {
|
|
2742
|
+
"title": "Monthly Budget",
|
|
2743
|
+
"edit": "Edit",
|
|
2744
|
+
"done": "Done",
|
|
2745
|
+
"no_limit": "No monthly limit set.",
|
|
2746
|
+
"usd_limit": "USD limit / month",
|
|
2747
|
+
"cny_limit": "CNY limit / month",
|
|
2748
|
+
"alert_threshold": "Warn at (0–1)",
|
|
2749
|
+
"hint": "Setting either currency to 0 disables that cap. Warn threshold 0 disables warnings."
|
|
2750
|
+
}
|
|
2751
|
+
},
|
|
2752
|
+
"mcp": "MCP servers",
|
|
2753
|
+
"image_gen": {
|
|
2754
|
+
"title": "Image generation",
|
|
2755
|
+
"providers": "Providers",
|
|
2756
|
+
"add": "Add",
|
|
2757
|
+
"edit": "Edit image provider",
|
|
2758
|
+
"delete": "Delete",
|
|
2759
|
+
"save": "Save",
|
|
2760
|
+
"provider": "Provider",
|
|
2761
|
+
"label": "Label",
|
|
2762
|
+
"api_key": "API Key",
|
|
2763
|
+
"api_key_hint": "Stored only on this device. BYO key — never sent to Moraya servers.",
|
|
2764
|
+
"base_url": "Base URL (optional)",
|
|
2765
|
+
"base_url_hint": "Override for OpenAI-compatible image endpoints (Together AI, Cloudflare AI Gateway, on-prem proxies).",
|
|
2766
|
+
"default_model": "Default model",
|
|
2767
|
+
"active": "Active",
|
|
2768
|
+
"set_active": "Use",
|
|
2769
|
+
"status_ready": "Ready",
|
|
2770
|
+
"status_no_key": "No API key",
|
|
2771
|
+
"empty": "No image providers configured. Tap “Add” to set up OpenAI DALL-E or Doubao Seedream.",
|
|
2772
|
+
"hint": "Image-gen providers power workflow `ai.image` nodes and the upcoming Compose Article flow. Configure at least one to enable cover-image generation.",
|
|
2773
|
+
"style": {
|
|
2774
|
+
"section": "Style presets",
|
|
2775
|
+
"add": "Add",
|
|
2776
|
+
"edit": "Edit style preset",
|
|
2777
|
+
"delete": "Delete",
|
|
2778
|
+
"save": "Save",
|
|
2779
|
+
"label": "Label",
|
|
2780
|
+
"label_placeholder": "e.g. Moody noir",
|
|
2781
|
+
"suffix": "Style suffix",
|
|
2782
|
+
"suffix_placeholder": "Appended to “Cover illustration for: <title>. ”",
|
|
2783
|
+
"suffix_hint": "Describe lighting, palette, mood, aspect ratio — anything the model should remember for this style.",
|
|
2784
|
+
"hint": "These presets apply when you tap one in the Compose Cover step. Built-in presets stay available even after you edit them.",
|
|
2785
|
+
"builtin": "Built-in",
|
|
2786
|
+
"builtin_note": "This is a built-in preset. Your changes save as an override and can be reset by deleting (built-ins cannot be removed)."
|
|
2787
|
+
}
|
|
2788
|
+
},
|
|
2789
|
+
"publish": {
|
|
2790
|
+
"title": "Publish targets",
|
|
2791
|
+
"section": "Targets",
|
|
2792
|
+
"add": "Add",
|
|
2793
|
+
"edit": "Edit publish target",
|
|
2794
|
+
"delete": "Delete",
|
|
2795
|
+
"save": "Save",
|
|
2796
|
+
"icon": "Icon",
|
|
2797
|
+
"label": "Label",
|
|
2798
|
+
"label_placeholder": "WeChat 公众号 (主号)",
|
|
2799
|
+
"mcp_tool": "MCP tool",
|
|
2800
|
+
"mcp_tool_hint": "Bare name (`publish`) or namespaced (`mcp.<server-id>.<tool>`). Configure the MCP server itself in Settings → MCP.",
|
|
2801
|
+
"arg_template": "Argument template (JSON)",
|
|
2802
|
+
"arg_template_hint": "Use {title} {body} {topic} {coverKey} {coverPrompt} placeholders. Strings are JSON-escaped before substitution.",
|
|
2803
|
+
"empty": "No publish targets configured. Tap “Add” to wire a target to an MCP tool.",
|
|
2804
|
+
"hint": "Each target points at one MCP tool — e.g. a WeChat 公众号 bridge, a Substack webhook, or your own remote MCP. Compose’s Send menu lists every target."
|
|
2805
|
+
},
|
|
2806
|
+
"voiceai": {
|
|
2807
|
+
"title": "Voice AI",
|
|
2808
|
+
"engine": "Voice engine",
|
|
2809
|
+
"engine_local": "Local (on-device)",
|
|
2810
|
+
"engine_local_desc": "Speech recognition and read-aloud run entirely on your device — no network, no API keys.",
|
|
2811
|
+
"recommended": "Recommended",
|
|
2812
|
+
"external_soon": "External cloud voice — coming soon.",
|
|
2813
|
+
"unavailable": "On-device voice isn't available here — it requires the iOS app.",
|
|
2814
|
+
"stt_section": "Speech input",
|
|
2815
|
+
"stt_locale": "Recognition language",
|
|
2816
|
+
"stt_locale_device": "Follow device",
|
|
2817
|
+
"tts_section": "Read aloud",
|
|
2818
|
+
"auto_speak": "Auto-read AI replies",
|
|
2819
|
+
"voice_label": "Voice",
|
|
2820
|
+
"voice_default": "System default",
|
|
2821
|
+
"enhanced": "Enhanced",
|
|
2822
|
+
"rate": "Speed",
|
|
2823
|
+
"test": "Test voice",
|
|
2824
|
+
"test_sample": "Hello, I'm Moraya's on-device voice assistant."
|
|
2825
|
+
}
|
|
2826
|
+
},
|
|
2827
|
+
"shortcuts": {
|
|
2828
|
+
"title": "Keyboard Shortcuts",
|
|
2829
|
+
"intro": "All keyboard shortcuts in Moraya. Entries marked 🔒 are managed by the native menu and will become user-configurable in a later version.",
|
|
2830
|
+
"ai_chat_behavior": {
|
|
2831
|
+
"title": "AI Chat — Enter Key Behavior",
|
|
2832
|
+
"intro": "Choose how the Enter key behaves in the AI chat input.",
|
|
2833
|
+
"sends_action": "sends message",
|
|
2834
|
+
"newline_action": "newline",
|
|
2835
|
+
"mod_enter_send": {
|
|
2836
|
+
"label": "Cmd/Ctrl + Intro envía"
|
|
2837
|
+
},
|
|
2838
|
+
"enter_send": {
|
|
2839
|
+
"label": "Enter sends"
|
|
2840
|
+
},
|
|
2841
|
+
"default_badge": "Predeterminado"
|
|
2842
|
+
},
|
|
2843
|
+
"categories": {
|
|
2844
|
+
"file": "File",
|
|
2845
|
+
"edit": "Edit",
|
|
2846
|
+
"paragraph": "Paragraph",
|
|
2847
|
+
"format": "Format",
|
|
2848
|
+
"view": "View",
|
|
2849
|
+
"ai_chat": "AI Chat",
|
|
2850
|
+
"workflow": "Workflow",
|
|
2851
|
+
"mcp": "MCP"
|
|
2852
|
+
},
|
|
2853
|
+
"actions": {
|
|
2854
|
+
"file": {
|
|
2855
|
+
"new": "New Document",
|
|
2856
|
+
"new_window": "New Window",
|
|
2857
|
+
"open": "Open File",
|
|
2858
|
+
"save": "Save",
|
|
2859
|
+
"save_as": "Save As",
|
|
2860
|
+
"export_html": "Export HTML",
|
|
2861
|
+
"export_pdf": "Exportar PDF",
|
|
2862
|
+
"export_image": "Exportar imagen",
|
|
2863
|
+
"export_doc": "Exportar Word"
|
|
2864
|
+
},
|
|
2865
|
+
"edit": {
|
|
2866
|
+
"undo": "Undo",
|
|
2867
|
+
"redo": "Redo",
|
|
2868
|
+
"find": "Find",
|
|
2869
|
+
"replace": "Replace"
|
|
2870
|
+
},
|
|
2871
|
+
"paragraph": {
|
|
2872
|
+
"h1": "Heading 1",
|
|
2873
|
+
"h2": "Heading 2",
|
|
2874
|
+
"h3": "Heading 3",
|
|
2875
|
+
"h4": "Heading 4",
|
|
2876
|
+
"h5": "Heading 5",
|
|
2877
|
+
"h6": "Heading 6",
|
|
2878
|
+
"code_block": "Code Block",
|
|
2879
|
+
"quote": "Block Quote"
|
|
2880
|
+
},
|
|
2881
|
+
"format": {
|
|
2882
|
+
"bold": "Bold",
|
|
2883
|
+
"italic": "Italic",
|
|
2884
|
+
"strike": "Strikethrough",
|
|
2885
|
+
"code": "Inline Code",
|
|
2886
|
+
"link": "Link",
|
|
2887
|
+
"insert_image": "Insert Image"
|
|
2888
|
+
},
|
|
2889
|
+
"view": {
|
|
2890
|
+
"toggle_mode": "Toggle Visual / Source",
|
|
2891
|
+
"toggle_split": "Toggle Split Mode",
|
|
2892
|
+
"toggle_sidebar": "Toggle Sidebar",
|
|
2893
|
+
"toggle_aipanel": "Toggle AI Panel",
|
|
2894
|
+
"toggle_outline": "Toggle Outline",
|
|
2895
|
+
"open_settings": "Open Settings",
|
|
2896
|
+
"zoom_in": "Zoom In",
|
|
2897
|
+
"zoom_out": "Zoom Out",
|
|
2898
|
+
"zoom_reset": "Reset Zoom"
|
|
2899
|
+
},
|
|
2900
|
+
"workflow": {
|
|
2901
|
+
"quick_open": "Quick Open",
|
|
2902
|
+
"command_palette": "Command Palette"
|
|
2903
|
+
},
|
|
2904
|
+
"ai_chat": {
|
|
2905
|
+
"send": "Send AI Message",
|
|
2906
|
+
"newline": "Insert Newline"
|
|
2907
|
+
}
|
|
2908
|
+
},
|
|
2909
|
+
"locked_hint": "Managed by the native menu — not customizable here yet",
|
|
2910
|
+
"locked_footnote": "🔒 indicates the shortcut is provided by the OS-native menu and is not customizable in this version.",
|
|
2911
|
+
"editor": {
|
|
2912
|
+
"prompt": "Pulsa cualquier combinación de teclas… (Esc para cancelar)",
|
|
2913
|
+
"needs_modifier": "Requiere al menos un modificador (Cmd, Ctrl, Alt o Shift)",
|
|
2914
|
+
"conflict": "Ya en uso por otro atajo",
|
|
2915
|
+
"save": "Guardar",
|
|
2916
|
+
"cancel": "Cancelar",
|
|
2917
|
+
"edit_hint": "Clic para grabar un nuevo atajo",
|
|
2918
|
+
"reset_to_default": "Restablecer al predeterminado",
|
|
2919
|
+
"customized": "Personalizado",
|
|
2920
|
+
"customized_short": "Personal",
|
|
2921
|
+
"reset_conflict": "El predeterminado entra en conflicto con otro atajo personalizado — cámbielo primero.",
|
|
2922
|
+
"sync_failed": "No se pudo actualizar el menú del sistema",
|
|
2923
|
+
"sync_failed_short": "Error de sincronización",
|
|
2924
|
+
"unbound": "No establecido",
|
|
2925
|
+
"reset_all": "Restablecer todo",
|
|
2926
|
+
"reset_all_hint": "Restaurar todos los atajos a sus valores predeterminados",
|
|
2927
|
+
"reset_all_confirm": "¿Restablecer los {count} atajo(s) personalizado(s) a los valores predeterminados?",
|
|
2928
|
+
"reset_short": "Restablecer"
|
|
2929
|
+
},
|
|
2930
|
+
"edit_hint": "Consejo: las filas con borde discontinuo e icono ✎ pueden re-grabarse haciendo clic en las teclas. Los demás atajos (🔒) provienen del menú del sistema y aún no se pueden personalizar.",
|
|
2931
|
+
"mcp": {
|
|
2932
|
+
"intro": "Asigna atajos de teclado a los servidores MCP instalados y a las herramientas que exponen.",
|
|
2933
|
+
"empty": "Instala primero un servidor MCP en «Ajustes → MCP» para asignar atajos.",
|
|
2934
|
+
"add_tool": "Añadir atajo de herramienta MCP",
|
|
2935
|
+
"remove_tool": "Eliminar este atajo de herramienta MCP",
|
|
2936
|
+
"remove_tool_short": "Eliminar",
|
|
2937
|
+
"remove_stale": "Eliminar asignación obsoleta",
|
|
2938
|
+
"remove_stale_short": "Eliminar",
|
|
2939
|
+
"server_kind_short": "Servidor",
|
|
2940
|
+
"server_kind_hint": "Activa o desactiva la conexión del servidor MCP",
|
|
2941
|
+
"tool_kind_short": "Herramienta",
|
|
2942
|
+
"tool_kind_hint": "Abre el panel de IA y pide al asistente que use esta herramienta",
|
|
2943
|
+
"stale_short": "No disponible",
|
|
2944
|
+
"stale_hint": "El servidor o la herramienta MCP de esta asignación ya no está instalado",
|
|
2945
|
+
"server_gone": "El servidor MCP ya no está instalado",
|
|
2946
|
+
"unavailable": "La herramienta MCP no está disponible",
|
|
2947
|
+
"toggled": {
|
|
2948
|
+
"on": "Activado {name}",
|
|
2949
|
+
"off": "Desactivado {name}"
|
|
2950
|
+
},
|
|
2951
|
+
"dialog": {
|
|
2952
|
+
"title": "Añadir atajo de herramienta MCP",
|
|
2953
|
+
"server_label": "Servidor MCP",
|
|
2954
|
+
"tool_label": "Herramienta",
|
|
2955
|
+
"tool_placeholder": "Selecciona una herramienta…",
|
|
2956
|
+
"no_tools_for_server": "Este servidor aún no tiene herramientas — conéctalo desde Ajustes MCP primero.",
|
|
2957
|
+
"duplicate_error": "Ya existe un atajo para esta herramienta.",
|
|
2958
|
+
"add": "Añadir",
|
|
2959
|
+
"cancel": "Cancelar"
|
|
2960
|
+
}
|
|
2961
|
+
}
|
|
2962
|
+
},
|
|
2963
|
+
"sidebar": {
|
|
2964
|
+
"title": "Sidebar",
|
|
2965
|
+
"open_folder": "Abrir carpeta",
|
|
2966
|
+
"no_folder": "No hay carpeta abierta",
|
|
2967
|
+
"create_kb": "Crear base de conocimientos",
|
|
2968
|
+
"empty_dir": "No hay archivos en este directorio",
|
|
2969
|
+
"kb_settings": "Configuración de base de conocimientos",
|
|
2970
|
+
"tree_view": "Vista de árbol",
|
|
2971
|
+
"list_view": "Vista de lista",
|
|
2972
|
+
"search": "Buscar archivos...",
|
|
2973
|
+
"context_menu": {
|
|
2974
|
+
"new_file": "Nuevo archivo",
|
|
2975
|
+
"new_folder": "Nueva carpeta",
|
|
2976
|
+
"search_files": "Buscar",
|
|
2977
|
+
"refresh": "Actualizar",
|
|
2978
|
+
"rename": "Renombrar",
|
|
2979
|
+
"duplicate": "Crear copia",
|
|
2980
|
+
"delete": "Eliminar",
|
|
2981
|
+
"copy_path": "Copiar ruta",
|
|
2982
|
+
"reveal_in_finder": "Mostrar en Finder",
|
|
2983
|
+
"reveal_in_explorer": "Mostrar en el Explorador",
|
|
2984
|
+
"history_versions": "Versiones históricas"
|
|
2985
|
+
},
|
|
2986
|
+
"history": {
|
|
2987
|
+
"title": "Historial de versiones",
|
|
2988
|
+
"empty": "No hay versiones guardadas",
|
|
2989
|
+
"restore": "Restaurar",
|
|
2990
|
+
"restore_confirm": "¿Restaurar esta versión? El contenido actual de MORAYA.md será reemplazado."
|
|
2991
|
+
},
|
|
2992
|
+
"new_file_prompt": "Introduzca el nombre del archivo",
|
|
2993
|
+
"new_folder_prompt": "Introduzca el nombre de la carpeta",
|
|
2994
|
+
"rename_prompt": "Introduzca el nuevo nombre",
|
|
2995
|
+
"reserved_dir_title": "Nombre reservado",
|
|
2996
|
+
"reserved_dir_name": "\"images\" es un nombre de directorio reservado. Por favor, elija otro nombre.",
|
|
2997
|
+
"delete_confirm": "¿Está seguro de que desea eliminar \"{name}\"? Esta acción no se puede deshacer.",
|
|
2998
|
+
"views": "Sidebar views",
|
|
2999
|
+
"knowledge_bases": "Knowledge Bases",
|
|
3000
|
+
"explorer": "Files",
|
|
3001
|
+
"kb_list": "Knowledge base list",
|
|
3002
|
+
"tag_view": "Tags",
|
|
3003
|
+
"open": "Open sidebar",
|
|
3004
|
+
"close": "Close sidebar",
|
|
3005
|
+
"local_workspace": "Local"
|
|
3006
|
+
},
|
|
3007
|
+
"sso": {
|
|
3008
|
+
"__mt": true,
|
|
3009
|
+
"title": "Single Sign-On",
|
|
3010
|
+
"description": "Configure SSO to let team members authenticate via your identity provider.",
|
|
3011
|
+
"enable_sso": "Enable SSO",
|
|
3012
|
+
"require_sso": "Require SSO for all members",
|
|
3013
|
+
"oidc": "OIDC / OAuth 2.0",
|
|
3014
|
+
"saml": "SAML 2.0",
|
|
3015
|
+
"provider": "Identity Provider",
|
|
3016
|
+
"custom_provider": "Custom",
|
|
3017
|
+
"issuer": "Issuer URL",
|
|
3018
|
+
"client_id": "Client ID",
|
|
3019
|
+
"client_secret": "Client Secret",
|
|
3020
|
+
"scopes": "Scopes",
|
|
3021
|
+
"idp_metadata_url": "IdP Metadata URL",
|
|
3022
|
+
"sp_entity_id": "SP Entity ID",
|
|
3023
|
+
"sp_acs_url": "ACS URL",
|
|
3024
|
+
"signing_cert": "Signing Certificate",
|
|
3025
|
+
"save": "Save SSO Configuration",
|
|
3026
|
+
"saved_success": "SSO configuration saved."
|
|
3027
|
+
},
|
|
3028
|
+
"stale_dmg": {
|
|
3029
|
+
"title": "Limpiar imágenes de disco antiguas",
|
|
3030
|
+
"body": "Se han encontrado imágenes de disco de Moraya antiguas todavía montadas. Si las dejas montadas, aparecerán varias versiones en el menú \"Abrir con\". ¿Las expulso ahora?",
|
|
3031
|
+
"eject_all": "Expulsar todas",
|
|
3032
|
+
"skip": "Ahora no",
|
|
3033
|
+
"partial_failure": "No se pudieron expulsar algunas imágenes de disco:"
|
|
3034
|
+
},
|
|
3035
|
+
"statusbar": {
|
|
3036
|
+
"words": "Palabras",
|
|
3037
|
+
"characters": "Caracteres",
|
|
3038
|
+
"format": "Markdown",
|
|
3039
|
+
"source_mode": "Fuente",
|
|
3040
|
+
"visual_mode": "Visual",
|
|
3041
|
+
"split_mode": "Dividido",
|
|
3042
|
+
"publish_workflow": "Flujo de trabajo IA",
|
|
3043
|
+
"ai_tooltip": "IA"
|
|
3044
|
+
},
|
|
3045
|
+
"storage": {
|
|
3046
|
+
"__mt": true,
|
|
3047
|
+
"title": "Storage",
|
|
3048
|
+
"connected_providers": "Connected Providers",
|
|
3049
|
+
"connect_provider": "Connect Provider",
|
|
3050
|
+
"primary": "Primary",
|
|
3051
|
+
"set_primary": "Set as Primary",
|
|
3052
|
+
"remove": "Remove",
|
|
3053
|
+
"edit": "Edit",
|
|
3054
|
+
"verify": "Verify Connection",
|
|
3055
|
+
"verifying": "Verifying...",
|
|
3056
|
+
"verify_success": "Connection verified",
|
|
3057
|
+
"verify_failed": "Verification failed",
|
|
3058
|
+
"no_providers": "No storage providers connected.",
|
|
3059
|
+
"connect_prompt": "Connect your own cloud storage to keep full control of your data.",
|
|
3060
|
+
"picora_default": "Picora is your storage provider (Connect plan)",
|
|
3061
|
+
"upgrade_for_byoc": "Upgrade to Personal to connect your own storage.",
|
|
3062
|
+
"step_choose": "Choose Provider",
|
|
3063
|
+
"step_setup": "Setup Script",
|
|
3064
|
+
"step_credentials": "Enter Credentials",
|
|
3065
|
+
"step_verify": "Verify",
|
|
3066
|
+
"step_name": "Name & Save",
|
|
3067
|
+
"provider_label": "Provider",
|
|
3068
|
+
"bucket_label": "Bucket Name",
|
|
3069
|
+
"region_label": "Region",
|
|
3070
|
+
"access_key_label": "Access Key ID",
|
|
3071
|
+
"secret_key_label": "Secret Access Key",
|
|
3072
|
+
"role_arn_label": "Role ARN (for STS)",
|
|
3073
|
+
"account_id_label": "Account ID",
|
|
3074
|
+
"key_id_label": "Key ID",
|
|
3075
|
+
"application_key_label": "Application Key",
|
|
3076
|
+
"binding_label": "Display Name",
|
|
3077
|
+
"copy_script": "Copy Script",
|
|
3078
|
+
"copy_policy": "Copy Policy JSON",
|
|
3079
|
+
"copied": "Copied!",
|
|
3080
|
+
"back": "Back",
|
|
3081
|
+
"next": "Next",
|
|
3082
|
+
"save": "Save",
|
|
3083
|
+
"health_ok": "Healthy",
|
|
3084
|
+
"health_degraded": "Degraded",
|
|
3085
|
+
"health_failed": "Failed",
|
|
3086
|
+
"health_unknown": "Unknown",
|
|
3087
|
+
"access_denied": "Access denied.",
|
|
3088
|
+
"bucket_not_found": "Bucket not found.",
|
|
3089
|
+
"bucket_exists": "Bucket already exists.",
|
|
3090
|
+
"clock_skew": "System clock is out of sync. Please check your date/time settings.",
|
|
3091
|
+
"b2_no_sts_warning": "Backblaze B2 does not support STS. Credentials are stored in session only. Enable E2E encryption (v0.43) for better security.",
|
|
3092
|
+
"r2_token_info": "Create an API Token in Cloudflare Dashboard with R2 Read/Write permissions for this bucket."
|
|
3093
|
+
},
|
|
3094
|
+
"table": {
|
|
3095
|
+
"insert_row_above": "Insertar fila arriba",
|
|
3096
|
+
"insert_row_below": "Insertar fila abajo",
|
|
3097
|
+
"delete_row": "Eliminar fila",
|
|
3098
|
+
"insert_col_left": "Insertar columna a la izquierda",
|
|
3099
|
+
"insert_col_right": "Insertar columna a la derecha",
|
|
3100
|
+
"delete_col": "Eliminar columna",
|
|
3101
|
+
"align_left": "Alinear a la izquierda",
|
|
3102
|
+
"align_center": "Alinear al centro",
|
|
3103
|
+
"align_right": "Alinear a la derecha",
|
|
3104
|
+
"copy_table": "Copiar tabla",
|
|
3105
|
+
"format_table_source": "Formatear fuente de tabla",
|
|
3106
|
+
"delete_table": "Eliminar tabla",
|
|
3107
|
+
"copied": "Tabla copiada",
|
|
3108
|
+
"formatted_copied": "Tabla formateada copiada"
|
|
3109
|
+
},
|
|
3110
|
+
"tabs": {
|
|
3111
|
+
"external_change_title": "Archivo modificado externamente",
|
|
3112
|
+
"external_change_msg": "\"{fileName}\" ha sido modificado fuera de Moraya.",
|
|
3113
|
+
"keep_local": "Mantener cambios locales",
|
|
3114
|
+
"load_from_disk": "Cargar desde disco",
|
|
3115
|
+
"unsaved_title": "Cambios sin guardar",
|
|
3116
|
+
"unsaved_msg": "\"{fileName}\" tiene cambios sin guardar.",
|
|
3117
|
+
"save": "Guardar",
|
|
3118
|
+
"discard": "Descartar",
|
|
3119
|
+
"new_tab": "New Tab",
|
|
3120
|
+
"close": "Close Tab",
|
|
3121
|
+
"close_others": "Close Other Tabs",
|
|
3122
|
+
"close_to_right": "Close Tabs to the Right",
|
|
3123
|
+
"close_all": "Close All Tabs",
|
|
3124
|
+
"dirty_confirm": "This tab has unsaved changes. Discard and close?",
|
|
3125
|
+
"discard_close": "Discard & Close",
|
|
3126
|
+
"readonly_banner": "Another tab is editing this note. This tab is read-only.",
|
|
3127
|
+
"takeover": "Take Over",
|
|
3128
|
+
"open_count": "tabs open",
|
|
3129
|
+
"no_tabs": "No open tabs",
|
|
3130
|
+
"upgrade_tabs": "Upgrade to Personal to open multiple tabs.",
|
|
3131
|
+
"rename": "Rename",
|
|
3132
|
+
"rename_placeholder": "Document name",
|
|
3133
|
+
"dirty_dot": "Unsaved changes"
|
|
3134
|
+
},
|
|
3135
|
+
"team": {
|
|
3136
|
+
"__mt": true,
|
|
3137
|
+
"title": "Team Knowledge Bases",
|
|
3138
|
+
"create": "New Team KB",
|
|
3139
|
+
"no_kbs": "You don't have any team knowledge bases yet.",
|
|
3140
|
+
"create_first": "Create your first team KB",
|
|
3141
|
+
"members": "members",
|
|
3142
|
+
"open": "Open",
|
|
3143
|
+
"settings": "Settings",
|
|
3144
|
+
"encryption_kms": "Cloud KMS (AI Review enabled)",
|
|
3145
|
+
"encryption_e2e": "E2E Encryption (AI Review disabled)",
|
|
3146
|
+
"wizard_title": "Create Team Knowledge Base",
|
|
3147
|
+
"step_info": "Name",
|
|
3148
|
+
"step_provider": "Storage",
|
|
3149
|
+
"step_members": "Members",
|
|
3150
|
+
"step_encryption": "Encryption",
|
|
3151
|
+
"step_confirm": "Confirm",
|
|
3152
|
+
"kb_name_label": "Team KB Name",
|
|
3153
|
+
"kb_name_placeholder": "e.g. Engineering Docs",
|
|
3154
|
+
"provider_label": "Provider",
|
|
3155
|
+
"bucket_label": "Bucket",
|
|
3156
|
+
"prefix_label": "Prefix (optional)",
|
|
3157
|
+
"invite_emails_label": "Email addresses (comma-separated)",
|
|
3158
|
+
"invite_role_label": "Role",
|
|
3159
|
+
"mode_kms_name": "Cloud KMS",
|
|
3160
|
+
"mode_kms_desc": "AI Review and server-side features enabled.",
|
|
3161
|
+
"mode_e2e_name": "End-to-End",
|
|
3162
|
+
"mode_e2e_desc": "Maximum privacy. AI Review not available.",
|
|
3163
|
+
"confirm_summary": "Confirm & Create",
|
|
3164
|
+
"creating": "Creating…",
|
|
3165
|
+
"create_kb": "Create Team KB"
|
|
3166
|
+
},
|
|
3167
|
+
"templates": {
|
|
3168
|
+
"gallery": {
|
|
3169
|
+
"title": "Asistente de IA",
|
|
3170
|
+
"search": "Buscar plantillas...",
|
|
3171
|
+
"back": "Atrás",
|
|
3172
|
+
"start": "Iniciar"
|
|
3173
|
+
},
|
|
3174
|
+
"my_templates": {
|
|
3175
|
+
"name": "Mis plantillas",
|
|
3176
|
+
"desc": "Plantillas personalizadas importadas o creadas por usted"
|
|
3177
|
+
},
|
|
3178
|
+
"manage": {
|
|
3179
|
+
"title": "Gestionar plantillas",
|
|
3180
|
+
"import": "Importar plantilla",
|
|
3181
|
+
"export": "Exportar plantillas",
|
|
3182
|
+
"manage": "Gestionar plantillas",
|
|
3183
|
+
"delete": "Eliminar",
|
|
3184
|
+
"delete_confirm": "¿Confirmar?",
|
|
3185
|
+
"import_success": "{count} plantilla(s) importada(s)",
|
|
3186
|
+
"export_success": "Plantillas exportadas exitosamente",
|
|
3187
|
+
"no_custom_templates": "Aún no hay plantillas personalizadas",
|
|
3188
|
+
"source_global": "Global",
|
|
3189
|
+
"source_kb": "Base de conocimiento",
|
|
3190
|
+
"invalid_format": "Formato de plantilla no válido",
|
|
3191
|
+
"select_templates": "Seleccionar plantillas para exportar"
|
|
3192
|
+
},
|
|
3193
|
+
"error": {
|
|
3194
|
+
"no_document": "Por favor escriba algo de contenido primero",
|
|
3195
|
+
"no_selection": "Por favor seleccione algo de texto primero",
|
|
3196
|
+
"no_content": "Por favor escriba algo de contenido o seleccione texto primero"
|
|
3197
|
+
},
|
|
3198
|
+
"writing": {
|
|
3199
|
+
"name": "Escritura",
|
|
3200
|
+
"desc": "Escritura, edición y resumen con IA",
|
|
3201
|
+
"free": {
|
|
3202
|
+
"name": "Escritura libre",
|
|
3203
|
+
"desc": "Introduzca un tema y la IA genera contenido",
|
|
3204
|
+
"hint": "Introduzca un tema o instrucciones de escritura..."
|
|
3205
|
+
},
|
|
3206
|
+
"continue": {
|
|
3207
|
+
"name": "Continuar escribiendo",
|
|
3208
|
+
"desc": "Continuar desde el final del documento"
|
|
3209
|
+
},
|
|
3210
|
+
"outline": {
|
|
3211
|
+
"name": "Generar esquema",
|
|
3212
|
+
"desc": "Crear un esquema del artículo",
|
|
3213
|
+
"hint": "Introduzca el tema del artículo..."
|
|
3214
|
+
},
|
|
3215
|
+
"summarize": {
|
|
3216
|
+
"name": "Resumir",
|
|
3217
|
+
"desc": "Resumir el texto seleccionado o el documento completo"
|
|
3218
|
+
},
|
|
3219
|
+
"improve": {
|
|
3220
|
+
"name": "Mejorar",
|
|
3221
|
+
"desc": "Mejorar la calidad de la escritura"
|
|
3222
|
+
},
|
|
3223
|
+
"simplify": {
|
|
3224
|
+
"name": "Simplificar",
|
|
3225
|
+
"desc": "Simplificar texto complejo"
|
|
3226
|
+
},
|
|
3227
|
+
"expand": {
|
|
3228
|
+
"name": "Expandir",
|
|
3229
|
+
"desc": "Agregar más detalles y explicaciones"
|
|
3230
|
+
},
|
|
3231
|
+
"fix_grammar": {
|
|
3232
|
+
"name": "Corregir gramática",
|
|
3233
|
+
"desc": "Corregir errores gramaticales y ortográficos"
|
|
3234
|
+
}
|
|
3235
|
+
},
|
|
3236
|
+
"translation": {
|
|
3237
|
+
"name": "Traducción",
|
|
3238
|
+
"desc": "Traducción y localización multiidioma",
|
|
3239
|
+
"auto": {
|
|
3240
|
+
"name": "Traducción inteligente",
|
|
3241
|
+
"desc": "Detectar idioma automáticamente y traducir"
|
|
3242
|
+
},
|
|
3243
|
+
"to_target": {
|
|
3244
|
+
"name": "Traducir a...",
|
|
3245
|
+
"desc": "Elegir idioma de destino y traducir"
|
|
3246
|
+
},
|
|
3247
|
+
"explain": {
|
|
3248
|
+
"name": "Traducir y explicar",
|
|
3249
|
+
"desc": "Traducir con explicación palabra por palabra"
|
|
3250
|
+
},
|
|
3251
|
+
"polish": {
|
|
3252
|
+
"name": "Localizar",
|
|
3253
|
+
"desc": "Hacer las traducciones más naturales"
|
|
3254
|
+
},
|
|
3255
|
+
"compare": {
|
|
3256
|
+
"name": "Múltiples versiones",
|
|
3257
|
+
"desc": "Proporcionar múltiples estilos de traducción"
|
|
3258
|
+
},
|
|
3259
|
+
"target_lang": "Idioma de destino",
|
|
3260
|
+
"lang": {
|
|
3261
|
+
"en": "Inglés",
|
|
3262
|
+
"zh_cn": "Chino simplificado",
|
|
3263
|
+
"zh_hant": "Chino tradicional",
|
|
3264
|
+
"ar": "Árabe",
|
|
3265
|
+
"de": "Alemán",
|
|
3266
|
+
"es": "Español",
|
|
3267
|
+
"fr": "Francés",
|
|
3268
|
+
"hi": "Hindi",
|
|
3269
|
+
"ja": "Japonés",
|
|
3270
|
+
"ko": "Coreano",
|
|
3271
|
+
"pt": "Portugués",
|
|
3272
|
+
"ru": "Ruso"
|
|
3273
|
+
}
|
|
3274
|
+
},
|
|
3275
|
+
"student": {
|
|
3276
|
+
"name": "Ayudante de estudio",
|
|
3277
|
+
"desc": "Aprendizaje, toma de notas, comprensión de conceptos",
|
|
3278
|
+
"explain": {
|
|
3279
|
+
"name": "Explicar concepto",
|
|
3280
|
+
"desc": "Explicar un concepto en términos simples",
|
|
3281
|
+
"hint": "Introduzca un concepto para explicar..."
|
|
3282
|
+
},
|
|
3283
|
+
"notes": {
|
|
3284
|
+
"name": "Notas de estudio",
|
|
3285
|
+
"desc": "Organizar contenido en notas estructuradas"
|
|
3286
|
+
},
|
|
3287
|
+
"flashcard": {
|
|
3288
|
+
"name": "Tarjetas de estudio",
|
|
3289
|
+
"desc": "Extraer tarjetas de preguntas y respuestas del contenido"
|
|
3290
|
+
},
|
|
3291
|
+
"mindmap": {
|
|
3292
|
+
"name": "Mapa mental",
|
|
3293
|
+
"desc": "Generar un mapa mental en Markdown"
|
|
3294
|
+
},
|
|
3295
|
+
"essay_outline": {
|
|
3296
|
+
"name": "Esquema de ensayo",
|
|
3297
|
+
"desc": "Generar un esquema de ensayo",
|
|
3298
|
+
"hint": "Introduzca el tema del ensayo..."
|
|
3299
|
+
},
|
|
3300
|
+
"reading": {
|
|
3301
|
+
"name": "Análisis de lectura",
|
|
3302
|
+
"desc": "Análisis profundo del contenido del texto"
|
|
3303
|
+
},
|
|
3304
|
+
"formula": {
|
|
3305
|
+
"name": "Derivación de fórmulas",
|
|
3306
|
+
"desc": "Mostrar pasos de derivación de fórmulas matemáticas",
|
|
3307
|
+
"hint": "Introduzca el nombre o contenido de la fórmula..."
|
|
3308
|
+
},
|
|
3309
|
+
"compare": {
|
|
3310
|
+
"name": "Comparar conceptos",
|
|
3311
|
+
"desc": "Comparar dos conceptos lado a lado",
|
|
3312
|
+
"hint": "Introduzca dos conceptos (ej., TCP vs UDP)..."
|
|
3313
|
+
}
|
|
3314
|
+
},
|
|
3315
|
+
"kids": {
|
|
3316
|
+
"name": "Aprendizaje infantil",
|
|
3317
|
+
"desc": "Cuentos, aprendizaje divertido, juegos interactivos",
|
|
3318
|
+
"story": {
|
|
3319
|
+
"name": "Cuento infantil",
|
|
3320
|
+
"desc": "Generar un cuento a partir de palabras clave",
|
|
3321
|
+
"hint": "Introduzca palabras clave del cuento (ej., conejito bosque aventura)..."
|
|
3322
|
+
},
|
|
3323
|
+
"poem": {
|
|
3324
|
+
"name": "Rima infantil",
|
|
3325
|
+
"desc": "Crear una rima sobre un tema",
|
|
3326
|
+
"hint": "Introduzca un tema..."
|
|
3327
|
+
},
|
|
3328
|
+
"why": {
|
|
3329
|
+
"name": "¿Por qué? ¿Por qué? ¿Por qué?",
|
|
3330
|
+
"desc": "La IA responde preguntas interminables de '¿por qué?'"
|
|
3331
|
+
},
|
|
3332
|
+
"alphabet": {
|
|
3333
|
+
"name": "Diversión con el alfabeto",
|
|
3334
|
+
"desc": "Aprendizaje interactivo de letras"
|
|
3335
|
+
},
|
|
3336
|
+
"math_game": {
|
|
3337
|
+
"name": "Juego de matemáticas",
|
|
3338
|
+
"desc": "Aritmética interactiva divertida"
|
|
3339
|
+
},
|
|
3340
|
+
"riddle": {
|
|
3341
|
+
"name": "Adivinanzas",
|
|
3342
|
+
"desc": "La IA propone adivinanzas para que los niños resuelvan"
|
|
3343
|
+
},
|
|
3344
|
+
"draw_text": {
|
|
3345
|
+
"name": "Imagen y cuento",
|
|
3346
|
+
"desc": "Describa una escena, la IA escribe un cuento",
|
|
3347
|
+
"hint": "Describa una escena..."
|
|
3348
|
+
},
|
|
3349
|
+
"knowledge": {
|
|
3350
|
+
"name": "Datos curiosos",
|
|
3351
|
+
"desc": "Enciclopedia de naturaleza, ciencia y animales"
|
|
3352
|
+
}
|
|
3353
|
+
},
|
|
3354
|
+
"marketing": {
|
|
3355
|
+
"name": "Marketing",
|
|
3356
|
+
"desc": "Redes sociales, anuncios y redacción SEO",
|
|
3357
|
+
"xiaohongshu": {
|
|
3358
|
+
"name": "Publicación Xiaohongshu",
|
|
3359
|
+
"desc": "Generar publicación estilo reseña de estilo de vida",
|
|
3360
|
+
"hint": "Introduzca el producto o tema..."
|
|
3361
|
+
},
|
|
3362
|
+
"twitter": {
|
|
3363
|
+
"name": "Publicación Twitter/X",
|
|
3364
|
+
"desc": "Generar contenido estilo tweet",
|
|
3365
|
+
"hint": "Introduzca el tema..."
|
|
3366
|
+
},
|
|
3367
|
+
"slogan": {
|
|
3368
|
+
"name": "Eslogan publicitario",
|
|
3369
|
+
"desc": "Generar eslóganes atractivos para marcas",
|
|
3370
|
+
"hint": "Introduzca la marca o producto..."
|
|
3371
|
+
},
|
|
3372
|
+
"email": {
|
|
3373
|
+
"name": "Correo de marketing",
|
|
3374
|
+
"desc": "Configurar audiencia y tono para el correo",
|
|
3375
|
+
"hint": "Describa el contenido del correo..."
|
|
3376
|
+
},
|
|
3377
|
+
"seo_article": {
|
|
3378
|
+
"name": "Artículo SEO",
|
|
3379
|
+
"desc": "Generar contenido optimizado para SEO",
|
|
3380
|
+
"hint": "Introduzca las palabras clave objetivo..."
|
|
3381
|
+
},
|
|
3382
|
+
"product_desc": {
|
|
3383
|
+
"name": "Descripción de producto",
|
|
3384
|
+
"desc": "Generar texto persuasivo de producto",
|
|
3385
|
+
"hint": "Introduzca la información del producto..."
|
|
3386
|
+
},
|
|
3387
|
+
"tone": "Tono",
|
|
3388
|
+
"tone.formal": "Formal",
|
|
3389
|
+
"tone.friendly": "Amigable",
|
|
3390
|
+
"tone.urgent": "Urgente",
|
|
3391
|
+
"tone.humorous": "Humorístico"
|
|
3392
|
+
},
|
|
3393
|
+
"professional": {
|
|
3394
|
+
"name": "Profesional",
|
|
3395
|
+
"desc": "Correos electrónicos, informes, notas de reunión",
|
|
3396
|
+
"email": {
|
|
3397
|
+
"name": "Correo empresarial",
|
|
3398
|
+
"desc": "Configurar escenario y tono para el correo",
|
|
3399
|
+
"hint": "Describa el contenido del correo..."
|
|
3400
|
+
},
|
|
3401
|
+
"meeting": {
|
|
3402
|
+
"name": "Notas de reunión",
|
|
3403
|
+
"desc": "Organizar notas en actas formales"
|
|
3404
|
+
},
|
|
3405
|
+
"report": {
|
|
3406
|
+
"name": "Informe laboral",
|
|
3407
|
+
"desc": "Generar informe semanal/mensual/trimestral",
|
|
3408
|
+
"hint": "Introduzca los puntos clave del informe..."
|
|
3409
|
+
},
|
|
3410
|
+
"review": {
|
|
3411
|
+
"name": "Revisión de código",
|
|
3412
|
+
"desc": "Revisar código y sugerir mejoras"
|
|
3413
|
+
},
|
|
3414
|
+
"resume": {
|
|
3415
|
+
"name": "Pulir currículum",
|
|
3416
|
+
"desc": "Optimizar currículum con el método STAR"
|
|
3417
|
+
},
|
|
3418
|
+
"prd": {
|
|
3419
|
+
"name": "Documento PRD",
|
|
3420
|
+
"desc": "Generar documento de requisitos de producto",
|
|
3421
|
+
"hint": "Introduzca la descripción de la función..."
|
|
3422
|
+
},
|
|
3423
|
+
"tone": "Tono",
|
|
3424
|
+
"tone.concise": "Conciso",
|
|
3425
|
+
"report_type": "Tipo de informe",
|
|
3426
|
+
"report_type.weekly": "Semanal",
|
|
3427
|
+
"report_type.monthly": "Mensual",
|
|
3428
|
+
"report_type.quarterly": "Trimestral"
|
|
3429
|
+
},
|
|
3430
|
+
"personal": {
|
|
3431
|
+
"name": "Crecimiento personal",
|
|
3432
|
+
"desc": "Diario, metas, toma de decisiones",
|
|
3433
|
+
"journal": {
|
|
3434
|
+
"name": "Ayudante de diario",
|
|
3435
|
+
"desc": "Diario guiado y reflexión",
|
|
3436
|
+
"hint": "¿Qué pasó hoy?..."
|
|
3437
|
+
},
|
|
3438
|
+
"goal": {
|
|
3439
|
+
"name": "Desglose de metas",
|
|
3440
|
+
"desc": "Dividir metas en pasos accionables",
|
|
3441
|
+
"hint": "Introduzca su meta..."
|
|
3442
|
+
},
|
|
3443
|
+
"habit": {
|
|
3444
|
+
"name": "Constructor de hábitos",
|
|
3445
|
+
"desc": "Crear un plan para construir hábitos",
|
|
3446
|
+
"hint": "Introduzca el hábito que desea construir..."
|
|
3447
|
+
},
|
|
3448
|
+
"decision": {
|
|
3449
|
+
"name": "Análisis de decisión",
|
|
3450
|
+
"desc": "Análisis de pros y contras para decisiones",
|
|
3451
|
+
"hint": "Describa sus opciones..."
|
|
3452
|
+
},
|
|
3453
|
+
"book_notes": {
|
|
3454
|
+
"name": "Notas de lectura",
|
|
3455
|
+
"desc": "Organizar contenido en notas de lectura"
|
|
3456
|
+
}
|
|
3457
|
+
},
|
|
3458
|
+
"games_cn": {
|
|
3459
|
+
"name": "Juegos chinos",
|
|
3460
|
+
"desc": "Juegos de poesía, cadenas de modismos, adivinanzas",
|
|
3461
|
+
"feihualing": {
|
|
3462
|
+
"name": "Poetry Challenge",
|
|
3463
|
+
"desc": "Turnarse para recitar poemas con un carácter dado"
|
|
3464
|
+
},
|
|
3465
|
+
"chengyu_chain": {
|
|
3466
|
+
"name": "Idiom Chain",
|
|
3467
|
+
"desc": "Encadenar modismos por el último/primer carácter"
|
|
3468
|
+
},
|
|
3469
|
+
"riddle": {
|
|
3470
|
+
"name": "Riddles",
|
|
3471
|
+
"desc": "La IA da pistas, usted adivina la respuesta"
|
|
3472
|
+
},
|
|
3473
|
+
"lantern_riddle": {
|
|
3474
|
+
"name": "Lantern Riddles",
|
|
3475
|
+
"desc": "Acertijos basados en caracteres chinos"
|
|
3476
|
+
},
|
|
3477
|
+
"poetry_fill": {
|
|
3478
|
+
"name": "Poetry Fill-in",
|
|
3479
|
+
"desc": "Completar palabras faltantes de poemas"
|
|
3480
|
+
},
|
|
3481
|
+
"story_chain": {
|
|
3482
|
+
"name": "Story Chain",
|
|
3483
|
+
"desc": "Turnarse para continuar una historia"
|
|
3484
|
+
},
|
|
3485
|
+
"character_game": {
|
|
3486
|
+
"name": "Character Guess",
|
|
3487
|
+
"desc": "Adivinar el carácter chino a partir de pistas"
|
|
3488
|
+
},
|
|
3489
|
+
"brain_teaser": {
|
|
3490
|
+
"name": "Brain Teasers",
|
|
3491
|
+
"desc": "Acertijos de ingenio divertidos"
|
|
3492
|
+
},
|
|
3493
|
+
"couplet": {
|
|
3494
|
+
"name": "Couplets",
|
|
3495
|
+
"desc": "La IA da la primera línea, usted la completa"
|
|
3496
|
+
},
|
|
3497
|
+
"word_explain": {
|
|
3498
|
+
"name": "Word Charades",
|
|
3499
|
+
"desc": "La IA describe, usted adivina la palabra"
|
|
3500
|
+
},
|
|
3501
|
+
"ancient_text": {
|
|
3502
|
+
"name": "Classical Chinese",
|
|
3503
|
+
"desc": "Traducir chino clásico a chino moderno"
|
|
3504
|
+
},
|
|
3505
|
+
"homophone": {
|
|
3506
|
+
"name": "Homophones",
|
|
3507
|
+
"desc": "Desafío de juegos de palabras homófonos"
|
|
3508
|
+
}
|
|
3509
|
+
},
|
|
3510
|
+
"games_en": {
|
|
3511
|
+
"name": "Juegos en inglés",
|
|
3512
|
+
"desc": "Word Chain, Hangman, Trivia y más",
|
|
3513
|
+
"word_chain": {
|
|
3514
|
+
"name": "Word Chain",
|
|
3515
|
+
"desc": "La última letra inicia la siguiente palabra"
|
|
3516
|
+
},
|
|
3517
|
+
"twenty_questions": {
|
|
3518
|
+
"name": "20 Questions",
|
|
3519
|
+
"desc": "Adivinar el objeto en 20 preguntas de sí/no"
|
|
3520
|
+
},
|
|
3521
|
+
"hangman": {
|
|
3522
|
+
"name": "Hangman",
|
|
3523
|
+
"desc": "Adivinar la palabra letra por letra"
|
|
3524
|
+
},
|
|
3525
|
+
"story_builder": {
|
|
3526
|
+
"name": "Story Builder",
|
|
3527
|
+
"desc": "Turnarse para construir una historia"
|
|
3528
|
+
},
|
|
3529
|
+
"word_association": {
|
|
3530
|
+
"name": "Word Association",
|
|
3531
|
+
"desc": "Cadena de asociación libre de palabras"
|
|
3532
|
+
},
|
|
3533
|
+
"riddles": {
|
|
3534
|
+
"name": "Riddles",
|
|
3535
|
+
"desc": "Resolver adivinanzas en inglés"
|
|
3536
|
+
},
|
|
3537
|
+
"trivia": {
|
|
3538
|
+
"name": "Trivia Quiz",
|
|
3539
|
+
"desc": "Preguntas de conocimiento general"
|
|
3540
|
+
},
|
|
3541
|
+
"rhyme_time": {
|
|
3542
|
+
"name": "Rhyme Time",
|
|
3543
|
+
"desc": "Crear historias con palabras que riman"
|
|
3544
|
+
},
|
|
3545
|
+
"acronym": {
|
|
3546
|
+
"name": "Acronym Game",
|
|
3547
|
+
"desc": "Inventar significados para acrónimos aleatorios"
|
|
3548
|
+
},
|
|
3549
|
+
"taboo": {
|
|
3550
|
+
"name": "Taboo",
|
|
3551
|
+
"desc": "Describir sin usar palabras prohibidas"
|
|
3552
|
+
},
|
|
3553
|
+
"sentence_builder": {
|
|
3554
|
+
"name": "Sentence Builder",
|
|
3555
|
+
"desc": "Construir la oración más larga con palabras dadas"
|
|
3556
|
+
},
|
|
3557
|
+
"emoji_story": {
|
|
3558
|
+
"name": "Emoji Story",
|
|
3559
|
+
"desc": "Contar historias usando emojis"
|
|
3560
|
+
}
|
|
3561
|
+
},
|
|
3562
|
+
"quiz": {
|
|
3563
|
+
"name": "Cuestionarios y práctica",
|
|
3564
|
+
"desc": "Preguntas generadas por IA con puntuación",
|
|
3565
|
+
"practice": {
|
|
3566
|
+
"name": "Cuestionario universal",
|
|
3567
|
+
"desc": "Elija la materia y dificultad, la IA le evalúa"
|
|
3568
|
+
},
|
|
3569
|
+
"direction": "Materia",
|
|
3570
|
+
"dir": {
|
|
3571
|
+
"programming": "Programación",
|
|
3572
|
+
"math": "Matemáticas",
|
|
3573
|
+
"english": "Inglés",
|
|
3574
|
+
"science": "Ciencias",
|
|
3575
|
+
"history": "Historia",
|
|
3576
|
+
"interview": "Preparación de entrevistas",
|
|
3577
|
+
"custom": "Materia personalizada"
|
|
3578
|
+
},
|
|
3579
|
+
"difficulty": "Dificultad",
|
|
3580
|
+
"diff": {
|
|
3581
|
+
"easy": "Fácil",
|
|
3582
|
+
"medium": "Medio",
|
|
3583
|
+
"hard": "Difícil"
|
|
3584
|
+
}
|
|
3585
|
+
}
|
|
3586
|
+
},
|
|
3587
|
+
"theme": {
|
|
3588
|
+
"__mt": true,
|
|
3589
|
+
"title": "Appearance",
|
|
3590
|
+
"mode_title": "Color Mode",
|
|
3591
|
+
"mode_light": "Light",
|
|
3592
|
+
"mode_dark": "Dark",
|
|
3593
|
+
"mode_system": "System",
|
|
3594
|
+
"custom_title": "Custom Themes",
|
|
3595
|
+
"custom_new": "New Theme",
|
|
3596
|
+
"custom_export": "Export",
|
|
3597
|
+
"custom_import": "Import",
|
|
3598
|
+
"custom_delete": "Delete",
|
|
3599
|
+
"custom_activate": "Activate",
|
|
3600
|
+
"custom_deactivate": "Deactivate",
|
|
3601
|
+
"custom_edit": "Edit",
|
|
3602
|
+
"editor_title": "Theme Editor",
|
|
3603
|
+
"name_label": "Theme Name",
|
|
3604
|
+
"no_custom": "No custom themes yet. Create one below.",
|
|
3605
|
+
"groups_base": "Base Colors",
|
|
3606
|
+
"groups_editor": "Editor",
|
|
3607
|
+
"groups_ui": "UI Components",
|
|
3608
|
+
"groups_code": "Code Block",
|
|
3609
|
+
"saved": "Save",
|
|
3610
|
+
"import_error": "Invalid theme file. Please use a valid Moraya theme JSON."
|
|
3611
|
+
},
|
|
3612
|
+
"titlebar": {
|
|
3613
|
+
"unsaved": "Sin guardar",
|
|
3614
|
+
"minimize": "Minimizar",
|
|
3615
|
+
"maximize": "Maximizar",
|
|
3616
|
+
"close": "Cerrar",
|
|
3617
|
+
"new_file": "Nuevo archivo",
|
|
3618
|
+
"open_file": "Abrir archivo..."
|
|
3619
|
+
},
|
|
3620
|
+
"transcription": {
|
|
3621
|
+
"title": "Transcripción",
|
|
3622
|
+
"recording": "Grabando",
|
|
3623
|
+
"connecting": "Conectando...",
|
|
3624
|
+
"paused": "Pausado",
|
|
3625
|
+
"stopping": "Deteniendo...",
|
|
3626
|
+
"idle": "Listo",
|
|
3627
|
+
"start": "Iniciar",
|
|
3628
|
+
"stop": "Detener",
|
|
3629
|
+
"pause": "Pausar",
|
|
3630
|
+
"resume": "Reanudar",
|
|
3631
|
+
"back": "Volver al chat",
|
|
3632
|
+
"empty_idle": "Haga clic en Iniciar para comenzar a grabar y transcribir.",
|
|
3633
|
+
"empty_waiting": "Esperando voz...",
|
|
3634
|
+
"summarize_with_ai": "Resumir con IA",
|
|
3635
|
+
"save_as_doc": "Guardar como documento",
|
|
3636
|
+
"summarize_prompt": "Por favor genere un resumen de la reunión a partir de la siguiente transcripción. Identifique los puntos clave de discusión, las decisiones tomadas y los elementos de acción. Formatee como Markdown.",
|
|
3637
|
+
"no_speech_config": "No hay proveedor de voz configurado. Por favor agregue uno en Configuración → Voz.",
|
|
3638
|
+
"no_speech_config_hint": "Vaya a Configuración → Voz para agregar un proveedor de voz (ej. Deepgram).",
|
|
3639
|
+
"go_to_voice_settings": "Abrir configuración de voz"
|
|
3640
|
+
},
|
|
3641
|
+
"update": {
|
|
3642
|
+
"title": "Información de versión",
|
|
3643
|
+
"current_version": "Versión actual",
|
|
3644
|
+
"latest_version": "Última versión",
|
|
3645
|
+
"checking": "Buscando actualizaciones...",
|
|
3646
|
+
"up_to_date": "¡Está ejecutando la última versión!",
|
|
3647
|
+
"check_failed": "Verificación de actualización fallida",
|
|
3648
|
+
"release_notes": "Novedades",
|
|
3649
|
+
"no_asset": "No hay instalador disponible para su plataforma. Por favor descárguelo manualmente.",
|
|
3650
|
+
"upgrade": "Actualizar",
|
|
3651
|
+
"retry": "Reintentar",
|
|
3652
|
+
"view_release": "Ver versión",
|
|
3653
|
+
"downloading": "Descargando...",
|
|
3654
|
+
"download_failed": "Descarga fallida",
|
|
3655
|
+
"install_launched": "Instalador iniciado. Moraya se cerrará en breve.",
|
|
3656
|
+
"new_version_available": "¡Nueva versión disponible! Haga clic para actualizar."
|
|
3657
|
+
},
|
|
3658
|
+
"voice": {
|
|
3659
|
+
"__mt": true,
|
|
3660
|
+
"title": "Voice Capture",
|
|
3661
|
+
"provider": "Provider",
|
|
3662
|
+
"language": "Language",
|
|
3663
|
+
"doubao": "Doubao (Realtime)",
|
|
3664
|
+
"start": "Record",
|
|
3665
|
+
"stop": "Stop",
|
|
3666
|
+
"processing": "Processing...",
|
|
3667
|
+
"transcript": "Transcript",
|
|
3668
|
+
"words": "words",
|
|
3669
|
+
"structurize": "AI Structurize",
|
|
3670
|
+
"view_history": "View History",
|
|
3671
|
+
"untitled": "Untitled",
|
|
3672
|
+
"key_points": "Key Points",
|
|
3673
|
+
"action_items": "Action Items",
|
|
3674
|
+
"save_note": "Save Note",
|
|
3675
|
+
"discard": "Discard",
|
|
3676
|
+
"quota_exceeded": "Monthly voice quota exceeded. Upgrade or wait until next month.",
|
|
3677
|
+
"quota_near": "You are near your monthly voice limit.",
|
|
3678
|
+
"history": {
|
|
3679
|
+
"title": "Voice History",
|
|
3680
|
+
"new_capture": "+ New Recording",
|
|
3681
|
+
"search_placeholder": "Search transcripts...",
|
|
3682
|
+
"no_results": "No transcripts match your search.",
|
|
3683
|
+
"empty": "No recordings yet. Start capturing your voice!",
|
|
3684
|
+
"reprocess": "Re-process",
|
|
3685
|
+
"delete": "Delete"
|
|
3686
|
+
}
|
|
3687
|
+
},
|
|
3688
|
+
"welcome": {
|
|
3689
|
+
"title": "Bienvenido a Moraya",
|
|
3690
|
+
"subtitle": "Un editor Markdown minimalista, preparado para IA.",
|
|
3691
|
+
"features_title": "Características",
|
|
3692
|
+
"feature_wysiwyg": "Edición Markdown **WYSIWYG**",
|
|
3693
|
+
"feature_math": "Soporte de fórmulas matemáticas: $E = mc^2$",
|
|
3694
|
+
"feature_themes": "Temas claro y oscuro",
|
|
3695
|
+
"feature_ai": "Asistente de escritura con IA",
|
|
3696
|
+
"feature_mcp": "Protocolo MCP para publicación y sincronización",
|
|
3697
|
+
"feature_lightweight": "Ligero (~5MB de instalador)",
|
|
3698
|
+
"math_title": "Ejemplo matemático",
|
|
3699
|
+
"code_title": "Ejemplo de código",
|
|
3700
|
+
"table_title": "Ejemplo de tabla",
|
|
3701
|
+
"table_feature": "Característica",
|
|
3702
|
+
"table_status": "Estado",
|
|
3703
|
+
"table_done": "Hecho",
|
|
3704
|
+
"start_writing": "Comience a escribir sus ideas aquí...",
|
|
3705
|
+
"tip": "**Consejo:** Presione `Cmd+I` para alternar el panel del asistente de IA.",
|
|
3706
|
+
"shortcuts_title": "Atajos de teclado",
|
|
3707
|
+
"shortcut_save": "`Cmd+S` — Guardar documento",
|
|
3708
|
+
"shortcut_open": "`Cmd+O` — Abrir archivo",
|
|
3709
|
+
"shortcut_new": "`Cmd+N` — Nuevo documento",
|
|
3710
|
+
"shortcut_toggle_mode": "`Cmd+/` — Alternar modo Visual/Fuente",
|
|
3711
|
+
"shortcut_split_mode": "`Cmd+Shift+/` — Alternar modo Dividido",
|
|
3712
|
+
"shortcut_sidebar": "`Cmd+\\` — Alternar barra lateral",
|
|
3713
|
+
"shortcut_settings": "`Cmd+,` — Abrir configuración",
|
|
3714
|
+
"shortcut_ai": "`Cmd+Shift+I` — Alternar panel de IA",
|
|
3715
|
+
"shortcut_export": "`Cmd+Shift+E` — Exportar como HTML",
|
|
3716
|
+
"blockquote_title": "Ejemplo de cita",
|
|
3717
|
+
"blockquote_content": "El arte de escribir es el arte de descubrir lo que uno cree. — Gustave Flaubert",
|
|
3718
|
+
"advanced_math_title": "Matemáticas avanzadas",
|
|
3719
|
+
"list_title": "Ejemplo de lista anidada",
|
|
3720
|
+
"list_item1": "Primeros pasos",
|
|
3721
|
+
"list_item1a": "Instalar la aplicación",
|
|
3722
|
+
"list_item1b": "Configurar sus preferencias",
|
|
3723
|
+
"list_item1c": "Comenzar a escribir",
|
|
3724
|
+
"list_item2": "Funciones avanzadas",
|
|
3725
|
+
"list_item2a": "Asistencia de escritura con IA",
|
|
3726
|
+
"list_item2b": "Integración del protocolo MCP",
|
|
3727
|
+
"list_item2c": "Múltiples formatos de exportación",
|
|
3728
|
+
"list_item3": "Personalización",
|
|
3729
|
+
"list_item3a": "Temas y apariencia",
|
|
3730
|
+
"list_item3b": "Configuración del editor",
|
|
3731
|
+
"list_item3c": "Atajos de teclado",
|
|
3732
|
+
"paragraph_title": "Acerca de Moraya",
|
|
3733
|
+
"paragraph1": "Moraya es un editor Markdown moderno y ligero construido con Rust y Tauri. Combina la simplicidad de un editor de texto con el poder de una interfaz WYSIWYG, ofreciéndole lo mejor de ambos mundos.",
|
|
3734
|
+
"paragraph2": "El nombre \"Moraya\" proviene de combinar \"mora\" (latín para \"un momento\") con \"ya\" (chino para \"elegancia\"), simbolizando momentos elegantes de escritura.",
|
|
3735
|
+
"paragraph3": "Ya sea que esté escribiendo documentación técnica, publicaciones de blog, artículos académicos o notas personales, Moraya proporciona un entorno libre de distracciones que le permite enfocarse en lo más importante — su contenido.",
|
|
3736
|
+
"hr_title": "Líneas horizontales",
|
|
3737
|
+
"hr_description": "Puede usar líneas horizontales para separar diferentes secciones de su documento:"
|
|
3738
|
+
},
|
|
3739
|
+
"workflow": {
|
|
3740
|
+
"title": "Flujo de trabajo IA",
|
|
3741
|
+
"seo_step": "Optimización SEO",
|
|
3742
|
+
"image_gen_step": "Imágenes con IA",
|
|
3743
|
+
"publish_step": "Publicar",
|
|
3744
|
+
"publish_desc": "Enviar a plataformas de destino",
|
|
3745
|
+
"optional_above": "Los pasos anteriores son opcionales",
|
|
3746
|
+
"select_targets": "Seleccionar destinos de publicación",
|
|
3747
|
+
"confirm_publish": "Publicar",
|
|
3748
|
+
"publishing": "Publicando...",
|
|
3749
|
+
"publish_success": "¡Publicado con éxito!",
|
|
3750
|
+
"publish_failed": "Publicación fallida",
|
|
3751
|
+
"mcp_entry": "IA MCP",
|
|
3752
|
+
"mcp_server_count": "servicios conectados",
|
|
3753
|
+
"mcp_tool_count": "herramientas",
|
|
3754
|
+
"list": {
|
|
3755
|
+
"title": "Workflows",
|
|
3756
|
+
"new_workflow": "New Workflow",
|
|
3757
|
+
"empty_state": "Automate your notes with AI workflows",
|
|
3758
|
+
"no_workflows": "No workflows yet",
|
|
3759
|
+
"run_now": "Run Now",
|
|
3760
|
+
"last_run": "Last run",
|
|
3761
|
+
"never_run": "Never run",
|
|
3762
|
+
"enable": "Enable",
|
|
3763
|
+
"disable": "Disable",
|
|
3764
|
+
"delete": "Delete",
|
|
3765
|
+
"confirm_delete": "Delete this workflow?",
|
|
3766
|
+
"locked_custom": "Custom workflows require Personal plan or above"
|
|
3767
|
+
},
|
|
3768
|
+
"trigger": {
|
|
3769
|
+
"cron": "Scheduled",
|
|
3770
|
+
"manual": "Manual",
|
|
3771
|
+
"note_event": "Note Event",
|
|
3772
|
+
"webhook": "Webhook"
|
|
3773
|
+
},
|
|
3774
|
+
"status": {
|
|
3775
|
+
"running": "Running",
|
|
3776
|
+
"completed": "Completed",
|
|
3777
|
+
"failed": "Failed",
|
|
3778
|
+
"paused": "Paused",
|
|
3779
|
+
"cancelled": "Cancelled",
|
|
3780
|
+
"enabled": "Enabled",
|
|
3781
|
+
"disabled": "Disabled"
|
|
3782
|
+
},
|
|
3783
|
+
"edit": {
|
|
3784
|
+
"title_new": "New Workflow",
|
|
3785
|
+
"title_edit": "Edit Workflow",
|
|
3786
|
+
"save": "Save",
|
|
3787
|
+
"run": "Run",
|
|
3788
|
+
"cancel": "Cancel",
|
|
3789
|
+
"yaml_label": "Workflow YAML",
|
|
3790
|
+
"yaml_placeholder": "Enter workflow YAML...",
|
|
3791
|
+
"nodes_label": "Nodes",
|
|
3792
|
+
"valid": "Valid",
|
|
3793
|
+
"invalid": "Invalid",
|
|
3794
|
+
"engine_client": "Client Engine",
|
|
3795
|
+
"engine_server": "Server Engine (KMS required)",
|
|
3796
|
+
"unsaved_changes": "You have unsaved changes"
|
|
3797
|
+
},
|
|
3798
|
+
"history": {
|
|
3799
|
+
"title": "Execution History",
|
|
3800
|
+
"no_runs": "No runs yet",
|
|
3801
|
+
"trigger": "Trigger",
|
|
3802
|
+
"started": "Started",
|
|
3803
|
+
"duration": "Duration",
|
|
3804
|
+
"status": "Status",
|
|
3805
|
+
"workflow": "Workflow",
|
|
3806
|
+
"node_results": "Node Results",
|
|
3807
|
+
"node_id": "Node",
|
|
3808
|
+
"error_detail": "Error"
|
|
3809
|
+
},
|
|
3810
|
+
"market": {
|
|
3811
|
+
"title": "Workflow Templates",
|
|
3812
|
+
"templates": "Built-in Templates",
|
|
3813
|
+
"use_template": "Use Template",
|
|
3814
|
+
"export": "Export Workflow",
|
|
3815
|
+
"export_select": "Select workflow to export",
|
|
3816
|
+
"import": "Import Workflow",
|
|
3817
|
+
"import_placeholder": "Paste workflow YAML here...",
|
|
3818
|
+
"import_btn": "Import",
|
|
3819
|
+
"import_success": "Workflow imported successfully",
|
|
3820
|
+
"import_error": "Invalid workflow YAML",
|
|
3821
|
+
"search_placeholder": "Search templates..."
|
|
3822
|
+
},
|
|
3823
|
+
"templates": {
|
|
3824
|
+
"daily_summary": {
|
|
3825
|
+
"name": "Daily Summary",
|
|
3826
|
+
"description": "Automatically summarize your notes every evening"
|
|
3827
|
+
},
|
|
3828
|
+
"note_translation": {
|
|
3829
|
+
"name": "Note Translation",
|
|
3830
|
+
"description": "Translate notes to another language on demand"
|
|
3831
|
+
},
|
|
3832
|
+
"auto_tagging": {
|
|
3833
|
+
"name": "Auto Tagging",
|
|
3834
|
+
"description": "Automatically tag newly created notes with AI"
|
|
3835
|
+
},
|
|
3836
|
+
"weekly_review": {
|
|
3837
|
+
"name": "Weekly Review",
|
|
3838
|
+
"description": "Generate a weekly reflection every Sunday evening"
|
|
3839
|
+
},
|
|
3840
|
+
"knowledge_graph": {
|
|
3841
|
+
"name": "Knowledge Graph",
|
|
3842
|
+
"description": "Extract entities and relationships from all notes"
|
|
3843
|
+
}
|
|
3844
|
+
},
|
|
3845
|
+
"nodes": {
|
|
3846
|
+
"ai_call": "AI Call",
|
|
3847
|
+
"rag_search": "RAG Search",
|
|
3848
|
+
"transform": "Transform",
|
|
3849
|
+
"if": "Condition",
|
|
3850
|
+
"notes_write": "Write Note",
|
|
3851
|
+
"notify": "Notify",
|
|
3852
|
+
"tool_call": "Tool Call"
|
|
3853
|
+
},
|
|
3854
|
+
"quota": {
|
|
3855
|
+
"exceeded": "Workflow quota exceeded",
|
|
3856
|
+
"daily_limit": "Daily run limit reached",
|
|
3857
|
+
"ai_quota": "AI call quota exceeded"
|
|
3858
|
+
},
|
|
3859
|
+
"safety": {
|
|
3860
|
+
"write_permission_title": "Allow Workflow to Write Notes?",
|
|
3861
|
+
"write_permission_body": "Workflow \"{{ name }}\" wants to create or modify notes.",
|
|
3862
|
+
"allow_once": "Allow Once",
|
|
3863
|
+
"allow_always": "Always Allow",
|
|
3864
|
+
"deny": "Deny"
|
|
3865
|
+
}
|
|
3866
|
+
}
|
|
3867
|
+
}
|