- Replaced setReaderConfig with setObjectConfig for saving and retrieving folder paths.
- Updated JSON parsing to directly handle objects instead of strings.
- Enhanced error handling and default value management for better reliability.
- Implemented a new method `handleClearAllStyle` to clear specific style settings from localStorage.
- Added a menu toggle in the SettingPanel for accessing the "Clear all style" action.
- Updated the interface to include `isShowMenu` state for managing menu visibility.
- Styled the new menu for better user interaction.
- Implemented selection actions in PopupMenu component, allowing for translation, dictionary lookup, highlighting, note creation, and text-to-speech functionalities.
- Integrated createHighlight utility for managing highlights and notes.
- Updated PopupOption to utilize the new highlight creation process.
- Enhanced DropdownList to manage select action settings.
- Added new state management for select action in reader settings.
- Removed unused dropdown option for "Nothing".
- Added new translation for "Action after selecting text" in Chinese.
- Introduced a new dropdown option for actions after selecting text, including Translate, Dictionary, Highlight, Take a note, Speak the text, and Nothing.
- Refactored PopupNote and PopupOption components to instantiate NoteSyncManager for syncing notes and highlights.
- Removed deprecated MarkdownSyncService, NoteSyncManager, NotionSyncService, ReadwiseSyncService, and YuqueSyncService implementations to streamline note syncing process.
- Added NoteSyncManager to handle synchronization of notes and highlights to enabled destinations.
- Integrated Notion, Yuque, and Readwise sync services with respective configurations.
- Updated PopupNote and PopupOption components to trigger auto-sync on note/highlight creation.
- Introduced new settings for enabling/disabling sync options for Notion, Yuque, and Readwise in the settings panel.
- Enhanced DataSetting component to manage sync settings and prompt for authentication when enabling sync.
- Added translation for "Enable Discord Rich Presence" and its description in Chinese.
- Introduced a new setting option for enabling Discord Rich Presence in the settings panel.
- Implemented functionality to update Discord Rich Presence with the current book information when reading.
- Added methods to clear Discord Rich Presence when the reader is closed.
- Updated the percentage display in the reading progress to show as a percentage.
- Implemented a script to list locale folders and identify missing translation terms in English.
- Added functionality to copy missing terms from Chinese translations to English.
- Enhanced the script to fill in missing terms for other languages based on the updated English file.
- Created a patch script for nan.h to comment out the inclusion of nan_scriptorigin.h for cross-platform compatibility.
- Added Chinese translations for "About" and "AI service" in translation.json.
- Updated icomoon font files (eot, svg, ttf, woff) to new versions.
- Added new user icon to icomoon.svg and updated style.css to include new icon styles.
- Modified SettingDialog component to include "About" and "AI service" in the sidebar.
- Changed "Side by side translation" to "Bilingual translation" in translation files and dropdown list for consistency.
- Refactored handleBatchTranslation method to accept an interval parameter for controlling translation frequency.
- Updated logging for batch translation to improve clarity.
- Removed deprecated convertLangMap and replaced it with KookitConfig.ConvertLangMap for language conversion.
- Updated ThemeList and Viewer components to pass currentBook.key to StyleUtil.addDefaultCss.
- Modified StyleUtil to accept bookKey parameter in addDefaultCss and getDefaultCss methods for dynamic CSS application based on the current book.
- Updated translation.json to include new strings for multi-role speech and narrator voice.
- Modified SpeechDialog component to increase height and enable scrolling.
- Enhanced TextToSpeech component to support multi-role speech, allowing different characters to read aloud with distinct voices.
- Implemented voice selection for narrator, male, and female roles in the TextToSpeech component.
- Added getSplitSentence utility function to handle sentence splitting for multi-role analysis.
- Updated interface to include multiRoleEnabled state.
- Introduced `convertLangMap` in `common.ts` to map language codes to their respective names.
- Updated `handleBatchTranslation` in `component.tsx` to utilize the new language mapping for batch translation requests.
- Refactored `getDefaultTransTarget` to use `convertLangMap` instead of a hardcoded language map.
- Added `detectLanguage` function in `reader.ts` to facilitate language detection for text inputs.
- Added a new method `handleBatchTranslation` to manage batch translations when the page changes.
- Introduced a throttle mechanism to limit batch translation requests to every 10 seconds.
- Integrated `getBatchTrans` utility to fetch translations and handle results accordingly.
- Updated the `componentDidUpdate` lifecycle method to call `handleBatchTranslation` on page change events.
- Enhanced error handling in the `getBatchTrans` utility function for better user feedback.
- Added new translation options in the Chinese locale file: "Full text translation", "Side by side translation", "Disable", and "Only translation".
- Integrated full translation mode into various components including ActionDialog, ImportLocal, and Viewer.
- Updated DropdownList to include full translation mode settings with options for disabling, side by side translation, and only translation.
- Enhanced state management in DropdownList and its interface to accommodate the new full translation mode.
- Updated constants for dropdown list to include full translation options.