@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,189 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { UnderKeelUI, UnderKeelLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'ukc-kalkulator-id';
|
|
5
|
+
const title = 'Kalkulator Ruang Bebas di Bawah Lunas UKC';
|
|
6
|
+
const description =
|
|
7
|
+
'Hitung jendela waktu aman untuk melintasi gosong pasir, kanal, atau titik dengan draf terbatas. Masukkan draf kapal, kedalaman peta, dan data pasang surut Anda.';
|
|
8
|
+
|
|
9
|
+
const ui: UnderKeelUI = {
|
|
10
|
+
parametersLabel: 'Parameter',
|
|
11
|
+
boatDraftLabel: 'Draf Kapal',
|
|
12
|
+
chartDepthLabel: 'Kedalaman Peta',
|
|
13
|
+
safetyMarginLabel: 'Margin Keamanan',
|
|
14
|
+
highTideLabel: 'Pasang Tinggi',
|
|
15
|
+
lowTideLabel: 'Surut Rendah',
|
|
16
|
+
metersLabel: 'meter',
|
|
17
|
+
passWindowLabel: 'Jendela Lintasan',
|
|
18
|
+
neededLabel: 'Kedalaman yang dibutuhkan',
|
|
19
|
+
tideRequiredLabel: 'Minimum pasang yang dibutuhkan',
|
|
20
|
+
statusNeverLabel: 'Tidak ada ruang bebas dalam siklus ini',
|
|
21
|
+
statusAlwaysLabel: 'Aman sepanjang siklus',
|
|
22
|
+
statusFromLabel: 'Lintasan dari:',
|
|
23
|
+
statusUntilLabel: 'Lintasan hingga:',
|
|
24
|
+
bottomLabel: 'DASAR LAUT',
|
|
25
|
+
faqTitle: 'Pertanyaan yang Sering Diajukan',
|
|
26
|
+
bibliographyTitle: 'Bibliografi',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faq: UnderKeelLocaleContent['faq'] = [
|
|
30
|
+
{
|
|
31
|
+
question: 'Apa sebenarnya kalkulasi ruang bebas di bawah lunas (under-keel clearance)?',
|
|
32
|
+
answer: 'Ini adalah perhitungan saat kedalaman air mencukupi di titik kritis (seperti gosong pasir atau kanal sempit) untuk memungkinkan transit kapal dengan aman sesuai dengan draf (sarat air) kapal tersebut.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Berapa margin keamanan yang direkomendasikan?',
|
|
36
|
+
answer: 'Untuk kapal rekreasi, margin keamanan minimum antara 0,5 dan 1 meter di atas draf kapal biasanya direkomendasikan. Margin ini mengompensasi kemungkinan kesalahan dalam perhitungan pasang surut, variasi tekanan atmosfer, atau alun (swell) yang tidak terduga.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'Bagaimana alun (swell) memengaruhi ruang bebas di bawah lunas?',
|
|
40
|
+
answer: 'Alun menghasilkan osilasi vertikal pada lambung kapal. Pada titik terendah gelombang, kapal lebih dekat ke dasar laut daripada saat diam. Saat melintasi area dengan alun, margin keamanan harus ditingkatkan secara substansial.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Apa itu sounding peta (chart sounding)?',
|
|
44
|
+
answer: 'Ini adalah kedalaman minimum di suatu titik ketika pasang berada pada Chart Datum. Nilai ini ditambahkan ke ketinggian pasang pada saat itu untuk memberikan total kedalaman yang tersedia.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: 'Apa arti nilai sounding yang digarisbawahi di peta?',
|
|
48
|
+
answer: 'Artinya titik tersebut terekspos (mengering) ketika pasang berada pada Chart Datum. Anda akan memerlukan ketinggian pasang yang lebih besar untuk dapat melewatinya.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: 'Apa itu efek Squat dan bagaimana pengaruhnya terhadap lintasan?',
|
|
52
|
+
answer: 'Ini adalah fenomena hidrodinamika di mana kapal yang menavigasi kanal dangkal cenderung tenggelam lebih rendah relatif terhadap garis airnya. Semakin cepat Anda melaju, semakin draf dinamis meningkat dan semakin sedikit air di bawah lunas.',
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const howTo: UnderKeelLocaleContent['howTo'] = [
|
|
57
|
+
{
|
|
58
|
+
name: 'Tentukan draf dan margin keamanan',
|
|
59
|
+
text: 'Ukur draf kapal Anda pada titik maksimumnya dan tambahkan margin keamanan yang bijaksana (misalnya 0,5 m).',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Cari nilai sounding peta',
|
|
63
|
+
text: 'Temukan nilai Datum sounding untuk titik kritis yang akan Anda navigasikan. Perhatikan apakah itu area berpasir atau berbatu.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Masukkan data pasang surut',
|
|
67
|
+
text: 'Gunakan waktu dan ketinggian pasang tinggi dan surut rendah dari almanak pasang surut resmi terdekat.',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Periksa jendela lintasan Anda',
|
|
71
|
+
text: 'Alat ini akan menunjukkan interval waktu yang tepat di mana Anda akan memiliki kedalaman yang cukup untuk menavigasi dengan aman.',
|
|
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: 'Ruang Bebas di Bawah Lunas: Navigasi Aman di Atas Kedangkalan',
|
|
90
|
+
level: 2,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'Merencanakan lintasan tidak berakhir dengan menggambar rute di peta. Bagi navigator pesisir, salah satu perhitungan paling kritis adalah <strong>ruang bebas di bawah lunas (under-keel clearance)</strong>: mengetahui jam berapa akan ada cukup kedalaman untuk melintasi titik kritis tanpa kandas.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: 'Apa itu sounding peta dan bagaimana hubungannya dengan pasang surut?',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: 'Pada peta navigasi, kedalaman (sounding) merujuk pada <strong>Chart Datum</strong>. Level ini, berdasarkan konvensi, adalah level terendah yang dicapai pasang surut dalam kondisi normal. Kedalaman aktual yang akan ditemukan kapal Anda pada saat tertentu adalah jumlah dari sounding tersebut ditambah ketinggian pasang pada saat itu.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Elemen kalkulasi: Draf dan Margin',
|
|
108
|
+
level: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'paragraph',
|
|
112
|
+
html: 'Untuk menggunakan kalkulator ruang bebas di bawah lunas secara profesional, Anda perlu mengetahui dua detail teknis tentang kapal Anda dan satu keputusan pribadi:',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'list',
|
|
116
|
+
items: [
|
|
117
|
+
{ term: 'Draf beban maksimum', definition: 'Kedalaman yang dicapai oleh titik terendah kapal (lunas) saat terisi penuh.' },
|
|
118
|
+
{ term: 'Sounding peta', definition: 'Angka pada peta navigasi untuk titik yang ingin Anda lintasi. Jika digarisbawahi, titik tersebut mengering pada Chart Datum.' },
|
|
119
|
+
{ term: 'Margin keamanan', definition: 'Ruang bebas tambahan (setidaknya 0,5 hingga 1 meter) di atas draf sebagai cadangan keamanan.' },
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'title',
|
|
124
|
+
text: 'Bagaimana jendela lintasan bekerja?',
|
|
125
|
+
level: 3,
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'paragraph',
|
|
129
|
+
html: 'Kalkulator menentukan saat tepat ketika level air akan naik di atas draf Anda ditambah margin keamanan yang dipilih. Sejak menit itu, <strong>jendela lintasan</strong> terbuka. Jika air surut, alat ini akan menunjukkan sampai jam berapa lintas diizinkan sebelum level air turun di bawah batas keamanan Anda.',
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
type: 'title',
|
|
133
|
+
text: 'Faktor yang memengaruhi lintasan aktual',
|
|
134
|
+
level: 3,
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
type: 'table',
|
|
138
|
+
headers: ['Faktor', 'Efek', 'Rekomendasi'],
|
|
139
|
+
rows: [
|
|
140
|
+
['<strong>Alun (Swell)</strong>', 'Mengurangi air di bawah lambung', 'Tingkatkan margin keamanan secara signifikan'],
|
|
141
|
+
['<strong>Efek Squat</strong>', 'Meningkatkan draf melalui hisapan', 'Kurangi kecepatan di area kritis'],
|
|
142
|
+
['<strong>Dasar berpasir</strong>', 'Kedalaman variabel karena badai', 'Aktifkan perum gema (sounder) dan margin ekstra'],
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
type: 'tip',
|
|
147
|
+
title: 'Tips Navigasi',
|
|
148
|
+
html: 'Jika jendela lintasan Anda sangat sempit atau cuaca memburuk, keputusan paling bijaksana biasanya adalah menunggu di perairan dalam sampai pasang naik ke ketinggian yang dibutuhkan.',
|
|
149
|
+
},
|
|
150
|
+
];
|
|
151
|
+
|
|
152
|
+
const schemas: UnderKeelLocaleContent['schemas'] = [
|
|
153
|
+
{
|
|
154
|
+
'@context': 'https://schema.org',
|
|
155
|
+
'@type': 'SoftwareApplication',
|
|
156
|
+
name: title,
|
|
157
|
+
description,
|
|
158
|
+
applicationCategory: 'UtilityApplication',
|
|
159
|
+
operatingSystem: 'Web',
|
|
160
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
161
|
+
} as WithContext<SoftwareApplication>,
|
|
162
|
+
{
|
|
163
|
+
'@context': 'https://schema.org',
|
|
164
|
+
'@type': 'FAQPage',
|
|
165
|
+
mainEntity: faq.map((item) => ({
|
|
166
|
+
'@type': 'Question',
|
|
167
|
+
name: item.question,
|
|
168
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
169
|
+
})),
|
|
170
|
+
} as WithContext<FAQPage>,
|
|
171
|
+
{
|
|
172
|
+
'@context': 'https://schema.org',
|
|
173
|
+
'@type': 'HowTo',
|
|
174
|
+
name: `Cara menggunakan: ${title}`,
|
|
175
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
176
|
+
} as WithContext<HowTo>,
|
|
177
|
+
];
|
|
178
|
+
|
|
179
|
+
export const content: UnderKeelLocaleContent = {
|
|
180
|
+
slug,
|
|
181
|
+
title,
|
|
182
|
+
description,
|
|
183
|
+
ui,
|
|
184
|
+
seo,
|
|
185
|
+
faq,
|
|
186
|
+
bibliography,
|
|
187
|
+
howTo,
|
|
188
|
+
schemas,
|
|
189
|
+
};
|
|
@@ -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-calcolatore-it';
|
|
5
|
+
const title = 'Calcolatore del Franchezza Sotto la Chiglia UKC';
|
|
6
|
+
const description =
|
|
7
|
+
'Calcola la finestra temporale sicura per attraversare secche, canali o punti con pescaggio limitato. Inserisci il pescaggio della barca, la profondità della carta e i dati di marea.';
|
|
8
|
+
|
|
9
|
+
const ui: UnderKeelUI = {
|
|
10
|
+
parametersLabel: 'Parametri',
|
|
11
|
+
boatDraftLabel: 'Pescaggio della Barca',
|
|
12
|
+
chartDepthLabel: 'Profondità della Carta',
|
|
13
|
+
safetyMarginLabel: 'Margine di Sicurezza',
|
|
14
|
+
highTideLabel: 'Alta Marea',
|
|
15
|
+
lowTideLabel: 'Bassa Marea',
|
|
16
|
+
metersLabel: 'metri',
|
|
17
|
+
passWindowLabel: 'Finestra di Transito',
|
|
18
|
+
neededLabel: 'Profondità necessaria',
|
|
19
|
+
tideRequiredLabel: 'Marea minima richiesta',
|
|
20
|
+
statusNeverLabel: 'Nessuna franchezza in questo ciclo',
|
|
21
|
+
statusAlwaysLabel: 'Transito possibile in tutto il ciclo',
|
|
22
|
+
statusFromLabel: 'Transito dalle:',
|
|
23
|
+
statusUntilLabel: 'Transito fino alle:',
|
|
24
|
+
bottomLabel: 'FONDALE',
|
|
25
|
+
faqTitle: 'Domande Frequenti',
|
|
26
|
+
bibliographyTitle: 'Bibliografia',
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const faq: UnderKeelLocaleContent['faq'] = [
|
|
30
|
+
{
|
|
31
|
+
question: 'Cos\'è esattamente il calcolo della franchezza sotto la chiglia?',
|
|
32
|
+
answer: 'È il calcolo del momento in cui c\'è una profondità sufficiente in un punto critico (come una secca o un canale stretto) per consentire il transito sicuro di una nave in base al suo pescaggio.',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
question: 'Quanto margine di sicurezza è raccomandato?',
|
|
36
|
+
answer: 'Per le imbarcazioni da diporto, di solito si raccomanda un margine di sicurezza minimo compreso tra 0,5 e 1 metro sopra il pescaggio della barca. Questo margine compensa possibili errori nei calcoli di marea o variazioni della pressione atmosferica.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'In che modo il moto ondoso influisce sulla franchezza?',
|
|
40
|
+
answer: 'Il moto ondoso genera oscillazioni verticali nello scafo. Nel punto più basso dell\'onda, la barca è più vicina al fondo rispetto a quando è a riposo. Quando si attraversano aree con moto ondoso, il margine deve essere aumentato.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
question: 'Cosa si intende per profondità della carta?',
|
|
44
|
+
answer: 'È la profondità minima in un punto quando la marea è al Chart Datum. Viene sommata all\'altezza della marea in quel momento per dare la profondità totale disponibile.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
question: 'Cosa significa un valore sottolineato sulla carta nautica?',
|
|
48
|
+
answer: 'Significa che quel punto emerge quando la marea è al Chart Datum. Avrai bisogno di un\'altezza di marea maggiore per poterlo attraversare.',
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
question: 'Cos\'è l\'effetto Squat?',
|
|
52
|
+
answer: 'È un fenomeno idrodinamico per cui una nave che naviga in canali poco profondi tende ad abbassarsi rispetto alla sua linea di galleggiamento. Più velocemente procedi, meno acqua hai sotto la chiglia.',
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
const howTo: UnderKeelLocaleContent['howTo'] = [
|
|
57
|
+
{
|
|
58
|
+
name: 'Definisci pescaggio e margine',
|
|
59
|
+
text: 'Misura il pescaggio della tua barca nel suo punto massimo e aggiungi un margine di sicurezza prudente (es. 0,5 m).',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
name: 'Cerca la profondità sulla carta',
|
|
63
|
+
text: 'Trova il valore del fondale per il punto critico dove navigherai. Nota se si tratta di un\'area sabbiosa o rocciosa.',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: 'Inserisci i dati di marea',
|
|
67
|
+
text: 'Usa gli orari e le altezze dell\'alta e bassa marea dall\'almanacco ufficiale più vicino.',
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'Verifica la tua finestra di transito',
|
|
71
|
+
text: 'Lo strumento mostrerà l\'intervallo di tempo esatto in cui avrai profondità sufficiente per navigare in sicurezza.',
|
|
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: 'Franchezza Sotto la Chiglia: Navigare in Sicurezza sulle Secche',
|
|
90
|
+
level: 2,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'paragraph',
|
|
94
|
+
html: 'La pianificazione di una rotta non finisce con il tracciamento di un corso sulla carta. Per il navigatore costiero, uno dei calcoli più critici è la <strong>franchezza sotto la chiglia</strong>: sapere a che ora ci sarà abbastanza profondità per attraversare un punto critico senza incagliarsi.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: 'Profondità della carta e marea',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: 'Sulle carte nautiche, le profondità sono riferite al <strong>Chart Datum</strong>. La profondità reale che la tua barca troverà in ogni momento è la somma di quel valore più l\'altezza della marea in quell\'istante.',
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
type: 'title',
|
|
107
|
+
text: 'Gli elementi del calcolo: Pescaggio e Margine',
|
|
108
|
+
level: 3,
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'list',
|
|
112
|
+
items: [
|
|
113
|
+
{ term: 'Pescaggio massimo a carico', definition: 'La profondità raggiunta dal punto più basso della barca (la chiglia) a pieno carico.' },
|
|
114
|
+
{ term: 'Profondità della carta', definition: 'Il numero sulla carta nautica per il punto che desideri attraversare.' },
|
|
115
|
+
{ term: 'Margine di sicurezza', definition: 'Spazio libero aggiuntivo di almeno 0,5 - 1 metro sopra il pescaggio.' },
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'title',
|
|
120
|
+
text: 'Fattori che influenzano la franchezza',
|
|
121
|
+
level: 3,
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: 'table',
|
|
125
|
+
headers: ['Fattore', 'Effetto', 'Raccomandazione'],
|
|
126
|
+
rows: [
|
|
127
|
+
['<strong>Onda</strong>', 'Riduce l\'acqua sotto lo scafo', 'Aumenta significativamente il margine di sicurezza'],
|
|
128
|
+
['<strong>Effetto Squat</strong>', 'Aumenta il pescaggio per suzione', 'Riduci la velocità nelle aree critiche'],
|
|
129
|
+
['<strong>Fondale sabbioso</strong>', 'Profondità variabile con le tempeste', 'Mantieni attivo l\'ecoscandaglio'],
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'tip',
|
|
134
|
+
title: 'Consiglio di Navigazione',
|
|
135
|
+
html: 'Se la tua finestra di transito è molto stretta o il tempo peggiora, la decisione più saggia è aspettare finché la marea non sale.',
|
|
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: `Come usare: ${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,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メートル以上の最小安全余裕を確保することが推奨されます。この余裕は、潮汐計算の誤差、気圧変化、予期せぬうねりなどを補うためのものです。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
question: 'うねりはキール下余裕にどう影響しますか?',
|
|
40
|
+
answer: 'うねりは船体に上下の揺れ(ヒービング)を発生させます。波の谷の部分では、船体は静止時よりも海底に近づきます。うねりのある場所を通過する場合は、安全余裕を大幅に増やす必要があります。',
|
|
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)</strong> です。座礁することなく重要地点を通過するために、いつ十分な水深が得られるかを知る必要があります。',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: 'title',
|
|
98
|
+
text: '海図水深と潮汐の関係は?',
|
|
99
|
+
level: 3,
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
type: 'paragraph',
|
|
103
|
+
html: '海図上の水深は <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
|
+
};
|