Final version

This commit is contained in:
Alessandro Autiero
2023-09-21 19:05:41 +02:00
parent 9dcf18326a
commit c9a4b91453
3 changed files with 48 additions and 290 deletions

View File

@@ -1,251 +0,0 @@
{
"find": "Znajdź ustawienie",
"on": "Wł.",
"off": "Wył.",
"resetDefaultsContent": "Zresetuj",
"resetDefaultsDialogTitle": "Czy chcesz zresetować wszystkie ustawienia na tej karcie do wartości domyślnych? To działanie jest nieodwracalne",
"resetDefaultsDialogSecondaryAction": "Zamknij",
"resetDefaultsDialogPrimaryAction": "Zresetuj",
"authenticatorName": "Uwierzytelniacz",
"authenticatorConfigurationName": "Konfiguracja uwierzytelniacza",
"authenticatorConfigurationDescription": "Ta sekcja zawiera konfigurację uwierzytelniacza.",
"authenticatorConfigurationHostName": "Hostuj",
"authenticatorConfigurationHostDescription": "Nazwa hosta uwierzytelniacza",
"authenticatorConfigurationPortName": "Port",
"authenticatorConfigurationPortDescription": "Port uwierzytelniacza",
"authenticatorConfigurationDetachedName": "Odłączony",
"authenticatorConfigurationDetachedDescription": "Czy wbudowany uwierzytelniacz powinien być uruchamiany jako oddzielny proces, przydatny do debugowania.",
"authenticatorInstallationDirectoryName": "Folder instalacji",
"authenticatorInstallationDirectoryDescription": "Otwiera folder, w którym znajduje się wbudowany uwierzytelniacz.",
"authenticatorInstallationDirectoryContent": "Pokaż pliki",
"authenticatorResetDefaultsName": "Zresetuj uwierzytelniacz",
"authenticatorResetDefaultsDescription": "Przywraca domyślne ustawienia uwierzytelniacza.",
"authenticatorResetDefaultsContent": "Zresetuj",
"hostGameServerName": "Serwer gry",
"hostGameServerDescription": "Podaj podstawowe informacje o serwerze gry dla przeglądarki serwerów.",
"hostGameServerNameName": "Nazwa",
"hostGameServerNameDescription": "Nazwa twojego serwera gry",
"hostGameServerDescriptionName": "Opis",
"hostGameServerDescriptionDescription": "Opis twojego serwera gry",
"hostGameServerPasswordName": "Hasło",
"hostGameServerPasswordDescription": "Hasło do twojego serwera gry, jeśli jest potrzebne.",
"hostGameServerDiscoverableName": "Wykrywalny",
"hostGameServerDiscoverableDescription": "Udostępnij swój serwer innym graczom w przeglądarce serwerów.",
"hostShareName": "Udostępnij",
"hostShareDescription": "Ułatw innym osobom dołączenie do twojego serwera dzięki opcjom dostępnym w tej sekcji.",
"hostShareLinkName": "Link",
"hostShareLinkDescription": "Kopiuje link twojego serwera do schowka (wymaga Reboot Launcher).",
"hostShareLinkContent": "Kopiuj link",
"hostShareLinkMessageSuccess": "Skopiowano twój link do schowka",
"hostShareIpName": "Publiczne IP",
"hostShareIpDescription": "Kopiuje bieżące publiczne IP do schowka (nie wymaga Reboot Launcher).",
"hostShareIpContent": "Kopiuj IP",
"hostShareIpMessageLoading": "Uzyskiwanie publicznego IP...",
"hostShareIpMessageSuccess": "Skopiowano twój link do schowka.",
"hostShareIpMessageError": "Wystąpił błąd podczas uzyskiwania twojego publicznego IP: {error}.",
"hostResetName": "Zresetuj serwer gry",
"hostResetDescription": "Resetuje ustawienia serwera gry do wartości domyślnych.",
"hostResetContent": "Zresetuj",
"browserName": "Przeglądarka serwerów",
"noServersAvailableTitle": "W tej chwili żadne serwery nie są dostępne.",
"noServersAvailableSubtitle": "Hostuj serwer samodzielnie lub wróć później.",
"joinServer": "Dołącz do serwera",
"noServersAvailableByQueryTitle": "Nie znaleziono rezultatów",
"noServersAvailableByQuerySubtitle": "Żaden serwer nie pasuje do Twojego zapytania",
"findServer": "Znajdź serwer",
"copyIp": "Kopiuj IP",
"hostName": "Hostuj",
"matchmakerName": "System dobierania graczy",
"matchmakerConfigurationName": "Konfiguracja systemu dobierania graczy",
"matchmakerConfigurationDescription": "Ta sekcja zawiera konfigurację systemu dobierania graczy.",
"matchmakerConfigurationHostName": "Hostuj",
"matchmakerConfigurationHostDescription": "Nazwa hosta systemu dobierania graczy.",
"matchmakerConfigurationPortName": "Port",
"matchmakerConfigurationPortDescription": "Port systemu dobierania graczy.",
"matchmakerConfigurationAddressName": "Adres serwera gry",
"matchmakerConfigurationAddressDescription": "Adres serwera gry używanego przez system dobierania graczy",
"matchmakerConfigurationDetachedName": "Odłączony",
"matchmakerConfigurationDetachedDescription": "Czy wbudowany system dobierania graczy powinien być uruchamiany jako oddzielny proces, przydatny do debugowania.",
"matchmakerInstallationDirectoryName": "Folder instalacji",
"matchmakerInstallationDirectoryDescription": "Otwiera folder, w którym znajduje się wbudowany system dobierania graczy.",
"matchmakerInstallationDirectoryContent": "Pokaż pliki",
"matchmakerResetDefaultsName": "Zresetuj system dobierania graczy",
"matchmakerResetDefaultsDescription": "Resetuje ustawienia systemu dobierania graczy do wartości domyślnych.",
"matchmakerResetDefaultsContent": "Zresetuj",
"matchmakerResetDefaultsDialogTitle": "Czy chcesz zresetować wszystkie ustawienia na tej karcie do wartości domyślnych? To działanie jest nieodwracalne.",
"matchmakerResetDefaultsDialogSecondaryAction": "Zamknij",
"matchmakerResetDefaultsDialogPrimaryAction": "Zresetuj",
"playName": "Graj",
"playGameServerName": "Server gry",
"playGameServerDescription": "Pomocne skróty do znalezienia serwera, na którym chcesz grać.",
"playGameServerContentLocal": "Twój serwer",
"playGameServerContentBrowser": "Server {owner}",
"playGameServerContentCustom": "{address}",
"playGameServerHostName": "Hostuj serwer",
"playGameServerHostDescription": "Chcesz stworzyć serwer gry dla siebie lub swoich znajomych? Hostuj jeden!",
"playGameServerHostContent": "Hostuj",
"playGameServerBrowserName": "Przeglądaj serwery",
"playGameServerBrowserDescription": "Znajdź wykrywalny serwer hostowany na Reboot Launcher w przeglądarce serwerów.",
"playGameServerBrowserContent": "Przeglądaj",
"playGameServerCustomName": "Dołącz do serwera niestandardowego",
"playGameServerCustomDescription": "Wpisz adres dowolnego serwera, niezależnie od tego, czy był on hostowany poprzez Reboot Launcher, czy nie.",
"playGameServerCustomContent": "Wprowadź IP",
"settingsName": "Ustawienia",
"settingsClientName": "Ustawienia klienta",
"settingsClientDescription": "Ta sekcja zawiera pliki dll używane do działania klienta Fortnite.",
"settingsClientConsoleName": "Konsola Unreal Engine",
"settingsClientConsoleDescription": "Ten plik jest wstrzykiwany w celu odblokowania konsoli Unreal Engine.",
"settingsClientAuthName": "Łatka uwierzytelniacza",
"settingsClientAuthDescription": "Ten plik jest wstrzykiwany w celu przekierowania wszystkich żądań HTTP do uwierzytelniacza programu uruchamiającego.",
"settingsClientMemoryName": "Łatka pamięci",
"settingsClientMemoryDescription": "Ten plik jest wstrzykiwany, aby zapobiec awarii klienta Fortnite z powodu wycieku pamięci.",
"settingsClientArgsName": "Niestandardowe argumenty uruchamiania",
"settingsClientArgsDescription": "Dodatkowe argumenty do użycia podczas uruchamiania gry.",
"settingsClientArgsPlaceholder": "-przykład",
"settingsServerName": "Ustawienia serwera gry",
"settingsServerSubtitle": "Ta sekcja zawiera ustawienia związane z implementacją serwera gry.",
"settingsServerFileName": "Implementacja",
"settingsServerFileDescription": "Ten plik jest wstrzykiwany w celu utworzenia serwera gry i hostowania meczów.",
"settingsServerPortName": "Port",
"settingsServerPortDescription": "Port używany przez dll serwera gry.",
"settingsServerMirrorName": "Aktualizacja linku",
"settingsServerMirrorDescription": "Adres URL używany do aktualizacji dll serwera gry.",
"settingsServerMirrorPlaceholder": "link",
"settingsServerTimerName": "Aktualizacja licznika czasu",
"settingsServerTimerSubtitle": "Określa, kiedy dll serwera gry powininno zostać zaktualizowane.",
"settingsUtilsName": "Narzędzia programu do uruchamiania",
"settingsUtilsSubtitle": "Ta sekcja zawiera przydatne ustawienia programu uruchamiającego.",
"settingsUtilsInstallationDirectoryName": "Katalog instalacji",
"settingsUtilsInstallationDirectorySubtitle": "Otwiera katalog instalacji",
"settingsUtilsInstallationDirectoryContent": "Pokaż pliki",
"settingsUtilsBugReportName": "Utwórz raport o błędzie",
"settingsUtilsBugReportSubtitle": "Pomóż mi naprawić błędy, zgłaszając je.",
"settingsUtilsBugReportContent": "Zgłoś błąd",
"settingsUtilsResetDefaultsName": "Zresetuj ustawienia",
"settingsUtilsResetDefaultsSubtitle": "Resetuje ustawienia programu uruchamiającego do wartości domyślnych.",
"settingsUtilsDialogTitle": "Czy chcesz zresetować wszystkie ustawienia na tej karcie do wartości domyślnych? To działanie jest nieodwracalne.",
"settingsUtilsResetDefaultsContent": "Zresetuj",
"settingsUtilsDialogSecondaryAction": "Zamknij",
"settingsUtilsDialogPrimaryAction": "Zresetuj",
"addVersionName": "Wersja",
"addVersionDescription": "Wybierz wersję Fortnite, której chcesz użyć.",
"addLocalBuildName": "Dodaj wersję z lokalnej pamięci masowej tego komputera.",
"addLocalBuildDescription": "Wersje pochodzące z dysku lokalnego nie mają gwarancji działania.",
"addLocalBuildContent": "Dodaj kompilację",
"downloadBuildName": "Pobierz dowolną wersję z chmury",
"downloadBuildDescription": "Łatwe pobieranie dowolnej wersji Fortnite z chmury.",
"downloadBuildContent": "Pobierz",
"cannotUpdateGameServer": "Wystąpił błąd podczas aktualizacji serwera gry: {error}.",
"launchFortnite": "Uruchom Fortnite",
"closeFortnite": "Zamknij Fortnite",
"updateGameServerDllNever": "Nigdy",
"updateGameServerDllEvery": "Każda {name}",
"selectPathPlaceholder": "Ścieżka",
"selectPathWindowTitle": "Wybierz plik",
"defaultDialogSecondaryAction": "Zamknij",
"stopLoadingDialogAction": "Stop",
"copyErrorDialogTitle": "Kopiuj błąd",
"copyErrorDialogSuccess": "Skopiowano błąd do schowka.",
"defaultServerName": "Serwer gry Reboot",
"defaultServerDescription": "Po prostu kolejny serwer",
"updatingRebootDll": "Pobieranie dll reboot...",
"updatedRebootDll": "Plik dll reboot został pobrany pomyślnie",
"updateRebootDllError": "Wystąpił błąd podczas pobierania dll reboot: {error}.",
"updateRebootDllErrorAction": "Ponów",
"uncaughtErrorMessage": "Wystąpił niewyłapany błąd: {error}.",
"launchingHeadlessServer": "Uruchamianie serwera bezgłowego ...",
"usernameOrEmail": "Nazwa użytkownika/Email",
"usernameOrEmailPlaceholder": "Wpisz swoją nazwę użytkownika lub adres e-mail.",
"password": "Hasło",
"passwordPlaceholder": "Wpisz hasło, jeśli chcesz je użyć.",
"cancelProfileChanges": "Anuluj",
"saveProfileChanges": "Zapisz",
"startingServer": "Uruchamianie {name}...",
"startedServer": "{name} został uruchomiony pomyślnie.",
"startServerError": "Wystąpił błąd podczas uruchamiania {name}: {error}.",
"stoppingServer": "Zatrzymanie {name}...",
"stoppedServer": "{name} został pomyślnie zatrzymany.",
"stopServerError": "Wystąpił błąd podczas zatrzymywania {name}: {error}.",
"missingHostNameError": "Brakująca nazwa hosta w konfiguracji {name}.",
"missingPortError": "Brakujący port w konfiguracji {name}.",
"illegalPortError": "Niepoprawny port w konfiguracji {name}.",
"freeingPort": "Zwalnianie portu {port}...",
"freedPort": "Port {port} został pomyślnie zwolniony.",
"freePortError": "Wystąpił błąd podczas zwalniania portu {port}: {error}.",
"pingingRemoteServer": "Pingowanie zdalnego {name}...",
"pingingLocalServer": "Pingowanie {type} {name}...",
"pingError": "Nie można pingować {type} {name}",
"joinSelfServer": "Nie możesz dołączyć do własnego serwera.",
"wrongServerPassword": "Błędne hasło: spróbuj ponownie.",
"offlineServer": "Ten serwer nie jest teraz online: spróbuj ponownie później.",
"serverPassword": "Hasło",
"serverPasswordPlaceholder": "Wpisz hasło serwera",
"serverPasswordCancel": "Anuluj",
"serverPasswordConfirm": "Potwierdź",
"joinedServer": "Udało ci się dołączyć do serwera {author}!",
"copiedIp": "Skopiowano IP do schowka",
"selectVersion": "Wybierz wersję",
"noVersions": "Proszę utwórzyć lub pobrać wersję.",
"missingVersion": "Ta wersja nie istnieje na lokalnej maszynie.",
"deleteVersionDialogTitle": "Czy na pewno chcesz usunąć tę wersję?",
"deleteVersionFromDiskOption": "Usuń pliki wersji z dysku",
"deleteVersionCancel": "Zachowaj",
"deleteVersionConfirm": "Usuń",
"versionName": "Nazwa",
"versionNameLabel": "Wpisz nazwę nowej wersji",
"newVersionNameConfirm": "Zapisz",
"newVersionNameLabel": "Wpisz nazwę nowej wersji",
"gameFolderTitle": "Folder gry",
"gameFolderPlaceholder": "Wpisz nowy folder gry",
"gameFolderPlaceWindowTitle": "Wybierz folder gry",
"gameFolderLabel": "Ścieżka",
"openInExplorer": "Otwórz w eksploratorze",
"modify": "Modyfikuj",
"delete": "Usuń",
"build": "Kompilacja",
"selectBuild": "Wybierz kompilację fortnite",
"fetchingBuilds": "Pobieranie kompilacji i dysków...",
"unknownError": "Nieznany błąd",
"downloadVersionError": "Nie można pobrać wersji: {error}.",
"downloadedVersion": "Pobieranie zostało zakończone pomyślnie!",
"download": "Pobierz",
"downloading": "Pobieranie...",
"extracting": "Wyodrębnianie...",
"buildProgress": "{progress}%",
"buildInstallationDirectory": "Katalog instalacji",
"buildInstallationDirectoryPlaceholder": "Wpisz katalog instalacji",
"buildInstallationDirectoryWindowTitle": "Wybierz katalog instalacji",
"timeLeft": "Pozostały czas: {timeLeft, plural, =0{mniej niż minuta} =1{około {timeLeft} minuta} other{około {timeLeft} minut}}",
"localBuildsWarning": "Nie ma gwarancji, że lokalne kompilacje będą działać.",
"saveLocalVersion": "Zapisz",
"embedded": "Wbudowany",
"remote": "Zdalny",
"local": "Lokalny",
"checkServer": "Sprawdź {name}",
"startServer": "Uruchom {name}",
"stopServer": "Zatrzymaj {name}",
"startHosting": "Rozpocznij hosting",
"stopHosting": "Zatrzymaj hosting",
"startGame": "Uruchom fortnite",
"stopGame": "Zamknij fortnite",
"waitingForGameServer": "Oczekiwanie na uruchomienie serwera gry...",
"gameServerStartWarning": "Serwer bezgłowy został pomyślnie uruchomiony, ale serwer gry się nie uruchomił.",
"gameServerStartLocalWarning": "Serwer gry został pomyślnie uruchomiony, ale inni gracze nie mogą do niego dołączyć.",
"gameServerStarted": "Serwer gry został pomyślnie uruchomiony.",
"checkingGameServer": "Sprawdzanie, czy inni gracze mogą dołączyć do serwera gry...",
"checkGameServerFixMessage": "Inni gracze nie mogą dołączyć do serwera gry, ponieważ port {port} nie jest otwarty.",
"checkGameServerFixAction": "Napraw",
"infoName": "Help",
"emptyVersionName": "Pusta nazwa wersji",
"versionAlreadyExists": "Ta wersja już istnieje",
"emptyGamePath": "Pusta ścieżka gry",
"directoryDoesNotExist": "Katalog nie istnieje",
"missingShippingExe": "Nieprawidłowa ścieżka do gry: brak FortniteClient-Win64-Shipping",
"invalidDownloadPath": "Nieprawidłowa ścieżka pobierania",
"invalidDllPath": "Nieprawidłowa ścieżka dll",
"dllDoesNotExist": "Plik nie istnieje",
"invalidDllExtension": "Ten plik nie jest plikiem dll",
"emptyHostname": "Pusta nazwa hosta",
"hostnameFormat": "Nieprawidłowy format nazwy hosta: oczekiwano ip:port",
"emptyURL": "Pusty adres URL aktualizacji"
}

