@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.
- package/package.json +1 -1
- package/src/category/i18n/de.ts +1 -1
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/es.ts +16 -16
- package/src/category/i18n/fr.ts +16 -16
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/it.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/ru.ts +3 -3
- package/src/category/i18n/sv.ts +1 -1
- package/src/category/i18n/tr.ts +1 -1
- package/src/layouts/PreviewLayout.astro +1 -0
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +1 -31
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tool/endurance/bibliography.astro +1 -1
- package/src/tool/endurance/bibliography.ts +12 -0
- package/src/tool/endurance/entry.ts +2 -2
- package/src/tool/endurance/i18n/de.ts +1 -13
- package/src/tool/endurance/i18n/en.ts +1 -12
- package/src/tool/endurance/i18n/es.ts +55 -67
- package/src/tool/endurance/i18n/fr.ts +71 -83
- package/src/tool/endurance/i18n/id.ts +1 -13
- package/src/tool/endurance/i18n/it.ts +1 -13
- package/src/tool/endurance/i18n/ja.ts +1 -13
- package/src/tool/endurance/i18n/ko.ts +1 -13
- package/src/tool/endurance/i18n/nl.ts +1 -13
- package/src/tool/endurance/i18n/pl.ts +1 -13
- package/src/tool/endurance/i18n/pt.ts +1 -13
- package/src/tool/endurance/i18n/ru.ts +10 -22
- package/src/tool/endurance/i18n/sv.ts +1 -13
- package/src/tool/endurance/i18n/tr.ts +1 -13
- package/src/tool/endurance/i18n/zh.ts +1 -13
- package/src/tool/endurance/seo.astro +2 -42
- package/src/tool/nauticalConverter/bibliography.astro +1 -1
- package/src/tool/nauticalConverter/bibliography.ts +12 -0
- package/src/tool/nauticalConverter/entry.ts +2 -2
- package/src/tool/nauticalConverter/i18n/de.ts +1 -13
- package/src/tool/nauticalConverter/i18n/en.ts +1 -13
- package/src/tool/nauticalConverter/i18n/es.ts +47 -59
- package/src/tool/nauticalConverter/i18n/fr.ts +54 -66
- package/src/tool/nauticalConverter/i18n/id.ts +1 -13
- package/src/tool/nauticalConverter/i18n/it.ts +1 -13
- package/src/tool/nauticalConverter/i18n/ja.ts +1 -13
- package/src/tool/nauticalConverter/i18n/ko.ts +1 -13
- package/src/tool/nauticalConverter/i18n/nl.ts +1 -13
- package/src/tool/nauticalConverter/i18n/pl.ts +4 -16
- package/src/tool/nauticalConverter/i18n/pt.ts +1 -13
- package/src/tool/nauticalConverter/i18n/ru.ts +9 -21
- package/src/tool/nauticalConverter/i18n/sv.ts +1 -13
- package/src/tool/nauticalConverter/i18n/tr.ts +1 -13
- package/src/tool/nauticalConverter/i18n/zh.ts +4 -16
- package/src/tool/nauticalConverter/seo.astro +2 -39
- package/src/tool/sailArea/bibliography.astro +1 -1
- package/src/tool/sailArea/bibliography.ts +16 -0
- package/src/tool/sailArea/entry.ts +2 -2
- package/src/tool/sailArea/i18n/de.ts +1 -17
- package/src/tool/sailArea/i18n/en.ts +1 -17
- package/src/tool/sailArea/i18n/es.ts +54 -70
- package/src/tool/sailArea/i18n/fr.ts +71 -87
- package/src/tool/sailArea/i18n/id.ts +1 -17
- package/src/tool/sailArea/i18n/it.ts +1 -17
- package/src/tool/sailArea/i18n/ja.ts +1 -17
- package/src/tool/sailArea/i18n/ko.ts +1 -17
- package/src/tool/sailArea/i18n/nl.ts +1 -17
- package/src/tool/sailArea/i18n/pl.ts +1 -17
- package/src/tool/sailArea/i18n/pt.ts +1 -17
- package/src/tool/sailArea/i18n/ru.ts +9 -25
- package/src/tool/sailArea/i18n/sv.ts +1 -17
- package/src/tool/sailArea/i18n/tr.ts +1 -17
- package/src/tool/sailArea/i18n/zh.ts +6 -22
- package/src/tool/sailArea/seo.astro +2 -39
- package/src/tool/speedConverter/bibliography.astro +1 -1
- package/src/tool/speedConverter/bibliography.ts +12 -0
- package/src/tool/speedConverter/entry.ts +2 -2
- package/src/tool/speedConverter/i18n/de.ts +1 -13
- package/src/tool/speedConverter/i18n/en.ts +1 -13
- package/src/tool/speedConverter/i18n/es.ts +59 -71
- package/src/tool/speedConverter/i18n/fr.ts +76 -88
- package/src/tool/speedConverter/i18n/id.ts +1 -13
- package/src/tool/speedConverter/i18n/it.ts +1 -13
- package/src/tool/speedConverter/i18n/ja.ts +1 -13
- package/src/tool/speedConverter/i18n/ko.ts +1 -13
- package/src/tool/speedConverter/i18n/nl.ts +1 -13
- package/src/tool/speedConverter/i18n/pl.ts +1 -13
- package/src/tool/speedConverter/i18n/pt.ts +1 -13
- package/src/tool/speedConverter/i18n/ru.ts +7 -19
- package/src/tool/speedConverter/i18n/sv.ts +1 -13
- package/src/tool/speedConverter/i18n/tr.ts +1 -13
- package/src/tool/speedConverter/i18n/zh.ts +6 -18
- package/src/tool/speedConverter/seo.astro +2 -30
- package/src/tool/tideCalculator/bibliography.astro +1 -1
- package/src/tool/tideCalculator/bibliography.ts +12 -0
- package/src/tool/tideCalculator/entry.ts +2 -2
- package/src/tool/tideCalculator/i18n/de.ts +1 -13
- package/src/tool/tideCalculator/i18n/en.ts +1 -13
- package/src/tool/tideCalculator/i18n/es.ts +40 -52
- package/src/tool/tideCalculator/i18n/fr.ts +44 -56
- package/src/tool/tideCalculator/i18n/id.ts +1 -13
- package/src/tool/tideCalculator/i18n/it.ts +1 -13
- package/src/tool/tideCalculator/i18n/ja.ts +1 -13
- package/src/tool/tideCalculator/i18n/ko.ts +1 -13
- package/src/tool/tideCalculator/i18n/nl.ts +1 -13
- package/src/tool/tideCalculator/i18n/pl.ts +1 -13
- package/src/tool/tideCalculator/i18n/pt.ts +1 -13
- package/src/tool/tideCalculator/i18n/ru.ts +7 -19
- package/src/tool/tideCalculator/i18n/sv.ts +1 -13
- package/src/tool/tideCalculator/i18n/tr.ts +1 -13
- package/src/tool/tideCalculator/i18n/zh.ts +2 -14
- package/src/tool/tideCalculator/seo.astro +2 -48
- package/src/tool/tideCalculator/tide-height-calculator.css +136 -5
- package/src/tool/underKeel/bibliography.astro +1 -1
- package/src/tool/underKeel/bibliography.ts +12 -0
- package/src/tool/underKeel/entry.ts +2 -2
- package/src/tool/underKeel/i18n/de.ts +1 -13
- package/src/tool/underKeel/i18n/en.ts +1 -13
- package/src/tool/underKeel/i18n/es.ts +40 -52
- package/src/tool/underKeel/i18n/fr.ts +46 -58
- package/src/tool/underKeel/i18n/id.ts +2 -14
- package/src/tool/underKeel/i18n/it.ts +2 -14
- package/src/tool/underKeel/i18n/ja.ts +2 -14
- package/src/tool/underKeel/i18n/ko.ts +2 -14
- package/src/tool/underKeel/i18n/nl.ts +2 -14
- package/src/tool/underKeel/i18n/pl.ts +2 -14
- package/src/tool/underKeel/i18n/pt.ts +2 -14
- package/src/tool/underKeel/i18n/ru.ts +7 -19
- package/src/tool/underKeel/i18n/sv.ts +2 -14
- package/src/tool/underKeel/i18n/tr.ts +2 -14
- package/src/tool/underKeel/i18n/zh.ts +2 -14
- 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: '
|
|
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
|
-
<
|
|
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}
|
|
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
|
|
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: '
|
|
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: '
|
|
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: '¿
|
|
31
|
+
question: '¿Qué es la Regla de los Dozavos y para qué sirve?',
|
|
33
32
|
answer:
|
|
34
|
-
'La Regla de los Dozavos es un
|
|
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
|
|
36
|
+
question: '¿Es fiable este método para la navegación real?',
|
|
38
37
|
answer:
|
|
39
|
-
'Es un
|
|
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: '¿
|
|
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
|
|
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
|
|
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
|
|
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: '¿
|
|
51
|
+
question: '¿Cómo afecta la presión atmosférica a la marea?',
|
|
53
52
|
answer:
|
|
54
|
-
'La
|
|
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: '¿
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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: '¿
|
|
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
|
|
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', '
|
|
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', '
|
|
118
|
-
['<strong>3ª Hora</strong>', '3/12 de la amplitud', 'Flujo
|
|
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', '
|
|
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: '¿
|
|
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
|
|
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
|
|
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
|
|
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: '
|
|
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: '
|
|
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
|
|
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
|
|
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: '
|
|
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
|
|
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
|
|
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
|
|
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: `
|
|
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
|
];
|