2 Commits

Author SHA1 Message Date
e9c75b998f chore(localization): update
All checks were successful
Check Translations (disabled until yaspeller is fixed) / check-translations (push) Has been skipped
Code check / Check code (push) Successful in 1m17s
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-11-23 15:43:59 +05:00
bbfbc00c11 fix(settings): fix virtual keyboard
Signed-off-by: Boris Yumankulov <boria138@altlinux.org>
2025-11-23 15:28:30 +05:00
12 changed files with 469 additions and 112 deletions

View File

@@ -20,3 +20,33 @@ Stop Game
Fullscreen
Fulscreen
\t
Горячая
vkbasalt
dgVoodoo2
Zink
Vulkan
VKD3D
DirectX12
Prev Dir
Forced
GOverlay
Glide
all
futex
DLSS
fullscreen
ProtonGE
window
compositing
Zink
Use
bundled
dxvk
older games
versions
DLL Overrides
COMP
VKD3D
Select needed
CPUs
cores

View File

@@ -21,9 +21,9 @@ Current translation status:
| Locale | Progress | Translated |
| :----- | -------: | ---------: |
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 of 323 |
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 of 323 |
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 323 of 323 |
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 of 339 |
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 of 339 |
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 339 of 339 |
---

View File

@@ -21,9 +21,9 @@
| Локаль | Прогресс | Переведено |
| :----- | -------: | ---------: |
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 из 323 |
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 из 323 |
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 323 из 323 |
| [de_DE](./de_DE/LC_MESSAGES/messages.po) | 0% | 0 из 339 |
| [es_ES](./es_ES/LC_MESSAGES/messages.po) | 0% | 0 из 339 |
| [ru_RU](./ru_RU/LC_MESSAGES/messages.po) | 100% | 339 из 339 |
---

View File

