@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.
Files changed (99) 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/component.astro +340 -1
  9. package/src/tool/endurance/i18n/de.ts +249 -0
  10. package/src/tool/endurance/i18n/id.ts +249 -0
  11. package/src/tool/endurance/i18n/it.ts +249 -0
  12. package/src/tool/endurance/i18n/ja.ts +249 -0
  13. package/src/tool/endurance/i18n/ko.ts +249 -0
  14. package/src/tool/endurance/i18n/nl.ts +249 -0
  15. package/src/tool/endurance/i18n/pl.ts +249 -0
  16. package/src/tool/endurance/i18n/pt.ts +249 -0
  17. package/src/tool/endurance/i18n/ru.ts +249 -0
  18. package/src/tool/endurance/i18n/sv.ts +249 -0
  19. package/src/tool/endurance/i18n/tr.ts +249 -0
  20. package/src/tool/endurance/i18n/zh.ts +249 -0
  21. package/src/tool/endurance/index.ts +12 -0
  22. package/src/tool/nauticalConverter/component.astro +208 -1
  23. package/src/tool/nauticalConverter/i18n/de.ts +239 -0
  24. package/src/tool/nauticalConverter/i18n/id.ts +239 -0
  25. package/src/tool/nauticalConverter/i18n/it.ts +239 -0
  26. package/src/tool/nauticalConverter/i18n/ja.ts +239 -0
  27. package/src/tool/nauticalConverter/i18n/ko.ts +239 -0
  28. package/src/tool/nauticalConverter/i18n/nl.ts +239 -0
  29. package/src/tool/nauticalConverter/i18n/pl.ts +239 -0
  30. package/src/tool/nauticalConverter/i18n/pt.ts +239 -0
  31. package/src/tool/nauticalConverter/i18n/ru.ts +239 -0
  32. package/src/tool/nauticalConverter/i18n/sv.ts +239 -0
  33. package/src/tool/nauticalConverter/i18n/tr.ts +239 -0
  34. package/src/tool/nauticalConverter/i18n/zh.ts +239 -0
  35. package/src/tool/nauticalConverter/index.ts +12 -0
  36. package/src/tool/sailArea/component.astro +355 -2
  37. package/src/tool/sailArea/i18n/de.ts +275 -0
  38. package/src/tool/sailArea/i18n/id.ts +275 -0
  39. package/src/tool/sailArea/i18n/it.ts +275 -0
  40. package/src/tool/sailArea/i18n/ja.ts +275 -0
  41. package/src/tool/sailArea/i18n/ko.ts +275 -0
  42. package/src/tool/sailArea/i18n/nl.ts +275 -0
  43. package/src/tool/sailArea/i18n/pl.ts +275 -0
  44. package/src/tool/sailArea/i18n/pt.ts +275 -0
  45. package/src/tool/sailArea/i18n/ru.ts +275 -0
  46. package/src/tool/sailArea/i18n/sv.ts +275 -0
  47. package/src/tool/sailArea/i18n/tr.ts +275 -0
  48. package/src/tool/sailArea/i18n/zh.ts +275 -0
  49. package/src/tool/sailArea/index.ts +12 -0
  50. package/src/tool/speedConverter/component.astro +242 -1
  51. package/src/tool/speedConverter/i18n/de.ts +271 -0
  52. package/src/tool/speedConverter/i18n/id.ts +271 -0
  53. package/src/tool/speedConverter/i18n/it.ts +271 -0
  54. package/src/tool/speedConverter/i18n/ja.ts +271 -0
  55. package/src/tool/speedConverter/i18n/ko.ts +271 -0
  56. package/src/tool/speedConverter/i18n/nl.ts +271 -0
  57. package/src/tool/speedConverter/i18n/pl.ts +271 -0
  58. package/src/tool/speedConverter/i18n/pt.ts +271 -0
  59. package/src/tool/speedConverter/i18n/ru.ts +194 -0
  60. package/src/tool/speedConverter/i18n/sv.ts +271 -0
  61. package/src/tool/speedConverter/i18n/tr.ts +225 -0
  62. package/src/tool/speedConverter/i18n/zh.ts +271 -0
  63. package/src/tool/speedConverter/index.ts +12 -0
  64. package/src/tool/tideCalculator/component.astro +313 -1
  65. package/src/tool/tideCalculator/i18n/de.ts +203 -0
  66. package/src/tool/tideCalculator/i18n/id.ts +203 -0
  67. package/src/tool/tideCalculator/i18n/it.ts +203 -0
  68. package/src/tool/tideCalculator/i18n/ja.ts +203 -0
  69. package/src/tool/tideCalculator/i18n/ko.ts +203 -0
  70. package/src/tool/tideCalculator/i18n/nl.ts +203 -0
  71. package/src/tool/tideCalculator/i18n/pl.ts +203 -0
  72. package/src/tool/tideCalculator/i18n/pt.ts +203 -0
  73. package/src/tool/tideCalculator/i18n/ru.ts +203 -0
  74. package/src/tool/tideCalculator/i18n/sv.ts +203 -0
  75. package/src/tool/tideCalculator/i18n/tr.ts +203 -0
  76. package/src/tool/tideCalculator/i18n/zh.ts +203 -0
  77. package/src/tool/tideCalculator/index.ts +12 -0
  78. package/src/tool/underKeel/component.astro +321 -1
  79. package/src/tool/underKeel/i18n/de.ts +189 -0
  80. package/src/tool/underKeel/i18n/en.ts +2 -2
  81. package/src/tool/underKeel/i18n/fr.ts +2 -2
  82. package/src/tool/underKeel/i18n/id.ts +189 -0
  83. package/src/tool/underKeel/i18n/it.ts +176 -0
  84. package/src/tool/underKeel/i18n/ja.ts +185 -0
  85. package/src/tool/underKeel/i18n/ko.ts +185 -0
  86. package/src/tool/underKeel/i18n/nl.ts +176 -0
  87. package/src/tool/underKeel/i18n/pl.ts +176 -0
  88. package/src/tool/underKeel/i18n/pt.ts +176 -0
  89. package/src/tool/underKeel/i18n/ru.ts +176 -0
  90. package/src/tool/underKeel/i18n/sv.ts +176 -0
  91. package/src/tool/underKeel/i18n/tr.ts +185 -0
  92. package/src/tool/underKeel/i18n/zh.ts +185 -0
  93. package/src/tool/underKeel/index.ts +12 -0
  94. package/src/tool/endurance/style.css +0 -337
  95. package/src/tool/nauticalConverter/style.css +0 -205
  96. package/src/tool/sailArea/style.css +0 -351
  97. package/src/tool/speedConverter/style.css +0 -239
  98. package/src/tool/tideCalculator/style.css +0 -310
  99. package/src/tool/underKeel/style.css +0 -318
