Merge branch 'Htylol-AI_TOP_GAMES' into devel
This commit is contained in:
commit
c3dd207ac7
@ -7,7 +7,7 @@
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-09-24 13:23+0300\n"
|
||||
"POT-Creation-Date: 2024-10-08 10:20+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"
|
||||
@ -47,9 +47,6 @@ msgstr ""
|
||||
msgid "Gallium Zink (OpenGL to Vulkan)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Launching"
|
||||
msgstr ""
|
||||
|
||||
msgid "CREATE SHORTCUT"
|
||||
msgstr ""
|
||||
|
||||
@ -62,6 +59,9 @@ msgstr ""
|
||||
msgid "Delete shortcut for select file..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Launching"
|
||||
msgstr ""
|
||||
|
||||
msgid "Base settings"
|
||||
msgstr ""
|
||||
|
||||
@ -194,49 +194,6 @@ msgstr ""
|
||||
msgid "Run wine regedit"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for Nintendo game consoles with high compatibility"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multi-arcade emulator that allows you to play old arcade games"
|
||||
msgstr ""
|
||||
|
||||
msgid "Multi-platform frontend for emulators with extensive settings"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the PlayStation Portable (PSP) game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Nintendo 3DS game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Wii U game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the PlayStation 1 game console with high compatibility"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Nintendo 64 game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Game Boy Advance game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Sega Saturn game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Xbox 360 game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Nintendo Entertainment System (NES or Dendy) game "
|
||||
"console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Xbox game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "Emulator for the Sega Dreamcast game console"
|
||||
msgstr ""
|
||||
|
||||
msgid "AUTOINSTALLS"
|
||||
msgstr ""
|
||||
|
||||
@ -267,6 +224,33 @@ msgstr ""
|
||||
msgid "Downloading"
|
||||
msgstr ""
|
||||
|
||||
msgid "day"
|
||||
msgstr ""
|
||||
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "less than a minute"
|
||||
msgstr ""
|
||||
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Time spent"
|
||||
msgstr ""
|
||||
|
||||
msgid "Do you really want to reinstall PortProton?\\nFor this, an internet "
|
||||
"connection will be required."
|
||||
msgstr ""
|
||||
@ -282,9 +266,6 @@ msgid "More than one DB file found for the application being launched."
|
||||
"next run.\\n"
|
||||
msgstr ""
|
||||
|
||||
msgid "UPDATING NOW"
|
||||
msgstr ""
|
||||
|
||||
msgid "Update scripts:"
|
||||
msgstr ""
|
||||
|
||||
@ -294,6 +275,9 @@ msgstr ""
|
||||
msgid "REMIND ME LATER"
|
||||
msgstr ""
|
||||
|
||||
msgid "UPDATING NOW"
|
||||
msgstr ""
|
||||
|
||||
msgid "EXIT"
|
||||
msgstr ""
|
||||
|
||||
@ -881,6 +865,9 @@ msgstr ""
|
||||
msgid "Display frame count"
|
||||
msgstr ""
|
||||
|
||||
msgid "Display frametime next to FPS text"
|
||||
msgstr ""
|
||||
|
||||
msgid "Enable most of the toggleable parameters (currently excludes "
|
||||
"histogram)"
|
||||
msgstr ""
|
||||
@ -985,9 +972,6 @@ msgstr ""
|
||||
msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)"
|
||||
msgstr ""
|
||||
|
||||
msgid "Display frametime next to FPS text"
|
||||
msgstr ""
|
||||
|
||||
msgid "Show current Wine or Proton version in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1407,6 +1391,19 @@ msgstr ""
|
||||
msgid "Allows you to select a theme for PortProton"
|
||||
msgstr ""
|
||||
|
||||
msgid "Time display"
|
||||
msgstr ""
|
||||
|
||||
msgid "Displays time spent in an application or game"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sort shortcuts by time"
|
||||
msgstr ""
|
||||
|
||||
msgid "This setting sorts the shortcuts in the main menu depending on the "
|
||||
"time spent in the application or game"
|
||||
msgstr ""
|
||||
|
||||
msgid "GLOBAL SETTINGS (USER.CONF)"
|
||||
msgstr ""
|
||||
|
||||
@ -1573,8 +1570,8 @@ msgid "MIT License\n"
|
||||
"\n"
|
||||
"Permission is hereby granted, free of charge, to any person "
|
||||
"obtaining a copy\n"
|
||||
"of this software and associated documentation files (the \"Software"
|
||||
"\"), to deal\n"
|
||||
"of this software and associated documentation files (the "
|
||||
"\"Software\"), to deal\n"
|
||||
"in the Software without restriction, including without limitation "
|
||||
"the rights\n"
|
||||
"to use, copy, modify, merge, publish, distribute, sublicense, and/or "
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-09-24 13:23+0300\n"
|
||||
"POT-Creation-Date: 2024-10-08 10:15+0500\n"
|
||||
"PO-Revision-Date: 2024-09-19 23:35+0500\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -52,9 +52,6 @@ msgstr "Gallium Nine (DirectX 9 para MESA)"
|
||||
msgid "Gallium Zink (OpenGL to Vulkan)"
|
||||
msgstr "Gallium Zink (OpenGL a Vulkan)"
|
||||
|
||||
msgid "Launching"
|
||||
msgstr "Lanzamiento"
|
||||
|
||||
msgid "CREATE SHORTCUT"
|
||||
msgstr "CREAR ACCESO DIRECTO"
|
||||
|
||||
@ -67,6 +64,9 @@ msgstr "ELIMINAR ACCESO DIRECTO"
|
||||
msgid "Delete shortcut for select file..."
|
||||
msgstr "Eliminar el acceso directo del archivo seleccionado..."
|
||||
|
||||
msgid "Launching"
|
||||
msgstr "Lanzamiento"
|
||||
|
||||
msgid "Base settings"
|
||||
msgstr "Configuración básica"
|
||||
|
||||
@ -212,55 +212,6 @@ msgstr "Editor del Registro"
|
||||
msgid "Run wine regedit"
|
||||
msgstr "Ejecutar wine regedit"
|
||||
|
||||
msgid "Emulator for Nintendo game consoles with high compatibility"
|
||||
msgstr ""
|
||||
"Un emulador para consolas de juegos de Nintendo con alta compatibilidad"
|
||||
|
||||
msgid "Multi-arcade emulator that allows you to play old arcade games"
|
||||
msgstr ""
|
||||
"Un emulador de múltiples arcade que te permite jugar juegos antiguos de "
|
||||
"arcade"
|
||||
|
||||
msgid "Multi-platform frontend for emulators with extensive settings"
|
||||
msgstr "Un frontend multiplataforma para emuladores con ajustes extensos"
|
||||
|
||||
msgid "Emulator for the PlayStation Portable (PSP) game console"
|
||||
msgstr "Un emulador para la consola de juegos PlayStation Portable (PSP)"
|
||||
|
||||
msgid "Emulator for the Nintendo 3DS game console"
|
||||
msgstr "Un emulador para la consola de juegos Nintendo 3DS"
|
||||
|
||||
msgid "Emulator for the Wii U game console"
|
||||
msgstr "Un emulador para la consola de juegos Wii U"
|
||||
|
||||
msgid "Emulator for the PlayStation 1 game console with high compatibility"
|
||||
msgstr ""
|
||||
"Un emulador para la consola de juegos PlayStation 1 con alta compatibilidad"
|
||||
|
||||
msgid "Emulator for the Nintendo 64 game console"
|
||||
msgstr "Un emulador para la consola de juegos Nintendo 64"
|
||||
|
||||
msgid "Emulator for the Game Boy Advance game console"
|
||||
msgstr "Un emulador para la consola de juegos Game Boy Advance"
|
||||
|
||||
msgid "Emulator for the Sega Saturn game console"
|
||||
msgstr "Un emulador para la consola de juegos Sega Saturn"
|
||||
|
||||
msgid "Emulator for the Xbox 360 game console"
|
||||
msgstr "Un emulador para la consola de juegos Xbox 360"
|
||||
|
||||
msgid ""
|
||||
"Emulator for the Nintendo Entertainment System (NES or Dendy) game console"
|
||||
msgstr ""
|
||||
"Un emulador para la consola de juegos Nintendo Entertainment System (NES o "
|
||||
"Dendy)"
|
||||
|
||||
msgid "Emulator for the Xbox game console"
|
||||
msgstr "Un emulador para la consola de juegos Xbox"
|
||||
|
||||
msgid "Emulator for the Sega Dreamcast game console"
|
||||
msgstr "Un emulador para la consola de juegos Sega Dreamcast"
|
||||
|
||||
msgid "AUTOINSTALLS"
|
||||
msgstr "INSTALACIONES AUTOMÁTICAS"
|
||||
|
||||
@ -296,6 +247,33 @@ msgstr ""
|
||||
msgid "Downloading"
|
||||
msgstr "Descargando"
|
||||
|
||||
msgid "day"
|
||||
msgstr ""
|
||||
|
||||
msgid "days"
|
||||
msgstr ""
|
||||
|
||||
msgid "hour"
|
||||
msgstr ""
|
||||
|
||||
msgid "and"
|
||||
msgstr ""
|
||||
|
||||
msgid "hours"
|
||||
msgstr ""
|
||||
|
||||
msgid "less than a minute"
|
||||
msgstr ""
|
||||
|
||||
msgid "minute"
|
||||
msgstr ""
|
||||
|
||||
msgid "minutes"
|
||||
msgstr ""
|
||||
|
||||
msgid "Time spent"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"Do you really want to reinstall PortProton?\\nFor this, an internet "
|
||||
"connection will be required."
|
||||
@ -317,9 +295,6 @@ msgstr ""
|
||||
"está iniciando. Selecciona el que se requiera, o elimina el archivo de base "
|
||||
"de datos adicional antes del próximo inicio"
|
||||
|
||||
msgid "UPDATING NOW"
|
||||
msgstr "ACTUALIZANDO AHORA"
|
||||
|
||||
msgid "Update scripts:"
|
||||
msgstr "Actualizar scripts:"
|
||||
|
||||
@ -329,6 +304,9 @@ msgstr "NO SOCIO"
|
||||
msgid "REMIND ME LATER"
|
||||
msgstr "VUELVA MÁS TARDE"
|
||||
|
||||
msgid "UPDATING NOW"
|
||||
msgstr "ACTUALIZANDO AHORA"
|
||||
|
||||
msgid "EXIT"
|
||||
msgstr "SALIR"
|
||||
|
||||
@ -1085,6 +1063,9 @@ msgstr ""
|
||||
msgid "Display frame count"
|
||||
msgstr "Mostrar recuento de cuadros"
|
||||
|
||||
msgid "Display frametime next to FPS text"
|
||||
msgstr "Mostrar tiempo de cuadro junto al texto de FPS"
|
||||
|
||||
msgid "Enable most of the toggleable parameters (currently excludes histogram)"
|
||||
msgstr ""
|
||||
"Activar la mayoría de los parámetros conmutables (actualmente excluye el "
|
||||
@ -1204,9 +1185,6 @@ msgstr "Mostrar el uso de VRAM del sistema"
|
||||
msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)"
|
||||
msgstr "Mostrar el controlador Vulkan utilizado (radv/amdgpu-pro/amdvlk)"
|
||||
|
||||
msgid "Display frametime next to FPS text"
|
||||
msgstr "Mostrar tiempo de cuadro junto al texto de FPS"
|
||||
|
||||
msgid "Show current Wine or Proton version in use"
|
||||
msgstr "Mostrar la versión actual de Wine o Proton en uso"
|
||||
|
||||
@ -1847,6 +1825,20 @@ msgstr "Temas de interfaz gráfica de usuario elegidos"
|
||||
msgid "Allows you to select a theme for PortProton"
|
||||
msgstr "Le permite seleccionar un tema para PortProton"
|
||||
|
||||
msgid "Time display"
|
||||
msgstr ""
|
||||
|
||||
msgid "Displays time spent in an application or game"
|
||||
msgstr ""
|
||||
|
||||
msgid "Sort shortcuts by time"
|
||||
msgstr ""
|
||||
|
||||
msgid ""
|
||||
"This setting sorts the shortcuts in the main menu depending on the time "
|
||||
"spent in the application or game"
|
||||
msgstr ""
|
||||
|
||||
#, fuzzy
|
||||
msgid "GLOBAL SETTINGS (USER.CONF)"
|
||||
msgstr "AJUSTES USUARIO.CONF"
|
||||
@ -2119,6 +2111,56 @@ msgstr ""
|
||||
msgid "THIRD PARTY LIBRARIES"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Emulator for Nintendo game consoles with high compatibility"
|
||||
#~ msgstr ""
|
||||
#~ "Un emulador para consolas de juegos de Nintendo con alta compatibilidad"
|
||||
|
||||
#~ msgid "Multi-arcade emulator that allows you to play old arcade games"
|
||||
#~ msgstr ""
|
||||
#~ "Un emulador de múltiples arcade que te permite jugar juegos antiguos de "
|
||||
#~ "arcade"
|
||||
|
||||
#~ msgid "Multi-platform frontend for emulators with extensive settings"
|
||||
#~ msgstr "Un frontend multiplataforma para emuladores con ajustes extensos"
|
||||
|
||||
#~ msgid "Emulator for the PlayStation Portable (PSP) game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos PlayStation Portable (PSP)"
|
||||
|
||||
#~ msgid "Emulator for the Nintendo 3DS game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Nintendo 3DS"
|
||||
|
||||
#~ msgid "Emulator for the Wii U game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Wii U"
|
||||
|
||||
#~ msgid "Emulator for the PlayStation 1 game console with high compatibility"
|
||||
#~ msgstr ""
|
||||
#~ "Un emulador para la consola de juegos PlayStation 1 con alta "
|
||||
#~ "compatibilidad"
|
||||
|
||||
#~ msgid "Emulator for the Nintendo 64 game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Nintendo 64"
|
||||
|
||||
#~ msgid "Emulator for the Game Boy Advance game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Game Boy Advance"
|
||||
|
||||
#~ msgid "Emulator for the Sega Saturn game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Sega Saturn"
|
||||
|
||||
#~ msgid "Emulator for the Xbox 360 game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Xbox 360"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Emulator for the Nintendo Entertainment System (NES or Dendy) game console"
|
||||
#~ msgstr ""
|
||||
#~ "Un emulador para la consola de juegos Nintendo Entertainment System (NES "
|
||||
#~ "o Dendy)"
|
||||
|
||||
#~ msgid "Emulator for the Xbox game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Xbox"
|
||||
|
||||
#~ msgid "Emulator for the Sega Dreamcast game console"
|
||||
#~ msgstr "Un emulador para la consola de juegos Sega Dreamcast"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "scripts"
|
||||
#~ msgstr "Actualizar scripts:"
|
||||
|
@ -7,16 +7,16 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2024-09-24 13:23+0300\n"
|
||||
"PO-Revision-Date: 2024-09-19 23:32+0500\n"
|
||||
"POT-Creation-Date: 2024-10-08 10:15+0500\n"
|
||||
"PO-Revision-Date: 2024-10-08 10:15+0500\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"Language: ru_RU\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<12 || n%100>14) ? 1 : 2);\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<12 || n%100>14) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
msgid ""
|
||||
@ -52,9 +52,6 @@ msgstr "Gallium Nine (поддержка DirectX 9 для MESA)"
|
||||
msgid "Gallium Zink (OpenGL to Vulkan)"
|
||||
msgstr "Gallium Zink (трансляция OpenGL в Vulkan)"
|
||||
|
||||
msgid "Launching"
|
||||
msgstr "Запуск"
|
||||
|
||||
msgid "CREATE SHORTCUT"
|
||||
msgstr "СОЗДАТЬ ЯРЛЫК"
|
||||
|
||||
@ -67,13 +64,15 @@ msgstr "УДАЛИТЬ ЯРЛЫК"
|
||||
msgid "Delete shortcut for select file..."
|
||||
msgstr "Удалить ярлык для выбранного файла..."
|
||||
|
||||
msgid "Launching"
|
||||
msgstr "Запуск"
|
||||
|
||||
msgid "Base settings"
|
||||
msgstr "Основные настройки"
|
||||
|
||||
msgid "Edit database file for"
|
||||
msgstr "Редактировать файл настроек для"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Global settings"
|
||||
msgstr "Глобальные настройки"
|
||||
|
||||
@ -152,7 +151,6 @@ msgstr "История изменений"
|
||||
msgid "Change language"
|
||||
msgstr "Сменить язык"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Global settings (user.conf)"
|
||||
msgstr "Глобальные настройки (user.conf)"
|
||||
|
||||
@ -214,49 +212,6 @@ msgstr "Редактор реестра"
|
||||
msgid "Run wine regedit"
|
||||
msgstr "Запустить редактор реестра Wine"
|
||||
|
||||
msgid "Emulator for Nintendo game consoles with high compatibility"
|
||||
msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью"
|
||||
|
||||
msgid "Multi-arcade emulator that allows you to play old arcade games"
|
||||
msgstr "Мультиаркадный эмулятор, позволяющий играть в старые аркадные игры"
|
||||
|
||||
msgid "Multi-platform frontend for emulators with extensive settings"
|
||||
msgstr "Мультиплатформенный интерфейс для эмуляторов с обширными настройками"
|
||||
|
||||
msgid "Emulator for the PlayStation Portable (PSP) game console"
|
||||
msgstr "Эмулятор игровой консоли PlayStation Portable (PSP)"
|
||||
|
||||
msgid "Emulator for the Nintendo 3DS game console"
|
||||
msgstr "Эмулятор игровой консоли Nintendo 3DS"
|
||||
|
||||
msgid "Emulator for the Wii U game console"
|
||||
msgstr "Эмулятор игровой консоли Wii U"
|
||||
|
||||
msgid "Emulator for the PlayStation 1 game console with high compatibility"
|
||||
msgstr "Эмулятор игровой консоли PlayStation 1 с высокой совместимостью"
|
||||
|
||||
msgid "Emulator for the Nintendo 64 game console"
|
||||
msgstr "Эмулятор игровой консоли Nintendo 64"
|
||||
|
||||
msgid "Emulator for the Game Boy Advance game console"
|
||||
msgstr "Эмулятор игровой консоли Game Boy Advance"
|
||||
|
||||
msgid "Emulator for the Sega Saturn game console"
|
||||
msgstr "Эмулятор игровой консоли Sega Saturn"
|
||||
|
||||
msgid "Emulator for the Xbox 360 game console"
|
||||
msgstr "Эмулятор игровой консоли Xbox 360"
|
||||
|
||||
msgid ""
|
||||
"Emulator for the Nintendo Entertainment System (NES or Dendy) game console"
|
||||
msgstr "Эмулятор игровой консоли Nintendo Entertainment System (NES или Dendy)"
|
||||
|
||||
msgid "Emulator for the Xbox game console"
|
||||
msgstr "Эмулятор игровой консоли Xbox"
|
||||
|
||||
msgid "Emulator for the Sega Dreamcast game console"
|
||||
msgstr "Эмулятор игровой консоли Sega Dreamcast"
|
||||
|
||||
msgid "AUTOINSTALLS"
|
||||
msgstr "АВТОУСТАНОВКА"
|
||||
|
||||
@ -291,6 +246,33 @@ msgstr ""
|
||||
msgid "Downloading"
|
||||
msgstr "Загружается"
|
||||
|
||||
msgid "day"
|
||||
msgstr "день"
|
||||
|
||||
msgid "days"
|
||||
msgstr "дней"
|
||||
|
||||
msgid "hour"
|
||||
msgstr "час"
|
||||
|
||||
msgid "and"
|
||||
msgstr "и"
|
||||
|
||||
msgid "hours"
|
||||
msgstr "часов"
|
||||
|
||||
msgid "less than a minute"
|
||||
msgstr "меньше минуты"
|
||||
|
||||
msgid "minute"
|
||||
msgstr "минута"
|
||||
|
||||
msgid "minutes"
|
||||
msgstr "минут"
|
||||
|
||||
msgid "Time spent"
|
||||
msgstr "Проведено времени"
|
||||
|
||||
msgid ""
|
||||
"Do you really want to reinstall PortProton?\\nFor this, an internet "
|
||||
"connection will be required."
|
||||
@ -312,10 +294,6 @@ msgstr ""
|
||||
"ppdb.\\nВыберите нужный или удалите лишний файл .ppdb перед следующим "
|
||||
"запуском\\n"
|
||||
|
||||
# изменить
|
||||
msgid "UPDATING NOW"
|
||||
msgstr "ОБНОВИТЬ СЕЙЧАС"
|
||||
|
||||
msgid "Update scripts:"
|
||||
msgstr "Обновление скриптов:"
|
||||
|
||||
@ -325,6 +303,10 @@ msgstr "НЕ НАПОМИНАТЬ"
|
||||
msgid "REMIND ME LATER"
|
||||
msgstr "НАПОМНИТЬ ПОЗЖЕ"
|
||||
|
||||
# изменить
|
||||
msgid "UPDATING NOW"
|
||||
msgstr "ОБНОВИТЬ СЕЙЧАС"
|
||||
|
||||
msgid "EXIT"
|
||||
msgstr "ВЫХОД"
|
||||
|
||||
@ -1090,6 +1072,9 @@ msgstr ""
|
||||
msgid "Display frame count"
|
||||
msgstr "Отображение количества кадров"
|
||||
|
||||
msgid "Display frametime next to FPS text"
|
||||
msgstr "Отображение времени кадра рядом с FPS"
|
||||
|
||||
msgid "Enable most of the toggleable parameters (currently excludes histogram)"
|
||||
msgstr ""
|
||||
"Включить большинство переключаемых параметров (в настоящее время исключает "
|
||||
@ -1213,9 +1198,6 @@ msgstr "Показать использование VRAM"
|
||||
msgid "Display used Vulkan driver (radv/amdgpu-pro/amdvlk)"
|
||||
msgstr "Показать используемый драйвер Vulkan (radv/amdgpu-pro/amdvlk)"
|
||||
|
||||
msgid "Display frametime next to FPS text"
|
||||
msgstr "Отображение времени кадра рядом с FPS"
|
||||
|
||||
msgid "Show current Wine or Proton version in use"
|
||||
msgstr "Показать текущую используемую версию Wine или Proton"
|
||||
|
||||
@ -1746,7 +1728,6 @@ msgstr "Выключить"
|
||||
msgid "Enable"
|
||||
msgstr "Включить"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Change global settings"
|
||||
msgstr "Изменить глобальные настройки"
|
||||
|
||||
@ -1815,7 +1796,22 @@ msgstr "Выбор графической темы"
|
||||
msgid "Allows you to select a theme for PortProton"
|
||||
msgstr "Позволяет выбрать тему для PortProton"
|
||||
|
||||
#, fuzzy
|
||||
msgid "Time display"
|
||||
msgstr "Отображение времени"
|
||||
|
||||
msgid "Displays time spent in an application or game"
|
||||
msgstr "Отображает общее время проведённое в приложении или игре"
|
||||
|
||||
msgid "Sort shortcuts by time"
|
||||
msgstr "Сортировка ярлыков по времени"
|
||||
|
||||
msgid ""
|
||||
"This setting sorts the shortcuts in the main menu depending on the time "
|
||||
"spent in the application or game"
|
||||
msgstr ""
|
||||
"Эта настройка сортирует ярлыки в главном меню в зависимости от времени, "
|
||||
"проведенного в приложении или игре"
|
||||
|
||||
msgid "GLOBAL SETTINGS (USER.CONF)"
|
||||
msgstr "ГЛОБАЛЬНЫЕ НАСТРОЙКИ (USER.CONF)"
|
||||
|
||||
@ -2146,6 +2142,54 @@ msgstr "ПРИСОЕДЕНИТЬСЯ"
|
||||
msgid "THIRD PARTY LIBRARIES"
|
||||
msgstr "БИБЛИОТЕКИ"
|
||||
|
||||
#~ msgid "not known yet"
|
||||
#~ msgstr "пока неизвестно"
|
||||
|
||||
#~ msgid "Emulator for Nintendo game consoles with high compatibility"
|
||||
#~ msgstr "Эмулятор игровых консолей Nintendo с высокой совместимостью"
|
||||
|
||||
#~ msgid "Multi-arcade emulator that allows you to play old arcade games"
|
||||
#~ msgstr "Мультиаркадный эмулятор, позволяющий играть в старые аркадные игры"
|
||||
|
||||
#~ msgid "Multi-platform frontend for emulators with extensive settings"
|
||||
#~ msgstr ""
|
||||
#~ "Мультиплатформенный интерфейс для эмуляторов с обширными настройками"
|
||||
|
||||
#~ msgid "Emulator for the PlayStation Portable (PSP) game console"
|
||||
#~ msgstr "Эмулятор игровой консоли PlayStation Portable (PSP)"
|
||||
|
||||
#~ msgid "Emulator for the Nintendo 3DS game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Nintendo 3DS"
|
||||
|
||||
#~ msgid "Emulator for the Wii U game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Wii U"
|
||||
|
||||
#~ msgid "Emulator for the PlayStation 1 game console with high compatibility"
|
||||
#~ msgstr "Эмулятор игровой консоли PlayStation 1 с высокой совместимостью"
|
||||
|
||||
#~ msgid "Emulator for the Nintendo 64 game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Nintendo 64"
|
||||
|
||||
#~ msgid "Emulator for the Game Boy Advance game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Game Boy Advance"
|
||||
|
||||
#~ msgid "Emulator for the Sega Saturn game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Sega Saturn"
|
||||
|
||||
#~ msgid "Emulator for the Xbox 360 game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Xbox 360"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Emulator for the Nintendo Entertainment System (NES or Dendy) game console"
|
||||
#~ msgstr ""
|
||||
#~ "Эмулятор игровой консоли Nintendo Entertainment System (NES или Dendy)"
|
||||
|
||||
#~ msgid "Emulator for the Xbox game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Xbox"
|
||||
|
||||
#~ msgid "Emulator for the Sega Dreamcast game console"
|
||||
#~ msgstr "Эмулятор игровой консоли Sega Dreamcast"
|
||||
|
||||
#~ msgid "scripts"
|
||||
#~ msgstr "версия"
|
||||
|
||||
|
@ -186,6 +186,7 @@ eval_translations () {
|
||||
}
|
||||
|
||||
create_translations () {
|
||||
local po_file msgid msgstr
|
||||
if [[ ! -d "${PW_CACHE_LANG_PATH}" ]] ; then
|
||||
create_new_dir "${PW_CACHE_LANG_PATH}"
|
||||
fi
|
||||
@ -456,12 +457,13 @@ try_download () {
|
||||
no_mirror=true
|
||||
esac
|
||||
|
||||
local filename
|
||||
if [[ -n "${PW_AUTOINSTALL_EXE}" ]] \
|
||||
&& [[ "$no_mirror" == "true" ]]
|
||||
then
|
||||
local filename="$(basename "${PW_AUTOINSTALL_EXE}")"
|
||||
filename="$(basename "${PW_AUTOINSTALL_EXE}")"
|
||||
else
|
||||
local filename="$(basename "$1")"
|
||||
filename="$(basename "$1")"
|
||||
fi
|
||||
|
||||
if [[ "${MIRROR}" == CLOUD ]] \
|
||||
@ -742,18 +744,170 @@ unpack () {
|
||||
debug_timer () {
|
||||
if [[ "$1" == "--start" ]] ; then
|
||||
START=$(date +%s%N)
|
||||
if [[ "$2" == "-s" ]] ; then
|
||||
case $3 in
|
||||
PW_TIME_IN_GAME)
|
||||
START_PW_TIME_IN_GAME=$START ;;
|
||||
UPDATE_ETERFUND)
|
||||
START_UPDATE_ETERFUND=$START ;;
|
||||
UPDATE_GITHUB)
|
||||
START_UPDATE_GITHUB=$START ;;
|
||||
esac
|
||||
fi
|
||||
elif [[ "$1" == "--end" ]] ; then
|
||||
END=$(date +%s%N)
|
||||
DIFF=$((( END - START )/1000000))
|
||||
if [[ -n "$2" ]] ; then
|
||||
if [[ "$2" != "-s" ]] ; then
|
||||
if [[ "$2" == "-s" ]] ; then
|
||||
case $3 in
|
||||
PW_TIME_IN_GAME)
|
||||
START=$START_PW_TIME_IN_GAME ;;
|
||||
UPDATE_ETERFUND)
|
||||
START=$START_UPDATE_ETERFUND ;;
|
||||
UPDATE_GITHUB)
|
||||
START=$START_UPDATE_GITHUB ;;
|
||||
esac
|
||||
export "$3"="$((( END - START )/1000000 ))"
|
||||
else
|
||||
DIFF=$((( END - START )/1000000 ))
|
||||
print_warning "It took $DIFF milliseconds for $2"
|
||||
fi
|
||||
else
|
||||
DIFF=$((( END - START )/1000000 ))
|
||||
print_warning "It took $DIFF milliseconds"
|
||||
fi
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
# Поиск нужного .desktop файла по $portwine_exe
|
||||
search_desktop_file () {
|
||||
local count desktop_file desktop_file_new EXEC_DESKTOP EXEC_DESKTOP_NEW TIME_TOTAL i j df
|
||||
unset TIME_CURRENT_ARRAY DESKTOP_FILES_ARRAY
|
||||
count=0
|
||||
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
||||
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
||||
if [[ $desktop_file_new =~ .desktop$ ]] ; then
|
||||
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
||||
while IFS= read -r line ; do
|
||||
if [[ $line =~ ^Exec= ]] ; then
|
||||
if check_flatpak ; then
|
||||
EXEC_DESKTOP=${line//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||
else
|
||||
EXEC_DESKTOP=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||
fi
|
||||
EXEC_DESKTOP_NEW=${EXEC_DESKTOP//\"/}
|
||||
fi
|
||||
if [[ $line =~ ^#Time= ]] && [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
||||
TIME_CURRENT=${line//#Time=/}
|
||||
fi
|
||||
done < "$desktop_file"
|
||||
if [[ $portwine_exe == "$EXEC_DESKTOP_NEW" ]] ; then
|
||||
# Когда новый .desktop файл
|
||||
if [[ $TIME_CURRENT == "" ]] ; then
|
||||
echo "#NEW_DESKTOP" >> "$desktop_file"
|
||||
TIME_CURRENT="0"
|
||||
# Для битых #Time=
|
||||
elif [[ ! $TIME_CURRENT == "" ]] && [[ ! $TIME_CURRENT =~ [0-9]+ ]] ; then
|
||||
TIME_CURRENT="0"
|
||||
fi
|
||||
TIME_CURRENT_ARRAY+=($TIME_CURRENT)
|
||||
unset TIME_CURRENT
|
||||
DESKTOP_FILES_ARRAY["$count"]="$desktop_file"
|
||||
(( count++ ))
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
IFS="$orig_IFS"
|
||||
|
||||
# Если существуют .desktop файлы на один и тот же .exe файл, то среди них выбирается
|
||||
# текущее время берётся из того .desktop файла, в котором проведено больше времени
|
||||
# и запись этого большего времени будет потом записываться во все .desktop файлы
|
||||
# у которых общий .exe файл, это нужно для того, чтобы в главном меню .desktop файлы
|
||||
# упорядочивались нормально.
|
||||
for i in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
||||
for j in "${!TIME_CURRENT_ARRAY[@]}" ; do
|
||||
if (( ${TIME_CURRENT_ARRAY[$i]} > ${TIME_CURRENT_ARRAY[$j]} )) ; then
|
||||
tmp=${TIME_CURRENT_ARRAY[$i]}
|
||||
TIME_CURRENT_ARRAY[i]=${TIME_CURRENT_ARRAY[$j]}
|
||||
TIME_CURRENT_ARRAY[j]=$tmp
|
||||
fi
|
||||
done
|
||||
done
|
||||
|
||||
TIME_CURRENT="${TIME_CURRENT_ARRAY[0]}"
|
||||
if [[ -n $PW_TIME_IN_GAME ]] ; then
|
||||
TIME_TOTAL=$(( TIME_CURRENT + PW_TIME_IN_GAME ))
|
||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
||||
sed -i '/^#Time=/d' "$df"
|
||||
echo "#Time=$TIME_TOTAL" >> "$df"
|
||||
done
|
||||
else
|
||||
for df in "${DESKTOP_FILES_ARRAY[@]}" ; do
|
||||
sed -i '/^#Time=/d' "$df"
|
||||
echo "#Time=$TIME_CURRENT" >> "$df"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Конвертация секунд в дни, часы, минуты
|
||||
seconds_to_time () {
|
||||
[[ -z $1 ]] && return 0
|
||||
local seconds days hours minutes
|
||||
seconds=$1
|
||||
|
||||
days=$((seconds / (60 * 60 * 24)))
|
||||
seconds=$((seconds % (60 * 60 * 24)))
|
||||
|
||||
hours=$((seconds / (60 * 60)))
|
||||
seconds=$((seconds % (60 * 60)))
|
||||
|
||||
minutes=$((seconds / 60))
|
||||
seconds=$((seconds % 60))
|
||||
|
||||
if [[ $days =~ ^0$ ]] ; then
|
||||
days=
|
||||
elif [[ $days =~ ^1$ ]] ; then
|
||||
days="$days ${translations[day]}, "
|
||||
elif [[ $days =~ ^([2-9]1|[1-9][0-9]+1)$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||
days="$days ${translations[day]}, "
|
||||
elif [[ $days =~ ^([2-4]|[2-9][2-4]|[1-9][0-9]+[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||
days="$days дня, "
|
||||
else
|
||||
days="$days ${translations[days]}, "
|
||||
fi
|
||||
|
||||
if [[ $hours =~ ^0$ ]] ; then
|
||||
hours=
|
||||
elif [[ $hours =~ ^1$ ]] ; then
|
||||
hours="$hours ${translations[hour]} ${translations[and]} "
|
||||
elif [[ $hours =~ ^([2-4]|2[2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||
hours="$hours часа ${translations[and]} "
|
||||
elif [[ $hours =~ ^21$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||
hours="$hours ${translations[hour]} ${translations[and]} "
|
||||
else
|
||||
hours="$hours ${translations[hours]} ${translations[and]} "
|
||||
fi
|
||||
|
||||
if [[ $minutes =~ ^0$ ]] ; then
|
||||
hours=${hours//" ${translations[and]} "/}
|
||||
minutes=
|
||||
if [[ $days == "" ]] || [[ $hours == "" ]] ; then
|
||||
days=${days//","/}
|
||||
fi
|
||||
if [[ $days == "" ]] && [[ $hours == "" ]] ; then
|
||||
minutes="${translations[less than a minute]}"
|
||||
fi
|
||||
elif [[ $minutes =~ ^1$ ]] ; then
|
||||
minutes="$minutes ${translations[minute]}"
|
||||
elif [[ $minutes =~ ^[2-5]1$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||
minutes="$minutes ${translations[minute]}"
|
||||
elif [[ $minutes =~ ^([2-4]|[2-5][2-4])$ ]] && [[ $LANGUAGE == ru ]] ; then
|
||||
minutes="$minutes минуты"
|
||||
else
|
||||
minutes="$minutes ${translations[minutes]}"
|
||||
fi
|
||||
|
||||
echo -e "<b>\n${translations[Time spent]}: $days$hours$minutes</b>"
|
||||
}
|
||||
|
||||
combobox_fix () {
|
||||
@ -761,6 +915,7 @@ combobox_fix () {
|
||||
print_error "no argument specified for combobox_fix"
|
||||
return 1
|
||||
else
|
||||
local name1 name2
|
||||
if [[ "$1" == "--disabled" ]] ; then
|
||||
if [[ -z "$3" ]] ; then
|
||||
echo "disabled"
|
||||
@ -783,6 +938,7 @@ combobox_fix () {
|
||||
fi
|
||||
name2="$2"
|
||||
fi
|
||||
local name3 name4
|
||||
name3="${name2//\!${name1}\!/\!}"
|
||||
name3="!${name3//${name1}\!/\!}"
|
||||
name3="${name3//\!\!/\!}"
|
||||
@ -1292,12 +1448,17 @@ stop_portwine () {
|
||||
pw_stop_progress_bar
|
||||
try_remove_file "${PORT_SCRIPTS_PATH}/0"
|
||||
try_remove_file "${PORT_SCRIPTS_PATH}/1"
|
||||
kill_portwine &&
|
||||
kill_portwine
|
||||
try_remove_dir "${PW_WINELIB}/var"
|
||||
find "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}/drive_c/" -maxdepth 1 -type f -name "*.tmp" -delete
|
||||
pw_exit_tray
|
||||
pw_auto_create_shortcut
|
||||
add_in_stop_portwine
|
||||
|
||||
debug_timer --end -s "PW_TIME_IN_GAME"
|
||||
PW_TIME_IN_GAME=$(( PW_TIME_IN_GAME / 1000 )) # в секундах
|
||||
search_desktop_file
|
||||
|
||||
case "$1" in
|
||||
--restart)
|
||||
restart_pp ;;
|
||||
@ -1755,23 +1916,21 @@ pw_port_update () {
|
||||
URL_GITHUB="https://raw.githubusercontent.com/Castro-Fidel/PortWINE/${BRANCH}/data_from_portwine/scripts/var"
|
||||
|
||||
pw_check_update () {
|
||||
debug_timer --start
|
||||
debug_timer --start -s "UPDATE_ETERFUND"
|
||||
if ! timeout 2 curl -f -s --list-only "$URL_ETERFUND" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
|
||||
then
|
||||
print_warning "https://gitlab.eterfund.ru/ broken. Skip it..."
|
||||
UPDATE_SKIP_ETERFUND="1"
|
||||
fi
|
||||
debug_timer --end -s
|
||||
UPDATE_ETERFUND="$DIFF"
|
||||
debug_timer --end -s "UPDATE_ETERFUND"
|
||||
|
||||
debug_timer --start
|
||||
debug_timer --start -s "UPDATE_GITHUB"
|
||||
if ! timeout 2 curl -f -s --list-only "$URL_GITHUB" > "${PORT_WINE_TMP_PATH}/curent_var_ver"
|
||||
then
|
||||
print_warning "https://raw.githubusercontent.com/ broken. Skip it..."
|
||||
UPDATE_SKIP_GITHUB="1"
|
||||
fi
|
||||
debug_timer --end -s
|
||||
UPDATE_GITHUB="$DIFF"
|
||||
debug_timer --end -s "UPDATE_GITHUB"
|
||||
|
||||
if [[ "$UPDATE_SKIP_ETERFUND" == "1" ]] \
|
||||
&& [[ "$UPDATE_SKIP_GITHUB" == "1" ]] ; then
|
||||
@ -2191,14 +2350,12 @@ pw_find_exe () {
|
||||
--button="${translations[CANCEL]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":1 \
|
||||
--button="${translations[OK]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png":0 2>/dev/null)"
|
||||
YAD_STATUS="$?"
|
||||
|
||||
IFS="$orig_IFS"
|
||||
if [[ "$YAD_STATUS" == "1" || "$YAD_STATUS" == "252" ]] ; then
|
||||
if [[ -z "${PW_SET_FIND_EXE}" ]] ; then
|
||||
print_info "Restarting..."
|
||||
restart_pp
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
IFS="$orig_IFS"
|
||||
|
||||
if [[ -n "${PW_SET_FIND_EXE}" ]] ; then
|
||||
portwine_exe="${PW_PATH_FOR_FIND}$(echo "${PW_SET_FIND_EXE}" | awk -F'|' '{print $1}')"
|
||||
@ -3531,6 +3688,7 @@ portwine_launch () {
|
||||
PW_VD_TMP=(explorer "/desktop=PortProton,${PW_SCREEN_RESOLUTION}")
|
||||
fi
|
||||
|
||||
debug_timer --start -s "PW_TIME_IN_GAME"
|
||||
case "$portwine_exe" in
|
||||
*.[Ee][Xx][Ee])
|
||||
pw_run ${PW_VD_TMP[@]} ${WINE_WIN_START} "$portwine_exe"
|
||||
@ -5093,11 +5251,29 @@ gui_userconf () {
|
||||
GPU_VAR="disabled"
|
||||
fi
|
||||
|
||||
if [[ -n "${DESKTOP_WITH_TIME}" ]] \
|
||||
&& [[ "${DESKTOP_WITH_TIME}" != "disabled" ]]
|
||||
then
|
||||
DESKTOP_WITH_TIME="enabled"
|
||||
else
|
||||
DESKTOP_WITH_TIME="disabled"
|
||||
fi
|
||||
|
||||
if [[ -n "${SORT_WITH_TIME}" ]] \
|
||||
&& [[ "${SORT_WITH_TIME}" == "disabled" ]]
|
||||
then
|
||||
SORT_WITH_TIME="disabled"
|
||||
else
|
||||
SORT_WITH_TIME="enabled"
|
||||
fi
|
||||
|
||||
"${pw_yad}" --plug=$KEY_USERCONF_GUI --tabnum="2" --form --columns=1 --separator="%" --homogeneous-row \
|
||||
--gui-type-text="${PANED_GUI_TYPE_TEXT_DOWN}" --gui-type-layout="${PANED_GUI_TYPE_LAYOUT_DOWN}" \
|
||||
--field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "${GPU_VAR}" "${GET_GPU_NAMES}")" \
|
||||
--field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "${SOUND_DRIVER_VAR}" "alsa!oss!pulse")" \
|
||||
--field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "${GUI_THEME}" "default!compact!classic")" \
|
||||
--gui-type-text="$PANED_GUI_TYPE_TEXT_DOWN" --gui-type-layout="$PANED_GUI_TYPE_LAYOUT_DOWN" \
|
||||
--field="${translations[Choose a graphics card to run the game]}!${translations[Select which video card will be used to run the game (used for all running games and programs in PortProton)]} :CB" "$(combobox_fix --disabled "$GPU_VAR" "$GET_GPU_NAMES")" \
|
||||
--field="${translations[Choice wine audio driver]}!${translations[Fixes sound popling if choice alsa]} :CB" "$(combobox_fix --disabled "$SOUND_DRIVER_VAR" "alsa!oss!pulse")" \
|
||||
--field="${translations[Choice gui themes]}!${translations[Allows you to select a theme for PortProton]} :CB" "$(combobox_fix "$GUI_THEME" "default!compact!classic")" \
|
||||
--field="${translations[Time display]}!${translations[Displays time spent in an application or game]} :CB" "$(combobox_fix "$DESKTOP_WITH_TIME" "enabled!disabled")" \
|
||||
--field="${translations[Sort shortcuts by time]}!${translations[This setting sorts the shortcuts in the main menu depending on the time spent in the application or game]} :CB" "$(combobox_fix "$SORT_WITH_TIME" "enabled!disabled")" \
|
||||
1> "${PW_TMPFS_PATH}/tmp_yad_userconf_set_cb" 2>/dev/null &
|
||||
|
||||
"${pw_yad}" --key=$KEY_USERCONF_GUI --paned --sensitive \
|
||||
@ -5133,7 +5309,9 @@ gui_userconf () {
|
||||
PW_GPU_USE="${PW_ADD_SETTINGS_UC[0]}"
|
||||
PW_SOUND_DRIVER_USE="${PW_ADD_SETTINGS_UC[1]}"
|
||||
GUI_THEME="${PW_ADD_SETTINGS_UC[2]}"
|
||||
edit_user_conf_from_gui PW_GPU_USE PW_SOUND_DRIVER_USE GUI_THEME
|
||||
DESKTOP_WITH_TIME="${PW_ADD_SETTINGS_UC[3]}"
|
||||
SORT_WITH_TIME="${PW_ADD_SETTINGS_UC[4]}"
|
||||
edit_user_conf_from_gui PW_GPU_USE PW_SOUND_DRIVER_USE GUI_THEME DESKTOP_WITH_TIME SORT_WITH_TIME
|
||||
restart_pp
|
||||
;;
|
||||
esac
|
||||
@ -5207,10 +5385,11 @@ portwine_create_shortcut () {
|
||||
[[ -z "${PW_SHORTCUT_STEAM}" ]] && PW_SHORTCUT_STEAM="FALSE"
|
||||
|
||||
if [[ -z "${PORTPROTON_NAME}" ]] ; then
|
||||
export name_desktop="$(basename "$portwine_exe")"
|
||||
name_desktop="$(basename "$portwine_exe")"
|
||||
else
|
||||
export name_desktop="${PORTPROTON_NAME}"
|
||||
name_desktop="${PORTPROTON_NAME}"
|
||||
fi
|
||||
export name_desktop
|
||||
|
||||
[[ -z "${name_desktop_png}" ]] && name_desktop_png="${PORTPROTON_NAME// /_}"
|
||||
|
||||
@ -5327,17 +5506,14 @@ portwine_create_shortcut () {
|
||||
|
||||
if [[ "$PW_NO_RESTART_PPDB" != "1" ]] ; then
|
||||
print_info "Restarting PP..."
|
||||
if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then
|
||||
unset PW_YAD_FORM_TAB
|
||||
fi
|
||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||
restart_pp
|
||||
fi
|
||||
elif [[ "$PW_YAD_OUT" == "2" ]] ; then
|
||||
print_info "Restarting PP..."
|
||||
if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then
|
||||
unset PW_YAD_FORM_TAB
|
||||
fi
|
||||
restart_pp
|
||||
[[ -n $KEY_MENU ]] && unset portwine_exe
|
||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||
[[ -z $LINKS ]] && restart_pp
|
||||
fi
|
||||
}
|
||||
|
||||
@ -5354,15 +5530,12 @@ pw_auto_create_shortcut () {
|
||||
unset LINKS
|
||||
for link_file in "${PORT_WINE_PATH}"/data/prefixes/*/drive_c/users/*/Desktop/*.lnk
|
||||
do
|
||||
if ! echo "$link_file" | grep "\*.lnk" &>/dev/null ; then
|
||||
link_file=$(readlink -f "${link_file}")
|
||||
LINKS+=("${link_file// /@_@}")
|
||||
else
|
||||
continue
|
||||
fi
|
||||
LINKS+=(${link_file// /@_@})
|
||||
done
|
||||
[[ -z "$LINKS" ]] && return 0
|
||||
SORTED_LINKS=($(echo ${LINKS[@]} | tr ' ' '\n' | sort -u))
|
||||
|
||||
[[ -z "${LINKS[0]}" ]] && return 0
|
||||
read -r -a SORTED_LINKS < <(echo ${LINKS[@]} | tr ' ' '\n' | sort -u | tr '\n' ' ')
|
||||
|
||||
for link_file in "${SORTED_LINKS[@]//@_@/ }" ; do
|
||||
if command -v exiftool &>/dev/null ; then
|
||||
@ -5402,10 +5575,8 @@ pw_auto_create_shortcut () {
|
||||
link_cmd=$(sed -n 's/^Command Line Arguments\s*:\s*//p' "${PW_TMPFS_PATH}/exiftool.tmp")
|
||||
fi
|
||||
|
||||
try_remove_file "$link_file"
|
||||
|
||||
if ! exe_path="$(realpath "${link_path}" 2>/dev/null)" ; then
|
||||
print_warning "Removed broken link for: $link_name"
|
||||
print_warning "Link broken for: $link_name"
|
||||
else
|
||||
print_info "Created link for: $link_name"
|
||||
PORTPROTON_NAME="$link_name"
|
||||
@ -5851,21 +6022,12 @@ button_click () {
|
||||
--desktop)
|
||||
kill -s SIGUSR1 $(pgrep -a yad | grep "\--key=${KEY_MENU}" | awk '{print $1}') > /dev/null 2>&1
|
||||
PW_YAD_SET="${PORT_WINE_PATH}/${PW_YAD_SET//#@_@#/ }"
|
||||
if [[ $PW_DESKTOP_FILES_REGEX == "1" ]] ; then
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_1#/\(}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_2#/\)}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_3#/\!}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_4#/\$}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_5#/\%}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_6#/\&}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_7#/\`}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_8#/\'}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_9#/\"}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_10#/\>}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_11#/\<}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_12#/\\}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_13#/\|}"
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_14#/\;}"
|
||||
if [[ -n $PW_DESKTOP_FILES_REGEX ]] ; then
|
||||
local count=1
|
||||
for y in "${PW_DESKTOP_FILES_REGEX[@]}" ; do
|
||||
PW_YAD_SET="${PW_YAD_SET//#+_$count#/$y}"
|
||||
(( count++ ))
|
||||
done
|
||||
fi
|
||||
if check_flatpak
|
||||
then PW_EXEC_FROM_DESKTOP="$(grep Exec "$PW_YAD_SET" | head -n 1 | sed 's|flatpak run ru.linux_gaming.PortProton|\"${PORT_SCRIPTS_PATH}/start.sh\"|' | awk -F'=' '{print $2}')"
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: chal55rus (Sergey P.)
|
||||
# type: games
|
||||
# type: emulators
|
||||
# name: RetroArch
|
||||
# image: retroarch
|
||||
# info_en:
|
||||
|
@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env bash
|
||||
# Author: Castro-Fidel (linux-gaming.ru)
|
||||
# type: games
|
||||
# name: Star Conflict
|
||||
# image: starconflict
|
||||
# name: STALCRAFT
|
||||
# image: stalcraft
|
||||
# info_en:
|
||||
# info_ru:
|
||||
########################################################################
|
||||
|
@ -25,7 +25,8 @@ if PORT_SCRIPTS_PATH=$(readlink -f "${0%/*}") ; then
|
||||
export PORT_SCRIPTS_PATH
|
||||
export PORT_WINE_PATH=${PORT_SCRIPTS_PATH%/*/*}
|
||||
else
|
||||
fatal
|
||||
echo "The PORT_SCRIPTS_PATH directory was not found!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# shellcheck source=/dev/null
|
||||
@ -90,10 +91,11 @@ unset MANGOHUD MANGOHUD_DLSYM PW_NO_ESYNC PW_NO_FSYNC PW_VULKAN_USE WINEDLLOVERR
|
||||
unset PW_CHECK_AUTOINSTALL PW_VKBASALT_EFFECTS PW_VKBASALT_FFX_CAS PORTWINE_DB PORTWINE_DB_FILE RADV_PERFTEST
|
||||
unset CHK_SYMLINK_FILE PW_MESA_GL_VERSION_OVERRIDE PW_VKD3D_FEATURE_LEVEL PATH_TO_GAME PW_START_DEBUG PORTPROTON_NAME PW_PATH
|
||||
unset PW_PREFIX_NAME WINEPREFIX VULKAN_MOD PW_WINE_VER PW_ADD_TO_ARGS_IN_RUNTIME PW_GAMEMODERUN_SLR AMD_VULKAN_ICD PW_WINE_CPU_TOPOLOGY
|
||||
unset PW_NAME_D_NAME PW_NAME_D_ICON PW_NAME_D_EXEC PW_EXEC_FROM_DESKTOP PW_ALL_DF PW_GENERATE_BUTTONS PW_NAME_D_ICON PW_NAME_D_ICON_48
|
||||
unset MANGOHUD_CONFIG FPS_LIMIT PW_WINE_USE WINEDLLPATH WINE WINEDIR WINELOADER WINESERVER PW_USE_RUNTIME PORTWINE_CREATE_SHORTCUT_NAME MIRROR
|
||||
unset PW_LOCALE_SELECT PW_SETTINGS_INDICATION PW_GUI_START PW_AUTOINSTALL_EXE NOSTSTDIR RADV_DEBUG PW_NO_AUTO_CREATE_SHORTCUT
|
||||
unset PW_DESKTOP_FILES_REGEX PW_TERM
|
||||
unset PW_NAME_D_ICON PW_ICON_PATH PW_GAME_TIME PW_ALL_DF PW_AMOUNT_NEW_DESKTOP PW_AMOUNT_OLD_DESKTOP PW_DESKTOP_FILES
|
||||
unset AI_TYPE AI_NAME AI_IMAGE AI_INFO AI_FILE_ARRAY AI_TRUE_FILE AI_FILE_UNSORTED AI_FILE_SORTED PW_GENERATE_BUTTONS
|
||||
unset PW_DESKTOP_FILES_REGEX PW_TERM PW_EXEC_FROM_DESKTOP
|
||||
|
||||
export PORT_WINE_TMP_PATH="${PORT_WINE_PATH}/data/tmp"
|
||||
rm -f "$PORT_WINE_TMP_PATH"/*{exe,msi,tar}*
|
||||
@ -324,7 +326,7 @@ export SKIP_CHECK_UPDATES="1"
|
||||
|
||||
[[ "$MISSING_DESKTOP_FILE" == "1" ]] && portwine_missing_shortcut
|
||||
|
||||
if [[ -n $(basename "${portwine_exe}" | grep .ppack) ]] ; then
|
||||
if [[ $(basename "${portwine_exe}") =~ .[Pp][Pp][Aa][Cc][Kk]$ ]] ; then
|
||||
unset PW_SANDBOX_HOME_PATH
|
||||
pw_init_runtime
|
||||
if check_flatpak
|
||||
@ -464,14 +466,6 @@ case "${PW_VULKAN_USE}" in
|
||||
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_LEGACY!$SORT_G_ZINK!$SORT_G_NINE!$SORT_OPENGL!$SORT_VULKAN" ;;
|
||||
esac
|
||||
|
||||
if [[ -z "${PW_COMMENT_DB}" ]] ; then
|
||||
if [[ -n "${PORTPROTON_NAME}" ]] ; then
|
||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")</b>"
|
||||
else
|
||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")</b>"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ $PW_WINE_USE == PROTON_LG ]] ; then
|
||||
PW_WINE_USE="${PW_PROTON_LG_VER}"
|
||||
PW_DEFAULT_WINE_USE="${PW_WINE_LG_VER}${DIST_ADD_TO_GUI}!GET-OTHER-WINE"
|
||||
@ -505,6 +499,17 @@ if [[ -f "${portwine_exe}" ]] ; then
|
||||
PW_SHORTCUT="${translations[DELETE SHORTCUT]}!$PW_GUI_ICON_PATH/$BUTTON_SIZE.png!${translations[Delete shortcut for select file...]}:98"
|
||||
fi
|
||||
|
||||
[[ $DESKTOP_WITH_TIME == enabled ]] && search_desktop_file
|
||||
if [[ -z "${PW_COMMENT_DB}" ]] ; then
|
||||
if [[ -n "${PORTPROTON_NAME}" ]] ; then
|
||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTPROTON_NAME}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||
else
|
||||
PW_COMMENT_DB="${translations[Launching]} <b>$(print_wrapped "${PORTWINE_DB}" "50")</b>$(seconds_to_time "$TIME_CURRENT")"
|
||||
fi
|
||||
else
|
||||
PW_COMMENT_DB="$PW_COMMENT_DB$(seconds_to_time "$TIME_CURRENT")"
|
||||
fi
|
||||
|
||||
export KEY_START="$RANDOM"
|
||||
if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then
|
||||
"${pw_yad}" --plug=$KEY_START --tabnum=1 --form --separator=";" ${START_GUI_TYPE} \
|
||||
@ -583,12 +588,14 @@ if [[ -f "${portwine_exe}" ]] ; then
|
||||
--button="${translations[LAUNCH]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE.png"!"${translations[Run file ...]}":106 2>/dev/null
|
||||
PW_YAD_SET="$?"
|
||||
fi
|
||||
[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in
|
||||
case "$PW_YAD_SET" in
|
||||
128)
|
||||
if [[ "${PW_GUI_START}" == "NOTEBOOK" ]] ; then
|
||||
unset PW_YAD_FORM_TAB
|
||||
fi
|
||||
unset portwine_exe KEY_START $(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g')
|
||||
[[ "$PW_GUI_START" == "NOTEBOOK" ]] && unset PW_YAD_FORM_TAB
|
||||
PORTWINE_DB_FOR_UNSET=$(sed -n '/export/p' "${PORTWINE_DB_FILE}" | sed 's/\(export\|=.*\| \)//g')
|
||||
for db_unset in $PORTWINE_DB_FOR_UNSET ; do
|
||||
unset "$db_unset"
|
||||
done
|
||||
unset portwine_exe KEY_START
|
||||
print_info "Restarting..."
|
||||
restart_pp
|
||||
;;
|
||||
@ -598,69 +605,115 @@ if [[ -f "${portwine_exe}" ]] ; then
|
||||
esac
|
||||
pw_yad_set_form
|
||||
pw_yad_form_vulkan
|
||||
elif [[ -f "${PORTWINE_DB_FILE}" ]] ; then
|
||||
elif [[ -f "$PORTWINE_DB_FILE" ]] ; then
|
||||
portwine_launch
|
||||
fi
|
||||
else
|
||||
PW_ALL_DF="$(ls "${PORT_WINE_PATH}"/ | grep .desktop | grep -vE '(PortProton|readme)')"
|
||||
if [[ -z "${PW_ALL_DF}" ]]
|
||||
then export PW_GUI_SORT_TABS=(1 2 3 4 5)
|
||||
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
|
||||
fi
|
||||
if [[ "$RESTART_PP_USED" == "userconf" ]] ; then
|
||||
unset RESTART_PP_USED
|
||||
gui_userconf
|
||||
fi
|
||||
|
||||
export KEY_MENU="$RANDOM"
|
||||
|
||||
IFS=$'\n'
|
||||
AMOUNT_GENERATE_BUTTONS="1"
|
||||
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
|
||||
for PW_DESKTOP_FILES in ${PW_ALL_DF} ; do
|
||||
# Поиск .desktop файлов
|
||||
AMOUNT_GENERATE_BUTTONS="0"
|
||||
for desktop_file in "$PORT_WINE_PATH"/* ; do
|
||||
desktop_file_new="${desktop_file//"$PORT_WINE_PATH/"/}"
|
||||
if [[ $desktop_file_new =~ .desktop$ ]] ; then
|
||||
if [[ ! $desktop_file_new =~ (PortProton|readme) ]] ; then
|
||||
while IFS= read -r line ; do
|
||||
if [[ $line =~ ^Exec= ]] ; then
|
||||
if check_flatpak ; then
|
||||
PW_NAME_D_ICON="$(grep Exec "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F'=' '{print $2}' |
|
||||
sed -e 's|flatpak run ru.linux_gaming.PortProton||' -e 's|"||g' -e 's|^[ \t]*||')"
|
||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=flatpak run ru.linux_gaming.PortProton /}
|
||||
else
|
||||
PW_NAME_D_ICON="$(grep Exec "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F"=env " '{print $2}' |
|
||||
sed -e "s|${PORT_SCRIPTS_PATH}/start.sh||" -e 's|"||g' -e 's|^[ \t]*||')"
|
||||
PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]=${line//Exec=env \"$PORT_SCRIPTS_PATH\/start.sh\" /}
|
||||
fi
|
||||
PW_ICON_PATH="$(grep Icon "${PORT_WINE_PATH}/${PW_DESKTOP_FILES}" | awk -F= '{print $2}')"
|
||||
PW_NAME_D_ICON_48="${PW_ICON_PATH%.png}_48"
|
||||
PW_NAME_D_ICON_128="${PW_ICON_PATH%.png}"
|
||||
if [[ -f "${PW_NAME_D_ICON}" ]] ; then
|
||||
resize_png "${PW_NAME_D_ICON}" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48"
|
||||
resize_png "${PW_NAME_D_ICON}" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128"
|
||||
fi
|
||||
if [[ $PW_DESKTOP_FILES =~ [\(\)\!\$\%\&\`\'\"\>\<\\\|\;] ]] ; then
|
||||
export PW_DESKTOP_FILES_REGEX="1"
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES//\!/}"
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\%/}"
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\$/}"
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\&/}"
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//\</}"
|
||||
[[ $line =~ ^Icon= ]] && PW_ICON_PATH["$AMOUNT_GENERATE_BUTTONS"]="${line//Icon=/}"
|
||||
[[ $line =~ ^#Time= ]] && PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]="${line//#Time=/}"
|
||||
[[ $line =~ ^#NEW_DESKTOP ]] && NEW_DESKTOP=1
|
||||
done < "$desktop_file"
|
||||
PW_ALL_DF["$AMOUNT_GENERATE_BUTTONS"]="$desktop_file_new"
|
||||
if [[ $NEW_DESKTOP == 1 ]] && [[ $SORT_WITH_TIME == enabled ]] ; then
|
||||
unset NEW_DESKTOP
|
||||
sed -i '/^#NEW_DESKTOP/d' "$desktop_file"
|
||||
PW_AMOUNT_NEW_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||
else
|
||||
PW_AMOUNT_OLD_DESKTOP+=($AMOUNT_GENERATE_BUTTONS)
|
||||
fi
|
||||
# Для фикса битых #Time=
|
||||
if [[ ! ${PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]} =~ [0-9]+ ]] ; then
|
||||
portwine_exe=${PW_NAME_D_ICON["$AMOUNT_GENERATE_BUTTONS"]//\"/}
|
||||
search_desktop_file
|
||||
unset portwine_exe
|
||||
PW_GAME_TIME["$AMOUNT_GENERATE_BUTTONS"]=${TIME_CURRENT_ARRAY[0]}
|
||||
fi
|
||||
(( AMOUNT_GENERATE_BUTTONS++ ))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\(/#+_1#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\)/#+_2#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\!/#+_3#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\$/#+_4#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\%/#+_5#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\&/#+_6#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\`/#+_7#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\'/#+_8#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\"/#+_9#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\>/#+_10#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\</#+_11#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\\/#+_12#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\|/#+_13#}"
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//\;/#+_14#}"
|
||||
else
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES}"
|
||||
# Переопределение элементов в массивах в зависимости от PW_GAME_TIME, от большего значения к меньшему.
|
||||
# 10 миллисекунд на 40 .desktop файлов, работает быстро
|
||||
if [[ $SORT_WITH_TIME == enabled ]] ; then
|
||||
for i in "${!PW_GAME_TIME[@]}" ; do
|
||||
for j in "${!PW_GAME_TIME[@]}" ; do
|
||||
if (( ${PW_GAME_TIME[$i]} > ${PW_GAME_TIME[$j]} )) ; then
|
||||
tmp_0=${PW_GAME_TIME[$i]}
|
||||
tmp_1=${PW_ALL_DF[$i]}
|
||||
tmp_2=${PW_NAME_D_ICON[$i]}
|
||||
tmp_4=${PW_ICON_PATH[$i]}
|
||||
|
||||
PW_GAME_TIME[i]=${PW_GAME_TIME[$j]}
|
||||
PW_ALL_DF[i]=${PW_ALL_DF[$j]}
|
||||
PW_NAME_D_ICON[i]=${PW_NAME_D_ICON[$j]}
|
||||
PW_ICON_PATH[i]=${PW_ICON_PATH[$j]}
|
||||
|
||||
PW_GAME_TIME[j]=$tmp_0
|
||||
PW_ALL_DF[j]=$tmp_1
|
||||
PW_NAME_D_ICON[j]=$tmp_2
|
||||
PW_ICON_PATH[j]=$tmp_4
|
||||
fi
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
# Генерация .desktop баттанов для главного меню
|
||||
IFS=$'\n'
|
||||
PW_GENERATE_BUTTONS="--field= ${translations[Create shortcut...]}!${PW_GUI_ICON_PATH}/find_48.svg!:FBTNR%@bash -c \"button_click --normal pw_find_exe\"%"
|
||||
for dp in ${PW_AMOUNT_NEW_DESKTOP[@]} ${PW_AMOUNT_OLD_DESKTOP[@]} ; do
|
||||
PW_NAME_D_ICON_48="${PW_ICON_PATH[dp]%.png}_48"
|
||||
PW_NAME_D_ICON_128="${PW_ICON_PATH[dp]%.png}"
|
||||
PW_NAME_D_ICON_NEW="${PW_NAME_D_ICON[dp]//\"/}"
|
||||
resize_png "$PW_NAME_D_ICON_NEW" "${PW_NAME_D_ICON_48//"${PORT_WINE_PATH}/data/img/"/}" "48"
|
||||
resize_png "$PW_NAME_D_ICON_NEW" "${PW_NAME_D_ICON_128//"${PORT_WINE_PATH}/data/img/"/}" "128"
|
||||
|
||||
PW_DESKTOP_FILES="${PW_ALL_DF[$dp]}"
|
||||
PW_DESKTOP_FILES_SHOW="$PW_DESKTOP_FILES"
|
||||
if [[ $PW_DESKTOP_FILES =~ [\(\)\!\$\%\&\`\'\"\>\<\\\|\;] ]] ; then
|
||||
PW_DESKTOP_FILES_SHOW_REGEX=(\! % \$ \& \<)
|
||||
PW_DESKTOP_FILES_REGEX=(\( \) \! \$ % \& \` \' \" \> \< \\ \| \;)
|
||||
|
||||
for i in "${PW_DESKTOP_FILES_SHOW_REGEX[@]}" ; do
|
||||
PW_DESKTOP_FILES_SHOW="${PW_DESKTOP_FILES_SHOW//$i/}"
|
||||
done
|
||||
|
||||
count=1
|
||||
for j in "${PW_DESKTOP_FILES_REGEX[@]}" ; do
|
||||
PW_DESKTOP_FILES="${PW_DESKTOP_FILES//$j/#+_$count#}"
|
||||
(( count++ ))
|
||||
done
|
||||
fi
|
||||
PW_GENERATE_BUTTONS+="--field= $(print_wrapped "${PW_DESKTOP_FILES_SHOW//".desktop"/""}" "25" "...")!${PW_NAME_D_ICON_48}.png!:FBTNR%@bash -c \"button_click --desktop "${PW_DESKTOP_FILES// /#@_@#}"\"%"
|
||||
(( AMOUNT_GENERATE_BUTTONS++ ))
|
||||
done
|
||||
MAIN_GUI_ROWS="$(( AMOUNT_GENERATE_BUTTONS / MAIN_GUI_COLUMNS + 1 ))"
|
||||
|
||||
MAIN_GUI_ROWS="$(( ( AMOUNT_GENERATE_BUTTONS + 1 ) / MAIN_GUI_COLUMNS + 1 ))"
|
||||
|
||||
if [[ -z $PW_DESKTOP_FILES ]]
|
||||
then export PW_GUI_SORT_TABS=(1 2 3 4 5)
|
||||
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
|
||||
fi
|
||||
|
||||
KEY_MENU="$RANDOM"
|
||||
|
||||
IFS="%"
|
||||
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[4]}" --form --columns="$MAIN_GUI_ROWS" --homogeneous-column \
|
||||
@ -697,48 +750,67 @@ else
|
||||
--field=" ${translations[Command line]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine cmd]}":"FBTN" '@bash -c "button_click --normal WINECMD"' \
|
||||
--field=" ${translations[Regedit]}"!"$PW_GUI_ICON_PATH/$BUTTON_SIZE_MM.png"!"${translations[Run wine regedit]}":"FBTN" '@bash -c "button_click --normal WINEREG"' 1> "${PW_TMPFS_PATH}/tmp_yad_form_vulkan" 2>/dev/null &
|
||||
|
||||
AI_AMOUNT_GAMES="0"
|
||||
AI_AMOUNT_EMULS="0"
|
||||
if [[ $AI_SKIP != 1 ]] ; then
|
||||
# AI_TOP_GAMES используется для сортировки автоинсталлов (работает на эмуляторы тоже)
|
||||
AI_TOP_GAMES="PW_LGC PW_VKPLAY PW_EPIC PW_BATTLE_NET"
|
||||
AI_AMOUNT_GAMES="0" && AI_AMOUNT_EMULS="0" && AI_AMOUNT_ARRAY="0"
|
||||
for ai_file in "$PORT_SCRIPTS_PATH"/pw_autoinstall/* ; do
|
||||
AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}"
|
||||
while IFS= read -r line ; do
|
||||
[[ $line =~ "##########" ]] && break
|
||||
[[ $line =~ "# type: " ]] && AI_TYPE="${line//# type: /}"
|
||||
[[ $line =~ "# name: " ]] && AI_NAME="${line//# name: /}"
|
||||
[[ $line =~ "# image: " ]] && AI_IMAGE="${line//# image: /}"
|
||||
[[ $line =~ "# type: " ]] && AI_TYPE["$AI_AMOUNT_ARRAY"]="${line//# type: /}"
|
||||
[[ $line =~ "# name: " ]] && AI_NAME["$AI_AMOUNT_ARRAY"]="${line//# name: /}"
|
||||
[[ $line =~ "# image: " ]] && AI_IMAGE["$AI_AMOUNT_ARRAY"]="${line//# image: /}"
|
||||
if [[ "$LANGUAGE" == ru ]] ; then
|
||||
[[ $line =~ "# info_ru: " ]] && AI_INFO="${line//# info_ru: /}"
|
||||
[[ $line =~ "# info_ru: " ]] && AI_INFO["$AI_AMOUNT_ARRAY"]="${line//# info_ru: /}"
|
||||
else
|
||||
[[ $line =~ "# info_en: " ]] && AI_INFO="${line//# info_en: /}"
|
||||
[[ $line =~ "# info_en: " ]] && AI_INFO["$AI_AMOUNT_ARRAY"]="${line//# info_en: /}"
|
||||
fi
|
||||
done < "$ai_file"
|
||||
AI_FILE="${ai_file//"$PORT_SCRIPTS_PATH/pw_autoinstall/"/}"
|
||||
AI_FILE_CHECK="$AI_FILE=$AI_AMOUNT_ARRAY"
|
||||
AI_FILE_ARRAY+=($AI_FILE)
|
||||
if [[ $AI_TOP_GAMES =~ ${AI_FILE_CHECK//=*/} ]] ; then
|
||||
AI_TRUE_FILE+=($AI_FILE_CHECK)
|
||||
else
|
||||
AI_FILE_UNSORTED+=($AI_AMOUNT_ARRAY)
|
||||
fi
|
||||
(( AI_AMOUNT_ARRAY++ ))
|
||||
done
|
||||
|
||||
for ai_sort in $AI_TOP_GAMES ; do
|
||||
if [[ ${AI_TRUE_FILE[*]} =~ $ai_sort ]] ; then
|
||||
AI_TRUE_FILE_NEW=(${AI_TRUE_FILE[@]//$ai_sort=/})
|
||||
AI_FILE_SORTED+=(${AI_TRUE_FILE_NEW[@]//*=*/})
|
||||
fi
|
||||
done
|
||||
|
||||
IFS=$'\n'
|
||||
[[ -z "$AI_NAME" ]] && yad_error "Line: \"name\" not found in file $AI_FILE."
|
||||
case $AI_TYPE in
|
||||
for ai in "${AI_FILE_SORTED[@]}" "${AI_FILE_UNSORTED[@]}" ; do
|
||||
case ${AI_TYPE[$ai]} in
|
||||
games)
|
||||
PW_GENERATE_BUTTONS_GAMES+="--field= $AI_NAME!$PW_GUI_ICON_PATH/$AI_IMAGE.png!$AI_INFO:FBTNR%@bash -c \"button_click --normal $AI_FILE\"%"
|
||||
export PW_GENERATE_BUTTONS_GAMES+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%"
|
||||
(( AI_AMOUNT_GAMES++ ))
|
||||
;;
|
||||
emulators)
|
||||
PW_GENERATE_BUTTONS_EMULS+="--field= $AI_NAME!$PW_GUI_ICON_PATH/$AI_IMAGE.png!$AI_INFO:FBTNR%@bash -c \"button_click --normal $AI_FILE\"%"
|
||||
export PW_GENERATE_BUTTONS_EMULS+="--field= ${AI_NAME[$ai]}!$PW_GUI_ICON_PATH/${AI_IMAGE[$ai]}.png!${AI_INFO[$ai]}:FBTNR%@bash -c \"button_click --normal ${AI_FILE_ARRAY[$ai]}\"%"
|
||||
(( AI_AMOUNT_EMULS++ ))
|
||||
;;
|
||||
*)
|
||||
yad_error "Line: \"type\" not found in file $AI_FILE or misspelled."
|
||||
yad_error "Line: \"type\" not found in file ${AI_FILE_ARRAY[$ai]} or misspelled."
|
||||
;;
|
||||
esac
|
||||
[[ -z $PW_DEBUG ]] && unset AI_FILE AI_TYPE AI_NAME AI_IMAGE AI_INFO
|
||||
done
|
||||
MAIN_GUI_ROWS_GAMES="$(( AI_AMOUNT_GAMES / MAIN_GUI_COLUMNS + 1 ))"
|
||||
MAIN_GUI_ROWS_EMULS="$(( AI_AMOUNT_EMULS / MAIN_GUI_COLUMNS + 1 ))"
|
||||
export MAIN_GUI_ROWS_GAMES="$(( AI_AMOUNT_GAMES / MAIN_GUI_COLUMNS + 1 ))"
|
||||
export MAIN_GUI_ROWS_EMULS="$(( AI_AMOUNT_EMULS / MAIN_GUI_COLUMNS + 1 ))"
|
||||
|
||||
export AI_SKIP="1"
|
||||
fi
|
||||
|
||||
IFS="%"
|
||||
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[1]}" --form --columns="$MAIN_GUI_ROWS_EMULS" --align-buttons --scroll --homogeneous-column \
|
||||
--gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_EMULS} 2>/dev/null &
|
||||
"${pw_yad}" --plug=$KEY_MENU --tabnum="${PW_GUI_SORT_TABS[0]}" --form --columns="$MAIN_GUI_ROWS_GAMES" --align-buttons --scroll --homogeneous-column \
|
||||
--gui-type-layout="${MAIN_MENU_GUI_TYPE_LAYOUT}" --separator=" " ${PW_GENERATE_BUTTONS_GAMES} 2>/dev/null &
|
||||
unset PW_GENERATE_BUTTONS_GAMES PW_GENERATE_BUTTONS_EMULS
|
||||
IFS="$orig_IFS"
|
||||
|
||||
export START_FROM_PP_GUI="1"
|
||||
@ -746,7 +818,7 @@ else
|
||||
export TAB_MAIN_MENU="1"
|
||||
fi
|
||||
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
if [[ -z $PW_DESKTOP_FILES ]] ; then
|
||||
"${pw_yad}" --key=$KEY_MENU --notebook --expand \
|
||||
--gui-type="settings-notebook" --active-tab="${TAB_MAIN_MENU}" \
|
||||
--width="${PW_MAIN_SIZE_W}" --height="${PW_MAIN_SIZE_H}" --no-buttons \
|
||||
@ -795,12 +867,12 @@ if [[ -f "${PORTWINE_DB_FILE}" ]] ; then
|
||||
edit_db_from_gui PW_VULKAN_USE PW_WINE_USE PW_PREFIX_NAME
|
||||
fi
|
||||
|
||||
[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in
|
||||
case "$PW_YAD_SET" in
|
||||
gui_pw_reinstall_pp|open_changelog|\
|
||||
128|gui_pw_update|gui_rm_portproton|\
|
||||
change_loc|gui_open_scripts_from_backup|\
|
||||
gui_credits|pw_start_cont_xterm)
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
if [[ -z $PW_DESKTOP_FILES ]] ; then
|
||||
export TAB_MAIN_MENU="4"
|
||||
else
|
||||
export TAB_MAIN_MENU="5"
|
||||
@ -810,14 +882,14 @@ fi
|
||||
116|pw_create_prefix_backup|\
|
||||
gui_clear_pfx|WINEREG|WINECMD|\
|
||||
WINEFILE|WINECFG|gui_wine_uninstaller)
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
if [[ -z $PW_DESKTOP_FILES ]] ; then
|
||||
export TAB_MAIN_MENU="3"
|
||||
else
|
||||
export TAB_MAIN_MENU="4"
|
||||
fi
|
||||
;;
|
||||
pw_find_exe)
|
||||
if [[ -z "${PW_ALL_DF}" ]] ; then
|
||||
if [[ -z $PW_DESKTOP_FILES ]] ; then
|
||||
export TAB_MAIN_MENU="5"
|
||||
else
|
||||
export TAB_MAIN_MENU="1"
|
||||
@ -825,7 +897,7 @@ fi
|
||||
;;
|
||||
esac
|
||||
|
||||
[[ -n "$PW_YAD_SET" ]] && case "$PW_YAD_SET" in
|
||||
case "$PW_YAD_SET" in
|
||||
98) portwine_delete_shortcut ;;
|
||||
100) portwine_create_shortcut ;;
|
||||
DEBUG|102) portwine_start_debug ;;
|
||||
|
@ -23,7 +23,7 @@ export BUTTON_SIZE=32 # 24, 28, 32, 36, 40
|
||||
|
||||
export TAB_SIZE=32 # 24, 28, 32, 36, 40
|
||||
|
||||
export PW_MAIN_SIZE_W=500
|
||||
export PW_MAIN_SIZE_W=1000
|
||||
export PW_MAIN_SIZE_H=350
|
||||
|
||||
export PW_START_SIZE_W=500
|
||||
|
@ -31,7 +31,7 @@ export BUTTON_SIZE=28 # 24, 28, 32, 36, 40
|
||||
export TAB_SIZE=32 # 24, 28, 32, 36, 40
|
||||
|
||||
# размер главного меню
|
||||
export PW_MAIN_SIZE_W=500
|
||||
export PW_MAIN_SIZE_W=1000
|
||||
export PW_MAIN_SIZE_H=330
|
||||
|
||||
# размер меню запуска и положения табов
|
||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user