@@ -724,7 +724,7 @@ class InputManager(QObject):
logger.error(f"Error restoring gamepad handlers from Settings: {e}")
def handle_settings_button(self, button_code, value):
if self.settings_dialog is None or value == 0:
if self.settings_dialog is None:
return
try:
@@ -732,111 +732,123 @@ class InputManager(QObject):
kb = getattr(self.settings_dialog, 'keyboard', None)
if kb and kb.isVisible():
if button_code in BUTTONS['back']:
kb.hide()
if kb.current_input_widget:
kb.current_input_widget.setFocus()
if value != 0: # Only handle press, not release
kb.hide()
if kb.current_input_widget:
kb.current_input_widget.setFocus()
return # Return early to avoid dialog closing logic
elif button_code in (BUTTONS['confirm'] | BUTTONS['context_menu']):
kb.activateFocusedKey()
if value != 0: # Only handle press, not release
kb.activateFocusedKey()
return
elif button_code in BUTTONS['prev_tab']:
kb.on_lang_click()
if value != 0: # Only handle press, not release
kb.on_lang_click()
return
elif button_code in BUTTONS['next_tab']:
kb.on_shift_click(not kb.shift_pressed)
if value != 0: # Only handle press, not release
kb.on_shift_click(not kb.shift_pressed)
return
elif button_code in BUTTONS['add_game']:
kb.on_backspace_pressed()
return
if value != 0: # Press event
kb.on_backspace_pressed()
else: # Release event
kb.stop_backspace_repeat()
return
# Handle common UI elements like QMessageBox, QMenu, etc.
if self._handle_common_ui_elements(button_code):
return
# Handle other QDialogs
popup = QApplication.activePopupWidget()
if isinstance(popup, QDialog):
if button_code in BUTTONS['confirm']:
popup.accept()
elif button_code in BUTTONS['back']:
popup.reject()
return
# 3. Advanced Tab Combo Box Logic
table = self._get_current_settings_table()
open_combo = None
if table and table == self.settings_dialog.advanced_table:
for r in range(table.rowCount()):
w = table.cellWidget(r, 1)
if isinstance(w, QComboBox) and w.view().isVisible():
open_combo = w
break
# B Button - Close combo or dialog
if button_code in BUTTONS['back']:
if open_combo:
open_combo.hidePopup()
if table:
table.setFocus()
else:
self.settings_dialog.reject()
return
# A Button - Confirm
if button_code in BUTTONS['confirm']:
if open_combo:
view = open_combo.view()
if view.currentIndex().isValid():
open_combo.setCurrentIndex(view.currentIndex().row())
open_combo.hidePopup()
if table:
table.setFocus()
if value != 0: # Only handle press events, not releases
popup = QApplication.activePopupWidget()
if isinstance(popup, QDialog):
if button_code in BUTTONS['confirm']:
popup.accept()
elif button_code in BUTTONS['back']:
popup.reject()
return
# Standard interaction
focused = QApplication.focusWidget()
if isinstance(focused, QTableWidget) and table and focused.currentRow() >= 0:
row = focused.currentRow()
cell = focused.cellWidget(row, 1)
# 3. Advanced Tab Combo Box Logic
table = self._get_current_settings_table()
open_combo = None
if table and table == self.settings_dialog.advanced_table:
for r in range(table.rowCount()):
w = table.cellWidget(r, 1)
if isinstance(w, QComboBox) and w.view().isVisible():
open_combo = w
break
# Main settings (checkboxes)
if self.settings_dialog and table == self.settings_dialog.settings_table:
item = focused.item(row, 1)
if item and (item.flags() & Qt.ItemFlag.ItemIsUserCheckable):
new_state = Qt.CheckState.Checked if item.checkState() == Qt.CheckState.Unchecked else Qt.CheckState.Unchecked
item.setCheckState(new_state)
# B Button - Close combo or dialog
if button_code in BUTTONS['back']:
if open_combo:
open_combo.hidePopup()
if table:
table.setFocus()
else:
self.settings_dialog.reject()
return
# A Button - Confirm
if button_code in BUTTONS['confirm']:
if open_combo:
view = open_combo.view()
if view.currentIndex().isValid():
open_combo.setCurrentIndex(view.currentIndex().row())
open_combo.hidePopup()
if table:
table.setFocus()
return
# Advanced settings
if isinstance(cell, QComboBox) and cell.isEnabled():
cell.showPopup()
cell.setFocus()
return
if isinstance(cell, QLineEdit):
cell.setFocus()
self.settings_dialog.show_virtual_keyboard(cell)
return
# Standard interaction
focused = QApplication.focusWidget()
if isinstance(focused, QTableWidget) and table and focused.currentRow() >= 0:
row = focused.currentRow()
cell = focused.cellWidget(row, 1)
if isinstance(focused, QLineEdit):
self.settings_dialog.show_virtual_keyboard(focused)
return
# Main settings (checkboxes)
if self.settings_dialog and table == self.settings_dialog.settings_table:
item = focused.item(row, 1)
if item and (item.flags() & Qt.ItemFlag.ItemIsUserCheckable):
new_state = Qt.CheckState.Checked if item.checkState() == Qt.CheckState.Unchecked else Qt.CheckState.Unchecked
item.setCheckState(new_state)
return
# 4. Global Shortcuts
if button_code in BUTTONS['add_game']: # X: Apply
self.settings_dialog.apply_changes()
# Advanced settings
if isinstance(cell, QComboBox) and cell.isEnabled():
cell.showPopup()
cell.setFocus()
return
if isinstance(cell, QLineEdit):
cell.setFocus()
self.settings_dialog.show_virtual_keyboard(cell)
return
elif button_code in BUTTONS['prev_dir']: # Y: Search + Keyboard
self.settings_dialog.search_edit.setFocus()
self.settings_dialog.show_virtual_keyboard(self.settings_dialog.search_edit)
if isinstance(focused, QLineEdit):
self.settings_dialog.show_virtual_keyboard(focused)
return
elif button_code in BUTTONS['prev_tab']: # LB
idx = max(0, self.settings_dialog.tab_widget.currentIndex() - 1)
self.settings_dialog.tab_widget.setCurrentIndex(idx)
self._focus_first_row_in_current_settings_table()
# 4. Global Shortcuts
if button_code in BUTTONS['add_game']: # X: Apply
self.settings_dialog.apply_changes()
elif button_code in BUTTONS['next_tab']: # RB
idx = min(self.settings_dialog.tab_widget.count() - 1, self.settings_dialog.tab_widget.currentIndex() + 1)
self.settings_dialog.tab_widget.setCurrentIndex(idx)
self._focus_first_row_in_current_settings_table()
elif button_code in BUTTONS['prev_dir']: # Y: Search + Keyboard
self.settings_dialog.search_edit.setFocus()
self.settings_dialog.show_virtual_keyboard(self.settings_dialog.search_edit)
else:
self._parent.activateFocusedWidget()
elif button_code in BUTTONS['prev_tab']: # LB
idx = max(0, self.settings_dialog.tab_widget.currentIndex() - 1)
self.settings_dialog.tab_widget.setCurrentIndex(idx)
self._focus_first_row_in_current_settings_table()
elif button_code in BUTTONS['next_tab']: # RB
idx = min(self.settings_dialog.tab_widget.count() - 1, self.settings_dialog.tab_widget.currentIndex() + 1)
self.settings_dialog.tab_widget.setCurrentIndex(idx)
self._focus_first_row_in_current_settings_table()
else:
self._parent.activateFocusedWidget()
except Exception as e:
logger.error(f"Error in handle_settings_button: {e}")

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
"POT-Creation-Date: 2025-11-23 15:42+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: de_DE\n"
@@ -279,6 +279,12 @@ msgstr ""
msgid "Next Tab"
msgstr ""
msgid "Save"
msgstr ""
msgid "Search"
msgstr ""
#, python-brace-format
msgid "Launching {0}"
msgstr ""
@@ -368,6 +374,12 @@ msgstr ""
msgid "Exe Settings"
msgstr ""
msgid "Search:"
msgstr ""
msgid "Search settings..."
msgstr ""
msgid "Main"
msgstr ""
@@ -461,9 +473,6 @@ msgstr ""
msgid "Fullscreen"
msgstr ""
msgid "Search"
msgstr ""
msgid "Installation already in progress."
msgstr ""
@@ -483,6 +492,12 @@ msgstr ""
msgid "Installation error."
msgstr ""
msgid "Refresh Grid"
msgstr ""
msgid "Game library refreshed"
msgstr ""
msgid "Loading Steam games..."
msgstr ""
@@ -495,6 +510,15 @@ msgstr ""
msgid "Find Games ..."
msgstr ""
msgid "A refresh is already in progress..."
msgstr ""
msgid "Refreshing..."
msgstr ""
msgid "Refreshing game library..."
msgstr ""
#, python-brace-format
msgid "Added '{name}'"
msgstr ""
@@ -938,6 +962,55 @@ msgstr ""
msgid "Use async dxvk-sarek (experimental)"
msgstr ""
msgid "Wine Version"
msgstr ""
msgid "Select the Wine or Proton version to use for this executable."
msgstr ""
msgid "Prefix Name"
msgstr ""
msgid "Select the Wine prefix to use."
msgstr ""
msgid "Latest"
msgstr ""
msgid "Stable"
msgstr ""
msgid "Vulkan Backend"
msgstr ""
msgid ""
"Select the rendering backend for translating DirectX → Vulkan/OpenGL:\n"
"\n"
"• Auto latest DXVK + VKD3D (recommended)\n"
" The newest versions from the developers. Give the best compatibility "
"and performance in modern games.\n"
" Require up-to-date drivers:\n"
" AMD: Mesa 25.0+ or proprietary AMDVLK 2024.Q4+\n"
" NVIDIA: driver 550.54.14 or newer\n"
" Intel: Mesa 24.2+\n"
"\n"
"• Stable proven DXVK + VKD3D\n"
" Older but extremely well-tested versions. Work on any drivers that "
"support Vulkan 1.3+.\n"
" The best choice if you have problems with the newest versions.\n"
"\n"
"• Sarek experimental DXVK-Sarek + VKD3D-Sarek\n"
" Work even on older drivers and video cards that support at least "
"Vulkan 1.1.\n"
"\n"
"• WINED3D OpenGL translation (fallback)\n"
" No DXVK/VKD3D used. DirectX is translated to OpenGL via built-in "
"WineD3D.\n"
" Works on absolutely any hardware, but performance is significantly "
"lower.\n"
" Use only as a last resort when nothing else starts."
msgstr ""
msgid "Windows version"
msgstr ""

View File

@@ -9,7 +9,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
"POT-Creation-Date: 2025-11-23 15:42+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language: es_ES\n"
@@ -279,6 +279,12 @@ msgstr ""
msgid "Next Tab"
msgstr ""
msgid "Save"
msgstr ""
msgid "Search"
msgstr ""
#, python-brace-format
msgid "Launching {0}"
msgstr ""
@@ -368,6 +374,12 @@ msgstr ""
msgid "Exe Settings"
msgstr ""
msgid "Search:"
msgstr ""
msgid "Search settings..."
msgstr ""
msgid "Main"
msgstr ""
@@ -461,9 +473,6 @@ msgstr ""
msgid "Fullscreen"
msgstr ""
msgid "Search"
msgstr ""
msgid "Installation already in progress."
msgstr ""
@@ -483,6 +492,12 @@ msgstr ""
msgid "Installation error."
msgstr ""
msgid "Refresh Grid"
msgstr ""
msgid "Game library refreshed"
msgstr ""
msgid "Loading Steam games..."
msgstr ""
@@ -495,6 +510,15 @@ msgstr ""
msgid "Find Games ..."
msgstr ""
msgid "A refresh is already in progress..."
msgstr ""
msgid "Refreshing..."
msgstr ""
msgid "Refreshing game library..."
msgstr ""
#, python-brace-format
msgid "Added '{name}'"
msgstr ""
@@ -938,6 +962,55 @@ msgstr ""
msgid "Use async dxvk-sarek (experimental)"
msgstr ""
msgid "Wine Version"
msgstr ""
msgid "Select the Wine or Proton version to use for this executable."
msgstr ""
msgid "Prefix Name"
msgstr ""
msgid "Select the Wine prefix to use."
msgstr ""
msgid "Latest"
msgstr ""
msgid "Stable"
msgstr ""
msgid "Vulkan Backend"
msgstr ""
msgid ""
"Select the rendering backend for translating DirectX → Vulkan/OpenGL:\n"
"\n"
"• Auto latest DXVK + VKD3D (recommended)\n"
" The newest versions from the developers. Give the best compatibility "
"and performance in modern games.\n"
" Require up-to-date drivers:\n"
" AMD: Mesa 25.0+ or proprietary AMDVLK 2024.Q4+\n"
" NVIDIA: driver 550.54.14 or newer\n"
" Intel: Mesa 24.2+\n"
"\n"
"• Stable proven DXVK + VKD3D\n"
" Older but extremely well-tested versions. Work on any drivers that "
"support Vulkan 1.3+.\n"
" The best choice if you have problems with the newest versions.\n"
"\n"
"• Sarek experimental DXVK-Sarek + VKD3D-Sarek\n"
" Work even on older drivers and video cards that support at least "
"Vulkan 1.1.\n"
"\n"
"• WINED3D OpenGL translation (fallback)\n"
" No DXVK/VKD3D used. DirectX is translated to OpenGL via built-in "
"WineD3D.\n"
" Works on absolutely any hardware, but performance is significantly "
"lower.\n"
" Use only as a last resort when nothing else starts."
msgstr ""
msgid "Windows version"
msgstr ""

