diff --git a/frontend/src/app/layout/MainLayout.tsx b/frontend/src/app/layout/MainLayout.tsx index 115a90e..2ce6dcb 100644 --- a/frontend/src/app/layout/MainLayout.tsx +++ b/frontend/src/app/layout/MainLayout.tsx @@ -282,8 +282,9 @@ export function MainLayout() { {/* 언어 토글 */} @@ -338,7 +339,7 @@ export function MainLayout() {
setPageSearch(e.target.value)} onKeyDown={(e) => { diff --git a/frontend/src/features/admin/AccessControl.tsx b/frontend/src/features/admin/AccessControl.tsx index a8308dc..c9fd72e 100644 --- a/frontend/src/features/admin/AccessControl.tsx +++ b/frontend/src/features/admin/AccessControl.tsx @@ -94,12 +94,12 @@ export function AccessControl() { }, [tab, loadUsers, loadAudit]); const handleUnlock = async (userId: string, acnt: string) => { - if (!confirm(`계정 ${acnt} 잠금을 해제하시겠습니까?`)) return; + if (!confirm(`${acnt} ${tc('dialog.genericRemove')}`)) return; try { await unlockUser(userId); await loadUsers(); } catch (e: unknown) { - alert('실패: ' + (e instanceof Error ? e.message : 'unknown')); + alert(tc('error.operationFailed', { msg: e instanceof Error ? e.message : 'unknown' })); } }; diff --git a/frontend/src/features/admin/DataHub.tsx b/frontend/src/features/admin/DataHub.tsx index 38a57a4..5b3ba0b 100644 --- a/frontend/src/features/admin/DataHub.tsx +++ b/frontend/src/features/admin/DataHub.tsx @@ -341,6 +341,7 @@ type Tab = 'signal' | 'monitor' | 'collect' | 'load' | 'agents'; export function DataHub() { const { t } = useTranslation('admin'); + const { t: tc } = useTranslation('common'); const [tab, setTab] = useState('signal'); const [selectedDate, setSelectedDate] = useState('2026-04-02'); const [statusFilter, setStatusFilter] = useState<'' | 'ON' | 'OFF'>(''); @@ -442,7 +443,7 @@ export function DataHub() {
setSelectedDate(e.target.value)} diff --git a/frontend/src/features/admin/NoticeManagement.tsx b/frontend/src/features/admin/NoticeManagement.tsx index 8d1a5b0..3017241 100644 --- a/frontend/src/features/admin/NoticeManagement.tsx +++ b/frontend/src/features/admin/NoticeManagement.tsx @@ -74,6 +74,7 @@ const ROLE_OPTIONS = ['ADMIN', 'OPERATOR', 'ANALYST', 'FIELD', 'VIEWER']; export function NoticeManagement() { const { t } = useTranslation('admin'); + const { t: tc } = useTranslation('common'); const { hasPermission } = useAuth(); const canCreate = hasPermission('admin:notices', 'CREATE'); const canUpdate = hasPermission('admin:notices', 'UPDATE'); @@ -265,7 +266,7 @@ export function NoticeManagement() { {editingId ? '알림 수정' : '새 알림 등록'} -
@@ -275,7 +276,7 @@ export function NoticeManagement() {
setForm({ ...form, title: e.target.value })} className="w-full bg-surface-overlay border border-slate-700/50 rounded-lg px-3 py-2 text-[11px] text-heading placeholder:text-hint focus:outline-none focus:border-blue-500/50" @@ -287,7 +288,7 @@ export function NoticeManagement() {