@jjlmoya/utils-nautical 1.6.0 → 1.8.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 (89) 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_language_code_format.test.ts +23 -0
  7. package/src/tests/slug_uniqueness.test.ts +81 -0
  8. package/src/tests/title_quality.test.ts +55 -0
  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/i18n/de.ts +239 -0
  23. package/src/tool/nauticalConverter/i18n/id.ts +239 -0
  24. package/src/tool/nauticalConverter/i18n/it.ts +239 -0
  25. package/src/tool/nauticalConverter/i18n/ja.ts +239 -0
  26. package/src/tool/nauticalConverter/i18n/ko.ts +239 -0
  27. package/src/tool/nauticalConverter/i18n/nl.ts +239 -0
  28. package/src/tool/nauticalConverter/i18n/pl.ts +239 -0
  29. package/src/tool/nauticalConverter/i18n/pt.ts +239 -0
  30. package/src/tool/nauticalConverter/i18n/ru.ts +239 -0
  31. package/src/tool/nauticalConverter/i18n/sv.ts +239 -0
  32. package/src/tool/nauticalConverter/i18n/tr.ts +239 -0
  33. package/src/tool/nauticalConverter/i18n/zh.ts +239 -0
  34. package/src/tool/nauticalConverter/index.ts +12 -0
  35. package/src/tool/sailArea/component.astro +1 -1
  36. package/src/tool/sailArea/i18n/de.ts +275 -0
  37. package/src/tool/sailArea/i18n/id.ts +275 -0
  38. package/src/tool/sailArea/i18n/it.ts +275 -0
  39. package/src/tool/sailArea/i18n/ja.ts +275 -0
  40. package/src/tool/sailArea/i18n/ko.ts +275 -0
  41. package/src/tool/sailArea/i18n/nl.ts +275 -0
  42. package/src/tool/sailArea/i18n/pl.ts +275 -0
  43. package/src/tool/sailArea/i18n/pt.ts +275 -0
  44. package/src/tool/sailArea/i18n/ru.ts +275 -0
  45. package/src/tool/sailArea/i18n/sv.ts +275 -0
  46. package/src/tool/sailArea/i18n/tr.ts +275 -0
  47. package/src/tool/sailArea/i18n/zh.ts +275 -0
  48. package/src/tool/sailArea/index.ts +12 -0
  49. package/src/tool/speedConverter/i18n/de.ts +271 -0
  50. package/src/tool/speedConverter/i18n/id.ts +271 -0
  51. package/src/tool/speedConverter/i18n/it.ts +271 -0
  52. package/src/tool/speedConverter/i18n/ja.ts +271 -0
  53. package/src/tool/speedConverter/i18n/ko.ts +271 -0
  54. package/src/tool/speedConverter/i18n/nl.ts +271 -0
  55. package/src/tool/speedConverter/i18n/pl.ts +271 -0
  56. package/src/tool/speedConverter/i18n/pt.ts +271 -0
  57. package/src/tool/speedConverter/i18n/ru.ts +194 -0
  58. package/src/tool/speedConverter/i18n/sv.ts +271 -0
  59. package/src/tool/speedConverter/i18n/tr.ts +225 -0
  60. package/src/tool/speedConverter/i18n/zh.ts +271 -0
  61. package/src/tool/speedConverter/index.ts +12 -0
  62. package/src/tool/tideCalculator/i18n/de.ts +203 -0
  63. package/src/tool/tideCalculator/i18n/id.ts +203 -0
  64. package/src/tool/tideCalculator/i18n/it.ts +203 -0
  65. package/src/tool/tideCalculator/i18n/ja.ts +203 -0
  66. package/src/tool/tideCalculator/i18n/ko.ts +203 -0
  67. package/src/tool/tideCalculator/i18n/nl.ts +203 -0
  68. package/src/tool/tideCalculator/i18n/pl.ts +203 -0
  69. package/src/tool/tideCalculator/i18n/pt.ts +203 -0
  70. package/src/tool/tideCalculator/i18n/ru.ts +203 -0
  71. package/src/tool/tideCalculator/i18n/sv.ts +203 -0
  72. package/src/tool/tideCalculator/i18n/tr.ts +203 -0
  73. package/src/tool/tideCalculator/i18n/zh.ts +203 -0
  74. package/src/tool/tideCalculator/index.ts +12 -0
  75. package/src/tool/underKeel/i18n/de.ts +189 -0
  76. package/src/tool/underKeel/i18n/en.ts +2 -2
  77. package/src/tool/underKeel/i18n/fr.ts +2 -2
  78. package/src/tool/underKeel/i18n/id.ts +189 -0
  79. package/src/tool/underKeel/i18n/it.ts +176 -0
  80. package/src/tool/underKeel/i18n/ja.ts +185 -0
  81. package/src/tool/underKeel/i18n/ko.ts +185 -0
  82. package/src/tool/underKeel/i18n/nl.ts +176 -0
  83. package/src/tool/underKeel/i18n/pl.ts +176 -0
  84. package/src/tool/underKeel/i18n/pt.ts +176 -0
  85. package/src/tool/underKeel/i18n/ru.ts +176 -0
  86. package/src/tool/underKeel/i18n/sv.ts +176 -0
  87. package/src/tool/underKeel/i18n/tr.ts +185 -0
  88. package/src/tool/underKeel/i18n/zh.ts +185 -0
  89. package/src/tool/underKeel/index.ts +12 -0
