add i18n step1
This commit is contained in:
parent
34d553a890
commit
79e3db6078
23 changed files with 2309 additions and 450 deletions
|
|
@ -6,6 +6,9 @@ import { notification } from './notifications.js';
|
|||
let caddyStatusInterval;
|
||||
const POLLING_INTERVAL = 5000;
|
||||
|
||||
// 将 t 函数保存在模块作用域内
|
||||
let translate;
|
||||
|
||||
const DOMElements = {
|
||||
caddyStatusIndicator: document.getElementById('caddy-status-indicator'),
|
||||
caddyActionButtonContainer: document.getElementById('caddy-action-button-container'),
|
||||
|
|
@ -24,23 +27,31 @@ function updateCaddyStatusView(status) {
|
|||
const text = DOMElements.caddyStatusIndicator.querySelector('.status-text');
|
||||
const buttonContainer = DOMElements.caddyActionButtonContainer;
|
||||
|
||||
if(!dot || !text || !buttonContainer) return; // 如果元素不存在,则不执行
|
||||
if(!dot || !text || !buttonContainer) return;
|
||||
|
||||
dot.className = 'status-dot';
|
||||
buttonContainer.innerHTML = '';
|
||||
let statusText, dotClass;
|
||||
switch (status) {
|
||||
case 'running':
|
||||
statusText = '运行中'; dotClass = 'running';
|
||||
buttonContainer.appendChild(createButton('重载配置', 'btn-warning', handleReloadCaddy));
|
||||
buttonContainer.appendChild(createButton('停止 Caddy', 'btn-danger', handleStopCaddy));
|
||||
statusText = translate('status.running');
|
||||
dotClass = 'running';
|
||||
buttonContainer.appendChild(createButton(translate('caddy.reload_btn'), 'btn-warning', handleReloadCaddy));
|
||||
buttonContainer.appendChild(createButton(translate('caddy.stop_btn'), 'btn-danger', handleStopCaddy));
|
||||
break;
|
||||
case 'stopped':
|
||||
statusText = '已停止'; dotClass = 'stopped';
|
||||
buttonContainer.appendChild(createButton('启动 Caddy', 'btn-success', handleStartCaddy));
|
||||
statusText = translate('status.stopped');
|
||||
dotClass = 'stopped';
|
||||
buttonContainer.appendChild(createButton(translate('caddy.start_btn'), 'btn-success', handleStartCaddy));
|
||||
break;
|
||||
case 'checking':
|
||||
statusText = translate('status.checking');
|
||||
dotClass = 'checking';
|
||||
break;
|
||||
default:
|
||||
statusText = translate('status.unknown');
|
||||
dotClass = 'error';
|
||||
break;
|
||||
case 'checking': statusText = '检查中...'; dotClass = 'checking'; break;
|
||||
default: statusText = '状态未知'; dotClass = 'error'; break;
|
||||
}
|
||||
text.textContent = statusText;
|
||||
dot.classList.add(dotClass);
|
||||
|
|
@ -59,35 +70,38 @@ async function checkCaddyStatus() {
|
|||
async function handleStartCaddy() {
|
||||
try {
|
||||
const result = await api.post('/caddy/run');
|
||||
notification.toast(result.message || '启动命令已发送。', 'success');
|
||||
notification.toast(result.message || translate('toasts.start_cmd_sent'), 'success');
|
||||
setTimeout(checkCaddyStatus, 500);
|
||||
} catch (error) { notification.toast(`启动失败: ${error.message}`, 'error'); }
|
||||
} catch (error) { notification.toast(translate('toasts.start_error', { error: error.message }), 'error'); }
|
||||
}
|
||||
|
||||
async function handleStopCaddy() {
|
||||
if (!await notification.confirm('您确定要停止 Caddy 实例吗?')) return;
|
||||
if (!await notification.confirm(translate('dialogs.stop_caddy_msg'))) return;
|
||||
try {
|
||||
const result = await api.post('/caddy/stop');
|
||||
notification.toast(result.message || '停止命令已发送。', 'info');
|
||||
notification.toast(result.message || translate('toasts.stop_cmd_sent'), 'info');
|
||||
setTimeout(checkCaddyStatus, 500);
|
||||
} catch(error) { notification.toast(`操作失败: ${error.message}`, 'error'); }
|
||||
} catch(error) { notification.toast(translate('toasts.action_error', { error: error.message }), 'error'); }
|
||||
}
|
||||
|
||||
async function handleReloadCaddy() {
|
||||
if (!await notification.confirm('确定要重载 Caddy 配置吗?')) return;
|
||||
if (!await notification.confirm(translate('dialogs.reload_caddy_msg'))) return;
|
||||
try {
|
||||
const result = await api.post('/caddy/restart');
|
||||
notification.toast(result.message || '重载命令已发送。', 'success');
|
||||
notification.toast(result.message || translate('toasts.reload_sent'), 'success');
|
||||
setTimeout(checkCaddyStatus, 500);
|
||||
} catch(error) { notification.toast(`重载失败: ${error.message}`, 'error'); }
|
||||
} catch(error) { notification.toast(translate('toasts.reload_error', { error: error.message }), 'error'); }
|
||||
}
|
||||
|
||||
export function initCaddyStatus() {
|
||||
// 确保通知模块已经初始化
|
||||
// initCaddyStatus 现在接收 t 函数作为参数
|
||||
export function initCaddyStatus(translator) {
|
||||
// 保存翻译函数以供模块内其他函数使用
|
||||
translate = translator;
|
||||
|
||||
const dialogContainer = document.getElementById('dialog-container');
|
||||
const toastContainer = document.getElementById('toast-container');
|
||||
if (dialogContainer && toastContainer) {
|
||||
notification.init(toastContainer, dialogContainer);
|
||||
notification.init(toastContainer, dialogContainer, null, translate); // 将 t 函数传递给通知模块
|
||||
}
|
||||
|
||||
checkCaddyStatus();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue