Added some settings, some nice style, confirm start of app
This commit is contained in:
parent
561b4fa6f2
commit
fabc2928db
|
@ -59,13 +59,14 @@ class GameSettings(QWidget):
|
|||
self.select_proton.addItems(["Don't use Proton"] + self.possible_proton_wrappers)
|
||||
self.select_proton.currentIndexChanged.connect(self.change_proton)
|
||||
self.select_proton_widget = SettingsWidget(self.tr("Proton Wrapper"), self.select_proton)
|
||||
self.layout.addWidget(self.select_proton_widget)
|
||||
self.linux_settings.layout.addWidget(self.select_proton_widget)
|
||||
|
||||
self.proton_prefix = PathEdit("x", QFileDialog.DirectoryOnly)
|
||||
self.proton_prefix_accept_button = QPushButton(self.tr("Save"))
|
||||
self.proton_prefix_accept_button.clicked.connect(self.update_prefix)
|
||||
self.proton_prefix_widget = SettingsWidget(self.tr("Proton prefix"), self.proton_prefix,
|
||||
self.proton_prefix_accept_button)
|
||||
self.layout.addWidget(self.proton_prefix_widget)
|
||||
self.linux_settings.layout.addWidget(self.proton_prefix_widget)
|
||||
|
||||
# startparams, skip_update_check
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from logging import getLogger
|
||||
|
||||
from PyQt5.QtCore import pyqtSignal, QProcess
|
||||
from PyQt5.QtWidgets import QGroupBox
|
||||
from PyQt5.QtCore import pyqtSignal, QProcess, QSettings
|
||||
from PyQt5.QtWidgets import QGroupBox, QMessageBox
|
||||
|
||||
from Rare.utils import LegendaryApi
|
||||
from custom_legendary.core import LegendaryCore
|
||||
|
@ -30,6 +30,11 @@ class BaseInstalledWidget(QGroupBox):
|
|||
# self.setStyleSheet("border-radius: 5px")
|
||||
|
||||
def launch(self, offline=False, skip_version_check=False):
|
||||
if QSettings().value("confirm_start", False, bool):
|
||||
if not QMessageBox.question(self, "Launch", self.tr("Do you want to launch {}").format(self.game.app_title),
|
||||
QMessageBox.Yes | QMessageBox.No) == QMessageBox.Yes:
|
||||
logger.info("Cancel Startup")
|
||||
return 1
|
||||
logger.info("Launching " + self.igame.title)
|
||||
self.proc, params = LegendaryApi.launch_game(self.core, self.igame.app_name, offline,
|
||||
skip_version_check=skip_version_check)
|
||||
|
@ -43,6 +48,6 @@ class BaseInstalledWidget(QGroupBox):
|
|||
return 0
|
||||
|
||||
def finished(self, exit_code):
|
||||
logger.info("Game exited with exit code: ", exit_code)
|
||||
logger.info("Game exited with exit code: " + str(exit_code))
|
||||
self.finish_signal.emit(self.game.app_name)
|
||||
self.game_running = False
|
||||
|
|
|
@ -1,29 +1,31 @@
|
|||
from logging import getLogger
|
||||
|
||||
from PyQt5.QtCore import pyqtSignal
|
||||
from PyQt5.QtWidgets import QWidget, QCheckBox, QVBoxLayout, QWidgetAction, QMenu, QToolButton, QHBoxLayout, QLabel
|
||||
from PyQt5.QtWidgets import QWidget, QCheckBox, QVBoxLayout, QWidgetAction, QMenu, QToolButton, QHBoxLayout, QGroupBox
|
||||
|
||||
from custom_legendary.core import LegendaryCore
|
||||
|
||||
logger = getLogger("DXVK Settings")
|
||||
|
||||
|
||||
class DxvkWidget(QWidget):
|
||||
dxvk_settings = {"fps": (False, "Fps"),
|
||||
"gpuload": (False, "GPU usage"),
|
||||
"memory": (False, "Used Memory"),
|
||||
"devinfo": (False, "Device info"),
|
||||
"version": (False, "DXVK version"),
|
||||
"api": (False, "D3D Level of application")
|
||||
}
|
||||
class DxvkWidget(QGroupBox):
|
||||
|
||||
def __init__(self, core: LegendaryCore):
|
||||
super(DxvkWidget, self).__init__()
|
||||
self.core = core
|
||||
self.dxvk_settings = {
|
||||
"fps": (False, "Fps"),
|
||||
"gpuload": (False, self.tr("GPU usage")),
|
||||
"memory": (False, self.tr("Used Memory")),
|
||||
"devinfo": (False, self.tr("Device info")),
|
||||
"version": (False, self.tr("DXVK version")),
|
||||
"api": (False, self.tr("D3D Level of application")),
|
||||
"frametime": (False, self.tr("Frame time graph"))
|
||||
}
|
||||
self.name = "default"
|
||||
self.layout = QVBoxLayout()
|
||||
self.child_layout = QHBoxLayout()
|
||||
self.title = QLabel("dxvk settings")
|
||||
self.setTitle(self.tr("dxvk settings"))
|
||||
self.show_dxvk = QCheckBox("Show Dxvk HUD")
|
||||
|
||||
self.more_settings = QToolButton()
|
||||
|
@ -46,7 +48,6 @@ class DxvkWidget(QWidget):
|
|||
|
||||
self.show_dxvk.stateChanged.connect(self.update_dxvk_active)
|
||||
self.show_dxvk.setChecked(not dxvk_hud == "")
|
||||
self.layout.addWidget(self.title)
|
||||
self.child_layout.addWidget(self.show_dxvk)
|
||||
|
||||
self.child_layout.addWidget(self.more_settings)
|
||||
|
@ -57,27 +58,28 @@ class DxvkWidget(QWidget):
|
|||
def update_settings(self, app_name):
|
||||
self.name = app_name
|
||||
dxvk_hud = self.core.lgd.config.get(f"{self.name}.env", "DXVK_HUD", fallback="")
|
||||
self.more_settings.setDisabled(not dxvk_hud == "")
|
||||
if dxvk_hud:
|
||||
self.more_settings.setDisabled(False)
|
||||
for s in dxvk_hud.split(","):
|
||||
y = list(self.dxvk_settings[s])
|
||||
y[0] = True
|
||||
self.dxvk_settings[s] = tuple(y)
|
||||
else:
|
||||
self.show_dxvk.setChecked(False)
|
||||
self.more_settings.setDisabled(True)
|
||||
|
||||
def update_dxvk_active(self):
|
||||
if self.show_dxvk.isChecked():
|
||||
if not f"{self.name}.env" in self.core.lgd.config.sections():
|
||||
self.core.lgd.config[f"{self.name}.env"] = {}
|
||||
self.more_settings.setDisabled(False)
|
||||
self.more_settings_widget.settings = {"fps": (True, "Fps"),
|
||||
"gpuload": (True, "GPU usage"),
|
||||
"memory": (False, "Used Memory"),
|
||||
"devinfo": (False, "Device info"),
|
||||
"version": (False, "DXVK version"),
|
||||
"api": (False, "D3D Level of application")
|
||||
}
|
||||
|
||||
for i in self.more_settings_widget.settings:
|
||||
if i in ["fps", "gpuload"]:
|
||||
lst = list(self.more_settings_widget.settings[i])
|
||||
lst[0] = True
|
||||
self.more_settings_widget.settings[i] = tuple(lst)
|
||||
|
||||
self.core.lgd.config[f"{self.name}.env"]["DXVK_HUD"] = "fps,gpuload"
|
||||
for w in self.more_settings_widget.widgets:
|
||||
if w.tag == "fps" or w.tag == "gpuload":
|
|
@ -1,8 +1,8 @@
|
|||
from logging import getLogger
|
||||
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, QFileDialog, QLineEdit
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QPushButton, QFileDialog, QLineEdit, QGroupBox
|
||||
|
||||
from Rare.Components.Tabs.Settings.DXVK.Dxvk import DxvkWidget
|
||||
from Rare.Components.Tabs.Settings.Dxvk import DxvkWidget
|
||||
from Rare.Components.Tabs.Settings.SettingsWidget import SettingsWidget
|
||||
from Rare.utils.QtExtensions import PathEdit
|
||||
from custom_legendary.core import LegendaryCore
|
||||
|
@ -10,15 +10,14 @@ from custom_legendary.core import LegendaryCore
|
|||
logger = getLogger("LinuxSettings")
|
||||
|
||||
|
||||
class LinuxSettings(QWidget):
|
||||
class LinuxSettings(QGroupBox):
|
||||
def __init__(self, core: LegendaryCore, name="default"):
|
||||
super(LinuxSettings, self).__init__()
|
||||
self.layout = QVBoxLayout()
|
||||
self.name = name
|
||||
self.core = core
|
||||
self.title = QLabel("<h2>Linux settings</h2>")
|
||||
self.layout.addWidget(self.title)
|
||||
|
||||
self.setTitle(self.tr("Linux settings"))
|
||||
self.setObjectName("group")
|
||||
# Wineprefix
|
||||
self.select_path = PathEdit(self.core.lgd.config.get(self.name, "wine_prefix", fallback=""),
|
||||
type_of_file=QFileDialog.DirectoryOnly,
|
||||
|
|
|
@ -3,7 +3,7 @@ import shutil
|
|||
from logging import getLogger
|
||||
|
||||
from PyQt5.QtCore import QSettings
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QFileDialog, QComboBox, QPushButton
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QFileDialog, QComboBox, QPushButton, QCheckBox
|
||||
|
||||
from Rare.Components.Tabs.Settings.SettingsWidget import SettingsWidget
|
||||
from Rare.utils.QtExtensions import PathEdit
|
||||
|
@ -50,10 +50,19 @@ class RareSettings(QWidget):
|
|||
self.select_lang.currentIndexChanged.connect(self.update_lang)
|
||||
self.layout.addWidget(self.lang_widget)
|
||||
|
||||
self.game_start_accept = QCheckBox(self.tr("Confirm launch of game"))
|
||||
self.game_start_accept.stateChanged.connect(self.update_start_confirm)
|
||||
self.game_start_accept_widget = SettingsWidget(self.tr("Confirm launch of game"), self.game_start_accept)
|
||||
self.layout.addWidget(self.game_start_accept_widget)
|
||||
|
||||
self.layout.addStretch()
|
||||
|
||||
self.setLayout(self.layout)
|
||||
|
||||
def update_start_confirm(self):
|
||||
settings = QSettings()
|
||||
settings.setValue("confirm_start", self.game_start_accept.isChecked())
|
||||
|
||||
def save_path(self):
|
||||
self.save_path_button.setDisabled(True)
|
||||
self.update_path()
|
||||
|
|
|
@ -30,6 +30,10 @@ QTabBar::tab:hover#main_tab_bar {
|
|||
|
||||
}
|
||||
|
||||
QGroupBox#group{
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
QTabBar::tab:disabled {
|
||||
color: transparent;
|
||||
background-color: transparent;
|
||||
|
|
2174
Rare/Styles/dark.qss
2174
Rare/Styles/dark.qss
File diff suppressed because it is too large
Load diff
690
Rare/languages/de.ts
Normal file
690
Rare/languages/de.ts
Normal file
|
@ -0,0 +1,690 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="de_DE" sourcelanguage="en">
|
||||
<context>
|
||||
<name>About</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/About.py" line="17"/>
|
||||
<source>Developer:</source>
|
||||
<translation>Entwickler:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/About.py" line="22"/>
|
||||
<source>Legendary developer:</source>
|
||||
<translation>Legendary Entwickler:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/About.py" line="28"/>
|
||||
<source>This is a beta version, so you can get bugs. If you get a bug, please report it by creating a Issue on <a href='https://github.com/Dummerle/Rare/issues'>Github</a>. You can also contact me on Discord (Dummerle#7419). If you have a feature request, please contact me</source>
|
||||
<translation>Dies ist eine beta version, also können Bugs entstehen. Wenn du einen Bug bemerkst, kontaktiere mich, indem du einen Issue auf <a href='https://github.com/Dummerle/Rare/issues'>Github</a> erstellst oder mir auf Discord eine Nachricht schickst. Ebenso bei einem Wunsch für Features</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>BrowserLogin</name>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/BrowserLogin.py" line="24"/>
|
||||
<source>Opens a browser. You login and copy the json code in the field below. Click <a href='{}'>here</a> to open Browser</source>
|
||||
<translation>Öffnet den Browser. Einloggen und den Text in das untere Feld kopieren. Drücke Click <a href='{}'>hier</a> um den Browser zu öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/BrowserLogin.py" line="32"/>
|
||||
<source>Insert SID here</source>
|
||||
<translation>Den Text hier einfügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/BrowserLogin.py" line="37"/>
|
||||
<source>Login</source>
|
||||
<translation>Einloggen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/BrowserLogin.py" line="44"/>
|
||||
<source>Loading...</source>
|
||||
<translation>Laden...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>DownloadTab</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="161"/>
|
||||
<source>No active Download</source>
|
||||
<translation>Kein aktiver Download</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="154"/>
|
||||
<source>Stop Download</source>
|
||||
<translation>Download anhalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="173"/>
|
||||
<source>No updates available</source>
|
||||
<translation>Keine Updates verfügbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="220"/>
|
||||
<source>Error preparing download</source>
|
||||
<translation>Fehler beim Vorbereiten des Downloads</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="225"/>
|
||||
<source>Download size is 0. Game already exists</source>
|
||||
<translation>Die Größe des Downloads ist 0. Spiel existiert bereits</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="290"/>
|
||||
<source>Installation finished</source>
|
||||
<translation>Installation abgeschlossen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="314"/>
|
||||
<source>Installing Game: No active download</source>
|
||||
<translation>Installierendes Spiel: Kein aktiver Download</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="322"/>
|
||||
<source>Download speed</source>
|
||||
<translation>Geschwindigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="323"/>
|
||||
<source>Cache used</source>
|
||||
<translation>Benutzter Cache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="324"/>
|
||||
<source>Downloaded</source>
|
||||
<translation>Runtergeladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="325"/>
|
||||
<source>Time left: </source>
|
||||
<translation>Zeit übrig: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="291"/>
|
||||
<source>Finished Download of game {}</source>
|
||||
<translation>Downlaod von {} abgeschlossen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameActions</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="182"/>
|
||||
<source>Uninstall game</source>
|
||||
<translation>Spiel deinstallieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="184"/>
|
||||
<source>Uninstall</source>
|
||||
<translation>Deinstallieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="190"/>
|
||||
<source>Verify Game</source>
|
||||
<translation>Spieldateien überprüfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="195"/>
|
||||
<source>Verify</source>
|
||||
<translation>Überprüfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="204"/>
|
||||
<source>Repair Game</source>
|
||||
<translation>Spiel reparieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="206"/>
|
||||
<source>Repair</source>
|
||||
<translation>Reparieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameInfo</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="106"/>
|
||||
<source>Repair file does not exist or game does not need a repair. Please verify game first</source>
|
||||
<translation>Reparationsdatei existiert nicht oder das Spiel braucht keine Reperatur. Bitte das spiel zuerst überprüfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="131"/>
|
||||
<source>Verification failed, {} file(s) corrupted, {} file(s) are missing. Do you want to repair them?</source>
|
||||
<translation>Überprüfung fehlgeschlagen, {} Datei(en) fehlerhaft, {} Datei(en) fehlen. Willst du das Spiel reparieren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="160"/>
|
||||
<source>Developer: </source>
|
||||
<translation>Entwickler: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="161"/>
|
||||
<source>Install size: </source>
|
||||
<translation>Größe: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="163"/>
|
||||
<source>Install path: </source>
|
||||
<translation>Installationsordner: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="98"/>
|
||||
<source>Are you sure to uninstall {}</source>
|
||||
<translation>Möchtest du {} wirklich deinstallieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameList</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameList.py" line="140"/>
|
||||
<source>Launch</source>
|
||||
<translation>Starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameList.py" line="145"/>
|
||||
<source>Game running</source>
|
||||
<translation>Spiel läuft</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameListHeadBar</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GamesTab.py" line="74"/>
|
||||
<source>Installed only</source>
|
||||
<translation>Nur Installierte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GamesTab.py" line="81"/>
|
||||
<source>Import Game</source>
|
||||
<translation>Spiel importieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GamesTab.py" line="93"/>
|
||||
<source>Search Game</source>
|
||||
<translation>Spiel suchen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameSettings</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="27"/>
|
||||
<source>Launch Game offline</source>
|
||||
<translation>Spiel offline starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="32"/>
|
||||
<source>Skip update check before launching</source>
|
||||
<translation>Überprüfung nach Updates beim Start überspringen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="64"/>
|
||||
<source>Save</source>
|
||||
<translation>Speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="41"/>
|
||||
<source>Wrapper (e.g. optirun)</source>
|
||||
<translation>Wrapper (z.B. optirun)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="61"/>
|
||||
<source>Proton Wrapper</source>
|
||||
<translation>Proton Version</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="66"/>
|
||||
<source>Proton prefix</source>
|
||||
<translation>Protonprefix</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="172"/>
|
||||
<source>No permission to create folder</source>
|
||||
<translation>Keine Berechtigung den Ordner zu erstellen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameSettings.py" line="217"/>
|
||||
<source>Please select path for proton prefix</source>
|
||||
<translation>Bitte wähle den Pfad zum Protonprefix</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>GameWidgetInstalled</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/InstalledIconWidget.py" line="36"/>
|
||||
<source>Update available</source>
|
||||
<translation>Update verfügbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/InstalledIconWidget.py" line="86"/>
|
||||
<source>Start game without version check</source>
|
||||
<translation>Ohne Updateüberprüfung starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/InstalledIconWidget.py" line="94"/>
|
||||
<source>Game running</source>
|
||||
<translation>Spiel läuft</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>IconWidgetUninstalled</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/UninstalledIconWidget.py" line="43"/>
|
||||
<source>Install Game</source>
|
||||
<translation>Spiel installieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ImportWidget</name>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/ImportWidget.py" line="99"/>
|
||||
<source>Import</source>
|
||||
<translation>Importieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/ImportWidget.py" line="39"/>
|
||||
<source>Could not find EGL program data</source>
|
||||
<translation>Konnte nicht die EGL Dateien finden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/ImportWidget.py" line="42"/>
|
||||
<source>Found EGL program Data. Do you want to import them?</source>
|
||||
<translation>EGL Dateien gefunden. Willst du sie importieren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/ImportWidget.py" line="51"/>
|
||||
<source>Could not find any Epic Games login data</source>
|
||||
<translation>Konnte keine Logindaten finden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/ImportWidget.py" line="86"/>
|
||||
<source>Loading...</source>
|
||||
<translation>Laden...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/ImportWidget.py" line="98"/>
|
||||
<source>Error: No valid session found</source>
|
||||
<translation>Keine valide Session gefunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/ImportWidget.py" line="23"/>
|
||||
<source>Back</source>
|
||||
<translation>Zurück</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/ImportWidget.py" line="37"/>
|
||||
<source>Select path to game</source>
|
||||
<translation>Wähle den Pfad zum Spiel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/ImportWidget.py" line="43"/>
|
||||
<source>Import Game</source>
|
||||
<translation>Spiel importieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/ImportWidget.py" line="51"/>
|
||||
<source>Import all games from Epic Games Launcher</source>
|
||||
<translation>Alle Spiele aus dem Epic Games Launcher importieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/ImportWidget.py" line="116"/>
|
||||
<source>Successfully imported {} Games</source>
|
||||
<translation>{} Spiele erfolgreich importiert</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InfoTabs</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="26"/>
|
||||
<source>Back</source>
|
||||
<translation>Zurück</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="30"/>
|
||||
<source>Game Info</source>
|
||||
<translation>Spielinfo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameInfo/GameInfo.py" line="32"/>
|
||||
<source>Settings</source>
|
||||
<translation>Einstellungen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallDialog</name>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/InstallDialog.py" line="22"/>
|
||||
<source>Max workers (0: Default)</source>
|
||||
<translation>Maximale Anzahl Downloadprozessen(Standard: 0)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstallInfoDialog</name>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/InstallDialog.py" line="55"/>
|
||||
<source>Download size: {}GB
|
||||
Install size: {}GB</source>
|
||||
<translation>Downloadgröße: {}GB
|
||||
Installationsgröße: {} GB</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/InstallDialog.py" line="61"/>
|
||||
<source>Install</source>
|
||||
<translation>Installieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/InstallDialog.py" line="63"/>
|
||||
<source>Cancel</source>
|
||||
<translation>Abbruch</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>InstalledListWidget</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/InstalledListWidget.py" line="41"/>
|
||||
<source>Launch</source>
|
||||
<translation>Starten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/InstalledListWidget.py" line="52"/>
|
||||
<source>Developer: </source>
|
||||
<translation>Entwickler: </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LaunchDialog</name>
|
||||
<message>
|
||||
<location filename="../Components/Launch/LaunchDialog.py" line="60"/>
|
||||
<source>Launching Rare</source>
|
||||
<translation>Starte Rare</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Launch/LaunchDialog.py" line="62"/>
|
||||
<source>Logging in</source>
|
||||
<translation>Einloggen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Launch/LaunchDialog.py" line="80"/>
|
||||
<source>Downloading Images</source>
|
||||
<translation>Bilder runterladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Launch/LaunchDialog.py" line="91"/>
|
||||
<source>Starting...</source>
|
||||
<translation>Starten...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LegendarySettings</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Legendary.py" line="18"/>
|
||||
<source>Legendary settings</source>
|
||||
<translation>Legendary Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Legendary.py" line="27"/>
|
||||
<source>Default installation directory</source>
|
||||
<translation>Standardordner für Installationen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Legendary.py" line="36"/>
|
||||
<source>Max workers for Download (Less: slower download)(0: Default)</source>
|
||||
<translation>Maximale Anzahl Downloadprozesse (Weniger: langsamer)(Standard: 0)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LinuxSettings</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Linux.py" line="29"/>
|
||||
<source>Default Wine Prefix</source>
|
||||
<translation>Standard Wineprefix</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Linux.py" line="37"/>
|
||||
<source>Default Wine executable</source>
|
||||
<translation>Standard Wine</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>ListWidgetUninstalled</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Games/GameWidgets/UninstalledListWidget.py" line="29"/>
|
||||
<source>Install</source>
|
||||
<translation>Installieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>LoginDialog</name>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/LoginDialog.py" line="30"/>
|
||||
<source>Select one option to Login</source>
|
||||
<translation>Wähle eine Option zum Einloggen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/LoginDialog.py" line="33"/>
|
||||
<source>Use Browser</source>
|
||||
<translation>Über den Browser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/Login/LoginDialog.py" line="33"/>
|
||||
<source>This opens your default browser. Login and copy the text</source>
|
||||
<translation>Dies öffnet den Browser, Einloggen und den Text kopieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MiniWidget</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Account/AccountWidget.py" line="20"/>
|
||||
<source>Logged in as </source>
|
||||
<translation>Eingeloggt als </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Account/AccountWidget.py" line="22"/>
|
||||
<source>Account settings</source>
|
||||
<translation>Accounteinstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Account/AccountWidget.py" line="26"/>
|
||||
<source>Logout</source>
|
||||
<translation>Ausloggen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Account/AccountWidget.py" line="32"/>
|
||||
<source>Do you really want to logout</source>
|
||||
<translation>Willst du dich wirklich abmelden</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PathEdit</name>
|
||||
<message>
|
||||
<location filename="../utils/QtExtensions.py" line="133"/>
|
||||
<source>Select Path</source>
|
||||
<translation>Wähle den Ordner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../utils/QtExtensions.py" line="146"/>
|
||||
<source>Choose Path</source>
|
||||
<translation>Wähle den Ordner</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>PathInputDialog</name>
|
||||
<message>
|
||||
<location filename="../Components/Dialogs/PathInputDialog.py" line="24"/>
|
||||
<source>Cancel</source>
|
||||
<translation>Abbruch</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>RareSettings</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Rare.py" line="19"/>
|
||||
<source>Rare settings</source>
|
||||
<translation>Rare Einstellungen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Rare.py" line="33"/>
|
||||
<source>Save</source>
|
||||
<translation>Speichern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Rare.py" line="35"/>
|
||||
<source>Image Directory</source>
|
||||
<translation>Ordner für Bilder</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Rare.py" line="49"/>
|
||||
<source>Language</source>
|
||||
<translation>Sprache</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Settings/Rare.py" line="68"/>
|
||||
<source>Restart Application to activate changes</source>
|
||||
<translation>Starte die App neu um die Änderungen zu aktivieren</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SyncSaves</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/CloudSaves.py" line="65"/>
|
||||
<source>Cloud Saves</source>
|
||||
<translation>Cloud Speicherstände</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/CloudSaves.py" line="54"/>
|
||||
<source>Found Saves for folowing Games</source>
|
||||
<translation>Spielstände für folgende Spiele gefunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/CloudSaves.py" line="65"/>
|
||||
<source>Your games does not support Cloud Saves</source>
|
||||
<translation>Deine Spiele unterstützen keine Online Speicherstände</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/CloudSaves.py" line="70"/>
|
||||
<source>Sync all games</source>
|
||||
<translation>Alle Spiele synchronisieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/CloudSaves.py" line="110"/>
|
||||
<source>Found no savepath</source>
|
||||
<translation>Kein Speicherort gefunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/CloudSaves.py" line="110"/>
|
||||
<source>No save path was found. Please select path or skip</source>
|
||||
<translation>Kein Speicherort wurde gefunden. Wähle einen Ordner oder überspringe</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>SyncWidget</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="60"/>
|
||||
<source>Path not found</source>
|
||||
<translation>Ordner nicht gefunden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="76"/>
|
||||
<source>Local Save date: </source>
|
||||
<translation>Lokales Speicherdatum: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="79"/>
|
||||
<source>No Local Save files</source>
|
||||
<translation>Keine Lokalen Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="81"/>
|
||||
<source>Cloud save date: </source>
|
||||
<translation>Online Speicherdatum: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="83"/>
|
||||
<source>No Cloud saves</source>
|
||||
<translation>Keine Online Speicherstände</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="87"/>
|
||||
<source>Game is up to date</source>
|
||||
<translation>Spiel ist aktuell</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="88"/>
|
||||
<source>Upload anyway</source>
|
||||
<translation>Trotzdem hochladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="89"/>
|
||||
<source>Download anyway</source>
|
||||
<translation>Trotzdem herunterladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="91"/>
|
||||
<source>Cloud save is newer</source>
|
||||
<translation>Online Speicherstand ist aktueller</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="92"/>
|
||||
<source>Download Cloud saves</source>
|
||||
<translation>Online Speicherstand herunterladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="96"/>
|
||||
<source>Upload Saves</source>
|
||||
<translation>Spielstände hochladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="107"/>
|
||||
<source>Local save is newer</source>
|
||||
<translation>Lokaler Speicher ist aktueller</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="108"/>
|
||||
<source>Upload saves</source>
|
||||
<translation>Spielstände hochladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="112"/>
|
||||
<source>Download saves</source>
|
||||
<translation>Spielstand herunterladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="134"/>
|
||||
<source>Change path</source>
|
||||
<translation>Pfad ändern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="159"/>
|
||||
<source>Uploading...</source>
|
||||
<translation>Hochladen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="167"/>
|
||||
<source>Upload finished</source>
|
||||
<translation>Hochladen abgeschlossen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="177"/>
|
||||
<source>Downloading...</source>
|
||||
<translation>Runterladen...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/CloudSaves/SyncWidget.py" line="183"/>
|
||||
<source>Download finished</source>
|
||||
<translation>Download abgeschlossen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>TabWidget</name>
|
||||
<message>
|
||||
<location filename="../Components/TabWidget.py" line="23"/>
|
||||
<source>Games</source>
|
||||
<translation>Spiele</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>UpdateWidget</name>
|
||||
<message>
|
||||
<location filename="../Components/Tabs/Downloads/DownloadTab.py" line="352"/>
|
||||
<source>Update Game</source>
|
||||
<translation>Spiel updaten</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
Loading…
Reference in a new issue