1277 lines
47 KiB
JSON
1277 lines
47 KiB
JSON
{
|
|
"locales": {
|
|
"default": "en",
|
|
"supported": [
|
|
"en",
|
|
"da"
|
|
]
|
|
},
|
|
"frontend": {
|
|
"errors": {
|
|
"session_code_required": {
|
|
"en": "Session code is required.",
|
|
"da": "Sessionskoden er påkrævet."
|
|
},
|
|
"session_fetch_failed": {
|
|
"en": "Could not load lobby status.",
|
|
"da": "Kunne ikke indlæse lobby-status."
|
|
},
|
|
"join_failed": {
|
|
"en": "Join failed. Check code or nickname and try again.",
|
|
"da": "Kunne ikke joine. Tjek kode eller kaldenavn og prøv igen."
|
|
},
|
|
"start_round_failed": {
|
|
"en": "Could not start round. Refresh the lobby and try again.",
|
|
"da": "Kunne ikke starte runden. Opdater lobbyen og prøv igen."
|
|
},
|
|
"session_not_found": {
|
|
"en": "Session code is invalid or the session no longer exists.",
|
|
"da": "Sessionskoden er ugyldig, eller sessionen findes ikke længere."
|
|
},
|
|
"nickname_invalid": {
|
|
"en": "Nickname must be between 2 and 40 characters.",
|
|
"da": "Kaldenavn skal være mellem 2 og 40 tegn."
|
|
},
|
|
"nickname_taken": {
|
|
"en": "Nickname is already taken.",
|
|
"da": "Kaldenavnet er allerede taget."
|
|
},
|
|
"unknown": {
|
|
"en": "Action failed. Refresh status and try again.",
|
|
"da": "Handlingen fejlede. Opdater status og prøv igen."
|
|
}
|
|
},
|
|
"ui": {
|
|
"common": {
|
|
"refresh": {
|
|
"en": "Refresh",
|
|
"da": "Opdatér"
|
|
},
|
|
"retry": {
|
|
"en": "Retry",
|
|
"da": "Prøv igen"
|
|
},
|
|
"back_to_join": {
|
|
"en": "Back to join",
|
|
"da": "Tilbage til join"
|
|
},
|
|
"session_code": {
|
|
"en": "Session code",
|
|
"da": "Sessionskode"
|
|
},
|
|
"status": {
|
|
"en": "Status",
|
|
"da": "Status"
|
|
},
|
|
"prompt": {
|
|
"en": "Prompt",
|
|
"da": "Spørgsmål"
|
|
},
|
|
"round_question_id": {
|
|
"en": "Round question id",
|
|
"da": "Rundespørgsmål-id"
|
|
},
|
|
"round": {
|
|
"en": "round",
|
|
"da": "runde"
|
|
},
|
|
"points_short": {
|
|
"en": "pts",
|
|
"da": "point"
|
|
},
|
|
"unknown_error": {
|
|
"en": "Unknown error",
|
|
"da": "Ukendt fejl"
|
|
}
|
|
},
|
|
"app": {
|
|
"title": {
|
|
"en": "WPP Angular Shell",
|
|
"da": "WPP Angular Shell"
|
|
},
|
|
"home_nav": {
|
|
"en": "Home",
|
|
"da": "Hjem"
|
|
},
|
|
"host_nav": {
|
|
"en": "Host",
|
|
"da": "Vært"
|
|
},
|
|
"player_nav": {
|
|
"en": "Player",
|
|
"da": "Spiller"
|
|
},
|
|
"language_label": {
|
|
"en": "Language",
|
|
"da": "Sprog"
|
|
},
|
|
"home_badge": {
|
|
"en": "Party Protocol",
|
|
"da": "Party Protocol"
|
|
},
|
|
"home_title": {
|
|
"en": "Start or join a FupOgFakta session",
|
|
"da": "Start eller join en FupOgFakta-session"
|
|
},
|
|
"home_intro": {
|
|
"en": "Hosts log in and create a new session. Players join with the session code from their phone or laptop.",
|
|
"da": "Værter logger ind og opretter en ny session. Spillere joiner med sessionskoden fra telefon eller computer."
|
|
},
|
|
"host_card_title": {
|
|
"en": "Host a session",
|
|
"da": "Vær vært for en session"
|
|
},
|
|
"host_card_body": {
|
|
"en": "Create a fresh session, control the round flow, and drive the game from the host screen.",
|
|
"da": "Opret en ny session, styr runde-flowet, og kør spillet fra værtsskærmen."
|
|
},
|
|
"host_login_hint": {
|
|
"en": "Hosting requires a Django login. Use login first if create session says login required.",
|
|
"da": "Værtsrollen kræver Django-login. Brug login først, hvis opret session siger login kræves."
|
|
},
|
|
"host_login": {
|
|
"en": "Login as host",
|
|
"da": "Log ind som vært"
|
|
},
|
|
"create_session": {
|
|
"en": "Create session",
|
|
"da": "Opret session"
|
|
},
|
|
"creating_session": {
|
|
"en": "Creating session…",
|
|
"da": "Opretter session…"
|
|
},
|
|
"create_session_failed": {
|
|
"en": "Create session failed",
|
|
"da": "Kunne ikke oprette session"
|
|
},
|
|
"player_card_title": {
|
|
"en": "Join as player",
|
|
"da": "Join som spiller"
|
|
},
|
|
"player_card_body": {
|
|
"en": "Enter the session code and your nickname to join the active game from this device.",
|
|
"da": "Indtast sessionskoden og dit kaldenavn for at joine det aktive spil fra denne enhed."
|
|
},
|
|
"join_session": {
|
|
"en": "Join session",
|
|
"da": "Join session"
|
|
},
|
|
"joining_session": {
|
|
"en": "Joining session…",
|
|
"da": "Joiner session…"
|
|
},
|
|
"join_session_failed": {
|
|
"en": "Join session failed",
|
|
"da": "Kunne ikke joine session"
|
|
}
|
|
},
|
|
"host": {
|
|
"title": {
|
|
"en": "Host gameplay flow",
|
|
"da": "Vært gameplay-flow"
|
|
},
|
|
"category": {
|
|
"en": "Category",
|
|
"da": "Kategori"
|
|
},
|
|
"start_round": {
|
|
"en": "Start round",
|
|
"da": "Start runde"
|
|
},
|
|
"show_question": {
|
|
"en": "Show question",
|
|
"da": "Vis spørgsmål"
|
|
},
|
|
"mix_answers": {
|
|
"en": "Mix answers → guess",
|
|
"da": "Bland svar → gæt"
|
|
},
|
|
"calculate_scores": {
|
|
"en": "Calculate scores → reveal",
|
|
"da": "Udregn score → afslør"
|
|
},
|
|
"load_scoreboard": {
|
|
"en": "Load scoreboard",
|
|
"da": "Hent scoreboard"
|
|
},
|
|
"start_next_round": {
|
|
"en": "Start next round",
|
|
"da": "Start næste runde"
|
|
},
|
|
"finish_game": {
|
|
"en": "Finish game",
|
|
"da": "Afslut spil"
|
|
},
|
|
"retry_scoreboard": {
|
|
"en": "Retry scoreboard",
|
|
"da": "Prøv scoreboard igen"
|
|
},
|
|
"retry_next_round": {
|
|
"en": "Retry next round",
|
|
"da": "Prøv næste runde igen"
|
|
},
|
|
"retry_finish": {
|
|
"en": "Retry finish game",
|
|
"da": "Prøv afslutning igen"
|
|
},
|
|
"session_refresh_failed": {
|
|
"en": "Session refresh failed",
|
|
"da": "Kunne ikke opdatere session"
|
|
},
|
|
"scoreboard_failed": {
|
|
"en": "Scoreboard failed",
|
|
"da": "Scoreboard fejlede"
|
|
},
|
|
"next_round_failed": {
|
|
"en": "Next round failed",
|
|
"da": "Næste runde fejlede"
|
|
},
|
|
"finish_game_failed": {
|
|
"en": "Finish game failed",
|
|
"da": "Afslutning fejlede"
|
|
},
|
|
"session_code_required": {
|
|
"en": "Session code is required",
|
|
"da": "Sessionskode er påkrævet"
|
|
},
|
|
"final_leaderboard": {
|
|
"en": "Final leaderboard",
|
|
"da": "Finale leaderboard"
|
|
},
|
|
"winner": {
|
|
"en": "Winner",
|
|
"da": "Vinder"
|
|
},
|
|
"audio_locale_hint": {
|
|
"en": "Host locale for audio references",
|
|
"da": "Værtens locale for lydreferencer"
|
|
},
|
|
"voice_on": {
|
|
"en": "Voice on",
|
|
"da": "Stemme til"
|
|
},
|
|
"voice_off": {
|
|
"en": "Voice off",
|
|
"da": "Stemme fra"
|
|
},
|
|
"replay_voice": {
|
|
"en": "Replay voice",
|
|
"da": "Afspil stemme igen"
|
|
},
|
|
"voice_preview": {
|
|
"en": "Current voice cue",
|
|
"da": "Aktuel stemmetekst"
|
|
},
|
|
"show_developer_state": {
|
|
"en": "Show developer state",
|
|
"da": "Vis udviklerstatus"
|
|
},
|
|
"hide_developer_state": {
|
|
"en": "Hide developer state",
|
|
"da": "Skjul udviklerstatus"
|
|
},
|
|
"players_label": {
|
|
"en": "Players",
|
|
"da": "Spillere"
|
|
},
|
|
"round_actions_title": {
|
|
"en": "Backstage actions",
|
|
"da": "Backstage-handlinger"
|
|
},
|
|
"round_actions_body": {
|
|
"en": "Keep the operational controls here so the projected presenter surface can stay clean.",
|
|
"da": "Hold de operationelle kontroller her, så den projicerede presenter-flade kan forblive ren."
|
|
},
|
|
"no_host_action": {
|
|
"en": "No host action is available for this phase yet.",
|
|
"da": "Der er endnu ingen værtshandling til denne fase."
|
|
},
|
|
"player_roster": {
|
|
"en": "Player roster",
|
|
"da": "Spilleroversigt"
|
|
},
|
|
"player_roster_body": {
|
|
"en": "The presenter view keeps players visible even when the control surface is hidden.",
|
|
"da": "Presenter-visningen holder spillerne synlige, selv når kontrolfladen er skjult."
|
|
},
|
|
"player_live": {
|
|
"en": "Live",
|
|
"da": "Live"
|
|
},
|
|
"player_away": {
|
|
"en": "Away",
|
|
"da": "Væk"
|
|
},
|
|
"no_players": {
|
|
"en": "No players have joined this session yet.",
|
|
"da": "Ingen spillere har joined denne session endnu."
|
|
},
|
|
"reveal_title": {
|
|
"en": "Reveal",
|
|
"da": "Afsløring"
|
|
},
|
|
"correct_answer": {
|
|
"en": "Correct answer",
|
|
"da": "Rigtigt svar"
|
|
},
|
|
"lies_title": {
|
|
"en": "Lies",
|
|
"da": "Løgne"
|
|
},
|
|
"guesses_title": {
|
|
"en": "Guesses",
|
|
"da": "Gæt"
|
|
},
|
|
"lied_label": {
|
|
"en": "lied",
|
|
"da": "løj"
|
|
},
|
|
"picked_label": {
|
|
"en": "picked",
|
|
"da": "valgte"
|
|
},
|
|
"correct_label": {
|
|
"en": "correct",
|
|
"da": "korrekt"
|
|
},
|
|
"fooled_by_label": {
|
|
"en": "fooled by",
|
|
"da": "narret af"
|
|
},
|
|
"incorrect_label": {
|
|
"en": "incorrect",
|
|
"da": "forkert"
|
|
},
|
|
"developer_state_title": {
|
|
"en": "Developer state",
|
|
"da": "Udviklerstatus"
|
|
},
|
|
"developer_state_body": {
|
|
"en": "Raw diagnostics, manual state input, and phase artifacts stay here instead of dominating the presenter view.",
|
|
"da": "Rå diagnostik, manuel state-input og faseartefakter ligger her i stedet for at dominere presenter-visningen."
|
|
},
|
|
"sync_transport_label": {
|
|
"en": "Sync transport",
|
|
"da": "Synk transport"
|
|
},
|
|
"realtime_status_label": {
|
|
"en": "Realtime status",
|
|
"da": "Realtime-status"
|
|
},
|
|
"last_event_label": {
|
|
"en": "Last event",
|
|
"da": "Seneste event"
|
|
},
|
|
"presenter_control_title": {
|
|
"en": "Backstage control",
|
|
"da": "Backstage-kontrol"
|
|
},
|
|
"presenter_scene_title_lobby": {
|
|
"en": "Room open",
|
|
"da": "Rummet er åbent"
|
|
},
|
|
"presenter_scene_title": {
|
|
"en": "Question in play",
|
|
"da": "Spørgsmålet er i spil"
|
|
},
|
|
"presenter_scene_title_guess": {
|
|
"en": "Answer mix in play",
|
|
"da": "Svarmixet er i spil"
|
|
},
|
|
"presenter_scene_title_reveal": {
|
|
"en": "Round reveal",
|
|
"da": "Rundens afsløring"
|
|
},
|
|
"presenter_scene_title_scoreboard": {
|
|
"en": "Scores on the board",
|
|
"da": "Scoren er på tavlen"
|
|
},
|
|
"presenter_scene_title_finished": {
|
|
"en": "Final standings",
|
|
"da": "Endelige placeringer"
|
|
},
|
|
"presenter_scene_body_lobby": {
|
|
"en": "Let the room gather around the join code while the roster fills in and the next round gets ready.",
|
|
"da": "Lad rummet samle sig om join-koden, mens spilleroversigten fyldes op, og næste runde bliver klar."
|
|
},
|
|
"presenter_scene_body_lie": {
|
|
"en": "Keep the prompt on the main screen while players invent believable lies on their own devices.",
|
|
"da": "Hold spørgsmålet på hovedskærmen, mens spillerne finder på troværdige løgne på deres egne enheder."
|
|
},
|
|
"presenter_scene_body_guess": {
|
|
"en": "Keep every option readable from the main screen while the room locks in a final guess.",
|
|
"da": "Hold alle svar læsbare på hovedskærmen, mens rummet låser sit endelige gæt fast."
|
|
},
|
|
"presenter_scene_body_reveal": {
|
|
"en": "Show the truth first, then let the room track which bluffs landed and who got fooled.",
|
|
"da": "Vis sandheden først, og lad derefter rummet følge hvilke bluffs der landede, og hvem der blev narret."
|
|
},
|
|
"presenter_scene_body_scoreboard": {
|
|
"en": "Let the scores breathe on the main screen before deciding whether to move on or close the game.",
|
|
"da": "Lad scoren få luft på hovedskærmen, før I beslutter om spillet skal videre eller lukkes."
|
|
},
|
|
"presenter_scene_body_finished": {
|
|
"en": "Hold the closing standings on screen long enough for the room to take in the result.",
|
|
"da": "Hold slutstillingen på skærmen længe nok til, at rummet kan tage resultatet ind."
|
|
},
|
|
"presenter_scene_next_step": {
|
|
"en": "Next host beat",
|
|
"da": "Næste værtsslag"
|
|
},
|
|
"presenter_scene_answers_title": {
|
|
"en": "Answer cards",
|
|
"da": "Svarkort"
|
|
},
|
|
"presenter_scene_answers_body": {
|
|
"en": "These are the options currently projected for the room.",
|
|
"da": "Det er de svarmuligheder, der lige nu projiceres til rummet."
|
|
},
|
|
"presenter_scene_cue_start_label": {
|
|
"en": "Open the next round",
|
|
"da": "Åbn næste runde"
|
|
},
|
|
"presenter_scene_cue_start_body": {
|
|
"en": "When the room is settled, launch the first prompt and move the presenter surface into the active round.",
|
|
"da": "Når rummet har sat sig, så start det første spørgsmål og flyt presenter-fladen ind i den aktive runde."
|
|
},
|
|
"presenter_scene_cue_show_label": {
|
|
"en": "Bring the question into focus",
|
|
"da": "Bring spørgsmålet i fokus"
|
|
},
|
|
"presenter_scene_cue_show_body": {
|
|
"en": "Use the prompt as the room anchor, then advance when the round is visually settled.",
|
|
"da": "Brug spørgsmålet som rummets anker, og gå videre når runden visuelt har sat sig."
|
|
},
|
|
"presenter_scene_cue_mix_label": {
|
|
"en": "Move into the answer mix",
|
|
"da": "Gå videre til svarmixet"
|
|
},
|
|
"presenter_scene_cue_mix_body": {
|
|
"en": "Once the room is ready, mix the house lies and player lies into the next guessing moment.",
|
|
"da": "Når rummet er klar, så mix husets løgne og spillernes løgne ind i næste gæt-øjeblik."
|
|
},
|
|
"presenter_scene_cue_reveal_label": {
|
|
"en": "Trigger the reveal",
|
|
"da": "Start afsløringen"
|
|
},
|
|
"presenter_scene_cue_reveal_body": {
|
|
"en": "When enough guesses are in, calculate the round and move the room into the truth moment.",
|
|
"da": "Når nok gæt er inde, så beregn runden og flyt rummet ind i sandhedsøjeblikket."
|
|
},
|
|
"presenter_scene_cue_scoreboard_label": {
|
|
"en": "Land the scoreboard",
|
|
"da": "Land scoreboardet"
|
|
},
|
|
"presenter_scene_cue_scoreboard_body": {
|
|
"en": "Push the reveal into the score beat once the room has had time to read the round outcome.",
|
|
"da": "Skub afsløringen videre til score-øjeblikket, når rummet har haft tid til at læse rundens udfald."
|
|
},
|
|
"presenter_scene_cue_close_label": {
|
|
"en": "Choose the next beat",
|
|
"da": "Vælg næste beat"
|
|
},
|
|
"presenter_scene_cue_close_body": {
|
|
"en": "Use the scoreboard moment to decide whether the room wants another round or the final result.",
|
|
"da": "Brug scoreboard-øjeblikket til at afgøre, om rummet vil have en runde mere eller det endelige resultat."
|
|
},
|
|
"presenter_scene_cue_finished_label": {
|
|
"en": "Hold the closing frame",
|
|
"da": "Hold afslutningsbilledet"
|
|
},
|
|
"presenter_scene_cue_finished_body": {
|
|
"en": "Let the final standings sit on screen as the last beat of the game.",
|
|
"da": "Lad slutstillingen stå på skærmen som spillets sidste beat."
|
|
},
|
|
"presenter_scene_cue_wait_label": {
|
|
"en": "Hold the room here",
|
|
"da": "Hold rummet her"
|
|
},
|
|
"presenter_scene_cue_wait_body": {
|
|
"en": "Let the main screen breathe while players are still writing on their phones.",
|
|
"da": "Lad hovedskærmen få luft, mens spillerne stadig skriver på deres telefoner."
|
|
},
|
|
"presenter_scene_roster_title": {
|
|
"en": "On the floor",
|
|
"da": "På gulvet"
|
|
},
|
|
"presenter_scene_roster_body": {
|
|
"en": "Each player keeps a stable identity token on the presenter screen until real avatars arrive.",
|
|
"da": "Hver spiller beholder et stabilt identitetstoken på presenterskærmen, indtil rigtige avatarer kommer."
|
|
},
|
|
"presenter_scene_lead_title": {
|
|
"en": "Current lead",
|
|
"da": "Nuværende føring"
|
|
},
|
|
"presenter_scene_stat_start_ready": {
|
|
"en": "Start ready",
|
|
"da": "Klar til start"
|
|
},
|
|
"presenter_scene_stat_lies": {
|
|
"en": "Lies in play",
|
|
"da": "Løgne i spil"
|
|
},
|
|
"presenter_scene_stat_correct_guesses": {
|
|
"en": "Correct guesses",
|
|
"da": "Rigtige gæt"
|
|
},
|
|
"presenter_scene_stat_fooled_players": {
|
|
"en": "Players fooled",
|
|
"da": "Spillere narret"
|
|
},
|
|
"presenter_waiting": {
|
|
"en": "Waiting for the next round to begin.",
|
|
"da": "Venter på at næste runde starter."
|
|
},
|
|
"phase_summary_lobby": {
|
|
"en": "Use the presenter surface for atmosphere and player roster, then move into the next round when ready.",
|
|
"da": "Brug presenter-fladen til stemning og spilleroversigt, og gå videre til næste runde når I er klar."
|
|
},
|
|
"phase_summary_lie": {
|
|
"en": "Players are writing believable lies while the host screen carries the prompt and pacing.",
|
|
"da": "Spillerne skriver troværdige løgne, mens værtsskærmen bærer spørgsmålet og rytmen."
|
|
},
|
|
"phase_summary_guess": {
|
|
"en": "The game is collecting guesses. Keep the presenter view focused while players decide on their answers.",
|
|
"da": "Spillet samler gæt ind. Hold presenter-visningen fokuseret, mens spillerne vælger deres svar."
|
|
},
|
|
"phase_summary_reveal": {
|
|
"en": "The reveal phase is ready. Show the truth, the bluffs, and who fooled whom.",
|
|
"da": "Afsløringsfasen er klar. Vis sandheden, bluffene og hvem der narrede hvem."
|
|
},
|
|
"phase_summary_scoreboard": {
|
|
"en": "Scores are ready to land. Use this moment for pacing before the next round starts.",
|
|
"da": "Scoren er klar til at lande. Brug øjeblikket til pacing før næste runde starter."
|
|
},
|
|
"phase_summary_finished": {
|
|
"en": "The final result is ready. This screen should now carry the closing moment of the game.",
|
|
"da": "Det endelige resultat er klar. Denne skærm skal nu bære spillets afslutning."
|
|
}
|
|
},
|
|
"player": {
|
|
"title": {
|
|
"en": "Player gameplay flow",
|
|
"da": "Spiller gameplay-flow"
|
|
},
|
|
"nickname": {
|
|
"en": "Nickname",
|
|
"da": "Kaldenavn"
|
|
},
|
|
"join": {
|
|
"en": "Join",
|
|
"da": "Join"
|
|
},
|
|
"lie_label": {
|
|
"en": "Lie",
|
|
"da": "Løgn"
|
|
},
|
|
"submit_lie": {
|
|
"en": "Submit lie",
|
|
"da": "Send løgn"
|
|
},
|
|
"retry_lie_submit": {
|
|
"en": "Retry lie submit",
|
|
"da": "Prøv løgn igen"
|
|
},
|
|
"submit_guess": {
|
|
"en": "Submit guess",
|
|
"da": "Send gæt"
|
|
},
|
|
"retry_guess_submit": {
|
|
"en": "Retry guess submit",
|
|
"da": "Prøv gæt igen"
|
|
},
|
|
"final_leaderboard": {
|
|
"en": "Final leaderboard",
|
|
"da": "Finale leaderboard"
|
|
},
|
|
"reconnecting_text": {
|
|
"en": "Reconnecting… trying to refresh session state.",
|
|
"da": "Forbinder igen… prøver at opdatere session."
|
|
},
|
|
"offline_text": {
|
|
"en": "You are offline. Reconnect to continue gameplay.",
|
|
"da": "Du er offline. Forbind igen for at fortsætte."
|
|
},
|
|
"retry_now": {
|
|
"en": "Retry now",
|
|
"da": "Prøv nu"
|
|
},
|
|
"loading_refresh": {
|
|
"en": "Loading latest session state…",
|
|
"da": "Indlæser seneste session-status…"
|
|
},
|
|
"sync_delayed_text": {
|
|
"en": "Refreshing in the background is taking longer than expected…",
|
|
"da": "Baggrundsopdatering tager længere tid end forventet…"
|
|
},
|
|
"loading_join": {
|
|
"en": "Joining session… restoring your player state.",
|
|
"da": "Joiner session… gendanner spillerstatus."
|
|
},
|
|
"loading_submit_lie": {
|
|
"en": "Submitting lie… waiting for guess phase.",
|
|
"da": "Sender løgn… venter på gættefase."
|
|
},
|
|
"loading_submit_guess": {
|
|
"en": "Submitting guess… waiting for reveal.",
|
|
"da": "Sender gæt… venter på afsløring."
|
|
},
|
|
"session_refresh_failed": {
|
|
"en": "Session refresh failed",
|
|
"da": "Kunne ikke opdatere session"
|
|
},
|
|
"join_failed": {
|
|
"en": "Join failed",
|
|
"da": "Join fejlede"
|
|
},
|
|
"lie_submit_failed": {
|
|
"en": "Lie submit failed",
|
|
"da": "Løgn-fejl"
|
|
},
|
|
"guess_submit_failed": {
|
|
"en": "Guess submit failed",
|
|
"da": "Gætte-fejl"
|
|
},
|
|
"audio_policy_notice": {
|
|
"en": "Audio playback is disabled on phone clients. Sound is available on the primary host device.",
|
|
"da": "Lydafspilning er slået fra på telefon-klienten. Lyd afspilles kun på den primære værtsenhed."
|
|
},
|
|
"show_developer_state": {
|
|
"en": "Show developer state",
|
|
"da": "Vis udviklerstatus"
|
|
},
|
|
"hide_developer_state": {
|
|
"en": "Hide developer state",
|
|
"da": "Skjul udviklerstatus"
|
|
},
|
|
"player_scene_title_join": {
|
|
"en": "Player station",
|
|
"da": "Spillerstation"
|
|
},
|
|
"player_scene_title_lobby": {
|
|
"en": "Seat reserved",
|
|
"da": "Plads reserveret"
|
|
},
|
|
"player_scene_title_waiting_lie": {
|
|
"en": "Lie locked in",
|
|
"da": "Løgnen er låst"
|
|
},
|
|
"player_scene_title_waiting_guess": {
|
|
"en": "Guess locked in",
|
|
"da": "Gættet er låst"
|
|
},
|
|
"player_scene_title_waiting": {
|
|
"en": "Stay in the room",
|
|
"da": "Bliv i rummet"
|
|
},
|
|
"player_scene_join_headline": {
|
|
"en": "Bring this phone into the game",
|
|
"da": "Tag denne telefon med ind i spillet"
|
|
},
|
|
"player_scene_body_join": {
|
|
"en": "Use the shared session code and your nickname to claim this device before the round starts.",
|
|
"da": "Brug den delte sessionskode og dit kaldenavn til at tage denne enhed i brug, før runden starter."
|
|
},
|
|
"player_scene_body_lobby": {
|
|
"en": "You are checked in. Keep this phone ready while the host opens the next prompt on the main screen.",
|
|
"da": "Du er tjekket ind. Hold telefonen klar, mens værten åbner næste spørgsmål på hovedskærmen."
|
|
},
|
|
"player_scene_body_waiting": {
|
|
"en": "Your action is already locked in. Keep this device nearby while the round advances on the shared screen.",
|
|
"da": "Din handling er allerede låst. Hold enheden i nærheden, mens runden går videre på fællesskærmen."
|
|
},
|
|
"player_scene_next_step": {
|
|
"en": "Next phone beat",
|
|
"da": "Næste telefon-beat"
|
|
},
|
|
"player_scene_cue_join_label": {
|
|
"en": "Claim this screen",
|
|
"da": "Tag denne skærm i brug"
|
|
},
|
|
"player_scene_cue_join_body": {
|
|
"en": "Enter the session code, choose a nickname, and join before the host starts the round.",
|
|
"da": "Indtast sessionskoden, vælg et kaldenavn, og join før værten starter runden."
|
|
},
|
|
"player_scene_cue_lobby_label": {
|
|
"en": "Wait for the host",
|
|
"da": "Vent på værten"
|
|
},
|
|
"player_scene_cue_lobby_body": {
|
|
"en": "Once the room is settled, the shared screen will move into the round and this phone will switch to the active task.",
|
|
"da": "Når rummet har sat sig, går fællesskærmen videre til runden, og denne telefon skifter til den aktive opgave."
|
|
},
|
|
"player_scene_cue_waiting_label": {
|
|
"en": "Hold your place",
|
|
"da": "Hold din plads"
|
|
},
|
|
"player_scene_cue_waiting_body": {
|
|
"en": "The game is still syncing around the room. This device will update in place when the next playable step opens.",
|
|
"da": "Spillet synkroniserer stadig rundt i rummet. Denne enhed opdaterer på stedet, når næste spilbare trin åbner."
|
|
},
|
|
"active_scene_cue_lie_label": {
|
|
"en": "Sell the bluff",
|
|
"da": "Sælg bluffet"
|
|
},
|
|
"active_scene_cue_lie_body": {
|
|
"en": "Write one answer that could pass for the truth, then lock it in before the host flips the room.",
|
|
"da": "Skriv ét svar der kan lyde sandt, og lås det før værten vender rummet."
|
|
},
|
|
"active_scene_cue_guess_label": {
|
|
"en": "Pick the truth",
|
|
"da": "Vælg sandheden"
|
|
},
|
|
"active_scene_cue_guess_body": {
|
|
"en": "Read the mixed answers, trust your instinct, and send one guess when it feels right.",
|
|
"da": "Læs de blandede svar, stol på din mavefornemmelse, og send ét gæt når det føles rigtigt."
|
|
},
|
|
"active_scene_cue_reveal_label": {
|
|
"en": "Read the round",
|
|
"da": "Læs runden"
|
|
},
|
|
"active_scene_cue_reveal_body": {
|
|
"en": "The answer is out. Check who got fooled and how your choice landed before the scoreboard arrives.",
|
|
"da": "Svaret er ude. Se hvem der blev narret, og hvordan dit valg landede, før scoretavlen kommer."
|
|
},
|
|
"active_scene_cue_result_label": {
|
|
"en": "Clock the standings",
|
|
"da": "Læs stillingen"
|
|
},
|
|
"active_scene_cue_result_body": {
|
|
"en": "The room score is live. Track your place here while the host decides on the next round or the finish.",
|
|
"da": "Rummets score er live. Følg din placering her, mens værten vælger næste runde eller afslutningen."
|
|
},
|
|
"headline_join": {
|
|
"en": "Join the session",
|
|
"da": "Join sessionen"
|
|
},
|
|
"headline_waiting": {
|
|
"en": "Stay ready for the next phase",
|
|
"da": "Vær klar til næste fase"
|
|
},
|
|
"join_section_title": {
|
|
"en": "Join this session",
|
|
"da": "Join denne session"
|
|
},
|
|
"current_task_title": {
|
|
"en": "Current task",
|
|
"da": "Nuværende opgave"
|
|
},
|
|
"join_section_body": {
|
|
"en": "Use your session code and nickname to attach this device to the game.",
|
|
"da": "Brug sessionskoden og dit kaldenavn til at koble denne enhed til spillet."
|
|
},
|
|
"answers_not_ready": {
|
|
"en": "Answers have not been mixed yet.",
|
|
"da": "Svarene er ikke blevet blandet endnu."
|
|
},
|
|
"round_view_title": {
|
|
"en": "Round view",
|
|
"da": "Rundevisning"
|
|
},
|
|
"scoreboard_title": {
|
|
"en": "Scoreboard",
|
|
"da": "Scoretavle"
|
|
},
|
|
"round_prompt_waiting": {
|
|
"en": "The round prompt will appear here when the game phase exposes it.",
|
|
"da": "Rundens spørgsmål vises her, når spilfasen tillader det."
|
|
},
|
|
"selected_answer_label": {
|
|
"en": "Selected answer",
|
|
"da": "Valgt svar"
|
|
},
|
|
"selection_pending_label": {
|
|
"en": "Not picked yet",
|
|
"da": "Ikke valgt endnu"
|
|
},
|
|
"draft_length_label": {
|
|
"en": "Draft length",
|
|
"da": "Længde på udkast"
|
|
},
|
|
"answers_available_label": {
|
|
"en": "Answers",
|
|
"da": "Svar"
|
|
},
|
|
"reveal_title": {
|
|
"en": "Reveal",
|
|
"da": "Afsløring"
|
|
},
|
|
"correct_answer": {
|
|
"en": "Correct answer",
|
|
"da": "Rigtigt svar"
|
|
},
|
|
"guess_result_label": {
|
|
"en": "Your guess",
|
|
"da": "Dit gæt"
|
|
},
|
|
"players_fooled_label": {
|
|
"en": "Players fooled",
|
|
"da": "Narrede spillere"
|
|
},
|
|
"lied_label": {
|
|
"en": "lied",
|
|
"da": "løj"
|
|
},
|
|
"picked_label": {
|
|
"en": "picked",
|
|
"da": "valgte"
|
|
},
|
|
"correct_label": {
|
|
"en": "correct",
|
|
"da": "korrekt"
|
|
},
|
|
"fooled_by_label": {
|
|
"en": "fooled by",
|
|
"da": "narret af"
|
|
},
|
|
"incorrect_label": {
|
|
"en": "incorrect",
|
|
"da": "forkert"
|
|
},
|
|
"developer_state_title": {
|
|
"en": "Developer state",
|
|
"da": "Udviklerstatus"
|
|
},
|
|
"developer_state_body": {
|
|
"en": "Player diagnostics live here so the default mobile surface can stay focused on one action per phase.",
|
|
"da": "Spillerdiagnostik ligger her, så standardvisningen på mobilen kan forblive fokuseret på én handling per fase."
|
|
},
|
|
"room_roster_title": {
|
|
"en": "In the room",
|
|
"da": "I rummet"
|
|
},
|
|
"room_roster_body": {
|
|
"en": "Keep track of who is already connected without pushing diagnostics into the main player flow.",
|
|
"da": "Hold styr på hvem der allerede er forbundet uden at skubbe diagnostik ind i den normale spillerflow."
|
|
},
|
|
"room_players_label": {
|
|
"en": "Players",
|
|
"da": "Spillere"
|
|
},
|
|
"room_live_label": {
|
|
"en": "Live",
|
|
"da": "Live"
|
|
},
|
|
"room_away_label": {
|
|
"en": "Away",
|
|
"da": "Væk"
|
|
},
|
|
"player_scene_stat_score": {
|
|
"en": "Your score",
|
|
"da": "Din score"
|
|
},
|
|
"result_rank_label": {
|
|
"en": "Your place",
|
|
"da": "Din placering"
|
|
},
|
|
"leader_score_label": {
|
|
"en": "Lead score",
|
|
"da": "Førende score"
|
|
},
|
|
"gap_to_lead_label": {
|
|
"en": "Gap to lead",
|
|
"da": "Afstand til føring"
|
|
},
|
|
"connection_label": {
|
|
"en": "Connection",
|
|
"da": "Forbindelse"
|
|
},
|
|
"player_id_label": {
|
|
"en": "Player ID",
|
|
"da": "Spiller-id"
|
|
},
|
|
"token_label": {
|
|
"en": "Token",
|
|
"da": "Token"
|
|
},
|
|
"sync_transport_label": {
|
|
"en": "Sync transport",
|
|
"da": "Synk transport"
|
|
},
|
|
"realtime_status_label": {
|
|
"en": "Realtime status",
|
|
"da": "Realtime-status"
|
|
},
|
|
"last_event_label": {
|
|
"en": "Last event",
|
|
"da": "Seneste event"
|
|
},
|
|
"token_present": {
|
|
"en": "present",
|
|
"da": "til stede"
|
|
},
|
|
"token_missing": {
|
|
"en": "missing",
|
|
"da": "mangler"
|
|
},
|
|
"you_label": {
|
|
"en": "You",
|
|
"da": "Dig"
|
|
},
|
|
"phase_summary_lobby": {
|
|
"en": "Connect this device to the session and stay ready for the next prompt.",
|
|
"da": "Forbind denne enhed til sessionen og vær klar til næste spørgsmål."
|
|
},
|
|
"phase_summary_lie": {
|
|
"en": "Write one believable answer. The game will keep syncing in the background while you type.",
|
|
"da": "Skriv ét troværdigt svar. Spillet synkroniserer videre i baggrunden, mens du skriver."
|
|
},
|
|
"phase_summary_guess": {
|
|
"en": "Choose the answer you think is correct. Your selection stays local until you submit it.",
|
|
"da": "Vælg det svar du tror er rigtigt. Dit valg bliver lokalt, indtil du sender det."
|
|
},
|
|
"phase_summary_reveal": {
|
|
"en": "The reveal phase is active. Watch how the lies and guesses landed this round.",
|
|
"da": "Afsløringsfasen er aktiv. Se hvordan løgne og gæt landede i denne runde."
|
|
},
|
|
"phase_summary_scoreboard": {
|
|
"en": "Scores are being shown. Wait here for the next round or the final result.",
|
|
"da": "Scoren bliver vist. Vent her på næste runde eller det endelige resultat."
|
|
},
|
|
"phase_summary_finished": {
|
|
"en": "The game is over. The final standings are ready below.",
|
|
"da": "Spillet er slut. De endelige placeringer er klar nedenfor."
|
|
},
|
|
"action_summary_lie": {
|
|
"en": "Type a believable lie and send it when you are ready.",
|
|
"da": "Skriv en troværdig løgn og send den, når du er klar."
|
|
},
|
|
"action_summary_guess": {
|
|
"en": "Pick one answer and submit your guess.",
|
|
"da": "Vælg ét svar og send dit gæt."
|
|
},
|
|
"action_summary_scoreboard": {
|
|
"en": "Check the current standings and stay ready for the next transition.",
|
|
"da": "Tjek den aktuelle stilling og vær klar til næste overgang."
|
|
},
|
|
"action_summary_finished": {
|
|
"en": "Review the final standings for this game.",
|
|
"da": "Gennemgå de endelige placeringer for dette spil."
|
|
},
|
|
"action_summary_waiting": {
|
|
"en": "This device is connected. Waiting for the next playable step.",
|
|
"da": "Denne enhed er forbundet. Venter på næste spilbare trin."
|
|
},
|
|
"waiting_connected": {
|
|
"en": "You are connected. Waiting for the next phase from the host.",
|
|
"da": "Du er forbundet. Venter på næste fase fra værten."
|
|
},
|
|
"sync_status_eyebrow": {
|
|
"en": "Sync status",
|
|
"da": "Synkstatus"
|
|
},
|
|
"sync_status_title_reconnecting": {
|
|
"en": "Live sync is reconnecting",
|
|
"da": "Livesynk forbinder igen"
|
|
},
|
|
"sync_status_body_reconnecting": {
|
|
"en": "Realtime push dropped back to recovery mode. Keep typing or keep your pick here while the phone refreshes in the background.",
|
|
"da": "Realtime-push er faldet tilbage til gendannelsestilstand. Bliv ved med at skrive eller behold dit valg her, mens telefonen opdaterer i baggrunden."
|
|
},
|
|
"sync_status_title_offline": {
|
|
"en": "This phone is offline",
|
|
"da": "Denne telefon er offline"
|
|
},
|
|
"sync_status_body_offline": {
|
|
"en": "Your draft stays on this device, but the game cannot advance here until the network comes back.",
|
|
"da": "Dit udkast bliver på denne enhed, men spillet kan ikke fortsætte her, før netværket er tilbage."
|
|
},
|
|
"sync_status_title_delayed": {
|
|
"en": "Background refresh is slow",
|
|
"da": "Baggrundsopdateringen er langsom"
|
|
},
|
|
"sync_status_body_delayed": {
|
|
"en": "Updates are taking longer than expected. Keep your input here and the client will keep retrying in the background.",
|
|
"da": "Opdateringer tager længere tid end forventet. Behold dit input her, og klienten fortsætter med at prøve igen i baggrunden."
|
|
}
|
|
}
|
|
},
|
|
"capabilities": {
|
|
"client_has_no_audio_output": true
|
|
}
|
|
},
|
|
"backend": {
|
|
"error_codes": {
|
|
"calculate_scores_invalid_phase": "calculate_scores_invalid_phase",
|
|
"category_has_no_questions": "category_has_no_questions",
|
|
"category_not_found": "category_not_found",
|
|
"category_slug_required": "category_slug_required",
|
|
"finish_game_invalid_phase": "finish_game_invalid_phase",
|
|
"guess_already_submitted": "guess_already_submitted",
|
|
"guess_submission_invalid_phase": "guess_submission_invalid_phase",
|
|
"host_only_calculate_scores": "host_only_calculate_scores",
|
|
"host_only_finish_game": "host_only_finish_game",
|
|
"host_only_mix_answers": "host_only_mix_answers",
|
|
"host_only_show_question": "host_only_show_question",
|
|
"host_only_start_next_round": "host_only_start_next_round",
|
|
"host_only_start_round": "host_only_start_round",
|
|
"host_only_view_scoreboard": "host_only_view_scoreboard",
|
|
"invalid_player_session_token": "invalid_player_session_token",
|
|
"lie_already_submitted": "lie_already_submitted",
|
|
"lie_submission_invalid_phase": "lie_submission_invalid_phase",
|
|
"lie_text_invalid": "lie_text_invalid",
|
|
"mix_answers_invalid_phase": "mix_answers_invalid_phase",
|
|
"nickname_invalid": "nickname_invalid",
|
|
"nickname_taken": "nickname_taken",
|
|
"no_available_questions": "no_available_questions",
|
|
"no_guesses_submitted": "no_guesses_submitted",
|
|
"not_enough_answers_to_mix": "not_enough_answers_to_mix",
|
|
"player_id_required": "player_id_required",
|
|
"player_not_found_in_session": "player_not_found_in_session",
|
|
"question_already_shown": "question_already_shown",
|
|
"round_already_configured": "round_already_configured",
|
|
"round_config_missing": "round_config_missing",
|
|
"round_question_not_found": "round_question_not_found",
|
|
"round_start_invalid_phase": "round_start_invalid_phase",
|
|
"scoreboard_invalid_phase": "scoreboard_invalid_phase",
|
|
"scores_already_calculated": "scores_already_calculated",
|
|
"selected_answer_invalid": "selected_answer_invalid",
|
|
"selected_text_invalid": "selected_text_invalid",
|
|
"session_code_required": "session_code_required",
|
|
"session_not_found": "session_not_found",
|
|
"session_not_joinable": "session_not_joinable",
|
|
"session_token_required": "session_token_required",
|
|
"show_question_invalid_phase": "show_question_invalid_phase",
|
|
"lie_submission_closed": "lie_submission_closed",
|
|
"next_round_invalid_phase": "next_round_invalid_phase",
|
|
"guess_submission_closed": "guess_submission_closed"
|
|
},
|
|
"errors": {
|
|
"calculate_scores_invalid_phase": {
|
|
"en": "Scores can only be calculated in guess phase.",
|
|
"da": "Score kan kun udregnes i gættefasen."
|
|
},
|
|
"category_has_no_questions": {
|
|
"en": "Category has no active questions",
|
|
"da": "Kategorien har ingen aktive spørgsmål"
|
|
},
|
|
"category_not_found": {
|
|
"en": "Category not found",
|
|
"da": "Kategori blev ikke fundet"
|
|
},
|
|
"category_slug_required": {
|
|
"en": "category_slug is required",
|
|
"da": "category_slug er påkrævet"
|
|
},
|
|
"finish_game_invalid_phase": {
|
|
"en": "Game can only be finished from scoreboard phase.",
|
|
"da": "Spillet kan kun afsluttes fra scoreboard-fasen."
|
|
},
|
|
"guess_already_submitted": {
|
|
"en": "Guess has already been submitted for this player.",
|
|
"da": "Gættet er allerede indsendt for denne spiller."
|
|
},
|
|
"guess_submission_invalid_phase": {
|
|
"en": "Guess submission is only allowed in guess phase.",
|
|
"da": "Gæt kan kun sendes i gættefasen."
|
|
},
|
|
"host_only_calculate_scores": {
|
|
"en": "Only the host can calculate scores.",
|
|
"da": "Kun værten kan udregne score."
|
|
},
|
|
"host_only_finish_game": {
|
|
"en": "Only the host can finish the game.",
|
|
"da": "Kun værten kan afslutte spillet."
|
|
},
|
|
"host_only_mix_answers": {
|
|
"en": "Only host can mix answers",
|
|
"da": "Kun værten kan blande svar"
|
|
},
|
|
"host_only_show_question": {
|
|
"en": "Only host can show question",
|
|
"da": "Kun værten kan vise spørgsmålet"
|
|
},
|
|
"host_only_start_next_round": {
|
|
"en": "Only the host can start the next round.",
|
|
"da": "Kun værten kan starte næste runde."
|
|
},
|
|
"host_only_start_round": {
|
|
"en": "Only host can start round",
|
|
"da": "Kun værten kan starte runden"
|
|
},
|
|
"host_only_view_scoreboard": {
|
|
"en": "Only the host can view the scoreboard.",
|
|
"da": "Kun værten kan se scoreboardet."
|
|
},
|
|
"invalid_player_session_token": {
|
|
"en": "Player session token is invalid.",
|
|
"da": "Spillerens session-token er ugyldigt."
|
|
},
|
|
"lie_already_submitted": {
|
|
"en": "Lie has already been submitted for this player.",
|
|
"da": "Løgnen er allerede indsendt for denne spiller."
|
|
},
|
|
"lie_submission_invalid_phase": {
|
|
"en": "Lie submission is only allowed in lie phase.",
|
|
"da": "Løgn kan kun sendes i løgnefasen."
|
|
},
|
|
"lie_text_invalid": {
|
|
"en": "Text must be between 1 and 255 characters.",
|
|
"da": "Tekst skal være mellem 1 og 255 tegn."
|
|
},
|
|
"mix_answers_invalid_phase": {
|
|
"en": "Answers can only be mixed in lie or guess phase",
|
|
"da": "Svar kan kun blandes i løgne- eller gættefasen"
|
|
},
|
|
"nickname_invalid": {
|
|
"en": "Nickname must be between 2 and 40 characters",
|
|
"da": "Kaldenavn skal være mellem 2 og 40 tegn"
|
|
},
|
|
"nickname_taken": {
|
|
"en": "Nickname already taken",
|
|
"da": "Kaldenavnet er allerede taget"
|
|
},
|
|
"no_available_questions": {
|
|
"en": "No available questions in category",
|
|
"da": "Ingen tilgængelige spørgsmål i kategorien"
|
|
},
|
|
"no_guesses_submitted": {
|
|
"en": "No guesses have been submitted for this round question.",
|
|
"da": "Der er ikke indsendt gæt for dette rundespørgsmål."
|
|
},
|
|
"not_enough_answers_to_mix": {
|
|
"en": "Not enough answers to mix",
|
|
"da": "Ikke nok svar at blande"
|
|
},
|
|
"player_id_required": {
|
|
"en": "Player id is required.",
|
|
"da": "Spiller-id er påkrævet."
|
|
},
|
|
"player_not_found_in_session": {
|
|
"en": "Player was not found in this session.",
|
|
"da": "Spilleren blev ikke fundet i denne session."
|
|
},
|
|
"question_already_shown": {
|
|
"en": "Question already shown for this round",
|
|
"da": "Spørgsmålet er allerede vist for denne runde"
|
|
},
|
|
"round_already_configured": {
|
|
"en": "Round already configured",
|
|
"da": "Runden er allerede konfigureret"
|
|
},
|
|
"round_config_missing": {
|
|
"en": "Round config missing",
|
|
"da": "Rundekonfiguration mangler"
|
|
},
|
|
"round_question_not_found": {
|
|
"en": "Round question not found",
|
|
"da": "Rundespørgsmål blev ikke fundet"
|
|
},
|
|
"round_start_invalid_phase": {
|
|
"en": "Round can only be started from lobby",
|
|
"da": "Runden kan kun startes fra lobbyen"
|
|
},
|
|
"scoreboard_invalid_phase": {
|
|
"en": "Scoreboard is only available in scoreboard phase.",
|
|
"da": "Scoreboard er kun tilgængeligt i scoreboard-fasen."
|
|
},
|
|
"scores_already_calculated": {
|
|
"en": "Scores have already been calculated for this round question.",
|
|
"da": "Score er allerede udregnet for dette rundespørgsmål."
|
|
},
|
|
"selected_answer_invalid": {
|
|
"en": "Selected answer is not part of this round.",
|
|
"da": "Det valgte svar er ikke en del af denne runde."
|
|
},
|
|
"selected_text_invalid": {
|
|
"en": "Selected text must be between 1 and 255 characters.",
|
|
"da": "Valgt tekst skal være mellem 1 og 255 tegn."
|
|
},
|
|
"session_code_required": {
|
|
"en": "Session code is required",
|
|
"da": "Sessionskode er påkrævet"
|
|
},
|
|
"session_not_found": {
|
|
"en": "Session not found",
|
|
"da": "Session blev ikke fundet"
|
|
},
|
|
"session_not_joinable": {
|
|
"en": "Session is not joinable",
|
|
"da": "Sessionen kan ikke joine nu"
|
|
},
|
|
"session_token_required": {
|
|
"en": "Session token is required.",
|
|
"da": "Session-token er påkrævet."
|
|
},
|
|
"show_question_invalid_phase": {
|
|
"en": "Question can only be shown in lie phase",
|
|
"da": "Spørgsmålet kan kun vises i løgnefasen"
|
|
},
|
|
"lie_submission_closed": {
|
|
"en": "Lie submission window has closed",
|
|
"da": "Vinduet for løgn-indsendelse er lukket"
|
|
},
|
|
"next_round_invalid_phase": {
|
|
"en": "Next round can only start from scoreboard phase",
|
|
"da": "Næste runde kan kun starte fra scoreboard-fasen"
|
|
},
|
|
"guess_submission_closed": {
|
|
"en": "Guess submission window has closed",
|
|
"da": "Vinduet for gæt-indsendelse er lukket"
|
|
}
|
|
}
|
|
},
|
|
"contract": {
|
|
"ownership": {
|
|
"artifact": "shared/i18n/lobby.json",
|
|
"backend": "lobby/* reads backend/errors + backend/error_codes",
|
|
"frontend": "frontend/* reads frontend/errors + frontend/ui + contract/backend_to_frontend_error_keys"
|
|
},
|
|
"locale": {
|
|
"default": "en",
|
|
"supported": [
|
|
"en",
|
|
"da"
|
|
],
|
|
"fallback": "Use default locale when requested locale is unsupported or key translation is missing."
|
|
},
|
|
"backend_to_frontend_error_keys": {
|
|
"calculate_scores_invalid_phase": "unknown",
|
|
"category_has_no_questions": "start_round_failed",
|
|
"category_not_found": "start_round_failed",
|
|
"category_slug_required": "start_round_failed",
|
|
"finish_game_invalid_phase": "unknown",
|
|
"guess_already_submitted": "unknown",
|
|
"guess_submission_invalid_phase": "unknown",
|
|
"host_only_action": "start_round_failed",
|
|
"host_only_calculate_scores": "unknown",
|
|
"host_only_finish_game": "unknown",
|
|
"host_only_mix_answers": "start_round_failed",
|
|
"host_only_show_question": "start_round_failed",
|
|
"host_only_start_next_round": "unknown",
|
|
"host_only_start_round": "start_round_failed",
|
|
"host_only_view_scoreboard": "unknown",
|
|
"invalid_player_session_token": "unknown",
|
|
"lie_already_submitted": "unknown",
|
|
"lie_submission_invalid_phase": "unknown",
|
|
"lie_text_invalid": "unknown",
|
|
"mix_answers_invalid_phase": "start_round_failed",
|
|
"nickname_invalid": "nickname_invalid",
|
|
"nickname_taken": "nickname_taken",
|
|
"no_available_questions": "start_round_failed",
|
|
"no_guesses_submitted": "unknown",
|
|
"not_enough_answers_to_mix": "start_round_failed",
|
|
"player_id_required": "unknown",
|
|
"player_not_found_in_session": "unknown",
|
|
"question_already_shown": "start_round_failed",
|
|
"round_already_configured": "start_round_failed",
|
|
"round_config_missing": "start_round_failed",
|
|
"round_question_not_found": "start_round_failed",
|
|
"round_start_invalid_phase": "start_round_failed",
|
|
"scoreboard_invalid_phase": "unknown",
|
|
"scores_already_calculated": "unknown",
|
|
"selected_answer_invalid": "unknown",
|
|
"selected_text_invalid": "unknown",
|
|
"session_code_required": "session_code_required",
|
|
"session_not_found": "session_not_found",
|
|
"session_not_joinable": "join_failed",
|
|
"session_token_required": "unknown",
|
|
"show_question_invalid_phase": "start_round_failed",
|
|
"lie_submission_closed": "unknown",
|
|
"guess_submission_closed": "unknown",
|
|
"next_round_invalid_phase": "unknown"
|
|
}
|
|
}
|
|
}
|