@@ -0,0 +1,203 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { TideCalculatorUI, TideCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = 'calculadora-mare-pt';
5
+ const title = 'Calculadora de Altura de Marés';
6
+ const description =
7
+ 'Estime a profundidade da água em qualquer ponto do ciclo de maré usando a Regra dos Dozeavos náutica. Ideal para planeamento costeiro e estudo para cartas de marinheiro.';
8
+
9
+ const ui: TideCalculatorUI = {
10
+ parametersLabel: 'Parâmetros',
11
+ highTideLabel: 'Preia-mar',
12
+ lowTideLabel: 'Baixa-mar',
13
+ targetTimeLabel: 'Hora da consulta',
14
+ estimatedHeightLabel: 'Altura Estimada',
15
+ metersLabel: 'metros',
16
+ amplitudeLabel: 'Amplitude',
17
+ durationLabel: 'Duração',
18
+ tableBreakdownLabel: 'Detalhamento em Dozeavos',
19
+ tableHourLabel: 'Hora',
20
+ tableStateLabel: 'Estado',
21
+ tableStartLabel: 'Início',
22
+ tableEndLabel: 'Fim',
23
+ statusUpLabel: 'A encher',
24
+ statusDownLabel: 'A vazar',
25
+ statusOutOfRange: 'Fora do intervalo',
26
+ faqTitle: 'Perguntas Frequentes',
27
+ bibliographyTitle: 'Bibliografia',
28
+ };
29
+
30
+ const faq: TideCalculatorLocaleContent['faq'] = [
31
+ {
32
+ question: 'O que é a Regra dos Dozeavos e para que serve?',
33
+ answer:
34
+ 'A Regra dos Dozeavos é um método matemático simplificado usado na navegação para estimar a altura da maré em qualquer momento entre a preia-mar e a baixa-mar. Baseia-se na observação de que o fluxo da maré segue uma curva aproximadamente sinusoidal, dividindo a amplitude total em 12 partes ao longo de 6 horas (1/12, 2/12, 3/12, 3/12, 2/12, 1/12).',
35
+ },
36
+ {
37
+ question: 'Este método é fiável para a navegação real?',
38
+ answer:
39
+ 'É um método de estimativa teórica muito útil para planeamento rápido e fins educativos. No entanto, não contabiliza fatores meteorológicos como a pressão atmosférica ou o vento, que podem alterar o nível do mar em vários decímetros. Para a navegação real, consulte sempre as tabelas de marés oficiais.',
40
+ },
41
+ {
42
+ question: 'De que dados preciso para calcular a altura da maré?',
43
+ answer:
44
+ 'Precisa da hora e da altura (em metros) da preia-mar e da baixa-mar mais próximas do momento que deseja consultar. Estes dados encontram-se nos almanaques de marés ou em aplicações de meteorologia marinha.',
45
+ },
46
+ {
47
+ question: 'Porque é que a maré nem sempre sobe à mesma velocidade?',
48
+ answer:
49
+ 'Devido à inércia das grandes massas de água e à configuração das bacias oceânicas. A maré começa a subir lentamente após a baixa-mar, atinge a velocidade máxima nas horas centrais (as horas 3/12 e 4/12) e abranda novamente ao aproximar-se da preia-mar.',
50
+ },
51
+ {
52
+ question: 'Como é que a pressão atmosférica afeta a maré?',
53
+ answer:
54
+ 'A alta pressão (anticiclone) empurra a água para baixo, reduzindo a altura real. A baixa pressão (depressão) permite que a água suba mais. Como regra geral, uma variação de 1 hPa em relação à média corresponde a aproximadamente 1 cm de alteração no nível do mar.',
55
+ },
56
+ {
57
+ question: 'O que é a amplitude de maré?',
58
+ answer:
59
+ 'É a diferença vertical de altura entre uma preia-mar e a baixa-mar imediatamente anterior ou seguinte. Esta medição varia de acordo com a fase lunar (marés de águas vivas e águas mortas) e a localização geográfica.',
60
+ },
61
+ ];
62
+
63
+ const howTo: TideCalculatorLocaleContent['howTo'] = [
64
+ {
65
+ name: 'Identificar preia-mar e baixa-mar',
66
+ text: 'Consulte o seu almanaque de marés para obter as horas e alturas para o ciclo de maré em que está interessado.',
67
+ },
68
+ {
69
+ name: 'Introduzir os dados na calculadora',
70
+ text: 'Insira a hora e altura da preia-mar e baixa-mar. A ferramenta determinará a duração e a amplitude automaticamente.',
71
+ },
72
+ {
73
+ name: 'Definir a hora da consulta',
74
+ text: 'Ajuste a hora para a qual deseja conhecer o nível da água. Verá o ponto exato realçado no gráfico.',
75
+ },
76
+ {
77
+ name: 'Analisar a tabela de dozeavos',
78
+ text: 'Reveja o detalhamento hora a hora para compreender como o nível da água irá flutuar ao longo de todo o período.',
79
+ },
80
+ ];
81
+
82
+ const bibliography: TideCalculatorLocaleContent['bibliography'] = [
83
+ {
84
+ name: 'Puertos del Estado - Tide Prediction',
85
+ url: 'https://portus.puertos.es/#/',
86
+ },
87
+ {
88
+ name: 'Instituto Hidrografico de la Marina',
89
+ url: 'https://armada.defensa.gob.es/ihm/',
90
+ },
91
+ ];
92
+
93
+ const seo: TideCalculatorLocaleContent['seo'] = [
94
+ {
95
+ type: 'title',
96
+ text: 'Dominar a Maré: A Regra dos Dozeavos na Navegação',
97
+ level: 2,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'A navegação costeira e a entrada em portos com profundidade restrita exigem um conhecimento preciso da profundidade da água em todos os momentos. Embora hoje existam aplicações digitais e GPS que fornecem dados em tempo real, a <strong>Regra dos Dozeavos</strong> continua a ser uma ferramenta fundamental na formação de qualquer mestre de embarcação de recreio ou capitão de iate. Esta regra é um método de estimativa matemática que permite calcular, aproximadamente e sem calculadoras complexas, a altura da maré em qualquer ponto de um ciclo de maré.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'O que é exatamente a Regra dos Dozeavos?',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'A Regra dos Dozeavos baseia-se na observação de que o fluxo da maré não é constante. A água não sobe nem desce à mesma velocidade durante as aproximadamente seis horas entre a preia-mar e a baixa-mar. Em vez disso, o movimento segue uma curva sinusoidal. Durante a primeira hora a maré move-se lentamente; acelera nas horas centrais e abranda novamente ao aproximar-se do próximo extremo.',
111
+ },
112
+ {
113
+ type: 'table',
114
+ headers: ['Hora do Ciclo', 'Proporção', 'Estado do Fluxo'],
115
+ rows: [
116
+ ['<strong>1ª Hora</strong>', '1/12 da amplitude', 'Início lento (Estofa de baixa)'],
117
+ ['<strong>2ª Hora</strong>', '2/12 da amplitude', 'Fluxo em aceleração'],
118
+ ['<strong>3ª Hora</strong>', '3/12 da amplitude', 'Fluxo máximo (Corrente forte)'],
119
+ ['<strong>4ª Hora</strong>', '3/12 da amplitude', 'Fluxo sustentado'],
120
+ ['<strong>5ª Hora</strong>', '2/12 da amplitude', 'Desaceleração notável'],
121
+ ['<strong>6ª Hora</strong>', '1/12 da amplitude', 'Abrandamento final (Em direção à estofa de preia-mar)'],
122
+ ],
123
+ },
124
+ {
125
+ type: 'title',
126
+ text: 'Limitações técnicas: Fatores que afetam a maré real',
127
+ level: 3,
128
+ },
129
+ {
130
+ type: 'glossary',
131
+ items: [
132
+ { term: 'Pressão atmosférica', definition: 'Uma depressão eleva o nível do mar; um anticiclone baixa-o. Como regra geral, ~1 cm de variação por cada hPa de diferença em relação à média.' },
133
+ { term: 'Vento costeiro', definition: 'Ventos sustentados de terra para mar ou mar para terra podem acumular água acima dos níveis previstos nas tabelas de marés.' },
134
+ { term: 'Topografia local', definition: 'A forma da costa, a profundidade do fundo do mar e a presença de estuários podem atrasar ou acelerar significativamente o fluxo da maré.' },
135
+ ],
136
+ },
137
+ {
138
+ type: 'tip',
139
+ title: 'Nota de Segurança',
140
+ html: 'Esta ferramenta utiliza um método de estimativa matemática. Não contabiliza fatores meteorológicos ou topografia local. Para a navegação real, consulte sempre as tabelas de marés oficiais.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Conceitos-chave para novos marinheiros',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'glossary',
149
+ items: [
150
+ {
151
+ term: 'Amplitude de maré',
152
+ definition: 'Diferença vertical entre a preia-mar e a baixa-mar. Na costa atlântica pode ser de vários metros; no Mediterrâneo é quase desprezível.',
153
+ },
154
+ {
155
+ term: 'Duração da maré',
156
+ definition: 'Intervalo de tempo entre a preia-mar e a baixa-mar seguinte. Tipicamente cerca de 6 horas e 12 minutos (ciclo semidiurno).',
157
+ },
158
+ {
159
+ term: 'Zero Hidrográfico (Chart datum)',
160
+ definition: 'Nível de referência a partir do qual todas as profundidades nas cartas náuticas são medidas. As profundidades reais quase nunca são inferiores às indicadas.',
161
+ },
162
+ ],
163
+ },
164
+ ];
165
+
166
+ const schemas: TideCalculatorLocaleContent['schemas'] = [
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'SoftwareApplication',
170
+ name: title,
171
+ description,
172
+ applicationCategory: 'UtilityApplication',
173
+ operatingSystem: 'Web',
174
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
+ } as WithContext<SoftwareApplication>,
176
+ {
177
+ '@context': 'https://schema.org',
178
+ '@type': 'FAQPage',
179
+ mainEntity: faq.map((item) => ({
180
+ '@type': 'Question',
181
+ name: item.question,
182
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
183
+ })),
184
+ } as WithContext<FAQPage>,
185
+ {
186
+ '@context': 'https://schema.org',
187
+ '@type': 'HowTo',
188
+ name: `Como usar: ${title}`,
189
+ step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
190
+ } as WithContext<HowTo>,
191
+ ];
192
+
193
+ export const content: TideCalculatorLocaleContent = {
194
+ slug,
195
+ title,
196
+ description,
197
+ ui,
198
+ seo,
199
+ faq,
200
+ bibliography,
201
+ howTo,
202
+ schemas,
203
+ };
@@ -0,0 +1,203 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { TideCalculatorUI, TideCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = 'tide-calculator-ru';
5
+ const title = 'Калькулятор высоты прилива';
6
+ const description =
7
+ 'Оцените глубину воды в любой момент приливного цикла с помощью морского «правила двенадцатых». Идеально подходит для прибрежного планирования и подготовки к сдаче на судоводительские права.';
8
+
9
+ const ui: TideCalculatorUI = {
10
+ parametersLabel: 'Параметры',
11
+ highTideLabel: 'Полная вода',
12
+ lowTideLabel: 'Малая вода',
13
+ targetTimeLabel: 'Время запроса',
14
+ estimatedHeightLabel: 'Расчетная высота',
15
+ metersLabel: 'метров',
16
+ amplitudeLabel: 'Амплитуда',
17
+ durationLabel: 'Длительность',
18
+ tableBreakdownLabel: 'Распределение по двенадцатым',
19
+ tableHourLabel: 'Время',
20
+ tableStateLabel: 'Состояние',
21
+ tableStartLabel: 'Начало',
22
+ tableEndLabel: 'Конец',
23
+ statusUpLabel: 'Прилив',
24
+ statusDownLabel: 'Отлив',
25
+ statusOutOfRange: 'Вне диапазона',
26
+ faqTitle: 'Часто задаваемые вопросы',
27
+ bibliographyTitle: 'Библиография',
28
+ };
29
+
30
+ const faq: TideCalculatorLocaleContent['faq'] = [
31
+ {
32
+ question: 'Что такое «правило двенадцатых» и для чего оно нужно?',
33
+ answer:
34
+ 'Правило двенадцатых — это упрощенный математический метод, используемый в навигации для оценки высоты прилива в любой момент времени между полной и малой водой. Он основан на наблюдении, что приливный цикл примерно следует синусоидальной кривой. Весь диапазон прилива делится на 12 частей в течение 6 часов (1/12, 2/12, 3/12, 3/12, 2/12, 1/12).',
35
+ },
36
+ {
37
+ question: 'Насколько этот метод надежен для реальной навигации?',
38
+ answer:
39
+ 'Это очень полезный метод теоретической оценки для быстрого планирования и обучения. Однако он не учитывает метеорологические факторы, такие как атмосферное давление или ветер, которые могут изменить уровень моря на несколько дециметров. Для реальной навигации всегда используйте официальные таблицы приливов.',
40
+ },
41
+ {
42
+ question: 'Какие данные нужны для расчета высоты прилива?',
43
+ answer:
44
+ 'Вам нужны время и высота (в метрах) полной и малой воды, ближайшие к интересующему вас моменту. Эти данные можно найти в приливных ежегодниках или морских погодных приложениях.',
45
+ },
46
+ {
47
+ question: 'Почему прилив не всегда поднимается с одинаковой скоростью?',
48
+ answer:
49
+ 'Это связано с инерцией больших масс воды и конфигурацией океанских бассейнов. Прилив начинает подниматься медленно после малой воды, достигает максимальной скорости в средние часы (3/12 и 4/12 цикла) и снова замедляется при приближении к полной воде.',
50
+ },
51
+ {
52
+ question: 'Как атмосферное давление влияет на прилив?',
53
+ answer:
54
+ 'Высокое давление (антициклон) «придавливает» воду, уменьшая ее фактическую высоту. Низкое давление (циклон) позволяет воде подняться выше. В среднем изменение давления на 1 гПа соответствует изменению уровня моря примерно на 1 см.',
55
+ },
56
+ {
57
+ question: 'Что такое амплитуда (величина) прилива?',
58
+ answer:
59
+ 'Это вертикальная разница в высоте между полной водой и непосредственно предшествующей или последующей малой водой. Эта величина меняется в зависимости от фаз Луны (сизигийные и квадратурные приливы) и географического положения.',
60
+ },
61
+ ];
62
+
63
+ const howTo: TideCalculatorLocaleContent['howTo'] = [
64
+ {
65
+ name: 'Определите время полной и малой воды',
66
+ text: 'Найдите в приливном ежегоднике время и высоту для интересующего вас приливного цикла.',
67
+ },
68
+ {
69
+ name: 'Введите данные в калькулятор',
70
+ text: 'Введите время и высоту полной и малой воды. Инструмент автоматически рассчитает длительность и амплитуду.',
71
+ },
72
+ {
73
+ name: 'Установите время запроса',
74
+ text: 'Настройте время, для которого вы хотите узнать уровень воды. Вы увидите точную точку на графике.',
75
+ },
76
+ {
77
+ name: 'Изучите таблицу двенадцатых',
78
+ text: 'Просмотрите почасовое распределение, чтобы понять, как будет меняться уровень воды в течение всего периода.',
79
+ },
80
+ ];
81
+
82
+ const bibliography: TideCalculatorLocaleContent['bibliography'] = [
83
+ {
84
+ name: 'Puertos del Estado - Tide Prediction',
85
+ url: 'https://portus.puertos.es/#/',
86
+ },
87
+ {
88
+ name: 'Instituto Hidrografico de la Marina',
89
+ url: 'https://armada.defensa.gob.es/ihm/',
90
+ },
91
+ ];
92
+
93
+ const seo: TideCalculatorLocaleContent['seo'] = [
94
+ {
95
+ type: 'title',
96
+ text: 'Освоение приливов: правило двенадцатых в навигации',
97
+ level: 2,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'Прибрежная навигация и заход в порты с ограниченной глубиной требуют точного знания уровня воды в любой момент. Хотя сегодня доступны цифровые приложения и GPS с данными в реальном времени, <strong>правило двенадцатых</strong> остается фундаментальным инструментом в обучении любого судоводителя. Этот метод математической оценки позволяет примерно рассчитать высоту прилива без сложных вычислений.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'Что именно представляет собой правило двенадцатых?',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'Правило двенадцатых основано на том, что приливный поток не постоянен. Вода не поднимается и не опускается с одинаковой скоростью в течение примерно шести часов между малой и полной водой. Движение следует синусоидальной кривой: в первый час прилив движется медленно, ускоряется в середине цикла и снова замедляется в конце.',
111
+ },
112
+ {
113
+ type: 'table',
114
+ headers: ['Час цикла', 'Пропорция', 'Состояние потока'],
115
+ rows: [
116
+ ['<strong>1-й час</strong>', '1/12 амплитуды', 'Медленное начало (малая вода)'],
117
+ ['<strong>2-й час</strong>', '2/12 амплитуды', 'Ускорение потока'],
118
+ ['<strong>3-й час</strong>', '3/12 амплитуды', 'Максимальный поток (сильное течение)'],
119
+ ['<strong>4-й час</strong>', '3/12 амплитуды', 'Устойчивый поток'],
120
+ ['<strong>5-й час</strong>', '2/12 амплитуды', 'Заметное замедление'],
121
+ ['<strong>6-й час</strong>', '1/12 амплитуды', 'Конечное замедление (к полной воде)'],
122
+ ],
123
+ },
124
+ {
125
+ type: 'title',
126
+ text: 'Технические ограничения: факторы, влияющие на реальный прилив',
127
+ level: 3,
128
+ },
129
+ {
130
+ type: 'glossary',
131
+ items: [
132
+ { term: 'Атмосферное давление', definition: 'Циклон поднимает уровень моря, антициклон — понижает. В среднем ~1 см изменения на 1 гПа разницы с нормой.' },
133
+ { term: 'Ветер', definition: 'Нагонный ветер может поднять уровень воды выше предсказанного в таблицах.' },
134
+ { term: 'Местная топография', definition: 'Форма берега, глубина дна и наличие эстуариев могут значительно задерживать или ускорять приливный поток.' },
135
+ ],
136
+ },
137
+ {
138
+ type: 'tip',
139
+ title: 'Примечание по безопасности',
140
+ html: 'Этот инструмент использует метод математической оценки. Он не учитывает метеорологические факторы и местную топографию. Для реальной навигации всегда используйте официальные таблицы приливов.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Основные понятия для начинающих моряков',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'glossary',
149
+ items: [
150
+ {
151
+ term: 'Величина (амплитуда) прилива',
152
+ definition: 'Вертикальная разница между полной и малой водой. В океане может достигать многих метров, в Средиземном море — незначительна.',
153
+ },
154
+ {
155
+ term: 'Длительность прилива',
156
+ definition: 'Временной интервал между полной и последующей малой водой. Обычно около 6 часов 12 минут.',
157
+ },
158
+ {
159
+ term: 'Ноль глубины карты',
160
+ definition: 'Уровень отсчета, от которого измеряются все глубины на морских картах. Фактическая глубина почти никогда не бывает меньше указанной.',
161
+ },
162
+ ],
163
+ },
164
+ ];
165
+
166
+ const schemas: TideCalculatorLocaleContent['schemas'] = [
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'SoftwareApplication',
170
+ name: title,
171
+ description,
172
+ applicationCategory: 'UtilityApplication',
173
+ operatingSystem: 'Web',
174
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
+ } as WithContext<SoftwareApplication>,
176
+ {
177
+ '@context': 'https://schema.org',
178
+ '@type': 'FAQPage',
179
+ mainEntity: faq.map((item) => ({
180
+ '@type': 'Question',
181
+ name: item.question,
182
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
183
+ })),
184
+ } as WithContext<FAQPage>,
185
+ {
186
+ '@context': 'https://schema.org',
187
+ '@type': 'HowTo',
188
+ name: `Как пользоваться: ${title}`,
189
+ step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
190
+ } as WithContext<HowTo>,
191
+ ];
192
+
193
+ export const content: TideCalculatorLocaleContent = {
194
+ slug,
195
+ title,
196
+ description,
197
+ ui,
198
+ seo,
199
+ faq,
200
+ bibliography,
201
+ howTo,
202
+ schemas,
203
+ };
@@ -0,0 +1,203 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { TideCalculatorUI, TideCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = 'tidvattens-kalkylator-sv';
5
+ const title = 'Kalkylator för tidvattenhöjd';
6
+ const description =
7
+ 'Uppskatta vattennivån vid valfri tidpunkt i tidvattencykeln med den nautiska tolftedelsregeln. Idealisk för kustnära planering och studier för förarintyg.';
8
+
9
+ const ui: TideCalculatorUI = {
10
+ parametersLabel: 'Parametrar',
11
+ highTideLabel: 'Högvatten',
12
+ lowTideLabel: 'Lågvatten',
13
+ targetTimeLabel: 'Frågetid',
14
+ estimatedHeightLabel: 'Uppskattad höjd',
15
+ metersLabel: 'meter',
16
+ amplitudeLabel: 'Amplitud',
17
+ durationLabel: 'Varaktighet',
18
+ tableBreakdownLabel: 'Uppdelning i tolftedelar',
19
+ tableHourLabel: 'Tid',
20
+ tableStateLabel: 'Tillstånd',
21
+ tableStartLabel: 'Start',
22
+ tableEndLabel: 'Slut',
23
+ statusUpLabel: 'Stigande',
24
+ statusDownLabel: 'Sjunkande',
25
+ statusOutOfRange: 'Utanför intervallet',
26
+ faqTitle: 'Vanliga frågor',
27
+ bibliographyTitle: 'Bibliografi',
28
+ };
29
+
30
+ const faq: TideCalculatorLocaleContent['faq'] = [
31
+ {
32
+ question: 'Vad är tolftedelsregeln och vad används den till?',
33
+ answer:
34
+ 'Tolftedelsregeln är en förenklad matematisk metod som används inom navigering för att uppskatta tidvattenhöjden vid vilken tidpunkt som helst mellan hög- och lågvatten. Den baseras på observationen att tidvattenflödet följer en ungefärlig sinuskurva, och delar upp det totala intervallet i 12 delar över 6 timmar (1/12, 2/12, 3/12, 3/12, 2/12, 1/12).',
35
+ },
36
+ {
37
+ question: 'Är denna metod pålitlig för verklig navigering?',
38
+ answer:
39
+ 'Det är en mycket användbar teoretisk uppskattningsmetod för snabb planering och utbildningsändamål. Den tar dock inte hänsyn till meteorologiska faktorer som lufttryck eller vind, vilket kan ändra havsnivån med flera decimeter. För verklig navigering, konsultera alltid officiella tidvattentabeller.',
40
+ },
41
+ {
42
+ question: 'Vilka data behöver jag för att beräkna tidvattenhöjden?',
43
+ answer:
44
+ 'Du behöver tid och höjd (i meter) för högvatten och lågvatten som ligger närmast den tidpunkt du vill fråga efter. Dessa data finns i tidvattenalmanackor eller marina väderappar.',
45
+ },
46
+ {
47
+ question: 'Varför stiger inte tidvattnet alltid med samma hastighet?',
48
+ answer:
49
+ 'På grund av trögheten i stora vattenmassor och konfigurationen av havets bäcken. Tidvattnet börjar stiga långsamt efter lågvatten, når maximal hastighet under mittentimmarna (timmarna 3/12 och 4/12) och saktar ner igen när det närmar sig högvatten.',
50
+ },
51
+ {
52
+ question: 'Hur påverkar lufttrycket tidvattnet?',
53
+ answer:
54
+ 'Högtryck (anticyklon) trycker ner vattnet, vilket minskar den faktiska höjden. Lågtryck (depression) låter vattnet stiga högre. Som en allmän regel motsvarar en variation på 1 hPa från medelvärdet ungefär 1 cm förändring i havsnivån.',
55
+ },
56
+ {
57
+ question: 'Vad är tidvattensintervall (amplitude)?',
58
+ answer:
59
+ 'Det är den vertikala skillnaden i höjd mellan ett högvatten och det omedelbart föregående eller efterföljande lågvattnet. Detta mått varierar beroende på månfas (springflod och nipflod) och geografiskt läge.',
60
+ },
61
+ ];
62
+
63
+ const howTo: TideCalculatorLocaleContent['howTo'] = [
64
+ {
65
+ name: 'Identifiera hög- och lågvatten',
66
+ text: 'Konsultera din tidvattenalmanacka för att få tider och höjder för den tidvattencykel du är intresserad av.',
67
+ },
68
+ {
69
+ name: 'Ange data i kalkylatorn',
70
+ text: 'Skriv in tid och höjd för högvatten och lågvatten. Verktyget beräknar varaktighet och amplitud automatiskt.',
71
+ },
72
+ {
73
+ name: 'Ställ in frågetid',
74
+ text: 'Justera tiden för vilken du vill veta vattennivån. Du kommer att se den exakta punkten markerad i diagrammet.',
75
+ },
76
+ {
77
+ name: 'Analysera tolftedelstabellen',
78
+ text: 'Granska uppdelningen timme för timme för att förstå hur vattennivån kommer att variera under hela perioden.',
79
+ },
80
+ ];
81
+
82
+ const bibliography: TideCalculatorLocaleContent['bibliography'] = [
83
+ {
84
+ name: 'Puertos del Estado - Tide Prediction',
85
+ url: 'https://portus.puertos.es/#/',
86
+ },
87
+ {
88
+ name: 'Instituto Hidrografico de la Marina',
89
+ url: 'https://armada.defensa.gob.es/ihm/',
90
+ },
91
+ ];
92
+
93
+ const seo: TideCalculatorLocaleContent['seo'] = [
94
+ {
95
+ type: 'title',
96
+ text: 'Bemästra tidvattnet: Tolftedelsregeln i navigering',
97
+ level: 2,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'Kustnavigering och anlöp till hamnar med begränsat djup kräver exakt kännedom om vattennivån vid varje tidpunkt. Även om digitala appar och GPS som tillhandahåller realtidsdata finns tillgängliga idag, förblir <strong>tolftedelsregeln</strong> ett grundläggande verktyg i utbildningen av alla skeppare. Denna regel är en matematisk uppskattningsmetod som låter dig beräkna, ungefärligt och utan komplexa räknare, tidvattenhöjden vid valfri tidpunkt i en tidvattencykel.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'Vad exakt är tolftedelsregeln?',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'Tolftedelsregeln baseras på observationen att tidvattenflödet inte är konstant. Vattnet stiger eller sjunker inte med samma hastighet under de ungefär sex timmarna mellan högvatten och lågvatten. Istället följer rörelsen en sinuskurva. Under den första timmen rör sig tidvattnet långsamt; det accelererar under mittentimmarna och saktar ner igen när det närmar sig nästa extrempunkt.',
111
+ },
112
+ {
113
+ type: 'table',
114
+ headers: ['Timme i cykeln', 'Proportion', 'Flödestillstånd'],
115
+ rows: [
116
+ ['<strong>1:a timmen</strong>', '1/12 av intervallet', 'Långsam start (Dövatten)'],
117
+ ['<strong>2:a timmen</strong>', '2/12 av intervallet', 'Accelererande flöde'],
118
+ ['<strong>3:e timmen</strong>', '3/12 av intervallet', 'Maximalt flöde (Stark ström)'],
119
+ ['<strong>4:e timmen</strong>', '3/12 av intervallet', 'Ihållande flöde'],
120
+ ['<strong>5:e timmen</strong>', '2/12 van intervallet', 'Märkbar inbromsning'],
121
+ ['<strong>6:e timmen</strong>', '1/12 av intervallet', 'Slutlig inbromsning (Mot dövatten)'],
122
+ ],
123
+ },
124
+ {
125
+ type: 'title',
126
+ text: 'Tekniska begränsningar: Faktorer som påverkar det verkliga tidvattnet',
127
+ level: 3,
128
+ },
129
+ {
130
+ type: 'glossary',
131
+ items: [
132
+ { term: 'Lufttryck', definition: 'Lågtryck höjer havsnivån; ett högtryck sänker den. Som en allmän regel motsvarar ~1 cm variation per hPa skillnad från medelvärdet.' },
133
+ { term: 'Kustvind', definition: 'Ihållande pålandsvindar kan dämma upp vatten över de nivåer som förutsägs i tidvattentabellerna.' },
134
+ { term: 'Lokal topografi', definition: 'Kustens form, havsbottnens djup och förekomsten av flodmynningar kan avsevärt fördröja eller påskynda tidvattenflödet.' },
135
+ ],
136
+ },
137
+ {
138
+ type: 'tip',
139
+ title: 'Säkerhetsmeddelande',
140
+ html: 'Detta verktyg använder en matematisk uppskattningsmetod. Det tar inte hänsyn till meteorologiska faktorer eller lokal topografi. För verklig navigering, konsultera alltid officiella tidvattentabeller.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Nyckelbegrepp för nya sjömän',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'glossary',
149
+ items: [
150
+ {
151
+ term: 'Tidvattensintervall',
152
+ definition: 'Vertikal skillnad mellan högvatten och lågvatten. I Biscayabukten kan det vara flera meter; i Medelhavet är det nästan obetydligt.',
153
+ },
154
+ {
155
+ term: 'Tidvattnets varaktighet',
156
+ definition: 'Tidsintervall mellan högvatten och nästa lågvatten. Vanligtvis runt 6 timmar och 12 minuter (semi-diurnal cykel).',
157
+ },
158
+ {
159
+ term: 'Sjökortsplan (Chart datum)',
160
+ definition: 'Referensnivå från vilken alla djup på sjökort mäts. Faktiska djup är nästan aldrig mindre än de angivna.',
161
+ },
162
+ ],
163
+ },
164
+ ];
165
+
166
+ const schemas: TideCalculatorLocaleContent['schemas'] = [
167
+ {
168
+ '@context': 'https://schema.org',
169
+ '@type': 'SoftwareApplication',
170
+ name: title,
171
+ description,
172
+ applicationCategory: 'UtilityApplication',
173
+ operatingSystem: 'Web',
174
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
175
+ } as WithContext<SoftwareApplication>,
176
+ {
177
+ '@context': 'https://schema.org',
178
+ '@type': 'FAQPage',
179
+ mainEntity: faq.map((item) => ({
180
+ '@type': 'Question',
181
+ name: item.question,
182
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
183
+ })),
184
+ } as WithContext<FAQPage>,
185
+ {
186
+ '@context': 'https://schema.org',
187
+ '@type': 'HowTo',
188
+ name: `Hur man använder: ${title}`,
189
+ step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
190
+ } as WithContext<HowTo>,
191
+ ];
192
+
193
+ export const content: TideCalculatorLocaleContent = {
194
+ slug,
195
+ title,
196
+ description,
197
+ ui,
198
+ seo,
199
+ faq,
200
+ bibliography,
201
+ howTo,
202
+ schemas,
203
+ };