View File

@@ -22,6 +22,7 @@ import 'package:reboot_launcher/src/controller/settings_controller.dart';
import 'package:reboot_launcher/src/dialog/implementation/server.dart';
import 'package:reboot_launcher/src/page/implementation/home_page.dart';
import 'package:reboot_launcher/src/util/matchmaker.dart';
import 'package:reboot_launcher/src/util/os.dart';
import 'package:reboot_launcher/src/util/translations.dart';
import 'package:reboot_launcher/src/util/watch.dart';
import 'package:supabase_flutter/supabase_flutter.dart';
@@ -136,11 +137,14 @@ void _initWindow() => doWhenWindowReady(() async {
appWindow.alignment = Alignment.center;
}
await Window.setEffect(
effect: WindowEffect.acrylic,
color: Colors.transparent,
dark: SchedulerBinding.instance.platformDispatcher.platformBrightness.isDark
);
if(isWin11) {
await Window.setEffect(
effect: WindowEffect.acrylic,
color: Colors.transparent,
dark: SchedulerBinding.instance.platformDispatcher.platformBrightness.isDark
);
}
appWindow.show();
});

View File

@@ -2,7 +2,7 @@ import 'dart:convert';
import 'package:fluent_ui/fluent_ui.dart';
import 'package:get/get.dart';
import 'package:markdown_widget/widget/markdown.dart';
import 'package:markdown_widget/config/markdown_generator.dart';
import 'package:reboot_launcher/src/controller/info_controller.dart';
import 'package:reboot_launcher/src/page/abstract/page.dart';
import 'package:reboot_launcher/src/page/abstract/page_setting.dart';
@@ -10,7 +10,6 @@ import 'package:reboot_launcher/src/page/abstract/page_type.dart';
import 'package:reboot_launcher/src/util/translations.dart';
import 'package:reboot_launcher/src/widget/common/setting_tile.dart';
import 'package:http/http.dart' as http;
import 'package:skeletons/skeletons.dart';
class InfoPage extends RebootPage {
const InfoPage({Key? key}) : super(key: key);
@@ -77,44 +76,50 @@ class _InfoPageState extends RebootPageState<InfoPage> {
future: _fetchFuture,
builder: (context, linksSnapshot) {
var linksData = linksSnapshot.data;
return ListView.builder(
itemBuilder: (context, index) {
if (index % 2 == 0) {
return const SizedBox(
height: 16.0
);
}
if(linksData == null) {
return const Center(
child: ProgressRing()
);
}
return Card(
borderRadius: const BorderRadius.vertical(top: Radius.circular(4.0)),
child: _buildBody(linksData, index)
);
},
itemCount: linksData == null ? null : linksData.length * 2
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: ConstrainedBox(
constraints: const BoxConstraints(
maxWidth: 1000
),
child: ListView.separated(
shrinkWrap: true,
separatorBuilder: (context, index) => const SizedBox(
height: 16.0
),
itemBuilder: (context, index) => Card(
borderRadius: const BorderRadius.vertical(top: Radius.circular(4.0)),
child: _buildBody(linksData, index)
),
itemCount: linksData.length
),
),
)
],
);
}
);
}
Widget _buildBody(List<String>? linksData, int index) {
if (linksData == null) {
return SkeletonLine(
style: SkeletonLineStyle(
height: _height
),
);
}
return FutureBuilder(
future: _readLink(linksData[index ~/ 2]),
builder: (context, linkDataSnapshot) => SizedBox(
height: _height,
child: MarkdownWidget(
data: linkDataSnapshot.data ?? ""
),
)
);
}
Widget _buildBody(List<String> linksData, int index) => FutureBuilder(
future: _readLink(linksData[index]),
builder: (context, linkDataSnapshot) {
var markdownGenerator = MarkdownGenerator();
var result = markdownGenerator.buildWidgets(linkDataSnapshot.data ?? "");
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: result
);
}
);
@override
List<SettingTile> get settings => [];