@jjlmoya/utils-nautical 1.15.0 → 1.17.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 (137) hide show
  1. package/package.json +1 -1
  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/layouts/PreviewLayout.astro +1 -0
  15. package/src/pages/[locale]/[slug].astro +28 -12
  16. package/src/tests/diacritics_density.test.ts +118 -0
  17. package/src/tests/inverted_punctuation.test.ts +84 -0
  18. package/src/tests/locale_completeness.test.ts +1 -31
  19. package/src/tests/no_en_dash.test.ts +70 -0
  20. package/src/tests/script_density.test.ts +94 -0
  21. package/src/tests/shared-test-helpers.ts +56 -0
  22. package/src/tests/tool_exports.test.ts +34 -0
  23. package/src/tool/endurance/bibliography.astro +1 -1
  24. package/src/tool/endurance/bibliography.ts +12 -0
  25. package/src/tool/endurance/entry.ts +2 -2
  26. package/src/tool/endurance/i18n/de.ts +1 -13
  27. package/src/tool/endurance/i18n/en.ts +1 -12
  28. package/src/tool/endurance/i18n/es.ts +55 -67
  29. package/src/tool/endurance/i18n/fr.ts +71 -83
  30. package/src/tool/endurance/i18n/id.ts +1 -13
  31. package/src/tool/endurance/i18n/it.ts +1 -13
  32. package/src/tool/endurance/i18n/ja.ts +1 -13
  33. package/src/tool/endurance/i18n/ko.ts +1 -13
  34. package/src/tool/endurance/i18n/nl.ts +1 -13
  35. package/src/tool/endurance/i18n/pl.ts +1 -13
  36. package/src/tool/endurance/i18n/pt.ts +1 -13
  37. package/src/tool/endurance/i18n/ru.ts +10 -22
  38. package/src/tool/endurance/i18n/sv.ts +1 -13
  39. package/src/tool/endurance/i18n/tr.ts +1 -13
  40. package/src/tool/endurance/i18n/zh.ts +1 -13
  41. package/src/tool/endurance/seo.astro +2 -42
  42. package/src/tool/nauticalConverter/bibliography.astro +1 -1
  43. package/src/tool/nauticalConverter/bibliography.ts +12 -0
  44. package/src/tool/nauticalConverter/entry.ts +2 -2
  45. package/src/tool/nauticalConverter/i18n/de.ts +1 -13
  46. package/src/tool/nauticalConverter/i18n/en.ts +1 -13
  47. package/src/tool/nauticalConverter/i18n/es.ts +47 -59
  48. package/src/tool/nauticalConverter/i18n/fr.ts +54 -66
  49. package/src/tool/nauticalConverter/i18n/id.ts +1 -13
  50. package/src/tool/nauticalConverter/i18n/it.ts +1 -13
  51. package/src/tool/nauticalConverter/i18n/ja.ts +1 -13
  52. package/src/tool/nauticalConverter/i18n/ko.ts +1 -13
  53. package/src/tool/nauticalConverter/i18n/nl.ts +1 -13
  54. package/src/tool/nauticalConverter/i18n/pl.ts +4 -16
  55. package/src/tool/nauticalConverter/i18n/pt.ts +1 -13
  56. package/src/tool/nauticalConverter/i18n/ru.ts +9 -21
  57. package/src/tool/nauticalConverter/i18n/sv.ts +1 -13
  58. package/src/tool/nauticalConverter/i18n/tr.ts +1 -13
  59. package/src/tool/nauticalConverter/i18n/zh.ts +4 -16
  60. package/src/tool/nauticalConverter/seo.astro +2 -39
  61. package/src/tool/sailArea/bibliography.astro +1 -1
  62. package/src/tool/sailArea/bibliography.ts +16 -0
  63. package/src/tool/sailArea/entry.ts +2 -2
  64. package/src/tool/sailArea/i18n/de.ts +1 -17
  65. package/src/tool/sailArea/i18n/en.ts +1 -17
  66. package/src/tool/sailArea/i18n/es.ts +54 -70
  67. package/src/tool/sailArea/i18n/fr.ts +71 -87
  68. package/src/tool/sailArea/i18n/id.ts +1 -17
  69. package/src/tool/sailArea/i18n/it.ts +1 -17
  70. package/src/tool/sailArea/i18n/ja.ts +1 -17
  71. package/src/tool/sailArea/i18n/ko.ts +1 -17
  72. package/src/tool/sailArea/i18n/nl.ts +1 -17
  73. package/src/tool/sailArea/i18n/pl.ts +1 -17
  74. package/src/tool/sailArea/i18n/pt.ts +1 -17
  75. package/src/tool/sailArea/i18n/ru.ts +9 -25
  76. package/src/tool/sailArea/i18n/sv.ts +1 -17
  77. package/src/tool/sailArea/i18n/tr.ts +1 -17
  78. package/src/tool/sailArea/i18n/zh.ts +6 -22
  79. package/src/tool/sailArea/seo.astro +2 -39
  80. package/src/tool/speedConverter/bibliography.astro +1 -1
  81. package/src/tool/speedConverter/bibliography.ts +12 -0
  82. package/src/tool/speedConverter/entry.ts +2 -2
  83. package/src/tool/speedConverter/i18n/de.ts +1 -13
  84. package/src/tool/speedConverter/i18n/en.ts +1 -13
  85. package/src/tool/speedConverter/i18n/es.ts +59 -71
  86. package/src/tool/speedConverter/i18n/fr.ts +76 -88
  87. package/src/tool/speedConverter/i18n/id.ts +1 -13
  88. package/src/tool/speedConverter/i18n/it.ts +1 -13
  89. package/src/tool/speedConverter/i18n/ja.ts +1 -13
  90. package/src/tool/speedConverter/i18n/ko.ts +1 -13
  91. package/src/tool/speedConverter/i18n/nl.ts +1 -13
  92. package/src/tool/speedConverter/i18n/pl.ts +1 -13
  93. package/src/tool/speedConverter/i18n/pt.ts +1 -13
  94. package/src/tool/speedConverter/i18n/ru.ts +7 -19
  95. package/src/tool/speedConverter/i18n/sv.ts +1 -13
  96. package/src/tool/speedConverter/i18n/tr.ts +1 -13
  97. package/src/tool/speedConverter/i18n/zh.ts +6 -18
  98. package/src/tool/speedConverter/seo.astro +2 -30
  99. package/src/tool/tideCalculator/bibliography.astro +1 -1
  100. package/src/tool/tideCalculator/bibliography.ts +12 -0
  101. package/src/tool/tideCalculator/entry.ts +2 -2
  102. package/src/tool/tideCalculator/i18n/de.ts +1 -13
  103. package/src/tool/tideCalculator/i18n/en.ts +1 -13
  104. package/src/tool/tideCalculator/i18n/es.ts +40 -52
  105. package/src/tool/tideCalculator/i18n/fr.ts +44 -56
  106. package/src/tool/tideCalculator/i18n/id.ts +1 -13
  107. package/src/tool/tideCalculator/i18n/it.ts +1 -13
  108. package/src/tool/tideCalculator/i18n/ja.ts +1 -13
  109. package/src/tool/tideCalculator/i18n/ko.ts +1 -13
  110. package/src/tool/tideCalculator/i18n/nl.ts +1 -13
  111. package/src/tool/tideCalculator/i18n/pl.ts +1 -13
  112. package/src/tool/tideCalculator/i18n/pt.ts +1 -13
  113. package/src/tool/tideCalculator/i18n/ru.ts +7 -19
  114. package/src/tool/tideCalculator/i18n/sv.ts +1 -13
  115. package/src/tool/tideCalculator/i18n/tr.ts +1 -13
  116. package/src/tool/tideCalculator/i18n/zh.ts +2 -14
  117. package/src/tool/tideCalculator/seo.astro +2 -48
  118. package/src/tool/tideCalculator/tide-height-calculator.css +136 -5
  119. package/src/tool/underKeel/bibliography.astro +1 -1
  120. package/src/tool/underKeel/bibliography.ts +12 -0
  121. package/src/tool/underKeel/entry.ts +2 -2
  122. package/src/tool/underKeel/i18n/de.ts +1 -13
  123. package/src/tool/underKeel/i18n/en.ts +1 -13
  124. package/src/tool/underKeel/i18n/es.ts +40 -52
  125. package/src/tool/underKeel/i18n/fr.ts +46 -58
  126. package/src/tool/underKeel/i18n/id.ts +2 -14
  127. package/src/tool/underKeel/i18n/it.ts +2 -14
  128. package/src/tool/underKeel/i18n/ja.ts +2 -14
  129. package/src/tool/underKeel/i18n/ko.ts +2 -14
  130. package/src/tool/underKeel/i18n/nl.ts +2 -14
  131. package/src/tool/underKeel/i18n/pl.ts +2 -14
  132. package/src/tool/underKeel/i18n/pt.ts +2 -14
  133. package/src/tool/underKeel/i18n/ru.ts +7 -19
  134. package/src/tool/underKeel/i18n/sv.ts +2 -14
  135. package/src/tool/underKeel/i18n/tr.ts +2 -14
  136. package/src/tool/underKeel/i18n/zh.ts +2 -14
  137. package/src/tool/underKeel/seo.astro +2 -33
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
3
4
 
