mirror of
https://github.com/openfrontio/OpenFrontIO.git
synced 2026-06-22 12:46:30 +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.2 KiB
JSON
174 lines
9.2 KiB
JSON
{
|
||
"main": {
|
||
"join_discord": "Word lid van de Discord!",
|
||
"create_lobby": "Lobby aanmaken",
|
||
"join_lobby": "Lobby toetreden",
|
||
"single_player": "Eén Speler",
|
||
"instructions": "Instructies",
|
||
"how_to_play": "Hoe spelen?",
|
||
"wiki": "Wiki"
|
||
},
|
||
"help_modal": {
|
||
"hotkeys": "Sneltoetsen",
|
||
"table_key": "Toets",
|
||
"table_action": "Actie",
|
||
"action_alt_view": "Alternatieve weergave (terrein/landen)",
|
||
"action_attack_altclick": "Aanvallen (als linkermuisknop is ingesteld op menu openen)",
|
||
"action_build": "Open bouwmenu",
|
||
"action_center": "Camera centreren op speler",
|
||
"action_zoom": "In-/uitzoomen",
|
||
"action_move_camera": "Camera bewegen",
|
||
"action_ratio_change": "Aanvalsverhouding verlagen/verhogen",
|
||
"action_reset_gfx": "Grafische instellingen herstellen",
|
||
"ui_section": "Spel-UI",
|
||
"ui_leaderboard": "Leidersbord",
|
||
"ui_leaderboard_desc": "Toont de topspelers van het spel en hun namen, % bezette land en goud.",
|
||
"ui_control": "Controlepaneel",
|
||
"ui_control_desc": "Het controlepaneel bevat de volgende elementen:",
|
||
"ui_pop": "Pop - Jouw totale bevolking, jouw maximale bevolking en de snelheid waarmee je ze verwerft.",
|
||
"ui_gold": "Goud - Het goud dat je hebt en de snelheid waarmee je het verwerft.",
|
||
"ui_troops_workers": "Troepen en Werkers - Het aantal toegewezen troepen en werkers. Troepen worden gebruikt om aan te vallen of verdedigen. Werkers worden gebruikt om goud te genereren. Je kunt het aantal troepen en werkers aanpassen met de schuifbalk.",
|
||
"ui_attack_ratio": "Aanvalsverhouding - Het aantal troepen dat wordt gebruikt bij een aanval. Je kunt de aanvalsverhouding aanpassen met de schuifbalk.",
|
||
"ui_options": "Opties",
|
||
"ui_options_desc": "De volgende elementen zijn hierin te vinden:",
|
||
"option_pause": "Spel pauzeren/hervatten - Alleen beschikbaar in het speltype voor één speler.",
|
||
"option_timer": "Timer - Tijd verstreken sinds het begin van het spel.",
|
||
"option_exit": "Afsluitknop.",
|
||
"option_settings": "Instellingen - Open het instellingenmenu. Daarin kun je de Alternatieve weergave, Donkere modus, Emoji's en actie bij linkermuisknop in- of uitschakelen.",
|
||
"radial_title": "Radiale menu",
|
||
"radial_desc": "Rechtermuisknop (of tikken op mobiel) opent het radiale menu. Van daaruit kun je:",
|
||
"radial_build": "Het bouwmenu openen.",
|
||
"radial_info": "Infomenu openen.",
|
||
"radial_boat": "Een boot sturen om de geselecteerde locatie aan te vallen (alleen beschikbaar als je toegang hebt tot water).",
|
||
"radial_close": "Het menu sluiten.",
|
||
"info_title": "Infomenu",
|
||
"info_enemy_desc": "Bevat informatie zoals de naam van de geselecteerde speler, goud, troepen en of de speler een verrader is. Een verrader is een speler die een bondgenoot heeft aangevallen. De iconen hieronder staan voor de volgende interacties:",
|
||
"info_target": "Plaats een doelmarkering op de speler, zichtbaar voor alle bondgenoten, wordt gebruikt om aanvallen te coördineren.",
|
||
"info_alliance": "Stuur een bondgenootschapsverzoek naar de speler. Bondgenoten kunnen goud en troepen delen, maar kunnen elkaar niet aanvallen.",
|
||
"info_emoji": "Stuur een emoji naar de speler.",
|
||
"info_ally_panel": "Infopaneel bondgenoot",
|
||
"info_ally_desc": "Wanneer je een bondgenootschap sluit met een speler, worden de volgende nieuwe iconen beschikbaar:",
|
||
"ally_betray": "Verraad je bondgenoot en beëindig het bondgenootschap. Je krijgt dan een permanent icoon naast je naam. Bots zijn minder geneigd om met je een bondgenootschap aan te gaan en spelers zullen er tweemaal over nadenken.",
|
||
"ally_donate": "Geef een deel van je troepen aan je bondgenoot. Gebruikt wanneer ze weinig troepen hebben en worden aangevallen, of wanneer ze die extra kracht nodig hebben om een vijand te verpletteren.",
|
||
"build_menu_title": "Bouwmenu",
|
||
"build_name": "Naam",
|
||
"build_icon": "Icoon",
|
||
"build_desc": "Beschrijving",
|
||
"build_city": "Stad",
|
||
"build_city_desc": "Verhoogt je maximale bevolking. Handig wanneer je je gebied niet kunt uitbreiden of bijna je bevolkingslimiet heb bereikt.",
|
||
"build_defense": "Verdedigingspost",
|
||
"build_defense_desc": "Versterkt de verdediging van nabijgelegen grenzen. Aanvallen van vijanden zijn trager en maken meer slachtoffers.",
|
||
"build_port": "Haven",
|
||
"build_port_desc": "Stuurt automatisch handelsschepen tussen havens van jouw land en andere landen (behalve als jij bij hen op \"stop handel\" hebt geklikt of zij bij jou), wat goud oplevert voor beide partijen. Maakt het bouwen van Oorlogsschepen mogelijk. Kan alleen bij water worden gebouwd.",
|
||
"build_warship": "Oorlogsschip",
|
||
"build_warship_desc": "Patrouilleert in een gebied, vangt handelsschepen en vernietigt vijandelijke Oorlogsschepen en Boten. Spawnt vanuit de dichtstbijzijnde Haven en patrouilleert in het gebied waar je klikte om het te bouwen.",
|
||
"build_silo": "Raketsilo",
|
||
"build_silo_desc": "Maakt het lanceren van raketten mogelijk.",
|
||
"build_sam": "Luchtdoelraket (SAM)-lanceerder",
|
||
"build_sam_desc": "Heeft 75% kans om vijandelijke raketten binnen een straal van 100 pixels te onderscheppen. De SAM heeft een afkoeltijd van 7,5 seconden en kan geen MIRV's onderscheppen.",
|
||
"build_atom": "Atoombom",
|
||
"build_atom_desc": "Kleine explosieve bom die gebied, gebouwen, schepen en boten vernietigt. Komt vanuit de dichtstbijzijnde Raketsilo en landt op de plek waar je hebt geklikt om het te bouwen.",
|
||
"build_hydrogen": "Waterstofbom",
|
||
"build_hydrogen_desc": "Grote explosieve bom. Komt vanuit de dichtstbijzijnde Raketsilo en landt op de plek waar je hebt geklikt om het te bouwen.",
|
||
"build_mirv": "MIRV",
|
||
"build_mirv_desc": "De krachtigste bom in het spel. Splitst zich op in kleinere bommen die een enorm gebied dekken. Schaadt alleen de speler waarop je klikte om de bom te bouwen. Komt vanuit de dichtstbijzijnde Raketsilo en landt in al het gebied dat de speler had toen je de bom bouwde, en nog steeds heeft.",
|
||
"player_icons": "Spelersiconen",
|
||
"icon_desc": "Voorbeelden van enkele iconen die je in het spel zult tegenkomen en wat ze betekenen:",
|
||
"icon_crown": "Kroon - Dit is de nummer 1 speler op de leaderboard.",
|
||
"icon_traitor": "Gekruiste zwaarden - Verrader. Deze speler heeft een bondgenoot aangevallen.",
|
||
"icon_ally": "Handdruk - Bondgenoot. Deze speler is je bondgenoot.",
|
||
"info_enemy_panel": "Infopaneel vijand"
|
||
},
|
||
"single_modal": {
|
||
"title": "Eén speler",
|
||
"allow_alliances": "Bondgenootschappen toestaan",
|
||
"options_title": "Opties",
|
||
"bots": "Bots:",
|
||
"bots_disabled": "Uitgeschakeld",
|
||
"disable_nations": "Naties uitschakelen",
|
||
"instant_build": "Bouwwachttijd uitschakelen",
|
||
"infinite_gold": "Oneindig goud",
|
||
"infinite_troops": "Oneindige troepen",
|
||
"disable_nukes": "Kernwapens uitschakelen",
|
||
"start": "Start Spel"
|
||
},
|
||
"map": {
|
||
"world": "Wereld",
|
||
"europe": "Europa",
|
||
"mena": "MENA",
|
||
"northamerica": "Noord-Amerika",
|
||
"oceania": "Oceanië",
|
||
"blacksea": "Zwarte Zee",
|
||
"africa": "Afrika",
|
||
"asia": "Azië",
|
||
"mars": "Mars",
|
||
"southamerica": "Zuid-Amerika",
|
||
"britannia": "Groot-Brittanië",
|
||
"gatewaytotheatlantic": "Poort van de Atlantische Oceaan",
|
||
"australia": "Australië",
|
||
"random": "Willekeurig",
|
||
"iceland": "IJsland",
|
||
"pangaea": "Pangea",
|
||
"map": "Kaart"
|
||
},
|
||
"private_lobby": {
|
||
"title": "Privélobby toetreden",
|
||
"enter_id": "Voer Lobby-ID in",
|
||
"player": "Speler",
|
||
"players": "Spelers",
|
||
"join_lobby": "Lobby toetreden",
|
||
"checking": "Lobby controleren...",
|
||
"not_found": "Lobby niet gevonden. Controleer het ID en probeer het opnieuw.",
|
||
"error": "Er is een fout opgetreden. Probeer het opnieuw.",
|
||
"joined_waiting": "Succesvol toegetreden! Wachten tot het spel begint..."
|
||
},
|
||
"public_lobby": {
|
||
"join": "Deelnemen aan volgende Spel",
|
||
"waiting": "spelers wachten"
|
||
},
|
||
"username": {
|
||
"enter_username": "Voer je gebruikersnaam in",
|
||
"not_string": "Gebruikersnaam moet een tekenreeks zijn.",
|
||
"too_short": "Gebruikersnaam moet minstens {min} tekens lang zijn.",
|
||
"too_long": "Gebruikersnaam mag niet langer zijn dan {max} tekens.",
|
||
"invalid_chars": "Gebruikersnaam mag alleen letters, cijfers, spaties, underscores en [vierkante haakjes] bevatten."
|
||
},
|
||
"host_modal": {
|
||
"title": "Privélobby",
|
||
"options_title": "Opties",
|
||
"bots": "Bots:",
|
||
"bots_disabled": "Uitgeschakeld",
|
||
"disable_nations": "Naties uitschakelen",
|
||
"instant_build": "Bouwwachttijd uitschakelen",
|
||
"infinite_gold": "Oneindig goud",
|
||
"infinite_troops": "Oneindige troepen",
|
||
"disable_nukes": "Kernwapens uitschakelen",
|
||
"player": "Speler",
|
||
"players": "Spelers",
|
||
"waiting": "Wachten op spelers...",
|
||
"start": "Start Spel",
|
||
"mode": "Modus"
|
||
},
|
||
"difficulty": {
|
||
"Relaxed": "Ontspannen",
|
||
"Balanced": "Gebalanceerd",
|
||
"Intense": "Intens",
|
||
"Impossible": "Onmogelijk",
|
||
"difficulty": "Moeilijkheidsgraad"
|
||
},
|
||
"game_starting_modal": {
|
||
"title": "Spel gaat starten...",
|
||
"desc": "Voorbereiden op het starten van de lobby. Even geduld."
|
||
},
|
||
"lang": {
|
||
"en": "Dutch",
|
||
"native": "Nederlands",
|
||
"svg": "nl",
|
||
"lang_code": "nl"
|
||
},
|
||
"game_mode": {
|
||
"ffa": "Iedereen tegen iedereen (FFA)",
|
||
"teams": "Teams"
|
||
}
|
||
}
|