mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-21 18:50:55 +00:00
607e5b5ff0
## Please complete the following:
- [x] I have added screenshots for all UI updates
- [x] I confirm I have thoroughly tested these changes and take full
responsibility for any bugs introduced
- [x] I understand that submitting code with bugs that could have been
caught through manual testing blocks releases and new features for all
contributors
This is commit pack
This PR refactors and improves the language selection experience:
• Centralizes all language-related logic in LangSelector.ts &
LanguageModal.ts
• Redesigns the language selection UI for better UX across devices
• Adds new translations and supports more languages
Changes .w.
• Language selection is now handled entirely inside LangSelector.ts &
LanguageModal.ts
• Prevents background scrolling when open
• Highlights the current language at the top
• Always shows English second
• Shows browser language third (if different from current)
• All other languages are sorted alphabetically by English name
• Debug option is shown at the end when pressing D
• The language list is scrollable when it exceeds screen height
Supported Languages
["en", "ja", "fr", "bg", "nl", "ru", "ua", "de"]
Added Translation Keys
```
"lang": {
"en": "English",
"native": "English",
"svg": "xx"
},
"map": {
"map": "Map"
},
"game_starting_modal": {
"title": "Game is Starting...",
"desc": "Preparing for the lobby to start. Please wait."
},
"difficulty": {
"difficulty": "Difficulty"
}
```
## Please put your Discord username so you can be contacted if a bug or
regression is found:
MLS Representative
- aotumuri
Translation collaborator
- Nikola123 (He was a very big help from setting up the translation site
to adding the json. Thank you so much!)
I don't have permission from my collaborators to display their names
here, so I'll put the discord link here
https://discord.com/channels/1284581928254701718/1352553113612980224/1352553113612980224
- tryout33
Collaborators from other servers.
- CCC Group (This is not Culture Convenience Club. Think of it like a
server where developers of various games are playing.)
- People who fixed the UI and found bugs.
meow02952 (discord id) <- This person also gave me a code suggestion.
Thanks!
moon_spear (discord id)
ww_what_ww (discord id)
Azuna (he doesn't have discord account)
- People who corrected translations, etc.
_kyoyume_ (discord id)
_ultrasuper_ (discord id)
grueg (he doesn't have discord account)
# If I forgot to include your name, or if you’d like your name to be
added, please let me know via Gmail or Discord.
---------
Co-authored-by: Duwibi <86431918+Duwibi@users.noreply.github.com>
174 lines
9.6 KiB
JSON
174 lines
9.6 KiB
JSON
{
|
||
"main": {
|
||
"join_discord": "Dołącz do Discord'a!",
|
||
"create_lobby": "Utwórz lobby",
|
||
"join_lobby": "Dołącz do lobby",
|
||
"single_player": "Gra jednoosobowa",
|
||
"instructions": "Instrukcje",
|
||
"how_to_play": "Jak grać",
|
||
"wiki": "Wiki"
|
||
},
|
||
"help_modal": {
|
||
"hotkeys": "Skróty klawiszowe",
|
||
"table_key": "Przycisk",
|
||
"table_action": "Akcja",
|
||
"action_alt_view": "Alternatywny widok (teren/państwa)",
|
||
"action_attack_altclick": "Atak (gdy lewy przycisk myszy jest ustawiony na otwieranie menu).",
|
||
"action_build": "Otwórz menu budowy",
|
||
"action_center": "Wyśrodkuj kamerę na graczu",
|
||
"action_zoom": "Oddal/Przybliż",
|
||
"action_move_camera": "Przesuń kamerę",
|
||
"action_ratio_change": "Zmniejsz/Zwiększ proporcje ataku",
|
||
"action_reset_gfx": "Zresetuj grafikę",
|
||
"ui_section": "Interfejs gry",
|
||
"ui_leaderboard": "Ranking",
|
||
"ui_leaderboard_desc": "Wyświetla najlepszych graczy w bieżącej rozgrywce wraz z ich nazwami, procentem kontrolowanych terytoriów i ilością posiadanego złota.",
|
||
"ui_control": "Panel sterowania",
|
||
"ui_control_desc": "Panel sterowania zawiera następujące elementy:",
|
||
"ui_pop": "Populacja – Liczba posiadanych jednostek, maksymalna liczba ludności oraz tempo, w jakim ją zdobywasz.",
|
||
"ui_gold": "Złoto – Liczba posiadanego złota oraz tempo jego przyrostu.",
|
||
"ui_troops_workers": "Wojsko i Pracownicy – Liczba przydzielonych jednostek wojskowych i pracowników. Wojsko służy do ataku oraz obrony przed wrogimi atakami, a pracownicy są wykorzystywani do generowania złota. Możesz regulować ich liczbę za pomocą suwaka.",
|
||
"ui_attack_ratio": "Współczynnik ataku – Liczba wojsk wykorzystywanych podczas ataku. Możesz dostosować ten współczynnik za pomocą suwaka.",
|
||
"ui_options": "Opcje",
|
||
"ui_options_desc": "Wewnątrz można znaleźć następujące elementy:",
|
||
"option_pause": "Wstrzymaj/Wznów grę – dostępne tylko w trybie jednoosobowym.",
|
||
"option_timer": "Licznik czasu – czas, który upłynął od początku gry.",
|
||
"option_exit": "Przycisk wyjścia.",
|
||
"option_settings": "Ustawienia – otwiera menu ustawień, w którym możesz włączyć Alternatywny Widok, Tryb Ciemny, Emotikony oraz zmienić działanie lewego przycisku myszy.",
|
||
"radial_title": "Menu kołowe",
|
||
"radial_desc": "Kliknięcie prawym przyciskiem myszy (lub dotknięcie na urządzeniu mobilnym) otwiera menu kołowe. Z tego miejsca możesz:",
|
||
"radial_build": "Otwórz menu budowy.",
|
||
"radial_info": "Otwórz menu informacji.",
|
||
"radial_boat": "Wyślij statek z wojskiem, aby zaatakować w wybranej lokalizacji (dostępne tylko wtedy, gdy masz dostęp do wody).",
|
||
"radial_close": "Zamknij menu.",
|
||
"info_title": "Menu informacji",
|
||
"info_enemy_desc": "Zawiera informacje takie jak: nazwa gracza, ilość złota i wojska oraz czy gracz jest zdrajcą. Zdrajca jest to gracz, który zdradził oraz zaatakował gracza, z którym był w sojuszu. Poniższe ikony reprezentują następujące interakcje:",
|
||
"info_target": "Umieść znacznik celu na graczu, oznaczając go, wszyscy twoi sojusznicy dostają powiadomienie o planowanym ataku, jest to pomocne do koordynowania ataków.",
|
||
"info_alliance": "Wyślij prośbę o sojusz do gracza. Sojusznicy mogą przesyłać sobie zasoby oraz wojsko, ale nie mogą się nawzajem zaatakować.",
|
||
"info_emoji": "Wyślij emotkę do gracza.",
|
||
"info_ally_panel": "Panel informacji sojusznika",
|
||
"info_ally_desc": "Po nawiązaniu sojuszu z graczem dostępne stają się następujące nowe ikony:",
|
||
"ally_betray": "Zdradzając swojego sojusznika — kończysz z nim sojusz. Od tego momentu do końca gry posiadasz ikonę zdrajcy obok twojej nazwy użytkownika. Boty będą mniej skłonne do zawierania sojuszy z tobą, a gracze dwa razy się zastanowią, zanim to zrobią.",
|
||
"ally_donate": "Przekaż część swoich wojsk swojemu sojusznikowi. Używane, gdy brakuje mu wojsk i jest atakowany, lub gdy potrzebuje dodatkowej siły, aby pokonać wroga.",
|
||
"build_menu_title": "Menu budowy",
|
||
"build_name": "Nazwa",
|
||
"build_icon": "Ikonka",
|
||
"build_desc": "Opis",
|
||
"build_city": "Miasto",
|
||
"build_city_desc": "Zwiększa maksymalną populację. Przydatne, gdy nie możesz rozszerzyć swojego terytorium lub zbliżasz się do limitu populacji.",
|
||
"build_defense": "Punkt Obronny",
|
||
"build_defense_desc": "Zwiększa obronę wokół pobliskiej granicy. Atak wroga jest wtedy wolniejszy oraz angażuje więcej wojska do przejęcia terenu.",
|
||
"build_port": "Port",
|
||
"build_port_desc": "Automatycznie wysyła statki handlowe między portami twojego kraju a innymi krajami (chyba że klikniesz „zatrzymaj handel” lub inny gracz zrobi to względem ciebie), przynosząc złoto obu stronom. Umożliwia budowanie okrętów wojennych. Może być budowane tylko w pobliżu wody.",
|
||
"build_warship": "Okręt wojenny",
|
||
"build_warship_desc": "Patroluje wyznaczony obszar, przechwytując statki handlowe i niszcząc wrogie okręty wojenne oraz statki z wojskiem. Pojawia się przy porcie, który ma najbliższą drogę do obszaru wyznaczonego do patrolu.",
|
||
"build_silo": "Silos rakietowy",
|
||
"build_silo_desc": "Umożliwia odpalenie rakiet.",
|
||
"build_sam": "Wyrzutnia SAM",
|
||
"build_sam_desc": "Posiada 75% szans na przechwycenie wrogich pocisków w zasięgu 100 pikseli. SAM odnawia się co 7,5 sekundy i nie może przechwycić pocisku MIRV.",
|
||
"build_atom": "Bomba atomowa",
|
||
"build_atom_desc": "Mała bomba atomowa, która niszczy terytoria, budynki, okręty wojenne oraz łodzie z wojskiem. Wystrzeliwuje rakiety z tego silosu rakietowego, który ma najszybszą drogę do przebycia, aby zaatakować wybrany obszar.",
|
||
"build_hydrogen": "Bomba wodorowa",
|
||
"build_hydrogen_desc": "Duża bomba wodorowa. Wystrzeliwuje pociski z tego silosu rakietowego, który ma najszybszą drogę do przebycia, aby zaatakować wybrany obszar.",
|
||
"build_mirv": "MIRV",
|
||
"build_mirv_desc": "Najpotężniejsza bomba w grze, która dzieli się na wiele mniejszych bomb — pokrywają one ogromny zakres terytorium. Zadaje tylko obrażenie graczowi, na którego kliknąłeś, aby ją wysłać. Wystrzeliwuje pocisk z tego silosu rakietowego, który ma najszybszą drogę do przebycia, aby zaatakować.",
|
||
"player_icons": "Ikony graczy",
|
||
"icon_desc": "Przykłady niektórych ikon w grze, które możesz napotkać, oraz ich znaczenie:",
|
||
"icon_crown": "Korona — Jest to gracz numer 1 w rankingu",
|
||
"icon_traitor": "Skrzyżowane miecze — Zdrajca. Ten gracz atakował sojusznika.",
|
||
"icon_ally": "Uścisk dłoni — Sojusznik. Ten gracz jest twoim sojusznikiem.",
|
||
"info_enemy_panel": "Panel informacji o wrogu"
|
||
},
|
||
"single_modal": {
|
||
"title": "Gra jednoosobowa",
|
||
"allow_alliances": "Pozwól na sojusze",
|
||
"options_title": "Opcje",
|
||
"bots": "Boty: ",
|
||
"bots_disabled": "Wyłączone",
|
||
"disable_nations": "Wyłącz Państwa",
|
||
"instant_build": "Natychmiastowa budowa",
|
||
"infinite_gold": "Nieskończone złoto",
|
||
"infinite_troops": "Nieskończone wojsko",
|
||
"disable_nukes": "Wyłącz broń nuklearną",
|
||
"start": "Rozpocznij Grę"
|
||
},
|
||
"map": {
|
||
"world": "Świat",
|
||
"europe": "Europa",
|
||
"mena": "MENA",
|
||
"northamerica": "Ameryka Północna",
|
||
"oceania": "Oceania",
|
||
"blacksea": "Morze Czarne",
|
||
"africa": "Afryka",
|
||
"asia": "Azja",
|
||
"mars": "Mars",
|
||
"southamerica": "Ameryka Południowa",
|
||
"britannia": "Wyspy Brytyjskie",
|
||
"gatewaytotheatlantic": "Brama do Atlantyku",
|
||
"australia": "Australia",
|
||
"random": "Losowe",
|
||
"iceland": "Islandia",
|
||
"pangaea": "Pangea",
|
||
"map": "Mapa"
|
||
},
|
||
"private_lobby": {
|
||
"title": "Dołącz do prywatnego Lobby",
|
||
"enter_id": "Wprowadź ID Lobby",
|
||
"player": "Gracz",
|
||
"players": "Gracze",
|
||
"join_lobby": "Dołącz do Lobby",
|
||
"checking": "Sprawdzanie lobby...",
|
||
"not_found": "Lobby nie zostało znalezione. Proszę sprawdzić ID i spróbować ponownie.",
|
||
"error": "Wystąpił błąd. Proszę spróbować ponownie.",
|
||
"joined_waiting": "Dołączono pomyślnie! Oczekiwanie na rozpoczęcie gry..."
|
||
},
|
||
"public_lobby": {
|
||
"join": "Dołącz do następnej gry",
|
||
"waiting": "oczekujący gracze"
|
||
},
|
||
"username": {
|
||
"enter_username": "Wprowadź swoją nazwę użytkownika",
|
||
"not_string": "Nazwa użytkownika musi być ciągiem znaków.",
|
||
"too_short": "Nazwa użytkownika musi mieć co najmniej {min} znaków.",
|
||
"too_long": "Nazwa użytkownika nie może przekraczać {max} znaków.",
|
||
"invalid_chars": "Nazwa użytkownika może zawierać tylko litery, cyfry, spacje, podkreślenia i [nawiasy kwadratowe]."
|
||
},
|
||
"host_modal": {
|
||
"title": "Prywatne lobby",
|
||
"options_title": "Opcje",
|
||
"bots": "Boty: ",
|
||
"bots_disabled": "Wyłączone",
|
||
"disable_nations": "Wyłącz Państwa",
|
||
"instant_build": "Natychmiastowa budowa",
|
||
"infinite_gold": "Nieskończone złoto",
|
||
"infinite_troops": "Nieskończone wojsko",
|
||
"disable_nukes": "Wyłącz broń nuklearną",
|
||
"player": "Gracz",
|
||
"players": "Gracze",
|
||
"waiting": "Oczekiwanie na graczy...",
|
||
"start": "Rozpocznij grę",
|
||
"mode": "Tryb"
|
||
},
|
||
"difficulty": {
|
||
"Relaxed": "Zrelaksowany",
|
||
"Balanced": "Zbalansowany",
|
||
"Intense": "Intensywny",
|
||
"Impossible": "Niemożliwy",
|
||
"difficulty": "Poziom trudności"
|
||
},
|
||
"game_starting_modal": {
|
||
"title": "Gra się rozpoczyna...",
|
||
"desc": "Przygotowanie do uruchomienia lobby. Proszę czekać."
|
||
},
|
||
"lang": {
|
||
"en": "Polish",
|
||
"native": "Polski",
|
||
"svg": "pl",
|
||
"lang_code": "pl"
|
||
},
|
||
"game_mode": {
|
||
"ffa": "Darmowe dla wszystkich",
|
||
"teams": "Drużyny"
|
||
}
|
||
}
|