@jjlmoya/utils-nautical 1.5.0 → 1.7.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 +72 -71
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/endurance/component.astro +340 -1
- package/src/tool/endurance/i18n/de.ts +249 -0
- package/src/tool/endurance/i18n/id.ts +249 -0
- package/src/tool/endurance/i18n/it.ts +249 -0
- package/src/tool/endurance/i18n/ja.ts +249 -0
- package/src/tool/endurance/i18n/ko.ts +249 -0
- package/src/tool/endurance/i18n/nl.ts +249 -0
- package/src/tool/endurance/i18n/pl.ts +249 -0
- package/src/tool/endurance/i18n/pt.ts +249 -0
- package/src/tool/endurance/i18n/ru.ts +249 -0
- package/src/tool/endurance/i18n/sv.ts +249 -0
- package/src/tool/endurance/i18n/tr.ts +249 -0
- package/src/tool/endurance/i18n/zh.ts +249 -0
- package/src/tool/endurance/index.ts +12 -0
- package/src/tool/nauticalConverter/component.astro +208 -1
- package/src/tool/nauticalConverter/i18n/de.ts +239 -0
- package/src/tool/nauticalConverter/i18n/id.ts +239 -0
- package/src/tool/nauticalConverter/i18n/it.ts +239 -0
- package/src/tool/nauticalConverter/i18n/ja.ts +239 -0
- package/src/tool/nauticalConverter/i18n/ko.ts +239 -0
- package/src/tool/nauticalConverter/i18n/nl.ts +239 -0
- package/src/tool/nauticalConverter/i18n/pl.ts +239 -0
- package/src/tool/nauticalConverter/i18n/pt.ts +239 -0
- package/src/tool/nauticalConverter/i18n/ru.ts +239 -0
- package/src/tool/nauticalConverter/i18n/sv.ts +239 -0
- package/src/tool/nauticalConverter/i18n/tr.ts +239 -0
- package/src/tool/nauticalConverter/i18n/zh.ts +239 -0
- package/src/tool/nauticalConverter/index.ts +12 -0
- package/src/tool/sailArea/component.astro +355 -2
- package/src/tool/sailArea/i18n/de.ts +275 -0
- package/src/tool/sailArea/i18n/id.ts +275 -0
- package/src/tool/sailArea/i18n/it.ts +275 -0
- package/src/tool/sailArea/i18n/ja.ts +275 -0
- package/src/tool/sailArea/i18n/ko.ts +275 -0
- package/src/tool/sailArea/i18n/nl.ts +275 -0
- package/src/tool/sailArea/i18n/pl.ts +275 -0
- package/src/tool/sailArea/i18n/pt.ts +275 -0
- package/src/tool/sailArea/i18n/ru.ts +275 -0
- package/src/tool/sailArea/i18n/sv.ts +275 -0
- package/src/tool/sailArea/i18n/tr.ts +275 -0
- package/src/tool/sailArea/i18n/zh.ts +275 -0
- package/src/tool/sailArea/index.ts +12 -0
- package/src/tool/speedConverter/component.astro +242 -1
- package/src/tool/speedConverter/i18n/de.ts +271 -0
- package/src/tool/speedConverter/i18n/id.ts +271 -0
- package/src/tool/speedConverter/i18n/it.ts +271 -0
- package/src/tool/speedConverter/i18n/ja.ts +271 -0
- package/src/tool/speedConverter/i18n/ko.ts +271 -0
- package/src/tool/speedConverter/i18n/nl.ts +271 -0
- package/src/tool/speedConverter/i18n/pl.ts +271 -0
- package/src/tool/speedConverter/i18n/pt.ts +271 -0
- package/src/tool/speedConverter/i18n/ru.ts +194 -0
- package/src/tool/speedConverter/i18n/sv.ts +271 -0
- package/src/tool/speedConverter/i18n/tr.ts +225 -0
- package/src/tool/speedConverter/i18n/zh.ts +271 -0
- package/src/tool/speedConverter/index.ts +12 -0
- package/src/tool/tideCalculator/component.astro +313 -1
- package/src/tool/tideCalculator/i18n/de.ts +203 -0
- package/src/tool/tideCalculator/i18n/id.ts +203 -0
- package/src/tool/tideCalculator/i18n/it.ts +203 -0
- package/src/tool/tideCalculator/i18n/ja.ts +203 -0
- package/src/tool/tideCalculator/i18n/ko.ts +203 -0
- package/src/tool/tideCalculator/i18n/nl.ts +203 -0
- package/src/tool/tideCalculator/i18n/pl.ts +203 -0
- package/src/tool/tideCalculator/i18n/pt.ts +203 -0
- package/src/tool/tideCalculator/i18n/ru.ts +203 -0
- package/src/tool/tideCalculator/i18n/sv.ts +203 -0
- package/src/tool/tideCalculator/i18n/tr.ts +203 -0
- package/src/tool/tideCalculator/i18n/zh.ts +203 -0
- package/src/tool/tideCalculator/index.ts +12 -0
- package/src/tool/underKeel/component.astro +321 -1
- package/src/tool/underKeel/i18n/de.ts +189 -0
- package/src/tool/underKeel/i18n/en.ts +2 -2
- package/src/tool/underKeel/i18n/fr.ts +2 -2
- package/src/tool/underKeel/i18n/id.ts +189 -0
- package/src/tool/underKeel/i18n/it.ts +176 -0
- package/src/tool/underKeel/i18n/ja.ts +185 -0
- package/src/tool/underKeel/i18n/ko.ts +185 -0
- package/src/tool/underKeel/i18n/nl.ts +176 -0
- package/src/tool/underKeel/i18n/pl.ts +176 -0
- package/src/tool/underKeel/i18n/pt.ts +176 -0
- package/src/tool/underKeel/i18n/ru.ts +176 -0
- package/src/tool/underKeel/i18n/sv.ts +176 -0
- package/src/tool/underKeel/i18n/tr.ts +185 -0
- package/src/tool/underKeel/i18n/zh.ts +185 -0
- package/src/tool/underKeel/index.ts +12 -0
- package/src/tool/endurance/style.css +0 -337
- package/src/tool/nauticalConverter/style.css +0 -205
- package/src/tool/sailArea/style.css +0 -351
- package/src/tool/speedConverter/style.css +0 -239
- package/src/tool/tideCalculator/style.css +0 -310
- package/src/tool/underKeel/style.css +0 -318
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { UnderKeelUI, UnderKeelLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'under-keel-clearance-calculator';
|
|
5
|
+
const title = '용골 하부 간격 UKC 계산기';
|
|
6
|
+
const description =
|
|
7
|
+
'모래턱, 수로 또는 흘수 제한 지점을 통과하기 위한 안전한 시간대를 계산합니다. 선박 흘수, 해도 수심 및 조석 데이터를 입력하여 정확한 안전 항해 가능 시간을 확인하세요.';
|
|
8
|
+
|
|
9
|
+
const ui: UnderKeelUI = {
|
|
10
|
+
parametersLabel: '매개변수',
|
|
11
|
+
boatDraftLabel: '선박 흘수',
|
|
12
|
+
chartDepthLabel: '해도 수심',
|
|
13
|
+
safetyMarginLabel: '안전 여유',
|
|
14
|
+
highTideLabel: '만조',
|
|
15
|
+
lowTideLabel: '간조',
|
|
16
|
+
metersLabel: '미터',
|
|
17
|
+
passWindowLabel: '항해 가능 시간대',
|
|
18
|
+
neededLabel: '필요 수심',
|
|
19
|
+
tideRequiredLabel: '최소 필요 조고',
|
|
20
|
+
statusNeverLabel: '이 사이클에는 통과 불가',
|
|
21
|
+
statusAlwaysLabel: '사이클 내내 통과 가능',
|
|
22
|
+
statusFromLabel: '통과 시작:',
|
|
23
|
+
statusUntilLabel: '통과 종료:',
|
|
24
|
+
bottomLabel: '바닥면',
|
|
25
|
+
faqTitle: '자주 묻는 질문',
|
|
26
|
+
bibliographyTitle: '참고 문헌',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faq: UnderKeelLocaleContent['faq'] = [
|
|
30
|
+
{
|
|
31
|
+
question: '용골 하부 간격(UKC) 계산이란 정확히 무엇인가요?',
|
|
32
|
+
answer: '선박의 흘수(물에 잠긴 깊이)에 따라 모래턱이나 좁은 수로 같은 위험 지점을 안전하게 통과할 수 있는 충분한 수심이 확보되는 시점을 계산하는 것입니다.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: '어느 정도의 안전 여유를 권장하나요?',
|
|
36
|
+
answer: '레저용 선박의 경우 일반적으로 선박 흘수보다 0.5~1미터 이상의 최소 안전 여유를 두는 것이 권장됩니다. 이 여유는 조석 계산 오차, 기압 변화 또는 예상치 못한 너울(swell)을 상쇄하기 위한 것입니다.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: '너울은 용골 하부 간격에 어떤 영향을 주나요?',
|
|
40
|
+
answer: '너울은 선체를 상하로 흔듭니다. 파도의 골(lowest point)에서는 배가 정지해 있을 때보다 바닥에 더 가까워집니다. 너울이 있는 지역을 통과할 때는 안전 여유를 대폭 늘려야 합니다.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: '해도 수심(chart sounding)이란 무엇인가요?',
|
|
44
|
+
answer: '조석이 기본 수준면(Chart Datum)일 때 해당 지점의 최소 수심입니다. 여기에 현재 조고를 더하면 실제 가용 수심이 됩니다.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: '해도의 수심 숫자 아래에 선이 그어져 있는 것은 무엇을 의미하나요?',
|
|
48
|
+
answer: '해당 지점이 기본 수준면일 때 수면 위로 노출(간출)된다는 뜻입니다. 그 위를 통과하려면 해당 수치보다 훨씬 높은 조고가 필요합니다.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: '스쿼트 현상(Squat effect)이란 무엇이며 항해에 어떤 영향을 주나요?',
|
|
52
|
+
answer: '수심이 얕은 수로를 항행하는 선박이 유체역학적 현상으로 인해 정지 시보다 더 깊게 가라앉는 현상입니다. 속도가 빠를수록 동적 흘수가 증가하여 용골 아래 수심이 줄어들게 됩니다.',
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const howTo: UnderKeelLocaleContent['howTo'] = [
|
|
57
|
+
{
|
|
58
|
+
name: '흘수 및 안전 여유 설정',
|
|
59
|
+
text: '선박의 최대 흘수를 확인하고 충분한 안전 여유(예: 0.5m)를 더합니다.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: '해도 수심 확인',
|
|
63
|
+
text: '항해하려는 위험 지점의 해도 수심 값을 확인합니다. 바닥이 모래인지 암반인지 확인하세요.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: '조석 데이터 입력',
|
|
67
|
+
text: '가장 가까운 공식 조석표에서 만조와 간조의 시각 및 조고를 입력합니다.',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: '항해 가능 시간 확인',
|
|
71
|
+
text: '본 툴은 안전한 항해를 위해 충분한 수심이 확보되는 정확한 시간대를 보여줍니다.',
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
const bibliography: UnderKeelLocaleContent['bibliography'] = [
|
|
76
|
+
{
|
|
77
|
+
name: 'Ministerio de Transportes - Recreational Boating',
|
|
78
|
+
url: 'https://www.mitma.gob.es/marina-mercante/nautica-de-recreo/',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'Portos de Galicia - Tide Tables',
|
|
82
|
+
url: 'https://portosdegalicia.gal/es/taboa-de-mareas',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
const seo: UnderKeelLocaleContent['seo'] = [
|
|
87
|
+
{
|
|
88
|
+
type: 'title',
|
|
89
|
+
text: '용골 하부 간격: 얕은 물에서의 안전 항해',
|
|
90
|
+
level: 2,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: '항해 계획은 해도에 경로를 그리는 것으로 끝나지 않습니다. 연안 항해사에게 가장 중요한 계산 중 하나는 <strong>용골 하부 간격(Under-Keel Clearance, UKC)</strong>입니다. 즉, 좌초 없이 위험 지점을 통과하기 위해 언제 충분한 수심이 확보될지 아는 것입니다.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: '해도 수심과 조석의 관계는?',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: '해도의 수심(sounding)은 <strong>기본 수준면(Chart Datum)</strong>을 기준으로 합니다. 이 수준은 관례적으로 조석이 정상적인 조건에서 도달하는 최저 수위입니다. 특정 시점에 배가 마주하게 될 실제 수심은 해도 수심에 해당 시점의 조고를 더한 값입니다.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: '계산 요소: 흘수 및 여유량',
|
|
108
|
+
level: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'list',
|
|
112
|
+
items: [
|
|
113
|
+
{ term: '최대 적재 흘수', definition: '만재 상태에서 선박의 최하단(용골)이 잠기는 깊이.' },
|
|
114
|
+
{ term: '해도 수심', definition: '해당 지점의 해도상 수치. 밑줄이 그어져 있다면 기본 수준면에서 노출되는 지점입니다.' },
|
|
115
|
+
{ term: '안전 여유', definition: '흘수 위에 추가로 확보하는 최소 0.5~1미터의 여유량.' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: '항해 가능 시간대는 어떻게 작동하나요?',
|
|
121
|
+
level: 3,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'paragraph',
|
|
125
|
+
html: '계산기는 수위가 흘수와 안전 여유의 합보다 높아지는 정확한 시점을 결정합니다. 그 시점부터 <strong>항해 가능 시간대</strong>가 열립니다. 썰물 때라면 수위가 안전 한계선 아래로 떨어지기 전까지 통과 가능한 시간을 알려줍니다.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: '실제 항해에 영향을 미치는 요인들',
|
|
130
|
+
level: 3,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'table',
|
|
134
|
+
headers: ['요인', '영향', '권장 사항'],
|
|
135
|
+
rows: [
|
|
136
|
+
['<strong>너울</strong>', '선체 하부 수심 감소', '안전 여유를 대폭 늘릴 것'],
|
|
137
|
+
['<strong>스쿼트 현상</strong>', '흡입력으로 인한 흘수 증가', '위험 구역에서는 속도를 줄일 것'],
|
|
138
|
+
['<strong>모래 바닥</strong>', '폭풍으로 변하는 수심', '음향측심기를 켜두고 추가 여유 확보'],
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'tip',
|
|
143
|
+
title: '항해 팁',
|
|
144
|
+
html: '항해 가능 시간이 매우 짧거나 기상이 악화되는 경우, 조석이 필요한 높이까지 차오를 때까지 수심이 깊은 먼 바다에서 대기하는 것이 가장 현명한 결정입니다.',
|
|
145
|
+
},
|
|
146
|
+
];
|
|
147
|
+
|
|
148
|
+
const schemas: UnderKeelLocaleContent['schemas'] = [
|
|
149
|
+
{
|
|
150
|
+
'@context': 'https://schema.org',
|
|
151
|
+
'@type': 'SoftwareApplication',
|
|
152
|
+
name: title,
|
|
153
|
+
description,
|
|
154
|
+
applicationCategory: 'UtilityApplication',
|
|
155
|
+
operatingSystem: 'Web',
|
|
156
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
157
|
+
} as WithContext<SoftwareApplication>,
|
|
158
|
+
{
|
|
159
|
+
'@context': 'https://schema.org',
|
|
160
|
+
'@type': 'FAQPage',
|
|
161
|
+
mainEntity: faq.map((item) => ({
|
|
162
|
+
'@type': 'Question',
|
|
163
|
+
name: item.question,
|
|
164
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
165
|
+
})),
|
|
166
|
+
} as WithContext<FAQPage>,
|
|
167
|
+
{
|
|
168
|
+
'@context': 'https://schema.org',
|
|
169
|
+
'@type': 'HowTo',
|
|
170
|
+
name: `사용법: ${title}`,
|
|
171
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
172
|
+
} as WithContext<HowTo>,
|
|
173
|
+
];
|
|
174
|
+
|
|
175
|
+
export const content: UnderKeelLocaleContent = {
|
|
176
|
+
slug,
|
|
177
|
+
title,
|
|
178
|
+
description,
|
|
179
|
+
ui,
|
|
180
|
+
seo,
|
|
181
|
+
faq,
|
|
182
|
+
bibliography,
|
|
183
|
+
howTo,
|
|
184
|
+
schemas,
|
|
185
|
+
};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { UnderKeelUI, UnderKeelLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'ukc-calculator-nl';
|
|
5
|
+
const title = 'Kielspeling UKC Calculator';
|
|
6
|
+
const description =
|
|
7
|
+
'Bereken het veilige tijdvenster om drempels, kanalen of diepgang-beperkte punten te passeren. Voer de diepgang van uw boot, de kaartdiepte en getijdegegevens in.';
|
|
8
|
+
|
|
9
|
+
const ui: UnderKeelUI = {
|
|
10
|
+
parametersLabel: 'Parameters',
|
|
11
|
+
boatDraftLabel: 'Diepgang Boot',
|
|
12
|
+
chartDepthLabel: 'Kaartdiepte',
|
|
13
|
+
safetyMarginLabel: 'Veiligheidsmarge',
|
|
14
|
+
highTideLabel: 'Hoogwater',
|
|
15
|
+
lowTideLabel: 'Laagwater',
|
|
16
|
+
metersLabel: 'meter',
|
|
17
|
+
passWindowLabel: 'Vaarvenster',
|
|
18
|
+
neededLabel: 'Benodigde diepte',
|
|
19
|
+
tideRequiredLabel: 'Minimaal benodigd getij',
|
|
20
|
+
statusNeverLabel: 'Geen kielspeling in deze cyclus',
|
|
21
|
+
statusAlwaysLabel: 'Altijd veilig gedurende de cyclus',
|
|
22
|
+
statusFromLabel: 'Vaarvenster vanaf:',
|
|
23
|
+
statusUntilLabel: 'Vaarvenster tot:',
|
|
24
|
+
bottomLabel: 'BODEM',
|
|
25
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
26
|
+
bibliographyTitle: 'Bibliografie',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faq: UnderKeelLocaleContent['faq'] = [
|
|
30
|
+
{
|
|
31
|
+
question: 'Wat is een kielspeling-berekening precies?',
|
|
32
|
+
answer: 'Het is de berekening van het moment waarop er voldoende diepte is op een kritiek punt (zoals een zandbank of een nauw kanaal) om een veilig transport van een schip mogelijk te maken, afhankelijk van de diepgang.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Hoeveel veiligheidsmarge wordt aanbevolen?',
|
|
36
|
+
answer: 'Voor recreatievaartuigen wordt meestal een minimale veiligheidsmarge tussen 0,5 en 1 meter boven de diepgang van de boot aanbevolen. Deze marge compenseert mogelijke fouten in getijdeberekeningen, atmosferische drukvariaties of onverwachte deining.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'Welke invloed heeft deining op de kielspeling?',
|
|
40
|
+
answer: 'Deining veroorzaakt verticale oscillaties in de romp. Op het laagste punt van de golf bevindt de boot zich dichter bij de bodem dan in rust. Bij het passeren van gebieden met deining moet de veiligheidsmarge aanzienlijk worden verhoogd.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Wat is de kaartdiepte?',
|
|
44
|
+
answer: 'Het is de minimale diepte op een punt wanneer het getij op Chart Datum staat. Het wordt opgeteld bij de getijdenhoogte van dat moment om de totale beschikbare diepte te geven.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: 'Wat betekent een onderstreepte diepteschatting op de kaart?',
|
|
48
|
+
answer: 'Het betekent dat dat punt droogvalt wanneer het getij op Chart Datum staat. U hebt dan een hogere getijdenhoogte nodig om eroverheen te kunnen varen.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: 'Wat is het Squat-effect?',
|
|
52
|
+
answer: 'Het is een hydrodynamisch fenomeen waarbij een schip dat door ondiepe kanalen vaart, de neiging heeft lager te zinken ten opzichte van de waterlijn. Hoe sneller u vaart, hoe meer de dynamische diepgang toeneemt en hoe minder water u onder de kiel hebt.',
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const howTo: UnderKeelLocaleContent['howTo'] = [
|
|
57
|
+
{
|
|
58
|
+
name: 'Definieer diepgang en veiligheidsmarge',
|
|
59
|
+
text: 'Meet de diepgang van uw boot op het maximale punt en voeg een prudente veiligheidsmarge toe (bijv. 0,5 m).',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Zoek de kaartdiepte op',
|
|
63
|
+
text: 'Zoek de waarde voor het kritieke punt waar u gaat varen. Let op of het een zanderig of rotsachtig gebied is.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Voer de getijdengegevens in',
|
|
67
|
+
text: 'Gebruik de tijden en hoogtes van hoog- en laagwater uit de dichtstbijzijnde officiële getijdenalmanak.',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Controleer uw vaarvenster',
|
|
71
|
+
text: 'De tool toont het exacte tijdsinterval waarin u voldoende diepte hebt om veilig te navigeren.',
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
const bibliography: UnderKeelLocaleContent['bibliography'] = [
|
|
76
|
+
{
|
|
77
|
+
name: 'Ministerio de Transportes - Recreational Boating',
|
|
78
|
+
url: 'https://www.mitma.gob.es/marina-mercante/nautica-de-recreo/',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'Portos de Galicia - Tide Tables',
|
|
82
|
+
url: 'https://portosdegalicia.gal/es/taboa-de-mareas',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
const seo: UnderKeelLocaleContent['seo'] = [
|
|
87
|
+
{
|
|
88
|
+
type: 'title',
|
|
89
|
+
text: 'Kielspeling: Veilig Navigeren over Ondiepten',
|
|
90
|
+
level: 2,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'Het plannen van een passage eindigt niet met het tekenen van een koers op de kaart. Voor de kustnavigator is een van de meest kritische berekeningen de <strong>kielspeling (UKC)</strong>: weten op welk tijdstip er voldoende diepte zal zijn om een kritiek punt over te steken zonder vast te lopen.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: 'Wat is de kaartdiepte en hoe verhoudt deze zich tot het getij?',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: 'Op zeekaarten zijn diepten (peilingen) gerelateerd aan het <strong>Reductievlak (Chart Datum)</strong>. De werkelijke diepte die uw boot op een bepaald moment zal vinden, is de som van die peiling plus de getijdenhoogte op dat moment.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Elementen van de berekening: Diepgang en Marge',
|
|
108
|
+
level: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'list',
|
|
112
|
+
items: [
|
|
113
|
+
{ term: 'Maximale beladen diepgang', definition: 'De diepte die het laagste punt van de boot (de kiel) bereikt bij volledige belading.' },
|
|
114
|
+
{ term: 'Kaartdiepte', definition: 'Het getal op de zeekaart voor het punt dat u wilt oversteken.' },
|
|
115
|
+
{ term: 'Veiligheidsmarge', definition: 'Extra vrije ruimte van minimaal 0,5 tot 1 meter boven de diepgang.' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Factoren die de passage beïnvloeden',
|
|
121
|
+
level: 3,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'table',
|
|
125
|
+
headers: ['Factor', 'Effect', 'Aanbeveling'],
|
|
126
|
+
rows: [
|
|
127
|
+
['<strong>Deining</strong>', 'Vermindert het water onder de romp', 'Verhoog de veiligheidsmarge aanzienlijk'],
|
|
128
|
+
['<strong>Squat-effect</strong>', 'Verhoogt de diepgang door aanzuiging', 'Snelheid verminderen in kritieke gebieden'],
|
|
129
|
+
['<strong>Zandbodem</strong>', 'Diepte variabel door stormen', 'Houd dieptemeter actief en extra marge aan'],
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'tip',
|
|
134
|
+
title: 'Navigatietip',
|
|
135
|
+
html: 'Als uw vaarvenster erg nauw is of het weer verslechtert, is het meestal de verstandigste beslissing om buitengaats in diep water te wachten tot het getij tot de vereiste hoogte is gestegen.',
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
|
|
139
|
+
const schemas: UnderKeelLocaleContent['schemas'] = [
|
|
140
|
+
{
|
|
141
|
+
'@context': 'https://schema.org',
|
|
142
|
+
'@type': 'SoftwareApplication',
|
|
143
|
+
name: title,
|
|
144
|
+
description,
|
|
145
|
+
applicationCategory: 'UtilityApplication',
|
|
146
|
+
operatingSystem: 'Web',
|
|
147
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
148
|
+
} as WithContext<SoftwareApplication>,
|
|
149
|
+
{
|
|
150
|
+
'@context': 'https://schema.org',
|
|
151
|
+
'@type': 'FAQPage',
|
|
152
|
+
mainEntity: faq.map((item) => ({
|
|
153
|
+
'@type': 'Question',
|
|
154
|
+
name: item.question,
|
|
155
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
156
|
+
})),
|
|
157
|
+
} as WithContext<FAQPage>,
|
|
158
|
+
{
|
|
159
|
+
'@context': 'https://schema.org',
|
|
160
|
+
'@type': 'HowTo',
|
|
161
|
+
name: `Gebruiksaanwijzing: ${title}`,
|
|
162
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
163
|
+
} as WithContext<HowTo>,
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
export const content: UnderKeelLocaleContent = {
|
|
167
|
+
slug,
|
|
168
|
+
title,
|
|
169
|
+
description,
|
|
170
|
+
ui,
|
|
171
|
+
seo,
|
|
172
|
+
faq,
|
|
173
|
+
bibliography,
|
|
174
|
+
howTo,
|
|
175
|
+
schemas,
|
|
176
|
+
};
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { UnderKeelUI, UnderKeelLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'ukc-kalkulator-pl';
|
|
5
|
+
const title = 'Kalkulator Rezerwy pod Stępką UKC';
|
|
6
|
+
const description =
|
|
7
|
+
'Oblicz bezpieczne okno czasowe na pokonanie mielizn, kanałów lub punktów z ograniczonym zanurzeniem. Wprowadź zanurzenie łodzi, głębokość z mapy i dane pływowe.';
|
|
8
|
+
|
|
9
|
+
const ui: UnderKeelUI = {
|
|
10
|
+
parametersLabel: 'Parametry',
|
|
11
|
+
boatDraftLabel: 'Zanurzenie łodzi',
|
|
12
|
+
chartDepthLabel: 'Głębokość z mapy',
|
|
13
|
+
safetyMarginLabel: 'Margines bezpieczeństwa',
|
|
14
|
+
highTideLabel: 'Wysoka woda',
|
|
15
|
+
lowTideLabel: 'Niska woda',
|
|
16
|
+
metersLabel: 'metry',
|
|
17
|
+
passWindowLabel: 'Okno przejścia',
|
|
18
|
+
neededLabel: 'Wymagana głębokość',
|
|
19
|
+
tideRequiredLabel: 'Minimalny wymagany pływ',
|
|
20
|
+
statusNeverLabel: 'Brak rezerwy w tym cyklu',
|
|
21
|
+
statusAlwaysLabel: 'Bezpiecznie przez cały cykl',
|
|
22
|
+
statusFromLabel: 'Przejście od:',
|
|
23
|
+
statusUntilLabel: 'Przejście do:',
|
|
24
|
+
bottomLabel: 'DNO',
|
|
25
|
+
faqTitle: 'Często zadawane pytania',
|
|
26
|
+
bibliographyTitle: 'Bibliografia',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faq: UnderKeelLocaleContent['faq'] = [
|
|
30
|
+
{
|
|
31
|
+
question: 'Czym dokładnie jest obliczenie rezerwy pod stępką (under-keel clearance)?',
|
|
32
|
+
answer: 'Jest to obliczenie momentu, w którym w krytycznym punkcie (takim jak mielizna lub wąski kanał) jest wystarczająca głębokość, aby umożliwić bezpieczne przejście jednostki zgodnie z jej zanurzeniem.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Jaki margines bezpieczeństwa jest zalecany?',
|
|
36
|
+
answer: 'Dla jednostek rekreacyjnych zazwyczaj zaleca się minimalny margines bezpieczeństwa od 0,5 do 1 metra powyżej zanurzenia łodzi. Margines ten kompensuje błędy w obliczeniach pływów lub zmiany ciśnienia.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'Jak falowanie wpływa na rezerwę pod stępką?',
|
|
40
|
+
answer: 'Falowanie generuje pionowe oscylacje kadłuba. W najniższym punkcie fali łódź znajduje się bliżej dna niż w spoczynku. Podczas przechodzenia przez obszary z falowaniem margines musi zostać zwiększony.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Co to jest głębokość z mapy (chart sounding)?',
|
|
44
|
+
answer: 'Jest to minimalna głębokość w danym punkcie, gdy pływ jest na poziomie Zero Mapy (Chart Datum). Dodaje się ją do wysokości pływu w danym momencie, aby uzyskać całkowitą dostępną głębokość.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: 'Co oznacza podkreślona wartość głębokości na mapie?',
|
|
48
|
+
answer: 'Oznacza to, że ten punkt jest odsłonięty (osycha), gdy pływ jest na poziomie Zero Mapy. Będziesz potrzebować większej wysokości pływu, aby móc nad nim przepłynąć.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: 'Co to jest efekt Squat?',
|
|
52
|
+
answer: 'To zjawisko hydrodynamiczne, polegające na tym, że jednostka nawigująca przez płytkie kanały ma tendencję do głębszego osiadania względem linii wodnej. Im szybciej płyniesz, tym mniej wody masz pod stępką.',
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const howTo: UnderKeelLocaleContent['howTo'] = [
|
|
57
|
+
{
|
|
58
|
+
name: 'Zdefiniuj zanurzenie i margines',
|
|
59
|
+
text: 'Zmierz zanurzenie łodzi w jej najniższym punkcie i dodaj ostrożny margines bezpieczeństwa (np. 0,5 m).',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Sprawdź głębokość na mapie',
|
|
63
|
+
text: 'Znajdź wartość głębokości dla krytycznego punktu, przez który będziesz nawigować. Zwróć uwagę, czy jest to obszar piaszczysty czy skalisty.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Wprowadź dane pływowe',
|
|
67
|
+
text: 'Użyj czasów i wysokości wysokiej i niskiej wody z najbliższego oficjalnego almanachu pływów.',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Sprawdź swoje okno przejścia',
|
|
71
|
+
text: 'Narzędzie pokaże dokładny przedział czasowy, w którym będziesz mieć wystarczającą głębokość do bezpiecznej nawigacji.',
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
|
|
75
|
+
const bibliography: UnderKeelLocaleContent['bibliography'] = [
|
|
76
|
+
{
|
|
77
|
+
name: 'Ministerio de Transportes - Recreational Boating',
|
|
78
|
+
url: 'https://www.mitma.gob.es/marina-mercante/nautica-de-recreo/',
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
name: 'Portos de Galicia - Tide Tables',
|
|
82
|
+
url: 'https://portosdegalicia.gal/es/taboa-de-mareas',
|
|
83
|
+
},
|
|
84
|
+
];
|
|
85
|
+
|
|
86
|
+
const seo: UnderKeelLocaleContent['seo'] = [
|
|
87
|
+
{
|
|
88
|
+
type: 'title',
|
|
89
|
+
text: 'Rezerwa pod stępką: Bezpieczna nawigacja nad mieliznami',
|
|
90
|
+
level: 2,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'Planowanie przejścia nie kończy się na wykreśleniu kursu na mapie. Dla nawigatora przybrzeżnego jednym z najbardziej krytycznych obliczeń jest <strong>rezerwa pod stępką (Under-Keel Clearance)</strong>: wiedza o tym, o której godzinie będzie wystarczająca głębokość, aby pokonać krytyczny punkt bez wejścia na mieliznę.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: 'Głębokość z mapy a pływ',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: 'Na mapach morskich głębokości odnoszą się do <strong>Zero Mapy (Chart Datum)</strong>. Rzeczywista głębokość, jaką napotka Twoja łódź w dowolnym momencie, jest sumą tej głębokości i wysokości pływu w danej chwili.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Elementy obliczeń: Zanurzenie i Margines',
|
|
108
|
+
level: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'list',
|
|
112
|
+
items: [
|
|
113
|
+
{ term: 'Maksymalne zanurzenie pod ładunkiem', definition: 'Głębokość osiągana przez najniższy punkt łodzi (stępkę) przy pełnym obciążeniu.' },
|
|
114
|
+
{ term: 'Głębokość z mapy', definition: 'Liczba na mapie morskiej dla punktu, który chcesz pokonać. Jeśli podkreślona, punkt osycha przy Zero Mapy.' },
|
|
115
|
+
{ term: 'Margines bezpieczeństwa', definition: 'Dodatkowa rezerwa (co najmniej 0,5 do 1 metra) powyżej zanurzenia.' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Czynniki wpływające na przejście',
|
|
121
|
+
level: 3,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'table',
|
|
125
|
+
headers: ['Czynnik', 'Efekt', 'Rekomendacja'],
|
|
126
|
+
rows: [
|
|
127
|
+
['<strong>Falowanie</strong>', 'Zmniejsza wodę pod kadłubem', 'Znacznie zwiększ margines bezpieczeństwa'],
|
|
128
|
+
['<strong>Efekt Squat</strong>', 'Zwiększa zanurzenie przez ssanie', 'Zredukuj prędkość w krytycznych obszarach'],
|
|
129
|
+
['<strong>Piaszczyste dno</strong>', 'Zmienna głębokość przez sztormy', 'Utrzymuj echosondę włączoną'],
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'tip',
|
|
134
|
+
title: 'Wskazówka nawigacyjna',
|
|
135
|
+
html: 'Jeśli okno przejścia jest bardzo wąskie lub pogoda się pogarsza, najrozsądniejszą decyzją jest poczekanie, aż pływ wzrośnie.',
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
|
|
139
|
+
const schemas: UnderKeelLocaleContent['schemas'] = [
|
|
140
|
+
{
|
|
141
|
+
'@context': 'https://schema.org',
|
|
142
|
+
'@type': 'SoftwareApplication',
|
|
143
|
+
name: title,
|
|
144
|
+
description,
|
|
145
|
+
applicationCategory: 'UtilityApplication',
|
|
146
|
+
operatingSystem: 'Web',
|
|
147
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
148
|
+
} as WithContext<SoftwareApplication>,
|
|
149
|
+
{
|
|
150
|
+
'@context': 'https://schema.org',
|
|
151
|
+
'@type': 'FAQPage',
|
|
152
|
+
mainEntity: faq.map((item) => ({
|
|
153
|
+
'@type': 'Question',
|
|
154
|
+
name: item.question,
|
|
155
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
156
|
+
})),
|
|
157
|
+
} as WithContext<FAQPage>,
|
|
158
|
+
{
|
|
159
|
+
'@context': 'https://schema.org',
|
|
160
|
+
'@type': 'HowTo',
|
|
161
|
+
name: `Jak używać: ${title}`,
|
|
162
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
163
|
+
} as WithContext<HowTo>,
|
|
164
|
+
];
|
|
165
|
+
|
|
166
|
+
export const content: UnderKeelLocaleContent = {
|
|
167
|
+
slug,
|
|
168
|
+
title,
|
|
169
|
+
description,
|
|
170
|
+
ui,
|
|
171
|
+
seo,
|
|
172
|
+
faq,
|
|
173
|
+
bibliography,
|
|
174
|
+
howTo,
|
|
175
|
+
schemas,
|
|
176
|
+
};
|