feat: add polish localization

This commit is contained in:
2025-04-27 20:37:46 +00:00
parent 91d38b58c4
commit c59dbcc35c
4 changed files with 270 additions and 7 deletions

View File

@ -8,6 +8,7 @@
- Various internationalization additions
- STARTLINER now remembers the recently open tab and re-opens it on the next session
- Added "Beta" to the title as STARTLINER is approaching feature-completeness
- Added full Polish localization :smciota:
## 0.15.0

View File

@ -90,16 +90,16 @@ const importPick = async () => {
modal
:visible="exportVisible"
:closable="false /*this shit doesn't work */"
:header="`Export ${prf.current?.meta.name}`"
:header="`${t('profile.export')} ${prf.current?.meta.name}`"
:style="{ width: '300px', scale: client.scaleValue }"
>
<div class="flex flex-col gap-4">
<div class="flex flex-row">
<div class="grow">Export keychip</div>
<div class="grow">{{ t('profile.export') }} keychip</div>
<ToggleSwitch v-model="exportKeychip" />
</div>
<div class="flex flex-row" v-for="f in fileListCurrent">
<div class="grow">Export {{ f }}</div>
<div class="grow">{{ t('profile.export') }} {{ f }}</div>
<ToggleSwitch
:model-value="true"
@update:model-value="
@ -150,14 +150,14 @@ const importPick = async () => {
</div>
<div class="mt-4 flex flex-row flex-wrap align-middle gap-4">
<Button
:label="t('profile.import')"
:label="t('profile.importTemplate')"
icon="pi pi-file-import"
class="import-button profile-button"
@click="() => importPick()"
/>
<Button
:disabled="prf.current === null"
:label="t('profile.export')"
:label="t('profile.exportTemplate')"
icon="pi pi-file-export"
class="profile-button"
@click="() => openExportDialog()"

View File

@ -42,8 +42,9 @@ export default {
delete: 'Delete profile',
reallyDelete: 'Are you sure you want to delete {profile}?',
template: 'STARTLINER template',
import: 'Import template',
export: 'Export template',
importTemplate: 'Import template',
exportTemplate: 'Export template',
export: 'Export',
},
store: {
installRecommended: 'Install recommended packages',

261
src/i18n/pl.ts Normal file
View File

@ -0,0 +1,261 @@
export default {
ok: 'OK',
cancel: 'Anuluj',
enable: 'Włącz',
disable: 'Wyłącz',
default: 'Domyślne',
search: 'Wyszukaj',
next: 'Dalej',
skip: 'Pomiń',
close: 'Zamknij',
start: {
failed: 'Uruchomienie nie powiodło się',
accept: 'Uruchom mimo to',
error: {
package: 'Brakujący pakiet',
dependency: 'Brakująca dependencja',
tool: 'Brakujące narzędzie',
unknown: 'Nieznany błąd',
},
tooltip: {
game: 'Należy najpierw wskazać lokalizację gry',
amfs: 'Należy najpierw wskazać lokalizację amfs',
segatools: 'Należy dodać hook segatools',
},
button: {
start: 'START',
stop: 'STOP',
unchecked: 'Uruchom bez sprawdzania',
shortcut: 'Utwórz skrót',
help: 'Pomoc',
refresh: 'Uruchom po re-aplikacji modów',
cache: 'Wyczyść mod cache',
},
},
game: {
ongeki: 'O.N.G.E.K.I.',
chunithm: 'CHUNITHM',
},
profile: {
welcome: 'Witaj w STARTLINERZE! Zacznij od utworzenia profilu',
create: 'Profil {game}',
delete: 'Usuń profil',
reallyDelete: 'Czy na pewno chcesz usunąć {profile}?',
template: 'Szablon',
importTemplate: 'Importuj szablon',
exportTemplate: 'Eksportuj szablon',
export: 'Eksportuj',
},
store: {
installRecommended: 'Dodaj zalecane pakiety',
installed: 'Pokaż zainstalowane',
deprecated: 'Pokaż przestarzałe',
nsfw: 'Pokaż mityczny O.N.G.E.K.I. Sex Mod dlaczego ta opcja w ogóle tu jest',
incompatible:
'Ten pakiet jest obecnie niekompatybilny ze STARTLINEREM.',
missing: 'Niedostępne',
includeCategories: 'Włącz kategorie',
excludeCategories: 'Wyłącz kategorie',
},
patch: {
loading: 'Wczytuję...',
noneFound:
'Brak kompatybilnych łatek. Upewnij się, że używasz czystych odpakowanych plików.',
forceLoad: 'Wymuś załadowanie',
'standard-shared-audio':
'Wymuś współdzielony tryb dźwięku; częstotliwość w systemie musi wynosić 48kHz',
'standard-shared-audio-tooltip':
'Poprawia kompatybilność, ale może zwiększyć opóźnienie',
'standard-2ch': 'Wymuś stereo',
'standard-2ch-tooltip': 'Może powodować bass overload',
'standard-song-timer': 'Wyłącz timer wyboru utworu',
'standard-map-timer': 'Timer wyboru mapy',
'standard-map-timer-tooltip':
'Jeśli ustawiony na wartość ujemną, timer wyniesie 968 + wartość (np. 968 + -1 = 967)',
'standard-ticket-timer': 'Timer wyboru biletu',
'standard-ticket-timer-tooltip':
'Jeśli ustawiony na wartość ujemną, timer wyniesie 968 + wartość (np. 968 + -1 = 967)',
'standard-course-timer': 'Timer wyboru dana',
'standard-course-timer-tooltip':
'Jeśli ustawiony na wartość ujemną, timer wyniesie 968 + wartość (np. 968 + -1 = 967)',
'standard-unlimited-tracks': 'Nieograniczona maksymalna liczba utworów',
'standard-unlimited-tracks-tooltip':
'Konieczne do grania więcej niż 7 utworów na kredyt',
'standard-maximum-tracks': 'Maksymalna liczba utworów',
'standard-no-encryption': 'Wyłącz szyfrowanie',
'standard-no-encryption-tooltip': 'Wyłączy również TLS',
'standard-no-tls': 'Wyłącz TLS',
'standard-no-tls-tooltip': 'Obejście problemów z serwerem tytułowym',
'standard-head-to-head': 'Napraw head to head',
'standard-head-to-head-tooltip':
'Naprawia nieskończoną synchronizację podczas próby połączenia w trybie head to head',
'standard-bypass-1080p': 'Obejdź sprawdzenie 1080p',
'standard-bypass-120hz': 'Obejdź sprawdzenie 120Hz',
'standard-force-free-play-text': 'Wymuś tekst kredytu FREE PLAY',
'standard-force-free-play-text-tooltip':
'Zastępuje liczbę kredytów tekstem FREE PLAY',
'standard-custom-free-play-length': 'Długość tekstu FREE PLAY',
'standard-custom-free-play-length-tooltip':
'Zmienia długość tekstu wyświetlanego, gdy włączony jest wymuszony tekst kredytu FREE PLAY',
'standard-custom-free-play-text': 'Customowy tekst FREE PLAY',
'standard-custom-free-play-text-tooltip': 'Zastąp tekst FREE PLAY',
'standard-localhost':
'Zezwól na serwer pod adresem 127.0.0.1/localhost',
'standard-credit-freeze': 'Zamroź kredyty',
'standard-credit-freeze-tooltip':
'Zapobiega używaniu kredytów. Co najmniej jeden kredyt musi być dostępny, aby rozpocząć grę lub zakupić bilety premium.',
'standard-openssl-fix': 'Napraw błąd OpenSSL SHA',
'standard-openssl-fix-tooltip':
'Naprawia crash na procesorach Intel 10. generacji i nowszych',
},
cfg: {
afterRestart: 'Wymaga restartu.',
hardware: 'Prawdziwy czytnik',
segatools: {
general: 'Ogólne',
builtIn: 'Wbudowany emulator',
targetTooltip:
'STARTLINER oczekuje czystych danych, pomijając odpakowane exe.',
hooks: 'Hooki',
ioModules: 'Moduły IO',
ioModulesDesc:
'Powinien odpowiadać twojej preferowanej metodzie wejścia.',
ioBuiltIn: 'Wbudowany emulator (klawiatura)',
io4: 'Natywne IO4',
installTooltip: '{thing} można pobrać z pobierajki pakietów.',
},
display: {
title: 'Ekran',
resolution: 'Rozdzielczość',
primary: 'Główny',
target: 'Docelowy wyświetlacz',
mode: 'Tryb',
rotation: 'Obrót',
refreshRate: 'Częstotliwość odświeżania',
borderlessFullscreen: 'Bezramkowy tryb pełnoekranowy',
borderlessFullscreenTooltip:
'Dopasuj rozdzielczość wyświetlacza do gry.',
dontSwitchPrimary: 'Pomiń przełączanie głównego wyświetlacza',
dontSwitchPrimaryTooltip:
'Włącz tę opcję tylko wtedy, gdy przełączanie głównego wyświetlacza powoduje problemy. Monitory muszą mieć dopasowaną częstotliwość odświeżania.',
index: 'Indeks wyświetlacza',
portrait: 'Pion',
landscape: 'Poziom',
flipped: 'Odwrócony',
window: 'Okno',
borderless: 'Okno bez ramki',
fullscreen: 'Pełny ekran',
},
network: {
title: 'Sieć',
type: 'Typ sieci',
remote: 'Zdalny',
localArtemis: 'Lokalny (ARTEMiS)',
artemisPath: 'Lokalizacja ARTEMiSa',
address: 'Adres serwera',
keychip: 'Keychip',
subnet: 'Podsieć',
addrSuffix: 'Sufiks adresu',
},
aime: {
type: 'Typ Aime',
modules: 'Moduły Aime',
code: 'Kod Aime',
codeTooltip:
'Dotyczy tylko wbudowanej emulacji lub zgodnych pakietów',
aimedb: 'Użyj AiMeDB dla kart fizycznych',
aimedbTooltip:
'Decyduje czy karty fizyczne powinny używać AiMeDB do pobierania kodów dostępu. Jeśli łączysz się z hostowaną siecią, włącz tę opcję, aby załadować te same dane konta, jakie uzyskałxbyś na fizycznym cabie.',
serialPort: 'Port szeregowy Aime',
serialPortTooltip: `Porty można sprawdzić w Urządzeniach i drukarkach lub na googlechromelabs.github.io/serial-terminal
Dla AIC Pico powinien być wybrany port AIME.`,
serverName: 'Nazwa serwera',
},
misc: {
title: 'Różne',
intel: 'Obejście buga OpenSSL dla procesorów Intel ≥10 generacji',
intelTooltip: 'Zaleca się zamiast tego załatać amdaemon.',
other: 'Inne opcje segatools',
otherTooltip:
'Zaawansowane lub sytuacyjne opcje, które nie są objęte przez STARTLINERA',
},
extensions: {
title: 'Rozszerzenia',
bepInExConsole: 'Konsola BepInExa',
audioMode: 'Tryb audio',
audioTooltip:
'Tryb ekskluzywny 2-kanałowy wymaga 7EVENDAYSHOLIDAYS-ExclusiveAudio',
audioShared: 'Współdzielony',
audio6Ch: 'Ekskluzywny 6-kanałowy',
audio2Ch: 'Ekskluzywny 2-kanałowy',
sampleRate: 'Częstotliwość',
blacklist: 'Czarna lista utworów',
blacklistTooltip:
'Utwory w tym zakresie ID nie będą zapisywane ani przesyłane',
bonusTracks: 'Odblokuj Bonusowe Utwory',
bonusTracksTooltip:
'Wyłączenie tej opcji może pomóc w uporządkowaniu listy utworów',
saekawa: 'Plik konfiguracyjny Saekawy',
inohara: 'Plik konfiguracyjny Inohary',
},
keyboard: {
title: 'Klawiatura',
tooltip:
'Dotyczy tylko wtedy, gdy moduł IO jest ustawiony na wbudowaną emulację lub zgodny moduł (np. mu3io.NET)',
leverMode: 'Tryb wajchy',
mouse: 'Mysz',
},
wine: {
prefix: 'Wine prefix',
runtime: 'Lokalizacja Wine',
},
startliner: {
offlineMode: 'Tryb offline',
offlineModeTooltip: 'Wyłącza pobierajkę pakietów.',
autoUpdate: 'Automatyczne aktualizacje',
verbose: 'Szczegółowe logi',
},
},
onboarding: {
or: 'lub',
backButton: 'przycisku z tyłu',
standard: `
Możesz utknąć na następującym ekranie:
{bigblack}Aグループの基準機から設定を取得{endbig}
Wówczas musisz przejść do menu testowego i w ustawieniach gry {black}ゲーム設定{end} przełączyć z "podążaj za standardem" {black}基準機に従う{end} na "standard" {black}基準機{end}.
Do menu testowego możesz dostać się za pomocą %TESTMENU%.
`,
'ongeki-system-processing': `
Możesz utknąć na tym ekranie przez kilka(naście) minut. _To jest normalne_. Gra po prostu potrzebuje dużo czasu na załadowanie danych.
Jeśli zainstalujesz <code>7EVENDAYSHOLIDAYS/LoadBoost</code>, kolejne uruchomienia będą znacznie szybsze.
`,
'ongeki-lever': `
Musisz również skalibrować wajchę; w przeciwnym razie możesz otrzymać błąd 3301.
Przejdź do ustawień wajchy ({black}レバー設定{end}), przesuń wajchę do obu krawędzi, a następnie naciśnij "koniec" ({black}終了{end}) i "zapisz" ({black}保存する{end}).
`,
'chunithm-server': `
Jeśli utkniesz na tym ekranie, zrestartuj grę.
Jeśli problem będzie się powtarzał, {link}sprawdź swoją konfigurację sieciową{endlink}.
`,
finale: `
Możesz uzyskać dostęp do tej strony w każdej chwili, klikając prawym przyciskiem myszy przycisk START.
Dodatkowe zasoby:
- {segaguide}SEGAguide{endlink}
- {twotorial}two-torial{endlink}
## Miłej zabawy
`,
},
};