화면 번역 키 누락 보강

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