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
//! Spanish strings (informal tú, for kids as much as anyone).

use super::Tr;

pub static ES: Tr = Tr {
    tagline: "la marea está baja - lleva los cangrejos a casa",
    menu_names: [
        "Charca de marea",
        "Batalla de playa",
        "Madera flotante",
        "Repetición",
        "Sala de playa",
        "Ajustes",
        "Gran Desafío",
        "Trofeos",
        "Desafío diario",
        "Continuar",
    ],
    menu_blurbs: [
        "campaña de retos en solitario",
        "partida local, hasta 6 plazas",
        "editor de niveles",
        "mira las rondas que guardaste",
        "partida en red local",
        "controles, sonido, velocidad",
        "retos de puntuación",
        "tus estadísticas y trofeos",
        "la playa de hoy, la misma para todos",
        "retoma la ronda que dejaste",
    ],
    menu_daily_blurb: "{d}/{m} - la misma playa para todos",
    menu_prompt: "W/S: elegir | Intro: jugar | V: pegar una ronda | M: música | Esc: salir",
    title_achievements: "Trofeos",
    ach_names: [
        "Primer cangrejo en casa",
        "Capataz de playa",
        "Amo de las mareas",
        "Toque de oro",
        "Tesoro amasado",
        "Encantador de cangrejos",
        "Cazador de tormentas",
        "Rey de los castillos",
        "Dinastía",
        "Remero de charcas",
        "Sabio de las charcas",
        "Profesor de charcas",
        "Castillo seco",
        "Trabajo pesado",
        "Ruleta completa",
        "Buena marea",
        "Campeón de la playa",
        "Buen vecino",
        "Cliente habitual",
        "Arquitecto de madera",
        "Viejo lobo de mar",
        "Guardián de la orilla",
        "Patrón oro",
        "Transporte pesado",
        "Marea del siglo",
        "Gana la casa",
        "Fiel a la cita",
        "Taller de madera",
        "Comida para gaviotas",
        "La playa está a salvo",
        "De sol a sol",
        "Campeón del verano",
    ],
    ach_descs: [
        "lleva a casa tu primer cangrejo",
        "lleva a casa 100 cangrejos",
        "lleva a casa 1000 cangrejos",
        "lleva a casa un cangrejo dorado",
        "lleva a casa 10 cangrejos dorados",
        "lanza 5 señuelos de muda",
        "gira 5 eventos de marea",
        "gana una ronda de batalla",
        "gana 10 rondas de batalla",
        "resuelve 5 retos",
        "resuelve 25 retos",
        "resuelve 50 retos",
        "gana una ronda sin que te saqueen",
        "lleva a casa 25 cangrejos gigantes",
        "gira todos los eventos de marea",
        "lleva a casa 50 cangrejos en una ronda",
        "gana una serie al mejor de cinco",
        "gana una ronda en línea",
        "juega el desafío diario 7 días",
        "guarda un nivel en el editor",
        "juega 100 rondas de batalla",
        "lleva a casa 5000 cangrejos",
        "lleva a casa 50 cangrejos dorados",
        "lleva a casa 100 cangrejos gigantes",
        "lleva a casa 100 cangrejos en una ronda",
        "gana 50 rondas de batalla",
        "juega el desafío diario 30 días",
        "guarda 10 niveles en el editor",
        "pierde 25 cangrejos a manos de las gaviotas",
        "supera todas las charcas de marea",
        "supera todos los retos de playa",
        "gana 5 series al mejor de cinco",
    ],
    stats_footer: "en casa {banked} · dorados {golden} · victorias {wins}/{rounds} · retos {puzzles}",
    daily_best: "Récord de hoy en el desafío: {n}",
    crab_names: [
        "común",
        "juvenil",
        "gigante",
        "en muda",
        "dorado",
        "reluciente",
    ],
    crab_notes: ["", "rápido", "lento", "¡señuelo!", "premio", "¡sorpresa!"],
    title_pick_language: "Elige tu idioma",
    title_new_version: "Nueva versión disponible",
    prompt_new_version: "W/S: elegir | Intro: confirmar | Esc: ahora no",
    prompt_pick_language: "W/S: elegir | Intro: confirmar",
    pick_language_later: "puedes cambiarlo más tarde en Ajustes",
    title_tide_pool: "Charca de marea",
    title_beach_day: "Gran Desafío",
    title_turf_war: "Batalla de playa",
    title_replay: "REPETICIÓN",
    title_online: "EN LÍNEA (eres {p})",
    title_vs_ai: "BATALLA contra {n} IA - eres {p}",
    title_editor: "Madera flotante - editor",
    title_playtest: "Madera flotante - prueba",
    title_lobby: "Sala de playa",
    title_settings: "Ajustes",
    title_match_setup: "Batalla de playa - preparación",
    title_replays: "Repeticiones",
    prompt_replays: "W/S: elegir | Intro: ver | C: copiar código | V: pegar código | Esc: menú",
    replays_empty: "Aún no hay rondas guardadas - termina una batalla y caerá aquí",
    replays_heading: "RONDAS GUARDADAS",
    replay_speed: "x{n}  (S: más rápido)",
    hint_offer: "¿Atascado? Pulsa H para una pista.",
    hint_showing: "Una señal de la solución, en pálido. H otra vez cuando la pongas.",
    title_stages: "Elige un nivel",
    prompt_stages: "flechas: elegir | Intro: jugar | Esc: menú",
    stage_progress: "{a} de {b} superados",
    stage_key: "señales",
    stage_custom: "tu madera flotante",
    ach_progress: "{a} de {b} desbloqueados",
    stage_cleared: "superado",
    stage_open: "señales: {n}",
    stage_free: "sin señales",
    stage_locked: "cerrado - supera antes el nivel {n}",
    team_banner: "{mode}   EQUIPOS: {s}",
    the_gulls: "¡LAS GAVIOTAS!",
    tide_event: "¡EVENTO DE MAREA: {e}!",
    lure_started: "{p} llevó a casa un cangrejo en muda - ¡SEÑUELO!",
    lure_banner: "SEÑUELO {s}s: las señales no cuentan -> ¡{p}!",
    desync: "¡DESINCRONIZADO en el fotograma {f}!",
    waiting_peer: "esperando al otro jugador...",
    waiting_for: "esperando a {p}...",
    saved_count: "A salvo {a}/{b}",
    signposts_count: "Señales: {a}/{b}",
    goal_bank: "Lleva {a}/{b}{t}",
    goal_survive: "¡No pierdas ni un cangrejo!{t}",
    goal_golden: "Atrapa el cangrejo dorado{t}",
    prompt_setup: "WASD mover | flechas poner | Espacio quitar | Intro empezar | N/P nivel",
    prompt_setup_full: "Todas las señales puestas - Espacio quita una | Intro empezar | N/P nivel",
    prompt_setup_no_posts: "Aquí no hacen falta señales - se resuelve solo. Intro para lanzar | N/P nivel",
    prompt_running: "En marcha... R para reiniciar",
    prompt_won: "¡Cangrejos a salvo! Intro: siguiente nivel | R: verlo otra vez",
    prompt_lost: "Algunos cangrejos no llegaron. Intro: reintentar",
    prompt_versus_short: "WASD mover | flechas poner | Espacio quitar | Esc pausa",
    prompt_versus_local: "J1: WASD + flechas/Espacio | J2: IJKL + tec. num. 8546/0 | mandos: últimas plazas primero",
    prompt_setup_custom: "tus teclas (Ajustes) | Intro empezar | N/P nivel",
    prompt_versus_custom: "tus teclas (Ajustes) | Esc pausa",
    prompt_enter_menu: "Intro: menú",
    prompt_esc_menu: "Esc: menú",
    prompt_mute: "M: silencio",
    replay_draw: "empate",
    pause_title: "PAUSA",
    pause_continue: "Seguir",
    pause_to_menu: "Volver al menú",
    pause_quit: "Salir del juego",
    pause_put_down: "Dejar la ronda",
    round_put_down: "ronda dejada - retómala desde el menú",
    round_put_down_failed: "no se pudo dejar la ronda: {e}",
    round_copied: "ronda copiada como código ({n} caracteres)",
    round_code_bad: "ese código no es una ronda en curso",
    update_title: "Nueva versión disponible: {v}",
    update_have: "Tienes la {v}",
    update_no_notes: "(sin notas de la versión)",
    update_question: "¿Quieres actualizar?",
    update_yes: "Sí, enséñame la nueva versión",
    update_no: "No, ahora no",
    update_note: "puedes desactivar esta comprobación en Ajustes",
    update_opened: "la página de la versión se ha pasado a tu navegador",
    update_open_failed: "no hay navegador para abrirla: {url}",
    prompt_settings: "W/S: elegir | A/D: ajustar | Esc: guardar y volver",
    prompt_match_setup: "W/S: elegir | A/D: ajustar | Intro: empezar | Esc: volver",
    prompt_match_name: "W/S: elegir | Tab: renombrar | Intro: empezar | Esc: volver",
    player_label: "J{p}",
    events: [
        "Locura de cangrejos",
        "Locura de gaviotas",
        "Monopolio de cangrejos",
        "Ataque de gaviotas",
        "Acelerón",
        "Ralentí",
        "Arena nueva",
        "Cambio de castillos",
    ],
    event_blurbs: [
        "las gaviotas se van y los agujeros escupen cangrejos",
        "los agujeros escupen gaviotas en vez de cangrejos",
        "la mitad de los cangrejos sueltos corre al banquero",
        "una gaviota aterriza junto a cada castillo rival",
        "todos los cangrejos de la playa aprietan el paso",
        "todos los cangrejos se arrastran despacio",
        "todas las señales de la playa se las lleva el agua",
        "los castillos cambian de dueño - ojo con cuál es el tuyo",
    ],
    ann_lure: "¡SEÑUELO!",
    ann_lure_sub: "durante diez segundos los cangrejos sueltos corren hacia {p}",
    ann_surge: "¡LAS GAVIOTAS!",
    ann_surge_sub: "la bandada llega para el final de la ronda",
    tide_is_in: "~ LA MAREA HA SUBIDO ~",
    wins: "¡{p} gana!",
    dead_heat: "¡Empate absoluto!",
    team_wins: "¡{t} ganan!",
    tag_you: " (tú)",
    tag_ai: " (IA)",
    haul: "{n} cangrejos llegaron a casa esta ronda",
    highlight_saved: "resumen animado: {path}",
    all_safe: "¡TODOS LOS CANGREJOS A SALVO!",
    last_level: "Ese era el último. Intro: volver al menú",
    campaign_done: "¡LA PLAYA ESTÁ A SALVO!",
    set_group_controls: "CONTROLES",
    set_group_sound: "SONIDO",
    set_group_round: "LA RONDA",
    set_group_look: "PRESENTACIÓN",
    set_group_danger: "EMPEZAR DE CERO",
    set_group_game: "EL JUEGO",
    set_seat_input: "J{n} juega con",
    val_input_auto: "lo que esté conectado",
    val_input_keys: "solo teclado",
    val_input_pad: "mando {n}",
    set_commit_keys: "Teclas de señal J1",
    set_repeat_delay: "Retardo del cursor",
    set_repeat_rate: "Velocidad del cursor",
    set_music: "Volumen de música",
    set_sfx: "Efectos de sonido",
    set_speed: "Velocidad del reto",
    set_versus_mode: "Puntos en batalla",
    set_language: "Idioma",
    set_rumble: "Vibración del mando",
    set_deadzone: "Zona muerta del stick",
    pad_help1: "Mando: cruceta/stick mueven, botones ponen",
    pad_help2: "L1 quitar, R1 limpiar, Start pausa/entrar, B volver",
    set_palette: "Colores de jugador",
    set_ui_scale: "Tamaño de interfaz",
    set_reduced_motion: "Menos movimiento",
    set_update_check: "Buscar actualizaciones",
    set_replay_cap: "Rondas guardadas",
    set_key_bindings: "Teclas",
    set_reset_progress: "Borrar el progreso",
    val_palette_classic: "clásicos",
    val_palette_safe: "para daltónicos",
    val_open: "Intro para abrir",
    val_reset: "Intro para borrar",
    val_reset_confirm: "Intro otra vez para confirmar",
    val_reset_done: "progreso borrado",
    title_controls: "Teclas",
    prompt_controls: "W/S: elegir | Intro: cambiar | Retroceso: por defecto | Esc: volver",
    ctl_seat: "Plaza",
    ctl_group_seat: "TECLAS DE QUÉ JUGADOR",
    ctl_group_move: "MOVER EL CURSOR",
    ctl_group_place: "PONER UNA SEÑAL",
    ctl_group_posts: "RECOGER",
    ctl_listening: "pulsa una tecla...",
    ctl_reset_key: "Retroceso",
    ctl_press_key: "pulsa una tecla... (Esc cancela)",
    ctl_taken: "{k} ya hace «{a}»",
    ctl_reset: "Todo por defecto",
    bind_actions: [
        "Cursor arriba",
        "Cursor abajo",
        "Cursor izquierda",
        "Cursor derecha",
        "Poner hacia arriba",
        "Poner hacia abajo",
        "Poner a la izquierda",
        "Poner a la derecha",
        "Quitar una señal",
        "Quitar todas las señales",
    ],
    match_pad_joined: "Mandos en juego: {list}",
    match_pad_hint: "Start en un mando ocupa la siguiente plaza",
    val_arrows: "Flechas",
    val_ijkl: "IJKL (una mano)",
    val_on: "",
    val_off: "no",
    team_modes: [
        "cada uno a lo suyo",
        "parejas (2c2, 2c2c2 a 6)",
        "tríos (3c3, 6 plazas)",
    ],
    match_heading: "LA PARTIDA",
    match_players: "Jugadores",
    match_ai: "Rivales IA",
    human_one: "1 humano",
    human_many: "{n} humanos",
    match_ai_level: "Nivel de la IA",
    bot_levels: ["fácil", "normal", "feroz"],
    match_map: "Playa",
    match_gulls: "Gaviotas",
    match_round: "Duración",
    match_mode: "Modo",
    match_name: "Nombre",
    match_name_empty: "- (Tab para nombrar)",
    match_name_typing: "(Intro para guardar)",
    mode_names: ["ronda única", "al mejor de 5"],
    tour_round: "Ronda {n} de 5",
    tour_champion: "¡{p} se lleva la serie!",
    tour_next: "Intro: siguiente ronda",
    log_raid: "¡{p} saqueado! -{n}",
    log_golden: "¡{p} guarda oro! +{n}",
    log_lure: "¡{p} lanza un señuelo!",
    log_tier: "El castillo de {p} crece",
    log_gull: "llega una gaviota",
    log_surge: "¡la ola! los cangrejos inundan la playa",
    map_names: [
        "Arena clásica (12x9)",
        "Generada - pequeña (9x7)",
        "Generada - clásica (12x9)",
        "Generada - grande (16x11)",
        "Generada - XL (20x13)",
        "Mar abierto, sin bordes (16x11)",
    ],
    map_custom: "{n} (tuya)",
    map_custom_local: "{n} (tuya, solo local)",
    map_none_seats: "ninguna playa tuya tiene {n} plazas",
    gull_names: ["tranquilas", "normales", "furiosas"],
    round_names: ["2 minutos", "3 minutos", "5 minutos"],
    lobby_hosting: "abierta en el puerto {p} - esperando a un rival",
    lobby_hosting_noport: "abierta - esperando a un rival",
    lobby_rivals_one: "1 rival a bordo - Intro para empezar (hasta 5)",
    lobby_rivals_many: "{n} rivales a bordo - Intro para empezar (hasta 5)",
    lobby_ai_seats: " + {n} IA",
    lobby_watchers: " ({n} mirando)",
    lobby_watch_armed: "modo espectador: un número (o J) mira | W: jugar | Esc: menú",
    lobby_watching: "mirando - la partida empieza cuando el anfitrión lance",
    title_watching: "MIRANDO",
    lobby_aboard: "a bordo - esperando al anfitrión",
    lobby_listening: "buscando playas...",
    lobby_none_yet: "Ninguna playa aún... | H: abrir | J: por dirección | W: mirar | Esc: menú",
    lobby_in_progress: "(jugando)",
    lobby_full_tag: "(llena)",
    lobby_chat_hint: "T: decir algo",
    lobby_ask_player_name: "Tu nombre: ",
    lobby_ask_game_name: "Nombra tu playa: ",
    lobby_needs_name: "Escribe un nombre primero",
    lobby_ask_address: "Dirección de la playa (ip:puerto): ",
    lobby_bad_address: "No es una dirección - prueba 192.168.1.5:47777",
    lobby_hosting_at: "esta playa está en {a}",
    lobby_calling: "llamando a {a}...",
    lobby_no_answer: "{a} no responde - revisa la dirección, o pídeles que abran",
    lobby_card_beaches: "PLAYAS EN EL AIRE",
    lobby_card_chat: "SALA",
    lobby_joined: "{p} llega",
    lobby_left: "{p} se va",
    lobby_card_players: "EN ESTA PLAYA",
    lobby_card_terms: "LA RONDA",
    online_seat_abandoned: "{p} se ha ido - una IA se queda el castillo",
    online_host_gone: "el anfitrión se fue - esa ronda no pudo seguir",
    lobby_queued_next: "Ronda en curso - eres el siguiente",
    lobby_queued_behind: "Ronda en curso - {n} por delante de ti",
    lobby_beach_full: "Esa playa está llena",
    lobby_join_list: "{n} playas en el aire | flechas: elegir | Intro: entrar | H: abrir | J: por dirección | W: mirar | Esc: menú",
    lobby_join_list_one: "1 playa en el aire | Intro: entrar | H: abrir | J: por dirección | W: mirar | Esc: menú",
    lobby_broadcasting: "En el aire - flechas: la ronda | T: hablar | Intro: empezar (hasta 5 rivales) | Esc: menú",
    lobby_aboard_prompt: "A bordo - la partida empieza cuando el anfitrión lance | Esc: menú",
    lobby_could_not_host: "no se pudo abrir: {e}",
    lobby_could_not_join: "no se pudo entrar: {e}",
    lobby_version_clash: "esa playa usa otra versión del juego (la suya {t}, la tuya {o})",
    ed_prompt: "WASD mover | flechas muros | Tab/letra elegir | Espacio pintar | +/- señales | F5 tamaño | K bandada O bordes | F1 nombre F6 tipo | V revisar | F2 guardar F3/F4 código | Intro probar",
    ed_brushes: [
        "Arena (borra)",
        "Roca",
        "Castillo",
        "Agujero",
        "Tronco",
        "Algas",
        "Charca",
        "Cangrejo",
        "Gaviota",
    ],
    ed_under: "debajo: {t}",
    ed_playtest_prompt: "flechas poner | Espacio quitar | Esc fin de la prueba",
    ed_solvable: "tiene solución: {placements}",
    ed_solvable_free: "tiene solución sin ninguna señal",
    ed_not_solvable: "SIN solución con {n} señales",
    ed_solver_gave_up: "abandono - demasiado grande. Prueba con menos señales.",
    ed_validating: "revisando...",
    ed_already_validating: "ya se está revisando...",
    ed_resized: "playa nueva de {w}x{h}",
    ed_default_name: "Mi playa",
    ed_name_row: "nombre: {n}   (F1 renombra)",
    ed_naming: "ponle nombre y pulsa Intro",
    ed_saved_to: "guardado en {path}",
    ed_save_failed: "no se pudo guardar: {e}",
    code_kind_beach: "una ronda en curso",
    code_kind_level: "un nivel",
    code_kind_round: "una ronda",
    code_wrong_kind: "ese código es {got}, no {want}",
    code_copied: "código copiado - {n} caracteres en el portapapeles",
    code_copy_failed: "no se pudo usar el portapapeles: {e}",
    code_none_pasted: "no hay ningún código en el portapapeles",
    code_level_checking: "nivel cargado desde un código - revisándolo...",
    code_level_bad: "ese código no es un nivel que esta versión sepa leer: {e}",
    code_round_saved: "ronda guardada desde un código",
    code_round_bad: "ese código no es una ronda que esta versión sepa leer: {e}",
    ed_posts: "señales: {n} | {msg}",
    ed_fresh_sand: "arena recién puesta",
    ed_back: "de vuelta a la arena",
    ed_wrap_on: "mar abierto: los bordes se unen",
    ed_wrap_off: "los bordes vuelven a ser muros",
    ed_gulls_every: "bandada: cada {period} pulsos",
    ed_gulls_off: "bandada: ninguna",
    ed_seats: "plazas: {n} | {msg}",
    ed_puzzle_no_crabs: "sin cangrejos que guiar: ninguna lista lo mostrará",
    ed_kind_row: "F6 - estás creando",
    ed_kind_puzzle: "un reto",
    ed_kind_arena: "una playa de batalla",
    ed_now_puzzle: "ahora es un reto: entra en la Charca de marea",
    ed_now_arena: "ahora es una playa de batalla: entra en la lista de mapas",
    ed_arena_ok: "una playa para {n}, con {h} agujeros que la alimentan",
    ed_arena_needs_seats: "castillos para {n} - hace falta uno por jugador",
    ed_arena_no_crabs: "ni cangrejos ni agujeros: nada que disputarse",
};