화면 번역 키 누락 보강
This commit is contained in:
+24
-12
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user