@jjlmoya/utils-nautical 1.16.0 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/package.json +4 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/es.ts +16 -16
  5. package/src/category/i18n/fr.ts +16 -16
  6. package/src/category/i18n/id.ts +1 -1
  7. package/src/category/i18n/it.ts +1 -1
  8. package/src/category/i18n/nl.ts +1 -1
  9. package/src/category/i18n/pl.ts +1 -1
  10. package/src/category/i18n/pt.ts +1 -1
  11. package/src/category/i18n/ru.ts +3 -3
  12. package/src/category/i18n/sv.ts +1 -1
  13. package/src/category/i18n/tr.ts +1 -1
  14. package/src/data.ts +0 -6
  15. package/src/layouts/PreviewLayout.astro +1 -0
  16. package/src/tests/diacritics_density.test.ts +118 -0
  17. package/src/tests/inverted_punctuation.test.ts +84 -0
  18. package/src/tests/no_en_dash.test.ts +70 -0
  19. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  20. package/src/tests/script_density.test.ts +94 -0
  21. package/src/tool/endurance/component.astro +10 -10
  22. package/src/tool/endurance/i18n/es.ts +54 -54
  23. package/src/tool/endurance/i18n/fr.ts +70 -70
  24. package/src/tool/endurance/i18n/ru.ts +9 -9
  25. package/src/tool/nauticalConverter/component.astro +15 -15
  26. package/src/tool/nauticalConverter/i18n/es.ts +46 -46
  27. package/src/tool/nauticalConverter/i18n/fr.ts +53 -53
  28. package/src/tool/nauticalConverter/i18n/pl.ts +3 -3
  29. package/src/tool/nauticalConverter/i18n/ru.ts +8 -8
  30. package/src/tool/nauticalConverter/i18n/zh.ts +3 -3
  31. package/src/tool/sailArea/component.astro +13 -13
  32. package/src/tool/sailArea/i18n/es.ts +53 -53
  33. package/src/tool/sailArea/i18n/fr.ts +70 -70
  34. package/src/tool/sailArea/i18n/ru.ts +8 -8
  35. package/src/tool/sailArea/i18n/zh.ts +5 -5
  36. package/src/tool/speedConverter/i18n/es.ts +58 -58
  37. package/src/tool/speedConverter/i18n/fr.ts +75 -75
  38. package/src/tool/speedConverter/i18n/ru.ts +6 -6
  39. package/src/tool/speedConverter/i18n/zh.ts +5 -5
  40. package/src/tool/tideCalculator/component.astro +5 -5
  41. package/src/tool/tideCalculator/i18n/es.ts +39 -39
  42. package/src/tool/tideCalculator/i18n/fr.ts +43 -43
  43. package/src/tool/tideCalculator/i18n/ru.ts +6 -6
  44. package/src/tool/tideCalculator/i18n/zh.ts +1 -1
  45. package/src/tool/tideCalculator/tide-height-calculator.css +136 -5
  46. package/src/tool/underKeel/component.astro +7 -7
  47. package/src/tool/underKeel/i18n/es.ts +39 -39
  48. package/src/tool/underKeel/i18n/fr.ts +45 -45
  49. package/src/tool/underKeel/i18n/ru.ts +5 -5
@@ -1,4 +1,4 @@
1
- .tide-calculator {
1
+ .tide-calculator {
2
2
  --n-bg: #fff;
3
3
  --n-bg-muted: #f1f5f9;
4
4
  --n-text: #0f172a;
@@ -17,10 +17,16 @@
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  gap: 1.5rem;
20
+ width: 100%;
20
21
  max-width: 1000px;
21
22
  margin: 0 auto;
22
23
  }
23
24
 
25
+ .tide-calculator,
26
+ .tide-calculator * {
27
+ box-sizing: border-box;
28
+ }
29
+
24
30
  .theme-dark .tide-calculator {
25
31
  --n-bg: #0f172a;
26
32
  --n-bg-muted: #1e293b;
@@ -46,6 +52,7 @@
46
52
  grid-template-columns: 320px 1fr;
47
53
  overflow: hidden;
48
54
  box-shadow: 0 20px 40px var(--n-shadow);
55
+ min-width: 0;
49
56
  }
50
57
 
51
58
  @media (max-width: 850px) {
@@ -61,12 +68,14 @@
61
68
  display: flex;
62
69
  flex-direction: column;
63
70
  gap: 2rem;
71
+ min-width: 0;
64
72
  }
65
73
 
66
74
  .tc-sidebar-header {
67
75
  display: flex;
68
76
  justify-content: space-between;
69
77
  align-items: center;
78
+ gap: 1rem;
70
79
  }
71
80
 
72
81
  .tc-sidebar-header h3 {
@@ -76,6 +85,7 @@
76
85
  text-transform: uppercase;
77
86
  letter-spacing: 0.05em;
78
87
  opacity: 0.9;
88
+ overflow-wrap: anywhere;
79
89
  }
80
90
 
81
91
  #invert-btn {
@@ -129,16 +139,20 @@
129
139
  color: var(--n-primary-on);
130
140
  font-size: 1rem;
131
141
  outline: none;
142
+ min-width: 0;
143
+ width: 100%;
132
144
  }
