@jjlmoya/utils-nautical 1.22.0 → 1.23.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 (41) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/data.ts +1 -0
  4. package/src/entries.ts +4 -1
  5. package/src/index.ts +1 -0
  6. package/src/tests/i18n_coverage.test.ts +6 -1
  7. package/src/tests/locale_completeness.test.ts +2 -2
  8. package/src/tests/tool_validation.test.ts +7 -4
  9. package/src/tool/hullSpeed/bibliography.astro +14 -0
  10. package/src/tool/hullSpeed/bibliography.ts +12 -0
  11. package/src/tool/hullSpeed/component.astro +116 -0
  12. package/src/tool/hullSpeed/controller.ts +204 -0
  13. package/src/tool/hullSpeed/dom-views.ts +141 -0
  14. package/src/tool/hullSpeed/entry.ts +32 -0
  15. package/src/tool/hullSpeed/evaluator.ts +20 -0
  16. package/src/tool/hullSpeed/hull-draw.ts +185 -0
  17. package/src/tool/hullSpeed/i18n/de.ts +199 -0
  18. package/src/tool/hullSpeed/i18n/en.ts +199 -0
  19. package/src/tool/hullSpeed/i18n/es.ts +199 -0
  20. package/src/tool/hullSpeed/i18n/fr.ts +199 -0
  21. package/src/tool/hullSpeed/i18n/id.ts +199 -0
  22. package/src/tool/hullSpeed/i18n/it.ts +199 -0
  23. package/src/tool/hullSpeed/i18n/ja.ts +199 -0
  24. package/src/tool/hullSpeed/i18n/ko.ts +199 -0
  25. package/src/tool/hullSpeed/i18n/nl.ts +199 -0
  26. package/src/tool/hullSpeed/i18n/pl.ts +199 -0
  27. package/src/tool/hullSpeed/i18n/pt.ts +199 -0
  28. package/src/tool/hullSpeed/i18n/ru.ts +199 -0
  29. package/src/tool/hullSpeed/i18n/sv.ts +199 -0
  30. package/src/tool/hullSpeed/i18n/tr.ts +199 -0
  31. package/src/tool/hullSpeed/i18n/zh.ts +199 -0
  32. package/src/tool/hullSpeed/index.ts +11 -0
  33. package/src/tool/hullSpeed/logic.test.ts +105 -0
  34. package/src/tool/hullSpeed/logic.ts +116 -0
  35. package/src/tool/hullSpeed/presets.ts +17 -0
  36. package/src/tool/hullSpeed/sailboat-hull-speed-calculator.css +504 -0
  37. package/src/tool/hullSpeed/seo.astro +15 -0
  38. package/src/tool/hullSpeed/storage.test.ts +23 -0
  39. package/src/tool/hullSpeed/storage.ts +65 -0
  40. package/src/tool/hullSpeed/ui.ts +43 -0
  41. package/src/tools.ts +3 -0
