@jjlmoya/utils-nautical 1.6.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.
Files changed (88) hide show
  1. package/package.json +72 -71
  2. package/src/tests/i18n_coverage.test.ts +36 -0
  3. package/src/tests/locale_completeness.test.ts +42 -0
  4. package/src/tests/no_h1_in_components.test.ts +48 -0
  5. package/src/tests/schemas_fulfillment.test.ts +23 -0
  6. package/src/tests/slug_uniqueness.test.ts +81 -0
  7. package/src/tests/title_quality.test.ts +55 -0
  8. package/src/tool/endurance/i18n/de.ts +249 -0
  9. package/src/tool/endurance/i18n/id.ts +249 -0
  10. package/src/tool/endurance/i18n/it.ts +249 -0
  11. package/src/tool/endurance/i18n/ja.ts +249 -0
  12. package/src/tool/endurance/i18n/ko.ts +249 -0
  13. package/src/tool/endurance/i18n/nl.ts +249 -0
  14. package/src/tool/endurance/i18n/pl.ts +249 -0
  15. package/src/tool/endurance/i18n/pt.ts +249 -0
  16. package/src/tool/endurance/i18n/ru.ts +249 -0
  17. package/src/tool/endurance/i18n/sv.ts +249 -0
  18. package/src/tool/endurance/i18n/tr.ts +249 -0
  19. package/src/tool/endurance/i18n/zh.ts +249 -0
  20. package/src/tool/endurance/index.ts +12 -0
  21. package/src/tool/nauticalConverter/i18n/de.ts +239 -0
  22. package/src/tool/nauticalConverter/i18n/id.ts +239 -0
  23. package/src/tool/nauticalConverter/i18n/it.ts +239 -0
  24. package/src/tool/nauticalConverter/i18n/ja.ts +239 -0
  25. package/src/tool/nauticalConverter/i18n/ko.ts +239 -0
  26. package/src/tool/nauticalConverter/i18n/nl.ts +239 -0
  27. package/src/tool/nauticalConverter/i18n/pl.ts +239 -0
  28. package/src/tool/nauticalConverter/i18n/pt.ts +239 -0
  29. package/src/tool/nauticalConverter/i18n/ru.ts +239 -0
  30. package/src/tool/nauticalConverter/i18n/sv.ts +239 -0
  31. package/src/tool/nauticalConverter/i18n/tr.ts +239 -0
  32. package/src/tool/nauticalConverter/i18n/zh.ts +239 -0
  33. package/src/tool/nauticalConverter/index.ts +12 -0
  34. package/src/tool/sailArea/component.astro +1 -1
  35. package/src/tool/sailArea/i18n/de.ts +275 -0
  36. package/src/tool/sailArea/i18n/id.ts +275 -0
  37. package/src/tool/sailArea/i18n/it.ts +275 -0
  38. package/src/tool/sailArea/i18n/ja.ts +275 -0
  39. package/src/tool/sailArea/i18n/ko.ts +275 -0
  40. package/src/tool/sailArea/i18n/nl.ts +275 -0
  41. package/src/tool/sailArea/i18n/pl.ts +275 -0
  42. package/src/tool/sailArea/i18n/pt.ts +275 -0
  43. package/src/tool/sailArea/i18n/ru.ts +275 -0
  44. package/src/tool/sailArea/i18n/sv.ts +275 -0
  45. package/src/tool/sailArea/i18n/tr.ts +275 -0
  46. package/src/tool/sailArea/i18n/zh.ts +275 -0
  47. package/src/tool/sailArea/index.ts +12 -0
  48. package/src/tool/speedConverter/i18n/de.ts +271 -0
  49. package/src/tool/speedConverter/i18n/id.ts +271 -0
  50. package/src/tool/speedConverter/i18n/it.ts +271 -0
  51. package/src/tool/speedConverter/i18n/ja.ts +271 -0
  52. package/src/tool/speedConverter/i18n/ko.ts +271 -0
  53. package/src/tool/speedConverter/i18n/nl.ts +271 -0
  54. package/src/tool/speedConverter/i18n/pl.ts +271 -0
  55. package/src/tool/speedConverter/i18n/pt.ts +271 -0
  56. package/src/tool/speedConverter/i18n/ru.ts +194 -0
  57. package/src/tool/speedConverter/i18n/sv.ts +271 -0
  58. package/src/tool/speedConverter/i18n/tr.ts +225 -0
  59. package/src/tool/speedConverter/i18n/zh.ts +271 -0
  60. package/src/tool/speedConverter/index.ts +12 -0
  61. package/src/tool/tideCalculator/i18n/de.ts +203 -0
  62. package/src/tool/tideCalculator/i18n/id.ts +203 -0
  63. package/src/tool/tideCalculator/i18n/it.ts +203 -0
  64. package/src/tool/tideCalculator/i18n/ja.ts +203 -0
  65. package/src/tool/tideCalculator/i18n/ko.ts +203 -0
  66. package/src/tool/tideCalculator/i18n/nl.ts +203 -0
  67. package/src/tool/tideCalculator/i18n/pl.ts +203 -0
  68. package/src/tool/tideCalculator/i18n/pt.ts +203 -0
  69. package/src/tool/tideCalculator/i18n/ru.ts +203 -0
  70. package/src/tool/tideCalculator/i18n/sv.ts +203 -0
  71. package/src/tool/tideCalculator/i18n/tr.ts +203 -0
  72. package/src/tool/tideCalculator/i18n/zh.ts +203 -0
  73. package/src/tool/tideCalculator/index.ts +12 -0
  74. package/src/tool/underKeel/i18n/de.ts +189 -0
  75. package/src/tool/underKeel/i18n/en.ts +2 -2
  76. package/src/tool/underKeel/i18n/fr.ts +2 -2
  77. package/src/tool/underKeel/i18n/id.ts +189 -0
  78. package/src/tool/underKeel/i18n/it.ts +176 -0
  79. package/src/tool/underKeel/i18n/ja.ts +185 -0
  80. package/src/tool/underKeel/i18n/ko.ts +185 -0
  81. package/src/tool/underKeel/i18n/nl.ts +176 -0
  82. package/src/tool/underKeel/i18n/pl.ts +176 -0
  83. package/src/tool/underKeel/i18n/pt.ts +176 -0
  84. package/src/tool/underKeel/i18n/ru.ts +176 -0
  85. package/src/tool/underKeel/i18n/sv.ts +176 -0
  86. package/src/tool/underKeel/i18n/tr.ts +185 -0
  87. package/src/tool/underKeel/i18n/zh.ts +185 -0
  88. package/src/tool/underKeel/index.ts +12 -0