View File

@@ -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-11-11 17:00+0500\n"
"POT-Creation-Date: 2025-11-23 15:43+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -277,6 +277,12 @@ msgstr ""
msgid "Next Tab"
msgstr ""
msgid "Save"
msgstr ""
msgid "Search"
msgstr ""
#, python-brace-format
msgid "Launching {0}"
msgstr ""
@@ -366,6 +372,12 @@ msgstr ""
msgid "Exe Settings"
msgstr ""
msgid "Search:"
msgstr ""
msgid "Search settings..."
msgstr ""
msgid "Main"
msgstr ""
@@ -459,9 +471,6 @@ msgstr ""
msgid "Fullscreen"
msgstr ""
msgid "Search"
msgstr ""
msgid "Installation already in progress."
msgstr ""
@@ -481,6 +490,12 @@ msgstr ""
msgid "Installation error."
msgstr ""
msgid "Refresh Grid"
msgstr ""
msgid "Game library refreshed"
msgstr ""
msgid "Loading Steam games..."
msgstr ""
@@ -493,6 +508,15 @@ msgstr ""
msgid "Find Games ..."
msgstr ""
msgid "A refresh is already in progress..."
msgstr ""
msgid "Refreshing..."
msgstr ""
msgid "Refreshing game library..."
msgstr ""
#, python-brace-format
msgid "Added '{name}'"
msgstr ""
@@ -936,6 +960,55 @@ msgstr ""
msgid "Use async dxvk-sarek (experimental)"
msgstr ""
msgid "Wine Version"
msgstr ""
msgid "Select the Wine or Proton version to use for this executable."
msgstr ""
msgid "Prefix Name"
msgstr ""
msgid "Select the Wine prefix to use."
msgstr ""
msgid "Latest"
msgstr ""
msgid "Stable"
msgstr ""
msgid "Vulkan Backend"
msgstr ""
msgid ""
"Select the rendering backend for translating DirectX → Vulkan/OpenGL:\n"
"\n"
"• Auto latest DXVK + VKD3D (recommended)\n"
" The newest versions from the developers. Give the best compatibility "
"and performance in modern games.\n"
" Require up-to-date drivers:\n"
" AMD: Mesa 25.0+ or proprietary AMDVLK 2024.Q4+\n"
" NVIDIA: driver 550.54.14 or newer\n"
" Intel: Mesa 24.2+\n"
"\n"
"• Stable proven DXVK + VKD3D\n"
" Older but extremely well-tested versions. Work on any drivers that "
"support Vulkan 1.3+.\n"
" The best choice if you have problems with the newest versions.\n"
"\n"
"• Sarek experimental DXVK-Sarek + VKD3D-Sarek\n"
" Work even on older drivers and video cards that support at least "
"Vulkan 1.1.\n"
"\n"
"• WINED3D OpenGL translation (fallback)\n"
" No DXVK/VKD3D used. DirectX is translated to OpenGL via built-in "
"WineD3D.\n"
" Works on absolutely any hardware, but performance is significantly "
"lower.\n"
" Use only as a last resort when nothing else starts."
msgstr ""
msgid "Windows version"
msgstr ""

