Phase 6 구현: 커스텀 명령어 + i18n (ko/en)

- CustomInstructionService: 프리셋 5개 (번역/요약/전문리라이트/코드설명/자유프롬프트)
- 커스텀 명령어 CRUD + 프리셋 보호 (삭제 불가)
- CommandsPage: 명령어 목록 + 추가/편집 다이얼로그
- i18n: ko.json/en.json 리소스 파일, t() 함수, React 컨텍스트
- IPC: instruction 핸들러 6개
- AppLayout: Commands 네비게이션 추가
This commit is contained in:
Yun Chan 2026-04-05 02:53:32 +09:00
parent 5ccbf85a65
commit d940c5020e
11 changed files with 701 additions and 5 deletions

View file

@ -8,6 +8,7 @@ import { getVoiceModeService } from './services/VoiceModeService'
import { getLocalLLMService } from './services/LocalLLMService'
import { getHistoryService } from './services/HistoryService'
import { getTextInsertService } from './services/TextInsertService'
import { getCustomInstructionService } from './services/CustomInstructionService'
import { initDatabase } from './db'
import {
createMainWindow,
@ -41,6 +42,7 @@ export async function bootstrap(): Promise<void> {
{ name: 'create-windows', critical: true, fn: createWindows },
{ name: 'tray', critical: false, fn: initTray },
{ name: 'ipc-handlers', critical: true, fn: initIpcHandlers },
{ name: 'custom-instructions', critical: false, fn: initCustomInstructions },
{ name: 'popup-preload', critical: false, fn: initPopupWindows },
{ name: 'hotkey', critical: false, fn: initHotkey },
{ name: 'voice-mode', critical: false, fn: initVoiceMode },
@ -95,6 +97,10 @@ async function initHotkey(): Promise<void> {
hotkey.start()
}
async function initCustomInstructions(): Promise<void> {
getCustomInstructionService().initialize()
}
async function initPopupWindows(): Promise<void> {
preloadPopupWindows()
setupHistoryPopupIPC()