@@ -0,0 +1,271 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
3
+
4
+ const slug = 'conversore-velocita-it';
5
+ const title = 'Convertitore di Velocità Nautica e Scala Beaufort';
6
+ const description =
7
+ 'Converti istantaneamente tra nodi, km/h, m/s e mph. Include la tabella Beaufort completa con descrizioni dello stato del mare ed effetti del vento.';
8
+
9
+ const beaufortData = [
10
+ { force: 0, name: 'Calma', sea: 'Stato del mare come uno specchio', effect: 'Il fumo sale verticalmente', kn: '0' },
11
+ { force: 1, name: 'Bava di vento', sea: 'Rincrespature simili a squame', effect: 'Direzione indicata dal fumo ma non dalla banderuola', kn: '1-3' },
12
+ { force: 2, name: 'Brezza leggera', sea: 'Piccole onde, le creste non si rompono', effect: 'Il vento si sente sul viso, le foglie frusciano', kn: '4-6' },
13
+ { force: 3, name: 'Brezza tesa', sea: 'Onde più grandi, qualche cresta di schiuma bianca', effect: 'Foglie e ramoscelli in movimento', kn: '7-10' },
14
+ { force: 4, name: 'Vento moderato', sea: 'Onde piccole ma che si allungano, frequenti pecorelle', effect: 'Si sollevano polvere e carta', kn: '11-16' },
15
+ { force: 5, name: 'Vento teso', sea: 'Onde moderate, molte pecorelle', effect: 'Le cime degli alberi ondeggiano', kn: '17-21' },
16
+ { force: 6, name: 'Vento fresco', sea: 'Grandi onde iniziano a formarsi, creste di schiuma bianca', effect: 'Difficoltà a usare l\'ombrello', kn: '22-27' },
17
+ { force: 7, name: 'Vento forte', sea: 'Il mare si ingrossa, la schiuma viene soffiata in strisce', effect: 'Difficoltà a camminare controvento', kn: '28-33' },
18
+ { force: 8, name: 'Burrasca', sea: 'Onde alte, gli spruzzi riducono la visibilità', effect: 'Grande difficoltà a camminare', kn: '34-40' },
19
+ { force: 9, name: 'Burrasca forte', sea: 'Onde molto alte, il mare rotola', effect: 'Danni alle strutture', kn: '41-47' },
20
+ { force: 10, name: 'Tempesta', sea: 'Onde eccezionalmente alte, mare bianco', effect: 'Alberi sradicati, danni considerevoli', kn: '48-55' },
21
+ { force: 11, name: 'Tempesta violenta', sea: 'Onde enormi, la schiuma copre il mare', effect: 'Danni diffusi', kn: '56-63' },
22
+ { force: 12, name: 'Uragano', sea: 'L\'aria è piena di schiuma e spruzzi', effect: 'Catastrofe totale', kn: '64+' },
23
+ ];
24
+
25
+ const ui: SpeedConverterUI = {
26
+ knLabel: 'Nodi (kt)',
27
+ kmhLabel: 'Chilometri/ora',
28
+ msLabel: 'Metri/secondo',
29
+ mphLabel: 'Miglia/ora',
30
+ beaufortTitle: 'Scala Beaufort',
31
+ forceLabel: 'Forza',
32
+ descriptionLabel: 'Descrizione',
33
+ knotsLabel: 'Nodi',
34
+ effectLabel: 'Effetto Visivo',
35
+ seaStateLabel: 'Stato del Mare',
36
+ windEffectLabel: 'Effetto a Terra',
37
+ faqTitle: 'Domande Frequenti',
38
+ bibliographyTitle: 'Bibliografia',
39
+ beaufortDataJson: JSON.stringify(beaufortData),
40
+ };
41
+
42
+ const faq: SpeedConverterLocaleContent['faq'] = [
43
+ {
44
+ question: 'Perché la velocità della barca si misura in nodi?',
45
+ answer: 'Il nodo è una unità di velocità equivalente a un miglio nautico all\'ora. La sua origine è storica: i marinai misuravano la velocità gettando in mare un pezzo di legno legato a una corda con nodi a distanza regolare, contando quanti nodi passavano tra le dita in un tempo stabilito. Oggi rimane lo standard internazionale nella navigazione marittima e nell\'aviazione.',
46
+ },
47
+ {
48
+ question: 'Cos\'è la Scala Beaufort e come si usa nella navigazione?',
49
+ answer: 'La Scala Beaufort è una scala empirica che mette in relazione la velocità del vento con gli effetti osservati sul mare e sulla terraferma. Sviluppata dall\'ammiraglio britannico Francis Beaufort nel 1805, va da 0 (calma piatta) a 12 (uragano). I marinai la usano per stimare l\'intensità del vento senza strumenti osservando lo stato del mare.',
50
+ },
51
+ {
52
+ question: 'Qual è la differenza tra SOG e STW nella navigazione?',
53
+ answer: 'SOG (Speed Over Ground) è la velocità reale dell\'imbarcazione rispetto al fondo marino, misurata dal GPS. STW (Speed Through Water) o velocità log è la velocità rispetto all\'acqua circostante. La differenza riflette l\'effetto delle correnti marine. La SOG si usa per pianificare gli arrivi e calcolare il carburante; la STW per calcolare lo scarroccio.',
54
+ },
55
+ {
56
+ question: 'A quanti km/h corrisponde un nodo?',
57
+ answer: 'Un nodo equivale esattamente a 1,852 chilometri orari, che è la lunghezza di un miglio nautico (definito come un minuto d\'arco del meridiano terrestre). Pertanto, 10 nodi corrispondono a 18,52 km/h, 20 nodi a 37,04 km/h e 30 nodi a 55,56 km/h.',
58
+ },
59
+ ];
60
+
61
+ const howTo: SpeedConverterLocaleContent['howTo'] = [
62
+ {
63
+ name: 'Inserisci la velocità in qualsiasi unità',
64
+ text: 'Digita il valore nel campo corrispondente (nodi, km/h, m/s o mph) e tutti gli altri campi si aggiorneranno automaticamente.',
65
+ },
66
+ {
67
+ name: 'Verifica la forza Beaufort equivalente',
68
+ text: 'La scheda Beaufort mostra in tempo reale la forza del vento corrispondente alla velocità inserita, con lo stato del mare e gli effetti a terra.',
69
+ },
70
+ {
71
+ name: 'Clicca su una riga nella tabella Beaufort',
72
+ text: 'Puoi selezionare direttamente qualsiasi grado Beaufort nella tabella sottostante per vederne la velocità minima in tutti i formati.',
73
+ },
74
+ {
75
+ name: 'Usa i risultati per pianificare la navigazione',
76
+ text: 'Combina le informazioni su velocità e vento per decidere se le condizioni sono appropriate per il tuo tipo di barca e per la rotta pianificata.',
77
+ },
78
+ ];
79
+
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
+ const seo: SpeedConverterLocaleContent['seo'] = [
92
+ {
93
+ type: 'title',
94
+ text: 'Guida al Convertitore di Velocità Nautica e Scala Beaufort',
95
+ level: 2,
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'La velocità è un dato fondamentale nella navigazione marittima. Sapere quanti nodi sta facendo la barca, come questo si traduce in chilometri orari per pianificare una rotta, o quale forza Beaufort rappresenta il vento che stai sperimentando, sono calcoli che ogni marinaio deve padroneggiare.',
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'Questo convertitore permette di passare tra nodi, km/h, m/s e mph istantaneamente, identificando automaticamente la forza Beaufort corrispondente con la descrizione dello stato del mare ed effetti visibili.',
104
+ },
105
+ {
106
+ type: 'stats',
107
+ items: [
108
+ { label: 'Unità Standard', value: 'Nodi (kt)', icon: 'mdi:speedometer' },
109
+ { label: 'Scala Vento', value: 'Beaufort (0-12)', icon: 'mdi:weather-windy' },
110
+ { label: 'Conversione Chiave', value: '1 kt = 1.85 km/h', icon: 'mdi:swap-horizontal' },
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Perché la velocità si misura in Nodi?',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: 'Il <strong>nodo (kt)</strong> è l\'unità ufficiale di velocità nella navigazione marittima e aerea. La sua definizione è precisa: un nodo equivale a un miglio nautico all\'ora, dove il miglio nautico (1852 m) è definito come un minuto d\'arco del meridiano terrestre. Questo legame diretto con la geometria della Terra rende il nodo un\'unità pratica per la navigazione, permettendo di stimare le distanze direttamente sulla carta nautica senza conversioni.',
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Storicamente, i marinai misuravano la velocità usando il <em>solcometro a barchetta</em>: un pezzo di legno gettato in mare legato a una sagola con nodi ogni 14,4 metri (la frazione proporzionale di un miglio nautico in 30 secondi). Contare i nodi che passavano tra le dita in quel tempo dava la velocità, dando origine al termine che usiamo oggi.',
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'La Scala Beaufort: L\'Occhio del Marinaio',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: 'La <strong>Scala Beaufort</strong> fu sviluppata nel 1805 dall\'ammiraglio britannico Sir Francis Beaufort come metodo empirico per classificare la forza del vento dagli effetti osservabili, senza strumenti. Originariamente concepita per stimare quanta vela potesse portare una nave, è oggi un riferimento universale, adottato dall\'Organizzazione Meteorologica Mondiale (OMM).',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'La scala va da <strong>Forza 0</strong> (calma piatta) a <strong>Forza 12</strong> (uragano con onde oltre i 14 metri). Per il diportista, i limiti critici sono solitamente Forza 6 (vento fresco, 22-27 nodi) per barche piccole e Forza 7-8 per yacht d\'altura.',
138
+ },
139
+ {
140
+ type: 'table',
141
+ headers: ['Forza Beaufort', 'Descrizione', 'Stato del Mare'],
142
+ rows: [
143
+ ['0', 'Calma', 'Stato del mare come uno specchio'],
144
+ ['3', 'Brezza tesa', 'Pecorelle sparse, creste che iniziano a rompersi'],
145
+ ['6', 'Vento fresco', 'Grandi onde, creste di schiuma bianca, possibili spruzzi'],
146
+ ['9', 'Burrasca forte', 'Onde molto alte, visibilità ridotta da schiuma e spruzzi'],
147
+ ['12', 'Uragano', 'Aria piena di schiuma, mare completamente bianco'],
148
+ ],
149
+ },
150
+ {
151
+ type: 'title',
152
+ text: 'Glossario Velocità Nautica',
153
+ level: 3,
154
+ },
155
+ {
156
+ type: 'glossary',
157
+ items: [
158
+ { term: 'Nodo (kt)', definition: 'Unità di velocità pari a un miglio nautico all\'ora (1852 m/h). Standard internazionale nella navigazione.' },
159
+ { term: 'SOG (Speed Over Ground)', definition: 'Velocità reale rispetto al fondo, misurata dal GPS. Riflette l\'effetto della corrente sulla velocità della barca.' },
160
+ { term: 'Velocità Log (STW)', definition: 'Velocità rispetto all\'acqua, misurata dal solcometro. Non include l\'effetto della corrente; fondamentale per lo scarroccio.' },
161
+ { term: 'Vento Apparente', definition: 'Vento avvertito dall\'equipaggio a bordo, somma vettoriale tra vento reale e vento generato dall\'avanzamento. Differisce sempre dal vento reale per intensità e direzione.' },
162
+ ],
163
+ },
164
+ {
165
+ type: 'title',
166
+ text: 'Formule di Conversione Rapida',
167
+ level: 3,
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'Per convertire manualmente quando non hai accesso a un convertitore digitale, usa queste approssimazioni:',
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>Nodi in km/h:</strong> Moltiplica i nodi per 1.852. Approssimazione rapida: nodi x 2, meno 8%. Es: 10 kt ≈ 20 - 1.6 = 18.4 km/h.',
177
+ '<strong>Nodi in mph:</strong> Moltiplica i nodi per 1.15. Approssimazione: nodi + 15%. Es: 20 kt ≈ 23 mph.',
178
+ '<strong>Nodi in m/s:</strong> Moltiplica i nodi per 0.514. Approssimazione rapida: dividi i nodi per 2. Es: 10 kt ≈ 5 m/s.',
179
+ ],
180
+ },
181
+ {
182
+ type: 'tip',
183
+ title: 'Sicurezza e Climatologia',
184
+ html: 'Prima di uscire, consulta sempre il bollettino meteo. Beaufort 4-5 è gestibile per la maggior parte del diporto; da Forza 6 in su, valuta seriamente di rimandare la partenza se non hai esperienza sufficiente o se la barca non è preparata.',
185
+ },
186
+ {
187
+ type: 'title',
188
+ text: 'Confronto degli Strumenti',
189
+ level: 3,
190
+ },
191
+ {
192
+ type: 'comparative',
193
+ items: [
194
+ {
195
+ title: 'Anemometro Digitale',
196
+ description: 'Strumento elettronico per la misura precisa della velocità del vento.',
197
+ icon: 'mdi:speedometer',
198
+ points: [
199
+ 'Precisione di ±2% in condizioni normali',
200
+ 'Richiede alimentazione elettrica',
201
+ 'Può guastarsi in condizioni estreme',
202
+ 'Lettura istantanea e registrazione dati',
203
+ ],
204
+ },
205
+ {
206
+ title: 'Osservazione Beaufort',
207
+ description: 'Stima visiva dal mare e dalla terra.',
208
+ icon: 'mdi:eye-outline',
209
+ highlight: true,
210
+ points: [
211
+ 'Non richiede alcuno strumento',
212
+ 'Disponibile in ogni condizione',
213
+ 'Precisione sufficiente per la sicurezza',
214
+ 'Abilità fondamentale del navigatore esperto',
215
+ ],
216
+ },
217
+ ],
218
+ },
219
+ {
220
+ type: 'title',
221
+ text: 'Navigazione e Pianificazione',
222
+ level: 3,
223
+ },
224
+ {
225
+ type: 'paragraph',
226
+ html: 'Nella pianificazione, la velocità determina l\'orario stimato di arrivo (ETA) e il consumo di carburante. Per le barche a vela, la velocità dipende anche dalla forza e direzione del vento: conoscere la forza Beaufort prevista permette di anticipare se si potrà veleggiare o se servirà il motore.',
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: 'Nelle regate, la conversione tra nodi e m/s è utile per calcolare la VMG (Velocity Made Good) e analizzare le polari. I meteorologi danno spesso il vento in m/s, quindi la conversione in nodi è un passo quotidiano nella pianificazione tattica.',
231
+ },
232
+ ];
233
+
234
+ const schemas: SpeedConverterLocaleContent['schemas'] = [
235
+ {
236
+ '@context': 'https://schema.org',
237
+ '@type': 'SoftwareApplication',
238
+ name: title,
239
+ description,
240
+ applicationCategory: 'UtilityApplication',
241
+ operatingSystem: 'Web',
242
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
243
+ } as WithContext<SoftwareApplication>,
244
+ {
245
+ '@context': 'https://schema.org',
246
+ '@type': 'FAQPage',
247
+ mainEntity: faq.map((item) => ({
248
+ '@type': 'Question',
249
+ name: item.question,
250
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
251
+ })),
252
+ } as WithContext<FAQPage>,
253
+ {
254
+ '@context': 'https://schema.org',
255
+ '@type': 'HowTo',
256
+ name: `Come usare: ${title}`,
257
+ step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
258
+ } as WithContext<HowTo>,
259
+ ];
260
+
261
+ export const content: SpeedConverterLocaleContent = {
262
+ slug,
263
+ title,
264
+ description,
265
+ ui,
266
+ seo,
267
+ faq,
268
+ bibliography,
269
+ howTo,
270
+ schemas,
271
+ };
@@ -0,0 +1,271 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
3
+
4
+ const slug = 'nautical-speed-converter';
5
+ const title = '航用速度換算およびビューフォート風力階級';
6
+ const description =
7
+ 'ノット、km/h、m/s、mphの間で即座に換算します。海の状態の詳細な説明と陸上の風の影響を含むビューフォート風力階級表を搭載。';
8
+
9
+ const beaufortData = [
10
+ { force: 0, name: '静穏', sea: '鏡のような海面', effect: '煙は垂直に上がる', kn: '0' },
11
+ { force: 1, name: '至軽風', sea: 'うろこ状のさざ波', effect: '煙は風向を示すが風信器は動かない', kn: '1-3' },
12
+ { force: 2, name: '軽風', sea: '小さな波、頂は砕けない', effect: '顔に風を感じる、葉がそよぐ', kn: '4-6' },
13
+ { force: 3, name: '軟風', sea: '波頭が砕け始める、白波が散在する', effect: '木の葉や細枝が動く', kn: '7-10' },
14
+ { force: 4, name: '和風', sea: '小さな波、白波が多くなり波長が長くなる', effect: '砂埃が立ち、紙が舞う', kn: '11-16' },
15
+ { force: 5, name: '疾風', sea: '中程度の波、至る所に白波が立つ', effect: '小さな樹木が揺れ始める', kn: '17-21' },
16
+ { force: 6, name: '雄風', sea: '大波、頂に白い泡の塊が生じる', effect: '傘がさしにくい', kn: '22-27' },
17
+ { force: 7, name: '強風', sea: '海面が騒ぎ立ち、泡が筋を引いて吹かれる', effect: '風に向かって歩きにくい', kn: '28-33' },
18
+ { force: 8, name: '疾強風', sea: '高い波、水しぶきで視界が低下する', effect: '歩行が非常に困難', kn: '34-40' },
19
+ { force: 9, name: '大強風', sea: '非常に高い大波、海面がうねって転がる', effect: '建物に被害が出始める', kn: '41-47' },
20
+ { force: 10, name: '全強風', sea: '異常に高い大波、海面は真っ白に見える', effect: '樹木が根こそぎ倒れる、大きな被害', kn: '48-55' },
21
+ { force: 11, name: '暴風', sea: '巨大な波、泡が海面を覆い尽くす', effect: '広範囲にわたる壊滅的な被害', kn: '56-63' },
22
+ { force: 12, name: '猛烈な風', sea: '空気は泡としぶきに満たされる', effect: '壊滅的な状況', kn: '64+' },
23
+ ];
24
+
25
+ const ui: SpeedConverterUI = {
26
+ knLabel: 'ノット (kt)',
27
+ kmhLabel: 'キロメートル/時',
28
+ msLabel: 'メートル/秒',
29
+ mphLabel: 'マイル/時',
30
+ beaufortTitle: 'ビューフォート風力階級',
31
+ forceLabel: '風力',
32
+ descriptionLabel: '説明',
33
+ knotsLabel: 'ノット',
34
+ effectLabel: '視覚的影響',
35
+ seaStateLabel: '海の状態',
36
+ windEffectLabel: '陸上の影響',
37
+ faqTitle: 'よくある質問',
38
+ bibliographyTitle: '参考文献',
39
+ beaufortDataJson: JSON.stringify(beaufortData),
40
+ };
41
+
42
+ const faq: SpeedConverterLocaleContent['faq'] = [
43
+ {
44
+ question: 'なぜ船の速度は「ノット」で測られるのですか?',
45
+ answer: 'ノットは1時間に1海里進む速度の単位です。その起源は歴史的なもので、船乗りたちが一定の間隔で結び目(ノット)を作ったロープに結びつけた木片を海に投げ込み、一定時間内にいくつの結び目が指の間を通り過ぎたかを数えて速度を測ったことに由来します。今日でも、海洋航行および航空の国際標準単位として使用されています。',
46
+ },
47
+ {
48
+ question: 'ビューフォート風力階級とは何ですか?航海でどう使われますか?',
49
+ answer: 'ビューフォート風力階級は、風速を海面や陸上の観察可能な状態に関連付けた経験的な尺度です。1805年にイギリスのフランシス・ビューフォート提督によって開発され、0(平穏)から12(猛烈な風)まであります。船乗りは計器がなくても、海の状態を観察することで風の強さを推定するために使用します。',
50
+ },
51
+ {
52
+ question: '航法におけるSOGとSTWの違いは何ですか?',
53
+ answer: 'SOG(Speed Over Ground:対地速度)は、GPSで測定される海底に対する実際の速度です。STW(Speed Through Water:対水速度)またはログ速度は、周囲の水に対する船の速度です。両者の差は潮流の影響を反映しています。SOGは到着予定時刻や燃料計算に、STWは風圧流(リーウェイ)の計算に使用されます。',
54
+ },
55
+ {
56
+ question: '1ノットは何km/hですか?',
57
+ answer: '1ノットは正確に時速1.852キロメートルです。これは1海里(地球の子午線の緯度1分として定義)の長さに基づいています。したがって、10ノットは18.52 km/h、20ノットは37.04 km/h、30ノットは55.56 km/hに相当します。',
58
+ },
59
+ ];
60
+
61
+ const howTo: SpeedConverterLocaleContent['howTo'] = [
62
+ {
63
+ name: '任意の単位で速度を入力する',
64
+ text: '対応するフィールド(ノット、km/h、m/s、mph)に速度を入力すると、他のすべてのフィールドが自動的に更新されます。',
65
+ },
66
+ {
67
+ name: '対応するビューフォート風力を確認する',
68
+ text: 'ビューフォートカードには、入力された速度に対応する風力階級、海の状態、陸上の影響がリアルタイムで表示されます。',
69
+ },
70
+ {
71
+ name: 'ビューフォート表の行をクリックする',
72
+ text: '下表の任意の風力階級を直接選択して、その階級の最小速度を全フォーマットで確認できます。',
73
+ },
74
+ {
75
+ name: '結果を航海計画に使用する',
76
+ text: '速度と風の情報を組み合わせて、現在のコンディションが自分の船のタイプや計画している航路に適切かどうかを判断してください。',
77
+ },
78
+ ];
79
+
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
+ const seo: SpeedConverterLocaleContent['seo'] = [
92
+ {
93
+ type: 'title',
94
+ text: '航用速度換算およびビューフォート風力階級ガイド',
95
+ level: 2,
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: '速度は海洋航行における基本的なデータです。自船が何ノットで進んでいるのか、それが航海計画のために時速何キロに相当するのか、また現在の風がビューフォート階級でいくつなのかを知ることは、すべての船乗りが習得すべき計算です。',
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'この航用速度換算ツールを使用すると、ノット、km/h、m/s、mphの間で即座に変換でき、対応するビューフォート風力、海の状態の説明、観察可能な風の影響が自動的に特定されます。',
104
+ },
105
+ {
106
+ type: 'stats',
107
+ items: [
108
+ { label: '標準単位', value: 'ノット (kt)', icon: 'mdi:speedometer' },
109
+ { label: '風力尺度', value: 'ビューフォート (0-12)', icon: 'mdi:weather-windy' },
110
+ { label: '主要な換算', value: '1 kt = 1.852 km/h', icon: 'mdi:swap-horizontal' },
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'なぜ速度はノットで測られるのか?',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: '<strong>ノット (kt)</strong> は、海上および航空航法における公式の速度単位です。その定義は正確で、1ノットは1海里/時に等しく、海里 (1852 m) は地球の子午線の緯度1分として定義されています。地球の幾何学とのこの直接的な関係により、ノットは航海にとって特に実用的な単位となり、海図上で換算なしに距離を直接見積もることができます。',
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: '歴史的に、船乗りたちは<em>ログ(測程儀)</em>を使用して速度を測りました。一定間隔(30秒間に進む1海里の比例端数である14.4メートルごと)に結び目を作ったロープに結びつけた三角形の木片を海に投げ込み、その間に指の間を通り過ぎた結び目の数を数えることで船の速度を得ていました。これが今日私たちが使っている用語の由来です。',
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'ビューフォート風力階級:船乗りの目',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '<strong>ビューフォート風力階級</strong>は、1805年にイギリスのフランシス・ビューフォート提督によって、計器を使わずに観察可能な影響から風の強さを分類するための経験的な方法として開発されました。もともとは船がどれだけの帆を張れるかを推定するために考案されましたが、今日では世界気象機関 (WMO) によって採用され、海洋気象における世界共通の基準となっています。',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: '階級は<strong>風力0</strong>(静穏、鏡のような海面)から<strong>風力12</strong>(14メートルを超える波と泡としぶきに満たされた空気のハリケーン状態)まであります。レジャーセーラーにとっての批判的な限界は、通常、小型艇では風力6(雄風、22-27ノット)、外洋ヨットでは風力7-8となります。',
138
+ },
139
+ {
140
+ type: 'table',
141
+ headers: ['ビューフォート風力', '説明', '海の状態'],
142
+ rows: [
143
+ ['0', '静穏', '鏡のような海面'],
144
+ ['3', '軟風', '白波が散在し、波頭が砕け始める'],
145
+ ['6', '雄風', '大波、頂に白い泡の塊、しぶきの可能性'],
146
+ ['9', '大強風', '非常に高い大波、泡としぶきで視界が低下'],
147
+ ['12', '猛烈な風', '空気中がしぶきで満たされ、海面は真っ白'],
148
+ ],
149
+ },
150
+ {
151
+ type: 'title',
152
+ text: '航用速度用語集',
153
+ level: 3,
154
+ },
155
+ {
156
+ type: 'glossary',
157
+ items: [
158
+ { term: 'ノット (kt)', definition: '1時間に1海里進む速度の単位 (1852 m/h)。海上および航空航法の国際標準。' },
159
+ { term: 'SOG (Speed Over Ground)', definition: 'GPSで測定される海底に対する船の実際の速度。潮流が船速に与える影響を反映する。' },
160
+ { term: 'ログ速度 (STW)', definition: 'ログで測定される周囲の水に対する船の速度。潮流の影響を含まない。風圧流の計算に不可欠。' },
161
+ { term: '見かけの風', definition: '船上で乗組員が感じる風。真の風と船の前進によって生じる風のベクトル和。常に真の風とは強さと方向が異なる。' },
162
+ ],
163
+ },
164
+ {
165
+ type: 'title',
166
+ text: '簡易換算式',
167
+ level: 3,
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'デジタル換算ツールが使えないときに手動で速度を換算するには、すべての船乗りが暗記しておくべき以下の近似式を使用してください。',
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>ノットからkm/hへ:</strong> ノットに1.852を掛けます。簡易計算:ノットを2倍して8%引く。例:10 kt ≈ 20 - 1.6 = 18.4 km/h。',
177
+ '<strong>ノットからmphへ:</strong> ノットに1.15を掛けます。簡易計算:ノットに15%加える。例:20 kt ≈ 23 mph。',
178
+ '<strong>ノットからm/sへ:</strong> ノットに0.514を掛けます。簡易計算:ノットを2で割る。例:10 kt ≈ 5 m/s(正確には5.14 m/s)。',
179
+ ],
180
+ },
181
+ {
182
+ type: 'tip',
183
+ title: '安全と気象',
184
+ html: '出航前には必ず海上気象予報を確認してください。ビューフォート風力4-5はほとんどのレジャー船にとって管理可能な範囲ですが、風力6以上の場合、十分な経験がない、または船の準備が整っていないなら、出航の見合わせを真剣に検討してください。',
185
+ },
186
+ {
187
+ type: 'title',
188
+ text: '装備の比較',
189
+ level: 3,
190
+ },
191
+ {
192
+ type: 'comparative',
193
+ items: [
194
+ {
195
+ title: 'デジタル風速計',
196
+ description: '風速を正確に測定するための電子機器。',
197
+ icon: 'mdi:speedometer',
198
+ points: [
199
+ '通常条件下で±2%の精度',
200
+ '電力または電池が必要',
201
+ '極限状態では故障の可能性がある',
202
+ '即座の読み取りとデータ記録が可能',
203
+ ],
204
+ },
205
+ {
206
+ title: 'ビューフォート観察',
207
+ description: '海面や陸上の観察可能な状態から風力を視覚的に推定。',
208
+ icon: 'mdi:eye-outline',
209
+ highlight: true,
210
+ points: [
211
+ '計器を一切必要としない',
212
+ 'どのような状況でも利用可能',
213
+ '安全上の判断に十分な精度',
214
+ '熟練した航海者の必須スキル',
215
+ ],
216
+ },
217
+ ],
218
+ },
219
+ {
220
+ type: 'title',
221
+ text: '航海と航路計画',
222
+ level: 3,
223
+ },
224
+ {
225
+ type: 'paragraph',
226
+ html: '航路を計画する際、船速は到着予定時刻 (ETA) と燃料消費量(動力船の場合)を決定します。ヨットの場合、速度は風の強さと方向にも依存します。予測されるビューフォート風力を知ることで、帆走できるか、あるいはエンジンが必要になるかを予測できます。',
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: 'レースでは、ノットとメートル毎秒の換算は、VMG (Velocity Made Good) の計算やセール・ポーラー図の分析に特に有用です。気象学者や数値予報モデルは通常、風速をm/sまたはkm/hで提供するため、ノットへの換算は戦術計画における日常的なステップとなります。',
231
+ },
232
+ ];
233
+
234
+ const schemas: SpeedConverterLocaleContent['schemas'] = [
235
+ {
236
+ '@context': 'https://schema.org',
237
+ '@type': 'SoftwareApplication',
238
+ name: title,
239
+ description,
240
+ applicationCategory: 'UtilityApplication',
241
+ operatingSystem: 'Web',
242
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
243
+ } as WithContext<SoftwareApplication>,
244
+ {
245
+ '@context': 'https://schema.org',
246
+ '@type': 'FAQPage',
247
+ mainEntity: faq.map((item) => ({
248
+ '@type': 'Question',
249
+ name: item.question,
250
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
251
+ })),
252
+ } as WithContext<FAQPage>,
253
+ {
254
+ '@context': 'https://schema.org',
255
+ '@type': 'HowTo',
256
+ name: `使い方: ${title}`,
257
+ step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
258
+ } as WithContext<HowTo>,
259
+ ];
260
+
261
+ export const content: SpeedConverterLocaleContent = {
262
+ slug,
263
+ title,
264
+ description,
265
+ ui,
266
+ seo,
267
+ faq,
268
+ bibliography,
269
+ howTo,
270
+ schemas,
271
+ };