133
145
 
134
146
  .tc-unit-input {
135
147
  position: relative;
136
148
  display: flex;
137
149
  align-items: center;
150
+ flex: 1 1 0;
151
+ min-width: 0;
138
152
  }
139
153
 
140
154
  .tc-unit-input input {
141
- width: 80px;
155
+ width: 100%;
142
156
  padding-right: 25px;
143
157
  }
144
158
 
@@ -169,17 +183,20 @@
169
183
  flex-direction: column;
170
184
  gap: 2rem;
171
185
  background: var(--n-bg-muted);
186
+ min-width: 0;
172
187
  }
173
188
 
174
189
  .tc-top-row {
175
190
  display: flex;
176
191
  justify-content: space-between;
177
192
  align-items: flex-start;
193
+ gap: 1.5rem;
178
194
  }
179
195
 
180
196
  .tc-result-display {
181
197
  display: flex;
182
198
  flex-direction: column;
199
+ min-width: 0;
183
200
  }
184
201
 
185
202
  .tc-result-display .label {
@@ -234,6 +251,8 @@
234
251
  .tc-summary-info {
235
252
  display: flex;
236
253
  gap: 1.5rem;
254
+ flex-wrap: wrap;
255
+ justify-content: flex-end;
237
256
  }
238
257
 
239
258
  .tc-stat {
@@ -262,6 +281,7 @@
262
281
  padding: 1.5rem;
263
282
  height: 250px;
264
283
  position: relative;
284
+ min-width: 0;
265
285
  }
266
286
 
267
287
  .tc-table-card {
@@ -279,6 +299,7 @@
279
299
 
280
300
  .tc-table-wrapper {
281
301
  overflow-x: auto;
302
+ -webkit-overflow-scrolling: touch;
282
303
  }
283
304
 
284
305
  .tide-calculator table {
@@ -303,8 +324,118 @@
303
324
  }
304
325
 
305
326
  @media (max-width: 640px) {
327
+ .tide-calculator {
328
+ gap: 1rem;
329
+ }
330
+
331
+ .tc-main-card {
332
+ border-radius: 1rem;
333
+ box-shadow: 0 10px 24px var(--n-shadow);
334
+ }
335
+
336
+ .tc-calc-sidebar {
337
+ padding: 1.25rem;
338
+ gap: 1.25rem;
339
+ }
340
+
341
+ .tc-sidebar-header h3 {
342
+ font-size: 0.95rem;
343
+ }
344
+
345
+ #invert-btn {
346
+ width: 40px;
347
+ height: 40px;
348
+ flex: 0 0 auto;
349
+ }
350
+
351
+ .tc-input-set {
352
+ gap: 1rem;
353
+ }
354
+
355
+ .tc-input-block .row {
356
+ display: grid;
357
+ grid-template-columns: minmax(0, 1fr) minmax(92px, 0.75fr);
358
+ }
359
+
360
+ .tide-calculator input[type='time'],
361
+ .tide-calculator input[type='number'] {
362
+ padding: 0.75rem;
363
+ font-size: 1rem;
364
+ }
365
+
366
+ .tide-calculator input[type='time'].large-time {
367
+ font-size: 1.45rem;
368
+ }
369
+
370
+ .tc-calc-content {
371
+ padding: 1.25rem;
372
+ gap: 1.25rem;
373
+ }
374
+
306
375
  .tc-top-row {
307
- flex-direction: column;
308
- gap: 1.5rem;
376
+ display: grid;
377
+ grid-template-columns: 1fr;
378
+ gap: 1.25rem;
379
+ }
380
+
381
+ .tc-result-display .label {
382
+ font-size: 0.75rem;
383
+ }
384
+
385
+ #target-value {
386
+ font-size: 3rem;
387
+ }
388
+
389
+ .tc-value-box small {
390
+ font-size: 1rem;
391
+ }
392
+
393
+ .tc-summary-info {
394
+ display: grid;
395
+ grid-template-columns: repeat(2, minmax(0, 1fr));
396
+ gap: 0.75rem;
397
+ justify-content: stretch;
398
+ }
399
+
400
+ .tc-stat {
401
+ background: var(--n-bg);
402
+ border: 1px solid var(--n-border);
403
+ border-radius: 0.8rem;
404
+ padding: 0.75rem;
405
+ text-align: left;
406
+ }
407
+
408
+ .tc-chart-area {
409
+ height: 220px;
410
+ border-radius: 1rem;
411
+ padding: 0.75rem;
309
412
  }
310
- }
413
+
414
+ .tc-table-card {
415
+ border-radius: 1rem;
416
+ padding: 1rem;
417
+ }
418
+
419
+ .tide-calculator th,
420
+ .tide-calculator td {
421
+ padding: 0.75rem 0.6rem;
422
+ font-size: 0.82rem;
423
+ white-space: nowrap;
424
+ }
425
+ }
426
+
427
+ @media (max-width: 380px) {
428
+ .tc-calc-sidebar,
429
+ .tc-calc-content {
430
+ padding: 1rem;
431
+ }
432
+
433
+ .tc-input-block .row,
434
+ .tc-summary-info {
435
+ grid-template-columns: 1fr;
436
+ }
437
+
438
+ #target-value {
439
+ font-size: 2.6rem;
440
+ }
441
+ }
@@ -17,7 +17,7 @@ const { ui } = Astro.props;
17
17
 
