diff --git a/apps/mana/apps/web/src/lib/i18n/locales/writing/de.json b/apps/mana/apps/web/src/lib/i18n/locales/writing/de.json new file mode 100644 index 000000000..ea752757b --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/writing/de.json @@ -0,0 +1,247 @@ +{ + "kinds": { + "blog": "Blog", + "essay": "Essay", + "email": "E-Mail", + "social": "Social", + "story": "Story", + "letter": "Brief", + "speech": "Rede", + "cover-letter": "Bewerbung", + "product-description": "Produkttext", + "press-release": "Pressetext", + "bio": "Bio", + "other": "Sonstiges" + }, + "statuses": { + "draft": "Entwurf", + "refining": "In Überarbeitung", + "complete": "Fertig", + "published": "Veröffentlicht" + }, + "generation_statuses": { + "queued": "In Warteschlange", + "running": "Läuft", + "succeeded": "Fertig", + "failed": "Fehlgeschlagen", + "cancelled": "Abgebrochen" + }, + "tones": { + "neutral": "Neutral", + "warm": "Warm", + "formal": "Formell", + "casual": "Locker", + "professional": "Professionell", + "playful": "Verspielt", + "urgent": "Dringlich", + "empathetic": "Einfühlsam", + "assertive": "Selbstbewusst", + "humorous": "Humorvoll" + }, + "style_sources": { + "preset": "Vorlage", + "custom-description": "Eigene Beschreibung", + "sample-trained": "Aus Textproben trainiert", + "self-trained": "Schreibe wie ich" + }, + "briefing_form": { + "label_title": "Titel", + "placeholder_title": "Mein Blogpost über …", + "label_kind": "Textart", + "label_topic": "Worum geht's?", + "label_topic_hint": "(wird als Kern-Briefing an die KI übergeben)", + "placeholder_topic": "z.B. 'Was Mana von klassischen Produktivitätstools unterscheidet, aus Nutzersicht'", + "label_audience": "Zielgruppe", + "placeholder_audience": "z.B. Gründer, Eltern, …", + "label_tone": "Ton", + "tone_none": "— kein fester Ton —", + "label_target_length": "Länge (Wörter)", + "label_language": "Sprache", + "language_de": "Deutsch", + "language_en": "English", + "language_fr": "Français", + "language_es": "Español", + "language_it": "Italiano", + "label_style": "Stil", + "label_style_hint": "(optional — prägt Ton & Struktur der Generation)", + "label_references": "Quellen", + "label_references_hint": "(optional — flowen als Kontext in den Prompt ein)", + "label_extra": "Zusatzhinweise", + "label_extra_hint": "(optional)", + "placeholder_extra": "z.B. 'keine Buzzwords', 'mit einem Zitat beginnen', …", + "err_no_topic": "Bitte erst ein Thema eingeben — der Vorschlag braucht Kontext.", + "suggest_title": "Titel aus Briefing + Inhalt vorschlagen", + "suggest_title_no_topic": "Erst Thema ausfüllen", + "cancel": "Abbrechen", + "saving": "Speichert…", + "submit_create": "Draft anlegen", + "submit_update": "Speichern" + }, + "refinement_panel": { + "running": "Läuft…", + "failed": "Fehlgeschlagen", + "ready": "Vorschlag bereit", + "close_aria": "Schließen", + "col_original": "Original", + "col_proposal": "Vorschlag", + "generating": "Generiert…", + "err_unknown": "Unbekannter Fehler.", + "empty_result": "Kein Ergebnis.", + "action_accept": "Übernehmen", + "action_retry": "Noch mal", + "action_discard": "Verwerfen", + "action_cancel": "Abbrechen" + }, + "selection_tools": { + "shorten": "Kürzen", + "expand": "Erweitern", + "tone": "Ton ändern", + "rewrite": "Umschreiben", + "translate": "Übersetzen" + }, + "detail_view": { + "loading": "Lädt…", + "not_found_title": "Dieser Draft existiert nicht (mehr).", + "not_found_back": "Zurück zur Übersicht", + "untitled_fallback": "Unbenannt", + "back_to_drafts": "← Alle Drafts", + "toggle_favorite_title": "Favorit", + "action_delete": "Löschen", + "confirm_delete": "\"{title}\" wirklich löschen?", + "share_row_title": "Öffentlicher Link kommt mit M10 (Publish-Hooks). Bis dahin: Token kopieren.", + "share_row_label": "🔗 Unlisted-Token:", + "share_row_copied": "✓ Kopiert", + "share_row_copy": "Kopieren", + "published_label": "📤 Veröffentlicht:", + "published_articles": "📚", + "published_articles_link": "Artikel", + "published_website": "🌐 Website", + "published_presi": "🎞 Präsi", + "published_mail": "✉️ Mail", + "published_social": "💬 Social", + "briefing_section_label": "Briefing", + "active_style_title": "Aktiver Stil", + "version_label": "Version {n}", + "ai_tag": "KI", + "generate_btn": "✨ Generate", + "regenerate_btn": "⟳ Neu generieren", + "generating_btn": "Schreibt…", + "generate_first_title": "Ersten Entwurf aus dem Briefing generieren (⌘G)", + "regenerate_title": "Kompletten Text neu generieren — neue Version (⌘G)", + "checkpoint_btn": "+ Checkpoint", + "checkpoint_saving": "Speichert…", + "checkpoint_title": "Aktuellen Text als neue Version einfrieren (⌘⇧S)", + "version_missing": "Diese Version existiert nicht mehr.", + "history_heading": "Versionen", + "undo_label": "↶ Rückgängig: {label}", + "undo_title": "Letzte Auswahl-Verfeinerung rückgängig (⌘Z)" + }, + "list_view": { + "search_placeholder": "Nach Titel oder Thema suchen…", + "styles_title": "Stile verwalten", + "close_btn": "× Schließen", + "new_draft_btn": "+ Neuer Draft", + "fav_only": "Nur Favoriten", + "loading": "Lädt…", + "hero_title": "Dein KI-Ghostwriter", + "hero_pitch": "Brief Thema, Stil und Quellen — ein fertiger Entwurf entsteht. Verfeinere ihn absatzweise mit ⌘G zum Generieren, Markieren + Selection-Tools, oder direkt im Editor.", + "hero_meta_kinds": "12 Textarten", + "hero_meta_styles": "9 Stile", + "hero_meta_references": "7 Quellen", + "hero_meta_e2e": "E2E-verschlüsselt", + "quick_start_label": "Schnellstart", + "quick_start_title_template": "Neuer {kind}-Entwurf", + "empty_filtered": "Keine Drafts passen zum aktuellen Filter." + }, + "styles_view": { + "back_to_writing": "← Zurück zu Writing", + "title": "Stile", + "subtitle": "Vorlagen und eigene Stile, die der Ghostwriter beim Generieren anwendet.", + "close_btn": "× Schließen", + "create_btn": "+ Eigener Stil", + "section_presets": "Vorlagen", + "section_presets_hint": "Eingebaute Stile — direkt im Briefing auswählbar. Nicht bearbeitbar; für Anpassungen lege einen eigenen Stil an.", + "badge_template": "Vorlage", + "section_my_styles": "Meine Stile", + "loading": "Lädt…", + "empty_my_styles_pre": "Keine eigenen Stile. Klick oben auf ", + "empty_my_styles_strong": "+ Eigener Stil", + "empty_my_styles_post": ", um einen anzulegen — z.B. \"Mein Corporate-Ton\" oder \"Persönliche Blog-Stimme\".", + "action_edit": "Bearbeiten", + "action_delete": "Löschen", + "confirm_delete": "\"{name}\" wirklich löschen?" + }, + "style_form": { + "label_name": "Name", + "placeholder_name": "Mein Corporate-Ton", + "label_description": "Beschreibung", + "label_description_hint": "(die KI liest das wörtlich — sei konkret)", + "placeholder_description": "z.B. \"Kurze Sätze, aktive Formulierungen, keine Buzzwords. Erste-Person-Singular, du-Ansprache. Max. 3 Sätze pro Absatz. Jeder Abschnitt endet mit einer konkreten nächsten Aktion.\"", + "cancel": "Abbrechen", + "saving": "Speichert…", + "submit_create": "Stil anlegen", + "submit_update": "Speichern" + }, + "version_history": { + "badge_ai": "KI", + "badge_ai_title": "KI-generiert", + "badge_active": "Aktiv", + "word_count": "{count} Wörter", + "cost_title": "Verbrauch + Modell der zugehörigen Generation", + "tokens_label": "{input} → {output} Tokens", + "restore": "Wiederherstellen" + }, + "version_editor": { + "placeholder": "Hier schreibst du (oder die KI). Leer lassen für Generate.", + "word_count": "{count} Wörter", + "target_words": " / Ziel ~{words}", + "saving": "Speichert…", + "saved": "Gespeichert" + }, + "export_menu": { + "trigger": "📤 Export", + "title": "Exportieren / Veröffentlichen", + "copy_md": "📋 Markdown kopieren", + "copy_text": "📋 Text kopieren", + "download_md": "↓ Als .md herunterladen", + "print_pdf": "🖨 Drucken / PDF", + "save_as_article": "📚 Als Artikel speichern", + "toast_md_copied": "✓ Markdown kopiert", + "toast_text_copied": "✓ Text kopiert", + "toast_copy_failed": "Kopieren fehlgeschlagen", + "toast_downloaded": "↓ Heruntergeladen", + "toast_saved_article": "✓ Als Artikel gespeichert", + "site_name": "Writing" + }, + "reference_picker": { + "label_url_default": "Link", + "label_kontext": "Kontext-Dokument", + "label_unknown": "—", + "label_article_missing": "Artikel (fehlt)", + "label_note_missing": "Notiz (fehlt)", + "label_note_untitled": "Ohne Titel", + "label_library_missing": "Library-Eintrag (fehlt)", + "label_goal_missing": "Ziel (fehlt)", + "label_image_missing": "Bild (fehlt)", + "label_image_kind_fallback": "{kind}-Bild", + "add_label": "+ Quelle:", + "max_reached": "Max. {max} Quellen pro Draft erreicht. Entferne eine, um eine neue hinzuzufügen.", + "kind_article": "📄 Artikel", + "kind_note": "📝 Notiz", + "kind_library": "📚 Library", + "kind_kontext": "🗂 Kontext", + "kind_goal": "🎯 Ziel", + "kind_me-image": "🖼 Bild", + "kind_url": "🔗 URL", + "search_placeholder": "Suche…", + "no_results": "Keine Treffer.", + "no_goals": "Keine Ziele angelegt.", + "no_me_images": "Keine Bilder. Lege welche unter /profile/me-images an.", + "kontext_empty_pre": "Dieser Space hat noch kein Kontext-Dokument. Lege eines unter ", + "kontext_empty_post": " an.", + "kontext_link": "Kontext-Dokument verknüpfen", + "url_placeholder": "https://…", + "url_note_placeholder": "Kontext (optional)", + "url_add": "Hinzufügen" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/writing/en.json b/apps/mana/apps/web/src/lib/i18n/locales/writing/en.json new file mode 100644 index 000000000..4de33b079 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/writing/en.json @@ -0,0 +1,247 @@ +{ + "kinds": { + "blog": "Blog", + "essay": "Essay", + "email": "Email", + "social": "Social", + "story": "Story", + "letter": "Letter", + "speech": "Speech", + "cover-letter": "Cover letter", + "product-description": "Product", + "press-release": "Press", + "bio": "Bio", + "other": "Other" + }, + "statuses": { + "draft": "Draft", + "refining": "Refining", + "complete": "Complete", + "published": "Published" + }, + "generation_statuses": { + "queued": "Queued", + "running": "Running", + "succeeded": "Succeeded", + "failed": "Failed", + "cancelled": "Cancelled" + }, + "tones": { + "neutral": "Neutral", + "warm": "Warm", + "formal": "Formal", + "casual": "Casual", + "professional": "Professional", + "playful": "Playful", + "urgent": "Urgent", + "empathetic": "Empathetic", + "assertive": "Assertive", + "humorous": "Humorous" + }, + "style_sources": { + "preset": "Preset", + "custom-description": "Custom description", + "sample-trained": "Trained from samples", + "self-trained": "Write like me" + }, + "briefing_form": { + "label_title": "Title", + "placeholder_title": "My blog post about …", + "label_kind": "Kind", + "label_topic": "What's it about?", + "label_topic_hint": "(passed to the AI as the core briefing)", + "placeholder_topic": "e.g. 'How Mana differs from classic productivity tools, from a user's perspective'", + "label_audience": "Audience", + "placeholder_audience": "e.g. founders, parents, …", + "label_tone": "Tone", + "tone_none": "— no fixed tone —", + "label_target_length": "Length (words)", + "label_language": "Language", + "language_de": "German", + "language_en": "English", + "language_fr": "French", + "language_es": "Spanish", + "language_it": "Italian", + "label_style": "Style", + "label_style_hint": "(optional — shapes tone & structure of generation)", + "label_references": "References", + "label_references_hint": "(optional — flow into the prompt as context)", + "label_extra": "Extra notes", + "label_extra_hint": "(optional)", + "placeholder_extra": "e.g. 'no buzzwords', 'start with a quote', …", + "err_no_topic": "Enter a topic first — the suggestion needs context.", + "suggest_title": "Suggest a title from briefing + content", + "suggest_title_no_topic": "Fill in topic first", + "cancel": "Cancel", + "saving": "Saving…", + "submit_create": "Create draft", + "submit_update": "Save" + }, + "refinement_panel": { + "running": "Running…", + "failed": "Failed", + "ready": "Suggestion ready", + "close_aria": "Close", + "col_original": "Original", + "col_proposal": "Suggestion", + "generating": "Generating…", + "err_unknown": "Unknown error.", + "empty_result": "No result.", + "action_accept": "Accept", + "action_retry": "Retry", + "action_discard": "Discard", + "action_cancel": "Cancel" + }, + "selection_tools": { + "shorten": "Shorten", + "expand": "Expand", + "tone": "Change tone", + "rewrite": "Rewrite", + "translate": "Translate" + }, + "detail_view": { + "loading": "Loading…", + "not_found_title": "This draft no longer exists.", + "not_found_back": "Back to list", + "untitled_fallback": "Untitled", + "back_to_drafts": "← All drafts", + "toggle_favorite_title": "Favorite", + "action_delete": "Delete", + "confirm_delete": "Really delete \"{title}\"?", + "share_row_title": "Public link comes with M10 (publish hooks). Until then: copy the token.", + "share_row_label": "🔗 Unlisted token:", + "share_row_copied": "✓ Copied", + "share_row_copy": "Copy", + "published_label": "📤 Published:", + "published_articles": "📚", + "published_articles_link": "Article", + "published_website": "🌐 Website", + "published_presi": "🎞 Presi", + "published_mail": "✉️ Mail", + "published_social": "💬 Social", + "briefing_section_label": "Briefing", + "active_style_title": "Active style", + "version_label": "Version {n}", + "ai_tag": "AI", + "generate_btn": "✨ Generate", + "regenerate_btn": "⟳ Regenerate", + "generating_btn": "Writing…", + "generate_first_title": "Generate the first draft from the briefing (⌘G)", + "regenerate_title": "Regenerate the full text — new version (⌘G)", + "checkpoint_btn": "+ Checkpoint", + "checkpoint_saving": "Saving…", + "checkpoint_title": "Freeze current text as a new version (⌘⇧S)", + "version_missing": "This version no longer exists.", + "history_heading": "Versions", + "undo_label": "↶ Undo: {label}", + "undo_title": "Undo last selection refinement (⌘Z)" + }, + "list_view": { + "search_placeholder": "Search by title or topic…", + "styles_title": "Manage styles", + "close_btn": "× Close", + "new_draft_btn": "+ New draft", + "fav_only": "Favorites only", + "loading": "Loading…", + "hero_title": "Your AI ghostwriter", + "hero_pitch": "Brief topic, style and references — a finished draft appears. Refine it paragraph by paragraph with ⌘G to generate, select + selection tools, or directly in the editor.", + "hero_meta_kinds": "12 kinds", + "hero_meta_styles": "9 styles", + "hero_meta_references": "7 references", + "hero_meta_e2e": "E2E-encrypted", + "quick_start_label": "Quick start", + "quick_start_title_template": "New {kind} draft", + "empty_filtered": "No drafts match the current filter." + }, + "styles_view": { + "back_to_writing": "← Back to Writing", + "title": "Styles", + "subtitle": "Templates and your own styles the ghostwriter applies when generating.", + "close_btn": "× Close", + "create_btn": "+ Custom style", + "section_presets": "Templates", + "section_presets_hint": "Built-in styles — pick directly in the briefing. Not editable; create your own style for adjustments.", + "badge_template": "Template", + "section_my_styles": "My styles", + "loading": "Loading…", + "empty_my_styles_pre": "No custom styles yet. Click ", + "empty_my_styles_strong": "+ Custom style", + "empty_my_styles_post": " above to create one — e.g. \"My corporate tone\" or \"Personal blog voice\".", + "action_edit": "Edit", + "action_delete": "Delete", + "confirm_delete": "Really delete \"{name}\"?" + }, + "style_form": { + "label_name": "Name", + "placeholder_name": "My corporate tone", + "label_description": "Description", + "label_description_hint": "(the AI reads this verbatim — be concrete)", + "placeholder_description": "e.g. \"Short sentences, active phrasing, no buzzwords. First-person-singular, casual you. Max. 3 sentences per paragraph. Each section ends with a concrete next action.\"", + "cancel": "Cancel", + "saving": "Saving…", + "submit_create": "Create style", + "submit_update": "Save" + }, + "version_history": { + "badge_ai": "AI", + "badge_ai_title": "AI-generated", + "badge_active": "Active", + "word_count": "{count} words", + "cost_title": "Token usage + model of the linked generation", + "tokens_label": "{input} → {output} tokens", + "restore": "Restore" + }, + "version_editor": { + "placeholder": "Write here (or let the AI). Leave empty to Generate.", + "word_count": "{count} words", + "target_words": " / target ~{words}", + "saving": "Saving…", + "saved": "Saved" + }, + "export_menu": { + "trigger": "📤 Export", + "title": "Export / publish", + "copy_md": "📋 Copy markdown", + "copy_text": "📋 Copy text", + "download_md": "↓ Download as .md", + "print_pdf": "🖨 Print / PDF", + "save_as_article": "📚 Save as article", + "toast_md_copied": "✓ Markdown copied", + "toast_text_copied": "✓ Text copied", + "toast_copy_failed": "Copy failed", + "toast_downloaded": "↓ Downloaded", + "toast_saved_article": "✓ Saved as article", + "site_name": "Writing" + }, + "reference_picker": { + "label_url_default": "Link", + "label_kontext": "Context document", + "label_unknown": "—", + "label_article_missing": "Article (missing)", + "label_note_missing": "Note (missing)", + "label_note_untitled": "Untitled", + "label_library_missing": "Library entry (missing)", + "label_goal_missing": "Goal (missing)", + "label_image_missing": "Image (missing)", + "label_image_kind_fallback": "{kind} image", + "add_label": "+ Source:", + "max_reached": "Max. {max} sources per draft reached. Remove one to add a new one.", + "kind_article": "📄 Article", + "kind_note": "📝 Note", + "kind_library": "📚 Library", + "kind_kontext": "🗂 Context", + "kind_goal": "🎯 Goal", + "kind_me-image": "🖼 Image", + "kind_url": "🔗 URL", + "search_placeholder": "Search…", + "no_results": "No matches.", + "no_goals": "No goals defined.", + "no_me_images": "No images. Add some under /profile/me-images.", + "kontext_empty_pre": "This space doesn't have a context document yet. Create one under ", + "kontext_empty_post": ".", + "kontext_link": "Link context document", + "url_placeholder": "https://…", + "url_note_placeholder": "Context (optional)", + "url_add": "Add" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/writing/es.json b/apps/mana/apps/web/src/lib/i18n/locales/writing/es.json new file mode 100644 index 000000000..8904cdae4 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/writing/es.json @@ -0,0 +1,247 @@ +{ + "kinds": { + "blog": "Blog", + "essay": "Ensayo", + "email": "Correo", + "social": "Social", + "story": "Relato", + "letter": "Carta", + "speech": "Discurso", + "cover-letter": "Carta de presentación", + "product-description": "Producto", + "press-release": "Nota de prensa", + "bio": "Biografía", + "other": "Otro" + }, + "statuses": { + "draft": "Borrador", + "refining": "En revisión", + "complete": "Listo", + "published": "Publicado" + }, + "generation_statuses": { + "queued": "En cola", + "running": "En curso", + "succeeded": "Listo", + "failed": "Fallido", + "cancelled": "Cancelado" + }, + "tones": { + "neutral": "Neutral", + "warm": "Cálido", + "formal": "Formal", + "casual": "Casual", + "professional": "Profesional", + "playful": "Lúdico", + "urgent": "Urgente", + "empathetic": "Empático", + "assertive": "Asertivo", + "humorous": "Humorístico" + }, + "style_sources": { + "preset": "Plantilla", + "custom-description": "Descripción propia", + "sample-trained": "Entrenado con muestras", + "self-trained": "Escribir como yo" + }, + "briefing_form": { + "label_title": "Título", + "placeholder_title": "Mi entrada de blog sobre …", + "label_kind": "Tipo", + "label_topic": "¿De qué trata?", + "label_topic_hint": "(se pasa a la IA como briefing principal)", + "placeholder_topic": "p. ej. 'En qué se diferencia Mana de las herramientas clásicas de productividad, desde la perspectiva del usuario'", + "label_audience": "Público", + "placeholder_audience": "p. ej. fundadores, padres, …", + "label_tone": "Tono", + "tone_none": "— sin tono fijo —", + "label_target_length": "Longitud (palabras)", + "label_language": "Idioma", + "language_de": "Alemán", + "language_en": "Inglés", + "language_fr": "Francés", + "language_es": "Español", + "language_it": "Italiano", + "label_style": "Estilo", + "label_style_hint": "(opcional — define el tono y la estructura de la generación)", + "label_references": "Fuentes", + "label_references_hint": "(opcional — pasan al prompt como contexto)", + "label_extra": "Notas adicionales", + "label_extra_hint": "(opcional)", + "placeholder_extra": "p. ej. 'sin clichés', 'empezar con una cita', …", + "err_no_topic": "Introduce primero un tema — la sugerencia necesita contexto.", + "suggest_title": "Sugerir un título a partir del briefing y el contenido", + "suggest_title_no_topic": "Rellena primero el tema", + "cancel": "Cancelar", + "saving": "Guardando…", + "submit_create": "Crear borrador", + "submit_update": "Guardar" + }, + "refinement_panel": { + "running": "En curso…", + "failed": "Fallido", + "ready": "Sugerencia lista", + "close_aria": "Cerrar", + "col_original": "Original", + "col_proposal": "Sugerencia", + "generating": "Generando…", + "err_unknown": "Error desconocido.", + "empty_result": "Sin resultado.", + "action_accept": "Aceptar", + "action_retry": "Otra vez", + "action_discard": "Descartar", + "action_cancel": "Cancelar" + }, + "selection_tools": { + "shorten": "Acortar", + "expand": "Ampliar", + "tone": "Cambiar tono", + "rewrite": "Reescribir", + "translate": "Traducir" + }, + "detail_view": { + "loading": "Cargando…", + "not_found_title": "Este borrador ya no existe.", + "not_found_back": "Volver al listado", + "untitled_fallback": "Sin título", + "back_to_drafts": "← Todos los borradores", + "toggle_favorite_title": "Favorito", + "action_delete": "Eliminar", + "confirm_delete": "¿Eliminar de verdad \"{title}\"?", + "share_row_title": "El enlace público llega con M10 (publish hooks). Mientras tanto: copia el token.", + "share_row_label": "🔗 Token unlisted:", + "share_row_copied": "✓ Copiado", + "share_row_copy": "Copiar", + "published_label": "📤 Publicado:", + "published_articles": "📚", + "published_articles_link": "Artículo", + "published_website": "🌐 Sitio web", + "published_presi": "🎞 Presentación", + "published_mail": "✉️ Correo", + "published_social": "💬 Social", + "briefing_section_label": "Briefing", + "active_style_title": "Estilo activo", + "version_label": "Versión {n}", + "ai_tag": "IA", + "generate_btn": "✨ Generar", + "regenerate_btn": "⟳ Regenerar", + "generating_btn": "Escribiendo…", + "generate_first_title": "Generar el primer borrador a partir del briefing (⌘G)", + "regenerate_title": "Regenerar el texto completo — nueva versión (⌘G)", + "checkpoint_btn": "+ Punto de control", + "checkpoint_saving": "Guardando…", + "checkpoint_title": "Congelar el texto actual como nueva versión (⌘⇧S)", + "version_missing": "Esta versión ya no existe.", + "history_heading": "Versiones", + "undo_label": "↶ Deshacer: {label}", + "undo_title": "Deshacer la última refinación de selección (⌘Z)" + }, + "list_view": { + "search_placeholder": "Buscar por título o tema…", + "styles_title": "Gestionar estilos", + "close_btn": "× Cerrar", + "new_draft_btn": "+ Nuevo borrador", + "fav_only": "Solo favoritos", + "loading": "Cargando…", + "hero_title": "Tu ghostwriter de IA", + "hero_pitch": "Brief de tema, estilo y fuentes — aparece un borrador terminado. Refínalo párrafo a párrafo con ⌘G para generar, seleccionar + selection tools, o directamente en el editor.", + "hero_meta_kinds": "12 tipos", + "hero_meta_styles": "9 estilos", + "hero_meta_references": "7 fuentes", + "hero_meta_e2e": "Cifrado E2E", + "quick_start_label": "Inicio rápido", + "quick_start_title_template": "Nuevo borrador {kind}", + "empty_filtered": "Ningún borrador coincide con el filtro actual." + }, + "styles_view": { + "back_to_writing": "← Volver a Writing", + "title": "Estilos", + "subtitle": "Plantillas y estilos propios que el ghostwriter aplica al generar.", + "close_btn": "× Cerrar", + "create_btn": "+ Estilo propio", + "section_presets": "Plantillas", + "section_presets_hint": "Estilos integrados — selecciónalos directamente en el briefing. No editables; crea uno propio para ajustes.", + "badge_template": "Plantilla", + "section_my_styles": "Mis estilos", + "loading": "Cargando…", + "empty_my_styles_pre": "Aún no hay estilos propios. Pulsa arriba ", + "empty_my_styles_strong": "+ Estilo propio", + "empty_my_styles_post": " para crear uno — p. ej. \"Mi tono corporativo\" o \"Voz de blog personal\".", + "action_edit": "Editar", + "action_delete": "Eliminar", + "confirm_delete": "¿Eliminar de verdad \"{name}\"?" + }, + "style_form": { + "label_name": "Nombre", + "placeholder_name": "Mi tono corporativo", + "label_description": "Descripción", + "label_description_hint": "(la IA lo lee literalmente — sé concreto)", + "placeholder_description": "p. ej. \"Frases cortas, voz activa, sin clichés. Primera persona del singular, tuteo. Máx. 3 frases por párrafo. Cada sección termina con una acción concreta siguiente.\"", + "cancel": "Cancelar", + "saving": "Guardando…", + "submit_create": "Crear estilo", + "submit_update": "Guardar" + }, + "version_history": { + "badge_ai": "IA", + "badge_ai_title": "Generado por IA", + "badge_active": "Activa", + "word_count": "{count} palabras", + "cost_title": "Uso de tokens + modelo de la generación asociada", + "tokens_label": "{input} → {output} tokens", + "restore": "Restaurar" + }, + "version_editor": { + "placeholder": "Escribe aquí (o deja a la IA). Vacío para generar.", + "word_count": "{count} palabras", + "target_words": " / objetivo ~{words}", + "saving": "Guardando…", + "saved": "Guardado" + }, + "export_menu": { + "trigger": "📤 Exportar", + "title": "Exportar / publicar", + "copy_md": "📋 Copiar markdown", + "copy_text": "📋 Copiar texto", + "download_md": "↓ Descargar como .md", + "print_pdf": "🖨 Imprimir / PDF", + "save_as_article": "📚 Guardar como artículo", + "toast_md_copied": "✓ Markdown copiado", + "toast_text_copied": "✓ Texto copiado", + "toast_copy_failed": "Error al copiar", + "toast_downloaded": "↓ Descargado", + "toast_saved_article": "✓ Guardado como artículo", + "site_name": "Writing" + }, + "reference_picker": { + "label_url_default": "Enlace", + "label_kontext": "Documento de contexto", + "label_unknown": "—", + "label_article_missing": "Artículo (no encontrado)", + "label_note_missing": "Nota (no encontrada)", + "label_note_untitled": "Sin título", + "label_library_missing": "Entrada de biblioteca (no encontrada)", + "label_goal_missing": "Objetivo (no encontrado)", + "label_image_missing": "Imagen (no encontrada)", + "label_image_kind_fallback": "Imagen {kind}", + "add_label": "+ Fuente:", + "max_reached": "Máx. {max} fuentes por borrador alcanzado. Quita una para añadir otra.", + "kind_article": "📄 Artículo", + "kind_note": "📝 Nota", + "kind_library": "📚 Biblioteca", + "kind_kontext": "🗂 Contexto", + "kind_goal": "🎯 Objetivo", + "kind_me-image": "🖼 Imagen", + "kind_url": "🔗 URL", + "search_placeholder": "Buscar…", + "no_results": "Sin resultados.", + "no_goals": "No hay objetivos definidos.", + "no_me_images": "Sin imágenes. Añade algunas en /profile/me-images.", + "kontext_empty_pre": "Este espacio aún no tiene documento de contexto. Crea uno en ", + "kontext_empty_post": ".", + "kontext_link": "Vincular documento de contexto", + "url_placeholder": "https://…", + "url_note_placeholder": "Contexto (opcional)", + "url_add": "Añadir" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/writing/fr.json b/apps/mana/apps/web/src/lib/i18n/locales/writing/fr.json new file mode 100644 index 000000000..cd7abe5b2 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/writing/fr.json @@ -0,0 +1,247 @@ +{ + "kinds": { + "blog": "Blog", + "essay": "Essai", + "email": "E-mail", + "social": "Social", + "story": "Histoire", + "letter": "Lettre", + "speech": "Discours", + "cover-letter": "Lettre de motivation", + "product-description": "Produit", + "press-release": "Communiqué", + "bio": "Bio", + "other": "Autre" + }, + "statuses": { + "draft": "Brouillon", + "refining": "En révision", + "complete": "Terminé", + "published": "Publié" + }, + "generation_statuses": { + "queued": "En attente", + "running": "En cours", + "succeeded": "Terminé", + "failed": "Échec", + "cancelled": "Annulé" + }, + "tones": { + "neutral": "Neutre", + "warm": "Chaleureux", + "formal": "Formel", + "casual": "Décontracté", + "professional": "Professionnel", + "playful": "Ludique", + "urgent": "Urgent", + "empathetic": "Empathique", + "assertive": "Affirmé", + "humorous": "Humoristique" + }, + "style_sources": { + "preset": "Modèle", + "custom-description": "Description personnelle", + "sample-trained": "Entraîné sur des échantillons", + "self-trained": "Écris comme moi" + }, + "briefing_form": { + "label_title": "Titre", + "placeholder_title": "Mon article de blog sur …", + "label_kind": "Type", + "label_topic": "De quoi ça parle ?", + "label_topic_hint": "(transmis à l'IA comme briefing principal)", + "placeholder_topic": "p. ex. 'Ce qui distingue Mana des outils de productivité classiques, du point de vue utilisateur'", + "label_audience": "Audience", + "placeholder_audience": "p. ex. fondateurs, parents, …", + "label_tone": "Ton", + "tone_none": "— pas de ton fixe —", + "label_target_length": "Longueur (mots)", + "label_language": "Langue", + "language_de": "Allemand", + "language_en": "Anglais", + "language_fr": "Français", + "language_es": "Espagnol", + "language_it": "Italien", + "label_style": "Style", + "label_style_hint": "(optionnel — façonne le ton et la structure de la génération)", + "label_references": "Sources", + "label_references_hint": "(optionnel — passées au prompt comme contexte)", + "label_extra": "Notes supplémentaires", + "label_extra_hint": "(optionnel)", + "placeholder_extra": "p. ex. 'pas de buzzwords', 'commencer par une citation', …", + "err_no_topic": "Saisis d'abord un sujet — la suggestion a besoin de contexte.", + "suggest_title": "Suggérer un titre à partir du briefing + contenu", + "suggest_title_no_topic": "Remplis d'abord le sujet", + "cancel": "Annuler", + "saving": "Enregistrement…", + "submit_create": "Créer le brouillon", + "submit_update": "Enregistrer" + }, + "refinement_panel": { + "running": "En cours…", + "failed": "Échec", + "ready": "Suggestion prête", + "close_aria": "Fermer", + "col_original": "Original", + "col_proposal": "Suggestion", + "generating": "Génération…", + "err_unknown": "Erreur inconnue.", + "empty_result": "Aucun résultat.", + "action_accept": "Accepter", + "action_retry": "Réessayer", + "action_discard": "Rejeter", + "action_cancel": "Annuler" + }, + "selection_tools": { + "shorten": "Raccourcir", + "expand": "Développer", + "tone": "Changer de ton", + "rewrite": "Réécrire", + "translate": "Traduire" + }, + "detail_view": { + "loading": "Chargement…", + "not_found_title": "Ce brouillon n'existe plus.", + "not_found_back": "Retour à la liste", + "untitled_fallback": "Sans titre", + "back_to_drafts": "← Tous les brouillons", + "toggle_favorite_title": "Favori", + "action_delete": "Supprimer", + "confirm_delete": "Vraiment supprimer « {title} » ?", + "share_row_title": "Le lien public arrive avec M10 (publish hooks). En attendant : copie le token.", + "share_row_label": "🔗 Token unlisted :", + "share_row_copied": "✓ Copié", + "share_row_copy": "Copier", + "published_label": "📤 Publié :", + "published_articles": "📚", + "published_articles_link": "Article", + "published_website": "🌐 Site", + "published_presi": "🎞 Présentation", + "published_mail": "✉️ E-mail", + "published_social": "💬 Social", + "briefing_section_label": "Briefing", + "active_style_title": "Style actif", + "version_label": "Version {n}", + "ai_tag": "IA", + "generate_btn": "✨ Générer", + "regenerate_btn": "⟳ Régénérer", + "generating_btn": "Écriture…", + "generate_first_title": "Générer le premier brouillon depuis le briefing (⌘G)", + "regenerate_title": "Régénérer le texte complet — nouvelle version (⌘G)", + "checkpoint_btn": "+ Point de contrôle", + "checkpoint_saving": "Enregistrement…", + "checkpoint_title": "Figer le texte actuel comme nouvelle version (⌘⇧S)", + "version_missing": "Cette version n'existe plus.", + "history_heading": "Versions", + "undo_label": "↶ Annuler : {label}", + "undo_title": "Annuler la dernière révision de sélection (⌘Z)" + }, + "list_view": { + "search_placeholder": "Rechercher par titre ou sujet…", + "styles_title": "Gérer les styles", + "close_btn": "× Fermer", + "new_draft_btn": "+ Nouveau brouillon", + "fav_only": "Favoris seulement", + "loading": "Chargement…", + "hero_title": "Ton ghostwriter IA", + "hero_pitch": "Brief sujet, style et sources — un brouillon fini apparaît. Affine-le paragraphe par paragraphe avec ⌘G pour générer, sélectionner + selection tools, ou directement dans l'éditeur.", + "hero_meta_kinds": "12 types", + "hero_meta_styles": "9 styles", + "hero_meta_references": "7 sources", + "hero_meta_e2e": "Chiffré E2E", + "quick_start_label": "Démarrage rapide", + "quick_start_title_template": "Nouveau brouillon {kind}", + "empty_filtered": "Aucun brouillon ne correspond au filtre actuel." + }, + "styles_view": { + "back_to_writing": "← Retour à Writing", + "title": "Styles", + "subtitle": "Modèles et styles personnels que le ghostwriter applique lors de la génération.", + "close_btn": "× Fermer", + "create_btn": "+ Style personnel", + "section_presets": "Modèles", + "section_presets_hint": "Styles intégrés — sélectionnables directement dans le briefing. Non modifiables ; crée un style personnel pour des ajustements.", + "badge_template": "Modèle", + "section_my_styles": "Mes styles", + "loading": "Chargement…", + "empty_my_styles_pre": "Pas encore de styles personnels. Clique en haut sur ", + "empty_my_styles_strong": "+ Style personnel", + "empty_my_styles_post": " pour en créer un — p. ex. « Mon ton corporate » ou « Ma voix blog ».", + "action_edit": "Modifier", + "action_delete": "Supprimer", + "confirm_delete": "Vraiment supprimer « {name} » ?" + }, + "style_form": { + "label_name": "Nom", + "placeholder_name": "Mon ton corporate", + "label_description": "Description", + "label_description_hint": "(l'IA lit ceci littéralement — sois concret)", + "placeholder_description": "p. ex. « Phrases courtes, formulations actives, pas de buzzwords. Première personne du singulier, tutoiement. Max. 3 phrases par paragraphe. Chaque section finit par une action concrète. »", + "cancel": "Annuler", + "saving": "Enregistrement…", + "submit_create": "Créer le style", + "submit_update": "Enregistrer" + }, + "version_history": { + "badge_ai": "IA", + "badge_ai_title": "Généré par l'IA", + "badge_active": "Active", + "word_count": "{count} mots", + "cost_title": "Tokens utilisés + modèle de la génération associée", + "tokens_label": "{input} → {output} tokens", + "restore": "Restaurer" + }, + "version_editor": { + "placeholder": "Écris ici (ou laisse l'IA). Vide pour générer.", + "word_count": "{count} mots", + "target_words": " / cible ~{words}", + "saving": "Enregistrement…", + "saved": "Enregistré" + }, + "export_menu": { + "trigger": "📤 Export", + "title": "Exporter / publier", + "copy_md": "📋 Copier markdown", + "copy_text": "📋 Copier le texte", + "download_md": "↓ Télécharger en .md", + "print_pdf": "🖨 Imprimer / PDF", + "save_as_article": "📚 Enregistrer comme article", + "toast_md_copied": "✓ Markdown copié", + "toast_text_copied": "✓ Texte copié", + "toast_copy_failed": "Échec de la copie", + "toast_downloaded": "↓ Téléchargé", + "toast_saved_article": "✓ Enregistré comme article", + "site_name": "Writing" + }, + "reference_picker": { + "label_url_default": "Lien", + "label_kontext": "Document de contexte", + "label_unknown": "—", + "label_article_missing": "Article (introuvable)", + "label_note_missing": "Note (introuvable)", + "label_note_untitled": "Sans titre", + "label_library_missing": "Entrée de bibliothèque (introuvable)", + "label_goal_missing": "Objectif (introuvable)", + "label_image_missing": "Image (introuvable)", + "label_image_kind_fallback": "Image {kind}", + "add_label": "+ Source :", + "max_reached": "Max. {max} sources par brouillon atteint. Retire-en une pour en ajouter une nouvelle.", + "kind_article": "📄 Article", + "kind_note": "📝 Note", + "kind_library": "📚 Bibliothèque", + "kind_kontext": "🗂 Contexte", + "kind_goal": "🎯 Objectif", + "kind_me-image": "🖼 Image", + "kind_url": "🔗 URL", + "search_placeholder": "Rechercher…", + "no_results": "Aucun résultat.", + "no_goals": "Aucun objectif défini.", + "no_me_images": "Aucune image. Ajoute-en sous /profile/me-images.", + "kontext_empty_pre": "Cet espace n'a pas encore de document de contexte. Crée-en un sous ", + "kontext_empty_post": ".", + "kontext_link": "Lier le document de contexte", + "url_placeholder": "https://…", + "url_note_placeholder": "Contexte (optionnel)", + "url_add": "Ajouter" + } +} diff --git a/apps/mana/apps/web/src/lib/i18n/locales/writing/it.json b/apps/mana/apps/web/src/lib/i18n/locales/writing/it.json new file mode 100644 index 000000000..144bb3270 --- /dev/null +++ b/apps/mana/apps/web/src/lib/i18n/locales/writing/it.json @@ -0,0 +1,247 @@ +{ + "kinds": { + "blog": "Blog", + "essay": "Saggio", + "email": "E-mail", + "social": "Social", + "story": "Racconto", + "letter": "Lettera", + "speech": "Discorso", + "cover-letter": "Lettera di presentazione", + "product-description": "Prodotto", + "press-release": "Comunicato stampa", + "bio": "Bio", + "other": "Altro" + }, + "statuses": { + "draft": "Bozza", + "refining": "In revisione", + "complete": "Completato", + "published": "Pubblicato" + }, + "generation_statuses": { + "queued": "In coda", + "running": "In esecuzione", + "succeeded": "Completato", + "failed": "Fallito", + "cancelled": "Annullato" + }, + "tones": { + "neutral": "Neutro", + "warm": "Caloroso", + "formal": "Formale", + "casual": "Informale", + "professional": "Professionale", + "playful": "Giocoso", + "urgent": "Urgente", + "empathetic": "Empatico", + "assertive": "Assertivo", + "humorous": "Umoristico" + }, + "style_sources": { + "preset": "Modello", + "custom-description": "Descrizione personale", + "sample-trained": "Allenato su campioni", + "self-trained": "Scrivi come me" + }, + "briefing_form": { + "label_title": "Titolo", + "placeholder_title": "Il mio articolo del blog su …", + "label_kind": "Tipo", + "label_topic": "Di cosa parla?", + "label_topic_hint": "(passato all'IA come briefing principale)", + "placeholder_topic": "es. 'Cosa distingue Mana dagli strumenti classici di produttività, dal punto di vista dell'utente'", + "label_audience": "Pubblico", + "placeholder_audience": "es. fondatori, genitori, …", + "label_tone": "Tono", + "tone_none": "— nessun tono fisso —", + "label_target_length": "Lunghezza (parole)", + "label_language": "Lingua", + "language_de": "Tedesco", + "language_en": "Inglese", + "language_fr": "Francese", + "language_es": "Spagnolo", + "language_it": "Italiano", + "label_style": "Stile", + "label_style_hint": "(opzionale — definisce tono e struttura della generazione)", + "label_references": "Fonti", + "label_references_hint": "(opzionale — entrano nel prompt come contesto)", + "label_extra": "Note aggiuntive", + "label_extra_hint": "(opzionale)", + "placeholder_extra": "es. 'niente buzzword', 'inizia con una citazione', …", + "err_no_topic": "Inserisci prima un argomento — la proposta ha bisogno di contesto.", + "suggest_title": "Proponi un titolo da briefing + contenuto", + "suggest_title_no_topic": "Compila prima l'argomento", + "cancel": "Annulla", + "saving": "Salvataggio…", + "submit_create": "Crea bozza", + "submit_update": "Salva" + }, + "refinement_panel": { + "running": "In esecuzione…", + "failed": "Fallito", + "ready": "Proposta pronta", + "close_aria": "Chiudi", + "col_original": "Originale", + "col_proposal": "Proposta", + "generating": "Generazione…", + "err_unknown": "Errore sconosciuto.", + "empty_result": "Nessun risultato.", + "action_accept": "Accetta", + "action_retry": "Riprova", + "action_discard": "Scarta", + "action_cancel": "Annulla" + }, + "selection_tools": { + "shorten": "Accorcia", + "expand": "Espandi", + "tone": "Cambia tono", + "rewrite": "Riscrivi", + "translate": "Traduci" + }, + "detail_view": { + "loading": "Caricamento…", + "not_found_title": "Questa bozza non esiste più.", + "not_found_back": "Torna all'elenco", + "untitled_fallback": "Senza titolo", + "back_to_drafts": "← Tutte le bozze", + "toggle_favorite_title": "Preferito", + "action_delete": "Elimina", + "confirm_delete": "Eliminare davvero \"{title}\"?", + "share_row_title": "Il link pubblico arriva con M10 (publish hooks). Per ora: copia il token.", + "share_row_label": "🔗 Token unlisted:", + "share_row_copied": "✓ Copiato", + "share_row_copy": "Copia", + "published_label": "📤 Pubblicato:", + "published_articles": "📚", + "published_articles_link": "Articolo", + "published_website": "🌐 Sito web", + "published_presi": "🎞 Presentazione", + "published_mail": "✉️ Mail", + "published_social": "💬 Social", + "briefing_section_label": "Briefing", + "active_style_title": "Stile attivo", + "version_label": "Versione {n}", + "ai_tag": "IA", + "generate_btn": "✨ Genera", + "regenerate_btn": "⟳ Rigenera", + "generating_btn": "Scrive…", + "generate_first_title": "Genera la prima bozza dal briefing (⌘G)", + "regenerate_title": "Rigenera tutto il testo — nuova versione (⌘G)", + "checkpoint_btn": "+ Checkpoint", + "checkpoint_saving": "Salvataggio…", + "checkpoint_title": "Congela il testo attuale come nuova versione (⌘⇧S)", + "version_missing": "Questa versione non esiste più.", + "history_heading": "Versioni", + "undo_label": "↶ Annulla: {label}", + "undo_title": "Annulla l'ultima rifinitura della selezione (⌘Z)" + }, + "list_view": { + "search_placeholder": "Cerca per titolo o argomento…", + "styles_title": "Gestisci stili", + "close_btn": "× Chiudi", + "new_draft_btn": "+ Nuova bozza", + "fav_only": "Solo preferiti", + "loading": "Caricamento…", + "hero_title": "Il tuo ghostwriter IA", + "hero_pitch": "Brief argomento, stile e fonti — nasce una bozza completa. Affinala paragrafo per paragrafo con ⌘G per generare, selezione + selection tools, o direttamente nell'editor.", + "hero_meta_kinds": "12 tipi", + "hero_meta_styles": "9 stili", + "hero_meta_references": "7 fonti", + "hero_meta_e2e": "Cifratura E2E", + "quick_start_label": "Avvio rapido", + "quick_start_title_template": "Nuova bozza {kind}", + "empty_filtered": "Nessuna bozza corrisponde al filtro attuale." + }, + "styles_view": { + "back_to_writing": "← Torna a Writing", + "title": "Stili", + "subtitle": "Modelli e stili personali che il ghostwriter applica durante la generazione.", + "close_btn": "× Chiudi", + "create_btn": "+ Stile personale", + "section_presets": "Modelli", + "section_presets_hint": "Stili integrati — selezionabili direttamente nel briefing. Non modificabili; crea uno stile personale per gli adattamenti.", + "badge_template": "Modello", + "section_my_styles": "I miei stili", + "loading": "Caricamento…", + "empty_my_styles_pre": "Ancora nessuno stile personale. Clicca sopra ", + "empty_my_styles_strong": "+ Stile personale", + "empty_my_styles_post": " per crearne uno — es. \"Il mio tono corporate\" o \"Voce blog personale\".", + "action_edit": "Modifica", + "action_delete": "Elimina", + "confirm_delete": "Eliminare davvero \"{name}\"?" + }, + "style_form": { + "label_name": "Nome", + "placeholder_name": "Il mio tono corporate", + "label_description": "Descrizione", + "label_description_hint": "(l'IA lo legge alla lettera — sii concreto)", + "placeholder_description": "es. \"Frasi brevi, voce attiva, niente buzzword. Prima persona singolare, tu informale. Max 3 frasi per paragrafo. Ogni sezione termina con una prossima azione concreta.\"", + "cancel": "Annulla", + "saving": "Salvataggio…", + "submit_create": "Crea stile", + "submit_update": "Salva" + }, + "version_history": { + "badge_ai": "IA", + "badge_ai_title": "Generato dall'IA", + "badge_active": "Attiva", + "word_count": "{count} parole", + "cost_title": "Uso token + modello della generazione collegata", + "tokens_label": "{input} → {output} token", + "restore": "Ripristina" + }, + "version_editor": { + "placeholder": "Scrivi qui (o lascia all'IA). Vuoto per generare.", + "word_count": "{count} parole", + "target_words": " / obiettivo ~{words}", + "saving": "Salvataggio…", + "saved": "Salvato" + }, + "export_menu": { + "trigger": "📤 Esporta", + "title": "Esporta / pubblica", + "copy_md": "📋 Copia markdown", + "copy_text": "📋 Copia testo", + "download_md": "↓ Scarica come .md", + "print_pdf": "🖨 Stampa / PDF", + "save_as_article": "📚 Salva come articolo", + "toast_md_copied": "✓ Markdown copiato", + "toast_text_copied": "✓ Testo copiato", + "toast_copy_failed": "Copia fallita", + "toast_downloaded": "↓ Scaricato", + "toast_saved_article": "✓ Salvato come articolo", + "site_name": "Writing" + }, + "reference_picker": { + "label_url_default": "Link", + "label_kontext": "Documento di contesto", + "label_unknown": "—", + "label_article_missing": "Articolo (mancante)", + "label_note_missing": "Nota (mancante)", + "label_note_untitled": "Senza titolo", + "label_library_missing": "Voce di libreria (mancante)", + "label_goal_missing": "Obiettivo (mancante)", + "label_image_missing": "Immagine (mancante)", + "label_image_kind_fallback": "Immagine {kind}", + "add_label": "+ Fonte:", + "max_reached": "Max. {max} fonti per bozza raggiunto. Rimuovine una per aggiungerne una nuova.", + "kind_article": "📄 Articolo", + "kind_note": "📝 Nota", + "kind_library": "📚 Libreria", + "kind_kontext": "🗂 Contesto", + "kind_goal": "🎯 Obiettivo", + "kind_me-image": "🖼 Immagine", + "kind_url": "🔗 URL", + "search_placeholder": "Cerca…", + "no_results": "Nessun risultato.", + "no_goals": "Nessun obiettivo definito.", + "no_me_images": "Nessuna immagine. Aggiungile in /profile/me-images.", + "kontext_empty_pre": "Questo spazio non ha ancora un documento di contesto. Crealo in ", + "kontext_empty_post": ".", + "kontext_link": "Collega il documento di contesto", + "url_placeholder": "https://…", + "url_note_placeholder": "Contesto (opzionale)", + "url_add": "Aggiungi" + } +} diff --git a/apps/mana/apps/web/src/lib/modules/writing/components/BriefingForm.svelte b/apps/mana/apps/web/src/lib/modules/writing/components/BriefingForm.svelte index 96f5d3bfb..06177bf2c 100644 --- a/apps/mana/apps/web/src/lib/modules/writing/components/BriefingForm.svelte +++ b/apps/mana/apps/web/src/lib/modules/writing/components/BriefingForm.svelte @@ -5,6 +5,7 @@ but the full form remains the canonical source-of-truth view. --> {#if draft$.loading} -
Lädt…
+{$_('writing.detail_view.loading')}
{:else if !draft}Dieser Draft existiert nicht (mehr).
- Zurück zur Übersicht +{$_('writing.detail_view.not_found_title')}
+ {$_('writing.detail_view.not_found_back')}