@@ -0,0 +1,199 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { HullSpeedLocaleContent, HullSpeedUI } from '../index';
3
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
4
+
5
+ const slug = 'rompsnelheid-calculator';
6
+ const title = 'Calculator voor rompsnelheid';
7
+ const description =
8
+ 'Bepaal de theoretische rompsnelheid uit de waterlijnlengte, vergelijk een log en zie wanneer een verplaatsingsscheepje in zijn eigen boeggolf klimt.';
9
+
10
+ const ui: HullSpeedUI = {
11
+ metric: 'Metriek',
12
+ imperial: 'Imperiaal',
13
+ unitGroup: 'Eenheden',
14
+ sceneLabel: 'Waterlijn en boeggolf',
15
+ hullSpeedLabel: 'Rompsnelheid',
16
+ knotsUnit: 'kn',
17
+ kmhUnit: 'km/h',
18
+ mphUnit: 'mph',
19
+ ratioLabel: 'S/L',
20
+ froudeLabel: 'Fr',
21
+ lwlLabelMetric: 'Waterlijnlengte',
22
+ lwlLabelImperial: 'Waterlijnlengte',
23
+ lwlUnitM: 'm',
24
+ lwlUnitFt: 'ft',
25
+ observedLabel: 'Logsnelheid',
26
+ observedHint: 'Laat 0 staan om de theoretische golf te tekenen. Typ een log om te zien of je nog in het dal zit.',
27
+ stretchHint: 'Sleep de romp om de waterlijn te strekken',
28
+ hullKindLabel: 'Rompvorm',
29
+ displacement: 'Verplaatsing',
30
+ semi: 'Halfverplaatsing',
31
+ planing: 'Glijdend',
32
+ boatsLabel: 'Voorbeeldwaterlijnen',
33
+ dinghy: 'Dinghy',
34
+ daysailer: 'Daysailer',
35
+ cruiser: 'Kruiser',
36
+ bluewater: 'Zee',
37
+ workboat: 'Werkboot',
38
+ bandBelow: 'Nog een korte golf',
39
+ bandNear: 'Dicht bij de golfbarrière',
40
+ bandAt: 'Op de boeggolf',
41
+ bandAbove: 'Probeert de golf te beklimmen',
42
+ bandPlane: 'Aan het glijden, voorbij de rompsnelheid',
43
+ planingNote:
44
+ 'Een glijdende romp kan deze golf achter zich laten. Rompsnelheid is een referentie, geen muur.',
45
+ displacementNote:
46
+ 'Een verplaatsingsromp betaalt steil als hij zijn eigen kielzog inhaalt. Zie het als praktisch plafond, niet als GPS doel.',
47
+ semiNote:
48
+ 'Halfverplaatsers kunnen de klassieke verhouding met genoeg vermogen iets overschrijden, tegen een scherpe weerstandsstijging.',
49
+ waveLegend: 'Boeggolf',
50
+ waterLegend: 'Waterlijn',
51
+ markLegend: 'Rompsnelheid',
52
+ faqTitle: 'Vragen over rompsnelheid',
53
+ bibliographyTitle: 'Bronnen',
54
+ };
55
+
56
+ const faq: HullSpeedLocaleContent['faq'] = [
57
+ {
58
+ question: 'Wat is de rompsnelheid van een zeilboot?',
59
+ answer:
60
+ 'Het is de snelheid waarbij een verplaatsingsromp vaart met een boeggolf ongeveer zo lang als de eigen waterlijn. In nautische eenheden schat je die als 1.34 keer de wortel van de waterlijnlengte in voet. Het is een kritische snelheid, geen harde fysieke stop.',
61
+ },
62
+ {
63
+ question: 'Hoe bereken je rompsnelheid?',
64
+ answer:
65
+ 'Zet de waterlijn om in voet, neem de wortel en vermenigvuldig met 1.34 voor knopen. Een waterlijn van 10 m is ongeveer 32.8 ft, dus zo n 7.7 kn. Hetzelfde punt hoort bij een Froude getal rond 0.40.',
66
+ },
67
+ {
68
+ question: 'Geldt rompsnelheid ook voor glijboten?',
69
+ answer:
70
+ 'De formule beschrijft nog steeds de golf die de romp zou maken in verplaatsingsmodus. Glijders en veel halfverplaatsers zijn gemaakt om over die golf te klimmen. Gebruik het getal als referentie en lees de noot bij de rompvorm.',
71
+ },
72
+ {
73
+ question: 'Moet ik waterlijnlengte of lengte over alles nemen?',
74
+ answer:
75
+ 'Neem de lengte op de waterlijn (LWL), de ondergedompelde lengte die de golf echt maakt. Lengte over alles, boegsprieten en overhangen zetten de golflengte niet. Meet LWL in het water, niet de LOA uit de brochure.',
76
+ },
77
+ ];
78
+
79
+ const howTo: HullSpeedLocaleContent['howTo'] = [
80
+ {
81
+ name: 'Strek de waterlijn',
82
+ text: 'Sleep de romp, verschuif de waterlijnrail of kies van dinghy tot werkboot. Rompsnelheid is 1.34 keer de wortel van die lengte in voet.',
83
+ },
84
+ {
85
+ name: 'Kies de rompvorm',
86
+ text: 'Verplaatsing, halfverplaatsing of glijdend verandert de kiel en of de boot uit zijn eigen golf kan klimmen.',
87
+ },
88
+ {
89
+ name: 'Lees het dal',
90
+ text: 'Bij rompsnelheid zitten boeg en hekgolf één waterlijn uit elkaar en ligt de boot in het dal. Dat is de barrière.',
91
+ },
92
+ {
93
+ name: 'Vergelijk een log',
94
+ text: 'Voer de vaart door het water in. Een kortere golf betekent dat je nog goedkoop duwt. Een langere golf betekent dat je het dal inklimt.',
95
+ },
96
+ ];
97
+
98
+ const seo: HullSpeedLocaleContent['seo'] = [
99
+ {
100
+ type: 'title',
101
+ text: 'Wat rompsnelheid je écht vertelt',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Een verplaatsingsromp duwt een golf vanaf de boeg en een vanaf het hek. Wanneer die toppen ongeveer één waterlijn uit elkaar liggen, vaart de boot met zijn eigen kielzog. Extra vermogen stapelt dan vooral water op in plaats van vaart te kopen. Die toestand noemen zeilers rompsnelheid.',
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'De calculator gebruikt de gangbare amateurverhouding 1.34 knopen per wortel van waterlijnvoeten. Slanke, lange rompen kunnen iets hoger, bakken lager. Zie het resultaat als lesstreep en vergelijk een echt log.',
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Doorgerekende waterlijnen',
115
+ level: 2,
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Waterlijn', 'Rompsnelheid', 'Typische boot'],
120
+ rows: [
121
+ ['4.2 m / 13.8 ft', '5.0 kn', 'Dinghy'],
122
+ ['6.5 m / 21.3 ft', '6.2 kn', 'Daysailer'],
123
+ ['10 m / 32.8 ft', '7.7 kn', 'Familiekruiser'],
124
+ ['13.5 m / 44.3 ft', '8.9 kn', 'Zeejacht'],
125
+ ['18 m / 59.1 ft', '10.3 kn', 'Kleine werkboot'],
126
+ ],
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'De boeggolf lezen',
131
+ level: 2,
132
+ },
133
+ {
134
+ type: 'list',
135
+ items: [
136
+ 'Onder het merkteken is de golf kort en de boot nog goedkoop te drijven.',
137
+ 'Dicht bij het merkteken steilt de boeggolf en kopen brandstof of zeil minder vaart.',
138
+ 'Op het merkteken past de golflengte bij LWL. Een verplaatsingsromp staat aan de klassieke barrière.',
139
+ 'Erboven klimt een verplaatsingsromp in zijn kielzog. Een glijder kan al omhoog zijn.',
140
+ ],
141
+ },
142
+ {
143
+ type: 'tip',
144
+ title: 'Meet LWL, niet LOA',
145
+ html: 'Brochurelengte bevat overhangen. De golf geeft om de ondergedompelde waterlijn. Heb je alleen LOA, dan is de berekende rompsnelheid te optimistisch.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Het Froude getal in één zin',
150
+ level: 2,
151
+ },
152
+ {
153
+ type: 'paragraph',
154
+ html: 'Rompsnelheid is een handige verpakking van een Froude getal rond 0.40: vaart gedeeld door de wortel van zwaartekracht maal lengte. Daarom zijn langere waterlijnen sneller, ook als de rompvorm gelijk blijft. LWL strekken tilt de verplaatsingsgrens schoon omhoog; extra pk doet dat niet.',
155
+ },
156
+ ];
157
+
158
+ const schemas: HullSpeedLocaleContent['schemas'] = [
159
+ {
160
+ '@context': 'https://schema.org',
161
+ '@type': 'SoftwareApplication',
162
+ name: title,
163
+ description,
164
+ applicationCategory: 'UtilityApplication',
165
+ operatingSystem: 'Web',
166
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
167
+ } as WithContext<SoftwareApplication>,
168
+ {
169
+ '@context': 'https://schema.org',
170
+ '@type': 'FAQPage',
171
+ mainEntity: faq.map((item) => ({
172
+ '@type': 'Question',
173
+ name: item.question,
174
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
175
+ })),
176
+ } as WithContext<FAQPage>,
177
+ {
178
+ '@context': 'https://schema.org',
179
+ '@type': 'HowTo',
180
+ name: `${title} gebruiken`,
181
+ step: howTo.map((step) => ({
182
+ '@type': 'HowToStep',
183
+ name: step.name,
184
+ text: step.text,
185
+ })),
186
+ } as WithContext<HowTo>,
187
+ ];
188
+
189
+ export const content: HullSpeedLocaleContent = {
190
+ slug,
191
+ title,
192
+ description,
193
+ ui,
194
+ seo,
195
+ faq,
196
+ bibliography,
197
+ howTo,
198
+ schemas,
199
+ };
@@ -0,0 +1,199 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { HullSpeedLocaleContent, HullSpeedUI } from '../index';
3
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
4
+
5
+ const slug = 'kalkulator-predkosci-kadluba';
6
+ const title = 'Kalkulator prędkości kadłuba';
7
+ const description =
8
+ 'Wyznacz teoretyczną prędkość kadłuba z długości linii wodnej, porównaj log i zobacz, kiedy kadłub wypornościowy wspina się na własną falę dziobową.';
9
+
10
+ const ui: HullSpeedUI = {
11
+ metric: 'Metryczny',
12
+ imperial: 'Imperialny',
13
+ unitGroup: 'Jednostki',
14
+ sceneLabel: 'Linia wodna i fala dziobowa',
15
+ hullSpeedLabel: 'Prędkość kadłuba',
16
+ knotsUnit: 'kn',
17
+ kmhUnit: 'km/h',
18
+ mphUnit: 'mph',
19
+ ratioLabel: 'S/L',
20
+ froudeLabel: 'Fr',
21
+ lwlLabelMetric: 'Długość linii wodnej',
22
+ lwlLabelImperial: 'Długość linii wodnej',
23
+ lwlUnitM: 'm',
24
+ lwlUnitFt: 'ft',
25
+ observedLabel: 'Prędkość z logu',
26
+ observedHint: 'Zostaw 0, aby narysować falę teoretyczną. Wpisz log, by zobaczyć, czy nadal siedzisz w niecce.',
27
+ stretchHint: 'Przeciągnij kadłub, aby rozciągnąć linię wodną',
28
+ hullKindLabel: 'Kształt kadłuba',
29
+ displacement: 'Wypornościowy',
30
+ semi: 'Półwypornościowy',
31
+ planing: 'Ślizgowy',
32
+ boatsLabel: 'Przykładowe linie wodne',
33
+ dinghy: 'Dinghy',
34
+ daysailer: 'Daysailer',
35
+ cruiser: 'Rejsowy',
36
+ bluewater: 'Morski',
37
+ workboat: 'Roboczy',
38
+ bandBelow: 'Wciąż krótka fala',
39
+ bandNear: 'Blisko bariery falowej',
40
+ bandAt: 'Na fali dziobowej',
41
+ bandAbove: 'Próbuje wspiąć się na falę',
42
+ bandPlane: 'W ślizgu, powyżej prędkości kadłuba',
43
+ planingNote:
44
+ 'Kadłub ślizgowy może zostawić tę falę za sobą. Prędkość kadłuba to punkt odniesienia, nie mur.',
45
+ displacementNote:
46
+ 'Kadłub wypornościowy płaci drogo, gdy dogania własną rufę. Traktuj wynik jako praktyczny sufit, nie cel GPS.',
47
+ semiNote:
48
+ 'Półwypornościowce mogą trochę przekroczyć klasyczny stosunek przy dużej mocy, kosztem ostrego wzrostu oporu.',
49
+ waveLegend: 'Fala dziobowa',
50
+ waterLegend: 'Linia wodna',
51
+ markLegend: 'Prędkość kadłuba',
52
+ faqTitle: 'Pytania o prędkość kadłuba',
53
+ bibliographyTitle: 'Źródła',
54
+ };
55
+
56
+ const faq: HullSpeedLocaleContent['faq'] = [
57
+ {
58
+ question: 'Czym jest prędkość kadłuba jachtu żaglowego?',
59
+ answer:
60
+ 'To prędkość, przy której kadłub wypornościowy idzie z falą dziobową mniej więcej tak długą jak własna linia wodna. W jednostkach nautycznych szacuje się ją jako 1.34 razy pierwiastek długości linii wodnej w stopach. To prędkość krytyczna, nie twarde fizyczne zatrzymanie.',
61
+ },
62
+ {
63
+ question: 'Jak oblicza się prędkość kadłuba?',
64
+ answer:
65
+ 'Przelicz linię wodną na stopy, weź pierwiastek i pomnóż przez 1.34, aby dostać węzły. Linia wodna 10 m to około 32.8 ft, więc około 7.7 kn. Ten sam punkt odpowiada liczbie Froude a bliskiej 0.40.',
66
+ },
67
+ {
68
+ question: 'Czy prędkość kadłuba dotyczy ślizgaczy?',
69
+ answer:
70
+ 'Wzór nadal opisuje falę, jaką kadłub zrobiłby w trybie wypornościowym. Ślizgacze i wiele półwypornościowców są zbudowane, by wejść na tę falę. Użyj liczby jako odniesienia i przeczytaj uwagę o kształcie.',
71
+ },
72
+ {
73
+ question: 'Czy brać linię wodną, czy długość całkowitą?',
74
+ answer:
75
+ 'Bierz długość na linii wodnej (LWL), zanurzoną długość, która naprawdę robi falę. Długość całkowita, bukszpryty i zwisy nie ustawiają długości fali. Mierz LWL w wodzie, nie LOA z broszury.',
76
+ },
77
+ ];
78
+
79
+ const howTo: HullSpeedLocaleContent['howTo'] = [
80
+ {
81
+ name: 'Rozciągnij linię wodną',
82
+ text: 'Przeciągnij kadłub, przesuń szynę linii wodnej albo wybierz od dinghy po jednostkę roboczą. Prędkość kadłuba to 1.34 razy pierwiastek tej długości w stopach.',
83
+ },
84
+ {
85
+ name: 'Wybierz kształt kadłuba',
86
+ text: 'Wypornościowy, półwypornościowy albo ślizgowy zmienia kil i to, czy jednostka wyjdzie z własnej fali.',
87
+ },
88
+ {
89
+ name: 'Odczytaj nieckę',
90
+ text: 'Przy prędkości kadłuba fala dziobowa i rufowa siedzą o jedną linię wodną od siebie, a jacht siada w dolinie. To jest bariera.',
91
+ },
92
+ {
93
+ name: 'Porównaj log',
94
+ text: 'Wpisz prędkość względem wody. Krótsza fala znaczy, że pchanie jest jeszcze tanie. Dłuższa fala znaczy, że wchodzisz w nieckę.',
95
+ },
96
+ ];
97
+
98
+ const seo: HullSpeedLocaleContent['seo'] = [
99
+ {
100
+ type: 'title',
101
+ text: 'Co naprawdę mówi prędkość kadłuba',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Kadłub wypornościowy pcha falę od dziobu i drugą od rufy. Gdy te grzbiety stoją mniej więcej o jedną linię wodną, jacht jedzie z własnym śladem. Dodatkowa moc wtedy głównie piętrzy wodę zamiast kupować prędkość. Ten stan żeglarze nazywają prędkością kadłuba.',
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'Kalkulator używa zwykłego amatorskiego stosunku 1.34 węzła na pierwiastek stóp linii wodnej. Smukłe, długie kadłuby mogą trochę wyżej, barki niżej. Traktuj wynik jako kreskę do nauki i porównaj prawdziwy log.',
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Przeliczone przykłady linii wodnej',
115
+ level: 2,
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Linia wodna', 'Prędkość kadłuba', 'Typowa jednostka'],
120
+ rows: [
121
+ ['4.2 m / 13.8 ft', '5.0 kn', 'Dinghy'],
122
+ ['6.5 m / 21.3 ft', '6.2 kn', 'Daysailer'],
123
+ ['10 m / 32.8 ft', '7.7 kn', 'Jacht rejsowy'],
124
+ ['13.5 m / 44.3 ft', '8.9 kn', 'Jacht morski'],
125
+ ['18 m / 59.1 ft', '10.3 kn', 'Mała jednostka robocza'],
126
+ ],
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Jak czytać falę dziobową',
131
+ level: 2,
132
+ },
133
+ {
134
+ type: 'list',
135
+ items: [
136
+ 'Poniżej kreski fala jest krótka i pchanie jachtu jest jeszcze tanie.',
137
+ 'Blisko kreski fala dziobowa stromieje, a paliwo albo żagiel kupują mniej prędkości.',
138
+ 'Na kresce długość fali zgadza się z LWL. Kadłub wypornościowy stoi przy klasycznej barierze.',
139
+ 'Powyżej kadłub wypornościowy wspina się na ślad. Ślizgowy może już być uniesiony.',
140
+ ],
141
+ },
142
+ {
143
+ type: 'tip',
144
+ title: 'Mierz LWL, nie LOA',
145
+ html: 'Długość z broszury obejmuje zwisy. Fala dba o zanurzoną linię wodną. Jeśli masz tylko LOA, wyliczona prędkość kadłuba będzie zbyt optymistyczna.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'Liczba Froude a w jednym zdaniu',
150
+ level: 2,
151
+ },
152
+ {
153
+ type: 'paragraph',
154
+ html: 'Prędkość kadłuba to wygodne opakowanie liczby Froude a bliskiej 0.40: prędkość dzielona przez pierwiastek z grawitacji razy długość. Dlatego dłuższe linie wodne są szybsze, nawet gdy kształt kadłuba się nie zmienia. Rozciąganie LWL czyści limit wyporności; dodawanie koni mechanicznych nie.',
155
+ },
156
+ ];
157
+
158
+ const schemas: HullSpeedLocaleContent['schemas'] = [
159
+ {
160
+ '@context': 'https://schema.org',
161
+ '@type': 'SoftwareApplication',
162
+ name: title,
163
+ description,
164
+ applicationCategory: 'UtilityApplication',
165
+ operatingSystem: 'Web',
166
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
167
+ } as WithContext<SoftwareApplication>,
168
+ {
169
+ '@context': 'https://schema.org',
170
+ '@type': 'FAQPage',
171
+ mainEntity: faq.map((item) => ({
172
+ '@type': 'Question',
173
+ name: item.question,
174
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
175
+ })),
176
+ } as WithContext<FAQPage>,
177
+ {
178
+ '@context': 'https://schema.org',
179
+ '@type': 'HowTo',
180
+ name: `Jak używać: ${title}`,
181
+ step: howTo.map((step) => ({
182
+ '@type': 'HowToStep',
183
+ name: step.name,
184
+ text: step.text,
185
+ })),
186
+ } as WithContext<HowTo>,
187
+ ];
188
+
189
+ export const content: HullSpeedLocaleContent = {
190
+ slug,
191
+ title,
192
+ description,
193
+ ui,
194
+ seo,
195
+ faq,
196
+ bibliography,
197
+ howTo,
198
+ schemas,
199
+ };
@@ -0,0 +1,199 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { HullSpeedLocaleContent, HullSpeedUI } from '../index';
3
+ import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
4
+
5
+ const slug = 'calculadora-velocidade-do-casco';
6
+ const title = 'Calculadora de velocidade de casco';
7
+ const description =
8
+ 'Obtém a velocidade de casco teórica a partir do comprimento de flutuação, compara um registo e vê quando um casco de deslocamento sobe a própria onda de proa.';
9
+
10
+ const ui: HullSpeedUI = {
11
+ metric: 'Métrico',
12
+ imperial: 'Imperial',
13
+ unitGroup: 'Unidades',
14
+ sceneLabel: 'Flutuação e onda de proa',
15
+ hullSpeedLabel: 'Velocidade de casco',
16
+ knotsUnit: 'kn',
17
+ kmhUnit: 'km/h',
18
+ mphUnit: 'mph',
19
+ ratioLabel: 'S/L',
20
+ froudeLabel: 'Fr',
21
+ lwlLabelMetric: 'Comprimento de flutuação',
22
+ lwlLabelImperial: 'Comprimento de flutuação',
23
+ lwlUnitM: 'm',
24
+ lwlUnitFt: 'ft',
25
+ observedLabel: 'Velocidade do loch',
26
+ observedHint: 'Deixa em 0 para desenhar a onda teórica. Escreve um registo para ver se ainda estás sentado no oco.',
27
+ stretchHint: 'Arrasta o casco para esticar a flutuação',
28
+ hullKindLabel: 'Forma de casco',
29
+ displacement: 'Deslocamento',
30
+ semi: 'Semideslocamento',
31
+ planing: 'Planeio',
32
+ boatsLabel: 'Flutuações de exemplo',
33
+ dinghy: 'Bote',
34
+ daysailer: 'Daysailer',
35
+ cruiser: 'Cruzeiro',
36
+ bluewater: 'Alto mar',
37
+ workboat: 'Trabalho',
38
+ bandBelow: 'Ainda faz uma onda curta',
39
+ bandNear: 'A aproximar se da barreira de onda',
40
+ bandAt: 'Em cima da onda de proa',
41
+ bandAbove: 'A tentar subir a onda',
42
+ bandPlane: 'Em planeio, acima da velocidade de casco',
43
+ planingNote:
44
+ 'Um casco de planeio pode deixar esta onda para trás. A velocidade de casco é uma referência, não um muro.',
45
+ displacementNote:
46
+ 'Um casco de deslocamento paga caro quando apanha o próprio rasto. Trata o valor como teto prático, não como alvo de GPS.',
47
+ semiNote:
48
+ 'Os semideslocamentos podem passar um pouco da razão clássica com potência a mais, à custa de uma subida brusca de resistência.',
49
+ waveLegend: 'Onda de proa',
50
+ waterLegend: 'Flutuação',
51
+ markLegend: 'Velocidade de casco',
52
+ faqTitle: 'Perguntas sobre velocidade de casco',
53
+ bibliographyTitle: 'Referências',
54
+ };
55
+
56
+ const faq: HullSpeedLocaleContent['faq'] = [
57
+ {
58
+ question: 'O que é a velocidade de casco num veleiro?',
59
+ answer:
60
+ 'É a velocidade a que um casco de deslocamento viaja com uma onda de proa quase tão longa como a própria flutuação. Em unidades náuticas estima se como 1.34 vezes a raiz do comprimento de flutuação em pés. É uma velocidade crítica, não um travão físico rígido.',
61
+ },
62
+ {
63
+ question: 'Como se calcula a velocidade de casco?',
64
+ answer:
65
+ 'Converte a flutuação para pés, tira a raiz e multiplica por 1.34 para obter nós. Uma flutuação de 10 m são cerca de 32.8 ft, logo perto de 7.7 kn. Esse ponto corresponde a um número de Froude próximo de 0.40.',
66
+ },
67
+ {
68
+ question: 'A velocidade de casco aplica se a lanchas de planeio?',
69
+ answer:
70
+ 'A fórmula continua a descrever a onda que o casco faria se ficasse em deslocamento. O planeio e muitos semideslocamentos nasceram para subir essa onda. Usa o número como referência e lê a nota da forma de casco.',
71
+ },
72
+ {
73
+ question: 'Devo usar a flutuação ou o comprimento total?',
74
+ answer:
75
+ 'Usa o comprimento de flutuação (LWL), o comprimento imerso que realmente faz a onda. O comprimento total, gurupés e lançamentos não fixam o comprimento de onda. Mede o LWL na água, não o LOA do folheto.',
76
+ },
77
+ ];
78
+
79
+ const howTo: HullSpeedLocaleContent['howTo'] = [
80
+ {
81
+ name: 'Estica a flutuação',
82
+ text: 'Arrasta o casco, move o rail de flutuação ou escolhe do bote ao barco de trabalho. A velocidade de casco é 1.34 vezes a raiz desse comprimento em pés.',
83
+ },
84
+ {
85
+ name: 'Escolhe a forma de casco',
86
+ text: 'Deslocamento, semideslocamento ou planeio muda a quilha e se o barco consegue sair da própria onda.',
87
+ },
88
+ {
89
+ name: 'Lê o oco',
90
+ text: 'Na velocidade de casco a onda de proa e a de popa ficam a uma flutuação de distância e o barco assenta no seio. Essa é a barreira.',
91
+ },
92
+ {
93
+ name: 'Compara um registo',
94
+ text: 'Introduz a velocidade na água. Uma onda mais curta significa que ainda empurras barato. Uma onda mais longa significa que estás a subir o oco.',
95
+ },
96
+ ];
97
+
98
+ const seo: HullSpeedLocaleContent['seo'] = [
99
+ {
100
+ type: 'title',
101
+ text: 'O que a velocidade de casco te está a dizer de verdade',
102
+ level: 2,
103
+ },
104
+ {
105
+ type: 'paragraph',
106
+ html: 'Um casco de deslocamento empurra uma onda da proa e outra da popa. Quando essas cristas ficam a cerca de uma flutuação de distância, o barco viaja com o próprio rasto. A potência extra amontoa então água em vez de comprar velocidade. Essa condição é o que os marinheiros chamam velocidade de casco.',
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'A calculadora usa a razão amadora habitual de 1.34 nós por raiz dos pés de flutuação. Cascos finos e longos podem ir um pouco mais alto; chatas, mais baixo. Trata o resultado como marca de estudo e compara com um registo real.',
111
+ },
112
+ {
113
+ type: 'title',
114
+ text: 'Exemplos de flutuação resolvidos',
115
+ level: 2,
116
+ },
117
+ {
118
+ type: 'table',
119
+ headers: ['Flutuação', 'Velocidade de casco', 'Barco típico'],
120
+ rows: [
121
+ ['4.2 m / 13.8 ft', '5.0 kn', 'Bote'],
122
+ ['6.5 m / 21.3 ft', '6.2 kn', 'Daysailer'],
123
+ ['10 m / 32.8 ft', '7.7 kn', 'Cruzeiro familiar'],
124
+ ['13.5 m / 44.3 ft', '8.9 kn', 'Iate de alto mar'],
125
+ ['18 m / 59.1 ft', '10.3 kn', 'Pequeno barco de trabalho'],
126
+ ],
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Como ler a onda de proa',
131
+ level: 2,
132
+ },
133
+ {
134
+ type: 'list',
135
+ items: [
136
+ 'Abaixo da marca a onda é curta e o barco ainda é barato de empurrar.',
137
+ 'Perto da marca a onda de proa endireita se e combustível ou vela compram menos velocidade.',
138
+ 'Sobre a marca o comprimento de onda iguala o LWL. Um casco de deslocamento está na barreira clássica.',
139
+ 'Acima, um casco de deslocamento sobe o rasto. Um de planeio pode já ir levantado.',
140
+ ],
141
+ },
142
+ {
143
+ type: 'tip',
144
+ title: 'Mede LWL, não LOA',
145
+ html: 'O comprimento do folheto inclui lançamentos. A onda importa se com a flutuação imersa. Se só tens LOA, a velocidade de casco calculada será otimista.',
146
+ },
147
+ {
148
+ type: 'title',
149
+ text: 'O número de Froude numa frase',
150
+ level: 2,
151
+ },
152
+ {
153
+ type: 'paragraph',
154
+ html: 'A velocidade de casco é um embrulho cómodo de um número de Froude perto de 0.40: velocidade dividida pela raiz da gravidade vezes o comprimento. Por isso flutuações mais longas são mais rápidas mesmo quando a forma do casco não muda. Esticar o LWL é o modo limpo de subir o limite de deslocamento; acrescentar cavalos não é.',
155
+ },
156
+ ];
157
+
158
+ const schemas: HullSpeedLocaleContent['schemas'] = [
159
+ {
160
+ '@context': 'https://schema.org',
161
+ '@type': 'SoftwareApplication',
162
+ name: title,
163
+ description,
164
+ applicationCategory: 'UtilityApplication',
165
+ operatingSystem: 'Web',
166
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
167
+ } as WithContext<SoftwareApplication>,
168
+ {
169
+ '@context': 'https://schema.org',
170
+ '@type': 'FAQPage',
171
+ mainEntity: faq.map((item) => ({
172
+ '@type': 'Question',
173
+ name: item.question,
174
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
175
+ })),
176
+ } as WithContext<FAQPage>,
177
+ {
178
+ '@context': 'https://schema.org',
179
+ '@type': 'HowTo',
180
+ name: `Como usar ${title}`,
181
+ step: howTo.map((step) => ({
182
+ '@type': 'HowToStep',
183
+ name: step.name,
184
+ text: step.text,
185
+ })),
186
+ } as WithContext<HowTo>,
187
+ ];
188
+
189
+ export const content: HullSpeedLocaleContent = {
190
+ slug,
191
+ title,
192
+ description,
193
+ ui,
194
+ seo,
195
+ faq,
196
+ bibliography,
197
+ howTo,
198
+ schemas,
199
+ };