8ce35a1e8e
Add chapter reorder, search replace, inspiration capture, and AI chat with context editing, settings, offline handling, and naming checks. Fix dev black screen by keeping process.env reads in the main process only. Co-authored-by: Cursor <cursoragent@cursor.com>
213 lines
9.3 KiB
JSON
213 lines
9.3 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.",
|
|
"ai.mode.chat": "Chat",
|
|
"ai.mode.interactive": "Interactive",
|
|
"ai.mode.auto": "Auto",
|
|
"ai.mode.wizard": "Wizard",
|
|
"ai.noBook": "Open a book first",
|
|
"ai.noSession": "No session",
|
|
"ai.untitledSession": "New chat",
|
|
"ai.contextPlaceholder": "📎 Context: not configured yet",
|
|
"ai.contextEmpty": "📎 Context: nothing selected",
|
|
"ai.contextSummary": "📎 Context: {{chapters}} ch. · {{outlines}} outline · {{settings}} settings · {{inspirations}} ideas",
|
|
"ai.contextEditorTitle": "Edit AI context",
|
|
"ai.contextTab.chapter": "Chapters",
|
|
"ai.contextTab.outline": "Outline",
|
|
"ai.contextTab.setting": "Settings",
|
|
"ai.contextTab.inspiration": "Ideas",
|
|
"ai.contextEmptyList": "No items",
|
|
"ai.contextRefresh": "Refresh context",
|
|
"ai.contextSave": "Save",
|
|
"ai.slash.continue": "Continue writing 200-400 characters from the end of the current chapter in the same style.",
|
|
"ai.slash.expand": "Expand the most recent paragraph with more sensory detail without changing the plot.",
|
|
"ai.slash.polish": "Polish the following text for prose quality while keeping plot and POV unchanged.",
|
|
"ai.slash.summarize": "Summarize the key points of the current chapter, including events and character changes.",
|
|
"ai.slash.proofread": "Review grammar, punctuation, and wording issues in the following text and suggest fixes.",
|
|
"ai.offlineBanner": "⚠ Network unavailable. Offline mode enabled.",
|
|
"ai.inputPlaceholder": "Type a message or pick a quick command…",
|
|
"ai.send": "Send",
|
|
"ai.networkRestored": "Network restored. Cloud AI is available again.",
|
|
"ai.insertToEditor": "Insert into editor",
|
|
"ai.inserted": "Inserted into editor",
|
|
"snapshot.ai": "Before AI insert",
|
|
"naming.open": "🔍 Naming consistency check",
|
|
"naming.title": "Naming consistency check",
|
|
"naming.run": "Run scan",
|
|
"naming.running": "Scanning…",
|
|
"naming.emptyHint": "Click Run scan to check proper noun consistency across the book",
|
|
"naming.noConflicts": "No naming conflicts found",
|
|
"naming.confidence": "Confidence {{value}}%",
|
|
"naming.ignore": "Ignore",
|
|
"naming.replace": "Replace with “{{term}}”",
|
|
"naming.ignored": "Added to ignore list",
|
|
"naming.replaced": "Replaced {{count}} occurrence(s)",
|
|
"knowledge.placeholder": "Knowledge base entries will appear here",
|
|
"ai.settings.backend": "Backend",
|
|
"ai.settings.backend.lmstudio": "LM Studio (local)",
|
|
"ai.settings.backend.openai": "OpenAI",
|
|
"ai.settings.backend.anthropic": "Anthropic",
|
|
"ai.settings.baseUrl": "Base URL",
|
|
"ai.settings.model": "Model",
|
|
"ai.settings.apiKey": "API Key",
|
|
"ai.settings.timeout": "Timeout (seconds)",
|
|
"ai.settings.testConnection": "Test connection",
|
|
"ai.settings.testing": "Testing…",
|
|
"ai.settings.testSuccess": "AI connection test succeeded",
|
|
"ai.settings.licenseNotice": "Cloud AI services are subject to each provider's terms. Please read and agree to the <openai>OpenAI Terms</openai> / <anthropic>Anthropic Terms</anthropic> before use.",
|
|
"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)",
|
|
"inspiration.captureTitle": "💡 Capture Idea",
|
|
"inspiration.titlePlaceholder": "Title (optional)",
|
|
"inspiration.contentPlaceholder": "Capture a fleeting thought…",
|
|
"inspiration.tagsLabel": "Tags (optional)",
|
|
"inspiration.tagsPlaceholder": "e.g. foreshadowing, vol.3, character",
|
|
"inspiration.voice": "Voice",
|
|
"inspiration.voiceUnavailable": "Speech input is not available",
|
|
"inspiration.save": "Save",
|
|
"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",
|
|
"reference.pin": "Pin panel",
|
|
"reference.unpin": "Unpin",
|
|
"search.title": "Global Search",
|
|
"search.placeholder": "Search…",
|
|
"search.regex": "Regex",
|
|
"search.caseSensitive": "Case sensitive",
|
|
"search.replace": "Replace with",
|
|
"search.replacePreview": "Preview replace",
|
|
"search.replaceExecute": "Replace all",
|
|
"search.replaceConfirm": "Replace all matches in this book? This cannot be undone.",
|
|
"search.replaceDone": "Replaced {{count}} occurrence(s)",
|
|
"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"
|
|
}
|