77import winreg
88from PyQt5 .QtGui import QDesktopServices , QColor , QBrush , QIcon
99from PyQt5 .QtWidgets import QMainWindow , QFileDialog , QListWidgetItem , QProgressDialog , QApplication
10- from PyQt5 .QtCore import Qt , QUrl , QTimer , QTranslator
10+ from PyQt5 .QtCore import Qt , QUrl , QTimer , QTranslator , QLocale
1111from subprocess import run , CREATE_NO_WINDOW
1212from pathlib import Path
13- from locale import getlocale
1413
1514import UI .ui_main as ui_main
1615from Libs .ConnectionCheck import ConnectionCheckThread
@@ -66,7 +65,7 @@ def __init__(self):
6665 self .creamapidone = False
6766
6867 self .GITHUB_REPO = "https://api.github.com/repos/seuyh/stellaris-dlc-unlocker/releases/latest"
69- self .current_version = '2.25 '
68+ self .current_version = '2.263 '
7069 self .version_label .setText (f'Ver. { str (self .current_version )} ' )
7170
7271 self .copy_files_radio .setVisible (False )
@@ -118,17 +117,20 @@ def __init__(self):
118117 self .log_widget .clear ()
119118
120119 def get_app_language (self ):
121- lang , _ = getlocale ()
120+ lang = QLocale .system ().name ().lower ()
121+ print (f"Detected language: { lang } " )
122122 if not lang :
123123 return "en"
124124 lang = lang .lower ()
125- if "russian" in lang :
125+ if lang . startswith ( "ru" ) :
126126 return "ru"
127- elif "chinese" in lang :
127+ elif lang . startswith ( "zh" ) :
128128 return "zh"
129129 else :
130130 return "en"
131131
132+ def apply_initial_language (self ):
133+ self .set_language_radio (self .get_app_language ())
132134
133135 def set_language_radio (self , lang ):
134136 if lang == "ru" :
@@ -143,23 +145,27 @@ def set_language_radio(self, lang):
143145 def apply_language (self , lang ):
144146 app = QApplication .instance ()
145147 app .removeTranslator (self .translator )
148+ print (f"Trying to apply language: { lang } " )
146149
147150 if lang == "ru" :
148- if self .translator .load (os .path .join ("UI" , "translations" , "ru_RU.qm" )):
149- app .installTranslator (self .translator )
151+ ok = self .translator .load (os .path .join (self .parent_directory , "UI" , "translations" , "ru_RU.qm" ))
150152 elif lang == "zh" :
151- if self .translator .load (os .path .join ("UI" , "translations" , "zh_CN.qm" )):
152- app .installTranslator (self .translator )
153+ ok = self .translator .load (os .path .join (self .parent_directory , "UI" , "translations" , "zh_CN.qm" ))
154+ else :
155+ ok = False
156+
157+ if ok :
158+ app .installTranslator (self .translator )
153159
154160 self .retranslateUi (self )
155161
156162 def showEvent (self , event ):
157163 super (MainWindow , self ).showEvent (event )
158- self .set_language_radio ( self . get_app_language () )
164+ self .apply_initial_language ( )
159165 print ('Start connection check' )
160- QTimer .singleShot (5 , self .start_connection_check )
166+ QTimer .singleShot (2 , self .start_connection_check )
161167 print ('Start updates check' )
162- QTimer .singleShot (4 , lambda : self .check_for_updates (self .current_version ))
168+ QTimer .singleShot (2 , lambda : self .check_for_updates (self .current_version ))
163169
164170 def switch_to_russian (self ):
165171 if self .ru_lang .isChecked ():
@@ -294,7 +300,7 @@ def check_for_updates(self, current_version):
294300 latest_release = response .json ()
295301 latest_version = latest_release ['tag_name' ]
296302
297- if latest_version != current_version :
303+ if latest_version > current_version :
298304 print (f"Found new version: { latest_version } ." )
299305 if self .dialogexec (self .tr ('New version' ),
300306 self .tr ('New version found\n Please update the program to correctly work ' ),
@@ -305,6 +311,9 @@ def check_for_updates(self, current_version):
305311 exe_asset_url = asset ['browser_download_url' ]
306312 self .open_link_in_browser (exe_asset_url )
307313 self .close ()
314+ elif latest_version < current_version :
315+ self .errorexec (self .tr ("Beta" ), self .tr ("Ok" ),
316+ exitApp = False )
308317 else :
309318 print (f"Unlocker is up to date" )
310319 except :
@@ -593,6 +602,7 @@ def reinstall(self):
593602 self .download_files_radio .setChecked (True )
594603 print ('Reinstalling' )
595604 paradox_folder1 , paradox_folder2 , paradox_folder3 , paradox_folder4 = launcher_path ()
605+ print (f"Launcher folders: [{ paradox_folder1 , paradox_folder2 , paradox_folder3 , paradox_folder4 } ]" )
596606 if not self .skip_launcher_reinstall_checbox .isChecked ():
597607 self .reinstall_thread = ReinstallThread (self .game_path , paradox_folder1 , paradox_folder2 , paradox_folder3 ,
598608 paradox_folder4 , self .launcher_downloaded ,
0 commit comments