memi-board 0.56.2 → 0.58.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/README.md +55 -9
- package/dist/{ar-CQhBdHu3.js → ar-GNguZBN4.js} +45 -4
- package/dist/ar-GNguZBN4.js.map +1 -0
- package/dist/{commentImages-DsW2yCqu.js → commentImages-CRK_2uVi.js} +195 -70
- package/dist/commentImages-CRK_2uVi.js.map +1 -0
- package/dist/composables/useMemiBoardModeration.d.ts +2 -0
- package/dist/composables/useMemiBoardPosts.d.ts +1 -1
- package/dist/composables/useMemiBoardReports.d.ts +102 -3
- package/dist/composables/useMemiBoardUserDirectory.d.ts +20 -0
- package/dist/composables/useMemiBoardUserProfile.d.ts +1 -1
- package/dist/composables/useMemiBoardUsers.d.ts +1 -1
- package/dist/{de-B4GZqxQj.js → de-CS0iRLqe.js} +45 -4
- package/dist/de-CS0iRLqe.js.map +1 -0
- package/dist/{en-BDkfivhc.js → en-DeExi-DR.js} +129 -4
- package/dist/en-DeExi-DR.js.map +1 -0
- package/dist/{es-DzFDaLwo.js → es-dlEFrox-.js} +45 -4
- package/dist/es-dlEFrox-.js.map +1 -0
- package/dist/{fr-Zf5mcs8m.js → fr-B9sjKJF4.js} +45 -4
- package/dist/fr-B9sjKJF4.js.map +1 -0
- package/dist/{id-CaWN8212.js → id-Ca7skouh.js} +45 -4
- package/dist/id-Ca7skouh.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1089 -829
- package/dist/index.js.map +1 -1
- package/dist/{ja-xDttH9CE.js → ja-ByVLGIDd.js} +45 -4
- package/dist/ja-ByVLGIDd.js.map +1 -0
- package/dist/module.mjs +4 -0
- package/dist/module.mjs.map +1 -1
- package/dist/{pt-WIfxYYWQ.js → pt-COQL_Q7A.js} +45 -4
- package/dist/pt-COQL_Q7A.js.map +1 -0
- package/dist/runtime/components/AccountDeletion.vue +64 -0
- package/dist/runtime/components/AuthorMenu.vue +4 -4
- package/dist/runtime/components/CommentFeed.vue +17 -13
- package/dist/runtime/components/CommentForm.vue +58 -56
- package/dist/runtime/components/CommentImageField.vue +18 -13
- package/dist/runtime/components/CommentItem.vue +95 -60
- package/dist/runtime/components/CommentList.vue +10 -1
- package/dist/runtime/components/CommentThread.vue +16 -2
- package/dist/runtime/components/CustomFieldEditor.vue +10 -8
- package/dist/runtime/components/Detail.vue +18 -10
- package/dist/runtime/components/Editor.vue +1 -5
- package/dist/runtime/components/ImageLightbox.vue +126 -58
- package/dist/runtime/components/LikeButton.vue +14 -11
- package/dist/runtime/components/ListViewSwitch.vue +10 -10
- package/dist/runtime/components/Profile.vue +14 -2
- package/dist/runtime/components/ProfileEditModal.vue +20 -3
- package/dist/runtime/components/ReportButton.vue +22 -13
- package/dist/runtime/components/ReportList.vue +77 -93
- package/dist/runtime/components/UserListControls.vue +29 -0
- package/dist/runtime/components/UserListPagination.vue +17 -0
- package/dist/runtime/components/UserManagementEmail.vue +21 -0
- package/dist/runtime/components/UserRoleGuide.vue +38 -0
- package/dist/runtime/components/Users.vue +21 -59
- package/dist/runtime/components/UsersSettings.vue +119 -0
- package/dist/storage.js +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/utils/postSlug.d.ts +12 -0
- package/dist/utils/profileNameModeration.d.ts +8 -0
- package/dist/utils/userDirectoryPage.d.ts +19 -0
- package/dist/{zh-CI6Sd8PD.js → zh-DBjX9qAS.js} +45 -4
- package/dist/zh-DBjX9qAS.js.map +1 -0
- package/docs/account-deletion.md +60 -0
- package/docs/firebase-setup.md +77 -0
- package/docs/firestore.rules.example +78 -4
- package/docs/host-integration.md +85 -11
- package/docs/storage.rules.example +7 -2
- package/package.json +3 -2
- package/scripts/backfill-post-slugs.mjs +38 -0
- package/dist/ar-CQhBdHu3.js.map +0 -1
- package/dist/commentImages-DsW2yCqu.js.map +0 -1
- package/dist/de-B4GZqxQj.js.map +0 -1
- package/dist/en-BDkfivhc.js.map +0 -1
- package/dist/es-DzFDaLwo.js.map +0 -1
- package/dist/fr-Zf5mcs8m.js.map +0 -1
- package/dist/id-CaWN8212.js.map +0 -1
- package/dist/ja-xDttH9CE.js.map +0 -1
- package/dist/pt-WIfxYYWQ.js.map +0 -1
- package/dist/zh-CI6Sd8PD.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de-CS0iRLqe.js","names":[],"sources":["../src/i18n/messages/de.ts"],"sourcesContent":["import type { MemiBoardMessages } from '../translate'\n\n/** 짧은 화면 문구만 번역한다. 빠진 키는 en → ko 순으로 폴백된다. */\nconst messages: MemiBoardMessages = {\n attachments: {\n attach: 'Dateien anhängen ({count} / {max})',\n dropOrClick: 'Dateien ablegen oder klicken',\n uploading: 'Dateien werden hochgeladen…',\n maxFiles: 'Maximal {max} Dateien möglich.',\n },\n auth: {\n writeRestricted: 'Wegen wiederholter Inhaltswarnungen sind Beiträge und Kommentare vorübergehend gesperrt.',\n strikeSuffix: ' (Warnung {count}/{threshold})',\n strikeRestricted: ' Nach {count} Warnungen sind Beiträge und Kommentare gesperrt.',\n notInitialized: '[memi-board] Firebase Auth ist nicht initialisiert.',\n },\n authorMemo: {\n tooLong: 'Notizen dürfen höchstens {max} Zeichen lang sein.',\n },\n authorMenu: {\n viewProfile: 'Profil ansehen',\n viewPosts: 'Beiträge ansehen',\n viewComments: 'Kommentare ansehen',\n memoAriaLabel: 'Notiz zu diesem Autor',\n memoTitle: 'Private Notiz',\n memoPlaceholder: 'Notiz zu diesem Autor…',\n bad: 'Schlecht',\n good: 'Gut',\n },\n avatarCropModal: {\n title: 'Profilbild zuschneiden',\n description: 'Wird quadratisch (1:1) angezeigt. Bereich bitte anpassen.',\n confirm: 'Zuschneiden & hochladen',\n },\n boardSettings: {\n signInRequired: 'Anmeldung erforderlich.',\n idAndNameRequired: 'Bitte Board-ID und Namen eingeben.',\n deleteIdRequired: 'Zum Löschen ist eine Board-ID erforderlich.',\n nameRequired: 'Bitte einen Board-Namen eingeben.',\n },\n boardUsers: {\n unsupportedRole: 'Nicht unterstützte Rolle.',\n roleDescription: {\n admin: 'Verwaltet Benutzerrollen, Board-Einstellungen und alle Inhalte.',\n user: 'Kann Beiträge und Kommentare schreiben und nur eigene Inhalte bearbeiten oder löschen.',\n },\n },\n commentFeed: {\n empty: 'Noch keine Kommentare.',\n emptyLiked: 'Noch keine Kommentare mit Likes.',\n loadFailed: 'Liste konnte nicht geladen werden: {error}',\n blinded: 'Dieser Kommentar wurde von einem Admin ausgeblendet.',\n },\n commentForm: {\n translationSkipped: 'Der Kommentar wurde ohne Übersetzung gespeichert. Du kannst ihn später im Bearbeitungsformular übersetzen.',\n hiddenBoardDenied: 'In ausgeblendeten Boards kann nur das zuständige Team kommentieren.',\n denied: 'Keine Berechtigung, in diesem Board zu kommentieren.',\n signInRequired: 'Anmeldung erforderlich.',\n writeRestricted: 'Wegen wiederholter Inhaltswarnungen sind Beiträge und Kommentare vorübergehend gesperrt.',\n moderationBlocked: 'Enthält Inhalte, die nicht veröffentlicht werden können.',\n replyTo: 'Antwort an {name}',\n placeholder: 'Kommentar schreiben',\n submitReply: 'Antworten',\n submit: 'Kommentieren',\n signInToComment: 'Zum Kommentieren bitte anmelden.',\n attachHint: 'Bild hierher ziehen oder klicken, um eines auszuwählen.',\n attachNote: 'jpg, png, gif, webp. Große Bilder werden auf höchstens 5MB verkleinert.',\n removeImage: 'Angehängtes Bild entfernen',\n imageOnly: 'Nur jpg-, png-, gif- und webp-Bilder können angehängt werden.',\n uploadFailed: 'Bild konnte nicht hochgeladen werden.',\n uploading: 'Bild wird hochgeladen…',\n },\n commentItem: {\n editRestricted: 'Das Bearbeiten von Kommentaren ist vorübergehend gesperrt.',\n moderationBlocked: 'Enthält Inhalte, die nicht veröffentlicht werden können.',\n editFailed: 'Kommentar konnte nicht bearbeitet werden.',\n blindFailed: 'Ausblendestatus konnte nicht geändert werden.',\n likeFailed: 'Like konnte nicht verarbeitet werden.',\n blinded: 'Dieser Kommentar wurde von einem Admin ausgeblendet.',\n attachedImage: 'An den Kommentar angehängtes Bild',\n edit: 'Kommentar bearbeiten',\n blind: 'Kommentar ausblenden',\n unblind: 'Kommentar einblenden',\n delete: 'Kommentar löschen',\n },\n commentList: {\n loading: 'Kommentare werden geladen',\n empty: 'Noch keine Kommentare.',\n loadMore: 'Weitere Kommentare',\n loadingMore: 'Weitere Kommentare werden geladen',\n },\n commentThread: {\n deleteConfirm: 'Diesen Kommentar löschen?',\n deleteFailed: 'Kommentar konnte nicht gelöscht werden.',\n hideReplies: 'Antworten ausblenden',\n showReplies: '{count} Antworten',\n loadMoreReplies: 'Weitere Antworten',\n },\n comments: {\n bodyRequired: 'Bitte einen Kommentar eingeben.',\n bodyTooLong: 'Kommentare dürfen höchstens {max} Zeichen lang sein.',\n replyTargetNotFound: 'Der Kommentar, auf den geantwortet wird, wurde nicht gefunden.',\n threadNotFound: 'Kommentar-Thread nicht gefunden.',\n hasRepliesCannotDelete: 'Kommentare mit Antworten können derzeit nicht gelöscht werden.',\n },\n common: {\n action: {\n zoomIn: \"Vergrößern\",\n zoomOut: \"Verkleinern\",\n fitImage: \"An Bildschirm anpassen\",\n originalImage: \"Originalgröße (100%)\",\n cancel: 'Abbrechen',\n save: 'Speichern',\n saved: 'Gespeichert',\n edit: 'Bearbeiten',\n delete: 'Löschen',\n confirm: 'OK',\n close: 'Schließen',\n add: 'Hinzufügen',\n more: 'Mehr',\n prev: 'Zurück',\n next: 'Weiter',\n retry: 'Erneut versuchen',\n reply: 'Antworten',\n like: 'Gefällt mir',\n unlike: 'Gefällt mir nicht mehr',\n share: 'Teilen',\n report: 'Melden',\n signIn: 'Anmelden',\n signOut: 'Abmelden',\n write: 'Schreiben',\n toTop: 'Nach oben',\n },\n label: {\n imageControls: \"Bildzoom-Steuerung\",\n anonymous: 'Anonym',\n user: 'Benutzer',\n image: 'Bild',\n draft: 'Entwurf',\n loading: 'Wird geladen…',\n },\n role: {\n admin: 'Admin',\n staff: 'Team',\n user: 'Benutzer',\n },\n date: {\n justNow: 'Gerade eben',\n fewSecondsAgo: 'Vor wenigen Sekunden',\n checking: 'Zeit wird geprüft',\n createdAt: 'Erstellt: {time}',\n updatedAt: 'Bearbeitet: {time}',\n },\n },\n detail: {\n deleteConfirm: 'Diesen Beitrag löschen? Das kann nicht rückgängig gemacht werden.',\n notFound: 'Beitrag nicht gefunden.',\n draftPreview: 'Unveröffentlichte Vorschau',\n draftNotice: 'Noch nicht veröffentlicht. Bis zur Veröffentlichung nur für dich sichtbar.',\n publish: 'Veröffentlichen',\n notice: 'Hinweis',\n pin: 'Als Hinweis anheften',\n unpin: 'Hinweis lösen',\n backToList: 'Zurück zur Liste',\n postNav: 'Beitragsnavigation',\n list: 'Liste',\n comments: 'Kommentare',\n },\n editor: {\n titleOptionalPlaceholder: 'Titel (leer lassen, dann schreibt die KI einen)',\n titleAiNotice: 'Die KI hat aus deinem Text einen Titel erstellt. Speichere ihn, wenn er dir gefällt, oder passe ihn vorher an.',\n translateView: {\n title: 'Übersetzungsvorschau: {language}',\n notSaved: 'Nicht gespeichert. Dies ist nur eine Vorschau.',\n },\n titlePlaceholder: 'Titel',\n contentPlaceholder: 'Text eingeben… / öffnet das Blockmenü.',\n imageContentPlaceholder: 'Text eingeben…',\n tagsPlaceholder: 'Tag eingeben, dann Enter',\n pinNotice: 'Als Hinweis anheften',\n submitEdit: 'Änderungen speichern',\n submitNext: 'Weiter: Vorschau',\n apply: 'Übernehmen',\n imageOptimizing: 'Bild wird optimiert und hochgeladen…',\n cover: {\n imageLink: 'Bildlink',\n addPhoto: 'Fotos hinzufügen',\n alt: 'Foto {n}',\n representative: 'Titelbild',\n setRepresentative: 'Als Titelbild',\n setRepresentativeAria: 'Foto {n} als Titelbild festlegen',\n remove: 'Foto entfernen',\n add: 'Hinzufügen',\n uploading: 'Wird hochgeladen…',\n dropOrClick: 'Fotos ablegen oder klicken',\n emptyHint: 'Mehrfachauswahl · Titelbild nach Upload wählen · Ziehen zum Sortieren',\n uploadTitle: 'Hochladen',\n },\n uploadFailed: 'Upload fehlgeschlagen',\n aiAssistant: 'AI-Schreibassistent',\n insertBlock: 'Block einfügen',\n blockMenu: 'Blockmenü',\n imageDialog: {\n title: 'Bild hinzufügen',\n chooseFile: 'Bild vom Gerät auswählen',\n orLink: 'oder Bildlink',\n urlLabel: 'Bild-URL',\n previewAlt: 'Vorschau des externen Bildes',\n addLink: 'Link hinzufügen',\n },\n customDialog: {\n title: 'In eigenem Stil umschreiben',\n label: 'Wie soll umgeschrieben werden?',\n help: 'z. B. locker / förmlich und schriftlich / als knappe Stichpunkte',\n placeholder: 'Locker formuliert',\n },\n aiPreview: {\n title: 'AI-Ergebnis prüfen',\n currentTitle: 'Aktueller Titel',\n newTitle: 'Neuer Titel',\n currentContent: 'Aktueller Inhalt',\n appendedContent: 'Hinzuzufügender Inhalt',\n before: 'Vorher',\n after: 'Nachher',\n },\n menu: {\n ai: 'AI',\n aiContinue: 'Mit AI weiterschreiben',\n style: 'Stil',\n insert: 'Einfügen',\n paragraph: 'Absatz',\n heading1: 'Überschrift 1',\n heading2: 'Überschrift 2',\n heading3: 'Überschrift 3',\n bulletList: 'Aufzählung',\n orderedList: 'Nummerierte Liste',\n blockquote: 'Zitat',\n codeBlock: 'Codeblock',\n horizontalRule: 'Trennlinie',\n image: 'Bild',\n turnInto: 'Umwandeln in',\n resetFormatting: 'Formatierung zurücksetzen',\n duplicate: 'Duplizieren',\n moveUp: 'Nach oben',\n moveDown: 'Nach unten',\n delete: 'Löschen',\n },\n toolbar: {\n link: 'Link',\n image: 'Bild',\n format: 'Format',\n bold: 'Fett',\n italic: 'Kursiv',\n underline: 'Unterstrichen',\n strike: 'Durchgestrichen',\n title: 'Titel',\n heading: 'Überschrift',\n subheading: 'Zwischenüberschrift',\n body: 'Fließtext',\n mono: 'Monospace',\n bulletList: 'Aufzählung',\n orderedList: 'Nummerierte Liste',\n blockquote: 'Blockzitat',\n codeBlock: 'Codeblock',\n horizontalRule: 'Trennlinie',\n clearFormatting: 'Formatierung entfernen',\n undo: 'Rückgängig',\n redo: 'Wiederholen',\n },\n ai: {\n translateView: 'Übersetzt ansehen',\n translateAll: 'In {count} Sprachen übersetzen und speichern',\n proofread: 'Rechtschreibung prüfen',\n polish: 'Text verbessern',\n continue: 'Weiterschreiben',\n summarize: 'Kurz zusammenfassen',\n translateEn: 'Ins Englische übersetzen',\n translateKo: 'Ins Koreanische übersetzen',\n translateEmpty: 'Geben Sie zuerst einen Titel oder Text zum Übersetzen ein.',\n title: 'Titel aus Text erstellen',\n custom: 'In eigenem Stil umschreiben…',\n failed: 'AI-Aufgabe fehlgeschlagen. Bitte erneut versuchen.',\n },\n youtubePrompt: 'YouTube-Link eingeben.',\n errors: {\n coverMax: 'Maximal {max} Fotos möglich.',\n imageUrlRequired: 'Bitte eine Bild-URL eingeben.',\n imageUrlInvalid: 'Bitte eine gültige Bild-URL eingeben.',\n imageUrlHttps: 'Nur HTTPS-Bild-URLs sind erlaubt.',\n imageUrlCredentials: 'URLs mit Anmeldedaten sind nicht erlaubt.',\n imageTimeout: 'Das Bild lädt zu lange.',\n imageNotDisplayable: 'Dieses Bild kann nicht angezeigt werden.',\n editorNotReady: 'Editor ist nicht bereit. Bitte erneut versuchen.',\n imageLinkFailed: 'Bildlink konnte nicht hinzugefügt werden.',\n imageOnly: 'Nur Bilddateien können hochgeladen werden.',\n imageTooLarge: 'Originalbilder dürfen höchstens {mb} MB groß sein.',\n imageUploadFailed: 'Bild-Upload fehlgeschlagen.',\n pasteAsFile: 'Fotos bitte als Dateien in den Bereich oben einfügen oder ziehen.',\n postNotFound: 'Beitrag nicht gefunden.',\n loadPermission: 'Keine Berechtigung, diesen Beitrag zu laden. Bitte Anmeldung prüfen.',\n loadFailed: 'Beitrag konnte nicht geladen werden: {message}',\n titleRequired: 'Bitte einen Titel eingeben.',\n photoRequired: 'Bitte mindestens ein Foto hochladen.',\n bodyRequired: 'Bitte Text eingeben oder ein Bild anhängen.',\n signInRequired: 'Anmeldung erforderlich.',\n boardMissing: 'Kein Board angegeben.',\n writeRestricted: 'Wegen wiederholter Inhaltswarnungen sind Beiträge und Kommentare vorübergehend gesperrt.',\n moderationBlocked: 'Enthält Inhalte, die nicht veröffentlicht werden können.',\n },\n hint: {\n titling: 'Titel wird erstellt…',\n reviewing: 'Inhalt wird geprüft…',\n saving: 'Wird gespeichert…',\n },\n },\n footer: {\n introduction: \"memi-board basiert auf Nuxt 4, Vue 3 und TypeScript. Nuxt UI und Firebase verbinden Beiträge, Kommentare und Gespräche.\",\n eyebrow: \"Ein Ort für Gespräche\",\n tagline: \"Kleine Communitys. Gemeinsame Geschichten.\",\n detail: \"Ausführliche Einführung\",\n links: \"Links & Kontakt\",\n email: \"E-Mail\",\n credit: \"Entwickelt von memi\",\n feedback: \"Feedback senden\",\n feedbackSubject: \"memi-board Feedback\",\n feedbackBody: \"Feedback:\\n\",\n siteEyebrow: \"Mit memi-board entwickelt\",\n changelog: \"Änderungsprotokoll\",\n info: {\n title: \"memi-board\",\n about: \"Über memi-board\",\n sites: \"Referenzen\",\n history: 'Versionsverlauf',\n },\n sites: {\n description: \"Diese Dienste nutzen memi-board für Beiträge und Gespräche.\",\n memi: \"Ein Ort für Entwicklung und Alltagsgeschichten\",\n waiting: \"Ein einfacher Wartelistendienst per QR-Code\",\n track: \"GPS-Tracking zur Aufzeichnung von Routen\",\n loop: \"Fahrtenaufzeichnung und Sensorlösungen\",\n safe: \"Verbindung und Einrichtung eines Geräts gegen Pedalverwechslungen\",\n inviteTitle: \"Nutzen Sie es auch?\",\n invite: \"Schreiben Sie uns Ihre Website-Adresse.\",\n inviteSite: \"Auf memi.dev hinterlassen\",\n inviteOr: \"oder\",\n inviteSubject: \"Wir nutzen memi-board\",\n inviteBody: \"Website-Adresse:\\n\",\n },\n stack: {\n ui: 'Oberfläche & Erlebnis',\n data: 'Daten & Anmeldung',\n writing: 'Schreiben & Komfort',\n },\n },\n likes: {\n signInRequired: 'Anmeldung erforderlich.',\n commentNotFound: 'Kommentar nicht gefunden.',\n },\n list: {\n boardInfo: {\n creator: 'Erstellt von',\n managers: 'Manager',\n staff: 'Team',\n },\n commentCount: '{count} Kommentare',\n settings: 'Einstellungen',\n loadFailed: 'Liste konnte nicht geladen werden: {error}',\n empty: 'Noch keine Beiträge.',\n notice: 'Hinweis',\n photo: 'Foto',\n likeCount: 'Likes {count}',\n info: {\n title: 'Board-Info',\n about: 'Über dieses Board',\n history: 'Versionsverlauf',\n },\n stack: {\n framework: 'Framework & Sprache',\n ui: 'UI & Styling',\n backend: 'Backend & Daten',\n },\n tech: {\n nuxt: 'Vue-basiertes SSR-Framework',\n vue: 'Composition API · script setup',\n typescript: 'Typsichere Daten und Komponenten',\n nuxtUi: 'Board-, Formular- und Modal-UI',\n tailwind: 'Responsiv · helle/dunkle Stile',\n lucide: 'Leichte, einheitliche Icons',\n dayjs: 'Lesbare Datums- und relative Zeitangaben',\n firestore: 'Echtzeit-DB für Beiträge und Kommentare',\n auth: 'Sichere Anmeldung und Berechtigungen',\n storage: 'Speicher für Bilder und Anhänge',\n vuefire: 'Echtzeit-Anbindung von Nuxt und Firebase',\n },\n },\n listViewSwitch: {\n card: 'Karte',\n default: 'Standard',\n dense: 'Kompakt',\n video: 'Video',\n },\n miniComments: {\n empty: 'Noch keine Kommentare.',\n blinded: 'Dieser Kommentar wurde von einem Admin ausgeblendet.',\n },\n miniList: {\n empty: 'Noch keine Beiträge.',\n },\n miniPicker: {\n selectedCount: 'Ausgewählt {count} / {max}',\n layoutHint: 'Ab 2 als Karussell, 4 als Raster',\n searchPlaceholder: 'Titel suchen',\n loading: 'Beiträge werden geladen…',\n noMore: 'Keine weiteren Beiträge zur Auswahl.',\n },\n miniPost: {\n empty: 'Keine Beiträge ausgewählt.',\n },\n moderation: {\n writeRestricted: 'Wegen wiederholter Inhaltswarnungen sind Beiträge und Kommentare vorübergehend gesperrt.',\n },\n moderationPrompt: {\n localHit: 'Ausdrücke wie „{hit}“ sind nicht erlaubt. Bitte anders formulieren.',\n localGeneric: 'Enthält Schimpfwörter und kann nicht veröffentlicht werden. Bitte anders formulieren.',\n genericBlocked: 'Enthält Inhalte, die nicht veröffentlicht werden können. Bitte überarbeiten.',\n categories: {\n abuse: 'Schimpfwörter oder Beleidigungen',\n spam: 'Spam oder Werbung',\n adult: 'sexuelle oder nicht jugendfreie Inhalte',\n violence: 'Gewalt oder Drohungen',\n other: 'unangemessene Inhalte',\n },\n },\n moderationStrike: {\n liftSoon: 'endet bald',\n liftInHours: 'endet in ca. {hours} Std.',\n liftInDays: 'endet in ca. {days} T.',\n liftInDaysHours: 'endet in ca. {days} T. {hours} Std.',\n },\n posts: {\n boardIdRequired: '[memi-board] boardId ist erforderlich.',\n photoRequired: 'Bitte ein Foto hinzufügen.',\n bodyRequired: 'Bitte Text eingeben oder ein Bild anhängen.',\n titleRequired: 'Bitte einen Titel eingeben.',\n },\n profile: {\n stats: {\n posts: '{count} Beiträge',\n comments: '{count} Kommentare',\n aiUsage: 'KI genutzt {used} / {limit}',\n aiUsageResets: 'KI genutzt {used} / {limit} · Zurücksetzung in {hours} Std.',\n warnings: '{count} Verwarnungen',\n },\n notFound: 'Benutzer nicht gefunden.',\n noName: 'Kein Name',\n joined: 'Dabei seit {time}',\n lastVisit: 'Zuletzt aktiv {time}',\n },\n profileEditModal: {\n imageOnly: 'Nur Bilddateien können ausgewählt werden.',\n nameRequired: 'Bitte einen Namen eingeben.',\n saveFailed: 'Profil konnte nicht gespeichert werden.',\n title: 'Profil bearbeiten',\n changePhoto: 'Foto ändern',\n name: 'Name',\n bio: 'Über mich',\n bioPlaceholder: 'Erzähl etwas über dich',\n },\n reportButton: {\n failed: 'Meldung konnte nicht gesendet werden.',\n reported: 'Gemeldet',\n title: 'Beitrag melden',\n done: 'Meldung erhalten. Das Team prüft sie.',\n reason: 'Grund',\n detailPlaceholder: 'Details (optional)',\n submit: 'Melden',\n\n \"status\": {\n \"open\": \"Eingegangen\",\n \"dismissed\": \"Abgewiesen\",\n \"actioned\": \"Prüfung abgeschlossen\"\n },\n \"resultTitle\": \"Meldungsstatus\",\n \"result\": {\n \"open\": \"Die Meldung ist eingegangen und wartet auf Prüfung.\",\n \"dismissed\": \"Bei der Prüfung wurde kein Verstoß festgestellt.\",\n \"actioned\": \"Die Prüfung ist abgeschlossen. Siehe Begründung unten.\"\n },\n \"reviewedAt\": \"Geprüft\",\n \"reviewNote\": \"Begründung\",\n \"noNote\": \"Für diesen älteren Eintrag wurde keine Begründung gespeichert.\",\n \"detailRequired\": \"Details (bei Sonstiges erforderlich)\",\n },\n reportList: {\n staffOnly: 'Nur das Team kann Meldungen einsehen.',\n loadFailed: 'Liste konnte nicht geladen werden: {error}',\n empty: 'Keine offenen Meldungen.',\n untitled: 'Beitrag ohne Titel',\n author: 'von {name}',\n dismiss: 'Ablehnen',\n\n \"tabs\": {\n \"open\": \"Ausstehend\",\n \"processed\": \"Prüfverlauf\"\n },\n \"filterLabel\": \"Meldungen filtern\",\n \"orderHint\": \"Neueste Eingänge zuerst.\",\n \"historyEmpty\": \"Kein Prüfverlauf.\",\n \"confirm\": \"Als geprüft markieren\",\n \"dismissTitle\": \"Meldung abweisen\",\n \"resolveTitle\": \"Prüfung abschließen\",\n \"actionHint\": \"Ändert nur den Meldungsstatus. Der Beitrag wird weder ausgeblendet noch gelöscht.\",\n \"publicNote\": \"Die meldende Person kann diese Begründung ebenfalls sehen.\",\n \"reviewer\": \"Geprüft von\",\n \"reviewNote\": \"Begründung\",\n \"unknownReviewer\": \"Unbekannte prüfende Person\",\n \"actionFailed\": \"Verarbeitung fehlgeschlagen. Bitte erneut versuchen.\",\n },\n reports: {\n reason: {\n spam: 'Spam / Werbung',\n abuse: 'Beleidigung / Hass / Belästigung',\n adult: 'Sexuelle Inhalte',\n illegal: 'Illegale Inhalte',\n other: 'Sonstiges',\n },\n fallbackLabel: 'Meldung',\n signInRequired: 'Anmeldung erforderlich.',\n cannotReportOwn: 'Eigene Beiträge können nicht gemeldet werden.',\n reasonRequired: 'Bitte einen Grund auswählen.',\n detailTooLong: 'Details dürfen höchstens {max} Zeichen lang sein.',\n\n \"otherDetailRequired\": \"Bitte bei Sonstiges Details eingeben.\",\n \"reviewNoteRequired\": \"Bitte eine Begründung eingeben.\",\n \"alreadyReviewed\": \"Diese Meldung wurde bereits geprüft. Bitte Liste prüfen.\",\n \"manageRequired\": \"Keine Berechtigung zur Prüfung dieser Meldung.\",\n \"alreadyReported\": \"Du hast diesen Beitrag bereits gemeldet.\",\n \"statusLoadFailed\": \"Status konnte nicht geladen werden. Bitte neu laden.\",\n },\n sectionUtil: {\n kind: {\n list: 'Beitragsliste',\n post: 'Beiträge',\n comments: 'Kommentare',\n },\n sort: {\n latest: 'Neueste',\n likes: 'Beliebteste',\n },\n untitledPost: 'Beitrag',\n view: {\n media: 'Medien',\n list: 'Liste',\n },\n },\n sections: {\n defaultTitle: 'Abschnitt {n}',\n },\n seo: {\n allCategory: 'Alle',\n boardDescription: 'Board {name}',\n allDescription: 'Board – Ankündigungen und News aus der Community.',\n postFallbackTitle: 'Beitrag | {site}',\n postFallbackDescription: 'Board',\n photo: 'Foto',\n postDescriptionFallback: 'Board-Beitrag',\n listTitle: '{name} | {site}',\n listTitleAll: 'Board | {site}',\n listDescription: '{name} – die neuesten Beiträge.',\n listDescriptionAll: 'Board – Ankündigungen und Geschichten.',\n },\n settings: {\n aiTitle: {\n label: 'Titel mit KI erstellen',\n help: 'Bleibt der Titel eines neuen Beitrags leer, schreibt die KI einen aus dem Text (oder aus dem ersten Foto, wenn kein Text vorhanden ist). Fotos werden nur dafür an Google AI gesendet. Ausschalten verlangt einen eigenen Titel und sendet keine Fotos.',\n },\n site: {\n apply: 'Übernehmen',\n applied: 'Übernommen.',\n title: 'Allgemeine Einstellungen',\n help: 'Gelten für die gesamte Website. Sie überschreiben die Einstellungen der Host-App und wirken sofort.',\n ai: { label: 'KI-Funktionen verwenden', help: 'Ausschalten, wenn KI nicht genutzt werden kann, z. B. wegen der Kosten. Dadurch werden Übersetzung, Schreibassistent, KI-Titel und KI-Moderation abgeschaltet, und Fotos werden nicht mehr an die KI gesendet. Die Sperrwortprüfung funktioniert weiterhin.' },\n i18n: { label: 'Internationalisierung verwenden', help: 'Wenn ausgeschaltet, sind alle Seiten auf die unten gewählte Sprache festgelegt und die Übersetzung ist aus. Gespeicherte Übersetzungen werden nicht gelöscht.' },\n locales: { label: 'Angebotene Sprachen', help: 'Nur die {count} ausgewählten Sprachen werden übersetzt und im Sprachmenü angezeigt. Nicht ausgewählte Sprachen erhalten keine neuen Übersetzungen; gespeicherte Übersetzungen werden nicht gelöscht.' },\n locale: { label: 'Standardsprache', help: 'Die Sprache, die verwendet wird, wenn die Host-App keine festlegt.', fixedLabel: 'Feste Sprache', fixedHelp: 'Alle Seiten werden in dieser Sprache angezeigt.' },\n },\n i18nBoard: {\n label: 'Internationalisierung',\n help: 'Wenn eingeschaltet, werden Boardname, Beschreibung sowie neue Beiträge und Kommentare automatisch in {count} Sprachen übersetzt und gespeichert. Ausgeschaltet wird nur der Originaltext angezeigt.',\n existing: 'Bestehende Beiträge auch übersetzen',\n },\n about: {\n label: 'About memi-board anzeigen',\n help: 'Zeigt den Link und das Popup „About memi-board“ unten auf jeder Board-Seite an. Ausschalten blendet es auf der ganzen Website aus.',\n },\n postTranslations: {\n label: 'Bestehende Beiträge übersetzen',\n help: 'Findet Beiträge, deren Übersetzung fehlt oder nicht mehr zum Original passt, und übersetzt und speichert sie auf einmal. Nützlich für Boards mit ausgeschalteter automatischer Übersetzung oder zum Nachholen übersehener Beiträge. Das tägliche KI-Kontingent wird nicht verbraucht.',\n scan: 'Zu übersetzende Beiträge suchen',\n run: '{count} Beiträge übersetzen',\n confirm: '{count} Beiträge werden übersetzt und gespeichert, dabei erfolgt für jeden ein KI-Aufruf. Fortfahren?',\n progress: 'Übersetzung läuft… {done} fertig, {failed} fehlgeschlagen',\n allDone: 'Alle {total} veröffentlichten Beiträge haben aktuelle Übersetzungen.',\n found: '{count} von {total} veröffentlichten Beiträgen müssen übersetzt werden.',\n failed: '{count} Beiträge konnten nicht übersetzt werden. Suche erneut und versuche es noch einmal.',\n },\n loading: 'Einstellungen werden geladen…',\n noAccess: 'Kein Zugriff',\n notFound: {\n title: 'Board nicht gefunden',\n checkAddress: 'Bitte die Adresse prüfen.',\n checkBoardAddress: 'Bitte die Board-Adresse prüfen.',\n },\n newBoard: {\n title: 'Dieses Board gibt es noch nicht',\n description: 'Unten Angaben ausfüllen und speichern, um es mit dieser ID anzulegen.',\n },\n noLabel: 'Kein Label',\n option: {\n default: 'Standard',\n },\n id: {\n label: 'Kategorie-ID',\n help: 'Wird in URL und Daten verwendet',\n },\n writeRole: {\n label: 'Wer darf posten',\n help: 'Mindestrolle zum Posten in dieser Kategorie',\n helpShort: 'Mindestrolle zum Posten',\n options: {\n user: 'Ab Benutzer',\n staff: 'Ab Team',\n admin: 'Nur Admins',\n },\n },\n commentWriteRole: {\n label: 'Wer darf kommentieren',\n help: 'Mindestrolle zum Kommentieren in dieser Kategorie',\n helpShort: 'Mindestrolle zum Kommentieren',\n hiddenFixed: 'Nur zuständiges Team (fest bei ausgeblendeten Boards)',\n },\n staff: {\n label: 'Zuständiges Team',\n help: 'Nur die ausgewählten Teammitglieder können dieses Board einrichten und verwalten. Leer lassen = nur Admins',\n placeholder: 'Nur Admins (kein Team zugewiesen)',\n },\n label: {\n label: 'Anzeigename',\n help: 'Der für Benutzer sichtbare Name',\n },\n description: {\n label: 'Beschreibung',\n help: 'Wird u. a. oben im Board angezeigt',\n placeholder: 'Kurze Beschreibung dieses Boards (optional)',\n },\n visibility: {\n label: 'Sichtbarkeit',\n options: {\n public: {\n label: 'Sichtbar',\n description: 'In Gesamtliste und Filtern sichtbar',\n },\n hidden: {\n label: 'Ausgeblendet',\n description: 'Tagebuch oder privat. Nur das zuständige Team kann kommentieren',\n },\n },\n },\n listView: {\n label: 'Listenansicht',\n help: 'Darstellung der Beitragsliste',\n options: {\n card: 'Karte',\n dense: 'Kompakt',\n video: 'Video',\n },\n },\n editorType: {\n label: 'Beitragsformular',\n help: 'Art der Beitragserstellung',\n options: {\n default: 'Titel und Text schreiben',\n image: 'Mehrere Fotos und ein Titelbild hinzufügen',\n },\n },\n bulk: {\n title: 'Auf alle Boards anwenden',\n apply: 'Auf {count} Boards anwenden',\n applyShort: 'Anwenden',\n confirmTitle: 'Auf alle Boards anwenden',\n translateUntranslated: 'Unübersetzte Boards übersetzen ({count})',\n },\n translationLocales: {\n label: 'Übersetzungssprachen',\n },\n locale: {\n label: 'Board-Sprache',\n auto: 'Automatisch (Sprache der Website)',\n },\n autoTranslate: {\n action: \"In {count} Sprachen übersetzen\",\n manualHelp: \"Anzeigename und Beschreibung zusammen übersetzen. Danach zum Anwenden speichern.\",\n pending: \"Übersetzungen für {count} Sprachen sind bereit. Zum Anwenden speichern.\",\n manualFailed: \"Übersetzung fehlgeschlagen. Ihr Text bleibt erhalten. Bitte erneut versuchen.\",\n label: 'Beim Speichern in {count} Sprachen übersetzen',\n help: 'Wenn aktiv, werden Name und Beschreibung in {count} Sprachen übersetzt. Wenn aus, wird nicht übersetzt. Unveränderter Text wird nicht erneut übersetzt.',\n failed: 'Die Einstellungen wurden gespeichert, die Übersetzung in {count} Sprachen ist aber fehlgeschlagen. Speichern Sie erneut.',\n ready: 'Name und Beschreibung sind in {count} Sprachen gespeichert.',\n },\n action: {\n moveDown: 'Nach unten',\n goToBoard: 'Zum Board',\n deleteBoard: 'Board löschen',\n create: 'Erstellen',\n },\n newCategoryPlaceholder: 'Name der neuen Kategorie',\n savedCategory: 'Kategorie „{label}“ gespeichert.',\n savedSettings: 'Board-Einstellungen gespeichert.',\n created: 'Board erstellt.',\n error: {\n orderFailed: 'Kategoriereihenfolge konnte nicht gespeichert werden.',\n deleteFailed: 'Board und zugehörige Daten konnten nicht gelöscht werden.',\n saveFailed: 'Board-Einstellungen konnten nicht gespeichert werden.',\n deleteAllFailed: 'Board-Daten konnten nicht gelöscht werden.',\n },\n danger: {\n title: 'Gefahrenbereich',\n confirmLabel: 'Zur Bestätigung „{phrase}“ eingeben',\n phrase: 'Board-Daten löschen',\n button: 'Alle Daten löschen',\n done: 'Alle Board-Daten wurden gelöscht.',\n },\n },\n shareButton: {\n copied: 'Link kopiert',\n },\n signIn: {\n withGoogle: 'Mit Google anmelden',\n withApple: 'Mit Apple anmelden',\n or: 'oder',\n name: 'Name',\n email: 'E-Mail',\n password: 'Passwort',\n signUp: 'Registrieren',\n toSignUp: 'Noch kein Konto? Registrieren',\n toSignIn: 'Bereits ein Konto? Anmelden',\n },\n storage: {\n sourceTooLarge: 'Das Originalbild darf höchstens {max} MB groß sein.',\n imageOnly: 'Nur Bilddateien können hochgeladen werden.',\n canvasUnavailable: 'Canvas ist nicht verfügbar',\n compressFailed: 'Komprimierung fehlgeschlagen',\n loadFailed: 'Bild konnte nicht geladen werden',\n },\n swipeHint: {\n title: 'Nach links oder rechts wischen',\n description: 'Nach links wischen für den nächsten, nach rechts für den vorherigen Beitrag.',\n },\n userCommentList: {\n loadFailed: 'Liste konnte nicht geladen werden: {error}',\n empty: 'Noch keine Kommentare.',\n blinded: 'Dieser Kommentar wurde von einem Admin ausgeblendet.',\n likes: '{count} Likes',\n },\n userPostList: {\n loadFailed: 'Liste konnte nicht geladen werden: {error}',\n empty: 'Noch keine Beiträge.',\n },\n users: {\n changeRoleFailed: 'Rolle konnte nicht geändert werden.',\n loading: 'Benutzer werden geladen…',\n noPermission: {\n title: 'Keine Berechtigung',\n description: 'Nur Board-Admins können Benutzerrollen verwalten.',\n },\n empty: 'Noch keine Benutzer im Board angemeldet.',\n noName: 'Kein Name',\n moderationWarnings: '{count} Inhaltswarnungen',\n },\n writingAssistant: {\n dailyLimit: 'Der KI-Schreibassistent kann bis zu {limit}-mal pro Tag verwendet werden. Versuche es in etwa {hours} Stunde(n) erneut.',\n loginRequired: 'Zum Nutzen des AI-Schreibassistenten bitte anmelden.',\n userMissing: 'Benutzerdaten konnten nicht geprüft werden. Bitte erneut versuchen.',\n contentRequired: 'Bitte zuerst Text für die AI eingeben.',\n customRequired: 'Bitte eine Anweisung zum Umschreiben eingeben.',\n emptyResult: 'Die AI konnte kein Ergebnis erzeugen. Bitte erneut versuchen.',\n translateEmpty: 'Geben Sie zuerst einen Titel oder Text zum Übersetzen ein.',\n translateTooLong: 'Texte über {limit} Zeichen können nicht in {count} Sprachen gespeichert werden. Kürzen Sie den Text und versuchen Sie es erneut.',\n translateIncomplete: 'Einige Sprachen kamen leer zurück. Bitte erneut versuchen.',\n failed: 'AI-Aufgabe fehlgeschlagen. Bitte erneut versuchen.',\n actions: {\n proofread: 'Rechtschreibung prüfen',\n polish: 'Text verbessern',\n continue: 'Weiterschreiben',\n summarize: 'Kurz zusammenfassen',\n translateEn: 'Ins Englische übersetzen',\n translateKo: 'Ins Koreanische übersetzen',\n translateAll: 'In {count} Sprachen übersetzen und speichern',\n translateSaved: 'In {count} Sprachen gespeichert. Leser sehen die Übersetzung ihrer Sprache.',\n translatePending: 'Die Übersetzungen für {count} Sprachen sind bereit. Sie werden mit dem Beitrag gespeichert.',\n translateEmpty: 'Geben Sie zuerst einen Titel oder Text zum Übersetzen ein.',\n title: 'Titel aus Text erstellen',\n custom: 'In eigenem Stil umschreiben…',\n },\n },\n}\n\nexport default messages\n"],"mappings":"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,UAAU;GACV,SAAS;GACT,OAAO;GACP,QAAQ;EACV;EACA,SAAS;EACT,UAAU;EACV,UAAU;GACR,OAAO;GACP,cAAc;GACd,mBAAmB;EACrB;EACA,UAAU;GACR,OAAO;GACP,aAAa;EACf;EACA,SAAS;EACT,QAAQ,EACN,SAAS,WACX;EACA,IAAI;GACF,OAAO;GACP,MAAM;EACR;EACA,WAAW;GACT,OAAO;GACP,MAAM;GACN,WAAW;GACX,SAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;GACT;EACF;EACA,kBAAkB;GAChB,OAAO;GACP,MAAM;GACN,WAAW;GACX,aAAa;EACf;EACA,OAAO;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,OAAO;GACL,OAAO;GACP,MAAM;EACR;EACA,aAAa;GACX,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,YAAY;GACV,OAAO;GACP,SAAS;IACP,QAAQ;KACN,OAAO;KACP,aAAa;IACf;IACA,QAAQ;KACN,OAAO;KACP,aAAa;IACf;GACF;EACF;EACA,UAAU;GACR,OAAO;GACP,MAAM;GACN,SAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;GACT;EACF;EACA,YAAY;GACV,OAAO;GACP,MAAM;GACN,SAAS;IACP,SAAS;IACT,OAAO;GACT;EACF;EACA,MAAM;GACJ,OAAO;GACP,OAAO;GACP,YAAY;GACZ,cAAc;GACd,uBAAuB;EACzB;EACA,oBAAoB,EAClB,OAAO,uBACT;EACA,QAAQ;GACN,OAAO;GACP,MAAM;EACR;EACA,eAAe;GACb,QAAQ;GACR,YAAY;GACZ,SAAS;GACT,cAAc;GACd,OAAO;GACP,MAAM;GACN,QAAQ;GACR,OAAO;EACT;EACA,QAAQ;GACN,UAAU;GACV,WAAW;GACX,aAAa;GACb,QAAQ;EACV;EACA,wBAAwB;EACxB,eAAe;EACf,eAAe;EACf,SAAS;EACT,OAAO;GACL,aAAa;GACb,cAAc;GACd,YAAY;GACZ,iBAAiB;EACnB;EACA,QAAQ;GACN,OAAO;GACP,cAAc;GACd,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;CACF;CACA,aAAa,EACX,QAAQ,eACV;CACA,QAAQ;EACN,YAAY;EACZ,WAAW;EACX,IAAI;EACJ,MAAM;EACN,OAAO;EACP,UAAU;EACV,QAAQ;EACR,UAAU;EACV,UAAU;CACZ;CACA,SAAS;EACP,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,gBAAgB;EAChB,YAAY;CACd;CACA,WAAW;EACT,OAAO;EACP,aAAa;CACf;CACA,iBAAiB;EACf,YAAY;EACZ,OAAO;EACP,SAAS;EACT,OAAO;CACT;CACA,cAAc;EACZ,YAAY;EACZ,OAAO;CACT;CACA,OAAO;EACL,kBAAkB;EAClB,SAAS;EACT,cAAc;GACZ,OAAO;GACP,aAAa;EACf;EACA,OAAO;EACP,QAAQ;EACR,oBAAoB;CACtB;CACA,kBAAkB;EAChB,YAAY;EACZ,eAAe;EACf,aAAa;EACb,iBAAiB;EACjB,gBAAgB;EAChB,aAAa;EACb,gBAAgB;EAChB,kBAAkB;EAClB,qBAAqB;EACrB,QAAQ;EACR,SAAS;GACP,WAAW;GACX,QAAQ;GACR,UAAU;GACV,WAAW;GACX,aAAa;GACb,aAAa;GACb,cAAc;GACd,gBAAgB;GAChB,kBAAkB;GAClB,gBAAgB;GAChB,OAAO;GACP,QAAQ;EACV;CACF;AACF"}
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
//#endregion
|
|
2
2
|
//#region src/i18n/messages/en/index.ts
|
|
3
3
|
var e = {
|
|
4
|
+
accountDeletion: {
|
|
5
|
+
title: "Delete account",
|
|
6
|
+
intro: "Permanently remove your account and personal information.",
|
|
7
|
+
open: "Delete account",
|
|
8
|
+
description: "Review what will be removed, then verify your sign-in again.",
|
|
9
|
+
ownerBlocked: "Transfer ownership to another account before deleting your account.",
|
|
10
|
+
authWarning: "This deletes your Firebase sign-in account, including access to host services that share it. Completed deletion cannot be undone.",
|
|
11
|
+
deleteContent: "Also delete my posts, comments, and attachments",
|
|
12
|
+
contentWarning: "Other people’s comments and attachments on your posts will also be deleted. Comments needed to connect replies on other people’s posts remain as empty deleted placeholders.",
|
|
13
|
+
retention: "If unchecked, posts, comments, and attachments remain with author names, photos, and account links anonymized. Personal information you typed in the content may remain. Your profile, email, avatar, private memos, likes, and board assignments are removed in either case.",
|
|
14
|
+
acknowledge: "I understand that deletion cannot be undone once started.",
|
|
15
|
+
typeConfirmation: "Type DELETE to confirm.",
|
|
16
|
+
confirm: "Verify and permanently delete",
|
|
17
|
+
resume: "Resume deletion",
|
|
18
|
+
resumePolicy: "An existing deletion continues with the scope you previously confirmed.",
|
|
19
|
+
authenticating: "Verifying your sign-in…",
|
|
20
|
+
working: "Deleting your account…",
|
|
21
|
+
progress: "{count} items processed. Large accounts take longer. Please keep this page open.",
|
|
22
|
+
retry: "Deletion could not finish. Try again to resume processing.",
|
|
23
|
+
unavailable: "Account deletion is not available yet. Please contact support.",
|
|
24
|
+
signInAgain: "Please verify your sign-in again.",
|
|
25
|
+
unsupportedProvider: "Automatic verification is unavailable for this sign-in method. Please contact support.",
|
|
26
|
+
cancelled: "Verification was cancelled. Your account has not been deleted.",
|
|
27
|
+
sessionExpired: "The processing session expired. Verify your sign-in again to resume.",
|
|
28
|
+
leaveWarning: "Account deletion is in progress. Leaving pauses it. You can resume from this page later. Leave now?",
|
|
29
|
+
success: "Your account has been deleted."
|
|
30
|
+
},
|
|
4
31
|
attachments: {
|
|
5
32
|
attach: "Attach files ({count} / {max})",
|
|
6
33
|
dropOrClick: "Drop files or click to add",
|
|
@@ -40,6 +67,35 @@ var e = {
|
|
|
40
67
|
},
|
|
41
68
|
boardUsers: {
|
|
42
69
|
unsupportedRole: "Unsupported role.",
|
|
70
|
+
guide: {
|
|
71
|
+
title: "User role guide",
|
|
72
|
+
assignmentNote: "Assign managers and staff to specific boards in each board’s settings. Changing a role does not automatically assign any boards.",
|
|
73
|
+
owner: {
|
|
74
|
+
permissions: "Manages user roles, board settings, and all content.",
|
|
75
|
+
roles: "Appoints or removes admins and changes manager, staff, and user roles.",
|
|
76
|
+
restriction: "Ownership cannot be assigned or transferred here. Configure it through the server or console."
|
|
77
|
+
},
|
|
78
|
+
admin: {
|
|
79
|
+
permissions: "Manages board settings and posts and comments across all boards.",
|
|
80
|
+
roles: "Changes manager, staff, and user roles.",
|
|
81
|
+
restriction: "Cannot change other admins’ or the owner’s role."
|
|
82
|
+
},
|
|
83
|
+
manager: {
|
|
84
|
+
permissions: "Changes settings and assigns staff for assigned boards.",
|
|
85
|
+
roles: "Manages posts and comments in assigned boards.",
|
|
86
|
+
restriction: "Cannot change service-wide settings or user roles."
|
|
87
|
+
},
|
|
88
|
+
staff: {
|
|
89
|
+
permissions: "Manages posts and comments in assigned boards.",
|
|
90
|
+
roles: "Cannot change board settings or board assignments.",
|
|
91
|
+
restriction: "Cannot change service-wide settings or user roles."
|
|
92
|
+
},
|
|
93
|
+
user: {
|
|
94
|
+
permissions: "Writes posts and comments as allowed by each board.",
|
|
95
|
+
roles: "Edits or deletes their own posts and comments.",
|
|
96
|
+
restriction: "Cannot access user management or board settings."
|
|
97
|
+
}
|
|
98
|
+
},
|
|
43
99
|
roleDescription: {
|
|
44
100
|
owner: "Manages administrators and the entire service.",
|
|
45
101
|
manager: "Manages settings and staff assignments for assigned boards.",
|
|
@@ -112,6 +168,10 @@ var e = {
|
|
|
112
168
|
},
|
|
113
169
|
common: {
|
|
114
170
|
action: {
|
|
171
|
+
zoomIn: "Zoom in",
|
|
172
|
+
zoomOut: "Zoom out",
|
|
173
|
+
fitImage: "Fit to screen",
|
|
174
|
+
originalImage: "Original size (100%)",
|
|
115
175
|
cancel: "Cancel",
|
|
116
176
|
save: "Save",
|
|
117
177
|
saved: "Saved",
|
|
@@ -135,6 +195,7 @@ var e = {
|
|
|
135
195
|
toTop: "Top"
|
|
136
196
|
},
|
|
137
197
|
label: {
|
|
198
|
+
imageControls: "Image zoom controls",
|
|
138
199
|
anonymous: "Anonymous",
|
|
139
200
|
user: "User",
|
|
140
201
|
image: "Image",
|
|
@@ -453,6 +514,7 @@ var e = {
|
|
|
453
514
|
titleRequired: "Please enter a title."
|
|
454
515
|
},
|
|
455
516
|
profile: {
|
|
517
|
+
myAccount: "My account",
|
|
456
518
|
notFound: "User not found.",
|
|
457
519
|
noName: "No name",
|
|
458
520
|
joined: "Joined {time}",
|
|
@@ -468,6 +530,10 @@ var e = {
|
|
|
468
530
|
profileEditModal: {
|
|
469
531
|
imageOnly: "Only image files can be selected.",
|
|
470
532
|
nameRequired: "Please enter a name.",
|
|
533
|
+
nameReviewHelp: "New names are checked for abuse, hate, spam, and deceptive staff impersonation before saving.",
|
|
534
|
+
checkingName: "Checking name…",
|
|
535
|
+
nameRejected: "This name cannot be used. Please choose another name.",
|
|
536
|
+
nameReviewFailed: "AI could not review the name. Please try again shortly.",
|
|
471
537
|
saveFailed: "Couldn’t save the profile.",
|
|
472
538
|
title: "Edit profile",
|
|
473
539
|
changePhoto: "Change photo",
|
|
@@ -482,7 +548,22 @@ var e = {
|
|
|
482
548
|
done: "Report received. Staff will review it.",
|
|
483
549
|
reason: "Reason",
|
|
484
550
|
detailPlaceholder: "Details (optional)",
|
|
485
|
-
submit: "Report"
|
|
551
|
+
submit: "Report",
|
|
552
|
+
status: {
|
|
553
|
+
open: "Received",
|
|
554
|
+
dismissed: "Dismissed",
|
|
555
|
+
actioned: "Review complete"
|
|
556
|
+
},
|
|
557
|
+
resultTitle: "Report status",
|
|
558
|
+
result: {
|
|
559
|
+
open: "Your report was received and is awaiting review.",
|
|
560
|
+
dismissed: "The review did not find a violation.",
|
|
561
|
+
actioned: "The review is complete. See the reason below."
|
|
562
|
+
},
|
|
563
|
+
reviewedAt: "Reviewed",
|
|
564
|
+
reviewNote: "Review reason",
|
|
565
|
+
noNote: "No reason was recorded in this older entry.",
|
|
566
|
+
detailRequired: "Details (required for Other)"
|
|
486
567
|
},
|
|
487
568
|
reportList: {
|
|
488
569
|
staffOnly: "Only staff can view reports.",
|
|
@@ -491,7 +572,22 @@ var e = {
|
|
|
491
572
|
untitled: "Untitled post",
|
|
492
573
|
author: "by {name}",
|
|
493
574
|
dismiss: "Dismiss",
|
|
494
|
-
|
|
575
|
+
tabs: {
|
|
576
|
+
open: "Pending",
|
|
577
|
+
processed: "Review history"
|
|
578
|
+
},
|
|
579
|
+
filterLabel: "Filter reports",
|
|
580
|
+
orderHint: "Newest received first.",
|
|
581
|
+
historyEmpty: "No review history.",
|
|
582
|
+
confirm: "Mark reviewed",
|
|
583
|
+
dismissTitle: "Dismiss report",
|
|
584
|
+
resolveTitle: "Complete review",
|
|
585
|
+
actionHint: "This only changes the report status. It does not hide or delete the post.",
|
|
586
|
+
publicNote: "This reason is also visible to the reporter.",
|
|
587
|
+
reviewer: "Reviewer",
|
|
588
|
+
reviewNote: "Review reason",
|
|
589
|
+
unknownReviewer: "Unknown reviewer",
|
|
590
|
+
actionFailed: "Could not process the report. Please try again."
|
|
495
591
|
},
|
|
496
592
|
reports: {
|
|
497
593
|
reason: {
|
|
@@ -505,7 +601,13 @@ var e = {
|
|
|
505
601
|
signInRequired: "Please sign in.",
|
|
506
602
|
cannotReportOwn: "You cannot report your own post.",
|
|
507
603
|
reasonRequired: "Please select a reason.",
|
|
508
|
-
detailTooLong: "Details can be up to {max} characters."
|
|
604
|
+
detailTooLong: "Details can be up to {max} characters.",
|
|
605
|
+
otherDetailRequired: "Please provide details when selecting Other.",
|
|
606
|
+
reviewNoteRequired: "Please enter a review reason.",
|
|
607
|
+
alreadyReviewed: "This report was already reviewed. Check the list.",
|
|
608
|
+
manageRequired: "You do not have permission to review this report.",
|
|
609
|
+
alreadyReported: "You already reported this post.",
|
|
610
|
+
statusLoadFailed: "Could not load report status. Please refresh."
|
|
509
611
|
},
|
|
510
612
|
sectionUtil: {
|
|
511
613
|
kind: {
|
|
@@ -811,7 +913,28 @@ var e = {
|
|
|
811
913
|
empty: "No posts yet."
|
|
812
914
|
},
|
|
813
915
|
users: {
|
|
916
|
+
title: "Board users",
|
|
917
|
+
sort: {
|
|
918
|
+
label: "Sort users by",
|
|
919
|
+
name: "Name",
|
|
920
|
+
role: "Role",
|
|
921
|
+
direction: "Sort direction",
|
|
922
|
+
asc: "Ascending",
|
|
923
|
+
desc: "Descending"
|
|
924
|
+
},
|
|
925
|
+
pagination: {
|
|
926
|
+
label: "User list pagination",
|
|
927
|
+
pageSize: "Users per page",
|
|
928
|
+
perPage: "{count} per page",
|
|
929
|
+
status: "Page {page} · {count} users"
|
|
930
|
+
},
|
|
931
|
+
loadFailed: "Couldn’t load users.",
|
|
814
932
|
changeRoleFailed: "Couldn’t change the role.",
|
|
933
|
+
confirmRole: {
|
|
934
|
+
title: "Change user permissions",
|
|
935
|
+
description: "Change {name}’s role from {from} to {to}?",
|
|
936
|
+
confirm: "Change role"
|
|
937
|
+
},
|
|
815
938
|
loading: "Loading users…",
|
|
816
939
|
noPermission: {
|
|
817
940
|
title: "No permission",
|
|
@@ -819,6 +942,8 @@ var e = {
|
|
|
819
942
|
},
|
|
820
943
|
empty: "No users have signed in to the board yet.",
|
|
821
944
|
noName: "No name",
|
|
945
|
+
noEmail: "No email",
|
|
946
|
+
emailLoadFailed: "Couldn’t load the email.",
|
|
822
947
|
moderationWarnings: "{count} content warnings"
|
|
823
948
|
},
|
|
824
949
|
writingAssistant: {
|
|
@@ -848,4 +973,4 @@ var e = {
|
|
|
848
973
|
//#endregion
|
|
849
974
|
export { e as default };
|
|
850
975
|
|
|
851
|
-
//# sourceMappingURL=en-
|
|
976
|
+
//# sourceMappingURL=en-DeExi-DR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en-DeExi-DR.js","names":[],"sources":["../src/i18n/messages/en/accountDeletion.ts","../src/i18n/messages/en/attachments.ts","../src/i18n/messages/en/auth.ts","../src/i18n/messages/en/authorMemo.ts","../src/i18n/messages/en/authorMenu.ts","../src/i18n/messages/en/avatarCropModal.ts","../src/i18n/messages/en/boardSettings.ts","../src/i18n/messages/en/boardUsers.ts","../src/i18n/messages/en/commentFeed.ts","../src/i18n/messages/en/commentForm.ts","../src/i18n/messages/en/commentItem.ts","../src/i18n/messages/en/commentList.ts","../src/i18n/messages/en/commentThread.ts","../src/i18n/messages/en/comments.ts","../src/i18n/messages/en/common.ts","../src/i18n/messages/en/detail.ts","../src/i18n/messages/en/editor.ts","../src/i18n/messages/en/footer.ts","../src/i18n/messages/en/likes.ts","../src/i18n/messages/en/list.ts","../src/i18n/messages/en/listViewSwitch.ts","../src/i18n/messages/en/miniComments.ts","../src/i18n/messages/en/miniList.ts","../src/i18n/messages/en/miniPicker.ts","../src/i18n/messages/en/miniPost.ts","../src/i18n/messages/en/moderation.ts","../src/i18n/messages/en/moderationPrompt.ts","../src/i18n/messages/en/moderationStrike.ts","../src/i18n/messages/en/posts.ts","../src/i18n/messages/en/profile.ts","../src/i18n/messages/en/profileEditModal.ts","../src/i18n/messages/en/reportButton.ts","../src/i18n/messages/en/reportList.ts","../src/i18n/messages/en/reports.ts","../src/i18n/messages/en/sectionUtil.ts","../src/i18n/messages/en/sections.ts","../src/i18n/messages/en/seo.ts","../src/i18n/messages/en/settings.ts","../src/i18n/messages/en/shareButton.ts","../src/i18n/messages/en/signIn.ts","../src/i18n/messages/en/storage.ts","../src/i18n/messages/en/swipeHint.ts","../src/i18n/messages/en/userCommentList.ts","../src/i18n/messages/en/userPostList.ts","../src/i18n/messages/en/users.ts","../src/i18n/messages/en/writingAssistant.ts","../src/i18n/messages/en/index.ts"],"sourcesContent":["export default {\n title: 'Delete account',\n intro: 'Permanently remove your account and personal information.',\n open: 'Delete account',\n description: 'Review what will be removed, then verify your sign-in again.',\n ownerBlocked: 'Transfer ownership to another account before deleting your account.',\n authWarning: 'This deletes your Firebase sign-in account, including access to host services that share it. Completed deletion cannot be undone.',\n deleteContent: 'Also delete my posts, comments, and attachments',\n contentWarning: 'Other people’s comments and attachments on your posts will also be deleted. Comments needed to connect replies on other people’s posts remain as empty deleted placeholders.',\n retention: 'If unchecked, posts, comments, and attachments remain with author names, photos, and account links anonymized. Personal information you typed in the content may remain. Your profile, email, avatar, private memos, likes, and board assignments are removed in either case.',\n acknowledge: 'I understand that deletion cannot be undone once started.',\n typeConfirmation: 'Type DELETE to confirm.',\n confirm: 'Verify and permanently delete',\n resume: 'Resume deletion',\n resumePolicy: 'An existing deletion continues with the scope you previously confirmed.',\n authenticating: 'Verifying your sign-in…',\n working: 'Deleting your account…',\n progress: '{count} items processed. Large accounts take longer. Please keep this page open.',\n retry: 'Deletion could not finish. Try again to resume processing.',\n unavailable: 'Account deletion is not available yet. Please contact support.',\n signInAgain: 'Please verify your sign-in again.',\n unsupportedProvider: 'Automatic verification is unavailable for this sign-in method. Please contact support.',\n cancelled: 'Verification was cancelled. Your account has not been deleted.',\n sessionExpired: 'The processing session expired. Verify your sign-in again to resume.',\n leaveWarning: 'Account deletion is in progress. Leaving pauses it. You can resume from this page later. Leave now?',\n success: 'Your account has been deleted.',\n}\n","export default {\n attach: 'Attach files ({count} / {max})',\n dropOrClick: 'Drop files or click to add',\n uploading: 'Uploading files…',\n maxFiles: 'You can attach up to {max} files.',\n}\n","export default {\n writeRestricted: 'Posting and commenting are temporarily restricted due to repeated content warnings.',\n writeRestrictedUntil: 'Posting and commenting are temporarily restricted due to repeated content warnings. ({until})',\n strikeSuffix: ' (Warning {count}/{threshold})',\n strikeRestrictedUntil: ' You have reached {count} warnings, so posting and commenting are restricted ({until}).',\n strikeRestricted: ' You have reached {count} warnings, so posting and commenting are restricted.',\n notInitialized: '[memi-board] Firebase Auth is not initialized.',\n}\n","export default {\n tooLong: 'Memos can be up to {max} characters.',\n}\n","export default {\n viewProfile: 'View profile',\n viewPosts: 'View posts',\n viewComments: 'View comments',\n memoAriaLabel: 'Note about this author',\n memoTitle: 'Private note',\n memoPlaceholder: 'Jot something down about this author…',\n bad: 'Bad',\n good: 'Good',\n}\n","export default {\n title: 'Crop profile photo',\n description: 'Shown as a square (1:1). Adjust the area to fit.',\n hint: 'Drag to move and zoom · Saved as a {size}×{size} square JPEG',\n confirm: 'Crop and upload',\n}\n","export default {\n signInRequired: 'Please sign in.',\n idAndNameRequired: 'Please enter a board ID and name.',\n deleteIdRequired: 'A board ID is required to delete.',\n nameRequired: 'Please enter a board name.',\n}\n","export default {\n unsupportedRole: 'Unsupported role.',\n guide: {\n title: 'User role guide',\n assignmentNote: 'Assign managers and staff to specific boards in each board’s settings. Changing a role does not automatically assign any boards.',\n owner: {\n permissions: 'Manages user roles, board settings, and all content.',\n roles: 'Appoints or removes admins and changes manager, staff, and user roles.',\n restriction: 'Ownership cannot be assigned or transferred here. Configure it through the server or console.',\n },\n admin: {\n permissions: 'Manages board settings and posts and comments across all boards.',\n roles: 'Changes manager, staff, and user roles.',\n restriction: 'Cannot change other admins’ or the owner’s role.',\n },\n manager: {\n permissions: 'Changes settings and assigns staff for assigned boards.',\n roles: 'Manages posts and comments in assigned boards.',\n restriction: 'Cannot change service-wide settings or user roles.',\n },\n staff: {\n permissions: 'Manages posts and comments in assigned boards.',\n roles: 'Cannot change board settings or board assignments.',\n restriction: 'Cannot change service-wide settings or user roles.',\n },\n user: {\n permissions: 'Writes posts and comments as allowed by each board.',\n roles: 'Edits or deletes their own posts and comments.',\n restriction: 'Cannot access user management or board settings.',\n },\n },\n roleDescription: {\n owner: 'Manages administrators and the entire service.',\n manager: 'Manages settings and staff assignments for assigned boards.',\n admin: 'Manages user roles, board settings, and all content.',\n staff: 'Manages posts and comments in assigned boards, but cannot change settings or assignments.',\n user: 'Can write posts and comments, and edit or delete only their own content.',\n },\n}\n","export default {\n empty: 'No comments yet.',\n emptyLiked: 'No liked comments yet.',\n loadFailed: 'Couldn’t load the list: {error}',\n blinded: 'This comment was hidden by an admin.',\n}\n","export default {\n confirmLeave: 'You have an unfinished comment. Leave without saving?',\n translationPending: 'Translations in {count} languages are ready and will be saved with your comment.',\n translationSkipped: 'Your comment was posted without translation. You can translate it later from the edit form.',\n hiddenBoardDenied: 'Only assigned staff can comment on hidden boards.',\n denied: 'You don’t have permission to comment on this board.',\n signInRequired: 'Please sign in.',\n writeRestricted: 'Posting is temporarily restricted due to repeated content warnings.',\n moderationBlocked: 'This contains content that can’t be posted.',\n replyTo: 'Reply to {name}',\n placeholder: 'Write a comment',\n submitReply: 'Reply',\n submit: 'Comment',\n signInToComment: 'Sign in to leave a comment.',\n attachHint: 'Drop an image here or click to choose one.',\n attachNote: 'jpg, png, gif, webp. Large images are resized to 5MB or less.',\n removeImage: 'Remove attached image',\n imageOnly: 'Only jpg, png, gif, and webp images can be attached.',\n uploadFailed: 'Couldn’t upload the image.',\n uploading: 'Uploading image…',\n}\n","export default {\n editRestricted: 'Editing comments is temporarily restricted.',\n moderationBlocked: 'This contains content that can’t be posted.',\n editFailed: 'Couldn’t update the comment.',\n blindConfirm: 'Hiding this comment shows a notice to everyone instead of its text. The original isn’t deleted and you can unhide it later.\\n\\nHide this comment?',\n unblindConfirm: 'Unhiding shows the original comment to everyone again.\\n\\nUnhide this comment?',\n blindFailed: 'Couldn’t change the hidden state.',\n likeFailed: 'Couldn’t process the like.',\n blinded: 'This comment was hidden by an admin.',\n attachedImage: 'Image attached to the comment',\n edit: 'Edit comment',\n blind: 'Hide comment',\n unblind: 'Unhide comment',\n delete: 'Delete comment',\n}\n","export default {\n loading: 'Loading comments',\n empty: 'No comments yet.',\n loadMore: 'More comments',\n loadingMore: 'Loading more comments',\n}\n","export default {\n deleteConfirm: 'Delete this comment?',\n deleteFailed: 'Couldn’t delete the comment.',\n hideReplies: 'Hide replies',\n showReplies: '{count} replies',\n loadMoreReplies: 'More replies',\n}\n","export default {\n bodyRequired: 'Please enter a comment.',\n bodyTooLong: 'Comments can be up to {max} characters.',\n replyTargetNotFound: 'The comment you are replying to could not be found.',\n threadNotFound: 'The comment thread could not be found.',\n hasRepliesCannotDelete: 'Comments with replies cannot be deleted right now.',\n}\n","export default {\n action: {\n zoomIn: \"Zoom in\",\n zoomOut: \"Zoom out\",\n fitImage: \"Fit to screen\",\n originalImage: \"Original size (100%)\",\n cancel: 'Cancel',\n save: 'Save',\n saved: 'Saved',\n edit: 'Edit',\n delete: 'Delete',\n confirm: 'OK',\n close: 'Close',\n add: 'Add',\n more: 'More',\n prev: 'Previous',\n next: 'Next',\n retry: 'Retry',\n reply: 'Reply',\n like: 'Like',\n unlike: 'Unlike',\n share: 'Share',\n report: 'Report',\n signIn: 'Sign in',\n signOut: 'Sign out',\n write: 'Write',\n toTop: 'Top',\n },\n label: {\n imageControls: \"Image zoom controls\",\n anonymous: 'Anonymous',\n user: 'User',\n image: 'Image',\n draft: 'Draft',\n loading: 'Loading…',\n },\n role: {\n owner: 'Owner',\n manager: 'Manager',\n admin: 'Admin',\n staff: 'Staff',\n user: 'User',\n },\n date: {\n justNow: 'Just now',\n fewSecondsAgo: 'A few seconds ago',\n checking: 'Checking time',\n createdAt: 'Created: {time}',\n updatedAt: 'Updated: {time}',\n },\n}\n","export default {\n deleteConfirm: 'Delete this post? This can’t be undone.',\n notFound: 'Post not found.',\n draftPreview: 'Unpublished preview',\n draftNotice: 'This post isn’t published yet. Only you can see it until you publish.',\n publish: 'Publish',\n notice: 'Notice',\n pin: 'Make notice',\n unpin: 'Remove notice',\n backToList: 'Back to list',\n postNav: 'Post navigation',\n list: 'List',\n comments: 'Comments',\n}\n","export default {\n confirmLeave: 'You have unsaved changes. Leave this page?',\n titlePlaceholder: 'Title',\n contentPlaceholder: 'Write something… Type / to open the block menu.',\n imageContentPlaceholder: 'Write something…',\n tagsPlaceholder: 'Type a tag and press Enter',\n pinNotice: 'Pin as notice',\n submitEdit: 'Save changes',\n submitNext: 'Next: Preview',\n apply: 'Apply',\n imageOptimizing: 'Optimizing and uploading image…',\n cover: {\n hint: 'Photos {count}/{max} · Pick a cover · Drag to reorder · Drop or paste files to add',\n imageLink: 'Image link',\n addPhoto: 'Add photos',\n alt: 'Photo {n}',\n representative: 'Cover',\n setRepresentative: 'Set cover',\n setRepresentativeAria: 'Set photo {n} as cover',\n remove: 'Remove photo',\n add: 'Add',\n uploading: 'Uploading…',\n dropOrClick: 'Drop photos or click to add',\n emptyHint: 'Select multiple · Pick a cover after upload · Drag to reorder',\n uploadTitle: 'Upload',\n },\n uploadFailed: 'Upload failed',\n aiAssistant: 'AI writing assistant',\n insertBlock: 'Insert block',\n blockMenu: 'Block menu',\n imageDialog: {\n title: 'Add image',\n chooseFile: 'Choose image from device',\n orLink: 'or image link',\n urlLabel: 'Image URL',\n urlHelp: 'Only HTTPS URLs are allowed. If the image is removed from the source site, it won’t display here either.',\n previewAlt: 'External image preview',\n addLink: 'Add link',\n },\n customDialog: {\n title: 'Rewrite in a custom style',\n label: 'How should it be rewritten?',\n help: 'e.g. in a casual tone / in formal written style / as concise bullet points',\n placeholder: 'In a casual tone',\n },\n translateView: {\n title: '{language} translation preview',\n notSaved: 'Not saved. This is only a preview.',\n },\n aiPreview: {\n title: 'Review AI result',\n currentTitle: 'Current title',\n newTitle: 'New title',\n currentContent: 'Current content',\n appendedContent: 'Content to add',\n before: 'Before',\n after: 'After',\n },\n menu: {\n ai: 'AI',\n aiContinue: 'Continue with AI',\n style: 'Style',\n insert: 'Insert',\n paragraph: 'Paragraph',\n heading1: 'Heading 1',\n heading2: 'Heading 2',\n heading3: 'Heading 3',\n bulletList: 'Bulleted list',\n orderedList: 'Numbered list',\n blockquote: 'Quote',\n codeBlock: 'Code block',\n horizontalRule: 'Divider',\n image: 'Image',\n turnInto: 'Turn into',\n resetFormatting: 'Reset formatting',\n duplicate: 'Duplicate',\n moveUp: 'Move up',\n moveDown: 'Move down',\n delete: 'Delete',\n },\n toolbar: {\n link: 'Link',\n image: 'Image',\n format: 'Format',\n bold: 'Bold',\n italic: 'Italic',\n underline: 'Underline',\n strike: 'Strikethrough',\n title: 'Title',\n heading: 'Heading',\n subheading: 'Subheading',\n body: 'Body',\n mono: 'Monospace',\n bulletList: 'Bulleted list',\n orderedList: 'Numbered list',\n blockquote: 'Block quote',\n codeBlock: 'Code block',\n horizontalRule: 'Divider',\n clearFormatting: 'Clear formatting',\n undo: 'Undo',\n redo: 'Redo',\n },\n ai: {\n proofread: 'Check spelling',\n polish: 'Polish writing',\n continue: 'Continue writing',\n summarize: 'Summarize briefly',\n translateEn: 'Translate to English',\n translateKo: 'Translate to Korean',\n translateView: 'Translate to preview',\n translateAll: 'Translate and save in {count} languages',\n translateEmpty: 'Enter a title or body to translate first.',\n title: 'Generate title from body',\n custom: 'Rewrite in a custom style…',\n failed: 'The AI task failed. Please try again.',\n },\n youtubePrompt: 'Enter a YouTube link.',\n errors: {\n coverMax: 'You can upload up to {max} photos.',\n imageUrlRequired: 'Enter an image URL.',\n imageUrlInvalid: 'Enter a valid image URL.',\n imageUrlHttps: 'Only HTTPS image URLs are allowed.',\n imageUrlCredentials: 'URLs containing login credentials aren’t allowed.',\n imageTimeout: 'The image is taking too long to load.',\n imageNotDisplayable: 'This image can’t be displayed.',\n imageLoadFailed: 'Couldn’t load the image. Check the URL or whether the site allows external linking.',\n editorNotReady: 'The editor isn’t ready. Please try again.',\n imageLinkFailed: 'Couldn’t add the image link.',\n imageOnly: 'Only image files can be uploaded.',\n imageTooLarge: 'Original images must be {mb}MB or smaller.',\n imageUploadFailed: 'Image upload failed.',\n pasteAsFile: 'Paste or drag photos as files into the area above.',\n postNotFound: 'Post not found.',\n loadPermission: 'You don’t have permission to load this post. Check that you’re signed in.',\n loadFailed: 'Couldn’t load the post: {message}',\n editPermission: 'You don’t have permission to edit. Make sure it’s your post and you’re still signed in.',\n titleRequired: 'Enter a title.',\n photoRequired: 'Upload at least one photo.',\n bodyRequired: 'Write some text or attach an image.',\n signInRequired: 'Sign-in required.',\n boardMissing: 'No board was specified.',\n writeRestricted: 'Posting and commenting are temporarily restricted due to repeated content warnings.',\n moderationBlocked: 'This contains content that can’t be posted.',\n },\n titleOptionalPlaceholder: 'Title (leave empty and AI will write one)',\n titleAiNotice: 'AI wrote a title from your text. Save if you like it, or edit it first.',\n hint: {\n titling: 'Writing a title…',\n translating: 'Translating the post into {count} languages…',\n reviewing: 'Reviewing content…',\n saving: 'Saving…',\n },\n}\n","export default {\n introduction: 'memi-board is built on Nuxt 4, Vue 3 and TypeScript. Nuxt UI and Firebase bring posts, comments and conversations together.',\n eyebrow: 'A space for conversation',\n tagline: 'Small communities. Shared stories.',\n detail: 'Detailed introduction',\n links: 'Links & contact',\n email: \"Email\",\n credit: \"by memi\",\n feedback: 'Send feedback',\n feedbackSubject: 'memi-board feedback',\n feedbackBody: 'Feedback:\\n',\n siteEyebrow: \"Built with memi-board\",\n changelog: \"Changelog\",\n info: {\n title: 'memi-board',\n about: 'About memi-board',\n sites: 'Showcase',\n history: 'Version history',\n },\n sites: {\n description: 'Services using memi-board to bring posts and conversations together.',\n memi: 'A space for development and everyday stories',\n waiting: 'A simple QR-based waitlist service',\n track: 'GPS tracking for your journeys',\n loop: 'Vehicle recording and sensor solutions',\n safe: 'Pedal safety device connection and settings',\n inviteTitle: 'Using it too?',\n invite: 'Tell us your site address.',\n inviteSite: 'Leave it on memi.dev',\n inviteOr: 'or',\n inviteSubject: 'We use memi-board',\n inviteBody: 'Site address:\\n',\n },\n stack: {\n ui: 'Interface & experience',\n data: 'Data & sign-in',\n writing: 'Writing & convenience',\n },\n}\n","export default {\n signInRequired: 'Please sign in.',\n commentNotFound: 'Comment not found.',\n}\n","export default {\n introduction: 'This board is built on Nuxt 4, Vue 3 and TypeScript. Nuxt UI and Tailwind CSS shape a comfortable interface, while Firebase Firestore, Auth, Storage and nuxt-vuefire keep posts and comments flowing smoothly.',\n settings: 'Settings',\n loadFailed: 'Couldn’t load the list: {error}',\n empty: 'No posts yet.',\n notice: 'Notice',\n commentCount: '{count} comments',\n photo: 'Photo',\n likeCount: 'Likes {count}',\n boardInfo: {\n creator: 'Created by',\n managers: 'Managers',\n staff: 'Staff',\n },\n info: {\n title: 'Board info',\n about: 'About this board',\n history: 'Version history',\n },\n stack: {\n framework: 'Framework & language',\n ui: 'UI & styling',\n backend: 'Backend & data',\n },\n tech: {\n nuxt: 'Vue-based SSR framework',\n vue: 'Composition API · script setup',\n typescript: 'Type-safe data and components',\n nuxtUi: 'Board, form and modal UI',\n tailwind: 'Responsive · light/dark styles',\n lucide: 'Lightweight, consistent icons',\n dayjs: 'Readable dates and relative times',\n firestore: 'Real-time DB for posts and comments',\n auth: 'Secure sign-in and permissions',\n storage: 'Image and attachment storage',\n vuefire: 'Real-time Nuxt–Firebase binding',\n },\n}\n","export default {\n default: 'Default',\n card: 'Card',\n dense: 'Compact',\n video: 'Video',\n}\n","export default {\n empty: 'No comments yet.',\n blinded: 'This comment was hidden by an admin.',\n}\n","export default {\n empty: 'No posts yet.',\n}\n","export default {\n selectedCount: 'Selected {count} / {max}',\n layoutHint: '2+ show as a carousel, 4 as a grid',\n searchPlaceholder: 'Search titles',\n loading: 'Loading posts…',\n noMore: 'No more posts to pick.',\n}\n","export default {\n empty: 'No posts selected.',\n}\n","export default {\n reviewFailed: 'We could not review your content, so it cannot be posted. Please try again shortly.',\n writeRestricted: 'Posting and commenting are temporarily restricted due to repeated content warnings.',\n}\n","export default {\n localHit: 'Expressions like “{hit}” aren’t allowed. Please rephrase.',\n localGeneric: 'This contains profanity, so it can’t be posted. Please rephrase.',\n categoryBlocked: 'This contains {category}, so it can’t be posted. Please edit it.',\n genericBlocked: 'This contains content that can’t be posted. Please edit it.',\n categories: {\n abuse: 'profanity or insults',\n spam: 'spam or advertising',\n adult: 'sexual or adult content',\n violence: 'violence or threats',\n other: 'inappropriate content',\n },\n}\n","export default {\n liftSoon: 'lifts soon',\n liftInHours: 'lifts in about {hours}h',\n liftInDays: 'lifts in about {days}d',\n liftInDaysHours: 'lifts in about {days}d {hours}h',\n}\n","export default {\n boardIdRequired: '[memi-board] boardId is required.',\n photoRequired: 'Please add a photo.',\n bodyRequired: 'Please enter some text or attach an image.',\n titleRequired: 'Please enter a title.',\n}\n","export default {\n myAccount: 'My account',\n notFound: 'User not found.',\n noName: 'No name',\n joined: 'Joined {time}',\n lastVisit: 'Last seen {time}',\n stats: {\n posts: '{count} posts',\n comments: '{count} comments',\n aiUsage: 'AI used {used} / {limit}',\n aiUsageResets: 'AI used {used} / {limit} · resets in {hours}h',\n warnings: '{count} warnings',\n },\n}\n","export default {\n imageOnly: 'Only image files can be selected.',\n nameRequired: 'Please enter a name.',\n nameReviewHelp: 'New names are checked for abuse, hate, spam, and deceptive staff impersonation before saving.',\n checkingName: 'Checking name…',\n nameRejected: 'This name cannot be used. Please choose another name.',\n nameReviewFailed: 'AI could not review the name. Please try again shortly.',\n saveFailed: 'Couldn’t save the profile.',\n title: 'Edit profile',\n changePhoto: 'Change photo',\n name: 'Name',\n bio: 'Bio',\n bioPlaceholder: 'Tell people about yourself',\n}\n","export default {\n failed: 'Couldn’t submit the report.',\n reported: 'Reported',\n title: 'Report post',\n done: 'Report received. Staff will review it.',\n reason: 'Reason',\n detailPlaceholder: 'Details (optional)',\n submit: 'Report',\n\n \"status\": {\n \"open\": \"Received\",\n \"dismissed\": \"Dismissed\",\n \"actioned\": \"Review complete\"\n },\n \"resultTitle\": \"Report status\",\n \"result\": {\n \"open\": \"Your report was received and is awaiting review.\",\n \"dismissed\": \"The review did not find a violation.\",\n \"actioned\": \"The review is complete. See the reason below.\"\n },\n \"reviewedAt\": \"Reviewed\",\n \"reviewNote\": \"Review reason\",\n \"noNote\": \"No reason was recorded in this older entry.\",\n \"detailRequired\": \"Details (required for Other)\",\n\n}\n","export default {\n staffOnly: 'Only staff can view reports.',\n loadFailed: 'Couldn’t load the list: {error}',\n empty: 'No pending reports.',\n untitled: 'Untitled post',\n author: 'by {name}',\n dismiss: 'Dismiss',\n\n \"tabs\": {\n \"open\": \"Pending\",\n \"processed\": \"Review history\"\n },\n \"filterLabel\": \"Filter reports\",\n \"orderHint\": \"Newest received first.\",\n \"historyEmpty\": \"No review history.\",\n \"confirm\": \"Mark reviewed\",\n \"dismissTitle\": \"Dismiss report\",\n \"resolveTitle\": \"Complete review\",\n \"actionHint\": \"This only changes the report status. It does not hide or delete the post.\",\n \"publicNote\": \"This reason is also visible to the reporter.\",\n \"reviewer\": \"Reviewer\",\n \"reviewNote\": \"Review reason\",\n \"unknownReviewer\": \"Unknown reviewer\",\n \"actionFailed\": \"Could not process the report. Please try again.\",\n\n}\n","export default {\n reason: {\n spam: 'Spam / advertising',\n abuse: 'Abuse / hate / harassment',\n adult: 'Sexual content',\n illegal: 'Illegal content',\n other: 'Other',\n },\n fallbackLabel: 'Report',\n signInRequired: 'Please sign in.',\n cannotReportOwn: 'You cannot report your own post.',\n reasonRequired: 'Please select a reason.',\n detailTooLong: 'Details can be up to {max} characters.',\n\n \"otherDetailRequired\": \"Please provide details when selecting Other.\",\n \"reviewNoteRequired\": \"Please enter a review reason.\",\n \"alreadyReviewed\": \"This report was already reviewed. Check the list.\",\n \"manageRequired\": \"You do not have permission to review this report.\",\n \"alreadyReported\": \"You already reported this post.\",\n \"statusLoadFailed\": \"Could not load report status. Please refresh.\",\n\n}\n","export default {\n kind: {\n list: 'Post list',\n post: 'Posts',\n comments: 'Comments',\n },\n sort: {\n latest: 'Latest',\n likes: 'Most liked',\n },\n untitledPost: 'Post',\n view: {\n media: 'Media',\n list: 'List',\n },\n}\n","export default {\n defaultTitle: 'Section {n}',\n}\n","export default {\n allCategory: 'All',\n boardDescription: '{name} board',\n allDescription: 'Board — announcements and community news.',\n postFallbackTitle: 'Post | {site}',\n postFallbackDescription: 'Board',\n photo: 'Photo',\n postDescriptionFallback: 'Board post',\n listTitle: '{name} | {site}',\n listTitleAll: 'Board | {site}',\n listDescription: '{name} — catch up on the latest posts.',\n listDescriptionAll: 'Board — announcements and stories.',\n}\n","export default {\n managers: 'Assigned managers',\n loading: 'Loading settings…',\n noAccess: 'You don’t have access',\n notFound: {\n title: 'Board not found',\n checkAddress: 'Please check the address.',\n checkBoardAddress: 'Please check the board address.',\n },\n newBoard: {\n title: 'This board doesn’t exist yet',\n description: 'Fill in the details below and save to create it with this ID.',\n },\n noLabel: 'No label',\n option: {\n default: 'Standard',\n },\n id: {\n label: 'Category ID',\n help: 'Used in the URL and data',\n },\n writeRole: {\n label: 'Who can post',\n help: 'Minimum role required to post in this category',\n helpShort: 'Minimum role required to post',\n options: {\n user: 'Users and up',\n staff: 'Staff and up',\n admin: 'Admins only',\n },\n },\n commentWriteRole: {\n label: 'Who can comment',\n help: 'Minimum role required to comment in this category',\n helpShort: 'Minimum role required to comment',\n hiddenHelp: 'Comments on hidden boards don’t appear in the public feed, and only assigned staff can write them',\n hiddenFixed: 'Assigned staff only (fixed for hidden boards)',\n },\n staff: {\n label: 'Assigned staff',\n help: 'Only the selected staff can configure and manage this board. Leave empty for admins only',\n placeholder: 'Admins only (no staff assigned)',\n },\n label: {\n label: 'Display name',\n help: 'The name users see',\n },\n description: {\n label: 'Description',\n help: 'Shown at the top of the board and elsewhere',\n placeholder: 'A short description of this board (optional)',\n },\n list: {\n filterAll: 'All',\n filterPlaceholder: 'Name or address',\n sort: 'Sort',\n sortName: 'Name',\n sortDescription: 'Description',\n sortId: 'Address',\n empty: 'No boards match this filter.',\n none: 'None',\n fieldCount: '{count}',\n localeAuto: 'Auto',\n },\n visibility: {\n pending: 'Visibility change is incomplete. Save the same setting again to resume.',\n label: 'Visibility',\n help: 'Hidden boards don’t appear in the all-boards filter, and posts can only be read by admins, assigned staff, and their authors. Only assigned staff can comment',\n options: {\n public: { label: 'Visible', description: 'Shown in the full list and filters' },\n hidden: { label: 'Hidden', description: 'Journal or private. Only assigned staff can comment' },\n },\n },\n listView: {\n label: 'List view',\n help: 'How the post list is displayed',\n options: {\n card: 'Card',\n dense: 'Compact',\n video: 'Video',\n },\n },\n editorType: {\n label: 'Post form',\n help: 'How posts are written',\n options: {\n default: 'Write a title and body',\n image: 'Add multiple photos and a cover photo',\n },\n },\n customFields: {\n label: 'Custom fields',\n help: 'Extra values stored on each post. The key is what you filter on later. The name is shown as typed and is not translated.',\n key: 'Key',\n keyPlaceholder: 'channel',\n name: 'Name',\n namePlaceholder: 'Channel',\n placeholder: 'Placeholder',\n inputPlaceholder: 'Faint hint shown in the write field',\n add: 'Add field',\n limit: 'You can add up to 8 custom fields.',\n invalidKey: 'A key must start with a lowercase letter and contain only letters, numbers, and underscores, up to 32 characters.',\n duplicateKey: 'The key {key} is duplicated.',\n labelRequired: 'Enter a name for the key {key}.',\n },\n locale: {\n label: 'Board language',\n help: 'Leave empty to follow the site language. If set, this board always appears in that language.',\n auto: 'Auto (follow site language)',\n },\n bulk: {\n title: 'Apply to all boards',\n help: 'Only checked items overwrite every board. Other unsaved edits on individual boards are not saved.',\n apply: 'Apply to {count} boards',\n applyShort: 'Apply',\n confirmTitle: 'Apply to all boards',\n confirm: 'Apply the checked items to {count} boards?',\n applied: 'Applied to {count} boards.',\n translateUntranslated: 'Translate untranslated boards ({count})',\n translated: 'Translated and saved names and descriptions for {count} boards.',\n translateFailed: 'Couldn’t translate {count} boards. Try again.',\n },\n translationLocales: {\n label: 'Translation languages',\n help: 'The name, description, and posts are translated into these languages. The language a post was written in is skipped. Selecting all also includes languages added later.',\n },\n autoTranslatePosts: {\n label: 'Automatically translate new posts and comments',\n help: 'Translate new post titles, summaries, bodies, comments and replies into {count} languages when saving. Off by default.',\n },\n autoTranslate: {\n action: \"Translate into {count} languages\",\n manualHelp: \"Translate the display label and description together, then click Save to apply.\",\n pending: \"Translations for {count} languages are ready. Click Save to apply.\",\n manualFailed: \"Translation failed. Your text is unchanged. Please try again.\",\n label: 'Translate into {count} languages when saving',\n help: 'When on, the name and description are translated into {count} languages. When off, they are not translated. Unchanged text is not translated again.',\n failed: 'Settings were saved, but translating into {count} languages failed. Save again to retry.',\n ready: 'The name and description are saved in {count} languages.',\n },\n action: {\n moveDown: 'Down',\n goToBoard: 'Go to board',\n deleteBoard: 'Delete board',\n create: 'Create',\n },\n newCategoryPlaceholder: 'New board name',\n newCategoryHelp: 'This name becomes the board address. Up to 40 characters. Spaces turn into hyphens, and only letters, numbers, and Korean characters are kept.',\n newCategoryUrl: 'Address: {path}',\n deleteConfirm: 'Delete the “{label}” board?\\n\\nAll posts, comments, replies, inline images, comment images, and attachments on this board will be permanently deleted. This can’t be undone.',\n savedCategory: 'Saved the “{label}” category.',\n savedSettings: 'Board settings saved.',\n created: 'Board created.',\n error: {\n orderFailed: 'Couldn’t save the category order.',\n deleteFailed: 'Couldn’t delete the board and its data.',\n saveFailed: 'Couldn’t save the board settings.',\n deleteAllFailed: 'Couldn’t delete the board data.',\n },\n aiTitle: {\n label: 'Write titles with AI',\n help: 'When a new post\\'s title is left empty, AI writes one from the text (or from the first photo if there is no text). Photos are sent to Google AI only to write a title. Turn it off to require a typed title and stop sending photos.',\n },\n site: {\n apply: 'Apply',\n applied: 'Applied.',\n title: 'Site-wide settings',\n help: 'Apply to the whole site. They override the host app\\'s settings and take effect as soon as you change them.',\n ai: { label: 'Use AI features', help: 'Turn this off if you can\\'t use AI, for example because of cost. It turns off translation, the writing assistant, AI titles, and AI moderation, and photos are no longer sent to AI. The blocked-word check keeps working.' },\n i18n: { label: 'Use internationalization', help: 'When off, every screen is fixed to the single language chosen below and translation is turned off. Saved translations are not deleted.' },\n locales: { label: 'Languages to offer', help: 'Only the {count} selected languages are translated and shown in the language menu. Languages you don\\'t select get no new translations, and saved translations are not deleted.' },\n locale: { label: 'Default language', help: 'The language used when the host app doesn\\'t set one.', fixedLabel: 'Fixed language', fixedHelp: 'Every screen is shown in this language.' },\n },\n i18nBoard: {\n label: 'Internationalization',\n help: 'When on, the board name and description and new posts and comments are automatically translated into {count} languages and saved. When off, only the original text is shown.',\n existing: 'Translate existing posts too',\n },\n about: {\n label: 'Show About memi-board',\n help: 'Shows the About memi-board link and popup at the bottom of every board screen. Turn it off to hide it across the site.',\n },\n postTranslations: {\n label: 'Translate existing posts',\n help: 'Finds posts whose translation is missing or no longer matches the original, then translates and saves them in one go. Use it for boards with automatic translation off, or to fill in posts that missed translation. It does not use the daily AI quota.',\n scan: 'Find posts to translate',\n run: 'Translate {count} posts',\n confirm: 'This translates and saves {count} posts, making AI calls for each one. Continue?',\n progress: 'Translating… {done} done, {failed} failed',\n allDone: 'All {total} published posts have up-to-date translations.',\n found: '{count} of {total} published posts need translation.',\n failed: '{count} posts could not be translated. Scan again and retry.',\n },\n cleanup: {\n contextChanged: 'Your account or board configuration changed after scanning. Scan again before deleting.',\n title: 'Orphan files and documents',\n description: 'Scan all boards for files and comments without a post, images without a comment, and likes without a target. Files updated within 24 hours, referenced files, and report history are retained.',\n scan: 'Scan orphan items',\n empty: 'No orphan items found.',\n selectAll: 'Select all ({count})',\n delete: 'Delete selected ({count})',\n confirm: 'Permanently delete {count} selected orphan items? This cannot be undone.',\n failed: 'Cleanup failed. Check the admin Firestore and Storage rules.',\n result: '{deleted} deleted, {skipped} retained after connections were restored, {failed} failed. Failed items can be retried.',\n kinds: { file: 'File', comment: 'Comment document', like: 'Like document' },\n },\n danger: {\n title: 'Danger zone',\n description: 'Permanently deletes all posts, comments, comment images, attachments, and category settings. Board users and admin roles are kept.',\n confirmLabel: 'Type “{phrase}” to confirm',\n phrase: 'delete board data',\n button: 'Delete all data',\n done: 'All board data has been deleted.',\n },\n}\n","export default {\n copied: 'Link copied',\n}\n","export default {\n withGoogle: 'Sign in with Google',\n withApple: 'Sign in with Apple',\n or: 'or',\n name: 'Name',\n email: 'Email',\n password: 'Password',\n signUp: 'Sign up',\n toSignUp: 'Don’t have an account? Sign up',\n toSignIn: 'Already have an account? Sign in',\n}\n","export default {\n tooLargeAfterCompress: 'The image is still larger than 5MB after compression. Please choose a smaller image.',\n sourceTooLarge: 'The original image must be {max}MB or smaller.',\n heicUnsupported: 'HEIC photos cannot be uploaded directly. Pick it from the Photos app or convert it to JPG, PNG, or WebP.',\n cannotOptimize: 'This image format cannot be optimized in the browser. Please convert it to JPG, PNG, or WebP.',\n imageOnly: 'Only image files can be uploaded.',\n canvasUnavailable: 'Canvas is not available',\n compressFailed: 'Compression failed',\n loadFailed: 'Failed to load image',\n}\n","export default {\n title: 'Try swiping left or right',\n description: 'Swipe left for the next post, right for the previous one.',\n}\n","export default {\n loadFailed: 'Couldn’t load the list: {error}',\n empty: 'No comments yet.',\n blinded: 'This comment was hidden by an admin.',\n likes: '{count} likes',\n}\n","export default {\n loadFailed: 'Couldn’t load the list: {error}',\n empty: 'No posts yet.',\n}\n","export default {\n title: 'Board users',\n sort: {\n label: 'Sort users by',\n name: 'Name',\n role: 'Role',\n direction: 'Sort direction',\n asc: 'Ascending',\n desc: 'Descending',\n },\n pagination: {\n label: 'User list pagination',\n pageSize: 'Users per page',\n perPage: '{count} per page',\n status: 'Page {page} · {count} users',\n },\n loadFailed: 'Couldn’t load users.',\n changeRoleFailed: 'Couldn’t change the role.',\n confirmRole: {\n title: 'Change user permissions',\n description: 'Change {name}’s role from {from} to {to}?',\n confirm: 'Change role',\n },\n loading: 'Loading users…',\n noPermission: {\n title: 'No permission',\n description: 'Only board admins can manage user roles.',\n },\n empty: 'No users have signed in to the board yet.',\n noName: 'No name',\n noEmail: 'No email',\n emailLoadFailed: 'Couldn’t load the email.',\n moderationWarnings: '{count} content warnings',\n}\n","export default {\n loginRequired: 'Sign in to use the AI writing assistant.',\n userMissing: 'Couldn’t verify your user info. Please try again.',\n dailyLimit: 'The AI writing assistant can be used up to {limit} times a day. Please try again in about {hours} hour(s).',\n contentRequired: 'Enter some content for the AI to work on first.',\n customRequired: 'Enter an instruction for how to rewrite it.',\n emptyResult: 'The AI couldn’t produce a result. Please try again.',\n translateEmpty: 'Enter a title or body to translate first.',\n translateTooLong: 'Posts longer than {limit} characters can’t be saved in {count} languages. Shorten it and try again.',\n translateIncomplete: 'Some languages came back empty. Please try again.',\n failed: 'The AI task failed. Please try again.',\n actions: {\n proofread: 'Check spelling',\n polish: 'Polish sentences',\n continue: 'Continue writing',\n summarize: 'Summarize',\n translateEn: 'Translate to English',\n translateKo: 'Translate to Korean',\n translateAll: 'Translate and save in {count} languages',\n title: 'Generate title from body',\n custom: 'Rewrite in a custom style…',\n },\n}\n","// 자동 생성 — scripts/gen-i18n-index.mjs\nimport accountDeletion from './accountDeletion'\nimport attachments from './attachments'\nimport auth from './auth'\nimport authorMemo from './authorMemo'\nimport authorMenu from './authorMenu'\nimport avatarCropModal from './avatarCropModal'\nimport boardSettings from './boardSettings'\nimport boardUsers from './boardUsers'\nimport commentFeed from './commentFeed'\nimport commentForm from './commentForm'\nimport commentItem from './commentItem'\nimport commentList from './commentList'\nimport commentThread from './commentThread'\nimport comments from './comments'\nimport common from './common'\nimport detail from './detail'\nimport editor from './editor'\nimport footer from './footer'\nimport likes from './likes'\nimport list from './list'\nimport listViewSwitch from './listViewSwitch'\nimport miniComments from './miniComments'\nimport miniList from './miniList'\nimport miniPicker from './miniPicker'\nimport miniPost from './miniPost'\nimport moderation from './moderation'\nimport moderationPrompt from './moderationPrompt'\nimport moderationStrike from './moderationStrike'\nimport posts from './posts'\nimport profile from './profile'\nimport profileEditModal from './profileEditModal'\nimport reportButton from './reportButton'\nimport reportList from './reportList'\nimport reports from './reports'\nimport sectionUtil from './sectionUtil'\nimport sections from './sections'\nimport seo from './seo'\nimport settings from './settings'\nimport shareButton from './shareButton'\nimport signIn from './signIn'\nimport storage from './storage'\nimport swipeHint from './swipeHint'\nimport userCommentList from './userCommentList'\nimport userPostList from './userPostList'\nimport users from './users'\nimport writingAssistant from './writingAssistant'\n\nexport default {\n accountDeletion,\n attachments,\n auth,\n authorMemo,\n authorMenu,\n avatarCropModal,\n boardSettings,\n boardUsers,\n commentFeed,\n commentForm,\n commentItem,\n commentList,\n commentThread,\n comments,\n common,\n detail,\n editor,\n footer,\n likes,\n list,\n listViewSwitch,\n miniComments,\n miniList,\n miniPicker,\n miniPost,\n moderation,\n moderationPrompt,\n moderationStrike,\n posts,\n profile,\n profileEditModal,\n reportButton,\n reportList,\n reports,\n sectionUtil,\n sections,\n seo,\n settings,\n shareButton,\n signIn,\n storage,\n swipeHint,\n userCommentList,\n userPostList,\n users,\n writingAssistant,\n}\n"],"mappings":";;A8CgDA,IAAA,IAAe;CACb,iBAAA;E9ChDA,OAAO;EACP,OAAO;EACP,MAAM;EACN,aAAa;EACb,cAAc;EACd,aAAa;EACb,eAAe;EACf,gBAAgB;EAChB,WAAW;EACX,aAAa;EACb,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,cAAc;EACd,gBAAgB;EAChB,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,aAAa;EACb,qBAAqB;EACrB,WAAW;EACX,gBAAgB;EAChB,cAAc;EACd,SAAS;C8CwBT;CACA,aAAA;E7CjDA,QAAQ;EACR,aAAa;EACb,WAAW;EACX,UAAU;C6C8CV;CACA,MAAA;E5ClDA,iBAAiB;EACjB,sBAAsB;EACtB,cAAc;EACd,uBAAuB;EACvB,kBAAkB;EAClB,gBAAgB;C4C6ChB;CACA,YAAA,E3CnDA,SAAS,uC2CmDT;CACA,YAAA;E1CpDA,aAAa;EACb,WAAW;EACX,cAAc;EACd,eAAe;EACf,WAAW;EACX,iBAAiB;EACjB,KAAK;EACL,MAAM;C0C6CN;CACA,iBAAA;EzCrDA,OAAO;EACP,aAAa;EACb,MAAM;EACN,SAAS;CyCkDT;CACA,eAAA;ExCtDA,gBAAgB;EAChB,mBAAmB;EACnB,kBAAkB;EAClB,cAAc;CwCmDd;CACA,YAAA;EvCvDA,iBAAiB;EACjB,OAAO;GACL,OAAO;GACP,gBAAgB;GAChB,OAAO;IACL,aAAa;IACb,OAAO;IACP,aAAa;GACf;GACA,OAAO;IACL,aAAa;IACb,OAAO;IACP,aAAa;GACf;GACA,SAAS;IACP,aAAa;IACb,OAAO;IACP,aAAa;GACf;GACA,OAAO;IACL,aAAa;IACb,OAAO;IACP,aAAa;GACf;GACA,MAAM;IACJ,aAAa;IACb,OAAO;IACP,aAAa;GACf;EACF;EACA,iBAAiB;GACf,OAAO;GACP,SAAS;GACT,OAAO;GACP,OAAO;GACP,MAAM;EACR;CuCmBA;CACA,aAAA;EtCxDA,OAAO;EACP,YAAY;EACZ,YAAY;EACZ,SAAS;CsCqDT;CACA,aAAA;ErCzDA,cAAc;EACd,oBAAoB;EACpB,oBAAoB;EACpB,mBAAmB;EACnB,QAAQ;EACR,gBAAgB;EAChB,iBAAiB;EACjB,mBAAmB;EACnB,SAAS;EACT,aAAa;EACb,aAAa;EACb,QAAQ;EACR,iBAAiB;EACjB,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,WAAW;EACX,cAAc;EACd,WAAW;CqCuCX;CACA,aAAA;EpC1DA,gBAAgB;EAChB,mBAAmB;EACnB,YAAY;EACZ,cAAc;EACd,gBAAgB;EAChB,aAAa;EACb,YAAY;EACZ,SAAS;EACT,eAAe;EACf,MAAM;EACN,OAAO;EACP,SAAS;EACT,QAAQ;CoC8CR;CACA,aAAA;EnC3DA,SAAS;EACT,OAAO;EACP,UAAU;EACV,aAAa;CmCwDb;CACA,eAAA;ElC5DA,eAAe;EACf,cAAc;EACd,aAAa;EACb,aAAa;EACb,iBAAiB;CkCwDjB;CACA,UAAA;EjC7DA,cAAc;EACd,aAAa;EACb,qBAAqB;EACrB,gBAAgB;EAChB,wBAAwB;CiCyDxB;CACA,QAAA;EhC9DA,QAAQ;GACN,QAAQ;GACR,SAAS;GACT,UAAU;GACV,eAAe;GACf,QAAQ;GACR,MAAM;GACN,OAAO;GACP,MAAM;GACN,QAAQ;GACR,SAAS;GACT,OAAO;GACP,KAAK;GACL,MAAM;GACN,MAAM;GACN,MAAM;GACN,OAAO;GACP,OAAO;GACP,MAAM;GACN,QAAQ;GACR,OAAO;GACP,QAAQ;GACR,QAAQ;GACR,SAAS;GACT,OAAO;GACP,OAAO;EACT;EACA,OAAO;GACL,eAAe;GACf,WAAW;GACX,MAAM;GACN,OAAO;GACP,OAAO;GACP,SAAS;EACX;EACA,MAAM;GACJ,OAAO;GACP,SAAS;GACT,OAAO;GACP,OAAO;GACP,MAAM;EACR;EACA,MAAM;GACJ,SAAS;GACT,eAAe;GACf,UAAU;GACV,WAAW;GACX,WAAW;EACb;CgCcA;CACA,QAAA;E/B/DA,eAAe;EACf,UAAU;EACV,cAAc;EACd,aAAa;EACb,SAAS;EACT,QAAQ;EACR,KAAK;EACL,OAAO;EACP,YAAY;EACZ,SAAS;EACT,MAAM;EACN,UAAU;C+BoDV;CACA,QAAA;E9BhEA,cAAc;EACd,kBAAkB;EAClB,oBAAoB;EACpB,yBAAyB;EACzB,iBAAiB;EACjB,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,OAAO;EACP,iBAAiB;EACjB,OAAO;GACL,MAAM;GACN,WAAW;GACX,UAAU;GACV,KAAK;GACL,gBAAgB;GAChB,mBAAmB;GACnB,uBAAuB;GACvB,QAAQ;GACR,KAAK;GACL,WAAW;GACX,aAAa;GACb,WAAW;GACX,aAAa;EACf;EACA,cAAc;EACd,aAAa;EACb,aAAa;EACb,WAAW;EACX,aAAa;GACX,OAAO;GACP,YAAY;GACZ,QAAQ;GACR,UAAU;GACV,SAAS;GACT,YAAY;GACZ,SAAS;EACX;EACA,cAAc;GACZ,OAAO;GACP,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,eAAe;GACb,OAAO;GACP,UAAU;EACZ;EACA,WAAW;GACT,OAAO;GACP,cAAc;GACd,UAAU;GACV,gBAAgB;GAChB,iBAAiB;GACjB,QAAQ;GACR,OAAO;EACT;EACA,MAAM;GACJ,IAAI;GACJ,YAAY;GACZ,OAAO;GACP,QAAQ;GACR,WAAW;GACX,UAAU;GACV,UAAU;GACV,UAAU;GACV,YAAY;GACZ,aAAa;GACb,YAAY;GACZ,WAAW;GACX,gBAAgB;GAChB,OAAO;GACP,UAAU;GACV,iBAAiB;GACjB,WAAW;GACX,QAAQ;GACR,UAAU;GACV,QAAQ;EACV;EACA,SAAS;GACP,MAAM;GACN,OAAO;GACP,QAAQ;GACR,MAAM;GACN,QAAQ;GACR,WAAW;GACX,QAAQ;GACR,OAAO;GACP,SAAS;GACT,YAAY;GACZ,MAAM;GACN,MAAM;GACN,YAAY;GACZ,aAAa;GACb,YAAY;GACZ,WAAW;GACX,gBAAgB;GAChB,iBAAiB;GACjB,MAAM;GACN,MAAM;EACR;EACA,IAAI;GACF,WAAW;GACX,QAAQ;GACR,UAAU;GACV,WAAW;GACX,aAAa;GACb,aAAa;GACb,eAAe;GACf,cAAc;GACd,gBAAgB;GAChB,OAAO;GACP,QAAQ;GACR,QAAQ;EACV;EACA,eAAe;EACf,QAAQ;GACN,UAAU;GACV,kBAAkB;GAClB,iBAAiB;GACjB,eAAe;GACf,qBAAqB;GACrB,cAAc;GACd,qBAAqB;GACrB,iBAAiB;GACjB,gBAAgB;GAChB,iBAAiB;GACjB,WAAW;GACX,eAAe;GACf,mBAAmB;GACnB,aAAa;GACb,cAAc;GACd,gBAAgB;GAChB,YAAY;GACZ,gBAAgB;GAChB,eAAe;GACf,eAAe;GACf,cAAc;GACd,gBAAgB;GAChB,cAAc;GACd,iBAAiB;GACjB,mBAAmB;EACrB;EACA,0BAA0B;EAC1B,eAAe;EACf,MAAM;GACJ,SAAS;GACT,aAAa;GACb,WAAW;GACX,QAAQ;EACV;C8BtFA;CACA,QAAA;E7BjEA,cAAc;EACd,SAAS;EACT,SAAS;EACT,QAAQ;EACR,OAAO;EACP,OAAO;EACP,QAAQ;EACR,UAAU;EACV,iBAAiB;EACjB,cAAc;EACd,aAAa;EACb,WAAW;EACX,MAAM;GACJ,OAAO;GACP,OAAO;GACP,OAAO;GACP,SAAS;EACX;EACA,OAAO;GACL,aAAa;GACb,MAAM;GACN,SAAS;GACT,OAAO;GACP,MAAM;GACN,MAAM;GACN,aAAa;GACb,QAAQ;GACR,YAAY;GACZ,UAAU;GACV,eAAe;GACf,YAAY;EACd;EACA,OAAO;GACL,IAAI;GACJ,MAAM;GACN,SAAS;EACX;C6B6BA;CACA,OAAA;E5BlEA,gBAAgB;EAChB,iBAAiB;C4BiEjB;CACA,MAAA;E3BnEA,cAAc;EACd,UAAU;EACV,YAAY;EACZ,OAAO;EACP,QAAQ;EACR,cAAc;EACd,OAAO;EACP,WAAW;EACX,WAAW;GACT,SAAS;GACT,UAAU;GACV,OAAO;EACT;EACA,MAAM;GACJ,OAAO;GACP,OAAO;GACP,SAAS;EACX;EACA,OAAO;GACL,WAAW;GACX,IAAI;GACJ,SAAS;EACX;EACA,MAAM;GACJ,MAAM;GACN,KAAK;GACL,YAAY;GACZ,QAAQ;GACR,UAAU;GACV,QAAQ;GACR,OAAO;GACP,WAAW;GACX,MAAM;GACN,SAAS;GACT,SAAS;EACX;C2BgCA;CACA,gBAAA;E1BpEA,SAAS;EACT,MAAM;EACN,OAAO;EACP,OAAO;C0BiEP;CACA,cAAA;EzBrEA,OAAO;EACP,SAAS;CyBoET;CACA,UAAA,ExBtEA,OAAO,gBwBsEP;CACA,YAAA;EvBvEA,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB,SAAS;EACT,QAAQ;CuBmER;CACA,UAAA,EtBxEA,OAAO,qBsBwEP;CACA,YAAA;ErBzEA,cAAc;EACd,iBAAiB;CqBwEjB;CACA,kBAAA;EpB1EA,UAAU;EACV,cAAc;EACd,iBAAiB;EACjB,gBAAgB;EAChB,YAAY;GACV,OAAO;GACP,MAAM;GACN,OAAO;GACP,UAAU;GACV,OAAO;EACT;CoBgEA;CACA,kBAAA;EnB3EA,UAAU;EACV,aAAa;EACb,YAAY;EACZ,iBAAiB;CmBwEjB;CACA,OAAA;ElB5EA,iBAAiB;EACjB,eAAe;EACf,cAAc;EACd,eAAe;CkByEf;CACA,SAAA;EjB7EA,WAAW;EACX,UAAU;EACV,QAAQ;EACR,QAAQ;EACR,WAAW;EACX,OAAO;GACL,OAAO;GACP,UAAU;GACV,SAAS;GACT,eAAe;GACf,UAAU;EACZ;CiBkEA;CACA,kBAAA;EhB9EA,WAAW;EACX,cAAc;EACd,gBAAgB;EAChB,cAAc;EACd,cAAc;EACd,kBAAkB;EAClB,YAAY;EACZ,OAAO;EACP,aAAa;EACb,MAAM;EACN,KAAK;EACL,gBAAgB;CgBmEhB;CACA,cAAA;Ef/EA,QAAQ;EACR,UAAU;EACV,OAAO;EACP,MAAM;EACN,QAAQ;EACR,mBAAmB;EACnB,QAAQ;EAER,QAAU;GACR,MAAQ;GACR,WAAa;GACb,UAAY;EACd;EACA,aAAe;EACf,QAAU;GACR,MAAQ;GACR,WAAa;GACb,UAAY;EACd;EACA,YAAc;EACd,YAAc;EACd,QAAU;EACV,gBAAkB;CeyDlB;CACA,YAAA;EdhFA,WAAW;EACX,YAAY;EACZ,OAAO;EACP,UAAU;EACV,QAAQ;EACR,SAAS;EAET,MAAQ;GACN,MAAQ;GACR,WAAa;EACf;EACA,aAAe;EACf,WAAa;EACb,cAAgB;EAChB,SAAW;EACX,cAAgB;EAChB,cAAgB;EAChB,YAAc;EACd,YAAc;EACd,UAAY;EACZ,YAAc;EACd,iBAAmB;EACnB,cAAgB;Cc0DhB;CACA,SAAA;EbjFA,QAAQ;GACN,MAAM;GACN,OAAO;GACP,OAAO;GACP,SAAS;GACT,OAAO;EACT;EACA,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,eAAe;EAEf,qBAAuB;EACvB,oBAAsB;EACtB,iBAAmB;EACnB,gBAAkB;EAClB,iBAAmB;EACnB,kBAAoB;Ca+DpB;CACA,aAAA;EZlFA,MAAM;GACJ,MAAM;GACN,MAAM;GACN,UAAU;EACZ;EACA,MAAM;GACJ,QAAQ;GACR,OAAO;EACT;EACA,cAAc;EACd,MAAM;GACJ,OAAO;GACP,MAAM;EACR;CYqEA;CACA,UAAA,EXnFA,cAAc,cWmFd;CACA,KAAA;EVpFA,aAAa;EACb,kBAAkB;EAClB,gBAAgB;EAChB,mBAAmB;EACnB,yBAAyB;EACzB,OAAO;EACP,yBAAyB;EACzB,WAAW;EACX,cAAc;EACd,iBAAiB;EACjB,oBAAoB;CU0EpB;CACA,UAAA;ETrFA,UAAU;EACV,SAAS;EACT,UAAU;EACV,UAAU;GACR,OAAO;GACP,cAAc;GACd,mBAAmB;EACrB;EACA,UAAU;GACR,OAAO;GACP,aAAa;EACf;EACA,SAAS;EACT,QAAQ,EACN,SAAS,WACX;EACA,IAAI;GACF,OAAO;GACP,MAAM;EACR;EACA,WAAW;GACT,OAAO;GACP,MAAM;GACN,WAAW;GACX,SAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;GACT;EACF;EACA,kBAAkB;GAChB,OAAO;GACP,MAAM;GACN,WAAW;GACX,YAAY;GACZ,aAAa;EACf;EACA,OAAO;GACL,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,OAAO;GACL,OAAO;GACP,MAAM;EACR;EACA,aAAa;GACX,OAAO;GACP,MAAM;GACN,aAAa;EACf;EACA,MAAM;GACJ,WAAW;GACX,mBAAmB;GACnB,MAAM;GACN,UAAU;GACV,iBAAiB;GACjB,QAAQ;GACR,OAAO;GACP,MAAM;GACN,YAAY;GACZ,YAAY;EACd;EACA,YAAY;GACV,SAAS;GACT,OAAO;GACP,MAAM;GACN,SAAS;IACP,QAAQ;KAAE,OAAO;KAAW,aAAa;IAAqC;IAC9E,QAAQ;KAAE,OAAO;KAAU,aAAa;IAAsD;GAChG;EACF;EACA,UAAU;GACR,OAAO;GACP,MAAM;GACN,SAAS;IACP,MAAM;IACN,OAAO;IACP,OAAO;GACT;EACF;EACA,YAAY;GACV,OAAO;GACP,MAAM;GACN,SAAS;IACP,SAAS;IACT,OAAO;GACT;EACF;EACA,cAAc;GACZ,OAAO;GACP,MAAM;GACN,KAAK;GACL,gBAAgB;GAChB,MAAM;GACN,iBAAiB;GACjB,aAAa;GACb,kBAAkB;GAClB,KAAK;GACL,OAAO;GACP,YAAY;GACZ,cAAc;GACd,eAAe;EACjB;EACA,QAAQ;GACN,OAAO;GACP,MAAM;GACN,MAAM;EACR;EACA,MAAM;GACJ,OAAO;GACP,MAAM;GACN,OAAO;GACP,YAAY;GACZ,cAAc;GACd,SAAS;GACT,SAAS;GACT,uBAAuB;GACvB,YAAY;GACZ,iBAAiB;EACnB;EACA,oBAAoB;GAClB,OAAO;GACP,MAAM;EACR;EACA,oBAAoB;GAClB,OAAO;GACP,MAAM;EACR;EACA,eAAe;GACb,QAAQ;GACR,YAAY;GACZ,SAAS;GACT,cAAc;GACd,OAAO;GACP,MAAM;GACN,QAAQ;GACR,OAAO;EACT;EACA,QAAQ;GACN,UAAU;GACV,WAAW;GACX,aAAa;GACb,QAAQ;EACV;EACA,wBAAwB;EACxB,iBAAiB;EACjB,gBAAgB;EAChB,eAAe;EACf,eAAe;EACf,eAAe;EACf,SAAS;EACT,OAAO;GACL,aAAa;GACb,cAAc;GACd,YAAY;GACZ,iBAAiB;EACnB;EACA,SAAS;GACP,OAAO;GACP,MAAM;EACR;EACA,MAAM;GACJ,OAAO;GACP,SAAS;GACT,OAAO;GACP,MAAM;GACN,IAAI;IAAE,OAAO;IAAmB,MAAM;GAA6N;GACnQ,MAAM;IAAE,OAAO;IAA4B,MAAM;GAAyI;GAC1L,SAAS;IAAE,OAAO;IAAsB,MAAM;GAAkL;GAChO,QAAQ;IAAE,OAAO;IAAoB,MAAM;IAAyD,YAAY;IAAkB,WAAW;GAA0C;EACzL;EACA,WAAW;GACT,OAAO;GACP,MAAM;GACN,UAAU;EACZ;EACA,OAAO;GACL,OAAO;GACP,MAAM;EACR;EACA,kBAAkB;GAChB,OAAO;GACP,MAAM;GACN,MAAM;GACN,KAAK;GACL,SAAS;GACT,UAAU;GACV,SAAS;GACT,OAAO;GACP,QAAQ;EACV;EACA,SAAS;GACP,gBAAgB;GAChB,OAAO;GACP,aAAa;GACb,MAAM;GACN,OAAO;GACP,WAAW;GACX,QAAQ;GACR,SAAS;GACT,QAAQ;GACR,QAAQ;GACR,OAAO;IAAE,MAAM;IAAQ,SAAS;IAAoB,MAAM;GAAgB;EAC5E;EACA,QAAQ;GACN,OAAO;GACP,aAAa;GACb,cAAc;GACd,QAAQ;GACR,QAAQ;GACR,MAAM;EACR;CS/HA;CACA,aAAA,ERtFA,QAAQ,cQsFR;CACA,QAAA;EPvFA,YAAY;EACZ,WAAW;EACX,IAAI;EACJ,MAAM;EACN,OAAO;EACP,UAAU;EACV,QAAQ;EACR,UAAU;EACV,UAAU;CO+EV;CACA,SAAA;ENxFA,uBAAuB;EACvB,gBAAgB;EAChB,iBAAiB;EACjB,gBAAgB;EAChB,WAAW;EACX,mBAAmB;EACnB,gBAAgB;EAChB,YAAY;CMiFZ;CACA,WAAA;ELzFA,OAAO;EACP,aAAa;CKwFb;CACA,iBAAA;EJ1FA,YAAY;EACZ,OAAO;EACP,SAAS;EACT,OAAO;CIuFP;CACA,cAAA;EH3FA,YAAY;EACZ,OAAO;CG0FP;CACA,OAAA;EF5FA,OAAO;EACP,MAAM;GACJ,OAAO;GACP,MAAM;GACN,MAAM;GACN,WAAW;GACX,KAAK;GACL,MAAM;EACR;EACA,YAAY;GACV,OAAO;GACP,UAAU;GACV,SAAS;GACT,QAAQ;EACV;EACA,YAAY;EACZ,kBAAkB;EAClB,aAAa;GACX,OAAO;GACP,aAAa;GACb,SAAS;EACX;EACA,SAAS;EACT,cAAc;GACZ,OAAO;GACP,aAAa;EACf;EACA,OAAO;EACP,QAAQ;EACR,SAAS;EACT,iBAAiB;EACjB,oBAAoB;CE6DpB;CACA,kBAAA;ED7FA,eAAe;EACf,aAAa;EACb,YAAY;EACZ,iBAAiB;EACjB,gBAAgB;EAChB,aAAa;EACb,gBAAgB;EAChB,kBAAkB;EAClB,qBAAqB;EACrB,QAAQ;EACR,SAAS;GACP,WAAW;GACX,QAAQ;GACR,UAAU;GACV,WAAW;GACX,aAAa;GACb,aAAa;GACb,cAAc;GACd,OAAO;GACP,QAAQ;EACV;CCyEA;AACF"}
|
|
@@ -101,6 +101,10 @@ var e = {
|
|
|
101
101
|
},
|
|
102
102
|
common: {
|
|
103
103
|
action: {
|
|
104
|
+
zoomIn: "Ampliar",
|
|
105
|
+
zoomOut: "Reducir",
|
|
106
|
+
fitImage: "Ajustar a la pantalla",
|
|
107
|
+
originalImage: "Tamaño original (100 %)",
|
|
104
108
|
cancel: "Cancelar",
|
|
105
109
|
save: "Guardar",
|
|
106
110
|
saved: "Guardado",
|
|
@@ -124,6 +128,7 @@ var e = {
|
|
|
124
128
|
toTop: "Arriba"
|
|
125
129
|
},
|
|
126
130
|
label: {
|
|
131
|
+
imageControls: "Controles de zoom de imagen",
|
|
127
132
|
anonymous: "Anónimo",
|
|
128
133
|
user: "Usuario",
|
|
129
134
|
image: "Imagen",
|
|
@@ -458,7 +463,22 @@ var e = {
|
|
|
458
463
|
done: "Recibimos tu reporte. El personal lo revisará.",
|
|
459
464
|
reason: "Motivo",
|
|
460
465
|
detailPlaceholder: "Detalles (opcional)",
|
|
461
|
-
submit: "Reportar"
|
|
466
|
+
submit: "Reportar",
|
|
467
|
+
status: {
|
|
468
|
+
open: "Recibido",
|
|
469
|
+
dismissed: "Descartado",
|
|
470
|
+
actioned: "Revisión completada"
|
|
471
|
+
},
|
|
472
|
+
resultTitle: "Estado del reporte",
|
|
473
|
+
result: {
|
|
474
|
+
open: "Tu reporte se recibió y está pendiente de revisión.",
|
|
475
|
+
dismissed: "La revisión no encontró una infracción.",
|
|
476
|
+
actioned: "La revisión ha terminado. Consulta el motivo abajo."
|
|
477
|
+
},
|
|
478
|
+
reviewedAt: "Revisado",
|
|
479
|
+
reviewNote: "Motivo de resolución",
|
|
480
|
+
noNote: "No se registró un motivo en esta entrada anterior.",
|
|
481
|
+
detailRequired: "Detalles (obligatorios para Otro)"
|
|
462
482
|
},
|
|
463
483
|
reportList: {
|
|
464
484
|
staffOnly: "Solo el personal puede ver los reportes.",
|
|
@@ -467,7 +487,22 @@ var e = {
|
|
|
467
487
|
untitled: "Publicación sin título",
|
|
468
488
|
author: "por {name}",
|
|
469
489
|
dismiss: "Descartar",
|
|
470
|
-
|
|
490
|
+
tabs: {
|
|
491
|
+
open: "Pendientes",
|
|
492
|
+
processed: "Historial"
|
|
493
|
+
},
|
|
494
|
+
filterLabel: "Filtrar reportes",
|
|
495
|
+
orderHint: "Más recientes por fecha de recepción.",
|
|
496
|
+
historyEmpty: "Sin historial de revisión.",
|
|
497
|
+
confirm: "Marcar como revisado",
|
|
498
|
+
dismissTitle: "Descartar reporte",
|
|
499
|
+
resolveTitle: "Completar revisión",
|
|
500
|
+
actionHint: "Solo cambia el estado del reporte. No oculta ni elimina la publicación.",
|
|
501
|
+
publicNote: "Este motivo también será visible para quien reportó.",
|
|
502
|
+
reviewer: "Responsable",
|
|
503
|
+
reviewNote: "Motivo de resolución",
|
|
504
|
+
unknownReviewer: "Responsable desconocido",
|
|
505
|
+
actionFailed: "No se pudo procesar. Inténtalo de nuevo."
|
|
471
506
|
},
|
|
472
507
|
reports: {
|
|
473
508
|
reason: {
|
|
@@ -481,7 +516,13 @@ var e = {
|
|
|
481
516
|
signInRequired: "Inicia sesión.",
|
|
482
517
|
cannotReportOwn: "No puedes reportar tu propia publicación.",
|
|
483
518
|
reasonRequired: "Selecciona un motivo.",
|
|
484
|
-
detailTooLong: "Los detalles pueden tener hasta {max} caracteres."
|
|
519
|
+
detailTooLong: "Los detalles pueden tener hasta {max} caracteres.",
|
|
520
|
+
otherDetailRequired: "Indica los detalles al seleccionar Otro.",
|
|
521
|
+
reviewNoteRequired: "Escribe un motivo de resolución.",
|
|
522
|
+
alreadyReviewed: "Este reporte ya fue revisado. Consulta la lista.",
|
|
523
|
+
manageRequired: "No tienes permiso para revisar este reporte.",
|
|
524
|
+
alreadyReported: "Ya reportaste esta publicación.",
|
|
525
|
+
statusLoadFailed: "No se pudo cargar el estado. Actualiza la página."
|
|
485
526
|
},
|
|
486
527
|
sectionUtil: {
|
|
487
528
|
kind: {
|
|
@@ -759,4 +800,4 @@ var e = {
|
|
|
759
800
|
//#endregion
|
|
760
801
|
export { e as default };
|
|
761
802
|
|
|
762
|
-
//# sourceMappingURL=es-
|
|
803
|
+
//# sourceMappingURL=es-dlEFrox-.js.map
|