@@ -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';
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
+ };
@@ -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 = 'gelgit-hesaplayici';
5
+ const title = 'Gelgit Yüksekliği Hesaplayıcı';
6
+ const description =
7
+ 'Nautik "On İkide Bir" (Rule of Twelfths) kuralını kullanarak gelgit döngüsünün herhangi bir noktasındaki su derinliğini tahmin edin. Kıyı planlaması ve amatör denizci belgesi çalışmaları için idealdir.';
8
+
9
+ const ui: TideCalculatorUI = {
10
+ parametersLabel: 'Parametreler',
11
+ highTideLabel: 'Tam Deniz (Yüksek Gel)',
12
+ lowTideLabel: 'Alçak Deniz (Düşük Gel)',
13
+ targetTimeLabel: 'Sorgu zamanı',
14
+ estimatedHeightLabel: 'Tahmini Yükseklik',
15
+ metersLabel: 'metre',
16
+ amplitudeLabel: 'Genlik (Amplitüd)',
17
+ durationLabel: 'Süre',
18
+ tableBreakdownLabel: 'On İkide Bir Dağılımı',
19
+ tableHourLabel: 'Zaman',
20
+ tableStateLabel: 'Durum',
21
+ tableStartLabel: 'Başlangıç',
22
+ tableEndLabel: 'Bitiş',
23
+ statusUpLabel: 'Yükseliyor',
24
+ statusDownLabel: 'Alçalıyor',
25
+ statusOutOfRange: 'Aralık dışı',
26
+ faqTitle: 'Sıkça Sorulan Sorular',
27
+ bibliographyTitle: 'Kaynakça',
28
+ };
29
+
30
+ const faq: TideCalculatorLocaleContent['faq'] = [
31
+ {
32
+ question: 'On İkide Bir Kuralı nedir ve ne için kullanılır?',
33
+ answer:
34
+ 'On İkide Bir Kuralı, tam deniz ve alçak deniz arasındaki herhangi bir noktada gelgit yüksekliğini tahmin etmek için navigasyonda kullanılan basitleştirilmiş bir matematiksel yöntemdir. Gelgit akışının yaklaşık bir sinüzoidal eğriyi takip ettiği gözlemi temel alınarak, toplam genlik 6 saatlik bir süre boyunca 12 parçaya bölünür (1/12, 2/12, 3/12, 3/12, 2/12, 1/12).',
35
+ },
36
+ {
37
+ question: 'Bu yöntem gerçek navigasyon için güvenilir midir?',
38
+ answer:
39
+ 'Hızlı planlama ve eğitim amaçları için çok yararlı bir teorik tahmin yöntemidir. Ancak, hava basıncı veya rüzgar gibi deniz seviyesini birkaç desimetre değiştirebilen meteorolojik faktörleri hesaba katmaz. Gerçek navigasyon için daima resmi gelgit tablolarına başvurun.',
40
+ },
41
+ {
42
+ question: 'Gelgit yüksekliğini hesaplamak için hangi verilere ihtiyacım var?',
43
+ answer:
44
+ 'Sorgulamak istediğiniz ana en yakın tam deniz ve alçak denizin zamanına ve yüksekliğine (metre cinsinden) ihtiyacınız vardır. Bu veriler gelgit almanaklarında veya marin hava durumu uygulamalarında bulunur.',
45
+ },
46
+ {
47
+ question: 'Gelgit neden her zaman aynı hızda yükselmez?',
48
+ answer:
49
+ 'Büyük su kütlelerinin eylemsizliği ve okyanus havzalarının konfigürasyonu nedeniyle. Gelgit, alçak denizden sonra yavaşça yükselmeye başlar, orta saatlerde (3/12 ve 4/12 saatleri) maksimum hıza ulaşır ve tam denize yaklaştıkça tekrar yavaşlar.',
50
+ },
51
+ {
52
+ question: 'Atmosfer basıncı gelgiti nasıl etkiler?',
53
+ answer:
54
+ 'Yüksek basınç (antisiklon) suyu aşağı iterek gerçek yüksekliği azaltır. Alçak basınç (depresyon) suyun daha fazla yükselmesine izin verir. Genel bir kural olarak, ortalamadan 1 hPa\'lık bir sapma, deniz seviyesinde yaklaşık 1 cm\'lik bir değişime karşılık gelir.',
55
+ },
56
+ {
57
+ question: 'Gelgit genliği (tidal range) nedir?',
58
+ answer:
59
+ 'Bir tam deniz ile hemen öncesindeki veya sonrasındaki alçak deniz arasındaki dikey yükseklik farkıdır. Bu ölçüm ayın evrelerine (syzygy - ilk dördün/son dördün) ve coğrafi konuma göre değişir.',
60
+ },
61
+ ];
62
+
63
+ const howTo: TideCalculatorLocaleContent['howTo'] = [
64
+ {
65
+ name: 'Tam deniz ve alçak denizi belirleyin',
66
+ text: 'İlgilendiğiniz gelgit döngüsü için zaman ve yükseklik bilgilerini almak üzere gelgit almanağınıza başvurun.',
67
+ },
68
+ {
69
+ name: 'Verileri hesaplayıcıya girin',
70
+ text: 'Tam deniz ve alçak deniz zamanını ve yüksekliğini girin. Araç, süreyi ve genliği otomatik olarak belirleyecektir.',
71
+ },
72
+ {
73
+ name: 'Sorgu zamanını ayarlayın',
74
+ text: 'Su seviyesini bilmek istediğiniz zamanı ayarlayın. Grafikte vurgulanan tam noktayı göreceksiniz.',
75
+ },
76
+ {
77
+ name: 'On ikide bir tablosunu analiz edin',
78
+ text: 'Su seviyesinin tüm dönem boyunca nasıl dalgalanacağını anlamak için saat bazlı dağılımı inceleyin.',
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: 'Gelgitte Uzmanlaşmak: Navigasyonda On İkide Bir Kuralı',
97
+ level: 2,
98
+ },
99
+ {
100
+ type: 'paragraph',
101
+ html: 'Kıyı navigasyonu ve sınırlı derinliğe sahip limanlara giriş, her an su derinliği hakkında kesin bilgi gerektirir. Günümüzde gerçek zamanlı veri sağlayan dijital uygulamalar ve GPS mevcut olsa da, <strong>On İkide Bir Kuralı</strong> her türlü tekne kaptanı eğitiminde temel bir araç olmaya devam etmektedir. Bu kural, karmaşık hesap makineleri olmadan bir gelgit döngüsünün herhangi bir noktasında gelgit yüksekliğini yaklaşık olarak hesaplamanıza olanak tanıyan matematiksel bir tahmin yöntemidir.',
102
+ },
103
+ {
104
+ type: 'title',
105
+ text: 'On İkide Bir Kuralı tam olarak nedir?',
106
+ level: 3,
107
+ },
108
+ {
109
+ type: 'paragraph',
110
+ html: 'On İkide Bir Kuralı, gelgit akışının sabit olmadığı gözlemine dayanır. Su, tam deniz ile alçak deniz arasındaki yaklaşık altı saat boyunca aynı hızda yükselmez veya alçalmaz. Bunun yerine, hareket sinüzoidal bir eğriyi takip eder. İlk saat boyunca gelgit yavaş hareket eder; orta saatlerde hızlanır ve bir sonraki uç noktaya yaklaştıkça tekrar yavaşlar.',
111
+ },
112
+ {
113
+ type: 'table',
114
+ headers: ['Döngü Saati', 'Oran', 'Akış Durumu'],
115
+ rows: [
116
+ ['<strong>1. Saat</strong>', 'Genliğin 1/12\'si', 'Yavaş başlangıç (Durgun su başı)'],
117
+ ['<strong>2. Saat</strong>', 'Genliğin 2/12\'si', 'Hızlanan akış'],
118
+ ['<strong>3. Saat</strong>', 'Genliğin 3/12\'si', 'Maksimum akış (Güçlü akıntı)'],
119
+ ['<strong>4. Saat</strong>', 'Genliğin 3/12\'si', 'Sürekli akış'],
120
+ ['<strong>5. Saat</strong>', 'Genliğin 2/12\'si', 'Belirgin yavaşlama'],
121
+ ['<strong>6. Saat</strong>', 'Genliğin 1/12\'si', 'Son yavaşlama (Durgun suya doğru)'],
122
+ ],
123
+ },
124
+ {
125
+ type: 'title',
126
+ text: 'Teknik sınırlamalar: Gerçek gelgiti etkileyen faktörler',
127
+ level: 3,
128
+ },
129
+ {
130
+ type: 'glossary',
131
+ items: [
132
+ { term: 'Atmosfer basıncı', definition: 'Alçak basınç deniz seviyesini yükseltir; yüksek basınç ise düşürür. Genel kural olarak, ortalamadan her 1 hPa\'lık fark için ~1 cm değişim olur.' },
133
+ { term: 'Kıyı rüzgarı', definition: 'Karaya doğru esen sürekli rüzgarlar, suyu gelgit tablolarında tahmin edilen seviyelerin üzerine yığabilir.' },
134
+ { term: 'Yerel topografya', definition: 'Kıyı şekli, deniz tabanı derinliği ve nehir ağızlarının varlığı gelgit akışını önemli ölçüde geciktirebilir veya hızlandırabilir.' },
135
+ ],
136
+ },
137
+ {
138
+ type: 'tip',
139
+ title: 'Güvenlik Notu',
140
+ html: 'Bu araç matematiksel bir tahmin yöntemi kullanmaktadır. Meteorolojik faktörleri veya yerel topografyayı hesaba katmaz. Gerçek navigasyon için daima resmi gelgit tablolarına başvurun.',
141
+ },
142
+ {
143
+ type: 'title',
144
+ text: 'Yeni denizciler için temel kavramlar',
145
+ level: 3,
146
+ },
147
+ {
148
+ type: 'glossary',
149
+ items: [
150
+ {
151
+ term: 'Gelgit genliği',
152
+ definition: 'Tam deniz ile alçak deniz arasındaki dikey fark. Bazı bölgelerde birkaç metre olabilir; Akdeniz\'de ise neredeyse ihmal edilebilir düzeydedir.',
153
+ },
154
+ {
155
+ term: 'Gelgit süresi',
156
+ definition: 'Bir tam deniz ile bir sonraki alçak deniz arasındaki zaman aralığı. Tipik olarak yaklaşık 6 saat 12 dakikadır.',
157
+ },
158
+ {
159
+ term: 'Harita düzlemi (Chart datum)',
160
+ definition: 'Deniz haritalarındaki tüm derinliklerin ölçüldüğü referans seviyesidir. Gerçek derinlikler neredeyse hiçbir zaman belirtilenlerden daha az değildir.',
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: `Nasıl kullanılır: ${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-height-calculator';
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: '什么是十二分之一法则(Rule of Twelfths),它有什么用途?',
33
+ answer:
34
+ '十二分之一法则是航海中常用的一种简化的数学方法,用于估算满潮和干潮之间任意时间点的潮水高度。它基于潮汐流近似遵循正弦曲线的观察,将 6 小时的总潮差分为 12 份(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 和第 4 个 1/12 小时)达到最大速度,并在接近高潮时再次放缓。',
50
+ },
51
+ {
52
+ question: '大气压力如何影响潮汐?',
53
+ answer:
54
+ '高压(反气旋)将水向下推,降低实际高度。低压(气旋)则允许海水上升得更高。作为一般规则,气压相对于平均值变化 1 hPa,对应海平面约 1 cm 的变化。',
55
+ },
56
+ {
57
+ question: '什么是潮差(tidal range)?',
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>', '潮差 of 3/12', '最大流速(强潮汐)'],
119
+ ['<strong>第 4 小时</strong>', '潮差 of 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 hPa,海平面变动约 1 cm。' },
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: '潮差 (Tidal range)',
152
+ definition: '高潮与低潮之间的垂直高度差。在某些海湾可达数米;在地中海则几乎可以忽略不计。',
153
+ },
154
+ {
155
+ term: '潮汐持续时间',
156
+ definition: '高潮与下一次低潮之间的时间间隔。通常约为 6 小时 12 分钟(半日潮周期)。',
157
+ },
158
+ {
159
+ term: '海图基准面 (Chart datum)',
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
+ };
@@ -37,6 +37,18 @@ export const tideCalculator: NauticalToolEntry<TideCalculatorUI> = {
37
37
  es: () => import('./i18n/es').then((m) => m.content),
38
38
  en: () => import('./i18n/en').then((m) => m.content),
39
39
  fr: () => import('./i18n/fr').then((m) => m.content),
40
+ de: () => import('./i18n/de').then((m) => m.content),
41
+ id: () => import('./i18n/id').then((m) => m.content),
42
+ it: () => import('./i18n/it').then((m) => m.content),
43
+ ja: () => import('./i18n/ja').then((m) => m.content),
44
+ ko: () => import('./i18n/ko').then((m) => m.content),
45
+ nl: () => import('./i18n/nl').then((m) => m.content),
46
+ pl: () => import('./i18n/pl').then((m) => m.content),
47
+ pt: () => import('./i18n/pt').then((m) => m.content),
48
+ ru: () => import('./i18n/ru').then((m) => m.content),
49
+ sv: () => import('./i18n/sv').then((m) => m.content),
50
+ tr: () => import('./i18n/tr').then((m) => m.content),
51
+ zh: () => import('./i18n/zh').then((m) => m.content),
40
52
  },
41
53
  };
42
54