@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,194 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { SpeedConverterUI, SpeedConverterLocaleContent } from '../index';
3
+
4
+ const slug = 'speed-converter-ru';
5
+ const title = 'Морской конвертер скорости и шкала Бофорта';
6
+ const description =
7
+ 'Мгновенно конвертируйте узлы, км/ч, м/с и мили/ч. Включает полную таблицу Бофорта с описанием состояния моря и воздействия ветра.';
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: 'Узел — это единица скорости, равная одной морской миле в час. Происхождение термина историческое: моряки измеряли скорость, выбрасывая за борт кусок дерева (лаг), привязанный к тросу с узлами на равном расстоянии. Они считали, сколько узлов пройдет через пальцы за определенное время. Сегодня это международный стандарт в мореплавании и авиации.',
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: 'Сколько км/ч в одном узле?',
57
+ answer: 'Один узел равен ровно 1,852 километра в час, что соответствует длине одной морской мили (одной минуте дуги земного меридиана). Таким образом, 10 узлов — это 18,52 км/ч, 20 узлов — 37,04 км/ч.',
58
+ },
59
+ ];
60
+
61
+ const howTo: SpeedConverterLocaleContent['howTo'] = [
62
+ {
63
+ name: 'Введите скорость в любых единицах',
64
+ text: 'Введите значение скорости в соответствующее поле (узлы, км/ч, м/с или мили/ч), и все остальные поля обновятся автоматически.',
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: 'Этот конвертер позволяет мгновенно переводить значения между узлами, км/ч, м/с и милями/ч, автоматически определяя балл по шкале Бофорта.',
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 узел = 1.85 км/ч', 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> — официальная единица скорости в море и авиации. Один узел равен одной морской миле в час (1852 м). Прямая связь с геометрией Земли делает узел очень практичным: расстояния можно оценивать прямо по морской карте без конвертации.',
121
+ },
122
+ {
123
+ type: 'title',
124
+ text: 'Шкала Бофорта: Глаз моряка',
125
+ level: 3,
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: '<strong>Шкала Бофорта</strong> создана в 1805 году адмиралом Фрэнсисом Бофортом как метод классификации ветра без приборов. Для яхтсмена критическим обычно является 6 баллов (сильный ветер, 22-27 узлов) для малых судов и 7-8 баллов для крейсерских яхт.',
130
+ },
131
+ {
132
+ type: 'table',
133
+ headers: ['Баллы Бофорта', 'Описание', 'Состояние моря'],
134
+ rows: [
135
+ ['0', 'Штиль', 'Море зеркально гладкое'],
136
+ ['3', 'Слабый ветер', 'Местами образуются белые барашки'],
137
+ ['6', 'Сильный ветер', 'Крупные волны, пенные гребни'],
138
+ ['9', 'Шторм', 'Высокие волны, видимость ограничена брызгами'],
139
+ ['12', 'Ураган', 'Воздух наполнен пеной и брызгами, море белое'],
140
+ ],
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Быстрые формулы для конвертации',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'list',
149
+ items: [
150
+ '<strong>Узлы в км/ч:</strong> Умножьте на 1.852. Быстро: узлы x 2, минус 8%%.',
151
+ '<strong>Узлы в мили/ч:</strong> Умножьте на 1.15. Быстро: узлы + 15%%.',
152
+ '<strong>Узлы в м/с:</strong> Умножьте на 0.514. Быстро: разделите узлы на 2.',
153
+ ],
154
+ },
155
+ ];
156
+
157
+ const schemas: SpeedConverterLocaleContent['schemas'] = [
158
+ {
159
+ '@context': 'https://schema.org',
160
+ '@type': 'SoftwareApplication',
161
+ name: title,
162
+ description,
163
+ applicationCategory: 'UtilityApplication',
164
+ operatingSystem: 'Web',
165
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
166
+ } as WithContext<SoftwareApplication>,
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'FAQPage',
170
+ mainEntity: faq.map((item) => ({
171
+ '@type': 'Question',
172
+ name: item.question,
173
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
174
+ })),
175
+ } as WithContext<FAQPage>,
176
+ {
177
+ '@context': 'https://schema.org',
178
+ '@type': 'HowTo',
179
+ name: `Как пользоваться: ${title}`,
180
+ step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
181
+ } as WithContext<HowTo>,
182
+ ];
183
+
184
+ export const content: SpeedConverterLocaleContent = {
185
+ slug,
186
+ title,
187
+ description,
188
+ ui,
189
+ seo,
190
+ faq,
191
+ bibliography,
192
+ howTo,
193
+ schemas,
194
+ };
@@ -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 = 'hastighets-omvandlare-sv';
5
+ const title = 'Nautisk hastighetsomvandlare och Beaufortskalan';
6
+ const description =
7
+ 'Konvertera omedelbart mellan knop, km/h, m/s och mph. Inkluderar fullständig Beaufort-tabell med beskrivningar av sjötillstånd och vindeffekter.';
8
+
9
+ const beaufortData = [
10
+ { force: 0, name: 'Stilla', sea: 'Spegelblank sjö', effect: 'Röken stiger rakt upp', kn: '0' },
11
+ { force: 1, name: 'Lätt lufthav', sea: 'Små krusningar som fiskfjäll', effect: 'Röken visar vindriktningen', kn: '1-3' },
12
+ { force: 2, name: 'Svag vind', sea: 'Små vågor, inga vita trösklar', effect: 'Vinden känns i ansiktet, löven prasslar', kn: '4-6' },
13
+ { force: 3, name: 'Måttlig vind', sea: 'Topparna börjar brytas, enstaka vita gäss', effect: 'Löv och småkvistar i rörelse', kn: '7-10' },
14
+ { force: 4, name: 'Frisk vind', sea: 'Små vågor blir långa, många vita gäss', effect: 'Damm och papper lyfts', kn: '11-16' },
15
+ { force: 5, name: 'Styv vind', sea: 'Måttliga vågor, många vita skumkammar', effect: 'Små träd börjar svaja', kn: '17-21' },
16
+ { force: 6, name: 'Hård vind', sea: 'Stora vågor börjar bildas, vita skumkammar överallt', effect: 'Svårt att använda paraply', kn: '22-27' },
17
+ { force: 7, name: 'Meget hård vind', sea: 'Sjön tornar upp sig, skummet lägger sig i ränder', effect: 'Svårt att gå mot vinden', kn: '28-33' },
18
+ { force: 8, name: 'Hård kuling', sea: 'Höga vågor, sjöryken minskar sikten', effect: 'Mycket svårt att gå', kn: '34-40' },
19
+ { force: 9, name: 'Halv storm', sea: 'Mycket höga vågor, sjön börjar rulla', effect: 'Skador på hus kan förekomma', kn: '41-47' },
20
+ { force: 10, name: 'Storm', sea: 'Exceptionellt höga vågor, havet helt vitt', effect: 'Träd rycks upp, omfattande skador', kn: '48-55' },
21
+ { force: 11, name: 'Svår storm', sea: 'Enorma vågor, skum täcker havet', effect: 'Utbredda skador', kn: '56-63' },
22
+ { force: 12, name: 'Orkan', sea: 'Luften fylld med skum och stänk', effect: 'Total ödeläggelse', kn: '64+' },
23
+ ];
24
+
25
+ const ui: SpeedConverterUI = {
26
+ knLabel: 'Knop (kt)',
27
+ kmhLabel: 'Kilometer/timme',
28
+ msLabel: 'Meter/sekund',
29
+ mphLabel: 'Miles/timme',
30
+ beaufortTitle: 'Beaufortskalan',
31
+ forceLabel: 'Styrka',
32
+ descriptionLabel: 'Beskrivning',
33
+ knotsLabel: 'Knop',
34
+ effectLabel: 'Visuell effekt',
35
+ seaStateLabel: 'Sjötillstånd',
36
+ windEffectLabel: 'Effekt på land',
37
+ faqTitle: 'Vanliga frågor',
38
+ bibliographyTitle: 'Bibliografi',
39
+ beaufortDataJson: JSON.stringify(beaufortData),
40
+ };
41
+
42
+ const faq: SpeedConverterLocaleContent['faq'] = [
43
+ {
44
+ question: 'Varför mäts båtens hastighet i knop?',
45
+ answer: 'Distansminuten per timme kallas knop. Ursprunget är historiskt: sjömän mätte fartygets fart genom att kasta ut en träbit i sjön som satt fast i ett rep med jämnt fördelade knutar. De räknade hur många knutar som passerade mellan fingrarna under en viss tid. Idag är det den internationella standardenheter för sjö- och luftfart.',
46
+ },
47
+ {
48
+ question: 'Vad är Beaufortskalan och hur används den i navigering?',
49
+ answer: 'Beaufortskalan är en empirisk skala som relaterar vindhastighet till observerade effekter till sjöss och till lands. Den utvecklades av den brittiska amiralen Francis Beaufort 1805 och sträcker sig från 0 (stilla) till 12 (orkan). Seglare använder den för att uppskatta vindstyrkan utan instrument genom att observera havets tillstånd.',
50
+ },
51
+ {
52
+ question: 'Vad är skillnaden mellan SOG och STW i navigering?',
53
+ answer: 'SOG (Speed Over Ground) är fartygets faktiska hastighet i förhållande till havsbotten, mätt med GPS. STW (Speed Through Water) eller loggfart är fartygets hastighet i förhållande till det omgivande vattnet. Skillnaden mellan dem speglar effekten av havsströmmar. SOG används för att planera ankomster och beräkna bränsle; STW används för att beräkna avdrift (leeway).',
54
+ },
55
+ {
56
+ question: 'Hur många km/h är en knop?',
57
+ answer: 'En knop motsvarar exakt 1,852 kilometer i timmen, vilket är längden på en distansminut (definierad som en bågminut av jordmeridianen). Därför motsvarar 10 knop 18,52 km/h, 20 knop 37,04 km/h och 30 knop 55,56 km/h.',
58
+ },
59
+ ];
60
+
61
+ const howTo: SpeedConverterLocaleContent['howTo'] = [
62
+ {
63
+ name: 'Ange hastigheten i valfri enhet',
64
+ text: 'Skriv in hastighetsvärdet i motsvarande fält (knop, km/h, m/s eller mph) så uppdateras alla andra fält automatiskt.',
65
+ },
66
+ {
67
+ name: 'Kontrollera motsvarande Beaufortstyrka',
68
+ text: 'Beaufortkortet visar i realtid den vindstyrka som motsvarar den angivna hastigheten, med sjötillstånd och landeffekter.',
69
+ },
70
+ {
71
+ name: 'Klicka på en rad i Beaufort-tabellen',
72
+ text: 'Du kan direkt välja valfri Beaufortstyrka i tabellen nedan för att se dess minimihastighet i alla format.',
73
+ },
74
+ {
75
+ name: 'Använd resultaten för att planera din navigering',
76
+ text: 'Kombinera hastighets- och vindinformation för att avgöra om förhållandena är lämpliga för din typ av fartyg och planerad rutt.',
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: 'Guide till den nautiska hastighetsomvandlaren och Beaufortskalan',
95
+ level: 2,
96
+ },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'Hastighet är en grundläggande datapunkt i marin navigering. Att veta hur många knop din båt gör, hur det översätts till kilometer i timmen för att planera en rutt, eller vilken Beaufortstyrka vinden har, är beräkningar som varje seglare behöver behärska.',
100
+ },
101
+ {
102
+ type: 'paragraph',
103
+ html: 'Denna nautiska hastighetsomvandlare låter dig omvandla mellan knop, km/h, m/s och mph omedelbart, samtidigt som den automatiskt identifierar motsvarande Beaufortstyrka med sjötillståndsbeskrivning och observerbara vindeffekter.',
104
+ },
105
+ {
106
+ type: 'stats',
107
+ items: [
108
+ { label: 'Standardenhet', value: 'Knop (kt)', icon: 'mdi:speedometer' },
109
+ { label: 'Vindskala', value: 'Beaufort (0-12)', icon: 'mdi:weather-windy' },
110
+ { label: 'Viktig omvandling', value: '1 kt = 1,85 km/h', icon: 'mdi:swap-horizontal' },
111
+ ],
112
+ },
113
+ {
114
+ type: 'title',
115
+ text: 'Varför mäts hastighet i knop?',
116
+ level: 3,
117
+ },
118
+ {
119
+ type: 'paragraph',
120
+ html: '<strong>Knop (kt)</strong> är den officiella enheten för hastighet inom sjö- och luftfart. Definitionen är exakt: en knop är lika med en distansminut per timme, där en distansminut (1852 m) definieras som en bågminut av jordmeridianen. Detta direkta samband med jordens geometri gör knop till en särskilt praktisk enhet för navigering, eftersom avstånd kan uppskattas direkt på ett sjökort utan omvandling.',
121
+ },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Historiskt mätte sjömän fartygets fart med <em>skäddloggen</em>: en rätvinklig träskiva som kastades i sjön, fäst vid en lina med knutar på var 14,4 meter. Genom att räkna antalet knutar som löpte ut under 30 sekunder fick man farten, vilket gav upphov till den term vi använder idag.',
125
+ },
126
+ {
127
+ type: 'title',
128
+ text: 'Beaufortskalan: Sjömannens öga',
129
+ level: 3,
130
+ },
131
+ {
132
+ type: 'paragraph',
133
+ html: '<strong>Beaufortskalan</strong> utvecklades 1805 av den brittiske amiralen Sir Francis Beaufort som en empirisk metod för att klassificera vindstyrka utifrån observerbara effekter, utan instrumentering. Den var ursprungligen avsedd för att uppskatta hur mycket segel ett fartyg kunde föra, men är idag en universell referens inom marin meteorologi.',
134
+ },
135
+ {
136
+ type: 'paragraph',
137
+ html: 'Skalan sträcker sig från <strong>Styrka 0</strong> (stilla, spegelblank sjö) till <strong>Styrka 12</strong> (orkanförhållanden med vågor över 14 meter och luft fylld med skum och stänk). För fritidsseglare går de kritiska gränserna vanligtvis vid Styrka 6 (hård vind, 22-27 knop) för små båtar och Styrka 7-8 för havsgående yachter.',
138
+ },
139
+ {
140
+ type: 'table',
141
+ headers: ['Beaufortstyrka', 'Beskrivning', 'Sjöförhållanden'],
142
+ rows: [
143
+ ['0', 'Stilla', 'Spegelblank sjö'],
144
+ ['3', 'Måttlig vind', 'Vita gäss börjar förekomma'],
145
+ ['6', 'Hård vind', 'Stora vågor, vita skumkammar, sjörök möjlig'],
146
+ ['9', 'Halv storm', 'Mycket höga vågor, sikten minskar av skum och stänk'],
147
+ ['12', 'Orkan', 'Luften helt fylld av skum, havet helt vitt'],
148
+ ],
149
+ },
150
+ {
151
+ type: 'title',
152
+ text: 'Nautisk hastighetsordlista',
153
+ level: 3,
154
+ },
155
+ {
156
+ type: 'glossary',
157
+ items: [
158
+ { term: 'Knop (kt)', definition: 'Hastighetsenhet lika med en distansminut per timme (1852 m/h). Internationell standard inom sjöfart och flyg.' },
159
+ { term: 'SOG (Speed Over Ground)', definition: 'Fartygets faktiska fart över havsbotten, mätt med GPS. Inkluderar effekten av havsströmmar.' },
160
+ { term: 'Loggfart (STW)', definition: 'Fartygets hastighet i förhållande till det omgivande vattnet. Inkluderar inte strömeffekter; viktig för att beräkna avdrift.' },
161
+ { term: 'Skenbar vind', definition: 'Vinden som upplevs ombord, summan av den sanna vinden och fartvinden från fartygets rörelse. Skiljer sig alltid från den sanna vinden i styrka och riktning.' },
162
+ ],
163
+ },
164
+ {
165
+ type: 'title',
166
+ text: 'Snabbformler för omvandling',
167
+ level: 3,
168
+ },
169
+ {
170
+ type: 'paragraph',
171
+ html: 'För att konvertera hastigheter manuellt när du inte har tillgång till en digital omvandlare, använd dessa snabba uppskattningar som varje seglare bör kunna utantill:',
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>Knop till km/h:</strong> Multiplicera knop med 1,852. Snabb uppskattning: knop x 2, minus 8%%. Till exempel, 10 kt ≈ 20 - 1,6 = 18,4 km/h.',
177
+ '<strong>Knop till mph:</strong> Multiplicera knop med 1,15. Uppskattning: knop + 15%%. Till exempel, 20 kt ≈ 23 mph.',
178
+ '<strong>Knop till m/s:</strong> Multiplicera knop med 0,514. Snabb uppskattning: dela knop med 2. Till exempel, 10 kt ≈ 5 m/s (exakt: 5,14 m/s).',
179
+ ],
180
+ },
181
+ {
182
+ type: 'tip',
183
+ title: 'Säkerhet och klimatologi',
184
+ html: 'Innan du ger dig ut, konsultera alltid sjöväderprognosen. Beaufort 4-5 är hanterbart för de flesta fritidsbåtar; från Styrka 6 och uppåt bör du seriöst överväga att skjuta upp avresa om du saknar tillräcklig erfarenhet eller om din båt inte är rustad för de förhållandena.',
185
+ },
186
+ {
187
+ type: 'title',
188
+ text: 'Utrustningsjämförelse',
189
+ level: 3,
190
+ },
191
+ {
192
+ type: 'comparative',
193
+ items: [
194
+ {
195
+ title: 'Digital anemometer',
196
+ description: 'Elektroniskt instrument för exakt mätning av vindhastighet.',
197
+ icon: 'mdi:speedometer',
198
+ points: [
199
+ 'Noggrannhet på ±2%% under normala förhållanden',
200
+ 'Kräver strömförsörjning eller batterier',
201
+ 'Kan haverera under extrema förhållanden',
202
+ 'Omedelbar avläsning och dataloggning',
203
+ ],
204
+ },
205
+ {
206
+ title: 'Beaufortobservation',
207
+ description: 'Visuell uppskattning av vindstyrkan från observerbara effekter till sjöss och på land.',
208
+ icon: 'mdi:eye-outline',
209
+ highlight: true,
210
+ points: [
211
+ 'Kräver inga instrument alls',
212
+ 'Tillgänglig i alla förhållanden',
213
+ 'Tillräcklig noggrannhet för säkerhetsbeslut',
214
+ 'Grundläggande färdighet för den erfarne navigatören',
215
+ ],
216
+ },
217
+ ],
218
+ },
219
+ {
220
+ type: 'title',
221
+ text: 'Navigering och ruttplanering',
222
+ level: 3,
223
+ },
224
+ {
225
+ type: 'paragraph',
226
+ html: 'Vid planering av en rutt avgör din fart framkomsttid (ETA) och bränsleförbrukning för motorbåtar. För en segelyacht beror farten även på vindstyrka och vindriktning. Genom att känna till den prognotiserade Beaufortstyrkan kan du förutse om du kan segla eller om motorn behövs.',
227
+ },
228
+ {
229
+ type: 'paragraph',
230
+ html: 'Inom kappsegling är omvandlingen mellan knop och meter per sekund särskilt användbar för att beräkna VMG (Velocity Made Good) och för att analysera polärdiagram. Meteorologer och numeriska prognosmodeller anger vanligtvis vind i m/s eller km/h, så konvertering till knop är ett rutinmoment i taktisk planering.',
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: `Hur man använder: ${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
+ };