From 35bc76074c783aabd12b3b57a40e845a621008d4 Mon Sep 17 00:00:00 2001 From: souldbminersmwc Date: Sun, 22 Mar 2026 19:03:38 -0400 Subject: [PATCH] sysclk: add merged manual translations --- Source/sys-clk/overlay/lang/es.json | 176 ++++++++++++------ Source/sys-clk/overlay/lang/it.json | 145 ++++++++++----- Source/sys-clk/overlay/lang/zh-cn.json | 208 +++++++++++++++------- Source/sys-clk/overlay/merge_translate.py | 83 +++++++++ 4 files changed, 439 insertions(+), 173 deletions(-) create mode 100644 Source/sys-clk/overlay/merge_translate.py diff --git a/Source/sys-clk/overlay/lang/es.json b/Source/sys-clk/overlay/lang/es.json index 871062fd..d8a26202 100644 --- a/Source/sys-clk/overlay/lang/es.json +++ b/Source/sys-clk/overlay/lang/es.json @@ -16,18 +16,18 @@ "Not Installed": "No instalado", "X: %u Y: %u": "X: %u Y: %u", "THE BEER-WARE LICENSE": "LA LICENCIA DE CERVEZA", - "Default": "Predeterminado", + "Default": "Por Defecto", "Do Not Override": "No anular", - "Disabled": "Discapacitado", + "Disabled": "Desactivado", "Enabled": "Habilitado", " \\ue0e3 Reset": "\\ue0e3 Restablecer", "Display": "Pantalla", "Application changed\\n\\n": "Aplicación modificada\\n\\n", "The running application changed\\n\\n": "La aplicación en ejecución cambió\\n\\n", "while editing was going on.": "mientras se realizaba la edición.", - "App ID": "ID de aplicación", + "App ID": "ID de App.", "Profile": "Perfil", - "Board": "tablero", + "Board": "Placa", "USB Charger": "Cargador USB", "%u.%u%u mV": "%u.%u%u mV", "Could not connect to hoc-clk sysmodule.\\n\\n": "No se pudo conectar al módulo del sistema hoc-clk.\\n\\n", @@ -35,56 +35,56 @@ "correctly installed and enabled.": "correctamente instalado y habilitado.", "Fatal error": "error fatal", "Temporary Overrides ": "Anulaciones temporales", - "Sleep Mode": "Modo de suspensión", - "Stock": "Valores", - "Dev OC": "Desarrollador OC", - "Boost Mode": "Modo de impulso", - "Safe Max": "Máximo seguro", - "Unsafe Max": "Máximo inseguro", - "Absolute Max": "Máximo absoluto", - "Handheld": "De mano", + "Sleep Mode": "Modo Espera", + "Stock": "Por Defecto", + "Dev OC": "Devkit", + "Boost Mode": "Modo Boost", + "Safe Max": "Max. Seguro", + "Unsafe Max": "Max. Inseguro", + "Absolute Max": "Max. Absoluto", + "Handheld": "Portatil", "Handheld Safe Max": "Caja fuerte de mano máx.", - "Docked": "Atracado", - "Enable": "Habilitar", - "Edit App Profile": "Editar perfil de aplicación", - "Edit Global Profile": "Editar perfil global", - "Temporary Overrides": "Anulaciones temporales", - "Settings": "Configuración", + "Docked": "En el Dock", + "Enable": "Activar", + "Edit App Profile": "Editar Perfil de App.", + "Edit Global Profile": "Editar Perfil Global", + "Temporary Overrides": "Reemplazos Temporales", + "Settings": "Ajustes", "About": "Acerca de", "Compiling with minimal features": "Compilando con características mínimas", "General Settings": "Configuraciones generales", "Governor Settings": "Configuración del gobernador", "Safety Settings": "Configuraciones de seguridad", - "Save KIP Settings": "Guardar configuración de KIP", - "RAM Settings": "Configuración de RAM", - "CPU Settings": "Configuración de la CPU", - "GPU Settings": "Configuración de GPU", + "Save KIP Settings": "Guardar Ajustes de KIP", + "RAM Settings": "Ajustes de RAM", + "CPU Settings": "Ajustes de CPU", + "GPU Settings": "Ajustes de GPU", "Display Settings": "Configuración de pantalla", "Experimental": "Experimental", "GPU Scheduling Override Method": "Método de anulación de programación de GPU", "can be dangerous and may cause": "puede ser peligroso y puede causar", "damage to your battery or charger!": "¡Daños a su batería o cargador!", - "Charge Current Override": "Anulación de corriente de carga", + "Charge Current Override": "Reemplazo de Corriente de Carga", "RAM Voltage Display Mode": "Modo de visualización de voltaje de RAM", "Polling Interval": "Intervalo de sondeo", "CPU Governor Minimum Frequency": "Frecuencia mínima del gobernador de CPU", "refresh rates may cause stress": "Las frecuencias de actualización pueden causar estrés.", "or damage to your display! ": "o daños a su pantalla!", - "Proceed at your own risk!": "¡Continúe bajo su propio riesgo!", + "Proceed at your own risk!": "Procede bajo tu propio riesgo!", "Max Handheld Display": "Pantalla portátil máxima", "Display Clock": "Reloj de pantalla", - "Official Rating": "Calificación oficial", - "TDP Threshold": "Umbral de TDP", + "Official Rating": "Limite Oficial", + "TDP Threshold": "Límite de TDP", "Power": "poder", - "Thermal Throttle Limit": "Límite del acelerador térmico", + "Thermal Throttle Limit": "Umbral de Limitación Térmica", "HP Mode": "Modo HP", - "Default (Mariko)": "Predeterminado (Mariko)", - "Default (Erista)": "Predeterminado (Erista)", - "Rating": "Calificación", - "Safe Max (Mariko)": "Max seguro (Mariko)", - "Safe Max (Erista)": "Safe Max (Erista)", + "Default (Mariko)": "Por Defecto (Mariko)", + "Default (Erista)": "Por Defecto (Erista)", + "Rating": "Limite Oficial", + "Safe Max (Mariko)": "Max. Seguro (Mariko)", + "Safe Max (Erista)": "Max. Seguro (Erista)", "RAM VDD2 Voltage": "Voltaje RAM VDD2", - "Voltage": "voltaje", + "Voltage": "Voltaje", "RAM VDDQ Voltage": "Voltaje RAM VDDQ", "RAM Frequency Editor": "Editor de frecuencia RAM", "JEDEC.": "JEDEC.", @@ -98,35 +98,35 @@ "Ram Max Clock": "Ram Max Reloj", "RAM Latency Editor": "Editor de latencia de RAM", "RAM Timing Reductions": "Reducciones de tiempo de RAM", - "Memory Timings": "Tiempos de memoria", + "Memory Timings": "Tiempos de Memoria", "tREFI": "tREFI", "Advanced": "Avanzado", "t6 tRTW Fine Tune": "t6 tRTW Ajuste fino", "tRTW Fine Tune": "Ajuste fino tRTW", "t7 tWTR Fine Tune": "t7 tWTR Ajuste fino", "tWTR Fine Tune": "Ajuste fino de tWTR", - "Memory Latencies": "Latencias de la memoria", - "Read Latency": "Leer latencia", - "Write Latency": "Latencia de escritura", + "Memory Latencies": "Latencias de Memoria", + "Read Latency": "Latencia de Lectura", + "Write Latency": "Latencia de Escritura", "CPU Boost Clock": "Reloj de aumento de CPU", - "CPU UV": "procesador ultravioleta", - "CPU Unlock": "Desbloqueo de CPU", - "CPU VMIN": "CPU VMIN", - "CPU Max Voltage": "Voltaje máximo de la CPU", - "CPU Max Clock": "Reloj máximo de CPU", - "Extreme UV Table": "Mesa UV extrema", - "CPU UV Table": "Tabla UV de CPU", - "CPU Low UV": "CPU baja radiación ultravioleta", - "CPU High UV": "CPU alta UV", - "CPU Low VMIN": "VMIN bajo de CPU", - "CPU High VMIN": "VMIN alto de CPU", + "CPU UV": "Tabla de UnderVolt de CPU", + "CPU Unlock": "Desbloquear CPU", + "CPU VMIN": "Voltaje min. de CPU", + "CPU Max Voltage": "Voltaje max. de CPU", + "CPU Max Clock": "Reloj Max. de CPU", + "Extreme UV Table": "Tabla de UV Extremo", + "CPU UV Table": "Tabla de UV de CPU", + "CPU Low UV": "UV Bajo de CPU", + "CPU High UV": "UV Alto de CPU", + "CPU Low VMIN": "Voltaje Bajo Min. de CPU", + "CPU High VMIN": "Voltaje Alto Min. de CPU", "No Undervolt": "Sin subvoltaje", - "SLT Table": "Mesa TR", + "SLT Table": "Tabla SLT", "HiOPT Table": "Tabla HiOPT", - "GPU Undervolt Table": "Tabla de subvoltaje de GPU", + "GPU Undervolt Table": "Tabla de UnderVolt de GPU", "GPU Minimum Voltage": "Voltaje mínimo de GPU", - "Calculate GPU Vmin": "Calcular GPU Vmin", - "GPU VMIN": "GPU VMIN", + "Calculate GPU Vmin": "Calcular Voltaje Min. de GPU", + "GPU VMIN": "Voltaje Min. de GPU", "GPU Maximum Voltage": "Voltaje máximo de GPU", "GPU Voltage Offset": "Compensación de voltaje de GPU", "Do not override": "no anular", @@ -138,10 +138,74 @@ "GPU DVFS Mode": "Modo GPU DVFS", "GPU DVFS Offset": "Compensación DVFS de GPU", "GPU Voltage Table": "Tabla de voltaje de GPU", - "GPU Custom Table (mV)": "Tabla personalizada de GPU (mV)", + "GPU Custom Table (mV)": "Tabla de GPU Personalizada (mV)", "1075MHz without UV, 1152MHz on SLT": "1075MHz sin UV, 1152MHz en SLT", "or 1228MHz on HiOPT can cause ": "o 1228MHz en HiOPT pueden causar", - "permanent damage to your Switch!": "¡Daño permanente a tu Switch!", - "921MHz without UV and 960MHz on": "921MHz sin UV y 960MHz encendido", - "SLT or HiOPT can cause ": "SLT o HiOPT pueden causar" + "permanent damage to your Switch!": "daños permanentes a tu Switch!", + "921MHz without UV and 960MHz on": "921MHz sin UV y 960MHz con", + "SLT or HiOPT can cause ": "SLT o HiOPT puede causar ", + "Horizon OC Zeus": "Horizon OC Zeus", + "Temporary Overrides Reset": "Reemplazos Temporales Reestablecer", + "Uncapped Clocks": "Relojes Ilimitados", + "Override Boost Mode": "Reemplazar Modo Boost", + "CPU Max Display Clock": "Reloj Max. de CPU Mostrado", + "Thermal Throttle": "Limitación Térmica", + "Thermal Throttle Threshold": "Umbral de Limitación Térmica", + "Handheld TDP": "TDP Portátil", + "Handheld TDP Limit": "Límite de TDP Portátil", + "Lite TDP Limit": "Límite de TDP (Lite)", + "Enforce Board Limit": "Aplicar Límite de Placa", + "Battery Charge Current": "Corriente de Carga de Bateria", + "Display Refresh Rate Changing": "Cambio de tasa de ref. de pantalla", + "Fix CPU Volt Bug": "Arreglar Bug de Voltaje de CPU", + "[cfg] no enum format string": "[cfg] no enum format string", + "KIP": "KIP", + "EMC Max Clock": "Reloj Max. de EMC", + "EMC VDD2 Voltage": "Voltaje de EMC - VDD2", + "EMC VDDQ Voltage": "Voltaje de EMC - VDDQ", + "DVB Shift": "Cambio DVB", + "t1 tRCD": "t1 tRCD", + "t2 tRP": "t2 tRP", + "t3 tRAS": "t3 tRAS", + "t4 tRRD": "t4 tRRD", + "t5 tRFC": "t5 tRFC", + "t6 tRTW": "t6 tRTW", + "t7 tWTR": "t7 tWTR", + "t8 tREFI": "t8 tREFI", + "Update RAM Timings": "Actualizar Tiempos de RAM", + " This feature is EXPERIMENTAL": " Esta caracteristica es EXPERIMENTAL", + "and should only be used for testing!": "y solo debe usarse para pruebas!", + "GPU VMAX": "Voltaje Max. de GPU", + "GPU Volt Offset": "Desplazo de Voltaje de GPU", + "GPU Custom Table": "Tabla de GPU Personalizada", + " Setting GPU Clocks past": " Usar relojes de GPU mas alla de", + "1075MHz without UV, 1152MHz on SLT or ": "1075MHz sin UV, 1152MHz con SLT o ", + "1228MHz on HiOPT can cause ": "1228MHz con HiOPT puede causar ", + "Auto": "Auto", + "Boost Mode & Safe Max": "Modo Boost y Max. Seguro", + "1581MHz Tbreak": "1581MHz Tbreak", + "1683MHz Tbreak": "1683MHz Tbreak", + "No UV": "Sin UV", + "Temp": "Temperatura", + "Lite TDP Threshold": "Límite de TDP (Lite)", + "1600BL": "1600BL", + "1866BL": "1866BL", + "2133BL": "2133BL", + "BAT": "BAT", + "FAN": "VENT", + "DISP": "PANT", + "Skin": "Carcasa", + "Now": "Act.", + "Avg": "Prom.", + "CPU": "CPU", + "GPU": "GPU", + "Memory": "Memoria", + "Governor": "Gobernador", + "SOC": "SOC", + "PCB": "PCB", + "PMIC": "PMIC", + "Charging": "Cargando", + "PD Charger": "Cargador PD", + "VDD2": "VDD2", + "VDDQ": "VDDQ" } diff --git a/Source/sys-clk/overlay/lang/it.json b/Source/sys-clk/overlay/lang/it.json index 47ee50a1..8206aee2 100644 --- a/Source/sys-clk/overlay/lang/it.json +++ b/Source/sys-clk/overlay/lang/it.json @@ -25,9 +25,9 @@ "Application changed\\n\\n": "Applicazione modificata\\n\\n", "The running application changed\\n\\n": "L'applicazione in esecuzione è cambiata\\n\\n", "while editing was going on.": "mentre era in corso la modifica.", - "App ID": "ID dell'app", + "App ID": "ID App", "Profile": "Profilo", - "Board": "Consiglio", + "Board": "Scheda", "USB Charger": "Caricatore USB", "%u.%u%u mV": "%u.%u%u mV", "Could not connect to hoc-clk sysmodule.\\n\\n": "Impossibile connettersi al modulo di sistema hoc-clk.\\n\\n", @@ -35,54 +35,54 @@ "correctly installed and enabled.": "correttamente installato e abilitato.", "Fatal error": "Errore fatale", "Temporary Overrides ": "Sostituzioni temporanee", - "Sleep Mode": "Modalità di sospensione", + "Sleep Mode": "Modalità Sleep", "Stock": "Magazzino", - "Dev OC": "OC di sviluppo", - "Boost Mode": "Modalità potenziamento", - "Safe Max": "Sicuro massimo", - "Unsafe Max": "Non sicuro Max", - "Absolute Max": "Massimo assoluto", + "Dev OC": "OC Sviluppo", + "Boost Mode": "Modalità Boost", + "Safe Max": "Massimo Sicuro", + "Unsafe Max": "Massimo Insicuro", + "Absolute Max": "Massimo Assoluto", "Handheld": "Palmare", "Handheld Safe Max": "Cassaforte portatile max", - "Docked": "Attraccato", + "Docked": "Dock", "Enable": "Abilita", - "Edit App Profile": "Modifica profilo dell'app", - "Edit Global Profile": "Modifica profilo globale", - "Temporary Overrides": "Sostituzioni temporanee", + "Edit App Profile": "Profilo App", + "Edit Global Profile": "Profilo Globale", + "Temporary Overrides": "Override Temporaneo", "Settings": "Impostazioni", "About": "Circa", "Compiling with minimal features": "Compilazione con funzionalità minime", "General Settings": "Impostazioni generali", "Governor Settings": "Impostazioni del governatore", "Safety Settings": "Impostazioni di sicurezza", - "Save KIP Settings": "Salva le impostazioni KIP", - "RAM Settings": "Impostazioni della RAM", - "CPU Settings": "Impostazioni della CPU", - "GPU Settings": "Impostazioni della GPU", + "Save KIP Settings": "Salva Impotazioni KIP", + "RAM Settings": "Impostazioni RAM", + "CPU Settings": "Impostazioni CPU", + "GPU Settings": "Impostazioni GPU", "Display Settings": "Impostazioni di visualizzazione", - "Experimental": "Sperimentale", + "Experimental": "Esperimentale", "GPU Scheduling Override Method": "Metodo di override della pianificazione GPU", "can be dangerous and may cause": "può essere pericoloso e può causare", "damage to your battery or charger!": "danni alla batteria o al caricabatterie!", - "Charge Current Override": "Override della corrente di carica", + "Charge Current Override": "Sovrascrivi Corrente di Ricarica", "RAM Voltage Display Mode": "Modalità di visualizzazione della tensione RAM", "Polling Interval": "Intervallo di polling", "CPU Governor Minimum Frequency": "Frequenza minima del governatore della CPU", "refresh rates may cause stress": "le frequenze di aggiornamento possono causare stress", "or damage to your display! ": "o danni al display!", - "Proceed at your own risk!": "Procedi a tuo rischio e pericolo!", + "Proceed at your own risk!": "Procedi al tuo rischio!", "Max Handheld Display": "Display portatile massimo", "Display Clock": "Visualizza orologio", - "Official Rating": "Valutazione ufficiale", + "Official Rating": "Rating Ufficiale", "TDP Threshold": "Soglia TDP", "Power": "Potenza", - "Thermal Throttle Limit": "Limite della valvola termica", + "Thermal Throttle Limit": "Limite Rallentamento Termico", "HP Mode": "Modalità HP", "Default (Mariko)": "Predefinito (Mariko)", "Default (Erista)": "Predefinito (Erista)", "Rating": "Valutazione", - "Safe Max (Mariko)": "Safe Max (Mariko)", - "Safe Max (Erista)": "Safe Max (Erista)", + "Safe Max (Mariko)": "Max Sicuro (Mariko)", + "Safe Max (Erista)": "Max Sicuro (Erista)", "RAM VDD2 Voltage": "Tensione RAM VDD2", "Voltage": "Voltaggio", "RAM VDDQ Voltage": "Voltaggio VDDQ della RAM", @@ -98,35 +98,35 @@ "Ram Max Clock": "Orologio Ram Max", "RAM Latency Editor": "Editor della latenza RAM", "RAM Timing Reductions": "Riduzioni della temporizzazione della RAM", - "Memory Timings": "Tempi di memoria", + "Memory Timings": "Timing Memoria", "tREFI": "tREFI", - "Advanced": "Avanzato", + "Advanced": "Avanzate", "t6 tRTW Fine Tune": "t6 tRTW Sintonia fine", "tRTW Fine Tune": "tRTW Sintonia fine", "t7 tWTR Fine Tune": "t7 tWTR Sintonia fine", "tWTR Fine Tune": "tWTR Sintonia fine", - "Memory Latencies": "Latenza della memoria", - "Read Latency": "Leggi latenza", - "Write Latency": "Scrivi latenza", + "Memory Latencies": "Latency Memoria", + "Read Latency": "Latency Lettura", + "Write Latency": "Latency Scrittura", "CPU Boost Clock": "Orologio di potenziamento della CPU", - "CPU UV": "UV della CPU", - "CPU Unlock": "Sblocco della CPU", - "CPU VMIN": "CPUVMIN", - "CPU Max Voltage": "Voltaggio massimo della CPU", - "CPU Max Clock": "Orologio massimo della CPU", - "Extreme UV Table": "Tavolo UV estremo", - "CPU UV Table": "Tabella UV della CPU", - "CPU Low UV": "CPU con raggi UV bassi", - "CPU High UV": "UV elevato della CPU", - "CPU Low VMIN": "VMIN CPU basso", - "CPU High VMIN": "CPU alta VMIN", + "CPU UV": "UV CPU", + "CPU Unlock": "Sblocco CPU", + "CPU VMIN": "VMIN CPU", + "CPU Max Voltage": "Voltaggio Massimo CPU", + "CPU Max Clock": "Clock Massimo CPU", + "Extreme UV Table": "Tavola UV Estremo", + "CPU UV Table": "Tavola UV CPU", + "CPU Low UV": "UV Basso CPU", + "CPU High UV": "UV Alto CPU", + "CPU Low VMIN": "VMIN Basso CPU", + "CPU High VMIN": "VMIN Alto CPU", "No Undervolt": "Nessuna sottotensione", - "SLT Table": "Tabella SLT", - "HiOPT Table": "Tabella HiOPT", - "GPU Undervolt Table": "Tabella di sottotensione GPU", + "SLT Table": "Tavola SLT", + "HiOPT Table": "Tavola HiOPT", + "GPU Undervolt Table": "Tavola Undervolt GPU", "GPU Minimum Voltage": "Voltaggio minimo della GPU", - "Calculate GPU Vmin": "Calcola GPU Vmin", - "GPU VMIN": "GPUVMIN", + "Calculate GPU Vmin": "Calcola VMIN GPU", + "GPU VMIN": "VMIN GPU", "GPU Maximum Voltage": "Voltaggio massimo della GPU", "GPU Voltage Offset": "Offset di tensione della GPU", "Do not override": "Non sovrascrivere", @@ -138,10 +138,59 @@ "GPU DVFS Mode": "Modalità DVFS GPU", "GPU DVFS Offset": "Offset DVFS della GPU", "GPU Voltage Table": "Tabella delle tensioni della GPU", - "GPU Custom Table (mV)": "Tabella personalizzata GPU (mV)", + "GPU Custom Table (mV)": "Tavola GPU Custom (mV)", "1075MHz without UV, 1152MHz on SLT": "1075 MHz senza UV, 1152 MHz su SLT", "or 1228MHz on HiOPT can cause ": "o 1228 MHz su HiOPT possono causare", - "permanent damage to your Switch!": "danni permanenti al tuo Switch!", - "921MHz without UV and 960MHz on": "921 MHz senza UV e 960 MHz attivi", - "SLT or HiOPT can cause ": "SLT o HiOPT possono causare" + "permanent damage to your Switch!": "danni permanenti alla tua console!", + "921MHz without UV and 960MHz on": "921MHz senza UV e 960MHz su", + "SLT or HiOPT can cause ": "SLT o HiOPT può causare ", + "Horizon OC Zeus": "Horizon OC Zeus", + "Temporary Overrides Reset": "Temporary Overrides Reset", + "Uncapped Clocks": "Sblocca Clock", + "Override Boost Mode": "Sovrascrivi Boost Mode", + "CPU Max Display Clock": "Massimo Clock CPU mostrato", + "Thermal Throttle": "Rallentamento Termico", + "Thermal Throttle Threshold": "Soglia Rallentamento Termico", + "Handheld TDP": "TPD Handheld", + "Handheld TDP Limit": "Limite TDP Handheld", + "Lite TDP Limit": "Limite TDP Lite", + "Enforce Board Limit": "Forza Limite di Potenza", + "Battery Charge Current": "Corrente di Ricarica", + "Display Refresh Rate Changing": "Cambio di Frequenza Display", + "Fix CPU Volt Bug": "Risolvi Bug CPU", + "KIP": "KIP", + "EMC Max Clock": "Clock EMC Massimo", + "EMC VDD2 Voltage": "Voltaggio VDD2 EMC", + "EMC VDDQ Voltage": "Voltaggio VDDQ EMC", + "DVB Shift": "Shift DVB", + "Update RAM Timings": "Aggiorna Timing RAM", + " This feature is EXPERIMENTAL": " Questa funzione è ESPERIMENRALE!", + "and should only be used for testing!": "e dovrebbe essere usata solo per testare!", + "GPU VMAX": "VMAX GPU", + "GPU Volt Offset": "Offset Voltaggio GPU", + "GPU Custom Table": "Tavola GPU Custom", + " Setting GPU Clocks past": " Impostare Clock GPU oltre", + "1075MHz without UV, 1152MHz on SLT or ": "1075MHz senza UV, 1152MHz su SLT o ", + "1228MHz on HiOPT can cause ": "1228MHz su HiOPT può causare ", + "Auto": "Auto", + "Boost Mode & Safe Max": "Modalità Boost e Massimo Sicuro", + "1581MHz Tbreak": "Tbreak 1581MHz", + "1683MHz Tbreak": "Tbreak 1683MHz", + "No UV": "No UV", + "Temp": "Temperatura", + "Lite TDP Threshold": "Soglia TDP Lite", + "Skin": "Skin", + "Now": "Ora", + "Avg": "Med", + "CPU": "CPU", + "GPU": "GPU", + "Memory": "Memoria", + "Governor": "Governor", + "SOC": "SOC", + "PCB": "PCB", + "PMIC": "PMIC", + "Charging": "In Carica", + "PD Charger": "Caricatore PD", + "VDD2": "VDD2", + "VDDQ": "VDDQ" } diff --git a/Source/sys-clk/overlay/lang/zh-cn.json b/Source/sys-clk/overlay/lang/zh-cn.json index 3fb01401..8b2127ea 100644 --- a/Source/sys-clk/overlay/lang/zh-cn.json +++ b/Source/sys-clk/overlay/lang/zh-cn.json @@ -1,15 +1,15 @@ { "Information": "信息", "IDDQ:": "国际电话号码:", - "Module: ": "模块:", - "sys-dock status:": "系统坞站状态:", - "SaltyNX status:": "SaltyNX 状态:", + "Module: ": "模块: ", + "sys-dock status:": "sys-dock 状态:", + "SaltyNX status:": "SaltyNX 状态:", "RR Display status:": "RR 显示状态:", "Wafer Position:": "晶圆位置:", - "Credits": "制作人员", - "Developers": "开发商", + "Credits": "致谢", + "Developers": "开发者", "Contributors": "贡献者", - "Testers": "测试人员", + "Testers": "测试者", "Special Thanks": "特别感谢", "Unknown": "未知", "Installed": "已安装", @@ -18,16 +18,16 @@ "THE BEER-WARE LICENSE": "啤酒制品许可证", "Default": "默认", "Do Not Override": "不要覆盖", - "Disabled": "残疾人", + "Disabled": "禁用", "Enabled": "启用", " \\ue0e3 Reset": "\\ue0e3 重置", "Display": "显示", "Application changed\\n\\n": "应用程序已更改\\n\\n", "The running application changed\\n\\n": "正在运行的应用程序已更改\\n\\n", "while editing was going on.": "当编辑正在进行时。", - "App ID": "应用程序ID", - "Profile": "公司简介", - "Board": "董事会", + "App ID": "应用 ID", + "Profile": "配置", + "Board": "主板", "USB Charger": "USB充电器", "%u.%u%u mV": "%u.%u%u mV", "Could not connect to hoc-clk sysmodule.\\n\\n": "无法连接到 hoc-clk 系统模块。\\n\\n", @@ -35,57 +35,57 @@ "correctly installed and enabled.": "正确安装并启用。", "Fatal error": "致命错误", "Temporary Overrides ": "临时覆盖", - "Sleep Mode": "睡眠模式", - "Stock": "库存", - "Dev OC": "开发OC", - "Boost Mode": "升压模式", + "Sleep Mode": "休眠模式", + "Stock": "默认", + "Dev OC": "开发超频", + "Boost Mode": "加速模式", "Safe Max": "安全最大值", "Unsafe Max": "不安全最大值", "Absolute Max": "绝对最大值", "Handheld": "手持式", - "Handheld Safe Max": "手持式安全最大", + "Handheld Safe Max": "掌机安全最大值", "Docked": "停靠", "Enable": "启用", - "Edit App Profile": "编辑应用程序配置文件", - "Edit Global Profile": "编辑全局配置文件", - "Temporary Overrides": "临时覆盖", + "Edit App Profile": "编辑应用配置", + "Edit Global Profile": "编辑全局配置", + "Temporary Overrides": "临时配置", "Settings": "设置", "About": "关于", "Compiling with minimal features": "使用最少的功能进行编译", - "General Settings": "常规设置", + "General Settings": "通用设置", "Governor Settings": "调速器设置", "Safety Settings": "安全设置", "Save KIP Settings": "保存 KIP 设置", "RAM Settings": "内存设置", - "CPU Settings": "中央处理器设置", - "GPU Settings": "GPU设置", + "CPU Settings": "CPU 设置", + "GPU Settings": "GPU 设置", "Display Settings": "显示设置", - "Experimental": "实验性的", + "Experimental": "实验性功能", "GPU Scheduling Override Method": "GPU调度覆盖方法", "can be dangerous and may cause": "可能很危险并可能导致", "damage to your battery or charger!": "损坏电池或充电器!", - "Charge Current Override": "充电电流覆盖", - "RAM Voltage Display Mode": "RAM电压显示模式", - "Polling Interval": "轮询间隔", - "CPU Governor Minimum Frequency": "CPU调速器最低频率", - "refresh rates may cause stress": "刷新率可能会造成压力", + "Charge Current Override": "充电电流配置", + "RAM Voltage Display Mode": "内存电压显示模式", + "Polling Interval": "刷新间隔", + "CPU Governor Minimum Frequency": "CPU 调速器最低频率", + "refresh rates may cause stress": "启用下方功能可能会对屏幕造成压力或损坏", "or damage to your display! ": "或损坏您的显示器!", - "Proceed at your own risk!": "请自行承担风险!", + "Proceed at your own risk!": "风险自负!", "Max Handheld Display": "最大手持显示器", "Display Clock": "显示时钟", - "Official Rating": "官方评级", - "TDP Threshold": "TDP阈值", - "Power": "电源", - "Thermal Throttle Limit": "热油门限制", - "HP Mode": "惠普模式", - "Default (Mariko)": "默认(真理子)", - "Default (Erista)": "默认(埃里斯塔)", - "Rating": "评级", - "Safe Max (Mariko)": "安全最大(真理子)", - "Safe Max (Erista)": "安全最大(埃里斯塔)", - "RAM VDD2 Voltage": "RAM VDD2 电压", + "Official Rating": "官方额定值", + "TDP Threshold": "TDP 阈值", + "Power": "功耗", + "Thermal Throttle Limit": "温度控制限制", + "HP Mode": "高性能模式", + "Default (Mariko)": "默认 (Mariko)", + "Default (Erista)": "默认 (Erista)", + "Rating": "额定值", + "Safe Max (Mariko)": "安全最大值 (Mariko)", + "Safe Max (Erista)": "安全最大值 (Erista)", + "RAM VDD2 Voltage": "内存 VDD2 电压", "Voltage": "电压", - "RAM VDDQ Voltage": "RAM VDDQ 电压", + "RAM VDDQ Voltage": "内存 VDDQ 电压", "RAM Frequency Editor": "RAM频率编辑器", "JEDEC.": "JEDEC。", "High speedo needed!": "需要高速!", @@ -95,9 +95,9 @@ "3433MHz (Needs ridiculous Speedo/PLL)": "3433MHz(需要荒谬的 Speedo/PLL)", "3466MHz (Needs ridiculous Speedo/PLL)": "3466MHz(需要荒谬的 Speedo/PLL)", "3500MHz (Needs ridiculous Speedo/PLL)": "3500MHz(需要荒谬的 Speedo/PLL)", - "Ram Max Clock": "内存最大时钟", - "RAM Latency Editor": "RAM 延迟编辑器", - "RAM Timing Reductions": "RAM 时序减少", + "Ram Max Clock": "内存最大频率", + "RAM Latency Editor": "内存延迟编辑器", + "RAM Timing Reductions": "内存时序缩减", "Memory Timings": "内存时序", "tREFI": "tREFI", "Advanced": "高级", @@ -108,40 +108,110 @@ "Memory Latencies": "内存延迟", "Read Latency": "读取延迟", "Write Latency": "写入延迟", - "CPU Boost Clock": "CPU 升压时钟", - "CPU UV": "中央处理器紫外线", - "CPU Unlock": "CPU解锁", - "CPU VMIN": "CPU最低电压", - "CPU Max Voltage": "CPU最大电压", - "CPU Max Clock": "CPU 最大时钟", - "Extreme UV Table": "极端紫外线表", - "CPU UV Table": "CPU UV表", - "CPU Low UV": "CPU低紫外线", - "CPU High UV": "CPU高紫外线", - "CPU Low VMIN": "CPU 低 VMIN", - "CPU High VMIN": "CPU 高 VMIN", + "CPU Boost Clock": "CPU 超频频率", + "CPU UV": "CPU 降压", + "CPU Unlock": "CPU 解锁", + "CPU VMIN": "CPU 最低电压", + "CPU Max Voltage": "CPU 最大电压", + "CPU Max Clock": "CPU 最大频率", + "Extreme UV Table": "极限降压表", + "CPU UV Table": "CPU 降压表", + "CPU Low UV": "CPU 低频降压", + "CPU High UV": "CPU 高频降压", + "CPU Low VMIN": "CPU 低频最低电压", + "CPU High VMIN": "CPU 高频最低电压", "No Undervolt": "无欠压", - "SLT Table": "SLT表", - "HiOPT Table": "HiOPT表", - "GPU Undervolt Table": "GPU 欠压表", + "SLT Table": "SLT 表", + "HiOPT Table": "HiOPT 表", + "GPU Undervolt Table": "GPU 降压表", "GPU Minimum Voltage": "GPU最低电压", - "Calculate GPU Vmin": "计算 GPU Vmin", - "GPU VMIN": "GPU VMIN", - "GPU Maximum Voltage": "GPU最大电压", - "GPU Voltage Offset": "GPU电压偏移", - "Do not override": "不要覆盖", + "Calculate GPU Vmin": "计算 GPU 最低电压", + "GPU VMIN": "GPU 最低电压", + "GPU Maximum Voltage": "GPU 最大电压", + "GPU Voltage Offset": "GPU 电压偏移", + "Do not override": "默认", "Enabled (Default)": "启用(默认)", "96.6% limit": "96.6%限制", "99.7% limit": "99.7%限制", - "GPU Scheduling Override": "GPU 调度覆盖", + "GPU Scheduling Override": "GPU 调度强制修改", "Official Service": "官方服务", "GPU DVFS Mode": "GPU DVFS 模式", "GPU DVFS Offset": "GPU DVFS 偏移", - "GPU Voltage Table": "GPU电压表", + "GPU Voltage Table": "GPU 电压表", "GPU Custom Table (mV)": "GPU 自定义表 (mV)", - "1075MHz without UV, 1152MHz on SLT": "无 UV 时为 1075MHz,SLT 时为 1152MHz", + "1075MHz without UV, 1152MHz on SLT": "将GPU频率设置超过无降压时的1075MHz、SLT时的1152MHz或", "or 1228MHz on HiOPT can cause ": "或 HiOPT 上的 1228MHz 可能会导致", - "permanent damage to your Switch!": "对您的 Switch 造成永久性损坏!", - "921MHz without UV and 960MHz on": "无 UV 时为 921MHz,开启时为 960MHz", - "SLT or HiOPT can cause ": "SLT 或 HiOPT 可能会导致" + "permanent damage to your Switch!": "HiOPT时的1228MHz,可能会永久性损坏您的Switch!", + "921MHz without UV and 960MHz on": "无降压时的 921MHz 和", + "SLT or HiOPT can cause ": "SLT 或 HiOPT 时的 960MHz 可能会造成", + "Information about Translation": "本次翻译为机器翻译。如发现错误,请在 GitHub 上反馈,也欢迎参与贡献!", + "Horizon OC Zeus": "Horizon OC Zeus", + "Uncapped Clocks": "解除频率上限", + "Override Boost Mode": "配置加速模式", + "CPU Max Display Clock": "CPU 最大显示频率", + "Thermal Throttle": "温度控制", + "Thermal Throttle Threshold": "温度控制阈值", + "Handheld TDP": "掌机模式 TDP", + "Handheld TDP Limit": "掌机模式 TDP 限制", + "Lite TDP Limit": "Lite TDP 限制", + "Enforce Board Limit": "强制主板限制", + "Battery Charge Current": "电池充电电流", + "Display Refresh Rate Changing": "显示刷新率变更", + "Fix CPU Volt Bug": "修复 CPU 电压错误", + "[cfg] no enum format string": "[cfg] 无枚举格式字符串", + "KIP": "KIP", + "EMC Max Clock": "EMC 最大频率", + "EMC VDD2 Voltage": "EMC VDD2 电压", + "EMC VDDQ Voltage": "EMC VDDQ 电压", + "DVB Shift": "DVB 偏移", + "t1 tRCD": "t1 tRCD", + "t2 tRP": "t2 tRP", + "t3 tRAS": "t3 tRAS", + "t4 tRRD": "t4 tRRD", + "t5 tRFC": "t5 tRFC", + "t6 tRTW": "t6 tRTW", + "t7 tWTR": "t7 tWTR", + "t8 tREFI": "t8 tREFI", + "Update RAM Timings": "更新内存时序", + " This feature is EXPERIMENTAL": " 此功能为实验性功能", + "and should only be used for testing!": "仅应用于测试!", + "GPU VMAX": "GPU 最大电压", + "GPU Volt Offset": "GPU 电压偏移", + "GPU Custom Table": "GPU 自定义表", + "Setting GPU Clocks past ": "将 GPU 频率设置超过", + "or 1228MHz on HiOPT can cause": "HiOPT 时的1228MHz可能会造成", + "Auto": "自动", + "Boost Mode & Safe Max": "加速模式 & 安全最大值", + "1581MHz Tbreak": "1581MHz Tbreak", + "1683MHz Tbreak": "1683MHz Tbreak", + "No UV": "不降压", + "Temp": "温度", + "Lite TDP Threshold": "Lite TDP 阈值", + "1600BL": "1600BL", + "1866BL": "1866BL", + "2133BL": "2133BL", + "BAT": "电池", + "FAN": "风扇", + "DISP": "显示", + "Skin": "外壳", + "Now": "当前", + "Avg": "平均", + "CPU": "CPU", + "GPU": "GPU", + "Memory": "内存", + "Governor": "调速器", + "SOC": "SOC", + "PCB": "PCB", + "PMIC": "PMIC", + "VDD2": "VDD2", + "VDDQ": "VDDQ", + "GPU DVFS": "GPU DVFS", + "Speedo:": "Speedo:", + "Do not Override": "默认", + "SoC DVB Shift": "SoC DVB 偏移", + "Overwrite Boost Mode": "覆盖超频模式", + "Enable Unsafe Display Frequencies": "启用不安全显示频率", + "hoc-clk is not running.\n\nPlease make sure it is correctly installed and enabled.": "hoc-clk 未运行。\n\n请确保它已正确安装并启用。", + "Could not connect to hoc-clk.\n\nPlease make sure it is correctly installed and enabled.": "无法连接到 hoc-clk。\n\n请确保它已正确安装并启用。", + "Overlay not compatible with the running hoc-clk version.\n\nPlease make sure everything is installed and up to date.": "配置层与当前运行的 hoc-clk 版本不兼容。\n\n请确保所有组件都已安装并更新到最新版本。" } diff --git a/Source/sys-clk/overlay/merge_translate.py b/Source/sys-clk/overlay/merge_translate.py new file mode 100644 index 00000000..1a741598 --- /dev/null +++ b/Source/sys-clk/overlay/merge_translate.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +""" +Merge manual and machine translation files. +Uses manual translation if available, otherwise falls back to machine. + +Usage: + python merge_translations.py + +Examples: + python merge_translations.py lang/fr_manual.json lang/fr_machine.json lang/fr.json + python merge_translations.py manual/de.json auto/de.json lang/de.json +""" + +import json +import os +import re +import sys + + +def load_json(path: str) -> dict: + with open(path, "r", encoding="utf-8") as f: + content = f.read() + content = re.sub(r",\s*}", "}", content) + return json.loads(content) + + +def save_json(data: dict, path: str): + os.makedirs(os.path.dirname(path) or ".", exist_ok=True) + with open(path, "w", encoding="utf-8") as f: + f.write("{\n") + items = list(data.items()) + for i, (key, val) in enumerate(items): + k = json.dumps(key, ensure_ascii=False) + v = json.dumps(val, ensure_ascii=False) + comma = "," if i < len(items) - 1 else "" + f.write(f" {k}: {v}{comma}\n") + f.write("}\n") + + +def main(): + if len(sys.argv) < 4: + print("Usage: python merge_translations.py ") + sys.exit(1) + + manual_path = sys.argv[1] + machine_path = sys.argv[2] + output_path = sys.argv[3] + + if not os.path.isfile(machine_path): + print(f"Error: machine file '{machine_path}' not found.") + sys.exit(1) + + machine = load_json(machine_path) + manual = load_json(manual_path) if os.path.isfile(manual_path) else {} + + merged = {} + manual_count = 0 + machine_count = 0 + + for key in machine: + if key in manual and manual[key] and manual[key] != key: + merged[key] = manual[key] + manual_count += 1 + else: + merged[key] = machine[key] + machine_count += 1 + + # Include any manual-only keys not in machine + for key in manual: + if key not in merged and manual[key]: + merged[key] = manual[key] + manual_count += 1 + + save_json(merged, output_path) + + total = len(merged) + print(f"Merged {total} strings -> {output_path}") + print(f" Manual: {manual_count}") + print(f" Machine: {machine_count}") + + +if __name__ == "__main__": + main() \ No newline at end of file