diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 8b612f69..2f8626f3 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -1,9 +1,6 @@
---
-name: Bug report
-about: Create a report to help us improve
-title: ''
-labels: bug
-assignees: ''
+name: Bug report about: Create a report to help us improve title: ''
+labels: bug assignees: ''
---
@@ -12,6 +9,7 @@ A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
+
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
@@ -24,8 +22,9 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots to help explain your problem.
**System information (please complete the following information):**
- - OS (e.g. Ubuntu 20.04 or Windows 10)
- - Python version
+
+- OS (e.g. Ubuntu 20.04 or Windows 10)
+- Python version
**Additional context**
Add any other context about the problem here.
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 643f779e..b1f2f247 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,10 +1,9 @@
-
name: New Release
on:
release:
types: [ published ]
-
+
jobs:
pypy-deploy:
@@ -53,7 +52,7 @@ jobs:
- uses: actions/setup-python@v2
with:
python-version: '3.8'
- - name: Install python deps
+ - name: Install python deps
run: |
pip3 install cx_Freeze setuptools wheel
pip3 install -r requirements.txt
@@ -71,7 +70,7 @@ jobs:
overwrite: true
deb-package:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Deps
@@ -84,10 +83,10 @@ jobs:
run: |
python3 setup.py sdist
python3 setup.py --command-packages=stdeb.command bdist_deb
-
+
- name: move file
run: mv deb_dist/*.deb Rare.deb
-
+
- name: Upload files to GitHub
uses: svenstaro/upload-release-action@2.2.1
with:
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 06ecf4f8..b5ee5c10 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -4,7 +4,8 @@
### Add translations
-1. Execute ```pylupdate5 $(find -name "*.py") -ts Rare/languages/de.ts``` in source directory. Replace *de* with your language code
+1. Execute ```pylupdate5 $(find -name "*.py") -ts Rare/languages/de.ts``` in source directory. Replace *de* with your
+ language code
2. Modify the .ts file manually or in Qt Linguist
3. Compile the file with ```lrelease Rare/languages/{lang}.ts```
@@ -18,11 +19,12 @@ examples:
### Add features
-Select one Card of the project and implement it, or if you want to add another feature ask me on Discord, or create an issue on GitHub
-
+Select one Card of the project and implement it, or if you want to add another feature ask me on Discord, or create an
+issue on GitHub
## Git crash-course
-To contribute fork the repository and clone **your** repo. Then make your changes, add it to git with `git add File.xy` and upload it to GitHub with `git commit -m "message"` and `git push`.
-Some IDEs can do this automatically.
+
+To contribute fork the repository and clone **your** repo. Then make your changes, add it to git with `git add File.xy`
+and upload it to GitHub with `git commit -m "message"` and `git push`. Some IDEs can do this automatically.
If you uploaded your changes, create a pull request
diff --git a/README.md b/README.md
index ff0486ab..fa755c21 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,9 @@
## A frontend for legendary, the open source Epic Games Launcher alternative
-Rare is a GUI for Legendary, a command line aternative to Epic Games launcher.
-It is currently considered beta software. You will probably run into issues, so it is
-recommend to make a backup. If you run into an issue, please report it by creating an issue on github or on Discord: https://discord.gg/YvmABK9YSk
+Rare is a GUI for Legendary, a command line aternative to Epic Games launcher. It is currently considered beta software.
+You will probably run into issues, so it is recommend to make a backup. If you run into an issue, please report it by
+creating an issue on github or on Discord: https://discord.gg/YvmABK9YSk
![Discord Shield](https://discordapp.com/api/guilds/826881530310819914/widget.png?style=shield)
@@ -12,43 +12,51 @@ recommend to make a backup. If you run into an issue, please report it by creati
### Installation via pip (recommend)
-Execute `pip install Rare` for all users Or `pip install Rare --user` for only one user. Then execute `rare` in your terminal or cmd
+Execute `pip install Rare` for all users Or `pip install Rare --user` for only one user. Then execute `rare` in your
+terminal or cmd
-**Note**: On Linux must be `/home/user/.local/bin` in PATH and on Windows must be `PythonInstallationDirectory\Scripts` in PATH.
+**Note**: On Linux must be `/home/user/.local/bin` in PATH and on Windows must be `PythonInstallationDirectory\Scripts`
+in PATH.
### Windows Simple
-Download Rare.exe from the [releases page](https://github.com/Dummerle/Rare/releases) and execute it.
+Download Rare.exe from the [releases page](https://github.com/Dummerle/Rare/releases) and execute it.
**Note:**
-Using the exe file could cause errors with Windows Defender or other Anti Virus. Sometimes it is not possible to download games and sometimes the app crashes. In this case please use pip
+Using the exe file could cause errors with Windows Defender or other Anti Virus. Sometimes it is not possible to
+download games and sometimes the app crashes. In this case please use pip
### Linux
#### Arch based
There are some AUR packages available:
- - [rare](https://aur.archlinux.org/packages/rare) - for stable releases
- - [rare-git](https://aur.archlinux.org/packages/rare-git) - for the latest features, which are not in a stable release
+
+- [rare](https://aur.archlinux.org/packages/rare) - for stable releases
+- [rare-git](https://aur.archlinux.org/packages/rare-git) - for the latest features, which are not in a stable release
#### Debian based
-There is a `.deb` package available from the [releases page](https://github.com/Dummerle/Rare/releases): `sudo dpkg –i Rare.deb`
+There is a `.deb` package available from
+the [releases page](https://github.com/Dummerle/Rare/releases): `sudo dpkg –i Rare.deb`
#### Other
Install via `pip`.
## Run from source
-1. Run `pip install -r requirements.txt` to get dependencies. If you use `pacman` you can run `sudo pacman --needed -S python-wheel python-setuptools python-pyqt5 python-qtawesome python-requests python-pillow`
+
+1. Run `pip install -r requirements.txt` to get dependencies. If you use `pacman` you can
+ run `sudo pacman --needed -S python-wheel python-setuptools python-pyqt5 python-qtawesome python-requests python-pillow`
2. For unix operating systems run `sh start.sh`. For windows run `set PYTHONPATH=%CD% && python rare`
## Why Rare?
-- Rare only uses ~50MB of RAM which is much less than the electron based [HeroicGamesLauncher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) uses.
-- Rare supports all major platforms (Windows, Linux, Mac) unlike the alternatives.
-
-**Note** Mac should work too, but I have no Mac and I can't test it.
+- Rare only uses ~50MB of RAM which is much less than the electron
+ based [HeroicGamesLauncher](https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher) uses.
+- Rare supports all major platforms (Windows, Linux, Mac) unlike the alternatives.
+
+**Note** Mac should work too, but I have no Mac and I can't test it.
## Features
@@ -60,12 +68,14 @@ Install via `pip`.
- Translations (English, German and French)
## Planned Features
+
- More Translations (Need help)
-- More Information about Games
-More planned features are in [projects](https://github.com/Dummerle/Rare/projects/1)
+- More Information about Games More planned features are in [projects](https://github.com/Dummerle/Rare/projects/1)
## Contributing
-There are more options to contribute.
+
+There are more options to contribute.
+
- If you can Python and PyQt you can implement new Features (Some ideas are in Projects).
- If you are a designer, you can add Stylesheets or create a logo or a banner
- You can translate the application in your language
diff --git a/freeze.py b/freeze.py
index 10fe3052..46ef2c61 100644
--- a/freeze.py
+++ b/freeze.py
@@ -24,18 +24,18 @@ if sys.platform == 'win32':
base = 'Win32GUI'
name = 'Rare.exe'
shortcut_table = [
- ('DesktopShortcut', # Shortcut
- 'DesktopFolder', # Directory
- 'Rare', # Name
- 'TARGETDIR', # Component
- '[TARGETDIR]'+name, # Target
- None, # Arguments
- 'A gui for Legendary.', # Description
- None, # Hotkey
- None, # Icon
- None, # IconIndex
- None, # ShowCmd
- 'TARGETDIR' # Working Directory
+ ('DesktopShortcut', # Shortcut
+ 'DesktopFolder', # Directory
+ 'Rare', # Name
+ 'TARGETDIR', # Component
+ '[TARGETDIR]' + name, # Target
+ None, # Arguments
+ 'A gui for Legendary.', # Description
+ None, # Hotkey
+ None, # Icon
+ None, # IconIndex
+ None, # ShowCmd
+ 'TARGETDIR' # Working Directory
)]
msi_data = {"Shortcut": shortcut_table}
bdist_msi_options = {'data': msi_data, "all_users": True}
@@ -44,9 +44,9 @@ else:
name = 'Rare'
src_files += [
- 'LICENSE',
- 'README.md',
- 'rare/styles/Logo.ico',
+ 'LICENSE',
+ 'README.md',
+ 'rare/styles/Logo.ico',
]
# Dependencies are automatically detected, but it might need fine tuning.
@@ -58,17 +58,17 @@ build_exe_options["excludes"] = ["setuptools", "tkinter", "pkg_resources"]
# Set options
build_options["build_exe"] = build_exe_options
-setup(name = 'Rare',
- version = __version__,
- description = 'A gui for Legendary.',
- options = build_options,
- executables = [
- Executable('rare/__main__.py',
- targetName=name,
- icon='rare/styles/Logo.ico',
- base=base,
- shortcutName=shortcutName,
- shortcutDir=shortcutDir,
- ),
- ],
-)
+setup(name='Rare',
+ version=__version__,
+ description='A gui for Legendary.',
+ options=build_options,
+ executables=[
+ Executable('rare/__main__.py',
+ targetName=name,
+ icon='rare/styles/Logo.ico',
+ base=base,
+ shortcutName=shortcutName,
+ shortcutDir=shortcutDir,
+ ),
+ ],
+ )
diff --git a/rare/components/tab_widget.py b/rare/components/tab_widget.py
index 39e51a83..c575d051 100644
--- a/rare/components/tab_widget.py
+++ b/rare/components/tab_widget.py
@@ -3,20 +3,17 @@ import webbrowser
from PyQt5.QtCore import QSize, pyqtSignal
from PyQt5.QtWidgets import QMenu, QTabWidget, QWidget, QWidgetAction
from qtawesome import icon
-from rare.utils import legendary_utils
from custom_legendary.core import LegendaryCore
-
from rare.components.dialogs.install_dialog import InstallDialog
-
from rare.components.dialogs.uninstall_dialog import UninstallDialog
-
from rare.components.tab_utils import TabBar, TabButtonWidget
from rare.components.tabs.account import MiniWidget
from rare.components.tabs.cloud_saves import SyncSaves
from rare.components.tabs.downloads import DownloadTab
from rare.components.tabs.games import GameTab
from rare.components.tabs.settings import SettingsTab
+from rare.utils import legendary_utils
from rare.utils.models import InstallOptions
@@ -98,7 +95,6 @@ class TabWidget(QTabWidget):
self.tabBarClicked.connect(lambda x: self.games_tab.layout.setCurrentIndex(0) if x == 0 else None)
self.setIconSize(QSize(25, 25))
-
def install_game(self, app_name, disable_path=False):
infos = InstallDialog(app_name, self.core, disable_path).get_information()
@@ -141,6 +137,7 @@ class TabWidget(QTabWidget):
downloads = len(self.downloadTab.dl_queue) + len(self.downloadTab.update_widgets.keys())
self.setTabText(1, "Downloads" + ((" (" + str(downloads) + ")") if downloads != 0 else ""))
self.downloadTab.update_text.setVisible(len(self.downloadTab.update_widgets) == 0)
+
# Update gamelist and set text of Downlaods to "Downloads"
def dl_finished(self, update_list):
diff --git a/rare/components/tabs/downloads/__init__.py b/rare/components/tabs/downloads/__init__.py
index 1cbb3ebe..5ca1a62e 100644
--- a/rare/components/tabs/downloads/__init__.py
+++ b/rare/components/tabs/downloads/__init__.py
@@ -75,7 +75,6 @@ class DownloadTab(QWidget):
self.update_text.setVisible(len(updates) == 0)
for igame in updates:
-
self.add_update(igame)
self.layout.addStretch(1)
@@ -143,12 +142,15 @@ class DownloadTab(QWidget):
return
if self.active_game is None:
- self.start_installation(dlm, game, status_queue, igame, repair_file, options, analysis, options.download_only)
+ self.start_installation(dlm, game, status_queue, igame, repair_file, options, analysis,
+ options.download_only)
else:
- self.dl_queue.append((dlm, game, status_queue, igame, repair_file, options, analysis, options.download_only))
+ self.dl_queue.append(
+ (dlm, game, status_queue, igame, repair_file, options, analysis, options.download_only))
self.queue_widget.update_queue(self.dl_queue)
- def start_installation(self, dlm, game, status_queue, igame, repair_file, options: InstallOptions, analysis, dl_only):
+ def start_installation(self, dlm, game, status_queue, igame, repair_file, options: InstallOptions, analysis,
+ dl_only):
if self.dl_queue:
self.dl_queue.pop(0)
self.queue_widget.update_queue(self.dl_queue)
@@ -266,7 +268,8 @@ class DownloadTab(QWidget):
def statistics(self, ui_update: UIUpdate):
self.prog_bar.setValue(ui_update.progress)
self.dl_speed.setText(self.tr("Download speed") + f": {get_size(ui_update.download_speed)}/s")
- self.cache_used.setText(self.tr("Cache used") + f": {get_size(ui_update.cache_usage) if ui_update.cache_usage > 1023 else '0KB'}")
+ self.cache_used.setText(
+ self.tr("Cache used") + f": {get_size(ui_update.cache_usage) if ui_update.cache_usage > 1023 else '0KB'}")
self.downloaded.setText(
self.tr("Downloaded") + f": {get_size(ui_update.total_downloaded)} / {get_size(self.analysis.dl_size)}")
self.time_left.setText(self.tr("Time left: ") + self.get_time(ui_update.estimated_time_left))
@@ -308,7 +311,9 @@ class UpdateWidget(QWidget):
self.update_with_settings.clicked.connect(lambda: self.update_game(False))
self.layout.addWidget(self.update_button)
self.layout.addWidget(self.update_with_settings)
- self.layout.addWidget(QLabel(self.tr("Version: ") + self.game.version + " -> " + self.core.get_asset(self.game.app_name, True).build_version))
+ self.layout.addWidget(QLabel(
+ self.tr("Version: ") + self.game.version + " -> " + self.core.get_asset(self.game.app_name,
+ True).build_version))
self.setLayout(self.layout)
diff --git a/rare/components/tabs/downloads/download_thread.py b/rare/components/tabs/downloads/download_thread.py
index 0c68c712..195ff932 100644
--- a/rare/components/tabs/downloads/download_thread.py
+++ b/rare/components/tabs/downloads/download_thread.py
@@ -121,7 +121,7 @@ class DownloadThread(QThread):
return
self.status.emit("dl_finished")
end_t = time.time()
- logger.info(f"Download finished in {start_time-end_t}s")
+ logger.info(f"Download finished in {start_time - end_t}s")
game = self.core.get_game(self.igame.app_name)
if not self.dl_only:
diff --git a/rare/components/tabs/games/game_info/__init__.py b/rare/components/tabs/games/game_info/__init__.py
index 790d5dfb..465fd8b6 100644
--- a/rare/components/tabs/games/game_info/__init__.py
+++ b/rare/components/tabs/games/game_info/__init__.py
@@ -8,11 +8,9 @@ from qtawesome import icon
from custom_legendary.core import LegendaryCore
from custom_legendary.models.game import InstalledGame, Game
-from rare.components.dialogs.uninstall_dialog import UninstallDialog
from rare.components.tabs.games.game_info.dlcs import DlcTab
from rare.components.tabs.games.game_info.game_settings import GameSettings
from rare.ui.components.tabs.games.game_info.game_info import Ui_GameInfo
-from rare.utils import legendary_utils
from rare.utils.extra_widgets import SideTabBar
from rare.utils.legendary_utils import VerifyThread
from rare.utils.utils import IMAGE_DIR, get_size
diff --git a/rare/components/tabs/games/game_list.py b/rare/components/tabs/games/game_list.py
index 771beeb9..36b56942 100644
--- a/rare/components/tabs/games/game_list.py
+++ b/rare/components/tabs/games/game_list.py
@@ -78,13 +78,13 @@ class GameList(QStackedWidget):
self.icon_layout.addWidget(icon_widget)
self.list_layout.addWidget(list_widget)
- self.uninstalled_names = []
+ self.uninstalled_games = []
installed = [i.app_name for i in self.core.get_installed_list()]
# get Uninstalled games
games, self.dlcs = self.core.get_game_and_dlc_list()
for game in sorted(games, key=lambda x: x.app_title):
if not game.app_name in installed:
- self.uninstalled_names.append(game)
+ self.uninstalled_games.append(game)
# add uninstalled games
@@ -126,10 +126,10 @@ class GameList(QStackedWidget):
pixmap = QPixmap(f"{self.IMAGE_DIR}/{game.app_name}/UninstalledArt.png")
icon_widget = IconWidgetUninstalled(game, self.core, pixmap)
- icon_widget.install_game.connect(self.install)
+ icon_widget.show_uninstalled_info.connect(self.show_install_info)
list_widget = ListWidgetUninstalled(self.core, game, pixmap)
- list_widget.install_game.connect(self.install)
+ list_widget.show_uninstalled_info.connect(self.show_install_info)
self.widgets[game.app_name] = (icon_widget, list_widget)
@@ -207,16 +207,9 @@ class GameList(QStackedWidget):
return True, pid
return False, 0
- def install(self, app_name):
+ def show_install_info(self, app_name):
self.show_uninstalled_info.emit(app_name)
- # icon_widget, list_widget = self.widgets[options.app_name]
- # icon_widget.mousePressEvent = lambda e: None
- # icon_widget.installing = True
- # list_widget.install_button.setDisabled(True)
- # list_widget.installing = True
- # self.install_game.emit(options)
-
def finished(self, app_name):
self.running_games.remove(app_name)
self.active_game = ("", 0)
@@ -284,7 +277,8 @@ class GameList(QStackedWidget):
widgets[0].info_label.setText("")
widgets[0].info_text = ""
# new installed
- elif self.core.is_installed(widgets[0].game.app_name) and not isinstance(widgets[0], BaseInstalledWidget):
+ elif self.core.is_installed(widgets[0].game.app_name) and not isinstance(widgets[0],
+ BaseInstalledWidget):
self.widgets.pop(widgets[0].game.app_name)
# QWidget().setLayout(self.icon_layout)
@@ -337,7 +331,8 @@ class GameList(QStackedWidget):
self.update()
# uninstalled
- elif not self.core.is_installed(widgets[0].game.app_name) and isinstance(widgets[0], BaseInstalledWidget):
+ elif not self.core.is_installed(widgets[0].game.app_name) and isinstance(widgets[0],
+ BaseInstalledWidget):
self.list_layout.removeWidget(widgets[1])
self.icon_layout.removeWidget(widgets[0])
@@ -397,5 +392,3 @@ class GameList(QStackedWidget):
i_widget, list_widget = self.widgets[name]
self.icon_layout.addWidget(i_widget)
self.list_layout.addWidget(list_widget)
-
-
diff --git a/rare/components/tabs/games/game_widgets/base_installed_widget.py b/rare/components/tabs/games/game_widgets/base_installed_widget.py
index db8f9650..b14acbf6 100644
--- a/rare/components/tabs/games/game_widgets/base_installed_widget.py
+++ b/rare/components/tabs/games/game_widgets/base_installed_widget.py
@@ -1,4 +1,3 @@
-import logging
import os
from logging import getLogger
diff --git a/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py b/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py
index 61927c44..11161cac 100644
--- a/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py
+++ b/rare/components/tabs/games/game_widgets/base_uninstalled_widget.py
@@ -3,7 +3,6 @@ from logging import getLogger
from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QGroupBox
-
logger = getLogger("Uninstalled")
diff --git a/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py b/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py
index 22bdaeb6..afa5bbef 100644
--- a/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py
+++ b/rare/components/tabs/games/game_widgets/uninstalled_icon_widget.py
@@ -1,13 +1,11 @@
from logging import getLogger
-from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QVBoxLayout, QLabel
from custom_legendary.core import LegendaryCore
from custom_legendary.models.game import Game
from rare.components.tabs.games.game_widgets.base_uninstalled_widget import BaseUninstalledWidget
from rare.utils.extra_widgets import ClickableLabel
-from rare.utils.models import InstallOptions
logger = getLogger("Uninstalled")
diff --git a/rare/components/tabs/games/import_widget.py b/rare/components/tabs/games/import_widget.py
index ddb8978c..05048f02 100644
--- a/rare/components/tabs/games/import_widget.py
+++ b/rare/components/tabs/games/import_widget.py
@@ -1,10 +1,9 @@
import json
import os
-import string
from logging import getLogger
from PyQt5.QtCore import pyqtSignal
-from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QPushButton, QVBoxLayout, QFileDialog, QMessageBox, QLineEdit, \
+from PyQt5.QtWidgets import QWidget, QLabel, QHBoxLayout, QPushButton, QVBoxLayout, QFileDialog, QLineEdit, \
QGroupBox
from qtawesome import icon
@@ -71,7 +70,8 @@ class ImportWidget(QWidget):
self.layout.addWidget(self.import_one_game)
- self.auto_import = QLabel(f"
{self.tr('To import games from Epic Games Store, please enable EGL Sync in legendary settings')}
")
+ self.auto_import = QLabel(
+ f"
{self.tr('To import games from Epic Games Store, please enable EGL Sync in legendary settings')}
")
self.layout.addWidget(self.auto_import)
self.layout.addStretch(1)
diff --git a/rare/components/tabs/settings/rare.py b/rare/components/tabs/settings/rare.py
index 33d4363d..63131979 100644
--- a/rare/components/tabs/settings/rare.py
+++ b/rare/components/tabs/settings/rare.py
@@ -34,7 +34,7 @@ class RareSettings(QWidget, Ui_RareSettings):
(self.auto_sync_cloud, "auto_sync_cloud", True),
(self.notification, "notification", True),
(self.save_size, "save_size", False)
- ]
+ ]
self.settings = QSettings()
self.img_dir_path = self.settings.value("img_dir", os.path.expanduser("~/.cache/rare/images/"), type=str)
diff --git a/rare/languages/de.ts b/rare/languages/de.ts
index 3d692ad8..7341d015 100644
--- a/rare/languages/de.ts
+++ b/rare/languages/de.ts
@@ -79,7 +79,7 @@
Dies ist eine Betaversion, also können Bugs und andere Unschönheiten auftreten. Falls ein Bug auftritt, bitte auf <a href='https://github.com/Dummerle/Rare/issues'>Github</a> melden oder auf Discord. (Dummerle#7419). Ein Rare <a href='https://discord.gg/YvmABK9YSk'>Discord server</a> existiert ebenfalls
-
+ <h2>Über</h2>
@@ -87,12 +87,12 @@
App
-
+ Download abgeschlossen
-
+ Downlaod abgeschlossen. Spiel kann jetzt gespielt werden
@@ -100,57 +100,57 @@
BaseInstalledWidget
-
+ Möchtest du {} starten
-
+ Starten
-
+ Desktop Verknüpfung löschen
-
+ Desktopverknüpfung erstellen
-
+ Startmenüverknüpfung löschen
-
+ Startmenüverknüpfung erstellen
-
+ Deinstallieren
-
+ Startmenüverknüpfung löschen
-
+ Startmenüverknüpfung erstellen
-
+ Ein Fehler ist passiert. Vielleicht fehlen die Spieldateien
-
+ Spiel kann nicht offline gestartet werden. Starte die App im Online Mode neu
@@ -181,17 +181,17 @@
DLCWidget
-
+ Installieren
-
+ Installiert. Das Deinstallieren von DLCs wird nicht unterstützt
-
+ Installieren
@@ -253,27 +253,27 @@
DlcTab
-
+ Installierte DLCs
-
+ Verfügbare DLCs
-
+ Keine DLCs sind installiert
-
+ Keine weiteren DLCs verfügbar
-
+ Basisspiel ist nicht installiert. Bitte installiere zuerst {}
@@ -296,52 +296,52 @@
Keine Updates verfügbar
-
+ Fehler beim Vorbereiten des Downloads
-
+ Die Größe des Downloads ist 0. Spiel existiert bereits
-
+ Installation abgeschlossen
-
+ Installierendes Spiel: Kein aktiver Download
-
+ Geschwindigkeit
-
+ Benutzter Cache
-
+ Runtergeladen
-
+ Zeit übrig:
-
+ Download von {} abgeschlossen
-
+ Download abgeschlossen. Spiele neu laden
@@ -361,7 +361,7 @@
Keine
-
+ Installierendes Spiel:
@@ -416,7 +416,7 @@
-
+
@@ -536,12 +536,12 @@
GameInfo
-
+ Reparationsdatei existiert nicht oder das Spiel braucht keine Reperatur. Bitte das spiel zuerst überprüfen
-
+ Überprüfung fehlgeschlagen, {} Datei(en) fehlerhaft, {} Datei(en) fehlen. Willst du das Spiel reparieren?
@@ -621,32 +621,32 @@
ProtonDB Wertung
-
+ Platin
-
+ Gold
-
+ Silber
-
+ Bronze
-
+ Konnte nicht die Wertung finden
-
+ Fehler
@@ -654,22 +654,22 @@
GameList
-
+ Starten
-
+ Spiel läuft
-
+ Installierte Spiele: {} Verfügbare Spiele: {}
-
+ Spielstand synchronisieren
@@ -677,20 +677,35 @@
GameListHeadBar
-
+ Nur Installierte
-
+ Spiel importieren
-
+ Spiel suchen
+
+
+
+ Alle
+
+
+
+
+ Offline Spiele
+
+
+
+
+ 32 Bit Spiele
+ GameSettings
@@ -851,12 +866,12 @@
Spiel installieren
-
+ Installation läuft
-
+ Spielinfo
@@ -894,24 +909,24 @@
Keine valide Session gefunden
-
+ Zurück
-
+ Wähle den Pfad zum Spiel
-
+ Spiel importieren
- Alle Spiele aus dem Epic Games Launcher importieren
+ Alle Spiele aus dem Epic Games Launcher importieren
@@ -921,58 +936,63 @@
- App Name überschreiben (Nur falls das Spiel von Legendary importiert wird oder der App Name nicht gefunden wird
+ App Name überschreiben (Nur falls das Spiel von Legendary importiert wird oder der App Name nicht gefunden wird
-
+ Konnte den Appnamen nicht finden
-
+ Erfolgreich {} importiert. Spiele neu laden
-
+ {} Konnte nicht importiert werden
- Erfolgreich {} Spiele importiert. Spiele neu laden
+ Erfolgreich {} Spiele importiert. Spiele neu laden
-
+ Ein bereits existierendes Spiel aus dem Epic Games Launcher importieren
- Keine Spiele wurden gefunden
+ Keine Spiele wurden gefunden
+
+
+
+
+ Appnamen überschreiben. (Nur wenn dieser nicht gefunden werden kann)InfoTabs
-
+ Zurück
-
+ Spielinfo
-
+ Einstellungen
-
+ DLCs
@@ -980,25 +1000,30 @@
InstallDialog
-
+ Maximale Anzahl Downloadprozessen(Standard: 0)
-
+ <h3>Installiere {}</h3>
-
+ Download erzwingen
-
+ Freien Speicherplatz ignorieren (Achtung!)
+
+
+
+ Das Spiel nicht installieren
+ InstallInfoDialog
@@ -1006,19 +1031,26 @@
- Downloadgröße: {}GB
+ Downloadgröße: {}GB
Installationsgröße: {} GB
-
+ Installieren
-
+ Abbruch
+
+
+
+ Download Größe: {}
+Installierte Größe: {}
+ InstalledListWidget
@@ -1043,30 +1075,50 @@ Installationsgröße: {} GB
- Starte Rare
+ Starte Rare
- Einloggen
+ Einloggen
-
+ Bilder runterladen
-
+ Starten...
+
+
+
+ Dialog
+
+
+
+
+ <h2>Starte Rare</h2>
+
+
+
+
+ Bilder herunterladen
+
+
+
+
+ Lade Steamdaten
+ LaunchThread
- Bilder runterladen
+ Bilder runterladen
@@ -1219,17 +1271,17 @@ Installationsgröße: {} GB
- MangoHUD Einstellungen
+ MangoHUD Einstellungen
- CPU Temperatur
+ CPU Temperatur
- GPU Temperatur
+ GPU Temperatur
@@ -1270,12 +1322,12 @@ Installationsgröße: {} GB
-
+
-
+ Suchen...
@@ -1377,7 +1429,6 @@ Installationsgröße: {} GB
Ordner für Bilder
-
Sprache
@@ -1515,7 +1566,7 @@ Installationsgröße: {} GB
- Ordner für Logs öffnen
+ Logordner öffnen
@@ -1527,10 +1578,18 @@ Installationsgröße: {} GB
Optionen
+
+
+ SteamThread
-
-
-
+
+
+ Daten aus ProtonDB holen
+
+
+
+
+ Daten überprüfen
@@ -1672,7 +1731,7 @@ Installationsgröße: {} GB
TabWidget
-
+ Spiele
@@ -1716,37 +1775,37 @@ Installationsgröße: {} GB
UninstalledInfo
-
+ Platin
-
+ Gold
-
+ Silber
-
+ Bronze
-
+ Konnte nicht die Wertung finden
-
+ Installieren
-
+ ProtonDB Wertung:
@@ -1756,12 +1815,12 @@ Installationsgröße: {} GB
- ZurückZurück
+ Zurück
- SpielinfoSpielinfo
+ Spielinfo
@@ -1772,17 +1831,22 @@ Installationsgröße: {} GB
UpdateWidget
-
+ Spiel updaten
+
+
+
+ Version:
+ legendary_settings
-
+
diff --git a/rare/languages/fr.ts b/rare/languages/fr.ts
index 2aa8f3d8..1c34efb1 100644
--- a/rare/languages/fr.ts
+++ b/rare/languages/fr.ts
@@ -1,818 +1,1806 @@
-
-
+< ? xml version = "1.0"
+encoding = "utf-8" ?
+>
+
- About
-
-
-
- Développeur
-
-
-
-
- Legendary Développeur
-
-
-
-
- Il s'agit d'une version bêta, vous pouvez donc rencontrer des bogues. Si vous rencontrez un bug, veuillez le signaler en créant un Issue sur <a href='https://github.com/Dummerle/Rare/issues'>Github</a>. Vous pouvez également me contacter sur Discord (Dummerle#7419). Ou vous pouvez rejoindre le <a href='https://discord.gg/YvmABK9YSk'>serveur Discord</a>
-
-
-
- BaseInstalledWidget
-
-
-
- Voulez-vous lancer {}
-
-
-
- BrowserLogin
-
-
-
- Ouvre un navigateur. Vous vous connectez et copiez le code json dans le champ ci-dessous. Cliquez <a href='{}'>here</a> pour ouvrir un navigateur
-
-
-
-
- Insérer le SID ici
-
-
-
-
- Login
-
-
-
-
- charge...
-
-
-
- DownloadTab
-
-
-
- Aucun téléchargement actif
-
-
-
-
- Stop Télécharger
-
-
-
-
- Aucune mise à jour disponible
-
-
-
-
- Erreur lors de la préparation du téléchargement
-
-
-
-
- La taille du téléchargement est de 0. Le jeu existe déjà
-
-
-
-
- Installation du jeu:
-
-
-
-
- Installation terminée
-
-
-
-
- Fin du téléchargement du jeu {}
-
-
-
-
- Installation du jeu: Aucun téléchargement actif
-
-
-
-
- Vitesse de téléchargement
-
-
-
-
- Cache utilisé
-
-
-
-
- Téléchargé
-
-
-
-
- Il reste du temps:
-
-
-
- DxvkWidget
-
-
-
- GPU Utilisation
-
-
-
-
- utilisé Memory
-
-
-
-
- Info sur le dispositif
-
-
-
-
- DXVK version
-
-
-
-
- D3D Niveau d'application
-
-
-
-
- Graphique de temps de trame
-
-
-
-
- dxvk paramètres
-
-
-
- GameActions
-
-
-
- Désinstaller le jeu
-
-
-
-
- Désinstaller
-
-
-
-
- Vérifier le jeu
-
-
-
-
- Vérifier
-
-
-
-
- Jeu de réparation
-
-
-
-
- Réparation
-
-
-
- GameInfo
-
-
-
- Etes-vous sûr de désinstaller {}
-
-
-
-
- Le fichier de réparation n'existe pas ou le jeu ne nécessite pas de réparation. Veuillez d'abord vérifier le jeu.
-
-
-
-
- La vérification a échoué, {} fichier(s) corrompu(s), {} fichier(s) manquant(s). Voulez-vous les réparer ?
-
-
-
-
- Développeur:
-
-
-
-
- Taille d'installation:
-
-
-
-
- Chemin d'installation:
-
-
-
- GameList
-
-
-
- Jeux installés: {} Jeux disponibles: {}
-
-
-
-
- Lancer
-
-
-
-
- Jeu en cours
-
-
-
- GameListHeadBar
-
-
-
- Installé uniquement
-
-
-
-
- Jeu d'importation
-
-
-
-
- Rechercher un jeu
-
-
-
- GameSettings
-
-
-
- Lancer le jeu hors ligne
-
-
-
-
- Sauter la vérification de la mise à jour avant le lancement
-
-
-
-
- Sauvez
-
-
-
-
- Wrapper (p.e. optirun)
-
-
-
-
- Enveloppeur de Proton
-
-
-
-
- Préfixe du proton
-
-
-
-
- Pas de permission pour créer un dossier
-
-
-
-
- Veuillez sélectionner le chemin pour le préfixe proton
-
-
-
- GameWidgetInstalled
-
-
-
- Mise à jour disponible
-
-
-
-
- Démarrer le jeu sans vérifier la version
-
-
-
-
- Jeu en cours
-
-
-
- IconWidgetUninstalled
-
-
-
- Installer le jeu
-
-
-
- ImportWidget
-
-
-
- Importer
-
-
-
-
- Impossible de trouver les données du programme EGL
-
-
-
-
- Les données du programme EGL ont été trouvées. Voulez-vous les importer ?
-
-
-
-
- Impossible de trouver les données de connexion d'Epic Games
-
-
-
-
- Chargement...
-
-
-
-
- Erreur : Aucune session valide n'a été trouvée
-
-
-
-
- Dos
-
-
-
-
- Sélectionnez le chemin vers le jeu
-
-
-
-
- Remplacer le nom de l'application (uniquement si le jeu a été importé depuis le légendaire ou si l'application n'a pas pu trouver le nom de l'application)
-
-
-
-
- Import jeu
-
-
-
-
- Importer tous les jeux du Epic Games Launcher
-
-
-
-
- Impossible de trouver le nom de l'application
-
-
-
-
- Importation réussie de {}. Recharger la bibliothèque
-
-
-
-
- Impossible d'importer {}
-
-
-
-
- Importation réussie de {} Jeux. Bibliothèque de rechargement
-
-
-
- InfoTabs
-
-
-
- Dos
-
-
-
-
- Info de jeu
-
-
-
-
- Paramètres
-
-
-
- InstallDialog
-
-
-
- <h3>Installer {}</h3>
-
-
-
-
- Travailleurs maximum (0: Par défaut)
-
-
-
-
- Téléchargement forcé
-
-
-
-
- Ignorer l'espace libre (Attention!)
-
-
-
- InstallInfoDialog
-
-
-
- Taille du téléchargement: {}GB
-Taille de l'installation: {}GB
-
-
-
-
- Installer
-
-
-
-
- Annuler
-
-
-
- InstalledListWidget
-
-
-
- Lancer
-
-
-
-
- Développeur:
-
-
-
- LaunchDialog
-
-
-
- Lancer Rare
-
-
-
-
- Se connecter
-
-
-
-
- Téléchargement d'images
-
-
-
-
- Démarrage...
-
-
-
- LaunchThread
-
-
-
- Téléchargement d'images
-
-
-
- LegendarySettings
-
-
-
- Legendary paramètres
-
-
-
-
- Répertoire d'installation par défaut
-
-
-
-
- Nombre maximum de travailleurs pour le téléchargement (Moins: téléchargement plus lent)(0: Défaut)
-
-
-
-
- Nettoyage
-
-
-
-
- Enlever tout
-
-
-
-
- Nettoyer, mais garder les manifestes
-
-
-
-
- Nettoyage terminé ! J'ai réussi à supprimer {} MB
-
-
-
- LinuxSettings
-
-
-
- Linux paramètres
-
-
-
-
- Défaut Wine Prefix
-
-
-
-
- Défaut Wine exécutable
-
-
-
- ListWidgetUninstalled
-
-
-
- Installer
-
-
-
- LoginDialog
-
-
-
- Sélectionnez une option pour vous connecter
-
-
-
-
- Utiliser le navigateur
-
-
-
-
- Cela ouvre votre navigateur par défaut. Connectez-vous et copiez le texte
-
-
-
- MiniWidget
-
-
-
- Connecté en tant que
-
-
-
-
- paramètres du compte
-
-
-
-
- Déconnexion
-
-
-
-
- Voulez-vous vraiment vous déconnecter?
-
-
-
- PathEdit
-
-
-
- Sélectionner le chemin
-
-
-
-
- Choisir le chemin
-
-
-
- PathInputDialog
-
-
-
- Annuler
-
-
-
- RareSettings
-
-
-
- Rare paramètres
-
-
-
-
- Sauvez
-
-
-
-
- Répertoire d'images
-
-
-
-
- Langue
-
-
-
-
- Confirmation du lancement du jeu
-
-
-
-
- Redémarrez l'application pour activer les changements
-
-
-
- SyncSaves
-
-
-
- Cloud Saves
-
-
-
-
- Sauvegardes trouvées pour les jeux suivants
-
-
-
-
- Vos jeux ne prennent pas en charge les sauvegardes en nuage
-
-
-
-
- Sync tous les jeux
-
-
-
-
- Pas de chemin de sauvegarde trouvé
-
-
-
-
- Aucun chemin de sauvegarde n'a été trouvé. Veuillez sélectionner le chemin ou passer
-
-
-
- SyncWidget
-
-
-
- Chemin non trouvé
-
-
-
-
- Local Save date:
-
-
-
-
- Pas de fichiers de sauvegarde locaux
-
-
-
-
- Cloud save date:
-
-
-
-
- Pas Cloud saves
-
-
-
-
- Le jeu est à jour
-
-
-
-
- Télécharger quand même
-
-
-
-
- Télécharger en tout cas
-
-
-
-
- La sauvegarde en nuage est plus récente
-
-
-
-
- Télécharger Cloud saves
-
-
-
-
- Upload Saves
-
-
-
-
- La sauvegarde locale est plus récente
-
-
-
-
- Upload Saves
-
-
-
-
- Télécharger les sauvegardes
-
-
-
-
- Changement de trajectoire
-
-
-
-
- Téléchargement...
-
-
-
-
- Téléchargement terminé
-
-
-
-
- Téléchargement...
-
-
-
-
- Téléchargement terminé
-
-
-
- TabWidget
-
-
-
- Jeus
-
-
-
- UpdateWidget
-
-
-
- Jeu de mise à jour
-
-
-
+ About < /name>
+< message >
+
+
+< translation > Développeur < /translation>
+< /message>
+< message >
+
+
+< translation > Legendary
+Développeur < /translation>
+< /message>
+< message >
+
+
+ Il
+s
+'agit d'
+une
+version
+bêta, vous
+pouvez
+donc
+rencontrer
+des
+bogues.Si
+vous
+rencontrez
+un
+bug, veuillez
+le
+signaler
+en
+créant
+un
+Issue
+sur < a
+href =
+&
+apos;
+https://github.com/Dummerle/Rare/issues'>Github</a>. Vous pouvez également me contacter sur Discord (Dummerle#7419). Ou vous pouvez rejoindre le <a href='https://discord.gg/YvmABK9YSk'>serveur Discord</a>
+
+ < /context>
+ < context >
+ BaseInstalledWidget < /name>
+ < message >
+
+
+< translation > Voulez - vous
+lancer
+{
+}
+
+< /message>
+< /context>
+< context >
+BrowserLogin < /name>
+< message >
+
+
+< message >
+
+