@@ -34,8 +35,6 @@ const ui: SpeedConverterUI = {
34
35
  effectLabel: 'Visuell effekt',
35
36
  seaStateLabel: 'Sjötillstånd',
36
37
  windEffectLabel: 'Effekt på land',
37
- faqTitle: 'Vanliga frågor',
38
- bibliographyTitle: 'Bibliografi',
39
38
  beaufortDataJson: JSON.stringify(beaufortData),
40
39
  };
41
40
 
@@ -77,17 +76,6 @@ const howTo: SpeedConverterLocaleContent['howTo'] = [
77
76
  },
78
77
  ];
79
78
 
80
- const bibliography: SpeedConverterLocaleContent['bibliography'] = [
81
- {
82
- name: 'Met Office - The Beaufort Scale',
83
- url: 'https://www.metoffice.gov.uk/weather/guides/coast-and-sea/beaufort-scale',
84
- },
85
- {
86
- name: 'IMO - International Maritime Organization',
87
- url: 'https://www.imo.org/',
88
- },
89
- ];
90
-
91
79
  const seo: SpeedConverterLocaleContent['seo'] = [
92
80
  {
93
81
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
3
4
 
@@ -34,8 +35,6 @@ const ui: SpeedConverterUI = {
34
35
  effectLabel: 'Görsel Etki',
35
36
  seaStateLabel: 'Deniz Durumu',
36
37
  windEffectLabel: 'Karadaki Etki',
37
- faqTitle: 'Sıkça Sorulan Sorular',
38
- bibliographyTitle: 'Kaynakça',
39
38
  beaufortDataJson: JSON.stringify(beaufortData),
40
39
  };
41
40
 
@@ -77,17 +76,6 @@ const howTo: SpeedConverterLocaleContent['howTo'] = [
77
76
  },
78
77
  ];
79
78
 
80
- const bibliography: SpeedConverterLocaleContent['bibliography'] = [
81
- {
82
- name: 'Met Office - The Beaufort Scale',
83
- url: 'https://www.metoffice.gov.uk/weather/guides/coast-and-sea/beaufort-scale',
84
- },
85
- {
86
- name: 'IMO - International Maritime Organization',
87
- url: 'https://www.imo.org/',
88
- },
89
- ];
90
-
91
79
  const seo: SpeedConverterLocaleContent['seo'] = [
92
80
  {
93
81
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
3
4
 
@@ -34,15 +35,13 @@ const ui: SpeedConverterUI = {
34
35
  effectLabel: '视觉影响',
35
36
  seaStateLabel: '海况',
36
37
  windEffectLabel: '陆地影响',
37
- faqTitle: '常见问题',
38
- bibliographyTitle: '参考文献统计',
39
38
  beaufortDataJson: JSON.stringify(beaufortData),
40
39
  };
41
40
 
42
41
  const faq: SpeedConverterLocaleContent['faq'] = [
43
42
  {
44
- question: '为什么航海速度用“节”来衡量?',
45
- answer: '“节” (Knot) 是速度单位,等于每小时一海里。其起源具有历史意义:以前海员通过向海中抛出系有等间距结绳的木块来测量船速,计算在规定时间内经过手指的绳结数量。今天,它仍然是航海和航空领域的国际标准单位。',
43
+ question: '为什么航海速度用"节"来衡量?',
44
+ answer: '"节" (Knot) 是速度单位,等于每小时一海里。其起源具有历史意义:以前海员通过向海中抛出系有等间距结绳的木块来测量船速,计算在规定时间内经过手指的绳结数量。今天,它仍然是航海和航空领域的国际标准单位。',
46
45
  },
47
46
  {
48
47
  question: '什么是蒲福风级?它在航海中如何应用?',
@@ -77,17 +76,6 @@ const howTo: SpeedConverterLocaleContent['howTo'] = [
77
76
  },
78
77
  ];
79
78
 
80
- const bibliography: SpeedConverterLocaleContent['bibliography'] = [
81
- {
82
- name: 'Met Office - The Beaufort Scale',
83
- url: 'https://www.metoffice.gov.uk/weather/guides/coast-and-sea/beaufort-scale',
84
- },
85
- {
86
- name: 'IMO - International Maritime Organization',
87
- url: 'https://www.imo.org/',
88
- },
89
- ];
90
-
91
79
  const seo: SpeedConverterLocaleContent['seo'] = [
92
80
  {
93
81
  type: 'title',
@@ -112,12 +100,12 @@ const seo: SpeedConverterLocaleContent['seo'] = [
112
100
  },
113
101
  {
114
102
  type: 'title',
115
- text: '为什么速度用“节”来测量?',
103
+ text: '为什么速度用"节"来测量?',
116
104
  level: 3,
117
105
  },
118
106
  {
119
107
  type: 'paragraph',
120
- html: '<strong>节 (kt)</strong> 是航海和航空领域的官方速度单位。其定义非常精确:1 节等于每小时 1 海里,其中海里 (1852 米) 被定义为地球子午线上的 1 角分弧长。这种与地球几何形状的直接关系使得“节”在航行中非常实用,可以直接在海图上估算距离而无需任何转换。',
108
+ html: '<strong>节 (kt)</strong> 是航海和航空领域的官方速度单位。其定义非常精确:1 节等于每小时 1 海里,其中海里 (1852 米) 被定义为地球子午线上的 1 角分弧长。这种与地球几何形状的直接关系使得"节"在航行中非常实用,可以直接在海图上估算距离而无需任何转换。',
121
109
  },
122
110
  {
123
111
  type: 'paragraph',
@@ -227,7 +215,7 @@ const seo: SpeedConverterLocaleContent['seo'] = [
227
215
  },
228
216
  {
229
217
  type: 'paragraph',
230
- html: '在竞赛中,节与米/秒之间的换算对于计算 VMG (Velocity Made Good) 和分析帆极图特别有用。气象学家和数值预报模型通常以 m/s 或 km/h 为单位提供风速,因此转换为“节”是战术规划中的常规步骤。',
218
+ html: '在竞赛中,节与米/秒之间的换算对于计算 VMG (Velocity Made Good) 和分析帆极图特别有用。气象学家和数值预报模型通常以 m/s 或 km/h 为单位提供风速,因此转换为"节"是战术规划中的常规步骤。',
231
219
  },
232
220
  ];
233
221
 
@@ -1,14 +1,5 @@
1
1
  ---
2
- import {
3
- SEOTitle,
4
- SEOTable,
5
- SEOTip,
6
- SEOGlossary,
7
- SEOStats,
8
- SEOComparative,
9
- SEOList,
10
- SEOArticle,
11
- } from '@jjlmoya/utils-shared';
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
12
3
  import { speedConverter } from './index';
13
4
  import type { KnownLocale } from '../../types';
14
5
 
@@ -19,25 +10,6 @@ interface Props {
19
10
  const { locale = 'es' } = Astro.props;
20
11
  const content = await speedConverter.i18n[locale]?.();
21
12
  if (!content) return null;
22
- const { seo } = content;
23
13
  ---
24
14
 
25
- <SEOArticle>
26
- {seo.map((section: any) => {
27
- switch (section.type) {
28
- case 'title': return <SEOTitle title={section.text} level={section.level || 2} />;
29
- case 'paragraph': return <p set:html={section.html} />;
30
- case 'tip': return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
31
- case 'table': return (
32
- <SEOTable headers={section.headers}>
33
- {section.rows.map((row: string[]) => <tr>{row.map((cell: string) => <td set:html={cell} />)}</tr>)}
34
- </SEOTable>
35
- );
36
- case 'glossary': return <SEOGlossary items={section.items} />;
37
- case 'stats': return <SEOStats stats={section.items} columns={section.columns} />;
38
- case 'comparative': return <SEOComparative items={section.items} columns={section.columns} />;
39
- case 'list': return <SEOList items={section.items} icon={section.icon} />;
40
- default: return null;
41
- }
42
- })}
43
- </SEOArticle>
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -11,4 +11,4 @@ const { locale = 'es' } = Astro.props;
11
11
  const content = await tideCalculator.i18n[locale]?.();
12
12
  ---
13
13
 
14
- {content && <SharedBibliography links={content.bibliography} title={content.ui.bibliographyTitle} />}
14
+ {content && <SharedBibliography links={content.bibliography} />}
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Puertos del Estado - Tide Prediction',
6
+ url: 'https://portus.puertos.es/#/',
7
+ },
8
+ {
9
+ name: 'Instituto Hidrografico de la Marina',
10
+ url: 'https://armada.defensa.gob.es/ihm/',
11
+ },
12
+ ];
@@ -18,8 +18,6 @@ export interface TideCalculatorUI {
18
18
  statusUpLabel: string;
19
19
  statusDownLabel: string;
20
20
  statusOutOfRange: string;
21
- faqTitle: string;
22
- bibliographyTitle: string;
23
21
  }
24
22
 
25
23
  export type TideCalculatorLocaleContent = ToolLocaleContent<TideCalculatorUI>;
@@ -48,3 +46,5 @@ export const tideCalculator: NauticalToolEntry<TideCalculatorUI> = {
48
46
  zh: () => import('./i18n/zh').then((m) => m.content),
49
47
  },
50
48
  };
49
+
50
+ export { bibliography } from './bibliography';
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { TideCalculatorUI, TideCalculatorLocaleContent } from '../index';
3
4
 
@@ -23,8 +24,6 @@ const ui: TideCalculatorUI = {
23
24
  statusUpLabel: 'Auflaufend',
24
25
  statusDownLabel: 'Ablaufend',
25
26
  statusOutOfRange: 'Außerhalb des Bereichs',
26
- faqTitle: 'Häufig gestellte Fragen',
27
- bibliographyTitle: 'Bibliografie',
28
27
  };
29
28
 
30
29
  const faq: TideCalculatorLocaleContent['faq'] = [
@@ -79,17 +78,6 @@ const howTo: TideCalculatorLocaleContent['howTo'] = [
79
78
  },
80
79
  ];
81
80
 
82
- const bibliography: TideCalculatorLocaleContent['bibliography'] = [
83
- {
84
- name: 'Puertos del Estado - Tide Prediction',
85
- url: 'https://portus.puertos.es/#/',
86
- },
87
- {
88
- name: 'Instituto Hidrografico de la Marina',
89
- url: 'https://armada.defensa.gob.es/ihm/',
90
- },
91
- ];
92
-
93
81
  const seo: TideCalculatorLocaleContent['seo'] = [
94
82
  {
95
83
  type: 'title',
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { TideCalculatorUI, TideCalculatorLocaleContent } from '../index';
3
4
 
@@ -23,8 +24,6 @@ const ui: TideCalculatorUI = {
23
24
  statusUpLabel: 'Rising',
24
25
  statusDownLabel: 'Falling',
25
26
  statusOutOfRange: 'Out of range',
26
- faqTitle: 'Frequently Asked Questions',
27
- bibliographyTitle: 'Bibliography',
28
27
  };
29
28
 
30
29
  const faq: TideCalculatorLocaleContent['faq'] = [
@@ -79,17 +78,6 @@ const howTo: TideCalculatorLocaleContent['howTo'] = [
79
78
  },
80
79
  ];
81
80
 
82
- const bibliography: TideCalculatorLocaleContent['bibliography'] = [
83
- {
84
- name: 'Puertos del Estado - Tide Prediction',
85
- url: 'https://portus.puertos.es/#/',
86
- },
87
- {
88
- name: 'Instituto Hidrografico de la Marina',
89
- url: 'https://armada.defensa.gob.es/ihm/',
90
- },
91
- ];
92
-
93
81
  const seo: TideCalculatorLocaleContent['seo'] = [
94
82
  {
95
83
  type: 'title',
@@ -1,20 +1,21 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { TideCalculatorUI, TideCalculatorLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'calculadora-altura-marea';
5
6
  const title = 'Calculadora de Altura de Marea';
6
7
  const description =
7
- 'Estima el nivel del agua en cualquier instante del ciclo mareal utilizando el metodo nautico de la Regla de los Dozavos. Ideal para planificacion costera y estudio del PER.';
8
+ 'Estima el nivel del agua en cualquier instante del ciclo mareal utilizando el método náutico de la Regla de los Dozavos. Ideal para planificación costera y estudio del PER.';
8
9
 
9
10
  const ui: TideCalculatorUI = {
10
- parametersLabel: 'Parametros',
11
+ parametersLabel: 'Parámetros',
11
12
  highTideLabel: 'Pleamar',
12
13
  lowTideLabel: 'Bajamar',
13
14
  targetTimeLabel: 'Hora de consulta',
14
15
  estimatedHeightLabel: 'Altura Estimada',
15
16
  metersLabel: 'metros',
16
17
  amplitudeLabel: 'Amplitud',
17
- durationLabel: 'Duracion',
18
+ durationLabel: 'Duración',
18
19
  tableBreakdownLabel: 'Desglose por Dozavos',
19
20
  tableHourLabel: 'Hora',
20
21
  tableStateLabel: 'Estado',
@@ -23,40 +24,38 @@ const ui: TideCalculatorUI = {
23
24
  statusUpLabel: 'Subiendo',
24
25
  statusDownLabel: 'Bajando',
25
26
  statusOutOfRange: 'Fuera de rango',
26
- faqTitle: 'Preguntas Frecuentes',
27
- bibliographyTitle: 'Referencias Bibliograficas',
28
27
  };
29
28
 
30
29
  const faq: TideCalculatorLocaleContent['faq'] = [
31
30
  {
32
- question: '¿Que es la Regla de los Dozavos y para que sirve?',
31
+ question: '¿Qué es la Regla de los Dozavos y para qué sirve?',
33
32
  answer:
34
- 'La Regla de los Dozavos es un metodo matematico simplificado utilizado en nautica para estimar la altura de la marea en cualquier momento entre la pleamar y la bajamar. Se basa en que el flujo del agua sigue una curva sinusoidal aproximada, dividiendo la amplitud total en 12 partes repartidas en 6 horas (1/12, 2/12, 3/12, 3/12, 2/12, 1/12).',
33
+ 'La Regla de los Dozavos es un método matemático simplificado utilizado en náutica para estimar la altura de la marea en cualquier momento entre la pleamar y la bajamar. Se basa en que el flujo del agua sigue una curva sinusoidal aproximada, dividiendo la amplitud total en 12 partes repartidas en 6 horas (1/12, 2/12, 3/12, 3/12, 2/12, 1/12).',
35
34
  },
36
35
  {
37
- question: '¿Es fiable este metodo para la navegacion real?',
36
+ question: '¿Es fiable este método para la navegación real?',
38
37
  answer:
39
- 'Es un metodo de estimacion teorica muy util para planificacion rapida y fines educativos. Sin embargo, no tiene en cuenta factores meteorologicos como la presion atmosferica o el viento, que pueden alterar el nivel del mar varios decimetros. Para navegacion real, consulta siempre las tablas oficiales de Puertos del Estado.',
38
+ 'Es un método de estimación teórica muy útil para planificación rápida y fines educativos. Sin embargo, no tiene en cuenta factores meteorológicos como la presión atmosférica o el viento, que pueden alterar el nivel del mar varios decímetros. Para navegación real, consulta siempre las tablas oficiales de Puertos del Estado.',
40
39
  },
41
40
  {
42
- question: '¿Que datos necesito para calcular la altura de la marea?',
41
+ question: '¿Qué datos necesito para calcular la altura de la marea?',
43
42
  answer:
44
- 'Necesitas conocer la hora y la altura (en metros) de la pleamar y la bajamar mas cercanas al momento que quieres consultar. Estos datos se encuentran en los anuarios de mareas o aplicaciones meteorologicas marinas.',
43
+ 'Necesitas conocer la hora y la altura (en metros) de la pleamar y la bajamar más cercanas al momento que quieres consultar. Estos datos se encuentran en los anuarios de mareas o aplicaciones meteorológicas marinas.',
45
44
  },
46
45
  {
47
- question: '¿Por que la marea no sube siempre a la misma velocidad?',
46
+ question: '¿Por qué la marea no sube siempre a la misma velocidad?',
48
47
  answer:
49
- 'Debido a la inercia de las grandes masas de agua y la configuracion de las cuencas oceanicas. La marea comienza a subir lentamente tras la bajamar, alcanza su velocidad maxima en las horas centrales (las horas del 3/12) y vuelve a frenarse al aproximarse a la pleamar.',
48
+ 'Debido a la inercia de las grandes masas de agua y la configuración de las cuencas oceánicas. La marea comienza a subir lentamente tras la bajamar, alcanza su velocidad máxima en las horas centrales (las horas del 3/12) y vuelve a frenarse al aproximarse a la pleamar.',
50
49
  },
51
50
  {
52
- question: '¿Como afecta la presion atmosferica a la marea?',
51
+ question: '¿Cómo afecta la presión atmosférica a la marea?',
53
52
  answer:
54
- 'La presion alta (anticiclon) empuja el agua hacia abajo, reduciendo la altura real. La presion baja (borrasca) permite que el agua suba mas. Por norma general, una variacion de 1 hPa respecto a la media supone un cambio de aproximadamente 1 cm en el nivel del mar.',
53
+ 'La presión alta (anticiclón) empuja el agua hacia abajo, reduciendo la altura real. La presión baja (borrasca) permite que el agua suba más. Por norma general, una variación de 1 hPa respecto a la media supone un cambio de aproximadamente 1 cm en el nivel del mar.',
55
54
  },
56
55
  {
57
- question: '¿Que es la amplitud de marea?',
56
+ question: '¿Qué es la amplitud de marea?',
58
57
  answer:
59
- 'Es la diferencia vertical de altura entre una pleamar y la bajamar inmediatamente anterior o posterior. Esta medida varia segun la fase lunar (mareas vivas y muertas) y la ubicacion geografica.',
58
+ 'Es la diferencia vertical de altura entre una pleamar y la bajamar inmediatamente anterior o posterior. Esta medida varía según la fase lunar (mareas vivas y muertas) y la ubicación geográfica.',
60
59
  },
61
60
  ];
62
61
 
@@ -67,90 +66,79 @@ const howTo: TideCalculatorLocaleContent['howTo'] = [
67
66
  },
68
67
  {
69
68
  name: 'Introduce los datos en la calculadora',
70
- text: 'Ingresa la hora y altura de la pleamar y la bajamar. La herramienta determinara la duracion y amplitud automaticamente.',
69
+ text: 'Ingresa la hora y altura de la pleamar y la bajamar. La herramienta determinará la duración y amplitud automáticamente.',
71
70
  },
72
71
  {
73
72
  name: 'Establece la hora de consulta',
74
- text: 'Ajusta la hora para la que deseas conocer el nivel del agua. Veras el punto exacto resaltado en la grafica.',
73
+ text: 'Ajusta la hora para la que deseas conocer el nivel del agua. Verás el punto exacto resaltado en la gráfica.',
75
74
  },
76
75
  {
77
76
  name: 'Analiza la tabla de dozavos',
78
- text: 'Revisa el desglose hora por hora para entender como fluctuara el nivel del agua durante todo el periodo.',
79
- },
80
- ];
81
-
82
- const bibliography: TideCalculatorLocaleContent['bibliography'] = [
83
- {
84
- name: 'Puertos del Estado - Prediccion de Mareas',
85
- url: 'https://portus.puertos.es/#/',
86
- },
87
- {
88
- name: 'Instituto Hidrografico de la Marina',
89
- url: 'https://armada.defensa.gob.es/ihm/',
77
+ text: 'Revisa el desglose hora por hora para entender cómo fluctuará el nivel del agua durante todo el período.',
90
78
  },
91
79
  ];
92
80
 
93
81
  const seo: TideCalculatorLocaleContent['seo'] = [
94
82
  {
95
83
  type: 'title',
96
- text: 'Dominando la Marea: La Regla de los Dozavos en la Navegacion',
84
+ text: 'Dominando la Marea: La Regla de los Dozavos en la Navegación',
97
85
  level: 2,
98
86
  },
99
87
  {
100
88
  type: 'paragraph',
101
- html: 'La navegacion costera y la entrada en puertos con calado restringido requieren un conocimiento preciso de la altura del agua en cada momento. Aunque hoy en dia disponemos de aplicaciones digitales y GPS que proporcionan datos en tiempo real, la <strong>Regla de los Dozavos</strong> sigue siendo una herramienta fundamental en la formacion de cualquier patron de embarcacion de recreo (PER) o capitan de yate. Esta regla es un metodo de estimacion matematica que permite calcular, de forma aproximada y sin necesidad de calculadoras complejas, la altura de la marea en cualquier punto de un ciclo mareal.',
89
+ html: 'La navegación costera y la entrada en puertos con calado restringido requieren un conocimiento preciso de la altura del agua en cada momento. Aunque hoy en día disponemos de aplicaciones digitales y GPS que proporcionan datos en tiempo real, la <strong>Regla de los Dozavos</strong> sigue siendo una herramienta fundamental en la formación de cualquier patrón de embarcación de recreo (PER) o capitán de yate. Esta regla es un método de estimación matemática que permite calcular, de forma aproximada y sin necesidad de calculadoras complejas, la altura de la marea en cualquier punto de un ciclo mareal.',
102
90
  },
103
91
  {
104
92
  type: 'title',
105
- text: '¿Que es exactamente la Regla de los Dozavos?',
93
+ text: '¿Qué es exactamente la Regla de los Dozavos?',
106
94
  level: 3,
107
95
  },
108
96
  {
109
97
  type: 'paragraph',
110
- html: 'La Regla de los Dozavos se basa en la observacion de que el flujo de la marea no es constante. El agua no sube ni baja a la misma velocidad durante las seis horas (aproximadamente) que dura el periodo entre una pleamar y una bajamar. En su lugar, el movimiento sigue una curva sinusoidal. Durante la primera hora, la marea se mueve lentamente; acelera en las horas centrales y vuelve a frenar a medida que se acerca al siguiente extremo.',
98
+ html: 'La Regla de los Dozavos se basa en la observación de que el flujo de la marea no es constante. El agua no sube ni baja a la misma velocidad durante las seis horas (aproximadamente) que dura el período entre una pleamar y una bajamar. En su lugar, el movimiento sigue una curva sinusoidal. Durante la primera hora, la marea se mueve lentamente; acelera en las horas centrales y vuelve a frenar a medida que se acerca al siguiente extremo.',
111
99
  },
112
100
  {
113
101
  type: 'table',
114
- headers: ['Hora del Ciclo', 'Proporcion', 'Estado del Flujo'],
102
+ headers: ['Hora del Ciclo', 'Proporción', 'Estado del Flujo'],
115
103
  rows: [
116
104
  ['<strong>1ª Hora</strong>', '1/12 de la amplitud', 'Inicio lento (Repunte)'],
117
- ['<strong>2ª Hora</strong>', '2/12 de la amplitud', 'Aceleracion del flujo'],
118
- ['<strong>3ª Hora</strong>', '3/12 de la amplitud', 'Flujo maximo (Corriente fuerte)'],
105
+ ['<strong>2ª Hora</strong>', '2/12 de la amplitud', 'Aceleración del flujo'],
106
+ ['<strong>3ª Hora</strong>', '3/12 de la amplitud', 'Flujo máximo (Corriente fuerte)'],
119
107
  ['<strong>4ª Hora</strong>', '3/12 de la amplitud', 'Mantenimiento del flujo'],
120
- ['<strong>5ª Hora</strong>', '2/12 de la amplitud', 'Desaceleracion notable'],
108
+ ['<strong>5ª Hora</strong>', '2/12 de la amplitud', 'Desaceleración notable'],
121
109
  ['<strong>6ª Hora</strong>', '1/12 de la amplitud', 'Frenado final (Hacia el estrepunte)'],
122
110
  ],
123
111
  },
124
112
  {
125
113
  type: 'title',
126
- text: '¿Como utilizar esta calculadora de altura de marea?',
114
+ text: '¿Cómo utilizar esta calculadora de altura de marea?',
127
115
  level: 3,
128
116
  },
129
117
  {
130
118
  type: 'paragraph',
131
- html: 'Nuestra herramienta automatiza este proceso para ofrecerte una visualizacion clara y rapida. Solo necesitas los datos que encontraras en cualquier anuario de mareas u oficialia de puerto: la <strong>hora y altura de la pleamar</strong>, la <strong>hora y altura de la bajamar</strong>, y la <strong>hora de consulta</strong> para la que deseas conocer la profundidad disponible.',
119
+ html: 'Nuestra herramienta automatiza este proceso para ofrecerte una visualización clara y rápida. Solo necesitas los datos que encontrarás en cualquier anuario de mareas u oficialía de puerto: la <strong>hora y altura de la pleamar</strong>, la <strong>hora y altura de la bajamar</strong>, y la <strong>hora de consulta</strong> para la que deseas conocer la profundidad disponible.',
132
120
  },
133
121
  {
134
122
  type: 'title',
135
- text: 'Limitaciones tecnicas: Factores que afectan a la marea real',
123
+ text: 'Limitaciones técnicas: Factores que afectan a la marea real',
136
124
  level: 3,
137
125
  },
138
126
  {
139
127
  type: 'paragraph',
140
- html: 'Es crucial entender que ningun metodo matematico, incluida la Regla de los Dozavos, es infalible. Existen diversos factores meteorologicos que pueden alterar significativamente la altura real del agua.',
128
+ html: 'Es crucial entender que ningún método matemático, incluida la Regla de los Dozavos, es infalible. Existen diversos factores meteorológicos que pueden alterar significativamente la altura real del agua.',
141
129
  },
142
130
  {
143
131
  type: 'glossary',
144
132
  items: [
145
- { term: 'Presion Atmosferica', definition: 'Una borrasca eleva el nivel del mar; un anticiclon lo reduce. Por norma general, ~1 cm de variacion por cada hPa de diferencia respecto a la media.' },
133
+ { term: 'Presión Atmosférica', definition: 'Una borrasca eleva el nivel del mar; un anticiclón lo reduce. Por norma general, ~1 cm de variación por cada hPa de diferencia respecto a la media.' },
146
134
  { term: 'Viento costero', definition: 'Vientos sostenidos hacia la costa (onshore) pueden apilar agua y elevar la marea por encima de lo previsto en las tablas.' },
147
- { term: 'Orografia local', definition: 'La forma de la costa, la profundidad del fondo y la presencia de estuarios o rías pueden retrasar o acelerar significativamente el flujo mareal.' },
135
+ { term: 'Orografía local', definition: 'La forma de la costa, la profundidad del fondo y la presencia de estuarios o rías pueden retrasar o acelerar significativamente el flujo mareal.' },
148
136
  ],
149
137
  },
150
138
  {
151
139
  type: 'tip',
152
140
  title: 'Nota de Seguridad',
153
- html: 'Esta herramienta utiliza un metodo de estimacion matematica. No tiene en cuenta factores meteorologicos ni la orografia local. Para navegacion real, consulte siempre las tablas oficiales de Puertos del Estado.',
141
+ html: 'Esta herramienta utiliza un método de estimación matemática. No tiene en cuenta factores meteorológicos ni la orografía local. Para navegación real, consulte siempre las tablas oficiales de Puertos del Estado.',
154
142
  },
155
143
  {
156
144
  type: 'title',
@@ -162,26 +150,26 @@ const seo: TideCalculatorLocaleContent['seo'] = [
162
150
  items: [
163
151
  {
164
152
  term: 'Amplitud de marea',
165
- definition: 'Diferencia vertical entre la pleamar y la bajamar. En el Cantabrico puede ser de varios metros; en el Mediterraneo es casi insignificante.',
153
+ definition: 'Diferencia vertical entre la pleamar y la bajamar. En el Cantábrico puede ser de varios metros; en el Mediterráneo es casi insignificante.',
166
154
  },
167
155
  {
168
- term: 'Duracion de la marea',
156
+ term: 'Duración de la marea',
169
157
  definition: 'Intervalo de tiempo entre una marea alta y la siguiente marea baja. Normalmente ronda las 6 horas y 12 minutos (ciclo semidiurno).',
170
158
  },
171
159
  {
172
160
  term: 'Cero de la carta (Datum)',
173
- definition: 'Nivel de referencia a partir del cual se miden todas las profundidades en las cartasnáuticas. Las sondas reales casi nunca son menores a las indicadas.',
161
+ definition: 'Nivel de referencia a partir del cual se miden todas las profundidades en las cartas náuticas. Las sondas reales casi nunca son menores a las indicadas.',
174
162
  },
175
163
  ],
176
164
  },
177
165
  {
178
166
  type: 'title',
179
- text: 'Uso educativo y practico',
167
+ text: 'Uso educativo y práctico',
180
168
  level: 3,
181
169
  },
182
170
  {
183
171
  type: 'paragraph',
184
- html: 'Esta calculadora ha sido diseñada como un recurso de apoyo para estudiantes de nautica y navegantes que buscan una forma rapida de visualizar el ciclo mareal. Al mostrar la grafica de la curva estimada, permite comprender visualmente en que fase se encuentra el puerto y con que rapidez esta cambiando la profundidad, algo esencial para decidir si es seguro fondear en una cala o si es mejor esperar a que suba la marea para entrar a puerto o cruzar un bajo.',
172
+ html: 'Esta calculadora ha sido diseñada como un recurso de apoyo para estudiantes de náutica y navegantes que buscan una forma rápida de visualizar el ciclo mareal. Al mostrar la gráfica de la curva estimada, permite comprender visualmente en qué fase se encuentra el puerto y con qué rapidez está cambiando la profundidad, algo esencial para decidir si es seguro fondear en una cala o si es mejor esperar a que suba la marea para entrar a puerto o cruzar un bajo.',
185
173
  },
186
174
  ];
187
175
 
@@ -207,7 +195,7 @@ const schemas: TideCalculatorLocaleContent['schemas'] = [
207
195
  {
208
196
  '@context': 'https://schema.org',
209
197
  '@type': 'HowTo',
210
- name: `Como usar: ${title}`,
198
+ name: `Cómo usar: ${title}`,
211
199
  step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
212
200
  } as WithContext<HowTo>,
213
201
  ];