dorfteich/packages/shared/i18n/en/common.json
Claude Fable 5 c858f12592 #134 Statuszeile zwischen Navigation und Artikel
Neue schlanke Statuszeile (letzte Aktualisierung · Wortzahl · geschätzte
Lesezeit) zwischen Seitenkopf und Artikel — im authentifizierten
Lesemodus und in der öffentlichen Ansicht.

- Geteilte Komponente `PageStatusBar` (Datum via Intl in der aktiven
  Sprache, Lesezeit = ceil(Wörter/200), Singular/Plural, Lesezeit
  ausgeblendet bei 0 Wörtern).
- `countWords`/`htmlToText`-Helfer in lib/word-count.ts.
- Authentifiziert (`PageEditorPage`, nur Lesemodus): Wortzahl aus dem
  vorhandenen Markdown-Export (geteilter Query-Key ['page-markdown']),
  `updatedAt` direkt von `page.data`.
- Öffentlich (`PublicPageView`): Wortzahl aus dem server-gerenderten HTML
  per DOMParser — kein Editor-Bundle nötig; kein Backend-Change.
- i18n common.statusbar (de+en), CSS `.page-statusbar` (middot-getrennt,
  gedämpft). Gates grün (typecheck/lint/i18n:check); visuell verifiziert.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0155v2aT8AG1kZDQEZiCLBWC
2026-07-19 01:04:11 +02:00

97 lines
2.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"statusbar": {
"label": "Page information",
"updated": "Updated {{date}}",
"words_one": "{{count}} word",
"words_other": "{{count}} words",
"readingTime": "~{{minutes}} min read"
},
"layout": {
"sidebar": {
"expand": "Show sidebar",
"collapse": "Hide sidebar",
"resize": "Resize sidebar",
"label": "Pages",
"placeholder": "Your ponds and pages will appear here.",
"empty": "No pages yet.",
"sortLabel": "Sort pages",
"sortMode": {
"alpha": "AZ",
"created": "Creation date",
"manual": "Manual order"
},
"reorder": {
"up": "Move up",
"down": "Move down",
"dragHint": "Drag to reorder",
"moved": "Moved {{title}} to position {{position}} of {{count}}.",
"reparented": "Moved {{title}} under {{parent}}."
},
"newPage": "+ New page",
"newPageHint": "New page",
"newPageTitle": "Title",
"newPageUnder": "Will be created under “{{title}}”.",
"create": "Create",
"cancel": "Cancel",
"view": {
"toggleLabel": "Sidebar view",
"folders": "Folders",
"labels": "Labels",
"unlabeled": "Unlabeled",
"expand": "Expand subpages",
"collapseNode": "Collapse subpages",
"defaultTitle": "Sidebar view",
"defaultLabel": "Default view",
"defaultHint": "The default for all members; everyone can switch their own sidebar locally.",
"saved": "Saved."
},
"favorites": {
"filter": "Favorites",
"empty": "No favorites in this pond yet."
}
},
"pondSwitcher": {
"label": "Switch pond",
"trigger": "Select a pond"
},
"user": {
"anonymous": "Not signed in"
}
},
"pondHome": {
"empty": "This pond doesn't have any pages yet — create one from the sidebar."
},
"home": {
"title": "Welcome to Dorfteich",
"intro": "Dorfteich is an open-source wiki with real-time collaboration. This instance is being set up.",
"api": {
"checking": "Checking API …",
"ok": "API reachable",
"error": "API not reachable"
}
},
"notFound": {
"title": "Page not found",
"body": "The address you opened does not exist.",
"home": "Back to the start page"
},
"pond": {
"create": {
"menuItem": "+ New pond",
"title": "Create a shared pond",
"nameLabel": "Name",
"descriptionLabel": "Description (optional)",
"submit": "Create pond",
"cancel": "Cancel",
"quotaHint": "Shared ponds count against your quota — ask a site admin if creation is rejected."
},
"delete": {
"title": "Delete pond",
"hint": "Moves this pond with all of its pages to the site-level trash. A site admin can restore it. Your personal pond cannot be deleted.",
"confirmLabel": "Type the pond name to confirm: {{name}}",
"submit": "Delete pond",
"deleted": "Pond deleted."
}
}
}