diff --git a/src/components/more.tsx b/src/components/more.tsx index 53f305c..dda7d61 100644 --- a/src/components/more.tsx +++ b/src/components/more.tsx @@ -1,7 +1,7 @@ import { ButtonItem, Field, PanelSection, PanelSectionRow } from "@decky/ui"; import { FC, useEffect, useState } from "react"; import { localizationManager, localizeStrEnum } from "../i18n"; -import { Backend, Settings } from "../util"; +import { Backend, Settings, compareVersions } from "../util"; import { ActionButtonItem } from "."; export const MoreComponent: FC = () => { @@ -10,8 +10,6 @@ export const MoreComponent: FC = () => { useEffect(() => { const getData = async () => { - // const latestVersion = await Backend.getLatestVersion(); - // setLatestVersion(latestVersion); setTimeout(() => { setLatestVersion(latestVersion); Backend.getLatestVersion().then((latestVersion) => { @@ -25,7 +23,12 @@ export const MoreComponent: FC = () => { let uptButtonText = localizationManager.getString(localizeStrEnum.REINSTALL_PLUGIN); if (currentVersion !== latestVersion && Boolean(latestVersion)) { - uptButtonText = `${localizationManager.getString(localizeStrEnum.UPDATE_PLUGIN)} ${latestVersion}`; + const versionCompare = compareVersions(latestVersion, currentVersion); + if (versionCompare > 0) { + uptButtonText = `${localizationManager.getString(localizeStrEnum.UPDATE_PLUGIN)} ${latestVersion}`; + } else if (versionCompare < 0) { + uptButtonText = `${localizationManager.getString(localizeStrEnum.ROLLBACK_PLUGIN)} ${latestVersion}`; + } } return ( diff --git a/src/i18n/bulgarian.json b/src/i18n/bulgarian.json index 06d0f58..76b2474 100755 --- a/src/i18n/bulgarian.json +++ b/src/i18n/bulgarian.json @@ -1,43 +1,68 @@ { - "TITEL_SETTINGS":"", - "ENABLE_SETTINGS":"", - "USE_PERGAME_PROFILE":"", - "USING":"", - "DEFAULT":"", - "PROFILE":"", - "CPU_BOOST":"", - "CPU_BOOST_DESC":"", - "SMT_DESC":"", - "CPU_NUM":"", - "CPU_NUM_DESC":"", - "TDP":"", - "TDP_DESC":"", - "RYZENADJ_NOT_FOUND":"", - "WATTS":"", - "GPU_FREQMODE":"", - "UNLIMITED":"", - "FIXED_FREQ":"", - "RANGE_FREQ":"", - "AUTO_FREQ":"", - "GPU_FIX_FREQ":"", - "GPU_MIN_FREQ":"", - "GPU_MAX_FREQ":"", - "FAN_SPEED":"", - "CREATE_FAN_PROFILE":"", - "GRID_ALIG":"", - "FAN_MODE":"", - "NOT_CONTROLLED":"", - "FIXED":"", - "CURVE":"", - "SNAP_GRIDLINE":"", - "FAN_SPEED_PERCENT":"", - "SENSOR_TEMP":"", - "CREATE_FAN_PROFILE_TIP":"", - "SELECT_FAN_PROFILE_TIP":"", - "FAN_PROFILE_NAME":"", - "USE":"", - "DELETE":"", - "CREATE":"", - "CANCEL":"", - "CURENT_STAT":"" + "TITEL_SETTINGS":"Настройки", + "ENABLE_SETTINGS":"Активиране на настройките", + "USE_PERGAME_PROFILE":"Използване на профил за игра", + "USING":"Използва се", + "DEFAULT":"По подразбиране", + "PROFILE":"Профил", + "CPU_BOOST":"CPU Boost", + "CPU_BOOST_DESC":"Увеличаване на максималната честота на CPU", + "SMT_DESC":"Активиране на хипертрединг", + "CPU_NUM":"Брой CPU ядра", + "CPU_NUM_DESC":"Задаване на активните физически ядра", + "CPU_MAX_PERF":"Максимална производителност на CPU", + "TDP":"Лимит на термична мощност (TDP)", + "TDP_DESC":"Ограничаване на мощността на процесора за по-ниска обща консумация", + "RYZENADJ_NOT_FOUND":"RyzenAdj не е намерен", + "WATTS":"Вата", + "GPU_FREQMODE":"Режим на честота на GPU", + "UNLIMITED":"Неограничен", + "FIXED_FREQ":"Фиксиран", + "RANGE_FREQ":"Диапазон", + "AUTO_FREQ":"Автоматичен", + "GPU_FIX_FREQ":"Честота на GPU", + "GPU_MIN_FREQ":"Минимална честота", + "GPU_MAX_FREQ":"Максимална честота", + "FAN_SPEED":"Скорост на вентилатора", + "CREATE_FAN_PROFILE":"Създаване на профил за вентилатора", + "GRID_ALIG":"Подравняване по мрежа", + "FAN_MODE":"Режим на вентилатора", + "NOT_CONTROLLED":"Без контрол", + "FIXED":"Фиксиран", + "CURVE":"Крива", + "SNAP_GRIDLINE":"Прилепване към пресечните точки на мрежата", + "FAN_SPEED_PERCENT":"Скорост на вентилатора (%)", + "SENSOR_TEMP":"Температура на сензора", + "CREATE_FAN_PROFILE_TIP":"Създаване на профил за вентилатора", + "SELECT_FAN_PROFILE_TIP":"Избор на профил за вентилатора", + "FAN_PROFILE_NAME":"Име на профила", + "USE":"Използване", + "DELETE":"Изтриване", + "CREATE":"Създаване", + "CANCEL":"Отказ", + "CURENT_STAT":"Текущо състояние", + "EDIT":"Редактиране", + "SAVE":"Запазване", + "NATIVE_FREQ":"Нативен", + "MORE":"Още", + "REINSTALL_PLUGIN": "Преинсталиране на плъгина", + "UPDATE_PLUGIN": "Обновяване до", + "ROLLBACK_PLUGIN": "Връщане до", + "INSTALLED_VERSION": "Инсталирана версия", + "LATEST_VERSION": "Последна версия", + "GPU_NATIVE_SLIDER": "Нативен GPU плъзгач", + "GPU_NATIVE_SLIDER_DESC": "Активиране на нативния плъзгач за контрол на GPU", + "USE_PERACMODE_PROFILE": "Използване на профил според захранването", + "AC_MODE": "Режим на захранване", + "BAT_MODE": "Режим на батерия", + "CUSTOM_TDP_RANGE": "Персонализиран диапазон на TDP плъзгача", + "RESET_ALL": "Нулиране на всичко", + "NATIVE_FREQ_DESC": "Задаване на честота чрез системното меню", + "UNLIMITED_DESC": "Без ограничение на GPU честотата, системно планиране по подразбиране", + "FIXED_FREQ_DESC": "Фиксирана GPU честота", + "RANGE_FREQ_DESC": "Задаване на диапазон на GPU честотата", + "AUTO_FREQ_DESC": "Адаптивна GPU честота, принудително изключен TDP лимит, изключен Boost", + "AUTO_FREQ_TDP_NOTIF": "GPU режим {{mode}}, TDP лимитът е изключен", + "FORCE_SHOW_TDP": "Принудително показване на TDP контрол", + "FORCE_SHOW_TDP_DESC": "По подразбиране плъгинът обработва нативния TDP плъзгач. Ако нативният плъзгач има проблеми, активирайте тази опция, за да използвате вътрешния TDP контрол на плъгина" } \ No newline at end of file diff --git a/src/i18n/english.json b/src/i18n/english.json index 28efe7e..1d4b40a 100755 --- a/src/i18n/english.json +++ b/src/i18n/english.json @@ -46,7 +46,8 @@ "NATIVE_FREQ":"Native", "MORE":"More", "REINSTALL_PLUGIN": "Reinstall Plugin", - "UPDATE_PLUGIN": "Update Plugin To", + "UPDATE_PLUGIN": "Update to", + "ROLLBACK_PLUGIN": "Rollback to", "INSTALLED_VERSION": "Installed Version", "LATEST_VERSION": "Latest Version", "GPU_NATIVE_SLIDER": "Native GPU Slider", diff --git a/src/i18n/french.json b/src/i18n/french.json index 06d0f58..a7f35a0 100755 --- a/src/i18n/french.json +++ b/src/i18n/french.json @@ -1,43 +1,68 @@ { - "TITEL_SETTINGS":"", - "ENABLE_SETTINGS":"", - "USE_PERGAME_PROFILE":"", - "USING":"", - "DEFAULT":"", - "PROFILE":"", - "CPU_BOOST":"", - "CPU_BOOST_DESC":"", - "SMT_DESC":"", - "CPU_NUM":"", - "CPU_NUM_DESC":"", - "TDP":"", - "TDP_DESC":"", - "RYZENADJ_NOT_FOUND":"", - "WATTS":"", - "GPU_FREQMODE":"", - "UNLIMITED":"", - "FIXED_FREQ":"", - "RANGE_FREQ":"", - "AUTO_FREQ":"", - "GPU_FIX_FREQ":"", - "GPU_MIN_FREQ":"", - "GPU_MAX_FREQ":"", - "FAN_SPEED":"", - "CREATE_FAN_PROFILE":"", - "GRID_ALIG":"", - "FAN_MODE":"", - "NOT_CONTROLLED":"", - "FIXED":"", - "CURVE":"", - "SNAP_GRIDLINE":"", - "FAN_SPEED_PERCENT":"", - "SENSOR_TEMP":"", - "CREATE_FAN_PROFILE_TIP":"", - "SELECT_FAN_PROFILE_TIP":"", - "FAN_PROFILE_NAME":"", - "USE":"", - "DELETE":"", - "CREATE":"", - "CANCEL":"", - "CURENT_STAT":"" + "TITEL_SETTINGS":"Paramètres", + "ENABLE_SETTINGS":"Activer les paramètres", + "USE_PERGAME_PROFILE":"Utiliser un profil par jeu", + "USING":"En cours d'utilisation", + "DEFAULT":"Par défaut", + "PROFILE":"Profil", + "CPU_BOOST":"Boost CPU", + "CPU_BOOST_DESC":"Augmenter la fréquence maximale du CPU", + "SMT_DESC":"Activer l'hyperthreading", + "CPU_NUM":"Nombre de cœurs CPU", + "CPU_NUM_DESC":"Définir les cœurs physiques activés", + "CPU_MAX_PERF":"Performance CPU maximale", + "TDP":"Limite de puissance thermique (TDP)", + "TDP_DESC":"Limite la puissance du processeur pour réduire la consommation totale", + "RYZENADJ_NOT_FOUND":"RyzenAdj non trouvé", + "WATTS":"Watts", + "GPU_FREQMODE":"Mode de fréquence GPU", + "UNLIMITED":"Illimité", + "FIXED_FREQ":"Fixe", + "RANGE_FREQ":"Plage", + "AUTO_FREQ":"Auto", + "GPU_FIX_FREQ":"Fréquence GPU", + "GPU_MIN_FREQ":"Fréquence minimale", + "GPU_MAX_FREQ":"Fréquence maximale", + "FAN_SPEED":"Vitesse du ventilateur", + "CREATE_FAN_PROFILE":"Créer un profil de ventilateur", + "GRID_ALIG":"Alignement de la grille", + "FAN_MODE":"Mode ventilateur", + "NOT_CONTROLLED":"Non contrôlé", + "FIXED":"Fixe", + "CURVE":"Courbe", + "SNAP_GRIDLINE":"Aligner sur les intersections de la grille", + "FAN_SPEED_PERCENT":"Vitesse du ventilateur (%)", + "SENSOR_TEMP":"Température du capteur", + "CREATE_FAN_PROFILE_TIP":"Créer un profil de ventilateur", + "SELECT_FAN_PROFILE_TIP":"Sélectionner un profil de ventilateur", + "FAN_PROFILE_NAME":"Nom du profil", + "USE":"Utiliser", + "DELETE":"Supprimer", + "CREATE":"Créer", + "CANCEL":"Annuler", + "CURENT_STAT":"État actuel", + "EDIT":"Modifier", + "SAVE":"Enregistrer", + "NATIVE_FREQ":"Natif", + "MORE":"Plus", + "REINSTALL_PLUGIN": "Réinstaller le plugin", + "UPDATE_PLUGIN": "Mettre à jour vers", + "ROLLBACK_PLUGIN": "Revenir à", + "INSTALLED_VERSION": "Version installée", + "LATEST_VERSION": "Dernière version", + "GPU_NATIVE_SLIDER": "Curseur GPU natif", + "GPU_NATIVE_SLIDER_DESC": "Activer le curseur de contrôle GPU natif", + "USE_PERACMODE_PROFILE": "Utiliser un profil par mode d'alimentation", + "AC_MODE": "Mode secteur", + "BAT_MODE": "Mode batterie", + "CUSTOM_TDP_RANGE": "Plage TDP personnalisée", + "RESET_ALL": "Tout réinitialiser", + "NATIVE_FREQ_DESC": "Régler la fréquence via le menu système", + "UNLIMITED_DESC": "Pas de limite de fréquence GPU, planification système par défaut", + "FIXED_FREQ_DESC": "Fréquence GPU fixe", + "RANGE_FREQ_DESC": "Définir la plage de fréquence GPU", + "AUTO_FREQ_DESC": "Fréquence GPU adaptative, limite TDP désactivée de force, Boost désactivé", + "AUTO_FREQ_TDP_NOTIF": "Mode GPU {{mode}}, limite TDP désactivée", + "FORCE_SHOW_TDP": "Forcer l'affichage du contrôle TDP", + "FORCE_SHOW_TDP_DESC": "Par défaut, le plugin traite le curseur TDP natif. Si le curseur natif pose problème, activez cette option pour utiliser le contrôle TDP interne du plugin" } \ No newline at end of file diff --git a/src/i18n/german.json b/src/i18n/german.json index 8e77ed5..7f7718a 100755 --- a/src/i18n/german.json +++ b/src/i18n/german.json @@ -3,41 +3,66 @@ "ENABLE_SETTINGS":"Einstellungen aktivieren", "USE_PERGAME_PROFILE":"Spielspezifisches Profil", "USING":"Verwendet", - "DEFAULT":" standard ", + "DEFAULT":"Standard", "PROFILE":"Profil", "CPU_BOOST":"CPU Boost", "CPU_BOOST_DESC":"Maximale CPU Frequenz erhöhen", "SMT_DESC":"Aktiviert ungerade CPU-Kerne", "CPU_NUM":"Anzahl CPU-Kerne", "CPU_NUM_DESC":"Anzahl physischer CPU-Kerne", - "TDP":"Maximale Verlustleistung (TDP)", + "CPU_MAX_PERF":"Maximale CPU-Leistung", + "TDP":"Thermische Verlustleistung (TDP)", "TDP_DESC":"CPU-Leistung einschränken um Strom zu sparen", - "RYZENADJ_NOT_FOUND":"ryzenAdj nicht installiert", + "RYZENADJ_NOT_FOUND":"RyzenAdj nicht gefunden", "WATTS":"Watt", - "GPU_FREQMODE":"Grafikkartenfrequenz Modus", + "GPU_FREQMODE":"GPU-Frequenzmodus", "UNLIMITED":"Unbeschränkt", - "FIXED_FREQ":"fix", + "FIXED_FREQ":"Fest", "RANGE_FREQ":"Bereich", "AUTO_FREQ":"Automatisch", - "GPU_FIX_FREQ":"Grafikkartenfrequenz", + "GPU_FIX_FREQ":"GPU-Frequenz", "GPU_MIN_FREQ":"Minimale Frequenz", "GPU_MAX_FREQ":"Maximale Frequenz", "FAN_SPEED":"Lüftergeschwindigkeit", "CREATE_FAN_PROFILE":"Lüfterprofil erstellen", - "GRID_ALIG":"Gitternetz Ausrichtung", + "GRID_ALIG":"Gitternetz-Ausrichtung", "FAN_MODE":"Lüftermodus", - "NOT_CONTROLLED":"Nicht kontrolliert", + "NOT_CONTROLLED":"Nicht gesteuert", "FIXED":"Fest", "CURVE":"Kurve", - "SNAP_GRIDLINE":"An der Gitternetzlinien ausrichten", - "FAN_SPEED_PERCENT":"Prozentanteil der Lüftergeschwindigkeit", - "SENSOR_TEMP":"Temperatur des Sensors", + "SNAP_GRIDLINE":"An Gitterlinien ausrichten", + "FAN_SPEED_PERCENT":"Lüftergeschwindigkeit (%)", + "SENSOR_TEMP":"Sensortemperatur", "CREATE_FAN_PROFILE_TIP":"Lüfterprofil erstellen", - "SELECT_FAN_PROFILE_TIP":"Wähle ein Lüfterprofil aus", - "FAN_PROFILE_NAME":"Name des Profils", - "USE":"Benutzen", + "SELECT_FAN_PROFILE_TIP":"Lüfterprofil auswählen", + "FAN_PROFILE_NAME":"Profilname", + "USE":"Verwenden", "DELETE":"Löschen", "CREATE":"Erstellen", "CANCEL":"Abbrechen", - "CURENT_STAT":"Aktueller Stand" + "CURENT_STAT":"Aktueller Status", + "EDIT":"Bearbeiten", + "SAVE":"Speichern", + "NATIVE_FREQ":"Nativ", + "MORE":"Mehr", + "REINSTALL_PLUGIN": "Plugin neu installieren", + "UPDATE_PLUGIN": "Aktualisieren auf", + "ROLLBACK_PLUGIN": "Zurücksetzen auf", + "INSTALLED_VERSION": "Installierte Version", + "LATEST_VERSION": "Neueste Version", + "GPU_NATIVE_SLIDER": "Nativer GPU-Schieberegler", + "GPU_NATIVE_SLIDER_DESC": "Nativen GPU-Schieberegler aktivieren", + "USE_PERACMODE_PROFILE": "Profil nach Stromversorgung", + "AC_MODE": "Netzbetrieb", + "BAT_MODE": "Akkubetrieb", + "CUSTOM_TDP_RANGE": "Benutzerdefinierter TDP-Bereich", + "RESET_ALL": "Alles zurücksetzen", + "NATIVE_FREQ_DESC": "Frequenz über Systemmenü einstellen", + "UNLIMITED_DESC": "Keine GPU-Frequenzbegrenzung, Standard-Systemplanung", + "FIXED_FREQ_DESC": "Feste GPU-Frequenz", + "RANGE_FREQ_DESC": "GPU-Frequenzbereich festlegen", + "AUTO_FREQ_DESC": "Adaptive GPU-Frequenz, TDP-Limit deaktiviert, Boost deaktiviert", + "AUTO_FREQ_TDP_NOTIF": "GPU-Modus {{mode}}, TDP-Limit deaktiviert", + "FORCE_SHOW_TDP": "TDP-Steuerung erzwingen", + "FORCE_SHOW_TDP_DESC": "Standardmäßig verarbeitet das Plugin den nativen TDP-Schieberegler. Bei Problemen mit dem nativen Schieberegler aktivieren Sie diese Option, um die interne TDP-Steuerung des Plugins zu verwenden" } \ No newline at end of file diff --git a/src/i18n/italian.json b/src/i18n/italian.json index 06d0f58..6bbf4b7 100755 --- a/src/i18n/italian.json +++ b/src/i18n/italian.json @@ -1,43 +1,68 @@ { - "TITEL_SETTINGS":"", - "ENABLE_SETTINGS":"", - "USE_PERGAME_PROFILE":"", - "USING":"", - "DEFAULT":"", - "PROFILE":"", - "CPU_BOOST":"", - "CPU_BOOST_DESC":"", - "SMT_DESC":"", - "CPU_NUM":"", - "CPU_NUM_DESC":"", - "TDP":"", - "TDP_DESC":"", - "RYZENADJ_NOT_FOUND":"", - "WATTS":"", - "GPU_FREQMODE":"", - "UNLIMITED":"", - "FIXED_FREQ":"", - "RANGE_FREQ":"", - "AUTO_FREQ":"", - "GPU_FIX_FREQ":"", - "GPU_MIN_FREQ":"", - "GPU_MAX_FREQ":"", - "FAN_SPEED":"", - "CREATE_FAN_PROFILE":"", - "GRID_ALIG":"", - "FAN_MODE":"", - "NOT_CONTROLLED":"", - "FIXED":"", - "CURVE":"", - "SNAP_GRIDLINE":"", - "FAN_SPEED_PERCENT":"", - "SENSOR_TEMP":"", - "CREATE_FAN_PROFILE_TIP":"", - "SELECT_FAN_PROFILE_TIP":"", - "FAN_PROFILE_NAME":"", - "USE":"", - "DELETE":"", - "CREATE":"", - "CANCEL":"", - "CURENT_STAT":"" + "TITEL_SETTINGS":"Impostazioni", + "ENABLE_SETTINGS":"Abilita impostazioni", + "USE_PERGAME_PROFILE":"Usa profilo per gioco", + "USING":"In uso", + "DEFAULT":"Predefinito", + "PROFILE":"Profilo", + "CPU_BOOST":"Boost CPU", + "CPU_BOOST_DESC":"Aumenta la frequenza massima della CPU", + "SMT_DESC":"Abilita l'hyperthreading", + "CPU_NUM":"Numero di core CPU", + "CPU_NUM_DESC":"Imposta i core fisici attivi", + "CPU_MAX_PERF":"Prestazioni CPU massime", + "TDP":"Limite potenza termica (TDP)", + "TDP_DESC":"Limita la potenza del processore per ridurre il consumo totale", + "RYZENADJ_NOT_FOUND":"RyzenAdj non trovato", + "WATTS":"Watt", + "GPU_FREQMODE":"Modalità frequenza GPU", + "UNLIMITED":"Illimitato", + "FIXED_FREQ":"Fisso", + "RANGE_FREQ":"Intervallo", + "AUTO_FREQ":"Auto", + "GPU_FIX_FREQ":"Frequenza GPU", + "GPU_MIN_FREQ":"Frequenza minima", + "GPU_MAX_FREQ":"Frequenza massima", + "FAN_SPEED":"Velocità ventola", + "CREATE_FAN_PROFILE":"Crea profilo ventola", + "GRID_ALIG":"Allineamento griglia", + "FAN_MODE":"Modalità ventola", + "NOT_CONTROLLED":"Non controllato", + "FIXED":"Fisso", + "CURVE":"Curva", + "SNAP_GRIDLINE":"Aggancia alle intersezioni della griglia", + "FAN_SPEED_PERCENT":"Velocità ventola (%)", + "SENSOR_TEMP":"Temperatura sensore", + "CREATE_FAN_PROFILE_TIP":"Crea un profilo ventola", + "SELECT_FAN_PROFILE_TIP":"Seleziona un profilo ventola", + "FAN_PROFILE_NAME":"Nome profilo", + "USE":"Usa", + "DELETE":"Elimina", + "CREATE":"Crea", + "CANCEL":"Annulla", + "CURENT_STAT":"Stato attuale", + "EDIT":"Modifica", + "SAVE":"Salva", + "NATIVE_FREQ":"Nativo", + "MORE":"Altro", + "REINSTALL_PLUGIN": "Reinstalla plugin", + "UPDATE_PLUGIN": "Aggiorna a", + "ROLLBACK_PLUGIN": "Ripristina a", + "INSTALLED_VERSION": "Versione installata", + "LATEST_VERSION": "Ultima versione", + "GPU_NATIVE_SLIDER": "Slider GPU nativo", + "GPU_NATIVE_SLIDER_DESC": "Abilita lo slider di controllo GPU nativo", + "USE_PERACMODE_PROFILE": "Usa profilo per modalità alimentazione", + "AC_MODE": "Modalità AC", + "BAT_MODE": "Modalità batteria", + "CUSTOM_TDP_RANGE": "Intervallo TDP personalizzato", + "RESET_ALL": "Ripristina tutto", + "NATIVE_FREQ_DESC": "Imposta la frequenza tramite il menu di sistema", + "UNLIMITED_DESC": "Nessun limite di frequenza GPU, pianificazione predefinita del sistema", + "FIXED_FREQ_DESC": "Frequenza GPU fissa", + "RANGE_FREQ_DESC": "Imposta intervallo di frequenza GPU", + "AUTO_FREQ_DESC": "Frequenza GPU adattiva, limite TDP disabilitato forzatamente, Boost disabilitato", + "AUTO_FREQ_TDP_NOTIF": "Modalità GPU {{mode}}, limite TDP disabilitato", + "FORCE_SHOW_TDP": "Forza visualizzazione controllo TDP", + "FORCE_SHOW_TDP_DESC": "Per impostazione predefinita, il plugin elabora lo slider TDP nativo. Se lo slider nativo presenta problemi, abilita questa opzione per utilizzare il controllo TDP interno del plugin" } \ No newline at end of file diff --git a/src/i18n/japanese.json b/src/i18n/japanese.json index 06d0f58..f92ecb8 100755 --- a/src/i18n/japanese.json +++ b/src/i18n/japanese.json @@ -1,43 +1,68 @@ { - "TITEL_SETTINGS":"", - "ENABLE_SETTINGS":"", - "USE_PERGAME_PROFILE":"", - "USING":"", - "DEFAULT":"", - "PROFILE":"", - "CPU_BOOST":"", - "CPU_BOOST_DESC":"", - "SMT_DESC":"", - "CPU_NUM":"", - "CPU_NUM_DESC":"", - "TDP":"", - "TDP_DESC":"", - "RYZENADJ_NOT_FOUND":"", - "WATTS":"", - "GPU_FREQMODE":"", - "UNLIMITED":"", - "FIXED_FREQ":"", - "RANGE_FREQ":"", - "AUTO_FREQ":"", - "GPU_FIX_FREQ":"", - "GPU_MIN_FREQ":"", - "GPU_MAX_FREQ":"", - "FAN_SPEED":"", - "CREATE_FAN_PROFILE":"", - "GRID_ALIG":"", - "FAN_MODE":"", - "NOT_CONTROLLED":"", - "FIXED":"", - "CURVE":"", - "SNAP_GRIDLINE":"", - "FAN_SPEED_PERCENT":"", - "SENSOR_TEMP":"", - "CREATE_FAN_PROFILE_TIP":"", - "SELECT_FAN_PROFILE_TIP":"", - "FAN_PROFILE_NAME":"", - "USE":"", - "DELETE":"", - "CREATE":"", - "CANCEL":"", - "CURENT_STAT":"" + "TITEL_SETTINGS":"設定", + "ENABLE_SETTINGS":"設定を有効にする", + "USE_PERGAME_PROFILE":"ゲームごとのプロファイルを使用", + "USING":"使用中", + "DEFAULT":"デフォルト", + "PROFILE":"プロファイル", + "CPU_BOOST":"CPU ブースト", + "CPU_BOOST_DESC":"CPU の最大周波数を上げる", + "SMT_DESC":"ハイパースレッディングを有効にする", + "CPU_NUM":"CPU コア数", + "CPU_NUM_DESC":"有効な物理コアを設定", + "CPU_MAX_PERF":"CPU 最大パフォーマンス", + "TDP":"熱設計電力 (TDP) 制限", + "TDP_DESC":"総消費電力を抑えるためにプロセッサの電力を制限", + "RYZENADJ_NOT_FOUND":"RyzenAdj が見つかりません", + "WATTS":"ワット", + "GPU_FREQMODE":"GPU クロック周波数モード", + "UNLIMITED":"制限なし", + "FIXED_FREQ":"固定", + "RANGE_FREQ":"範囲", + "AUTO_FREQ":"自動", + "GPU_FIX_FREQ":"GPU クロック周波数", + "GPU_MIN_FREQ":"最小周波数制限", + "GPU_MAX_FREQ":"最大周波数制限", + "FAN_SPEED":"ファン速度", + "CREATE_FAN_PROFILE":"ファンプロファイルを作成", + "GRID_ALIG":"グリッド配置", + "FAN_MODE":"ファンモード", + "NOT_CONTROLLED":"制御なし", + "FIXED":"固定", + "CURVE":"カーブ", + "SNAP_GRIDLINE":"グリッド線の交点にスナップ", + "FAN_SPEED_PERCENT":"ファン速度パーセント", + "SENSOR_TEMP":"センサー温度", + "CREATE_FAN_PROFILE_TIP":"ファンプロファイルを作成", + "SELECT_FAN_PROFILE_TIP":"ファンプロファイルを選択", + "FAN_PROFILE_NAME":"プロファイル名", + "USE":"使用", + "DELETE":"削除", + "CREATE":"作成", + "CANCEL":"キャンセル", + "CURENT_STAT":"現在の状態", + "EDIT":"編集", + "SAVE":"保存", + "NATIVE_FREQ":"ネイティブ", + "MORE":"その他", + "REINSTALL_PLUGIN": "プラグインを再インストール", + "UPDATE_PLUGIN": "更新:", + "ROLLBACK_PLUGIN": "ロールバック:", + "INSTALLED_VERSION": "インストール済みバージョン", + "LATEST_VERSION": "最新バージョン", + "GPU_NATIVE_SLIDER": "ネイティブ GPU スライダー", + "GPU_NATIVE_SLIDER_DESC": "ネイティブ GPU 制御スライダーを有効にする", + "USE_PERACMODE_PROFILE": "電源モードごとのプロファイルを使用", + "AC_MODE": "AC モード", + "BAT_MODE": "バッテリーモード", + "CUSTOM_TDP_RANGE": "カスタム TDP スライダー範囲", + "RESET_ALL": "すべてリセット", + "NATIVE_FREQ_DESC": "システムショートカットメニューで周波数を設定", + "UNLIMITED_DESC": "GPU 周波数制限なし、システムデフォルトのスケジューリング", + "FIXED_FREQ_DESC": "GPU 周波数を固定", + "RANGE_FREQ_DESC": "GPU 周波数範囲を設定", + "AUTO_FREQ_DESC": "GPU 周波数を自動調整、TDP 制限を強制的に無効化、ブーストを無効化", + "AUTO_FREQ_TDP_NOTIF": "GPU モード {{mode}}、TDP 制限無効", + "FORCE_SHOW_TDP": "TDP 制御を強制表示", + "FORCE_SHOW_TDP_DESC": "デフォルトでは、プラグインはネイティブ TDP スライダーを処理します。ネイティブスライダーに問題がある場合、このオプションを有効にしてプラグイン内部の TDP 制御を使用してください" } \ No newline at end of file diff --git a/src/i18n/koreana.json b/src/i18n/koreana.json index 06d0f58..f6a5b4d 100755 --- a/src/i18n/koreana.json +++ b/src/i18n/koreana.json @@ -1,43 +1,68 @@ { - "TITEL_SETTINGS":"", - "ENABLE_SETTINGS":"", - "USE_PERGAME_PROFILE":"", - "USING":"", - "DEFAULT":"", - "PROFILE":"", - "CPU_BOOST":"", - "CPU_BOOST_DESC":"", - "SMT_DESC":"", - "CPU_NUM":"", - "CPU_NUM_DESC":"", - "TDP":"", - "TDP_DESC":"", - "RYZENADJ_NOT_FOUND":"", - "WATTS":"", - "GPU_FREQMODE":"", - "UNLIMITED":"", - "FIXED_FREQ":"", - "RANGE_FREQ":"", - "AUTO_FREQ":"", - "GPU_FIX_FREQ":"", - "GPU_MIN_FREQ":"", - "GPU_MAX_FREQ":"", - "FAN_SPEED":"", - "CREATE_FAN_PROFILE":"", - "GRID_ALIG":"", - "FAN_MODE":"", - "NOT_CONTROLLED":"", - "FIXED":"", - "CURVE":"", - "SNAP_GRIDLINE":"", - "FAN_SPEED_PERCENT":"", - "SENSOR_TEMP":"", - "CREATE_FAN_PROFILE_TIP":"", - "SELECT_FAN_PROFILE_TIP":"", - "FAN_PROFILE_NAME":"", - "USE":"", - "DELETE":"", - "CREATE":"", - "CANCEL":"", - "CURENT_STAT":"" + "TITEL_SETTINGS":"설정", + "ENABLE_SETTINGS":"설정 활성화", + "USE_PERGAME_PROFILE":"게임별 프로필 사용", + "USING":"사용 중", + "DEFAULT":"기본값", + "PROFILE":"프로필", + "CPU_BOOST":"CPU 부스트", + "CPU_BOOST_DESC":"최대 CPU 주파수 증가", + "SMT_DESC":"하이퍼스레딩 활성화", + "CPU_NUM":"CPU 코어 수", + "CPU_NUM_DESC":"활성화할 물리적 코어 설정", + "CPU_MAX_PERF":"CPU 최대 성능", + "TDP":"열 설계 전력 (TDP) 제한", + "TDP_DESC":"전체 전력 소비를 줄이기 위해 프로세서 전력 제한", + "RYZENADJ_NOT_FOUND":"RyzenAdj를 찾을 수 없음", + "WATTS":"와트", + "GPU_FREQMODE":"GPU 클럭 주파수 모드", + "UNLIMITED":"제한 없음", + "FIXED_FREQ":"고정", + "RANGE_FREQ":"범위", + "AUTO_FREQ":"자동", + "GPU_FIX_FREQ":"GPU 클럭 주파수", + "GPU_MIN_FREQ":"최소 주파수 제한", + "GPU_MAX_FREQ":"최대 주파수 제한", + "FAN_SPEED":"팬 속도", + "CREATE_FAN_PROFILE":"팬 프로필 생성", + "GRID_ALIG":"그리드 정렬", + "FAN_MODE":"팬 모드", + "NOT_CONTROLLED":"제어 안 함", + "FIXED":"고정", + "CURVE":"곡선", + "SNAP_GRIDLINE":"그리드 선 교차점에 스냅", + "FAN_SPEED_PERCENT":"팬 속도 백분율", + "SENSOR_TEMP":"센서 온도", + "CREATE_FAN_PROFILE_TIP":"팬 프로필 생성", + "SELECT_FAN_PROFILE_TIP":"팬 프로필 선택", + "FAN_PROFILE_NAME":"프로필 이름", + "USE":"사용", + "DELETE":"삭제", + "CREATE":"생성", + "CANCEL":"취소", + "CURENT_STAT":"현재 상태", + "EDIT":"편집", + "SAVE":"저장", + "NATIVE_FREQ":"기본", + "MORE":"더 보기", + "REINSTALL_PLUGIN": "플러그인 재설치", + "UPDATE_PLUGIN": "업데이트:", + "ROLLBACK_PLUGIN": "롤백:", + "INSTALLED_VERSION": "설치된 버전", + "LATEST_VERSION": "최신 버전", + "GPU_NATIVE_SLIDER": "기본 GPU 슬라이더", + "GPU_NATIVE_SLIDER_DESC": "기본 GPU 제어 슬라이더 활성화", + "USE_PERACMODE_PROFILE": "전원 모드별 프로필 사용", + "AC_MODE": "AC 모드", + "BAT_MODE": "배터리 모드", + "CUSTOM_TDP_RANGE": "사용자 정의 TDP 슬라이더 범위", + "RESET_ALL": "모두 초기화", + "NATIVE_FREQ_DESC": "시스템 단축 메뉴로 주파수 설정", + "UNLIMITED_DESC": "GPU 주파수 제한 없음, 시스템 기본 스케줄링", + "FIXED_FREQ_DESC": "GPU 주파수 고정", + "RANGE_FREQ_DESC": "GPU 주파수 범위 설정", + "AUTO_FREQ_DESC": "GPU 주파수 자동 조정, TDP 제한 강제 비활성화, 부스트 비활성화", + "AUTO_FREQ_TDP_NOTIF": "GPU 모드 {{mode}}, TDP 제한 비활성화", + "FORCE_SHOW_TDP": "TDP 제어 강제 표시", + "FORCE_SHOW_TDP_DESC": "기본적으로 플러그인은 기본 TDP 슬라이더를 처리합니다. 기본 슬라이더에 문제가 있는 경우 이 옵션을 활성화하여 플러그인 내부 TDP 제어 사용" } \ No newline at end of file diff --git a/src/i18n/localizeMap.ts b/src/i18n/localizeMap.ts index 549285e..f177d4f 100755 --- a/src/i18n/localizeMap.ts +++ b/src/i18n/localizeMap.ts @@ -132,6 +132,7 @@ export enum localizeStrEnum { MORE = "MORE", REINSTALL_PLUGIN = "REINSTALL_PLUGIN", UPDATE_PLUGIN = "UPDATE_PLUGIN", + ROLLBACK_PLUGIN = "ROLLBACK_PLUGIN", INSTALLED_VERSION = "INSTALLED_VERSION", LATEST_VERSION = "LATEST_VERSION", diff --git a/src/i18n/schinese.json b/src/i18n/schinese.json index a33bfd5..ba52cce 100755 --- a/src/i18n/schinese.json +++ b/src/i18n/schinese.json @@ -46,7 +46,8 @@ "NATIVE_FREQ":"原生设置", "MORE":"更多", "REINSTALL_PLUGIN": "重新安装插件", - "UPDATE_PLUGIN": "更新插件到", + "UPDATE_PLUGIN": "更新到", + "ROLLBACK_PLUGIN": "回滚到", "INSTALLED_VERSION": "当前版本", "LATEST_VERSION": "最新版本", "GPU_NATIVE_SLIDER": "原生控制条", diff --git a/src/i18n/tchinese.json b/src/i18n/tchinese.json index d091c19..81ee3d8 100755 --- a/src/i18n/tchinese.json +++ b/src/i18n/tchinese.json @@ -1,67 +1,68 @@ { "TITEL_SETTINGS":"設定", - "ENABLE_SETTINGS":"啟用插件功能列", - "USE_PERGAME_PROFILE":"使用按遊戲設定的配置文件", + "ENABLE_SETTINGS":"啟用設定", + "USE_PERGAME_PROFILE":"依遊戲設定檔案", "USING":"正在使用", - "DEFAULT":"默認", - "PROFILE":"配置文件", - "CPU_BOOST":"睿頻模式", - "CPU_BOOST_DESC":"提升最大cpu頻率", - "SMT_DESC":"啟用多執行續", - "CPU_NUM":"CPU內核數", - "CPU_NUM_DESC":"設置啟用CPU內核數量", - "CPU_MAX_PERF":"最大效能百分比", - "TDP":"散熱設計功率 (TDP) 限制", - "TDP_DESC":"限制處理器功率以降低總功率", - "RYZENADJ_NOT_FOUND":"未檢測到ryzenAdj文件", - "WATTS":"瓦特(W)", + "DEFAULT":"預設", + "PROFILE":"設定檔", + "CPU_BOOST":"超頻模式", + "CPU_BOOST_DESC":"提升最大 CPU 頻率", + "SMT_DESC":"啟用超執行緒", + "CPU_NUM":"CPU 核心數", + "CPU_NUM_DESC":"設定啟用的實體核心數", + "CPU_MAX_PERF":"CPU 最大效能", + "TDP":"熱設計功耗 (TDP) 限制", + "TDP_DESC":"限制處理器功耗以降低總功耗", + "RYZENADJ_NOT_FOUND":"未偵測到 RyzenAdj", + "WATTS":"瓦特", "GPU_FREQMODE":"GPU 頻率模式", "UNLIMITED":"不限制", - "FIXED_FREQ":"鎖定頻率", - "RANGE_FREQ":"範圍頻率", - "AUTO_FREQ":"自適應", + "FIXED_FREQ":"固定", + "RANGE_FREQ":"範圍", + "AUTO_FREQ":"自動調整", "GPU_FIX_FREQ":"GPU 頻率", - "GPU_MIN_FREQ":"GPU 最小頻率限制", - "GPU_MAX_FREQ":"GPU 最大頻率限制", + "GPU_MIN_FREQ":"最低頻率", + "GPU_MAX_FREQ":"最高頻率", "FAN_SPEED":"風扇轉速", - "CREATE_FAN_PROFILE":"創建風扇配置檔", - "GRID_ALIG":"網格對齊", + "CREATE_FAN_PROFILE":"建立風扇設定檔", + "GRID_ALIG":"格線對齊", "FAN_MODE":"風扇模式", "NOT_CONTROLLED":"不控制", "FIXED":"固定", "CURVE":"曲線", - "SNAP_GRIDLINE":"對齊到網格線交點", + "SNAP_GRIDLINE":"對齊至格線交點", "FAN_SPEED_PERCENT":"風扇轉速百分比", "SENSOR_TEMP":"感測器溫度", - "CREATE_FAN_PROFILE_TIP":"創建一個風扇配置檔", - "SELECT_FAN_PROFILE_TIP":"選擇一個風扇配置檔", - "FAN_PROFILE_NAME":"配置檔名稱", + "CREATE_FAN_PROFILE_TIP":"建立風扇設定檔", + "SELECT_FAN_PROFILE_TIP":"選擇風扇設定檔", + "FAN_PROFILE_NAME":"設定檔名稱", "USE":"使用", "DELETE":"刪除", - "CREATE":"創建", + "CREATE":"建立", "CANCEL":"取消", - "CURENT_STAT":"當前狀態", + "CURENT_STAT":"目前狀態", "EDIT":"編輯", "SAVE":"儲存", - "NATIVE_FREQ":"本機設定", + "NATIVE_FREQ":"原生設定", "MORE":"更多", - "REINSTALL_PLUGIN": "重新安裝插件", - "UPDATE_PLUGIN": "更新插件至", + "REINSTALL_PLUGIN": "重新安裝外掛程式", + "UPDATE_PLUGIN": "更新至", + "ROLLBACK_PLUGIN": "還原至", "INSTALLED_VERSION": "目前版本", "LATEST_VERSION": "最新版本", - "GPU_NATIVE_SLIDER": "原生控制條", - "GPU_NATIVE_SLIDER_DESC": "修復並啟用原生控制條", - "USE_PERACMODE_PROFILE": "使用依充電狀態設定的設定檔", - "AC_MODE": "充電模式", + "GPU_NATIVE_SLIDER": "原生 GPU 控制滑桿", + "GPU_NATIVE_SLIDER_DESC": "啟用原生 GPU 控制滑桿", + "USE_PERACMODE_PROFILE": "依電源模式設定檔", + "AC_MODE": "外接電源模式", "BAT_MODE": "電池模式", - "CUSTOM_TDP_RANGE": "自訂 TDP 滑塊範圍", - "RESET_ALL": "重置所有設定", - "NATIVE_FREQ_DESC": "使用系統快捷選單設定頻率", - "UNLIMITED_DESC": "不限制 GPU 頻率,系統預設調度", + "CUSTOM_TDP_RANGE": "自訂 TDP 滑桿範圍", + "RESET_ALL": "重設所有設定", + "NATIVE_FREQ_DESC": "透過系統快速選單設定頻率", + "UNLIMITED_DESC": "不限制 GPU 頻率,使用系統預設排程", "FIXED_FREQ_DESC": "固定 GPU 頻率", "RANGE_FREQ_DESC": "設定 GPU 頻率範圍", - "AUTO_FREQ_DESC": "自適應 GPU 頻率,強制關閉 TDP 限制,關閉 Boost", - "AUTO_FREQ_TDP_NOTIF": "GPU 模式为{{mode}}, 關閉 TDP 限制", + "AUTO_FREQ_DESC": "GPU 頻率自動調整,強制關閉 TDP 限制,關閉超頻", + "AUTO_FREQ_TDP_NOTIF": "GPU 模式 {{mode}},TDP 限制已關閉", "FORCE_SHOW_TDP": "強制顯示 TDP 控制", - "FORCE_SHOW_TDP_DESC": "默認情況下, 插件將處理原生 TDP 滑塊。如果原生滑塊出現問題, 請啟用此選項以使用插件內部的 TDP 控制" + "FORCE_SHOW_TDP_DESC": "預設情況下外掛程式會處理原生 TDP 滑桿。如果原生滑桿有問題,請開啟此選項以使用外掛程式內建的 TDP 控制" } \ No newline at end of file diff --git a/src/i18n/thai.json b/src/i18n/thai.json index 06d0f58..8fb412a 100755 --- a/src/i18n/thai.json +++ b/src/i18n/thai.json @@ -1,43 +1,68 @@ { - "TITEL_SETTINGS":"", - "ENABLE_SETTINGS":"", - "USE_PERGAME_PROFILE":"", - "USING":"", - "DEFAULT":"", - "PROFILE":"", - "CPU_BOOST":"", - "CPU_BOOST_DESC":"", - "SMT_DESC":"", - "CPU_NUM":"", - "CPU_NUM_DESC":"", - "TDP":"", - "TDP_DESC":"", - "RYZENADJ_NOT_FOUND":"", - "WATTS":"", - "GPU_FREQMODE":"", - "UNLIMITED":"", - "FIXED_FREQ":"", - "RANGE_FREQ":"", - "AUTO_FREQ":"", - "GPU_FIX_FREQ":"", - "GPU_MIN_FREQ":"", - "GPU_MAX_FREQ":"", - "FAN_SPEED":"", - "CREATE_FAN_PROFILE":"", - "GRID_ALIG":"", - "FAN_MODE":"", - "NOT_CONTROLLED":"", - "FIXED":"", - "CURVE":"", - "SNAP_GRIDLINE":"", - "FAN_SPEED_PERCENT":"", - "SENSOR_TEMP":"", - "CREATE_FAN_PROFILE_TIP":"", - "SELECT_FAN_PROFILE_TIP":"", - "FAN_PROFILE_NAME":"", - "USE":"", - "DELETE":"", - "CREATE":"", - "CANCEL":"", - "CURENT_STAT":"" + "TITEL_SETTINGS":"การตั้งค่า", + "ENABLE_SETTINGS":"เปิดใช้งานการตั้งค่า", + "USE_PERGAME_PROFILE":"ใช้โปรไฟล์ตามเกม", + "USING":"กำลังใช้งาน", + "DEFAULT":"ค่าเริ่มต้น", + "PROFILE":"โปรไฟล์", + "CPU_BOOST":"เพิ่มประสิทธิภาพ CPU", + "CPU_BOOST_DESC":"เพิ่มความถี่สูงสุดของ CPU", + "SMT_DESC":"เปิดใช้งาน Hyperthreading", + "CPU_NUM":"จำนวนคอร์ CPU", + "CPU_NUM_DESC":"กำหนดคอร์กายภาพที่เปิดใช้งาน", + "CPU_MAX_PERF":"ประสิทธิภาพสูงสุดของ CPU", + "TDP":"จำกัดกำลังความร้อน (TDP)", + "TDP_DESC":"จำกัดกำลังของโปรเซสเซอร์เพื่อลดการใช้พลังงานรวม", + "RYZENADJ_NOT_FOUND":"ไม่พบ RyzenAdj", + "WATTS":"วัตต์", + "GPU_FREQMODE":"โหมดความถี่ GPU", + "UNLIMITED":"ไม่จำกัด", + "FIXED_FREQ":"คงที่", + "RANGE_FREQ":"ช่วง", + "AUTO_FREQ":"อัตโนมัติ", + "GPU_FIX_FREQ":"ความถี่ GPU", + "GPU_MIN_FREQ":"ความถี่ต่ำสุด", + "GPU_MAX_FREQ":"ความถี่สูงสุด", + "FAN_SPEED":"ความเร็วพัดลม", + "CREATE_FAN_PROFILE":"สร้างโปรไฟล์พัดลม", + "GRID_ALIG":"การจัดตำแหน่งตาราง", + "FAN_MODE":"โหมดพัดลม", + "NOT_CONTROLLED":"ไม่ควบคุม", + "FIXED":"คงที่", + "CURVE":"เส้นโค้ง", + "SNAP_GRIDLINE":"ดึงดูดไปที่จุดตัดของเส้นตาราง", + "FAN_SPEED_PERCENT":"ความเร็วพัดลม (%)", + "SENSOR_TEMP":"อุณหภูมิเซ็นเซอร์", + "CREATE_FAN_PROFILE_TIP":"สร้างโปรไฟล์พัดลม", + "SELECT_FAN_PROFILE_TIP":"เลือกโปรไฟล์พัดลม", + "FAN_PROFILE_NAME":"ชื่อโปรไฟล์", + "USE":"ใช้", + "DELETE":"ลบ", + "CREATE":"สร้าง", + "CANCEL":"ยกเลิก", + "CURENT_STAT":"สถานะปัจจุบัน", + "EDIT":"แก้ไข", + "SAVE":"บันทึก", + "NATIVE_FREQ":"ดั้งเดิม", + "MORE":"เพิ่มเติม", + "REINSTALL_PLUGIN": "ติดตั้งปลั๊กอินใหม่", + "UPDATE_PLUGIN": "อัปเดตเป็น", + "ROLLBACK_PLUGIN": "ย้อนกลับเป็น", + "INSTALLED_VERSION": "เวอร์ชันที่ติดตั้ง", + "LATEST_VERSION": "เวอร์ชันล่าสุด", + "GPU_NATIVE_SLIDER": "แถบเลื่อน GPU ดั้งเดิม", + "GPU_NATIVE_SLIDER_DESC": "เปิดใช้งานแถบเลื่อนควบคุม GPU ดั้งเดิม", + "USE_PERACMODE_PROFILE": "ใช้โปรไฟล์ตามโหมดพลังงาน", + "AC_MODE": "โหมดไฟฟ้า", + "BAT_MODE": "โหมดแบตเตอรี่", + "CUSTOM_TDP_RANGE": "ช่วง TDP แบบกำหนดเอง", + "RESET_ALL": "รีเซ็ตทั้งหมด", + "NATIVE_FREQ_DESC": "ตั้งค่าความถี่ผ่านเมนูระบบ", + "UNLIMITED_DESC": "ไม่จำกัดความถี่ GPU, ใช้การจัดการระบบเริ่มต้น", + "FIXED_FREQ_DESC": "ความถี่ GPU คงที่", + "RANGE_FREQ_DESC": "กำหนดช่วงความถี่ GPU", + "AUTO_FREQ_DESC": "ความถี่ GPU แบบปรับตัว, บังคับปิดการจำกัด TDP, ปิด Boost", + "AUTO_FREQ_TDP_NOTIF": "โหมด GPU {{mode}}, ปิดการจำกัด TDP", + "FORCE_SHOW_TDP": "บังคับแสดงการควบคุม TDP", + "FORCE_SHOW_TDP_DESC": "โดยค่าเริ่มต้น ปลั๊กอินจะประมวลผลแถบเลื่อน TDP ดั้งเดิม หากแถบเลื่อนดั้งเดิมมีปัญหา ให้เปิดใช้งานตัวเลือกนี้เพื่อใช้การควบคุม TDP ภายในของปลั๊กอิน" } \ No newline at end of file diff --git a/src/util/index.ts b/src/util/index.ts index de93359..e7a39a3 100755 --- a/src/util/index.ts +++ b/src/util/index.ts @@ -5,4 +5,5 @@ export * from "./position" export * from "./steamClient" export * from "./enum" export * from "./patch" -export * from "./steamUtils" \ No newline at end of file +export * from "./steamUtils" +export * from "./version" \ No newline at end of file diff --git a/src/util/version.ts b/src/util/version.ts new file mode 100644 index 0000000..6e69c09 --- /dev/null +++ b/src/util/version.ts @@ -0,0 +1,18 @@ +/** + * Compare two version strings + * @param v1 First version string + * @param v2 Second version string + * @returns 1 if v1 > v2, -1 if v1 < v2, 0 if equal + */ +export const compareVersions = (v1: string, v2: string): number => { + const v1Parts = v1.replace('v', '').split('.').map(Number); + const v2Parts = v2.replace('v', '').split('.').map(Number); + + for (let i = 0; i < Math.max(v1Parts.length, v2Parts.length); i++) { + const v1Part = v1Parts[i] || 0; + const v2Part = v2Parts[i] || 0; + if (v1Part > v2Part) return 1; + if (v1Part < v2Part) return -1; + } + return 0; +};