diff --git a/webroot/index.html b/webroot/index.html index 39a25a0..7016dbe 100644 --- a/webroot/index.html +++ b/webroot/index.html @@ -22,7 +22,7 @@ - + @@ -107,33 +107,18 @@
Actions
- -
+ +
-
Monitor (32 bit)
-
Unknown
+
Monitor
+
Unknown
-
Stop
-
Start
-
Pause
-
-
-
- -
-
-
Monitor (64 bit)
-
Unknown
-
- -
-
-
Stop
-
Start
-
Pause
+
Stop
+
Start
+
Pause
diff --git a/webroot/js/daemonActions.js b/webroot/js/daemonActions.js deleted file mode 100644 index 3828a4b..0000000 --- a/webroot/js/daemonActions.js +++ /dev/null @@ -1,37 +0,0 @@ -import { exec } from './kernelsu.js' - -const daemon64_start = document.getElementById('daemon64_start_button') -const daemon64_stop = document.getElementById('daemon64_stop_button') -const daemon64_pause = document.getElementById('daemon64_pause_button') - -if (daemon64_start) { - daemon64_start.addEventListener('click', () => { - exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 ctl start') - }) - - daemon64_stop.addEventListener('click', () => { - exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 ctl exit') - }) - - daemon64_pause.addEventListener('click', () => { - exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 ctl stop') - }) -} - -const daemon32_start = document.getElementById('daemon32_start_button') -const daemon32_stop = document.getElementById('daemon32_stop_button') -const daemon32_pause = document.getElementById('daemon32_pause_button') - -if (daemon32_start) { - daemon32_start.addEventListener('click', () => { - exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace32 ctl start') - }) - - daemon32_stop.addEventListener('click', () => { - exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace32 ctl exit') - }) - - daemon32_pause.addEventListener('click', () => { - exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace32 ctl stop') - }) -} \ No newline at end of file diff --git a/webroot/js/main.js b/webroot/js/main.js index de1b56f..d53bf90 100644 --- a/webroot/js/main.js +++ b/webroot/js/main.js @@ -49,8 +49,7 @@ export function setErrorData(errorLog) { const zygote64_div = document.getElementById('zygote64') const zygote32_div = document.getElementById('zygote32') - const daemon64_div = document.getElementById('daemon64') - const daemon32_div = document.getElementById('daemon32') + const monitor_status = document.getElementById('monitor_status') const zygote32_status_div = document.getElementById('zygote32_status') const zygote64_status_div = document.getElementById('zygote64_status') @@ -69,12 +68,10 @@ export function setErrorData(errorLog) { if (!has64BitSupport) { zygote64_div.style.display = 'none' - daemon64_div.style.display = 'none' } if (!has32BitSupport) { zygote32_div.style.display = 'none' - daemon32_div.style.display = 'none' } const catCmd = await exec('/system/bin/cat /data/adb/rezygisk/status') @@ -82,11 +79,19 @@ export function setErrorData(errorLog) { if (catCmd.errno === 0) { const [ Version, Tracing, Daemon64, Zygote64 ] = catCmd.stdout.split('\n') let hasOffset = false - /* TODO: Show the tracing state */ /* TODO: Show if daemon is running */ code_version.innerHTML = Version.split(': ')[1] + const tracingState = Tracing.split(': ')[1].split(' ')[0] + switch (tracingState) { + case '1': monitor_status.innerHTML = translations.page.actions.status.tracing; break; + case '2': monitor_status.innerHTML = translations.page.actions.status.stopping; break; + case '3': monitor_status.innerHTML = translations.page.actions.status.stopped; break; + case '4': monitor_status.innerHTML = translations.page.actions.status.exiting; break; + default: monitor_status.innerHTML = translations.page.actions.status.unknown; + } + if (has64BitSupport && Daemon64 && Daemon64.startsWith('Daemon64:')) { hasOffset = true @@ -107,11 +112,19 @@ export function setErrorData(errorLog) { /* TODO: add handling for unknown status */ if (zygote64_injection_status === 'injected') { zygote64_status_div.innerHTML = translations.page.home.info.zygote.injected - } else { + } else if (zygote64_injection_status === 'not injected') { zygote64_status_div.innerHTML = translations.page.home.info.zygote.notInjected + zygote64_status = UNEXPECTED_FAIL + } else { + zygote64_status_div.innerHTML = translations.page.home.info.zygote.unknown + zygote64_status = UNEXPECTED_FAIL } + } else if (has64BitSupport && (!Daemon64 || !Daemon64.startsWith('Daemon64:'))) { + zygote64_div.style.display = 'none' + + zygote64_status = UNEXPECTED_FAIL } if (has32BitSupport) { @@ -144,14 +157,17 @@ export function setErrorData(errorLog) { if (zygote32_injection_status === 'injected') { zygote32_status_div.innerHTML = translations.page.home.info.zygote.injected - } else { + } else if (zygote32_injection_status === 'not injected') { zygote32_status_div.innerHTML = translations.page.home.info.zygote.notInjected + zygote32_status = UNEXPECTED_FAIL + } else { + zygote32_status_div.innerHTML = translations.page.home.info.zygote.unknown + zygote32_status = UNEXPECTED_FAIL } } else { zygote32_div.style.display = 'none' - daemon32_div.style.display = 'none' zygote32_status = UNEXPECTED_FAIL } diff --git a/webroot/js/monitorActions.js b/webroot/js/monitorActions.js new file mode 100644 index 0000000..791d1db --- /dev/null +++ b/webroot/js/monitorActions.js @@ -0,0 +1,19 @@ +import { exec } from './kernelsu.js' + +const monitor_start = document.getElementById('monitor_start_button') +const monitor_stop = document.getElementById('monitor_stop_button') +const monitor_pause = document.getElementById('monitor_pause_button') + +if (monitor_start) { + monitor_start.addEventListener('click', () => { + exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 ctl start') + }) + + monitor_stop.addEventListener('click', () => { + exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 ctl exit') + }) + + monitor_pause.addEventListener('click', () => { + exec('/data/adb/modules/zygisksu/bin/zygisk-ptrace64 ctl stop') + }) +} diff --git a/webroot/js/translate/action.js b/webroot/js/translate/action.js index 281fca5..2145af7 100644 --- a/webroot/js/translate/action.js +++ b/webroot/js/translate/action.js @@ -1,60 +1,38 @@ export function translateActionPage(old_translations, new_translations) { - /* INFO: action card */ - document.getElementById('panel_actions_header').innerHTML = new_translations.page.action.header + /* INFO: actions card */ + document.getElementById('panel_actions_header').innerHTML = new_translations.page.actions.header - /* INFO: daemon32 small card */ - document.getElementById('daemon32_title').innerHTML = new_translations.page.action.monitor["32"] - if (document.getElementById('daemon32_stop_button')) { /* INFO: Not all devices have 32-bit support */ - document.getElementById('daemon32_stop_button').innerHTML = new_translations.page.action.daemonButton.stop - document.getElementById('daemon32_start_button').innerHTML = new_translations.page.action.daemonButton.start - document.getElementById('daemon32_pause_button').innerHTML = new_translations.page.action.daemonButton.pause + /* INFO: monitor small card */ + document.getElementById('monitor_title').innerHTML = new_translations.page.actions.monitor + if (document.getElementById('monitor_stop_button')) { /* INFO: Not all devices have 32-bit support */ + document.getElementById('monitor_stop_button').innerHTML = new_translations.page.actions.monitorButton.stop + document.getElementById('monitor_start_button').innerHTML = new_translations.page.actions.monitorButton.start + document.getElementById('monitor_pause_button').innerHTML = new_translations.page.actions.monitorButton.pause } - /* INFO: daemon64 small card */ - document.getElementById('daemon64_title').innerHTML = new_translations.page.action.monitor["64"] - if (document.getElementById('daemon64_stop_button')) { /* INFO: Not all devices have 64-bit support */ - document.getElementById('daemon64_stop_button').innerHTML = new_translations.page.action.daemonButton.stop - document.getElementById('daemon64_start_button').innerHTML = new_translations.page.action.daemonButton.start - document.getElementById('daemon64_pause_button').innerHTML = new_translations.page.action.daemonButton.pause - } - - /* INFO: daemon32 status card */ - const daemon32_status = document.getElementById('daemon32_status') - switch (daemon32_status.innerHTML.replace(/(\r\n|\n|\r)/gm, '').trim()) { - case old_translations.page.action.status.unknown: { - daemon32_status.innerHTML = new_translations.page.action.status.unknown + /* INFO: monitor status card */ + const monitor_status = document.getElementById('monitor_status') + switch (monitor_status.innerHTML.replace(/(\r\n|\n|\r)/gm, '').trim()) { + case old_translations.page.actions.status.tracing: { + monitor_status.innerHTML = new_translations.page.actions.status.tracing break } - case old_translations.page.action.status.notWorking: { - daemon32_status.innerHTML = new_translations.page.action.status.notWorking + case old_translations.page.actions.status.stopping: { + monitor_status.innerHTML = new_translations.page.actions.status.stopping break } - case old_translations.page.action.status.ok: { - daemon32_status.innerHTML = new_translations.page.action.status.ok + case old_translations.page.actions.status.stopped: { + monitor_status.innerHTML = new_translations.page.actions.status.stopped break } - } - - /* INFO: daemon64 status card */ - const daemon64_status = document.getElementById('daemon64_status') - switch (daemon64_status.innerHTML.replace(/(\r\n|\n|\r)/gm, '').trim()) { - case old_translations.page.action.status.unknown: { - daemon64_status.innerHTML = new_translations.page.action.status.unknown - - break - } - case old_translations.page.action.status.notWorking: { - daemon64_status.innerHTML = new_translations.page.action.status.notWorking - - break - } - case old_translations.page.action.status.ok: { - daemon64_status.innerHTML = new_translations.page.action.status.ok + case old_translations.page.actions.status.exiting: { + monitor_status.innerHTML = new_translations.page.actions.status.exiting break } + default: monitor_status.innerHTML = new_translations.page.actions.status.unknown } } \ No newline at end of file diff --git a/webroot/lang/de_DE.json b/webroot/lang/de_DE.json index aa8cbec..caf9afd 100644 --- a/webroot/lang/de_DE.json +++ b/webroot/lang/de_DE.json @@ -18,8 +18,8 @@ "copy": "COPY", "clear": "CLEAR ALL LOGS" }, - "header": "Fehlerhistorie", - "placeholder": "Es wurde kein Fehler festgestellt!" + "header": "Error History", + "placeholder": "No error log recorded here!" } }, "page": { @@ -46,21 +46,20 @@ "notAvaliable": "Kein Modul nutzt Zygisk.", "arch": "Architektur: " }, - "action": { + "actions": { "header": "Aktion", - "daemonButton": { + "monitorButton": { "start": "Start", "stop": "Stopp", "pause": "Pause" }, - "monitor": { - "32": "Monitor (32 Bit)", - "64": "Monitor (64 Bit)" - }, + "monitor": "Monitor", "status": { - "unknown": "Unbekannt", - "notWorking": "Funktioniert nicht", - "ok": "Funktioniert" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { diff --git a/webroot/lang/en_US.json b/webroot/lang/en_US.json index 01e1695..3e283ad 100644 --- a/webroot/lang/en_US.json +++ b/webroot/lang/en_US.json @@ -46,21 +46,20 @@ "notAvaliable": "No modules using Zygisk here.", "arch": "Architecture: " }, - "action": { + "actions": { "header": "Action", - "daemonButton": { + "monitorButton": { "start": "Start", "stop": "Stop", "pause": "Pause" }, - "monitor": { - "32": "Monitor (32 bit)", - "64": "Monitor (64 bit)" - }, + "monitor": "Monitor", "status": { - "unknown": "Unknown", - "notWorking": "Not Working", - "ok": "Working" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { @@ -92,4 +91,4 @@ } } } -} \ No newline at end of file +} diff --git a/webroot/lang/ja_JP.json b/webroot/lang/ja_JP.json index 3e60708..0727ebe 100644 --- a/webroot/lang/ja_JP.json +++ b/webroot/lang/ja_JP.json @@ -46,21 +46,20 @@ "notAvaliable": "No modules using Zygisk here.", "arch": "アーキテクチャー: " }, - "action": { + "actions": { "header": "Action", - "daemonButton": { + "monitorButton": { "start": "スタート", "stop": "ストップ", "pause": "Pause" }, - "monitor": { - "32": "Monitor (32 bit)", - "64": "Monitor (64 bit)" - }, + "monitor": "Monitor", "status": { - "unknown": "Unknown", - "notWorking": "Not Working", - "ok": "Working" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { @@ -92,4 +91,4 @@ } } } -} \ No newline at end of file +} diff --git a/webroot/lang/pt_BR.json b/webroot/lang/pt_BR.json index f4d97bc..0a7826b 100644 --- a/webroot/lang/pt_BR.json +++ b/webroot/lang/pt_BR.json @@ -5,7 +5,7 @@ }, "smallPage": { "language": { - "header": "Escolha sua nova língua" + "header": "Escolha o seu novo idioma" }, "theme": { "header": "Escolha o seu novo tema", @@ -15,11 +15,11 @@ }, "errorh": { "buttons": { - "copy": "COPY", - "clear": "CLEAR ALL LOGS" + "copy": "COPIAR", + "clear": "LIMPAR TODOS OS REGISTROS" }, - "header": "Histórico de erros", - "placeholder": "Nenhum erro foi salvo aqui!" + "header": "Histórico de Erros", + "placeholder": "Nenhum registro de erros aqui!" } }, "page": { @@ -33,7 +33,7 @@ }, "info": { "version": "Versão", - "root": "Implementação de root", + "root": "Implementação de Root", "zygote": { "injected": "Injetado", "notInjected": "Não Injetado", @@ -46,21 +46,20 @@ "notAvaliable": "Nenhum módulo está usando Zygisk aqui.", "arch": "Arquitetura: " }, - "action": { + "actions": { "header": "Ações", - "daemonButton": { + "monitorButton": { "start": "Iniciar", "stop": "Parar", "pause": "Pausar" }, - "monitor": { - "32": "Monitor (32 bit)", - "64": "Monitor (64 bit)" - }, + "monitor": "Monitor", "status": { - "unknown": "Desconhecido", - "notWorking": "Não funcionando", - "ok": "Funcionando" + "tracing": "Rastreando", + "stopping": "Parando", + "stopped": "Parado", + "exiting": "Desligando", + "unknown": "Desconhecido" } }, "settings": { @@ -78,8 +77,8 @@ "description": "Mude para sua nova língua" }, "logs": { - "header": "Histórico de erros", - "description": "Veja o histórico de erros inteiro" + "header": "Histórico de Erros", + "description": "Ver o histórico de erros inteiro" }, "credits": { "module": "Desenvolvedora do módulo", @@ -87,7 +86,7 @@ "web": "Desenvolvedor do WebUI" }, "license": { - "module": "Licença do módulo", + "module": "Licença do Módulo", "web": "Licença do WebUI" } } diff --git a/webroot/lang/ro_RO.json b/webroot/lang/ro_RO.json index d2317ba..952efb5 100644 --- a/webroot/lang/ro_RO.json +++ b/webroot/lang/ro_RO.json @@ -18,8 +18,8 @@ "copy": "COPY", "clear": "CLEAR ALL LOGS" }, - "header": "Jurnal erori", - "placeholder": "Nu a fost înregistrat niciun jurnal de erori aici!" + "header": "Error History", + "placeholder": "No error log recorded here!" } }, "page": { @@ -46,21 +46,20 @@ "notAvaliable": "Nu există module care să folosească Zygisk.", "arch": "Arhitectură: " }, - "action": { + "actions": { "header": "Acțiune", - "daemonButton": { + "monitorButton": { "start": "Pornire", "stop": "Oprire", "pause": "Pauză" }, - "monitor": { - "32": "Monitorizare (32 bit)", - "64": "Monitorizare (64 bit)" - }, + "monitor": "Monitorizare", "status": { - "unknown": "Necunoscut", - "notWorking": "Nu funcționează", - "ok": "Funcționează" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { diff --git a/webroot/lang/ru_RU.json b/webroot/lang/ru_RU.json index 7268741..222ec19 100644 --- a/webroot/lang/ru_RU.json +++ b/webroot/lang/ru_RU.json @@ -1,91 +1,84 @@ { - "langName": "Русский (Россия)", + "langName": "Английский (США)", "global": { "unknown": "Неизвестно" }, - "modal": { - "logs": { - "header": "Журнал ошибок", - "placeholder": "Журнал ошибок пуст!" - } - }, "smallPage": { "language": { - "header": "Выберите ваш язык" + "header": "Выберите ваш новый язык" }, "theme": { - "header": "Выберите тему", + "header": "Выберите свою новую тему", "dark": "Темная", "light": "Светлая", - "system": "Системная тема" + "system": "На основе системной темы" }, "errorh": { "buttons": { "copy": "COPY", "clear": "CLEAR ALL LOGS" }, - "header": "Журнал ошибок", - "placeholder": "Журнал ошибок пуст!" + "header": "Error History", + "placeholder": "No error log recorded here!" } }, "page": { "home": { "header": "Главная", "status": { - "unknown": "Неизвестен", + "unknown": "Неизвестно", "notWorking": "Не работает", "ok": "Работает", - "partially": "Работает частично" + "partially": "Частично работает" }, "info": { "version": "Версия", - "root": "Реализация ROOT", + "root": "Root реализация", "zygote": { - "injected": "Инъецирован", - "notInjected": "Не инъецирован", - "unknown": "Неизвестен" + "injected": "Инъецировано", + "notInjected": "Не инъецировано", + "unknown": "Неизвестно" } } }, "modules": { "header": "Модули", - "notAvaliable": "Нет модулей, использующих Zygisk.", + "notAvaliable": "Здесь нет модулей, использующих Zygisk.", "arch": "Архитектура: " }, - "action": { + "actions": { "header": "Действие", - "daemonButton": { - "start": "Старт", + "monitorButton": { + "start": "Начать", "stop": "Стоп", "pause": "Пауза" }, - "monitor": { - "32": "Контроль (32 bit)", - "64": "Контроль (64 bit)" - }, + "monitor": "Мониторинг", "status": { - "unknown": "Неизвестен", - "notWorking": "Не работает", - "ok": "Работает" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { "header": "Настройки", "font": { - "header": "Использовать системный шрифт", - "description": "Эта опция включает системный шрифт в текущем WebUI. ПРИМЕЧАНИЕ: Может быть несовместим с FlipFont" + "header": "Включить системный шрифт", + "description": "Эта опция включит системный шрифт в текущем WebUI. \nПРИМЕЧАНИЕ: Может быть несовместимо с FlipFont" }, "theme": { "header": "Системная тема", - "description": "Использовать системную тему для текущего WebUI" + "description": "Выберите вашу системную тему для текущего WebUI" }, "language": { - "header": "Выбрать язык", - "description": "Выберите ваш язык" + "header": "Сменить язык", + "description": "Измените на ваш новый язык" }, "logs": { - "header": "Журнал ошибок", - "description": "Просмотреть журнал ошибок" + "header": "История ошибок", + "description": "Просмотреть весь журнал ваших ошибок" }, "credits": { "module": "Разработчик модуля", diff --git a/webroot/lang/vi_VN.json b/webroot/lang/vi_VN.json index 356a01c..7cadccf 100644 --- a/webroot/lang/vi_VN.json +++ b/webroot/lang/vi_VN.json @@ -15,11 +15,11 @@ }, "errorh": { "buttons": { - "copy": "SAO CHÉP", - "clear": "XOÁ TOÀN BỘ LOG" + "copy": "COPY", + "clear": "CLEAR ALL LOGS" }, - "header": "Lịch sử lỗi", - "placeholder": "Không có lỗi nào đã được ghi lại ở đây!" + "header": "Error History", + "placeholder": "No error log recorded here!" } }, "page": { @@ -46,21 +46,20 @@ "notAvaliable": "Không có mô-đun nào sử dụng Zygisk ở đây!", "arch": "Cấu trúc: " }, - "action": { + "actions": { "header": "Trình điều khiển", - "daemonButton": { + "monitorButton": { "start": "Chạy", "stop": "Dừng", "pause": "Tạm Dừng" }, - "monitor": { - "32": "Trình chạy (32 bit)", - "64": "Trình chạy (64 bit)" - }, + "monitor": "Trình chạy", "status": { - "unknown": "Không xác định", - "notWorking": "Không hoạt động", - "ok": "Đang hoạt động" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { @@ -92,4 +91,4 @@ } } } -} \ No newline at end of file +} diff --git a/webroot/lang/zh_CN.json b/webroot/lang/zh_CN.json index 81e7b7b..769048d 100644 --- a/webroot/lang/zh_CN.json +++ b/webroot/lang/zh_CN.json @@ -46,21 +46,20 @@ "notAvaliable": "目前没有模块使用Zygisk", "arch": "架构: " }, - "action": { + "actions": { "header": "操作", - "daemonButton": { + "monitorButton": { "start": "启动", "stop": "停止", "pause": "暂停" }, - "monitor": { - "32": "监视器 (32位)", - "64": "监视器 (64位)" - }, + "monitor": "监视器", "status": { - "unknown": "未知", - "notWorking": "未运行", - "ok": "运行中" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { diff --git a/webroot/lang/zh_TW.json b/webroot/lang/zh_TW.json index 3aa7cb5..98bf6f3 100644 --- a/webroot/lang/zh_TW.json +++ b/webroot/lang/zh_TW.json @@ -1,101 +1,94 @@ { - "langName": "繁體中文 (中國台灣)", + "langName": "繁體中文(中國臺灣)", "global": { "unknown": "未知" }, - "modal": { - "logs": { - "header": "Error History", - "placeholder": "No error log recorded here!" - } - }, "smallPage": { "language": { - "header": "選擇你的語言" + "header": "選擇新語言" }, "theme": { - "header": "Choose your new theme", - "dark": "Dark", - "light": "Light", - "system": "System Based" + "header": "選擇新主題", + "dark": "深色", + "light": "淺色", + "system": "基於系統" }, "errorh": { "buttons": { - "copy": "COPY", - "clear": "CLEAR ALL LOGS" + "copy": "複製", + "clear": "清除所有日誌" }, - "header": "Error History", - "placeholder": "No error log recorded here!" + "header": "錯誤歷史記錄", + "placeholder": "這裡沒有記錄錯誤日誌!" } }, "page": { "home": { - "header": "Home", + "header": "首頁", "status": { - "unknown": "Unknown", - "notWorking": "Not Working", - "ok": "Working", - "partially": "Partially Working" + "unknown": "未知", + "notWorking": "未運作", + "ok": "運作中", + "partially": "部分運作" }, "info": { "version": "版本", - "root": "Root實現", + "root": "根實施", "zygote": { - "injected": "已註入", - "notInjected": "注入失敗", + "injected": "已注入", + "notInjected": "未注入", "unknown": "未知" } } }, "modules": { - "header": "模塊", - "notAvaliable": "No modules using Zygisk here.", - "arch": "架構: " + "header": "模組", + "notAvaliable": "此處沒有使用 Zygisk 的模組。", + "arch": "架構: " }, - "action": { - "header": "Action", - "daemonButton": { - "start": "啟動", - "stop": "停止", - "pause": "Pause" - }, - "monitor": { - "32": "Monitor (32 bit)", - "64": "Monitor (64 bit)" + "actions": { + "header": "操作", + "monitorButton": { + "start": "啟用", + "stop": "停用", + "pause": "暫停" }, + "monitor": "監控", "status": { - "unknown": "Unknown", - "notWorking": "Not Working", - "ok": "Working" + "tracing": "Tracing", + "stopping": "Stopping", + "stopped": "Stopped", + "exiting": "Exiting", + "unknown": "Unknown" } }, "settings": { "header": "設定", "font": { - "header": "Enable system font", - "description": "This option will enable system font in current WebUI. NOTE: May not be compatible with FlipFont" + "header": "啟用系統字型", + "description": "此選項將在當前 WebUI 中啟用系統字體。注意:可能不兼容 FlipFont。" }, "theme": { - "header": "System theme", - "description": "Choose your system theme for current WebUI" + "header": "系統主題", + "description": "為當前 WebUI 選擇系統主題" }, "language": { - "header": "Change language", - "description": "Change to your new language" + "header": "更改語言", + "description": "更換新語言" }, "logs": { - "header": "Error History", - "description": "View all of your error log" + "header": "錯誤歷史記錄", + "description": "查看您的所有錯誤日誌" }, "credits": { - "module": "Module Developer", - "original": "Original Module Developer", - "web": "WebUI Developer" + "module": "模組開發者", + "original": "原始模組開發者", + "web": "WebUI 開發者" }, "license": { - "module": "Module License", - "web": "WebUI License" + "module": "模組授權條款", + "web": "WebUI 授權條款" } } } -} \ No newline at end of file +}