18
18
  <div class="ukc-input-set">
19
19
  <div class="ukc-input-block">
20
- <label>{ui.boatDraftLabel}</label>
20
+ <label for="boat-draft">{ui.boatDraftLabel}</label>
21
21
  <div class="ukc-unit-input">
22
22
  <input type="number" id="boat-draft" value="2.0" step="0.1" />
23
23
  <span>m</span>
@@ -25,7 +25,7 @@ const { ui } = Astro.props;
25
25
  </div>
26
26
 
27
27
  <div class="ukc-input-block">
28
- <label>{ui.chartDepthLabel}</label>
28
+ <label for="chart-depth">{ui.chartDepthLabel}</label>
29
29
  <div class="ukc-unit-input">
30
30
  <input type="number" id="chart-depth" value="1.5" step="0.1" />
31
31
  <span>m</span>
@@ -33,7 +33,7 @@ const { ui } = Astro.props;
33
33
  </div>
34
34
 
35
35
  <div class="ukc-input-block">
36
- <label>{ui.safetyMarginLabel}</label>
36
+ <label for="safety-margin">{ui.safetyMarginLabel}</label>
37
37
  <div class="ukc-unit-input">
38
38
  <input type="number" id="safety-margin" value="0.5" step="0.1" />
39
39
  <span>m</span>
@@ -43,18 +43,18 @@ const { ui } = Astro.props;
43
43
  <div class="ukc-hr-divider"></div>
44
44
 
45
45
  <div class="ukc-input-block">
46
- <label>{ui.highTideLabel}</label>
46
+ <label for="high-tide-time">{ui.highTideLabel}</label>
47
47
  <div class="ukc-row">
48
48
  <input type="time" id="high-tide-time" value="12:00" />
49
- <input type="number" id="high-tide-height" value="3.5" step="0.1" class="ukc-mini-num" />
49
+ <input type="number" id="high-tide-height" value="3.5" step="0.1" class="ukc-mini-num" aria-label="High tide height" />
50
50
  </div>
51
51
  </div>
52
52
 
53
53
  <div class="ukc-input-block">
54
- <label>{ui.lowTideLabel}</label>
54
+ <label for="low-tide-time">{ui.lowTideLabel}</label>
55
55
  <div class="ukc-row">
56
56
  <input type="time" id="low-tide-time" value="06:00" />
