mirror of
https://github.com/yeban8090/book-smith.git
synced 2026-07-22 05:46:23 +00:00
修改人工审核中的问题
This commit is contained in:
parent
8cae94747f
commit
ed50187456
11 changed files with 135 additions and 222 deletions
|
|
@ -3,7 +3,7 @@
|
|||
"name": "Book Smith",
|
||||
"version": "1.0.0",
|
||||
"minAppVersion": "0.15.0",
|
||||
"description": "A writing plugin for book management",
|
||||
"description": "Simplify long-form writing and book creation. Organize chapters, track progress, and export your manuscript in various formats for a seamless publishing workflow.",
|
||||
"author": "Yeban",
|
||||
"isDesktopOnly": false
|
||||
}
|
||||
1
src/assets/kofi3.ts
Normal file
1
src/assets/kofi3.ts
Normal file
|
|
@ -0,0 +1 @@
|
|||
export const kofiImage = 'data:image/webp;base64,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';
|
||||
|
|
@ -19,7 +19,6 @@ export class I18n {
|
|||
// 获取系统语言
|
||||
private getSystemLocale(): Locale {
|
||||
const systemLocale = moment.locale();
|
||||
|
||||
// 映射 moment 语言代码到我们支持的语言
|
||||
if (systemLocale.startsWith('zh')) return 'zh-CN';
|
||||
if (systemLocale.startsWith('en')) return 'en';
|
||||
|
|
@ -33,18 +32,7 @@ export class I18n {
|
|||
|
||||
// 默认英文
|
||||
return 'en';
|
||||
}
|
||||
|
||||
// 设置当前语言
|
||||
public setLocale(locale: Locale) {
|
||||
this.locale = locale;
|
||||
}
|
||||
|
||||
// 获取当前语言
|
||||
public getLocale(): Locale {
|
||||
return this.locale;
|
||||
}
|
||||
|
||||
}
|
||||
// 加载翻译文件
|
||||
private loadTranslations() {
|
||||
// 导入所有语言文件
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
export interface SettingsTranslation {
|
||||
// 设置页面
|
||||
SETTINGS_TITLE: string;
|
||||
BASIC_SETTINGS: string;
|
||||
TEMPLATE_SETTINGS: string;
|
||||
WRITING_TOOLS_SETTINGS: string;
|
||||
PLUGIN_NAME: string;
|
||||
BASIC_OPTIONS: string;
|
||||
TEMPLATE_OPTIONS: string;
|
||||
WRITING_TOOLS_OPTIONS: string;
|
||||
|
||||
// 基本设置
|
||||
LANGUAGE_SETTING: string;
|
||||
|
|
@ -26,7 +26,7 @@ export interface SettingsTranslation {
|
|||
DELETE_TEMPLATE_DESC: string;
|
||||
|
||||
// 写作工具箱设置
|
||||
FOCUS_MODE_SETTINGS: string;
|
||||
FOCUS_MODE_OPTIONS: string;
|
||||
FOCUS_DURATION: string;
|
||||
FOCUS_DURATION_DESC: string;
|
||||
BREAK_DURATION: string;
|
||||
|
|
|
|||
|
|
@ -19,15 +19,15 @@ const commonTranslation: CommonTranslation = {
|
|||
HIDE: 'Hide',
|
||||
SHOW: 'Show',
|
||||
|
||||
OPEN_BOOK_PANEL: 'Open Book Panel',
|
||||
OPEN_TOOL_PANEL: 'Open Tool Panel',
|
||||
OPEN_ALL_PANELS: 'Open All Panels',
|
||||
OPEN_BOOK_PANEL: 'Open book panel',
|
||||
OPEN_TOOL_PANEL: 'Open tool panel',
|
||||
OPEN_ALL_PANELS: 'Open all panels',
|
||||
};
|
||||
|
||||
// 书籍管理视图翻译
|
||||
const bookSmithViewTranslation: BookSmithViewTranslation = {
|
||||
// 主界面
|
||||
BOOK_MANAGER: 'Book Manager',
|
||||
BOOK_MANAGER: 'Book manager',
|
||||
NEW_BOOK: 'New',
|
||||
SWITCH_BOOK: 'Switch',
|
||||
MANAGE_BOOK: 'Manage',
|
||||
|
|
@ -41,14 +41,14 @@ const bookSmithViewTranslation: BookSmithViewTranslation = {
|
|||
|
||||
// 章节相关
|
||||
CHAPTER: 'Chapter',
|
||||
ADD_CHAPTER: 'Add Chapter',
|
||||
DELETE_CHAPTER: 'Delete Chapter',
|
||||
RENAME_CHAPTER: 'Rename Chapter',
|
||||
ADD_CHAPTER: 'Add chapter',
|
||||
DELETE_CHAPTER: 'Delete chapter',
|
||||
RENAME_CHAPTER: 'Rename chapter',
|
||||
|
||||
// 统计相关
|
||||
STATS: 'Statistics',
|
||||
WORD_COUNT: 'Word Count',
|
||||
CHAPTER_COUNT: 'Chapter Count',
|
||||
WORD_COUNT: 'Word count',
|
||||
CHAPTER_COUNT: 'Chapter count',
|
||||
|
||||
// 帮助提示
|
||||
HELP_TOOLTIP: `👋 Welcome to BookSmith
|
||||
|
|
@ -93,10 +93,10 @@ the developer via the "Donate" button in the Writing Toolbox.`,
|
|||
|
||||
// 统计文本
|
||||
TODAY_WORDS: 'Today',
|
||||
TOTAL_WORDS: 'Total Words',
|
||||
TOTAL_WORDS: 'Total words',
|
||||
CHAPTER_COMPLETION: 'Completion',
|
||||
WRITING_DAYS: 'Writing Days',
|
||||
AVERAGE_DAILY_WORDS: 'Daily Average',
|
||||
WRITING_DAYS: 'Writing days',
|
||||
AVERAGE_DAILY_WORDS: 'Daily average',
|
||||
WORD_UNIT: ' words',
|
||||
DAY_UNIT: ' days',
|
||||
TEN_THOUSAND: 'K',
|
||||
|
|
@ -108,67 +108,67 @@ the developer via the "Donate" button in the Writing Toolbox.`,
|
|||
|
||||
// 工具箱视图翻译
|
||||
const toolViewTranslation: ToolViewTranslation = {
|
||||
WRITING_TOOLBOX: 'Writing Toolbox',
|
||||
WRITING_TOOLBOX: 'Writing toolbox',
|
||||
|
||||
// 写作助手
|
||||
WRITING_ASSISTANT: 'Writing Assistant',
|
||||
FOCUS_MODE: 'Focus Mode',
|
||||
CREATIVE_INSPIRATION: 'Creative Inspiration',
|
||||
CHARACTER_PROFILES: 'Character Profiles',
|
||||
WORLD_BUILDING: 'World Building',
|
||||
WRITING_ASSISTANT: 'Writing assistant',
|
||||
FOCUS_MODE: 'Focus mode',
|
||||
CREATIVE_INSPIRATION: 'Creative inspiration',
|
||||
CHARACTER_PROFILES: 'Character profiles',
|
||||
WORLD_BUILDING: 'World building',
|
||||
|
||||
// 导出发布
|
||||
EXPORT_PUBLISH: 'Export & Publish',
|
||||
DESIGN_TYPOGRAPHY: 'Design & Typography',
|
||||
GENERATE_EBOOK: 'Generate E-book',
|
||||
MORE_FEATURES: 'More Features...',
|
||||
EXPORT_PUBLISH: 'Export & publish',
|
||||
DESIGN_TYPOGRAPHY: 'Design & typography',
|
||||
GENERATE_EBOOK: 'Generate e-book',
|
||||
MORE_FEATURES: 'More features...',
|
||||
MORE_FEATURES_MESSAGE: 'More features coming with your participation',
|
||||
|
||||
// 写作圈子
|
||||
WRITING_COMMUNITY: 'Writing Community',
|
||||
CREATIVE_COMMUNITY: 'Creative Community',
|
||||
CONTACT_AUTHOR: 'Contact Author',
|
||||
DONATE_SUPPORT: 'Donate & Support',
|
||||
WRITING_COMMUNITY: 'Writing community',
|
||||
CREATIVE_COMMUNITY: 'Creative community',
|
||||
CONTACT_AUTHOR: 'Contact author',
|
||||
DONATE_SUPPORT: 'Donate & support',
|
||||
|
||||
// 面板设置
|
||||
PANEL_SETTINGS: 'Panel Settings',
|
||||
PANEL_SETTINGS: 'Panel settings',
|
||||
FEATURE_COMING_SOON: '{feature} feature coming soon'
|
||||
};
|
||||
|
||||
// 设置面板翻译
|
||||
const settingsTranslation: SettingsTranslation = {
|
||||
SETTINGS_TITLE: 'Book Smith Settings',
|
||||
BASIC_SETTINGS: 'Basic Settings',
|
||||
TEMPLATE_SETTINGS: 'Template Settings',
|
||||
WRITING_TOOLS_SETTINGS: 'Writing Tools Settings',
|
||||
PLUGIN_NAME: 'Book Smith',
|
||||
BASIC_OPTIONS: 'Basic options',
|
||||
TEMPLATE_OPTIONS: 'Template options',
|
||||
WRITING_TOOLS_OPTIONS: 'Writing tools options',
|
||||
|
||||
// Basic Settings
|
||||
LANGUAGE_SETTING: 'Language',
|
||||
LANGUAGE_DESC: 'Choose plugin language / 选择插件界面语言',
|
||||
DEFAULT_AUTHOR: 'Default Author',
|
||||
DEFAULT_AUTHOR: 'Default author',
|
||||
DEFAULT_AUTHOR_DESC: 'Default author name for new books',
|
||||
DEFAULT_AUTHOR_PLACEHOLDER: 'Enter default author name',
|
||||
BOOK_STORAGE_PATH: 'Book Storage Path',
|
||||
BOOK_STORAGE_PATH: 'Book storage path',
|
||||
BOOK_STORAGE_DESC: 'Default storage path for new books',
|
||||
STORAGE_PATH_CHANGED: 'Storage path changed, please restart Obsidian or reload for changes to take effect',
|
||||
|
||||
// Template Settings
|
||||
DEFAULT_TEMPLATE: 'Default Template',
|
||||
DEFAULT_TEMPLATE: 'Default template',
|
||||
DEFAULT_TEMPLATE_DESC: 'Default template used when creating new books',
|
||||
BOOK_TEMPLATES: 'Book Templates',
|
||||
ADD_NEW_TEMPLATE: 'Add New Template',
|
||||
EDIT_TEMPLATE: 'Edit Template',
|
||||
DELETE_TEMPLATE: 'Delete Template',
|
||||
DELETE_TEMPLATE_TITLE: 'Delete Template',
|
||||
BOOK_TEMPLATES: 'Book templates',
|
||||
ADD_NEW_TEMPLATE: 'Add new template',
|
||||
EDIT_TEMPLATE: 'Edit template',
|
||||
DELETE_TEMPLATE: 'Delete template',
|
||||
DELETE_TEMPLATE_TITLE: 'Delete template',
|
||||
DELETE_TEMPLATE_DESC: 'Are you sure you want to delete this template? This action cannot be undone.',
|
||||
|
||||
// Writing Tools Settings
|
||||
FOCUS_MODE_SETTINGS: 'Focus Mode Settings',
|
||||
FOCUS_DURATION: 'Focus Duration',
|
||||
FOCUS_MODE_OPTIONS: 'Focus mode options',
|
||||
FOCUS_DURATION: 'Focus duration',
|
||||
FOCUS_DURATION_DESC: 'Work duration for each focus session (minutes)',
|
||||
BREAK_DURATION: 'Break Duration',
|
||||
BREAK_DURATION: 'Break duration',
|
||||
BREAK_DURATION_DESC: 'Break duration after each focus session (minutes)',
|
||||
WORD_GOAL: 'Word Goal',
|
||||
WORD_GOAL: 'Word goal',
|
||||
WORD_GOAL_DESC: 'Target word count for each focus session'
|
||||
};
|
||||
|
||||
|
|
@ -183,7 +183,7 @@ const modalTranslation: ModalTranslation = {
|
|||
SUBTITLE: 'Subtitle',
|
||||
SUBTITLE_DESC: 'Optional',
|
||||
SUBTITLE_PLACEHOLDER: 'Subtitle',
|
||||
TARGET_WORDS: 'Target Word Count',
|
||||
TARGET_WORDS: 'Target word count',
|
||||
TARGET_WORDS_DESC: 'Set estimated total word count (in 10k)',
|
||||
TARGET_WORDS_PLACEHOLDER: 'e.g., 20 or 20.0',
|
||||
AUTHOR: 'Author',
|
||||
|
|
@ -195,10 +195,10 @@ const modalTranslation: ModalTranslation = {
|
|||
REQUIRED_FIELDS: 'Please fill in required fields',
|
||||
|
||||
// CreateBookModal
|
||||
CREATE_BOOK_TITLE: 'Create New Book',
|
||||
CREATE_BOOK_TITLE: 'Create new book',
|
||||
BOOK_TEMPLATE: 'Template',
|
||||
TEMPLATE_CHECK_DESC: 'Please select a book template',
|
||||
SELECT_IMAGE: 'Select Image',
|
||||
SELECT_IMAGE: 'Select image',
|
||||
COVER_UPLOAD_SUCCESS: 'Cover uploaded successfully',
|
||||
COVER_UPLOAD_FAILED: 'Cover upload failed: ',
|
||||
CREATE: 'Create',
|
||||
|
|
@ -206,9 +206,9 @@ const modalTranslation: ModalTranslation = {
|
|||
CREATE_FAILED: 'Creation failed: ',
|
||||
|
||||
// EditBookModal
|
||||
EDIT_BOOK_TITLE: 'Edit Book',
|
||||
CHANGE_COVER: 'Change Cover',
|
||||
SELECT_COVER: 'Select Cover',
|
||||
EDIT_BOOK_TITLE: 'Edit book',
|
||||
CHANGE_COVER: 'Change cover',
|
||||
SELECT_COVER: 'Select cover',
|
||||
COVER_UPDATE_SUCCESS: 'Cover updated successfully',
|
||||
COVER_UPDATE_FAILED: 'Failed to update cover: ',
|
||||
SAVE: 'Save',
|
||||
|
|
@ -216,15 +216,15 @@ const modalTranslation: ModalTranslation = {
|
|||
SAVE_FAILED: 'Save failed: ',
|
||||
|
||||
// ManageBooksModal
|
||||
MANAGE_BOOKS_TITLE: 'Manage Books',
|
||||
MANAGE_BOOKS_TITLE: 'Manage books',
|
||||
SEARCH_BOOKS_PLACEHOLDER: 'Search books...',
|
||||
IMPORT_BOOK: 'Import Book',
|
||||
IMPORT_BOOK: 'Import book',
|
||||
BOOK_AUTHOR_PREFIX: 'Author: ',
|
||||
BOOK_DESC_PREFIX: '\nDescription: ',
|
||||
BOOK_PROGRESS_PREFIX: '\nProgress: ',
|
||||
DELETE_BOOK: 'Delete',
|
||||
EDIT_BOOK: 'Edit',
|
||||
DELETE_BOOK_TITLE: 'Delete Book',
|
||||
DELETE_BOOK_TITLE: 'Delete book',
|
||||
DELETE_BOOK_DESC: 'Are you sure you want to delete "{title}"?\nThis action cannot be undone.',
|
||||
DELETE_SUCCESS: 'Deleted successfully',
|
||||
DELETE_FAILED: 'Delete failed: ',
|
||||
|
|
@ -235,16 +235,16 @@ const modalTranslation: ModalTranslation = {
|
|||
IMPORT_FAILED: 'Failed to create book configuration: ',
|
||||
|
||||
// SwitchBookModal
|
||||
SWITCH_BOOK_TITLE: 'Switch Book',
|
||||
SWITCH_BOOK_TITLE: 'Switch book',
|
||||
SEARCH_BOOK_PLACEHOLDER: 'Search books...',
|
||||
BOOK_AUTHOR_LABEL: 'Author',
|
||||
BOOK_PROGRESS_LABEL: 'Progress',
|
||||
BOOK_WORDCOUNT_LABEL: 'Words',
|
||||
BOOK_LASTMOD_LABEL: 'Last Modified',
|
||||
BOOK_LASTMOD_LABEL: 'Last modified',
|
||||
SELECT_BOOK: 'Select',
|
||||
|
||||
// UnimportedBooksModal
|
||||
UNIMPORTED_BOOKS_TITLE: 'Select Book Directory to Import',
|
||||
UNIMPORTED_BOOKS_TITLE: 'Select book directory to import',
|
||||
NO_UNIMPORTED_FOLDERS: 'No unimported book directories found',
|
||||
CLOSE: 'Close',
|
||||
SEARCH_FOLDERS_PLACEHOLDER: 'Search directories...',
|
||||
|
|
@ -253,8 +253,8 @@ const modalTranslation: ModalTranslation = {
|
|||
SELECT_FOLDER_FIRST: 'Please select a directory first',
|
||||
|
||||
// ReferenceModal
|
||||
REFERENCE_MODAL_TITLE: 'Add Reference',
|
||||
REFERENCE_CONTENT: 'Reference Content',
|
||||
REFERENCE_MODAL_TITLE: 'Add reference',
|
||||
REFERENCE_CONTENT: 'Reference content',
|
||||
REFERENCE_CONTENT_DESC: 'Please enter the details of the reference',
|
||||
|
||||
// NamePromptModal
|
||||
|
|
@ -263,18 +263,18 @@ const modalTranslation: ModalTranslation = {
|
|||
CANCEL: 'Cancel',
|
||||
|
||||
// TemplateEditModal
|
||||
TEMPLATE_EDIT_TITLE: 'Edit Template',
|
||||
TEMPLATE_CREATE_TITLE: 'Create Template',
|
||||
TEMPLATE_NAME: 'Template Name',
|
||||
TEMPLATE_EDIT_TITLE: 'Edit template',
|
||||
TEMPLATE_CREATE_TITLE: 'Create template',
|
||||
TEMPLATE_NAME: 'Template name',
|
||||
TEMPLATE_NAME_PLACEHOLDER: 'Enter template name',
|
||||
TEMPLATE_DESC: 'Template Description',
|
||||
TEMPLATE_DESC: 'Template description',
|
||||
TEMPLATE_DESC_PLACEHOLDER: 'Describe the template structure',
|
||||
TEMPLATE_STRUCTURE: 'Chapter Tree',
|
||||
ADD_FILE: 'Add File',
|
||||
ADD_FOLDER: 'Add Folder',
|
||||
TEMPLATE_STRUCTURE: 'Chapter tree',
|
||||
ADD_FILE: 'Add file',
|
||||
ADD_FOLDER: 'Add folder',
|
||||
DELETE_FOLDER_CONFIRM: 'Are you sure you want to delete this folder and all its contents?',
|
||||
NEW_CHAPTER: 'New Chapter',
|
||||
NEW_DIRECTORY: 'New Directory',
|
||||
NEW_CHAPTER: 'New chapter',
|
||||
NEW_DIRECTORY: 'New directory',
|
||||
ENTER_NAME_PLACEHOLDER: 'Enter name',
|
||||
TEMPLATE_NAME_REQUIRED: 'Please enter template name',
|
||||
TEMPLATE_NODE_REQUIRED: 'Please add at least one node',
|
||||
|
|
@ -282,6 +282,7 @@ const modalTranslation: ModalTranslation = {
|
|||
TEMPLATE_SAVE_SUCCESS: 'Template saved successfully',
|
||||
TEMPLATE_SAVE_FAILED: 'Failed to save template, check console for details'
|
||||
};
|
||||
|
||||
const managerTranslation: ManagerTranslation = {
|
||||
// BookManager related
|
||||
BOOK_EXISTS: 'Book already exists',
|
||||
|
|
@ -289,7 +290,7 @@ const managerTranslation: ManagerTranslation = {
|
|||
BOOK_FOLDER_NOT_FOUND: 'Book folder not found',
|
||||
SAVE_CONFIG_FAILED: 'Failed to save configuration file',
|
||||
IMPORT_BOOK_FAILED: 'Failed to import book',
|
||||
UNKNOWN_AUTHOR: 'Unknown Author',
|
||||
UNKNOWN_AUTHOR: 'Unknown author',
|
||||
|
||||
// TemplateManager related
|
||||
TEMPLATE_TYPE_NOT_FOUND: 'Template "{type}" does not exist',
|
||||
|
|
@ -314,27 +315,28 @@ const managerTranslation: ManagerTranslation = {
|
|||
CHAPTER_INFO_ERROR: 'Unable to get current chapter information',
|
||||
|
||||
// ReferenceManager 菜单项
|
||||
EDIT_REFERENCE: 'Edit Reference',
|
||||
DELETE_REFERENCE: 'Delete Reference',
|
||||
INSERT_REFERENCE: 'Insert Reference'
|
||||
EDIT_REFERENCE: 'Edit reference',
|
||||
DELETE_REFERENCE: 'Delete reference',
|
||||
INSERT_REFERENCE: 'Insert reference'
|
||||
};
|
||||
|
||||
const toolbarModalTranslation: ToolbarModalTranslation = {
|
||||
// CommunityModal
|
||||
COMMUNITY_TITLE: 'Writing Community',
|
||||
COMMUNITY_TITLE: 'Writing community',
|
||||
COMMUNITY_INTRO: 'Join the Billion Writes community to connect with other writers, get inspiration and feedback.',
|
||||
FEATURE_SHARE_TITLE: 'Share Works',
|
||||
FEATURE_SHARE_TITLE: 'Share works',
|
||||
FEATURE_SHARE_DESC: 'Share your creations and get reader feedback',
|
||||
FEATURE_DISCUSS_TITLE: 'Writing Exchange',
|
||||
FEATURE_DISCUSS_TITLE: 'Writing exchange',
|
||||
FEATURE_DISCUSS_DESC: 'Discuss writing techniques with other creators',
|
||||
FEATURE_CHALLENGE_TITLE: 'Writing Challenges',
|
||||
FEATURE_CHALLENGE_TITLE: 'Writing challenges',
|
||||
FEATURE_CHALLENGE_DESC: 'Participate in community writing challenges to improve your skills',
|
||||
JOIN_SECTION_TITLE: 'How to Join',
|
||||
JOIN_SECTION_TITLE: 'How to join',
|
||||
JOIN_SECTION_DESC: 'Copy and search the official account below',
|
||||
OFFICIAL_ACCOUNT: 'Official Account: BilionWrites',
|
||||
COPY_ACCOUNT: 'Copy Account',
|
||||
OFFICIAL_ACCOUNT: 'Official account: BilionWrites',
|
||||
COPY_ACCOUNT: 'Copy account',
|
||||
|
||||
// ContactModal
|
||||
ABOUT_AUTHOR: 'About Author',
|
||||
ABOUT_AUTHOR: 'About author',
|
||||
AUTHOR_INTRO_1: 'Hello, I\'m Yeban, a full-time writer and independent developer.',
|
||||
AUTHOR_INTRO_2_1: 'This plugin is ',
|
||||
AUTHOR_INTRO_2_2: 'a tool I developed to help authors write long-form content in Obsidian',
|
||||
|
|
@ -348,7 +350,7 @@ const toolbarModalTranslation: ToolbarModalTranslation = {
|
|||
DONATE_BUTTON: 'Support',
|
||||
MORE_INFO_TEXT: 'If you want to learn more about writing, creative techniques, or follow my future work updates, welcome to follow my social media.',
|
||||
CONTACT_TITLE: 'Contact:',
|
||||
CONTACT_WECHAT_OFFICIAL: 'WeChat Official',
|
||||
CONTACT_WECHAT_OFFICIAL: 'WeChat official',
|
||||
CONTACT_XIAOHONGSHU: 'Xiaohongshu',
|
||||
CONTACT_WECHAT: 'WeChat',
|
||||
CONTACT_GITHUB: 'GitHub',
|
||||
|
|
@ -356,8 +358,8 @@ const toolbarModalTranslation: ToolbarModalTranslation = {
|
|||
COPY_FAILED: 'Copy failed, please copy manually: {value}',
|
||||
|
||||
// DonateModal
|
||||
DONATE_MODAL_TITLE: 'Support Me',
|
||||
COMMUNITY_STATS_TITLE: 'Community Stats',
|
||||
DONATE_MODAL_TITLE: 'Support me',
|
||||
COMMUNITY_STATS_TITLE: 'Community stats',
|
||||
COMMUNITY_STATS_USERS: '1200+ users, 32 supporters',
|
||||
COMMUNITY_STATS_WORDS: '5000+ words written daily',
|
||||
|
||||
|
|
@ -366,32 +368,33 @@ const toolbarModalTranslation: ToolbarModalTranslation = {
|
|||
DONATE_AMOUNT_FEATURE: 'Feature builder',
|
||||
DONATE_FEEDBACK_COFFEE: 'Thanks for your coffee support!',
|
||||
DONATE_FEEDBACK_CHAPTER: 'You get one vote for new features',
|
||||
DONATE_FEEDBACK_FEATURE: 'Join our beta testing group, contact via WeChat Official Account',
|
||||
DONATE_FEEDBACK_FEATURE: 'Join our beta testing group, contact via WeChat official account',
|
||||
|
||||
PAYMENT_WECHAT: 'WeChat Pay',
|
||||
PAYMENT_WECHAT: 'WeChat pay',
|
||||
PAYMENT_ALIPAY: 'Alipay',
|
||||
PAYMENT_KOFI: 'Ko-fi',
|
||||
CURRENCY_UNIT: 'CNY'
|
||||
};
|
||||
|
||||
const componentTranslation: ComponentTranslation = {
|
||||
// ChapterTree
|
||||
NEW_FILE: 'New File',
|
||||
NEW_FOLDER: 'New Folder',
|
||||
NEW_FILE: 'New file',
|
||||
NEW_FOLDER: 'New folder',
|
||||
ENTER_FILE_NAME: 'Enter file name',
|
||||
ENTER_FOLDER_NAME: 'Enter folder name',
|
||||
OPEN_IN_NEW_TAB: 'Open in New Tab',
|
||||
OPEN_IN_NEW_PANE: 'Open in New Pane',
|
||||
MARK_AS_COMPLETE: 'Mark as Complete',
|
||||
MARK_AS_DRAFT: 'Mark as Draft',
|
||||
EXCLUDE_FROM_STATS: 'Exclude from Stats',
|
||||
INCLUDE_IN_STATS: 'Include in Stats',
|
||||
CREATE_COPY: 'Create Copy',
|
||||
COPY_NAME: '{name} Copy',
|
||||
OPEN_IN_NEW_TAB: 'Open in new tab',
|
||||
OPEN_IN_NEW_PANE: 'Open in new pane',
|
||||
MARK_AS_COMPLETE: 'Mark as complete',
|
||||
MARK_AS_DRAFT: 'Mark as draft',
|
||||
EXCLUDE_FROM_STATS: 'Exclude from stats',
|
||||
INCLUDE_IN_STATS: 'Include in stats',
|
||||
CREATE_COPY: 'Create copy',
|
||||
COPY_NAME: '{name} copy',
|
||||
RENAME: 'Rename',
|
||||
DELETE: 'Delete',
|
||||
DELETE_FILE_TITLE: 'Delete File',
|
||||
DELETE_FILE_TITLE: 'Delete file',
|
||||
DELETE_FILE_DESC: 'Are you sure you want to delete "{title}"?\nIt will be moved to system trash.',
|
||||
DELETE_FOLDER_TITLE: 'Delete Folder',
|
||||
DELETE_FOLDER_TITLE: 'Delete folder',
|
||||
DELETE_FOLDER_DESC: 'Are you sure you want to delete folder "{title}" and all its contents?\nThey will be moved to system trash.',
|
||||
COPY_SUCCESS: 'Copy created successfully',
|
||||
COPY_FAILED: 'Failed to create copy: {error}',
|
||||
|
|
@ -408,14 +411,14 @@ const componentTranslation: ComponentTranslation = {
|
|||
ENTER_NEW_NAME: 'Enter new name',
|
||||
|
||||
// FocusToolView
|
||||
FOCUS_MODE: 'Focus Mode',
|
||||
START_FOCUS: 'Start Focus',
|
||||
FOCUS_MODE: 'Focus mode',
|
||||
START_FOCUS: 'Start focus',
|
||||
EXIT: 'Exit',
|
||||
FOCUS_SESSIONS: 'Focus Sessions',
|
||||
FOCUS_SESSIONS: 'Focus sessions',
|
||||
INTERRUPTIONS: 'Interruptions',
|
||||
CURRENT_WORDS: 'Current Words',
|
||||
WORD_GOAL: 'Word Goal',
|
||||
TOTAL_FOCUS_WORDS: 'Total Focus Words',
|
||||
CURRENT_WORDS: 'Current words',
|
||||
WORD_GOAL: 'Word goal',
|
||||
TOTAL_FOCUS_WORDS: 'Total focus words',
|
||||
PAUSE: 'Pause',
|
||||
RESUME: 'Resume',
|
||||
END: 'End',
|
||||
|
|
@ -424,14 +427,14 @@ const componentTranslation: ComponentTranslation = {
|
|||
ENCOURAGEMENT_3: '🌟 Perfect! Goal reached! Maintain this enthusiasm!',
|
||||
ENCOURAGEMENT_4: '🎯 Goal achieved! Your persistence is admirable!',
|
||||
ENCOURAGEMENT_5: '💪 Outstanding performance! Goal completed! Keep going!',
|
||||
EXIT_FOCUS: 'Exit Focus',
|
||||
EXIT_FOCUS: 'Exit focus',
|
||||
EXIT_FOCUS_DESC: 'Are you sure you want to exit? Current focus progress will be lost.',
|
||||
END_FOCUS: 'End Focus',
|
||||
END_FOCUS: 'End focus',
|
||||
END_FOCUS_DESC: 'Are you sure you want to end focus? This will count as an interruption.',
|
||||
FOCUSING: 'Focusing',
|
||||
PAUSED: 'Paused',
|
||||
BREAK_TIME: 'Break Time',
|
||||
READY_TO_START: 'Ready to Start'
|
||||
BREAK_TIME: 'Break time',
|
||||
READY_TO_START: 'Ready to start'
|
||||
};
|
||||
// 合并所有翻译
|
||||
const translation: Translation = {
|
||||
|
|
|
|||
|
|
@ -137,10 +137,10 @@ const toolViewTranslation: ToolViewTranslation = {
|
|||
// 设置面板翻译
|
||||
const settingsTranslation: SettingsTranslation = {
|
||||
|
||||
SETTINGS_TITLE: 'Book Smith 设置',
|
||||
BASIC_SETTINGS: '基本设置',
|
||||
TEMPLATE_SETTINGS: '模板设置',
|
||||
WRITING_TOOLS_SETTINGS: '写作工具箱设置',
|
||||
PLUGIN_NAME: 'Book Smith',
|
||||
BASIC_OPTIONS: '基本选项',
|
||||
TEMPLATE_OPTIONS: '模板选项',
|
||||
WRITING_TOOLS_OPTIONS: '写作工具箱选项',
|
||||
|
||||
// 基本设置
|
||||
LANGUAGE_SETTING: '语言',
|
||||
|
|
@ -163,7 +163,7 @@ const settingsTranslation: SettingsTranslation = {
|
|||
DELETE_TEMPLATE_DESC: '确定要删除此模板吗?删除后无法恢复。',
|
||||
|
||||
// 写作工具箱设置
|
||||
FOCUS_MODE_SETTINGS: '专注模式设置',
|
||||
FOCUS_MODE_OPTIONS: '专注模式选项',
|
||||
FOCUS_DURATION: '专注时长',
|
||||
FOCUS_DURATION_DESC: '每个专注周期的工作时长(分钟)',
|
||||
BREAK_DURATION: '间隔时长',
|
||||
|
|
|
|||
|
|
@ -16,9 +16,7 @@ export default class BookSmithPlugin extends Plugin {
|
|||
statsManager: BookStatsManager;
|
||||
|
||||
async onload() {
|
||||
await this.loadSettings();
|
||||
i18n.setLocale(this.settings.language);
|
||||
|
||||
await this.loadSettings();
|
||||
// 初始化所有管理器
|
||||
this.bookManager = new BookManager(this.app, this.settings);
|
||||
this.statsManager = new BookStatsManager(this.app, this, this.bookManager);
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { Notice } from "obsidian";
|
||||
import { BaseModal } from "./BaseModal";
|
||||
import { WechatQRCode } from '../assets/wechat-qrcode';
|
||||
import { AlipayQRCode } from '../assets/alipay-qrcode';
|
||||
import { i18n } from '../i18n/i18n';
|
||||
import { kofiImage } from '../assets/kofi3';
|
||||
|
||||
export class DonateModal extends BaseModal {
|
||||
private selectedAmount: number = 6;
|
||||
|
|
@ -107,7 +107,7 @@ export class DonateModal extends BaseModal {
|
|||
});
|
||||
kofiLink.createEl('img', {
|
||||
attr: {
|
||||
src: 'https://storage.ko-fi.com/cdn/kofi3.png?v=3',
|
||||
src: kofiImage,
|
||||
alt: i18n.t('PAYMENT_KOFI'),
|
||||
style: 'height: 50px;'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,33 +16,12 @@ export class BookSmithSettingTab extends PluginSettingTab {
|
|||
private createSection(containerEl: HTMLElement, title: string, renderContent: (contentEl: HTMLElement) => void) {
|
||||
const section = containerEl.createDiv('settings-section');
|
||||
const header = section.createDiv('settings-section-header');
|
||||
new Setting(header).setName(title).setHeading();
|
||||
|
||||
const toggle = header.createSpan('settings-section-toggle');
|
||||
setIcon(toggle, 'chevron-right');
|
||||
|
||||
header.createEl('h4', { text: title });
|
||||
|
||||
|
||||
const content = section.createDiv('settings-section-content');
|
||||
renderContent(content);
|
||||
|
||||
header.addEventListener('click', () => {
|
||||
const isExpanded = !section.hasClass('is-expanded');
|
||||
section.toggleClass('is-expanded', isExpanded);
|
||||
setIcon(toggle, isExpanded ? 'chevron-down' : 'chevron-right');
|
||||
if (isExpanded) {
|
||||
this.expandedSections.add(title);
|
||||
} else {
|
||||
this.expandedSections.delete(title);
|
||||
}
|
||||
});
|
||||
|
||||
// 根据保存的状态或默认第一个展开
|
||||
if (this.expandedSections.has(title) || (!containerEl.querySelector('.settings-section'))) {
|
||||
section.addClass('is-expanded');
|
||||
setIcon(toggle, 'chevron-down');
|
||||
this.expandedSections.add(title);
|
||||
}
|
||||
|
||||
|
||||
return section;
|
||||
}
|
||||
|
||||
|
|
@ -50,37 +29,19 @@ export class BookSmithSettingTab extends PluginSettingTab {
|
|||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
containerEl.addClass('book-smith-settings');
|
||||
|
||||
containerEl.createEl('h2', { text: i18n.t('SETTINGS_TITLE') });
|
||||
|
||||
// 基本设置
|
||||
this.createSection(containerEl, i18n.t('BASIC_SETTINGS'), el => this.renderBasicSettings(el));
|
||||
this.createSection(containerEl, i18n.t('BASIC_OPTIONS'), el => this.renderBasicSettings(el));
|
||||
|
||||
// 模板设置
|
||||
this.createSection(containerEl, i18n.t('TEMPLATE_SETTINGS'), el => this.renderTemplateSettings(el));
|
||||
this.createSection(containerEl, i18n.t('TEMPLATE_OPTIONS'), el => this.renderTemplateSettings(el));
|
||||
|
||||
// 写作工具箱设置
|
||||
this.createSection(containerEl, i18n.t('WRITING_TOOLS_SETTINGS'), el => this.renderWritingToolsSettings(el));
|
||||
this.createSection(containerEl, i18n.t('WRITING_TOOLS_OPTIONS'), el => this.renderWritingToolsSettings(el));
|
||||
}
|
||||
|
||||
private renderBasicSettings(containerEl: HTMLElement): void {
|
||||
// 添加语言选择
|
||||
new Setting(containerEl)
|
||||
.setName(i18n.t('LANGUAGE_SETTING'))
|
||||
.setDesc(i18n.t('LANGUAGE_DESC'))
|
||||
.addDropdown(dropdown => {
|
||||
dropdown
|
||||
.addOption('zh-CN', '简体中文')
|
||||
.addOption('en', 'English')
|
||||
.setValue(this.plugin.settings.language)
|
||||
.onChange(async (value: Locale) => {
|
||||
this.plugin.settings.language = value;
|
||||
i18n.setLocale(value);
|
||||
await this.plugin.saveSettings();
|
||||
this.display();
|
||||
});
|
||||
});
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName(i18n.t('DEFAULT_AUTHOR'))
|
||||
.setDesc(i18n.t('DEFAULT_AUTHOR_DESC'))
|
||||
|
|
@ -124,8 +85,8 @@ export class BookSmithSettingTab extends PluginSettingTab {
|
|||
|
||||
// 模板列表
|
||||
const templateList = containerEl.createDiv('template-list');
|
||||
templateList.createEl('h4', { text: i18n.t('BOOK_TEMPLATES') });
|
||||
|
||||
|
||||
new Setting(templateList).setName(i18n.t('BOOK_TEMPLATES')).setHeading();
|
||||
// 渲染其他自定义模板
|
||||
Object.entries(this.plugin.settings.templates.custom)
|
||||
.filter(([key]) => key !== 'default')
|
||||
|
|
@ -179,8 +140,8 @@ export class BookSmithSettingTab extends PluginSettingTab {
|
|||
private renderWritingToolsSettings(containerEl: HTMLElement): void {
|
||||
// 专注模式设置
|
||||
const focusSection = containerEl.createDiv();
|
||||
focusSection.createEl('h4', { text: i18n.t('FOCUS_MODE_SETTINGS') });
|
||||
|
||||
new Setting(focusSection).setName(i18n.t('FOCUS_MODE_OPTIONS')).setHeading();
|
||||
|
||||
new Setting(focusSection)
|
||||
.setName(i18n.t('FOCUS_DURATION'))
|
||||
.setDesc(i18n.t('FOCUS_DURATION_DESC'))
|
||||
|
|
|
|||
|
|
@ -1,9 +1,7 @@
|
|||
import { defaultTemplate } from '../templates/default';
|
||||
import { ChapterTree } from '../types/book';
|
||||
import { Locale } from '../i18n/i18n';
|
||||
export interface BookSmithSettings {
|
||||
// 基础配置
|
||||
language: Locale;
|
||||
defaultAuthor: string;
|
||||
defaultBookPath: string;
|
||||
lastBookId?: string;
|
||||
|
|
@ -46,7 +44,6 @@ export interface BookSmithSettings {
|
|||
}
|
||||
|
||||
export const DEFAULT_SETTINGS: BookSmithSettings = {
|
||||
language: 'zh-CN', // 默认中文
|
||||
defaultAuthor: 'Yeban',
|
||||
defaultBookPath: 'books',
|
||||
lastBookId: '',
|
||||
|
|
|
|||
|
|
@ -1,18 +1,3 @@
|
|||
/* 整体容器 */
|
||||
.book-smith-settings {
|
||||
max-width: 800px;
|
||||
margin: 0 auto;
|
||||
padding: 10px 20px;
|
||||
}
|
||||
|
||||
/* 标题样式 */
|
||||
.book-smith-settings h2 {
|
||||
margin: 20px 5px;
|
||||
padding-bottom: 1rem;
|
||||
border-bottom: 2px solid var(--background-modifier-border);
|
||||
font-size: 1.4em;
|
||||
}
|
||||
|
||||
/* 通用设置区块样式 */
|
||||
.book-smith-settings .settings-section {
|
||||
margin-bottom: 1.5rem;
|
||||
|
|
@ -24,36 +9,16 @@
|
|||
.book-smith-settings .settings-section-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
padding: 1rem;
|
||||
padding: 1rem 1rem 0 1rem;
|
||||
background-color: var(--background-secondary);
|
||||
transition: background-color 0.2s ease;
|
||||
}
|
||||
|
||||
.book-smith-settings .settings-section-header:hover {
|
||||
background-color: var(--background-secondary-alt);
|
||||
}
|
||||
|
||||
.book-smith-settings .settings-section-header h4 {
|
||||
margin: 0;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.book-smith-settings .settings-section-toggle {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
|
||||
.book-smith-settings .settings-section-content {
|
||||
display: none;
|
||||
padding: 1rem;
|
||||
padding: 0 40px;
|
||||
background-color: var(--background-primary);
|
||||
}
|
||||
|
||||
.book-smith-settings .settings-section.is-expanded .settings-section-content {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* 模板设置特有样式 */
|
||||
.book-smith-settings .template-list {
|
||||
padding: 10px 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue