diff --git a/public/assets/app.js b/public/assets/app.js
index ef499fa..b818df9 100644
--- a/public/assets/app.js
+++ b/public/assets/app.js
@@ -250,6 +250,8 @@
settingsSaveFailed: 'settings save failed',
settingsResetConfirm: 'Reset all Control settings to defaults?',
settingsDefault: 'default',
+ settingsOn: 'on',
+ settingsOff: 'off',
touchDisplaySettings: 'Touch Display',
touchDisplayStatus: 'Status',
touchDisplayDetected: 'Detected',
@@ -270,6 +272,7 @@
touchSizeX: 'Touch X size',
touchSizeY: 'Touch Y size',
touchDisplaySave: 'Save display boot settings',
+ touchDisplaySaveConfirm: 'Save display boot settings? Reboot is required after saving.',
touchDisplaySaved: 'Display settings saved. Reboot is required.',
touchDisplayNoChange: 'Display settings already match.',
rebootButton: 'Reboot',
@@ -281,6 +284,8 @@
noWifiClients: 'No connected DHCP clients',
noProcessActivity: 'No process activity',
noCause: 'No candidate',
+ wifiValueAlias: 'DB saved name',
+ wifiValueGenerated: 'Temporary MAC-based name',
recordedReason: 'Recorded reason',
instantChange: 'instant change',
tempHigher: 'temperature above average',
@@ -304,6 +309,7 @@
minuteAgo: ({ minutes }) => `${minutes}m ago`,
unnamed: 'Unnamed',
ago: 'ago',
+ recentCountUnit: 'x',
refreshFailed: 'refresh failed',
applyingFan: 'Applying fan policy...',
fanUpdated: 'Fan updated',
@@ -467,6 +473,8 @@
settingsSaveFailed: '설정 저장 실패',
settingsResetConfirm: 'Control 설정을 모두 기본값으로 되돌릴까요?',
settingsDefault: '기본값',
+ settingsOn: '켜기',
+ settingsOff: '끄기',
touchDisplaySettings: '터치 디스플레이',
touchDisplayStatus: '상태',
touchDisplayDetected: '인식',
@@ -487,6 +495,7 @@
touchSizeX: '터치 X 크기',
touchSizeY: '터치 Y 크기',
touchDisplaySave: '디스플레이 부팅 설정 저장',
+ touchDisplaySaveConfirm: '디스플레이 부팅 설정을 저장할까요? 저장 후 재부팅해야 적용됩니다.',
touchDisplaySaved: '디스플레이 설정을 저장했습니다. 재부팅이 필요합니다.',
touchDisplayNoChange: '디스플레이 설정이 이미 동일합니다.',
rebootButton: '재부팅',
@@ -498,6 +507,8 @@
noWifiClients: '연결된 DHCP 클라이언트 없음',
noProcessActivity: '프로세스 활동 없음',
noCause: '원인 후보 없음',
+ wifiValueAlias: 'DB 저장 이름',
+ wifiValueGenerated: 'MAC 기반 임시 이름',
recordedReason: '기록된 이유',
instantChange: '순간 변화',
tempHigher: '온도 평균보다 상승',
@@ -521,6 +532,7 @@
minuteAgo: ({ minutes }) => `${minutes}분 전`,
unnamed: '이름 없음',
ago: '전',
+ recentCountUnit: '회',
refreshFailed: '갱신 실패',
applyingFan: '팬 정책 적용 중...',
fanUpdated: '팬 갱신 완료',
@@ -672,8 +684,8 @@
layer.dataset.open = '0';
layer.setAttribute('aria-hidden', 'true');
ok.classList.remove('red');
- ok.textContent = '확인';
- cancel.textContent = '취소';
+ ok.textContent = t('dialogOk');
+ cancel.textContent = t('dialogCancel');
input.value = '';
input.hidden = true;
input.type = 'text';
@@ -817,8 +829,8 @@
- 켜기
- 끄기
+ ${escapeHtml(t('settingsOn'))}
+ ${escapeHtml(t('settingsOff'))}
@@ -907,8 +919,8 @@
return `
- 켜기
- 끄기
+ ${escapeHtml(t('settingsOn'))}
+ ${escapeHtml(t('settingsOff'))}
`;
}
@@ -953,8 +965,8 @@
}
if (item.type === 'boolean') {
return item.default === true || item.default === 1 || item.default === '1' || item.default === 'true'
- ? '켜기'
- : '끄기';
+ ? t('settingsOn')
+ : t('settingsOff');
}
return item.default ?? '';
};
@@ -1087,7 +1099,7 @@
}
async function saveTouchDisplaySettings() {
- if (!await window.customConfirm('디스플레이 부팅 설정을 저장할까요? 저장 후 재부팅해야 적용됩니다.', { title: t('touchDisplaySettings') })) {
+ if (!await window.customConfirm(t('touchDisplaySaveConfirm'), { title: t('touchDisplaySettings') })) {
return;
}
try {
@@ -1580,8 +1592,8 @@
if (!source || source === 'iw' || source === 'lease') return '';
if (source.startsWith('estimated_')) return '';
const labels = {
- alias: 'DB 저장 이름',
- generated: 'MAC 기반 임시 이름',
+ alias: t('wifiValueAlias'),
+ generated: t('wifiValueGenerated'),
};
return labels[source] || source;
}
@@ -1820,7 +1832,7 @@
const percent = Number(eventState.recent_active_percent ?? 0);
const activeText = formatDhms(seconds) || '0s';
- return `${count}${state.lang === 'ko' ? '회' : 'x'} / ${t('recentActive')} ${activeText} (${percent.toFixed(1)}%)`;
+ return `${count}${t('recentCountUnit')} / ${t('recentActive')} ${activeText} (${percent.toFixed(1)}%)`;
}
function eventDurationText(eventState) {