57
- <input type="number" id="low-tide-height" value="0.5" step="0.1" class="ukc-mini-num" />
57
+ <input type="number" id="low-tide-height" value="0.5" step="0.1" class="ukc-mini-num" aria-label="Low tide height" />
58
58
  </div>
59
59
  </div>
60
60
  </div>
@@ -3,12 +3,12 @@ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dt
3
3
  import type { UnderKeelUI, UnderKeelLocaleContent } from '../index';
4
4
 
5
5
  const slug = 'calculador-paso-de-bajo';
6
- const title = 'Calculador de Paso de Bajo';
6
+ const title = 'Calculadora de Paso de Bajo';
7
7
  const description =
8
8
  'Calcula la ventana de tiempo segura para cruzar barras, canales o puntos de calado restringido. Introduce el calado de tu barco, la sonda de la carta y los datos de marea para obtener el intervalo exacto de paso seguro.';
9
9
 
10
10
  const ui: UnderKeelUI = {
11
- parametersLabel: 'Parametros',
11
+ parametersLabel: 'Parámetros',
12
12
  boatDraftLabel: 'Calado del Barco',
13
13
  chartDepthLabel: 'Sonda de la Carta',
14
14
  safetyMarginLabel: 'Resguardo de Seguridad',
@@ -17,7 +17,7 @@ const ui: UnderKeelUI = {
17
17
  metersLabel: 'metros',
18
18
  passWindowLabel: 'Ventana de Paso',
19
19
  neededLabel: 'Profundidad necesaria',
20
- tideRequiredLabel: 'Marea minima requerida',
20
+ tideRequiredLabel: 'Marea mínima requerida',
21
21
  statusNeverLabel: 'Sin calado en todo el ciclo',
22
22
  statusAlwaysLabel: 'Paso libre todo el ciclo',
23
23
  statusFromLabel: 'Paso desde las:',
@@ -27,98 +27,98 @@ const ui: UnderKeelUI = {
27
27
 
28
28
  const faq: UnderKeelLocaleContent['faq'] = [
29
29
  {
30
- question: '¿Que es exactamente el paso de bajo en nautica?',
31
- answer: 'El paso de bajo es el calculo del momento en el que hay profundidad suficiente en un punto critico (como una barra de arena o un canal estrecho) para permitir el transito seguro de una embarcacion segun su calado.',
30
+ question: '¿Qué es exactamente el paso de bajo en náutica?',
31
+ answer: 'El paso de bajo es el cálculo del momento en el que hay profundidad suficiente en un punto crítico (como una barra de arena o un canal estrecho) para permitir el tránsito seguro de una embarcación según su calado.',
32
32
  },
33
33
  {
34
- question: '¿Cuantos metros de resguardo de seguridad se recomiendan?',
35
- answer: 'Para embarcaciones de recreo se suele recomendar un resguardo minimo de entre 0.5 y 1 metro sobre el calado del barco. Este margen compensa posibles errores en el calculo de marea, variaciones de presion atmosferica u oleaje imprevisto.',
34
+ question: '¿Cuántos metros de resguardo de seguridad se recomiendan?',
35
+ answer: 'Para embarcaciones de recreo se suele recomendar un resguardo mínimo de entre 0,5 y 1 metro sobre el calado del barco. Este margen compensa posibles errores en el cálculo de marea, variaciones de presión atmosférica u oleaje imprevisto.',
36
36
  },
37
37
  {
38
- question: '¿Como influye el oleaje en el paso de bajo?',
39
- answer: 'El oleaje genera oscilaciones verticales en el casco. En el punto mas bajo de la ola el barco se acerca mas al fondo que en reposo. Para cruzar zonas con olas el resguardo debe aumentarse sustancialmente.',
38
+ question: '¿Cómo influye el oleaje en el paso de bajo?',
39
+ answer: 'El oleaje genera oscilaciones verticales en el casco. En el punto más bajo de la ola el barco se acerca más al fondo que en reposo. Para cruzar zonas con olas el resguardo debe aumentarse sustancialmente.',
40
40
  },
41
41
  {
42
- question: '¿Que es la sonda de la carta nautica?',
43
- answer: 'Es la profundidad minima que encontraras en un punto cuando la marea esta en el nivel del Cero de la Carta (Datum). Se suma a la altura de la marea en ese instante para obtener la profundidad total disponible.',
42
+ question: '¿Qué es la sonda de la carta náutica?',
43
+ answer: 'Es la profundidad mínima que encontrarás en un punto cuando la marea está en el nivel del Cero de la Carta (Datum). Se suma a la altura de la marea en ese instante para obtener la profundidad total disponible.',
44
44
  },
45
45
  {
46
- question: '¿Que ocurre si la sonda en la carta esta subrayada?',
47
- answer: 'Significa que ese punto queda al descubierto (en seco) cuando la marea esta en el Cero de la Carta. Necesitaras una altura de marea mayor para poder pasar por encima.',
46
+ question: '¿Qué ocurre si la sonda en la carta está subrayada?',
47
+ answer: 'Significa que ese punto queda al descubierto (en seco) cuando la marea está en el Cero de la Carta. Necesitarás una altura de marea mayor para poder pasar por encima.',
48
48
  },
49
49
  {
50
- question: '¿Que es el efecto Squat y como altera el paso?',
51
- answer: 'Es un fenomeno hidrodinamico por el cual un barco que navega por canales poco profundos tiende a hundirse mas respecto a su linea de flotacion. Cuanto mas rapido navegues, mas aumenta el calado dinamico y menos agua tendras bajo la quilla.',
50
+ question: '¿Qué es el efecto Squat y cómo altera el paso?',
51
+ answer: 'Es un fenómeno hidrodinámico por el cual un barco que navega por canales poco profundos tiende a hundirse más respecto a su línea de flotación. Cuanto más rápido navegues, más aumenta el calado dinámico y menos agua tendrás bajo la quilla.',
52
52
  },
53
53
  ];
54
54
 
55
55
  const howTo: UnderKeelLocaleContent['howTo'] = [
56
56
  {
57
57
  name: 'Define el calado y el resguardo',
58
- text: 'Mide el calado de tu barco en su punto maximo y añade un margen de seguridad prudente (por ejemplo, 0.5 m).',
58
+ text: 'Mide el calado de tu barco en su punto máximo y añade un margen de seguridad prudente (por ejemplo, 0,5 m).',
59
59
  },
60
60
  {
61
- name: 'Consulta la sonda en tu carta nautica',
62
- text: 'Busca el valor de la sonda Datum para el paso critico que vas a navegar. Anota si es una zona de arena o roca.',
61
+ name: 'Consulta la sonda en tu carta náutica',
62
+ text: 'Busca el valor de la sonda Datum para el paso crítico que vas a navegar. Anota si es una zona de arena o roca.',
63
63
  },
64
64
  {
65
65
  name: 'Introduce los datos de la marea',
66
- text: 'Utiliza las horas y alturas de la pleamar y bajamar de la marina mas cercana obtenidas del anuario oficial.',
66
+ text: 'Utiliza las horas y alturas de la pleamar y bajamar de la marina más cercana obtenidas del anuario oficial.',
67
67
  },
68
68
  {
69
69
  name: 'Comprueba tu ventana de paso',
70
- text: 'La herramienta te indicara el intervalo de tiempo exacto durante el cual tendras profundidad suficiente para navegar con seguridad.',
70
+ text: 'La herramienta te indicará el intervalo de tiempo exacto durante el cual tendrás profundidad suficiente para navegar con seguridad.',
71
71
  },
72
72
  ];
73
73
 
74
74
  const seo: UnderKeelLocaleContent['seo'] = [
75
75
  {
76
76
  type: 'title',
77
- text: 'Calculo de Paso de Bajo: Navegando con Seguridad sobre Obstaculos',
77
+ text: 'Cálculo de Paso de Bajo: Navegando con Seguridad sobre Obstáculos',
78
78
  level: 2,
79
79
  },
80
80
  {
81
81
  type: 'paragraph',
82
- html: 'La planificacion de una travesia no termina con el trazo de un rumbo en la carta. Para el navegante costero, uno de los calculos mas determinantes es el del <strong>paso de bajo</strong>: saber a que hora habra profundidad suficiente para cruzar un punto critico sin encallar.',
82
+ html: 'La planificación de una travesía no termina con el trazo de un rumbo en la carta. Para el navegante costero, uno de los cálculos más determinantes es el del <strong>paso de bajo</strong>: saber a qué hora habrá profundidad suficiente para cruzar un punto crítico sin encallar.',
83
83
  },
84
84
  {
85
85
  type: 'title',
86
- text: '¿Que es la sonda de la carta y como se relaciona con la marea?',
86
+ text: '¿Qué es la sonda de la carta y cómo se relaciona con la marea?',
87
87
  level: 3,
88
88
  },
89
89
  {
90
90
  type: 'paragraph',
91
- html: 'En las cartasnáuticas, las profundidades indicadas (sondas) estan referidas al <strong>Cero de la Carta</strong> o Datum. Este nivel es, por convencion, el nivel mas bajo que puede alcanzar la marea en condiciones normales. La profundidad real que encontrara tu barco en un momento dado es la suma de esa sonda mas la altura de la marea en ese instante, calculada con la Regla de los Dozavos.',
91
+ html: 'En las cartas náuticas, las profundidades indicadas (sondas) están referidas al <strong>Cero de la Carta</strong> o Datum. Este nivel es, por convención, el nivel más bajo que puede alcanzar la marea en condiciones normales. La profundidad real que encontrará tu barco en un momento dado es la suma de esa sonda más la altura de la marea en ese instante, calculada con la Regla de los Dozavos.',
92
92
  },
93
93
  {
94
94
  type: 'title',
95
- text: 'Los elementos del calculo: Calado y Resguardo',
95
+ text: 'Los elementos del cálculo: Calado y Resguardo',
96
96
  level: 3,
97
97
  },
98
98
  {
99
99
  type: 'paragraph',
100
- html: 'Para utilizar el calculador de paso de bajo de forma profesional, debes conocer con precision dos datos tecnicos de tu propio barco y uno de decision personal:',
100
+ html: 'Para utilizar el calculador de paso de bajo de forma profesional, debes conocer con precisión dos datos técnicos de tu propio barco y uno de decisión personal:',
101
101
  },
102
102
  {
103
103
  type: 'list',
104
104
  items: [
105
- '<strong>Calado de maxima carga:</strong> Es la profundidad que alcanza el punto mas bajo del barco (la quilla) cuando esta totalmente cargado.',
106
- '<strong>Sonda de la carta:</strong> El numero que aparece en la carta nautica para el punto que quieres cruzar. Si esta subrayado, el punto queda en seco en bajamar.',
107
- '<strong>Resguardo de seguridad:</strong> Es el margen "por si acaso" (nauticamente conocido como resguardo) de al menos 0,5 a 1 metro.',
105
+ '<strong>Calado de máxima carga:</strong> Es la profundidad que alcanza el punto más bajo del barco (la quilla) cuando está totalmente cargado.',
106
+ '<strong>Sonda de la carta:</strong> El número que aparece en la carta náutica para el punto que quieres cruzar. Si está subrayado, el punto queda en seco en bajamar.',
107
+ '<strong>Resguardo de seguridad:</strong> Es el margen "por si acaso" (náuticamente conocido como resguardo) de al menos 0,5 a 1 metro.',
108
108
  ],
109
109
  },
110
110
  {
111
111
  type: 'title',
112
- text: '¿Como funciona la ventana de paso?',
112
+ text: '¿Cómo funciona la ventana de paso?',
113
113
  level: 3,
114
114
  },
115
115
  {
116
116
  type: 'paragraph',
117
- html: 'El calculador determina el momento exacto en el que el nivel del agua subira por encima de tu calado mas el resguardo elegido. A partir de ese minuto, se abre la <strong>ventana de paso</strong>. Si la marea es vaciante (bajando), la herramienta te indicara hasta que hora tienes permitido el transito antes de que el nivel del agua caiga por debajo de tu limite de seguridad.',
117
+ html: 'El calculador determina el momento exacto en el que el nivel del agua subirá por encima de tu calado más el resguardo elegido. A partir de ese minuto, se abre la <strong>ventana de paso</strong>. Si la marea es vaciante (bajando), la herramienta te indicará hasta que hora tienes permitido el tránsito antes de que el nivel del agua caiga por debajo de tu límite de seguridad.',
118
118
  },
119
119
  {
120
120
  type: 'paragraph',
121
- html: 'Esta planificacion es vital para barcos de vela con quillas profundas que desean entrar en puertos como los de las Rias Baixas en Galicia o puertos fluviales en Andalucia, donde la variacion de mareas puede marcar la diferencia entre una entrada comoda o quedar varado durante seis horas esperando al siguiente ciclo.',
121
+ html: 'Esta planificación es vital para barcos de vela con quillas profundas que desean entrar en puertos como los de las Rías Baixas en Galicia o puertos fluviales en Andalucía, donde la variación de mareas puede marcar la diferencia entre una entrada cómoda o quedar varado durante seis horas esperando al siguiente ciclo.',
122
122
  },
123
123
  {
124
124
  type: 'title',
@@ -127,17 +127,17 @@ const seo: UnderKeelLocaleContent['seo'] = [
127
127
  },
128
128
  {
129
129
  type: 'table',
130
- headers: ['Factor', 'Efecto', 'Recomendacion'],
130
+ headers: ['Factor', 'Efecto', 'Recomendación'],
131
131
  rows: [
132
132
  ['<strong>Oleaje</strong>', 'Reduce el agua bajo el casco', 'Aumentar el resguardo significativamente'],
133
- ['<strong>Efecto Squat</strong>', 'Aumenta el calado por succion', 'Reducir la velocidad en zonas criticas'],
133
+ ['<strong>Efecto Squat</strong>', 'Aumenta el calado por succión', 'Reducir la velocidad en zonas críticas'],
134
134
  ['<strong>Fondo de arena</strong>', 'Profundidad variable con temporales', 'Mantener sonda activa y resguardo extra'],
135
135
  ],
136
136
  },
137
137
  {
138
138
  type: 'tip',
139
- title: 'Consejo de Navegacion',
140
- html: 'Si tu ventana de paso es muy estrecha o el tiempo empeora, la decision mas sabia suele ser esperar fuera en aguas profundas a que la marea gane la altura necesaria.',
139
+ title: 'Consejo de Navegación',
140
+ html: 'Si tu ventana de paso es muy estrecha o el tiempo empeora, la decisión más sabia suele ser esperar fuera en aguas profundas a que la marea gane la altura necesaria.',
141
141
  },
142
142
  {
143
143
  type: 'title',
@@ -146,11 +146,11 @@ const seo: UnderKeelLocaleContent['seo'] = [
146
146
  },
147
147
  {
148
148
  type: 'paragraph',
149
- html: '<ol><li class="mb-2"><strong>Reduce la velocidad:</strong> Para minimizar el efecto squat y tener tiempo de corregir el rumbo.</li><li class="mb-2"><strong>Utiliza la sonda de a bordo:</strong> Configura la alarma de baja profundidad en tu equipo electronico.</li><li class="mb-2"><strong>Observa el mar:</strong> Las rompientes de olas suelen indicar la presencia de bajos.</li><li class="mb-2"><strong>Consulta a lugareños:</strong> Por radio (canal 9) o telefoneando al club nautico sobre el estado actual del canal.</li></ol>',
149
+ html: '<ol><li class="mb-2"><strong>Reduce la velocidad:</strong> Para minimizar el efecto squat y tener tiempo de corregir el rumbo.</li><li class="mb-2"><strong>Utiliza la sonda de a bordo:</strong> Configura la alarma de baja profundidad en tu equipo electrónico.</li><li class="mb-2"><strong>Observa el mar:</strong> Las rompientes de olas suelen indicar la presencia de bajos.</li><li class="mb-2"><strong>Consulta a lugareños:</strong> Por radio (canal 9) o telefoneando al club náutico sobre el estado actual del canal.</li></ol>',
150
150
  },
151
151
  {
152
152
  type: 'paragraph',
153
- html: 'Esta herramienta es ideal para estudiantes que estan practicando ejercicios de mareas para el examen de Patron de Embarcaciones de Recreo (PER) o Patron de Yate, permitiendo verificar los resultados de calculos manuales de forma instantanea y visual.',
153
+ html: 'Esta herramienta es ideal para estudiantes que están practicando ejercicios de mareas para el examen de Patrón de Embarcaciones de Recreo (PER) o Patrón de Yate, permitiendo verificar los resultados de cálculos manuales de forma instantánea y visual.',
154
154
  },
155
155
  ];
156
156
 
@@ -176,7 +176,7 @@ const schemas: UnderKeelLocaleContent['schemas'] = [
176
176
  {
177
177
  '@context': 'https://schema.org',
178
178
  '@type': 'HowTo',
179
- name: `Como usar: ${title}`,
179
+ name: `Cómo usar: ${title}`,
180
180
  step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
181
181
  } as WithContext<HowTo>,
182
182
  ];