Full-featured web editor PWA for noz, built with Next.js and CodeMirror 6. Editor: - CM6-based Markdown editor with iA Writer aesthetic and Typora-style marker hiding - Live preview with KaTeX math, highlight.js syntax highlighting, wikilink rendering - Wikilink autocomplete via server note graph ([[ triggers suggestion list) - Floating selection toolbar, format toolbar, status bar - Split / editor-only / preview-only view modes with resizable panels - Visual frontmatter panel (no raw YAML editing required) Navigation: - Folder tree with topics, sub-topics, drafts section - Create / rename / move / delete notes and folders - Diagram editor (TOML definition → canvas visualization) Search: - ⌘K command palette with scoped search (@topic, @web, @draft) Preview: - Broken wikilink detection with visual indicator and toast notification - Fragment links: [[note#section]] navigates and scrolls to heading - In-page links: [[#section]] scrolls without switching notes - Heading anchors auto-generated from heading text Auth: - Token / Authentik SSO / both — driven by noosphere.toml - sessionStorage only (no localStorage — prevents credential leaks on shared devices) i18n: German + English
129 lines
3.6 KiB
TypeScript
129 lines
3.6 KiB
TypeScript
// Alle Übersetzungs-Keys hier definiert — de.ts ist der Source of Truth.
|
|
// Translations-Interface hier damit en.ts es importieren kann.
|
|
|
|
export interface Translations {
|
|
// Navbar
|
|
sidebar: string
|
|
home: string
|
|
search: string
|
|
settings: string
|
|
editorOnly: string
|
|
split: string
|
|
previewOnly: string
|
|
// Status
|
|
seed: string
|
|
budding: string
|
|
evergreen: string
|
|
draft: string
|
|
inReview: string
|
|
live: string
|
|
// StatusBar
|
|
words: string
|
|
saved: string
|
|
unsaved: string
|
|
// FolderTree
|
|
noosphere: string
|
|
newNote: string
|
|
newFolder: string
|
|
subfolder: string
|
|
drafts: string
|
|
rename: string
|
|
moveTo: string
|
|
delete: string
|
|
cancel: string
|
|
noteName: string
|
|
folderName: string
|
|
confirm: string
|
|
noOtherFolders: string
|
|
// Lösch-Dialog
|
|
deleteNote: string
|
|
deleteWarning: string
|
|
// CommandPalette
|
|
searchPlaceholder: string
|
|
searchTermPlaceholder: string
|
|
scopeLabel: string
|
|
webSearch: (q: string) => string
|
|
webSearchSub: string
|
|
webSearchHint: string
|
|
noResults: string
|
|
recentlyOpened: string
|
|
navigate: string
|
|
open: string
|
|
close: string
|
|
// Login
|
|
loginServer: string
|
|
loginToken: string
|
|
loginConnect: string
|
|
loginConnecting: string
|
|
loginAuthentik: string
|
|
loginHint: string
|
|
loginError: string
|
|
loginOr: string
|
|
// Loading
|
|
loadingNotes: string
|
|
loadingNote: string
|
|
}
|
|
|
|
const de: Translations = {
|
|
sidebar: "Sidebar",
|
|
home: "Startseite",
|
|
search: "Suchen",
|
|
settings: "Einstellungen",
|
|
editorOnly: "Nur Editor",
|
|
split: "Split",
|
|
previewOnly: "Nur Preview",
|
|
|
|
seed: "Seed",
|
|
budding: "Budding",
|
|
evergreen: "Evergreen",
|
|
draft: "Entwurf",
|
|
inReview: "In Review",
|
|
live: "Live",
|
|
|
|
words: "Wörter",
|
|
saved: "Gespeichert",
|
|
unsaved: "Nicht gespeichert",
|
|
|
|
noosphere: "Noosphere",
|
|
newNote: "Neue Notiz",
|
|
newFolder: "Neuer Ordner",
|
|
subfolder: "Unterordner",
|
|
drafts: "Entwürfe",
|
|
rename: "Umbenennen",
|
|
moveTo: "Verschieben nach",
|
|
delete: "Löschen",
|
|
cancel: "Abbrechen",
|
|
noteName: "Notiz-Titel…",
|
|
folderName: "Ordnername…",
|
|
confirm: "Bestätigen",
|
|
noOtherFolders: "Keine anderen Ordner",
|
|
|
|
deleteNote: "Notiz löschen",
|
|
deleteWarning: "Diese Aktion kann nicht rückgängig gemacht werden.",
|
|
|
|
searchPlaceholder: "Suchen… @topic · @web · @draft",
|
|
searchTermPlaceholder: "Suchbegriff…",
|
|
scopeLabel: "Einschränken",
|
|
webSearch: (q) => `Im Web suchen: "${q}"`,
|
|
webSearchSub: "DuckDuckGo — öffnet neuen Tab",
|
|
webSearchHint: "@web für direkten Web-Fokus · öffnet neuen Tab",
|
|
noResults: "Keine Notizen gefunden",
|
|
recentlyOpened: "Zuletzt geöffnet",
|
|
navigate: "navigieren",
|
|
open: "öffnen",
|
|
close: "schließen",
|
|
|
|
loginServer: "Server",
|
|
loginToken: "Token",
|
|
loginConnect: "Verbinden",
|
|
loginConnecting: "Verbinde…",
|
|
loginAuthentik: "Mit Authentik anmelden",
|
|
loginHint: "Token aus",
|
|
loginError: "Bitte Server-URL und Token eingeben.",
|
|
loginOr: "oder",
|
|
|
|
loadingNotes: "Notizen laden…",
|
|
loadingNote: "Lade Notiz…",
|
|
}
|
|
|
|
export default de
|