View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-11-11 17:00+0500\n"
"PO-Revision-Date: 2025-11-11 17:00+0500\n"
"POT-Creation-Date: 2025-11-23 15:42+0500\n"
"PO-Revision-Date: 2025-11-23 15:42+0500\n"
"Last-Translator: \n"
"Language: ru_RU\n"
"Language-Team: ru_RU <LL@li.org>\n"
@@ -286,6 +286,12 @@ msgstr "Предыдущая вкладка"
msgid "Next Tab"
msgstr "Следующая вкладка"
msgid "Save"
msgstr "Сохранить"
msgid "Search"
msgstr "Поиск"
#, python-brace-format
msgid "Launching {0}"
msgstr "Идёт запуск {0}"
@@ -375,6 +381,12 @@ msgstr "Компоненты успешно установлены."
msgid "Exe Settings"
msgstr "Настройки EXE"
msgid "Search:"
msgstr "Поиск:"
msgid "Search settings..."
msgstr "Поиск настроек..."
msgid "Main"
msgstr "Основные"
@@ -468,9 +480,6 @@ msgstr "Назад"
msgid "Fullscreen"
msgstr "Полный экран"
msgid "Search"
msgstr "Поиск"
msgid "Installation already in progress."
msgstr "Установка уже выполняется."
@@ -490,6 +499,12 @@ msgstr "Установка не удалась."
msgid "Installation error."
msgstr "Ошибка установки."
msgid "Refresh Grid"
msgstr "Обновить"
msgid "Game library refreshed"
msgstr "Игровая библиотека обновлена"
msgid "Loading Steam games..."
msgstr "Загрузка игр из Steam..."
@@ -502,6 +517,15 @@ msgstr "Игровая библиотека"
msgid "Find Games ..."
msgstr "Найти игры..."
msgid "A refresh is already in progress..."
msgstr "Обновление уже выполняется..."
msgid "Refreshing..."
msgstr "Обновление..."
msgid "Refreshing game library..."
msgstr "Обновление игровой библиотеки..."
#, python-brace-format
msgid "Added '{name}'"
msgstr "'{name}' добавлен(а)"
@@ -963,6 +987,78 @@ msgstr "Использовать встроенные dxvk/vkd3d из Wine/Proto
msgid "Use async dxvk-sarek (experimental)"
msgstr "Использовать асинхронный dxvk-sarek (экспериментально)"
msgid "Wine Version"
msgstr "Версия Wine"
msgid "Select the Wine or Proton version to use for this executable."
msgstr "Выбор версии Wine или Proton для использования с этим исполняемым файлом."
msgid "Prefix Name"
msgstr "Имя префикса"
msgid "Select the Wine prefix to use."
msgstr "Выбор версии Wine для использования."
msgid "Latest"
msgstr "Последние"
msgid "Stable"
msgstr "Стабильные"
msgid "Vulkan Backend"
msgstr "Vulkan рендеринг"
msgid ""
"Select the rendering backend for translating DirectX → Vulkan/OpenGL:\n"
"\n"
"• Auto latest DXVK + VKD3D (recommended)\n"
" The newest versions from the developers. Give the best compatibility "
"and performance in modern games.\n"
" Require up-to-date drivers:\n"
" AMD: Mesa 25.0+ or proprietary AMDVLK 2024.Q4+\n"
" NVIDIA: driver 550.54.14 or newer\n"
" Intel: Mesa 24.2+\n"
"\n"
"• Stable proven DXVK + VKD3D\n"
" Older but extremely well-tested versions. Work on any drivers that "
"support Vulkan 1.3+.\n"
" The best choice if you have problems with the newest versions.\n"
"\n"
"• Sarek experimental DXVK-Sarek + VKD3D-Sarek\n"
" Work even on older drivers and video cards that support at least "
"Vulkan 1.1.\n"
"\n"
"• WINED3D OpenGL translation (fallback)\n"
" No DXVK/VKD3D used. DirectX is translated to OpenGL via built-in "
"WineD3D.\n"
" Works on absolutely any hardware, but performance is significantly "
"lower.\n"
" Use only as a last resort when nothing else starts."
msgstr ""
"Выбор рендеринга для трансляции DirectX → Vulkan/OpenGL:\n"
"\n"
"• Авто последние версии DXVK + VKD3D (рекомендуется)\n"
" Новейшие версии от разработчиков. Обеспечивают наилучшую совместимость и"
" производительность в современных играх.\n"
" Требуются актуальные драйверы:\n"
" AMD: Mesa 25.0+ или проприетарный AMDVLK 2024.Q4+\n"
" NVIDIA: 550.54.14 или новее\n"
" Intel: Mesa 24.2+\n"
"\n"
"• Стабильный проверенные версии DXVK + VKD3D\n"
" Более старые, но тщательно протестированные версии. Работают с любыми "
"драйверами, поддерживающие Vulkan 1.3+.\n"
" Лучший выбор, если у вас возникли проблемы с последними версиями.\n"
"\n"
"• Sarek экспериментальная версия DXVK-Sarek + VKD3D-Sarek\n"
"Работает даже на старых драйверах и видеокартах, поддерживающих как "
"минимум Vulkan 1.1.\n"
"• WINED3D трансляция OpenGL (для видеокарт без поддержки Vulkan)\n"
"DXVK/VKD3D не используется. DirectX транслируется в OpenGL через "
"встроенную WineD3D.Работает абсолютно на любом оборудовании, но "
"производительность значительно снижается.Используйте только в крайнем "
"случае, когда ничего другое не запускается."
msgid "Windows version"
msgstr "Версия Windows"

View File

@@ -78,10 +78,10 @@ def get_advanced_settings(disabled_text, logical_core_options, locale_options,
# 3. Vulkan Backend
vulkan_options = [
_("Auto latest DXVK + VKD3D (recommended)"), # → 6
_("Stable proven DXVK + VKD3D"), # → 2
_("Sarek experimental DXVK-Sarek + VKD3D-Sarek"), # → 1
_("WINED3D OpenGL (fallback only)") # → 0
_("Latest"), # → 6
_("Stable"), # → 2
("Sarek"), # → 1
("WINED3D OpenGL") # → 0
]
# Маппинг: отображаемый текст → реальное значение в ppdb