pinch-points 0.1.0

A fast, kid-friendly crab-routing game: route streams of crabs into your sandcastle before the tide comes in
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
//! German strings (informal du, for kids as much as anyone).

use super::Tr;

pub static DE: Tr = Tr {
    tagline: "Ebbe! - bring die Krabben nach Hause",
    menu_names: [
        "Gezeitentümpel",
        "Strandschlacht",
        "Treibholz",
        "Wiederholung",
        "Strand-Lobby",
        "Einstellungen",
        "Strandtag",
        "Erfolge",
        "Tages-Challenge",
        "Fortsetzen",
    ],
    menu_blurbs: [
        "Solo-Rätselkampagne",
        "lokaler Kampf, bis zu 6 Spieler",
        "Level-Editor",
        "behaltene Runden ansehen",
        "Online-Spiel im Heimnetz",
        "Steuerung, Ton, Tempo",
        "Punktejagd-Herausforderungen",
        "deine Statistiken und Pokale",
        "der Strand des Tages, für alle gleich",
        "nimm die abgelegte Runde wieder auf",
    ],
    menu_daily_blurb: "{d}.{m}. - für alle derselbe Strand",
    menu_prompt: "W/S: wählen | Enter: spielen | V: einfügen | M: Musik | Esc: beenden",
    title_achievements: "Erfolge",
    ach_names: [
        "Erste Krabbe daheim",
        "Strandvorarbeiter",
        "Gezeitenmeister",
        "Goldene Hand",
        "Schatzkammer",
        "Krabbenflüsterer",
        "Sturmjäger",
        "Burgenkönig",
        "Dynastie",
        "Rätselpaddler",
        "Tümpelgelehrter",
        "Tümpelprofessor",
        "Trockene Burg",
        "Schwerarbeit",
        "Rad komplett",
        "Reiche Beute",
        "Strandmeister",
        "Guter Nachbar",
        "Stammgast",
        "Treibholz-Architekt",
        "Alter Seebär",
        "Strandwächter",
        "Goldstandard",
        "Schwertransport",
        "Jahrhundertflut",
        "Die Bank gewinnt",
        "Jeden Tag da",
        "Treibholz-Werft",
        "Möwenfutter",
        "Strand gerettet",
        "Von früh bis spät",
        "Sommermeister",
    ],
    ach_descs: [
        "bring deine erste Krabbe heim",
        "bring 100 Krabben heim",
        "bring 1000 Krabben heim",
        "bring eine Goldkrabbe heim",
        "bring 10 Goldkrabben heim",
        "löse 5 Häutungsköder aus",
        "dreh 5 Gezeiten-Ereignisse",
        "gewinn eine Runde",
        "gewinn 10 Runden",
        "löse 5 Rätsel",
        "löse 25 Rätsel",
        "löse 50 Rätsel",
        "gewinn eine Runde ohne Überfall",
        "bring 25 Riesenkrabben heim",
        "dreh jedes Gezeiten-Ereignis einmal",
        "bring 50 Krabben in einer Runde heim",
        "gewinn eine Best-of-Five-Serie",
        "gewinn eine Online-Runde",
        "spiel die Tages-Challenge an 7 Tagen",
        "speicher ein Level im Editor",
        "spiel 100 Runden",
        "bring 5000 Krabben heim",
        "bring 50 Goldkrabben heim",
        "bring 100 Riesenkrabben heim",
        "bring 100 Krabben in einer Runde heim",
        "gewinn 50 Runden",
        "spiel die Tages-Challenge an 30 Tagen",
        "speicher 10 Level im Editor",
        "verlier 25 Krabben an die Möwen",
        "schaff jeden Tümpel",
        "schaff jedes Strandtag-Level",
        "gewinn 5 Best-of-Five-Serien",
    ],
    stats_footer: "heimgebracht {banked} · golden {golden} · Siege {wins}/{rounds} · Rätsel {puzzles}",
    daily_best: "Tages-Challenge-Rekord heute: {n}",
    crab_names: [
        "gewöhnlich",
        "Jungtier",
        "Riese",
        "in Häutung",
        "golden",
        "funkelnd",
    ],
    crab_notes: [
        "",
        "schnell",
        "langsam",
        "Köder!",
        "Jackpot",
        "Überraschung!",
    ],
    title_pick_language: "Wähle deine Sprache",
    title_new_version: "Neue Version verfügbar",
    prompt_new_version: "W/S: wählen | Enter: bestätigen | Esc: jetzt nicht",
    prompt_pick_language: "W/S: wählen | Enter: bestätigen",
    pick_language_later: "du kannst das später in den Einstellungen ändern",
    title_tide_pool: "Gezeitentümpel",
    title_beach_day: "Strandtag",
    title_turf_war: "Strandschlacht",
    title_replay: "WIEDERHOLUNG",
    title_online: "ONLINE (du bist {p})",
    title_vs_ai: "STRANDSCHLACHT gegen {n} KI - du bist {p}",
    title_editor: "Treibholz - Editor",
    title_playtest: "Treibholz - Probespiel",
    title_lobby: "Strand-Lobby",
    title_settings: "Einstellungen",
    title_match_setup: "Strandschlacht - Vorbereitung",
    title_replays: "Wiederholungen",
    prompt_replays: "W/S: wählen | Enter: ansehen | C: Code kopieren | V: einfügen | Esc: Menü",
    replays_empty: "Noch keine Runde gespeichert - spiel eine Strandschlacht",
    replays_heading: "BEHALTENE RUNDEN",
    replay_speed: "x{n}  (S: schneller)",
    hint_offer: "Steckst du fest? H gibt einen Tipp.",
    hint_showing: "Ein Schild der Lösung, blass. Nochmal H, wenn du es gesetzt hast.",
    title_stages: "Wähle ein Level",
    prompt_stages: "Pfeiltasten: wählen | Enter: spielen | Esc: Menü",
    stage_progress: "{a} von {b} geschafft",
    stage_key: "Schilder",
    stage_custom: "dein Treibholz",
    ach_progress: "{a} von {b} freigeschaltet",
    stage_cleared: "geschafft",
    stage_open: "Schilder: {n}",
    stage_free: "ohne Schilder",
    stage_locked: "gesperrt - schaff erst Level {n}",
    team_banner: "{mode}   TEAMS: {s}",
    the_gulls: "DIE MÖWEN!",
    tide_event: "EREIGNIS: {e}!",
    lure_started: "{p} hat eine Häutungskrabbe heimgebracht - KÖDER!",
    lure_banner: "KÖDER {s}s: Schilder egal -> {p}!",
    desync: "DESYNC bei Bild {f}!",
    waiting_peer: "warte auf Mitspieler...",
    waiting_for: "warte auf {p}...",
    saved_count: "Gerettet {a}/{b}",
    signposts_count: "Schilder: {a}/{b}",
    goal_bank: "Bring {a}/{b} heim{t}",
    goal_survive: "Verlier keine Krabbe!{t}",
    goal_golden: "Fang die Goldkrabbe{t}",
    prompt_setup: "WASD bewegen | Pfeile setzen | Leertaste entfernen | Enter start | N/P Level",
    prompt_setup_full: "Alle Schilder gesetzt - Leertaste entfernt eins | Enter start | N/P Level",
    prompt_setup_no_posts: "Keine Schilder hier - läuft von allein. Enter zum Starten | N/P Level",
    prompt_running: "Läuft... R für Neustart",
    prompt_won: "Alle Krabben in Sicherheit! Enter: nächstes Level | R: nochmal ansehen",
    prompt_lost: "Ein paar Krabben haben es nicht geschafft. Enter: nochmal versuchen",
    prompt_versus_short: "WASD bewegen | Pfeile setzen | Leertaste entfernen | Esc Pause",
    prompt_versus_local: "S1: WASD + Pfeile/Leertaste | S2: IJKL + Ziffernblock 8546/0 | Controller: oberste Plätze zuerst",
    prompt_setup_custom: "deine Tasten (Einstellungen) | Enter Start | N/P Level",
    prompt_versus_custom: "deine Tasten (Einstellungen) | Esc Pause",
    prompt_enter_menu: "Enter: Menü",
    prompt_esc_menu: "Esc: Menü",
    prompt_mute: "M: stumm",
    replay_draw: "unentschieden",
    pause_title: "PAUSE",
    pause_continue: "Weiter",
    pause_to_menu: "Zurück zum Menü",
    pause_quit: "Spiel beenden",
    pause_put_down: "Runde ablegen",
    round_put_down: "Runde abgelegt - im Menü fortsetzen",
    round_put_down_failed: "Ablegen fehlgeschlagen: {e}",
    round_copied: "Runde als Code kopiert ({n} Zeichen)",
    round_code_bad: "dieser Code ist keine laufende Runde",
    update_title: "Neue Version verfügbar: {v}",
    update_have: "Du hast {v}",
    update_no_notes: "(keine Versionshinweise)",
    update_question: "Willst du aktualisieren?",
    update_yes: "Ja, zeig mir die neue Version",
    update_no: "Nein, jetzt nicht",
    update_note: "du kannst diese Prüfung in den Einstellungen abschalten",
    update_opened: "die Versionsseite wurde an deinen Browser übergeben",
    update_open_failed: "kein Browser zum Öffnen: {url}",
    prompt_settings: "W/S: wählen | A/D: ändern | Esc: speichern und zurück",
    prompt_match_setup: "W/S: wählen | A/D: ändern | Enter: Match starten | Esc: zurück",
    prompt_match_name: "W/S: wählen | Tab: umbenennen | Enter: Match starten | Esc: zurück",
    player_label: "S{p}",
    events: [
        "Krabben-Wahnsinn",
        "Möwen-Wahnsinn",
        "Krabben-Monopol",
        "Möwen-Angriff",
        "Schneller!",
        "Langsamer!",
        "Frischer Sand",
        "Burgen-Tausch",
    ],
    event_blurbs: [
        "die Möwen werden weggespült, aus den Löchern strömen Krabben",
        "die Löcher spucken Möwen statt Krabben",
        "die Hälfte der freien Krabben läuft direkt zum Bankhalter",
        "neben jeder fremden Burg landet eine Möwe",
        "alle Krabben am Strand legen einen Zahn zu",
        "alle Krabben kriechen nur noch",
        "alle Schilder am Strand werden weggespült",
        "die Burgen tauschen die Besitzer - Vorsicht!",
    ],
    ann_lure: "LOCKRUF!",
    ann_lure_sub: "zehn Sekunden lang laufen alle freien Krabben zu {p}",
    ann_surge: "DIE MÖWEN!",
    ann_surge_sub: "der Schwarm kommt zum Rundenende herein",
    tide_is_in: "~ DIE FLUT KOMMT ~",
    wins: "{p} gewinnt!",
    dead_heat: "Unentschieden!",
    team_wins: "{t} gewinnen!",
    tag_you: " (du)",
    tag_ai: " (KI)",
    haul: "{n} Krabben haben es nach Hause geschafft",
    highlight_saved: "Highlight-Clip: {path}",
    all_safe: "ALLE KRABBEN IN SICHERHEIT!",
    last_level: "Das war das letzte. Enter: zurück zum Menü",
    campaign_done: "DER STRAND IST GERETTET!",
    set_group_controls: "STEUERUNG",
    set_group_sound: "TON",
    set_group_round: "DIE RUNDE",
    set_group_look: "DARSTELLUNG",
    set_group_danger: "VON VORN",
    set_group_game: "DAS SPIEL",
    set_seat_input: "S{n} spielt mit",
    val_input_auto: "was angeschlossen ist",
    val_input_keys: "nur Tastatur",
    val_input_pad: "Controller {n}",
    set_commit_keys: "Setz-Tasten S1",
    set_repeat_delay: "Cursor-Wartezeit",
    set_repeat_rate: "Cursor-Tempo",
    set_music: "Musik-Lautstärke",
    set_sfx: "Soundeffekte",
    set_speed: "Rätsel-Tempo",
    set_versus_mode: "Wertung im Kampf",
    set_language: "Sprache",
    set_rumble: "Controller-Vibration",
    set_deadzone: "Stick-Totzone",
    pad_help1: "Controller: Steuerkreuz/Stick bewegen, Tasten setzen",
    pad_help2: "L1 entfernen, R1 löschen, Start Pause/beitreten, B zurück",
    set_palette: "Spielerfarben",
    set_ui_scale: "UI-Größe",
    set_reduced_motion: "Weniger Bewegung",
    set_update_check: "Nach Updates suchen",
    set_replay_cap: "Runden behalten",
    set_key_bindings: "Tastenbelegung",
    set_reset_progress: "Fortschritt löschen",
    val_palette_classic: "klassisch",
    val_palette_safe: "für Farbenblinde",
    val_open: "Enter zum Öffnen",
    val_reset: "Enter zum Löschen",
    val_reset_confirm: "Enter bestätigt",
    val_reset_done: "alle Stufen wieder gesperrt",
    title_controls: "Tastenbelegung",
    prompt_controls: "W/S: wählen | Enter: neu belegen | Rücktaste: Standard | Esc: zurück",
    ctl_seat: "Platz",
    ctl_group_seat: "TASTEN FÜR WELCHEN PLATZ",
    ctl_group_move: "CURSOR BEWEGEN",
    ctl_group_place: "SCHILD SETZEN",
    ctl_group_posts: "AUFRÄUMEN",
    ctl_listening: "drück eine Taste...",
    ctl_reset_key: "Rücktaste",
    ctl_press_key: "drück eine Taste... (Esc bricht ab)",
    ctl_taken: "{k} macht schon „{a}“",
    ctl_reset: "Alles zurücksetzen",
    bind_actions: [
        "Cursor hoch",
        "Cursor runter",
        "Cursor links",
        "Cursor rechts",
        "Schild nach oben",
        "Schild nach unten",
        "Schild nach links",
        "Schild nach rechts",
        "Schild entfernen",
        "Alle Schilder weg",
    ],
    match_pad_joined: "Controller dabei: {list}",
    match_pad_hint: "Start auf dem Controller: mitspielen",
    val_arrows: "Pfeiltasten",
    val_ijkl: "IJKL (einhändig)",
    val_on: "an",
    val_off: "aus",
    team_modes: [
        "jeder für sich",
        "Duos (2gg2, ab 6 2gg2gg2)",
        "Trios (3gg3, 6 Plätze)",
    ],
    match_heading: "DAS MATCH",
    match_players: "Spieler",
    match_ai: "KI-Gegner",
    human_one: "1 Mensch",
    human_many: "{n} Menschen",
    match_ai_level: "KI-Stärke",
    bot_levels: ["leicht", "normal", "wild"],
    match_map: "Strand",
    match_gulls: "Möwen",
    match_round: "Rundenlänge",
    match_mode: "Modus",
    match_name: "Name",
    match_name_empty: "- (Tab zum Benennen)",
    match_name_typing: "(Enter zum Behalten)",
    mode_names: ["Einzelrunde", "Best of 5"],
    tour_round: "Runde {n} von 5",
    tour_champion: "{p} gewinnt die Serie!",
    tour_next: "Enter: nächste Runde",
    log_raid: "{p} geplündert! -{n}",
    log_golden: "{p} bringt Gold heim! +{n}",
    log_lure: "{p} lockt die Krabben!",
    log_tier: "{p}s Burg wächst",
    log_gull: "eine Möwe kommt",
    log_surge: "die Welle! Krabben überall",
    map_names: [
        "Klassische Arena (12x9)",
        "Generiert - klein (9x7)",
        "Generiert - normal (12x9)",
        "Generiert - groß (16x11)",
        "Generiert - riesig (20x13)",
        "Offenes Meer, ohne Ränder (16x11)",
    ],
    map_custom: "{n} (deins)",
    map_custom_local: "{n} (deins, nur lokal)",
    map_none_seats: "keiner deiner Strände hat {n} Plätze",
    gull_names: ["ruhig", "normal", "wild"],
    round_names: ["2 Minuten", "3 Minuten", "5 Minuten"],
    lobby_hosting: "Spiel eröffnet auf Port {p} - warte auf Rivalen",
    lobby_hosting_noport: "Spiel eröffnet - warte auf Rivalen",
    lobby_rivals_one: "1 Rivale an Bord - Enter zum Starten (bis zu 5)",
    lobby_rivals_many: "{n} Rivalen an Bord - Enter zum Starten (bis zu 5)",
    lobby_ai_seats: " + {n} KI",
    lobby_watchers: " ({n} schauen zu)",
    lobby_watch_armed: "Zuschauermodus: eine Zahl (oder J) schaut zu | W: doch mitspielen | Esc: Menü",
    lobby_watching: "Zuschauer - es geht los, wenn der Gastgeber startet",
    title_watching: "ZUSCHAUER",
    lobby_aboard: "an Bord - warte auf den Gastgeber",
    lobby_listening: "suche nach Stränden...",
    lobby_none_yet: "Noch kein Strand gefunden... | H: eröffnen | J: per Adresse | W: zuschauen | Esc: Menü",
    lobby_in_progress: "(läuft)",
    lobby_full_tag: "(voll)",
    lobby_chat_hint: "T: etwas sagen",
    lobby_ask_player_name: "Dein Name: ",
    lobby_ask_game_name: "Nenne deinen Strand: ",
    lobby_needs_name: "Erst einen Namen eingeben",
    lobby_ask_address: "Adresse des Strands (ip:port): ",
    lobby_bad_address: "Keine Adresse - versuche 192.168.1.5:47777",
    lobby_hosting_at: "dieser Strand liegt an {a}",
    lobby_calling: "rufe {a} an...",
    lobby_no_answer: "keine Antwort von {a} - Adresse prüfen, oder sie eröffnen lassen",
    lobby_card_beaches: "STRÄNDE AUF SENDUNG",
    lobby_card_chat: "TREFFPUNKT",
    lobby_joined: "{p} ist da",
    lobby_left: "{p} ist weg",
    lobby_card_players: "AN DIESEM STRAND",
    lobby_card_terms: "DIE RUNDE",
    online_seat_abandoned: "{p} ist raus - eine KI übernimmt die Burg",
    online_host_gone: "der Gastgeber ist weg - diese Runde konnte nicht weitergehen",
    lobby_queued_next: "Runde läuft - du bist als Nächstes dran",
    lobby_queued_behind: "Runde läuft - {n} vor dir",
    lobby_beach_full: "Dieser Strand ist voll",
    lobby_join_list: "{n} Strände auf Sendung | Pfeile: wählen | Enter: mitspielen | H: eröffnen | J: per Adresse | W: zuschauen | Esc: Menü",
    lobby_join_list_one: "1 Strand auf Sendung | Enter: mitspielen | H: eröffnen | J: per Adresse | W: zuschauen | Esc: Menü",
    lobby_broadcasting: "Auf Sendung - Pfeile: die Runde | T: reden | Enter: starten (bis zu 5 Rivalen) | Esc: Menü",
    lobby_aboard_prompt: "An Bord - das Match startet, wenn der Gastgeber loslegt | Esc: Menü",
    lobby_could_not_host: "Eröffnen fehlgeschlagen: {e}",
    lobby_could_not_join: "Beitreten fehlgeschlagen: {e}",
    lobby_version_clash: "dieser Strand läuft mit einer anderen Spielversion (dort {t}, hier {o})",
    ed_prompt: "WASD bewegen | Pfeile Wände | Tab/Buchstabe wählen | Leertaste malen | +/- Schilder | F5 Größe | K Schwarm O Ränder | F1 Name F6 Art | V prüfen | F2 speichern F3/F4 Code | Enter Test",
    ed_brushes: [
        "Sand (löscht)",
        "Fels",
        "Burg",
        "Loch",
        "Stamm",
        "Tang",
        "Tümpel",
        "Krabbe",
        "Möwe",
    ],
    ed_under: "darunter: {t}",
    ed_playtest_prompt: "Pfeile setzen | Leertaste entfernen | Esc beendet die Probe",
    ed_solvable: "lösbar: {placements}",
    ed_solvable_free: "lösbar ganz ohne Schilder",
    ed_not_solvable: "NICHT lösbar mit {n} Schildern",
    ed_solver_gave_up: "aufgegeben - zu groß zum Prüfen. Versuch weniger Schilder.",
    ed_validating: "prüfe...",
    ed_already_validating: "prüfe schon...",
    ed_resized: "neuer Strand {w}x{h}",
    ed_default_name: "Mein Strand",
    ed_name_row: "Name: {n}   (F1 benennt um)",
    ed_naming: "gib ihm einen Namen, dann Enter",
    ed_saved_to: "gespeichert in {path}",
    ed_save_failed: "Speichern fehlgeschlagen: {e}",
    code_kind_beach: "eine laufende Runde",
    code_kind_level: "ein Level",
    code_kind_round: "eine Runde",
    code_wrong_kind: "dieser Code ist {got}, nicht {want}",
    code_copied: "Code kopiert - {n} Zeichen in der Zwischenablage",
    code_copy_failed: "Zwischenablage nicht erreichbar: {e}",
    code_none_pasted: "kein Teilen-Code in der Zwischenablage",
    code_level_checking: "Level aus einem Code geladen - wird geprüft...",
    code_level_bad: "dieser Code ist kein Level, das diese Version lesen kann: {e}",
    code_round_saved: "Runde aus einem Code gespeichert",
    code_round_bad: "dieser Code ist keine Runde, die diese Version lesen kann: {e}",
    ed_posts: "Schilder: {n} | {msg}",
    ed_fresh_sand: "frischer Sand",
    ed_back: "zurück auf den Sand",
    ed_wrap_on: "offenes Meer: die Ränder hängen zusammen",
    ed_wrap_off: "die Ränder sind wieder zu",
    ed_gulls_every: "Möwenschwarm: alle {period} Takte",
    ed_gulls_off: "Möwenschwarm: aus",
    ed_seats: "Plätze: {n} | {msg}",
    ed_puzzle_no_crabs: "keine Krabben zu lotsen: keine Liste zeigt es",
    ed_kind_row: "F6 - du baust",
    ed_kind_puzzle: "Rätsel",
    ed_kind_arena: "Schlachtstrand",
    ed_now_puzzle: "jetzt ein Rätsel: es kommt in den Gezeitentümpel",
    ed_now_arena: "jetzt ein Schlachtstrand: er kommt in die Kartenauswahl",
    ed_arena_ok: "ein Strand für {n}, mit {h} Löchern als Nachschub",
    ed_arena_needs_seats: "Burgen für {n} - eine pro Spieler muss es sein",
    ed_arena_no_crabs: "keine Krabben, keine Löcher: nichts zu holen",
};