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

@ -15,21 +15,24 @@ import {
import DashboardIcon from '@mui/icons-material/Dashboard'
import HistoryIcon from '@mui/icons-material/History'
import MenuBookIcon from '@mui/icons-material/MenuBook'
import ExtensionIcon from '@mui/icons-material/Extension'
import SettingsIcon from '@mui/icons-material/Settings'
import { DashboardPage } from '../pages/DashboardPage'
import { HistoryPage } from '../pages/HistoryPage'
import { DictionaryPage } from '../pages/DictionaryPage'
import { CommandsPage } from '../pages/CommandsPage'
import { SettingsModal } from './SettingsModal'
import { StatusBar } from './StatusBar'
type Route = 'dashboard' | 'history' | 'dictionary'
type Route = 'dashboard' | 'history' | 'dictionary' | 'commands'
const DRAWER_WIDTH = 240
const NAV_ITEMS: Array<{ route: Route; label: string; icon: React.ReactElement }> = [
{ route: 'dashboard', label: 'Dashboard', icon: <DashboardIcon /> },
{ route: 'history', label: 'History', icon: <HistoryIcon /> },
{ route: 'dictionary', label: 'Dictionary', icon: <MenuBookIcon /> }
{ route: 'dictionary', label: 'Dictionary', icon: <MenuBookIcon /> },
{ route: 'commands', label: 'Commands', icon: <ExtensionIcon /> }
]
export function AppLayout(): React.ReactElement {
@ -102,6 +105,7 @@ export function AppLayout(): React.ReactElement {
{currentRoute === 'dashboard' && <DashboardPage />}
{currentRoute === 'history' && <HistoryPage />}
{currentRoute === 'dictionary' && <DictionaryPage />}
{currentRoute === 'commands' && <CommandsPage />}
</Box>
</Box>
<StatusBar />