diff --git a/frontend/src/views/SettingsView.vue b/frontend/src/views/SettingsView.vue
index 5658ea5..eb3a95a 100644
--- a/frontend/src/views/SettingsView.vue
+++ b/frontend/src/views/SettingsView.vue
@@ -376,7 +376,7 @@ const eventScriptEnvironmentExamples = [
const eventScriptModeOptions = [
{ label: "璺緞", value: "path" },
- { label: "鑴氭湰鏂囨湰", value: "inline" }
+ { label: "脚本文本", value: "inline" }
];
const uploadTargetOptions = [
@@ -459,12 +459,12 @@ const canSendTestWebhook = computed(() => Boolean(form.webhookUrl.trim()));
const segmentedExamplePath = computed(() => {
const extension = form.defaultOutputFormat === 1 ? "ts" : "mp4";
- return `Douyin/2026/04/15/涓绘挱鍚?221530_origin_涓绘挱鍚峗鐩存挱鏍囬_123456789_00001.${extension}`;
+ return `Douyin/2026/04/15/主播名?221530_origin_主播名峗直播标题_123456789_00001.${extension}`;
});
const nestedSegmentedExamplePath = computed(() => {
const extension = form.defaultOutputFormat === 1 ? "ts" : "mp4";
- return `Douyin/origin/2026/04/15/涓绘挱鍚?221530_origin_涓绘挱鍚峗鐩存挱鏍囬_123456789/221530_origin_涓绘挱鍚峗鐩存挱鏍囬_123456789_00001.${extension}`;
+ return `Douyin/origin/2026/04/15/主播名?221530_origin_主播名峗直播标题_123456789/221530_origin_主播名峗直播标题_123456789_00001.${extension}`;
});
async function loadSettings() {
@@ -492,11 +492,11 @@ const pwdForm = reactive({
const pwdRules = {
currentPassword: [{ required: true, message: "Please enter the current password", trigger: "blur" }],
newPassword: [
- { required: true, message: "璇疯緭鍏ユ柊瀵嗙爜", trigger: "blur" },
+ { required: true, message: "请输入新密码", trigger: "blur" },
{ min: 6, message: "Password must be at least 6 characters", trigger: "blur" }
],
confirmPassword: [
- { required: true, message: "璇峰啀娆¤緭鍏ユ柊瀵嗙爜", trigger: "blur" },
+ { required: true, message: "请再次输入新密码", trigger: "blur" },
{
validator: (_rule: unknown, value: string, callback: (error?: Error) => void) => {
if (value !== pwdForm.newPassword) {
@@ -587,7 +587,7 @@ async function testEventScript(eventType: ScriptEventType) {
} catch (error) {
const result: EventScriptTestResult = {
success: false,
- message: getApiErrorMessage(error, "浜嬩欢鑴氭湰娴嬭瘯澶辫触")
+ message: getApiErrorMessage(error, "事件脚本测试失败")
};
scriptTestResults[eventType] = result;
ElMessage.error(result.message);
@@ -611,7 +611,7 @@ async function testWebhook() {
} catch (error) {
const result: WebhookTestResult = {
success: false,
- message: getApiErrorMessage(error, "Webhook 娴嬭瘯澶辫触")
+ message: getApiErrorMessage(error, "Webhook 测试失败")
};
webhookTestResult.value = result;
ElMessage.error(result.message);
@@ -737,7 +737,7 @@ async function exportSettingsBackup() {
URL.revokeObjectURL(downloadUrl);
ElMessage.success("Settings backup exported.");
} catch (error) {
- ElMessage.error(getApiErrorMessage(error, "绯荤粺璁剧疆瀵煎嚭澶辫触"));
+ ElMessage.error(getApiErrorMessage(error, "系统设置导出失败"));
} finally {
exportingSettings.value = false;
}
@@ -764,7 +764,7 @@ async function importSettingsBackup(event: Event) {
Object.assign(form, data);
ElMessage.success("Settings imported from backup.");
} catch (error) {
- ElMessage.error(getApiErrorMessage(error, "绯荤粺璁剧疆瀵煎叆澶辫触"));
+ ElMessage.error(getApiErrorMessage(error, "系统设置导入失败"));
} finally {
importingSettings.value = false;
}
@@ -963,7 +963,7 @@ watch(
Default quality, output format, segmentation, ffmpeg templates, and network tolerance settings are managed here. 默认画质、输出格式、分段策略、ffmpeg 模板和网络容错等录制基础参数在此集中管理。 Pause recording and MP4 finalization below the threshold, then resume once free space recovers. 当磁盘空闲空间低于阈值时暂停录制和 MP4 转码,空间恢复后自动继续。 Clean up inactive sessions, tasks, results, and logs by retention age, with optional file deletion. 按保留天数清理不活跃的会话、任务、结果和日志,可选删除磁盘文件。 Control scheduled live-status checks and automatic recording starts when a room goes live. 控制定时直播状态检查和直播间开播时自动开始录制。 These proxies only affect platform-side status checks and stream requests, not email, webhook, or file uploads.
- 寮€鎾€佷笅鎾€佸垎鐗囧畬鎴愭椂閮藉彲浠ユ墽琛岃剼鏈€傝剼鏈敮鎸佽矾寰勬ā寮忓拰鐩存帴濉啓鏂囨湰妯″紡锛涙祴璇曟寜閽細鐩存帴鐢ㄥ綋鍓嶈〃鍗曞€兼墽琛岋紝涓嶈姹傚厛淇濆瓨銆? 褰曞埗鍩虹
- 瀛樺偍淇濇姢
- 存储保护
+ 淇濈暀娓呯悊
- 保留清理
+ 鍚庡彴宸℃
- 后台巡检
+ 骞冲彴浠g悊
+ 平台代理
浜嬩欢鑴氭湰
+ 事件脚本
Triggered when the room first enters the online state.
+当直播间首次进入开播状态时触发。
Triggered when the room changes from online back to offline.
+当直播间从开播状态回到离线状态时触发。
Triggered after MP4 finalization completes and the segment status becomes completed.
+当 MP4 转码最终化完成且分段状态变为已完成时触发。
Exception emails inject source, summary, detail, task context values, and optional event script output into the HTML body.