diff --git a/documentation/localization_guide/README.md b/documentation/localization_guide/README.md index c86b8b2..7d55b2b 100644 --- a/documentation/localization_guide/README.md +++ b/documentation/localization_guide/README.md @@ -21,9 +21,9 @@ Current translation status: | Locale | Progress | Translated | | :----- | -------: | ---------: | -| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 of 193 | -| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 of 193 | -| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 193 of 193 | +| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 of 213 | +| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 of 213 | +| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 213 of 213 | --- diff --git a/documentation/localization_guide/README.ru.md b/documentation/localization_guide/README.ru.md index 1e6cb0a..fe04760 100644 --- a/documentation/localization_guide/README.ru.md +++ b/documentation/localization_guide/README.ru.md @@ -21,9 +21,9 @@ | Локаль | Прогресс | Переведено | | :----- | -------: | ---------: | -| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 из 193 | -| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 из 193 | -| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 193 из 193 | +| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 из 213 | +| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 из 213 | +| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 213 из 213 | --- diff --git a/portprotonqt/locales/de_DE/LC_MESSAGES/messages.mo b/portprotonqt/locales/de_DE/LC_MESSAGES/messages.mo index bc8f1aa..57f894f 100644 Binary files a/portprotonqt/locales/de_DE/LC_MESSAGES/messages.mo and b/portprotonqt/locales/de_DE/LC_MESSAGES/messages.mo differ diff --git a/portprotonqt/locales/de_DE/LC_MESSAGES/messages.po b/portprotonqt/locales/de_DE/LC_MESSAGES/messages.po index 184dfe8..9597751 100644 --- a/portprotonqt/locales/de_DE/LC_MESSAGES/messages.po +++ b/portprotonqt/locales/de_DE/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-09-23 22:23+0500\n" +"POT-Creation-Date: 2025-10-06 17:46+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: de_DE\n" @@ -191,6 +191,10 @@ msgstr "" msgid "Failed to delete custom data: {error}" msgstr "" +#, python-brace-format +msgid "Added '{game_name}' successfully" +msgstr "" + msgid "Game name and executable path are required" msgstr "" @@ -382,13 +386,71 @@ msgstr "" msgid "Find Games ..." msgstr "" +#, python-brace-format +msgid "Added '{name}'" +msgstr "" + msgid "Here you can configure automatic game installation..." msgstr "" msgid "List of available emulators and their configuration..." msgstr "" -msgid "Various Wine parameters and versions..." +msgid "Compatibility tool:" +msgstr "" + +msgid "Prefix:" +msgstr "" + +msgid "Wine Configuration" +msgstr "" + +msgid "Registry Editor" +msgstr "" + +msgid "Control Panel" +msgstr "" + +msgid "Task Manager" +msgstr "" + +msgid "Command Prompt" +msgstr "" + +msgid "Uninstaller" +msgstr "" + +msgid "Create Prefix Backup" +msgstr "" + +msgid "Load Prefix Backup" +msgstr "" + +msgid "Delete Compatibility Tool" +msgstr "" + +msgid "Delete Prefix" +msgstr "" + +msgid "Clear Prefix" +msgstr "" + +msgid "Failed to start backup process." +msgstr "" + +msgid "Failed to start restore process." +msgstr "" + +msgid "Prefix backup completed." +msgstr "" + +msgid "Prefix backup failed." +msgstr "" + +msgid "Prefix restore completed." +msgstr "" + +msgid "Prefix restore failed." msgstr "" msgid "Main PortProton parameters..." diff --git a/portprotonqt/locales/es_ES/LC_MESSAGES/messages.mo b/portprotonqt/locales/es_ES/LC_MESSAGES/messages.mo index 28f3ddf..b25aaed 100644 Binary files a/portprotonqt/locales/es_ES/LC_MESSAGES/messages.mo and b/portprotonqt/locales/es_ES/LC_MESSAGES/messages.mo differ diff --git a/portprotonqt/locales/es_ES/LC_MESSAGES/messages.po b/portprotonqt/locales/es_ES/LC_MESSAGES/messages.po index c50ddfb..2708f56 100644 --- a/portprotonqt/locales/es_ES/LC_MESSAGES/messages.po +++ b/portprotonqt/locales/es_ES/LC_MESSAGES/messages.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-09-23 22:23+0500\n" +"POT-Creation-Date: 2025-10-06 17:46+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language: es_ES\n" @@ -191,6 +191,10 @@ msgstr "" msgid "Failed to delete custom data: {error}" msgstr "" +#, python-brace-format +msgid "Added '{game_name}' successfully" +msgstr "" + msgid "Game name and executable path are required" msgstr "" @@ -382,13 +386,71 @@ msgstr "" msgid "Find Games ..." msgstr "" +#, python-brace-format +msgid "Added '{name}'" +msgstr "" + msgid "Here you can configure automatic game installation..." msgstr "" msgid "List of available emulators and their configuration..." msgstr "" -msgid "Various Wine parameters and versions..." +msgid "Compatibility tool:" +msgstr "" + +msgid "Prefix:" +msgstr "" + +msgid "Wine Configuration" +msgstr "" + +msgid "Registry Editor" +msgstr "" + +msgid "Control Panel" +msgstr "" + +msgid "Task Manager" +msgstr "" + +msgid "Command Prompt" +msgstr "" + +msgid "Uninstaller" +msgstr "" + +msgid "Create Prefix Backup" +msgstr "" + +msgid "Load Prefix Backup" +msgstr "" + +msgid "Delete Compatibility Tool" +msgstr "" + +msgid "Delete Prefix" +msgstr "" + +msgid "Clear Prefix" +msgstr "" + +msgid "Failed to start backup process." +msgstr "" + +msgid "Failed to start restore process." +msgstr "" + +msgid "Prefix backup completed." +msgstr "" + +msgid "Prefix backup failed." +msgstr "" + +msgid "Prefix restore completed." +msgstr "" + +msgid "Prefix restore failed." msgstr "" msgid "Main PortProton parameters..." diff --git a/portprotonqt/locales/messages.pot b/portprotonqt/locales/messages.pot index 79bb871..d059397 100644 --- a/portprotonqt/locales/messages.pot +++ b/portprotonqt/locales/messages.pot @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: PortProtonQt 0.1.1\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-09-23 22:23+0500\n" +"POT-Creation-Date: 2025-10-06 17:46+0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -189,6 +189,10 @@ msgstr "" msgid "Failed to delete custom data: {error}" msgstr "" +#, python-brace-format +msgid "Added '{game_name}' successfully" +msgstr "" + msgid "Game name and executable path are required" msgstr "" @@ -380,13 +384,71 @@ msgstr "" msgid "Find Games ..." msgstr "" +#, python-brace-format +msgid "Added '{name}'" +msgstr "" + msgid "Here you can configure automatic game installation..." msgstr "" msgid "List of available emulators and their configuration..." msgstr "" -msgid "Various Wine parameters and versions..." +msgid "Compatibility tool:" +msgstr "" + +msgid "Prefix:" +msgstr "" + +msgid "Wine Configuration" +msgstr "" + +msgid "Registry Editor" +msgstr "" + +msgid "Control Panel" +msgstr "" + +msgid "Task Manager" +msgstr "" + +msgid "Command Prompt" +msgstr "" + +msgid "Uninstaller" +msgstr "" + +msgid "Create Prefix Backup" +msgstr "" + +msgid "Load Prefix Backup" +msgstr "" + +msgid "Delete Compatibility Tool" +msgstr "" + +msgid "Delete Prefix" +msgstr "" + +msgid "Clear Prefix" +msgstr "" + +msgid "Failed to start backup process." +msgstr "" + +msgid "Failed to start restore process." +msgstr "" + +msgid "Prefix backup completed." +msgstr "" + +msgid "Prefix backup failed." +msgstr "" + +msgid "Prefix restore completed." +msgstr "" + +msgid "Prefix restore failed." msgstr "" msgid "Main PortProton parameters..." diff --git a/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.mo b/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.mo index 597ad48..8cffe66 100644 Binary files a/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.mo and b/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.mo differ diff --git a/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.po b/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.po index ccb5e7c..0276d4f 100644 --- a/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.po +++ b/portprotonqt/locales/ru_RU/LC_MESSAGES/messages.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-09-23 22:23+0500\n" -"PO-Revision-Date: 2025-09-23 22:23+0500\n" +"POT-Creation-Date: 2025-10-06 17:46+0500\n" +"PO-Revision-Date: 2025-10-06 17:46+0500\n" "Last-Translator: \n" -"Language-Team: ru_RU \n" "Language: ru_RU\n" +"Language-Team: ru_RU \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 " -"&& (n%100<10 || n%100>=20) ? 1 : 2);\n" "Generated-By: Babel 2.17.0\n" -"X-Generator: Poedit 3.6\n" msgid "Error" msgstr "Ошибка" @@ -87,11 +86,11 @@ msgstr "Успешно" #, python-brace-format msgid "" -"'{game_name}' was added to Steam. Please restart Steam for changes to take " -"effect." +"'{game_name}' was added to Steam. Please restart Steam for changes to " +"take effect." msgstr "" -"'{game_name}' был(а) добавлен(а) в Steam. Пожалуйста, перезапустите Steam, " -"чтобы изменения вступили в силу." +"'{game_name}' был(а) добавлен(а) в Steam. Пожалуйста, перезапустите " +"Steam, чтобы изменения вступили в силу." #, python-brace-format msgid "Executable not found for game: {game_name}" @@ -179,11 +178,11 @@ msgstr "Подтвердите удаление" #, python-brace-format msgid "" -"Are you sure you want to delete '{game_name}'? This will remove the .desktop " -"file and custom data." +"Are you sure you want to delete '{game_name}'? This will remove the " +".desktop file and custom data." msgstr "" -"Вы уверены, что хотите удалить '{game_name}'? Это приведёт к удалению файла ." -"desktop и пользовательских данных." +"Вы уверены, что хотите удалить '{game_name}'? Это приведёт к удалению " +"файла .desktop и пользовательских данных." #, python-brace-format msgid "Failed to delete .desktop file: {error}" @@ -197,6 +196,10 @@ msgstr "'{game_name}' был(а) успешно удалён(а)" msgid "Failed to delete custom data: {error}" msgstr "Не удалось удалить пользовательские данные: {error}" +#, python-brace-format +msgid "Added '{game_name}' successfully" +msgstr "'{game_name}' успешно добавлен(а)" + msgid "Game name and executable path are required" msgstr "Требуются название игры и путь к исполняемому файлу" @@ -225,11 +228,11 @@ msgstr "Не удалось добавить '{game_name}' в Steam: {error}" #, python-brace-format msgid "" -"'{game_name}' was removed from Steam. Please restart Steam for changes to take " -"effect." +"'{game_name}' was removed from Steam. Please restart Steam for changes to" +" take effect." msgstr "" -"'{game_name}' был(а) удалён(а) из Steam. Пожалуйста, перезапустите Steam, чтобы " -"изменения вступили в силу." +"'{game_name}' был(а) удалён(а) из Steam. Пожалуйста, перезапустите Steam," +" чтобы изменения вступили в силу." #, python-brace-format msgid "Failed to remove game '{game_name}' from Steam: {error}" @@ -274,7 +277,7 @@ msgstr "Путь: " #, python-format msgid "Access denied: %s" -msgstr "Доступ запрещен: %s" +msgstr "Доступ запрещён: %s" msgid "Edit Game" msgstr "Редактировать игру" @@ -390,14 +393,72 @@ msgstr "Игровая библиотека" msgid "Find Games ..." msgstr "Найти игры..." +#, python-brace-format +msgid "Added '{name}'" +msgstr "'{name}' добавлен(а)" + msgid "Here you can configure automatic game installation..." msgstr "Здесь можно настроить автоматическую установку игр..." msgid "List of available emulators and their configuration..." msgstr "Список доступных эмуляторов и их настройка..." -msgid "Various Wine parameters and versions..." -msgstr "Различные параметры и версии wine..." +msgid "Compatibility tool:" +msgstr "Инструмент совместимости:" + +msgid "Prefix:" +msgstr "Префикс:" + +msgid "Wine Configuration" +msgstr "Конфигурация Wine" + +msgid "Registry Editor" +msgstr "Редактор реестра" + +msgid "Control Panel" +msgstr "Панель управления" + +msgid "Task Manager" +msgstr "Диспетчер задач" + +msgid "Command Prompt" +msgstr "Командная строка" + +msgid "Uninstaller" +msgstr "Удаление программ" + +msgid "Create Prefix Backup" +msgstr "Создать резервную копию префикса" + +msgid "Load Prefix Backup" +msgstr "Загрузить резервную копию префикса" + +msgid "Delete Compatibility Tool" +msgstr "Удалить Инструмент совместимости" + +msgid "Delete Prefix" +msgstr "Удалить Префикс" + +msgid "Clear Prefix" +msgstr "Очистить Префикс" + +msgid "Failed to start backup process." +msgstr "Не удалось запустить процесс резервного копирования." + +msgid "Failed to start restore process." +msgstr "Не удалось запустить процесс восстановления." + +msgid "Prefix backup completed." +msgstr "Резервное копирование префикса завершено." + +msgid "Prefix backup failed." +msgstr "Сбой резервного копирования префикса." + +msgid "Prefix restore completed." +msgstr "Восстановление префикса завершено." + +msgid "Prefix restore failed." +msgstr "Восстановление префикса не удалось." msgid "Main PortProton parameters..." msgstr "Основные параметры PortProton..." @@ -482,7 +543,8 @@ msgstr "Подтвердите удаление" msgid "Are you sure you want to reset all settings? This action cannot be undone." msgstr "" -"Вы уверены, что хотите сбросить все настройки? Это действие нельзя отменить." +"Вы уверены, что хотите сбросить все настройки? Это действие нельзя " +"отменить." msgid "Settings reset. Restarting..." msgstr "Настройки сброшены. Перезапуск..." @@ -654,3 +716,4 @@ msgstr "Нет избранных" msgid "No recent games" msgstr "Нет недавних игр" + diff --git a/portprotonqt/main_window.py b/portprotonqt/main_window.py index 115891c..9248ccb 100644 --- a/portprotonqt/main_window.py +++ b/portprotonqt/main_window.py @@ -947,7 +947,6 @@ class MainWindow(QMainWindow): # Trigger visible images load QTimer.singleShot(200, self.game_library_manager.load_visible_images) - self.update_status_message.emit(_("Enriching from Steam..."), 3000) from portprotonqt.steam_api import get_steam_game_info_async get_steam_game_info_async(final_name, exec_line, on_steam_info) @@ -1026,7 +1025,7 @@ class MainWindow(QMainWindow): self.wineCombo.addItems(self.wine_versions) self.wineCombo.setStyleSheet(self.theme.SETTINGS_COMBO_STYLE) self.wineCombo.setFocusPolicy(Qt.FocusPolicy.StrongFocus) - self.wineTitleLabel = QLabel(_("Wine/Proton Version:")) + self.wineTitleLabel = QLabel(_("Compatibility tool:")) self.wineTitleLabel.setStyleSheet(self.theme.PARAMS_TITLE_STYLE) self.wineTitleLabel.setFocusPolicy(Qt.FocusPolicy.NoFocus) if self.wine_versions: @@ -1039,7 +1038,7 @@ class MainWindow(QMainWindow): self.prefixCombo.addItems(self.prefixes) self.prefixCombo.setStyleSheet(self.theme.SETTINGS_COMBO_STYLE) self.prefixCombo.setFocusPolicy(Qt.FocusPolicy.StrongFocus) - self.prefixTitleLabel = QLabel(_("Wine Prefix:")) + self.prefixTitleLabel = QLabel(_("Prefix:")) self.prefixTitleLabel.setStyleSheet(self.theme.PARAMS_TITLE_STYLE) self.prefixTitleLabel.setFocusPolicy(Qt.FocusPolicy.NoFocus) if self.prefixes: @@ -1080,12 +1079,12 @@ class MainWindow(QMainWindow): additional_grid.setSpacing(6) additional_buttons = [ - (_("Winetricks"), None), + ("Winetricks", None), (_("Create Prefix Backup"), self.create_prefix_backup), (_("Load Prefix Backup"), self.load_prefix_backup), - (_("Delete Proton"), None), + (_("Delete Compatibility Tool"), None), (_("Delete Prefix"), None), - (_("Clean Prefix"), None), + (_("Clear Prefix"), None), ] for i, (text, callback) in enumerate(additional_buttons): @@ -1111,7 +1110,6 @@ class MainWindow(QMainWindow): def create_prefix_backup(self): selected_prefix = self.prefixCombo.currentText() if not selected_prefix: - QMessageBox.warning(self, _("Error"), _("Select a prefix first.")) return file_explorer = FileExplorer(self, directory_only=True) file_explorer.file_signal.file_selected.connect(lambda path: self._perform_backup(path, selected_prefix)) @@ -1120,11 +1118,9 @@ class MainWindow(QMainWindow): def _perform_backup(self, backup_dir, prefix_name): os.makedirs(backup_dir, exist_ok=True) if not self.portproton_location: - QMessageBox.warning(self, _("Error"), _("PortProton location not found.")) return start_sh = os.path.join(self.portproton_location, "data", "scripts", "start.sh") if not os.path.exists(start_sh): - QMessageBox.warning(self, _("Error"), _("start.sh not found.")) return self.backup_process = QProcess(self) self.backup_process.finished.connect(lambda exitCode, exitStatus: self._on_backup_finished(exitCode)) @@ -1140,14 +1136,11 @@ class MainWindow(QMainWindow): def _perform_restore(self, file_path): if not file_path or not os.path.exists(file_path): - QMessageBox.warning(self, _("Error"), _("Valid .ppack file path required.")) return if not self.portproton_location: - QMessageBox.warning(self, _("Error"), _("PortProton location not found.")) return start_sh = os.path.join(self.portproton_location, "data", "scripts", "start.sh") if not os.path.exists(start_sh): - QMessageBox.warning(self, _("Error"), _("start.sh not found.")) return self.restore_process = QProcess(self) self.restore_process.finished.connect(lambda exitCode, exitStatus: self._on_restore_finished(exitCode))