aac51bf183
Implement schema v2 migration, outline/setting/inspiration CRUD, unified TipTap editing, reference panel with mentions, FTS global search, chapter version history, writing landmarks, word frequency analysis, light theme contrast fixes, and full unit/E2E test coverage. Co-authored-by: Cursor <cursoragent@cursor.com>
144 lines
5.7 KiB
JSON
144 lines
5.7 KiB
JSON
{
|
|
"app.name": "Bilin",
|
|
"app.tagline": "Long-form writing platform · Every story deserves care",
|
|
"home.newBook": "New Book",
|
|
"home.importBook": "Import Book",
|
|
"home.exportAll": "Export All Books",
|
|
"home.myBooks": "My Books",
|
|
"home.recent": "Recent",
|
|
"home.bookCount": "{{count}} books",
|
|
"book.createSample": "My First Book",
|
|
"dialog.newBook.title": "New Book",
|
|
"dialog.newBook.name": "Title",
|
|
"dialog.newBook.category": "Category",
|
|
"dialog.newBook.target": "Target word count (optional)",
|
|
"dialog.cancel": "Cancel",
|
|
"dialog.create": "Create",
|
|
"settings.title": "Settings",
|
|
"settings.general": "General",
|
|
"settings.shortcuts": "Shortcuts",
|
|
"settings.about": "About",
|
|
"settings.theme": "Theme",
|
|
"settings.language": "Language",
|
|
"settings.penName": "Pen name",
|
|
"settings.editor": "Editor",
|
|
"settings.ai": "AI",
|
|
"settings.backup": "Backup & Sync",
|
|
"theme.default": "Inkstone (Default)",
|
|
"theme.bamboo": "Bamboo",
|
|
"theme.moonlit": "Moonlit",
|
|
"theme.ricepaper": "Rice Paper",
|
|
"theme.mist": "Morning Mist",
|
|
"theme.teagarden": "Tea Garden",
|
|
"theme.twilight": "Twilight",
|
|
"onboarding.welcome": "Welcome to Bilin",
|
|
"onboarding.tagline": "Your intelligent long-form writing partner",
|
|
"onboarding.slide1": "Chapters & Version History",
|
|
"onboarding.slide1desc": "Volumes, snapshots, and diffs",
|
|
"onboarding.slide2": "AI-Assisted Writing",
|
|
"onboarding.slide2desc": "Context-aware suggestions and style learning",
|
|
"onboarding.slide3": "Knowledge Base & Foreshadowing",
|
|
"onboarding.slide3desc": "Auto-extract characters, places, and plot threads",
|
|
"onboarding.penName": "Set your pen name",
|
|
"onboarding.penNamePlaceholder": "Pen name (min. 2 characters)",
|
|
"onboarding.createSample": "Create sample book \"My First Book\"",
|
|
"onboarding.skip": "Skip",
|
|
"onboarding.next": "Next",
|
|
"onboarding.start": "Start Writing",
|
|
"feature.comingSoon": "Coming soon",
|
|
"editor.placeholder": "Start writing here…",
|
|
"editor.newChapter": "New Chapter",
|
|
"editor.newVolume": "New Volume",
|
|
"editor.saved": "Saved",
|
|
"editor.saving": "Saving…",
|
|
"editor.unsaved": "Unsaved",
|
|
"editor.words": "{{count}} words",
|
|
"sidebar.chapters": "Chapters",
|
|
"sidebar.outline": "Outline",
|
|
"sidebar.settings": "Settings",
|
|
"sidebar.inspiration": "Ideas",
|
|
"panel.ai": "AI",
|
|
"panel.knowledge": "Knowledge",
|
|
"panel.wordfreq": "Word Freq",
|
|
"panel.bookSettings": "Book",
|
|
"panel.aiPlaceholder": "AI features coming soon. Configure a model to collaborate here.",
|
|
"status.chapter": "Chapter",
|
|
"status.volume": "Volume",
|
|
"status.book": "Book",
|
|
"toast.bookCreated": "Book created",
|
|
"toast.saveFailed": "Save failed, please retry",
|
|
"toast.enterBookName": "Please enter a book title",
|
|
"toast.noBookOpen": "No book open",
|
|
"shortcuts.saveChapter": "Save chapter",
|
|
"shortcuts.newChapter": "New chapter",
|
|
"shortcuts.focusMode": "Focus mode",
|
|
"shortcuts.globalSearch": "Global search",
|
|
"shortcuts.closeTab": "Close tab",
|
|
"shortcuts.openReference": "Open reference",
|
|
"shortcuts.insertLandmark": "Insert landmark",
|
|
"shortcuts.openLandmarks": "Open landmarks",
|
|
"shortcuts.exportBook": "Export book",
|
|
"shortcuts.toggleTTS": "Toggle TTS",
|
|
"shortcuts.captureInspiration": "Capture inspiration",
|
|
"shortcuts.clickToRecord": "Click a shortcut button, then press a new key combination",
|
|
"shortcuts.recordHint": "Press a new key combination (Esc to cancel)",
|
|
"shortcuts.recording": "Recording…",
|
|
"shortcuts.conflict": "This shortcut is already assigned",
|
|
"shortcuts.registerFailed": "Failed to register shortcut, may conflict with another app",
|
|
"outline.new": "New Outline",
|
|
"outline.newItem": "New outline node",
|
|
"outline.empty": "No outline yet. Click below to create one.",
|
|
"setting.new": "New Setting",
|
|
"setting.empty": "No settings yet",
|
|
"setting.typeLabel": "Type",
|
|
"setting.nameLabel": "Name",
|
|
"setting.type.character": "Character",
|
|
"setting.type.location": "Location",
|
|
"setting.type.item": "Item",
|
|
"setting.type.skill": "Skill",
|
|
"setting.type.faction": "Faction",
|
|
"setting.type.custom": "Custom",
|
|
"inspiration.new": "New Idea",
|
|
"inspiration.newItem": "New idea",
|
|
"inspiration.empty": "No ideas yet",
|
|
"inspiration.untitled": "Untitled",
|
|
"inspiration.noContent": "(empty)",
|
|
"outline.filterAll": "All",
|
|
"outline.filterUncovered": "Uncovered",
|
|
"outline.filterCovered": "Covered",
|
|
"outline.compare": "Compare",
|
|
"outline.compareTitle": "Outline vs Chapter",
|
|
"outline.exitCompare": "Exit compare",
|
|
"outline.emptyFilter": "No matching items",
|
|
"outline.notWritten": "Not written yet",
|
|
"outline.noContent": "No content",
|
|
"outline.expected": "Expected",
|
|
"outline.actual": "Actual",
|
|
"outline.deviation": "Deviation",
|
|
"outline.jumpEditor": "Open in editor",
|
|
"reference.title": "Reference",
|
|
"reference.search": "Search references…",
|
|
"reference.tab.setting": "Settings",
|
|
"reference.tab.outline": "Outline",
|
|
"reference.tab.inspiration": "Ideas",
|
|
"search.title": "Global Search",
|
|
"search.placeholder": "Search…",
|
|
"search.regex": "Regex",
|
|
"search.caseSensitive": "Case sensitive",
|
|
"version.title": "Version History",
|
|
"version.empty": "No snapshots",
|
|
"version.create": "Create snapshot",
|
|
"version.restore": "Restore",
|
|
"version.manual": "Manual snapshot",
|
|
"version.selectHint": "Select a version to compare",
|
|
"version.restoreConfirm": "Restore this version? Current content will be overwritten.",
|
|
"landmark.title": "Landmarks",
|
|
"landmark.empty": "No landmarks",
|
|
"landmark.insert": "Insert landmark",
|
|
"landmark.prompt": "Landmark label",
|
|
"landmark.created": "Landmark inserted",
|
|
"landmark.chapterOnly": "Insert landmarks in a chapter",
|
|
"wordfreq.hint": "Top 100 words in current scope",
|
|
"wordfreq.aiNaming": "AI naming suggestions"
|
|
}
|