@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.
- package/package.json +72 -71
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +42 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/endurance/i18n/de.ts +249 -0
- package/src/tool/endurance/i18n/id.ts +249 -0
- package/src/tool/endurance/i18n/it.ts +249 -0
- package/src/tool/endurance/i18n/ja.ts +249 -0
- package/src/tool/endurance/i18n/ko.ts +249 -0
- package/src/tool/endurance/i18n/nl.ts +249 -0
- package/src/tool/endurance/i18n/pl.ts +249 -0
- package/src/tool/endurance/i18n/pt.ts +249 -0
- package/src/tool/endurance/i18n/ru.ts +249 -0
- package/src/tool/endurance/i18n/sv.ts +249 -0
- package/src/tool/endurance/i18n/tr.ts +249 -0
- package/src/tool/endurance/i18n/zh.ts +249 -0
- package/src/tool/endurance/index.ts +12 -0
- package/src/tool/nauticalConverter/i18n/de.ts +239 -0
- package/src/tool/nauticalConverter/i18n/id.ts +239 -0
- package/src/tool/nauticalConverter/i18n/it.ts +239 -0
- package/src/tool/nauticalConverter/i18n/ja.ts +239 -0
- package/src/tool/nauticalConverter/i18n/ko.ts +239 -0
- package/src/tool/nauticalConverter/i18n/nl.ts +239 -0
- package/src/tool/nauticalConverter/i18n/pl.ts +239 -0
- package/src/tool/nauticalConverter/i18n/pt.ts +239 -0
- package/src/tool/nauticalConverter/i18n/ru.ts +239 -0
- package/src/tool/nauticalConverter/i18n/sv.ts +239 -0
- package/src/tool/nauticalConverter/i18n/tr.ts +239 -0
- package/src/tool/nauticalConverter/i18n/zh.ts +239 -0
- package/src/tool/nauticalConverter/index.ts +12 -0
- package/src/tool/sailArea/component.astro +1 -1
- package/src/tool/sailArea/i18n/de.ts +275 -0
- package/src/tool/sailArea/i18n/id.ts +275 -0
- package/src/tool/sailArea/i18n/it.ts +275 -0
- package/src/tool/sailArea/i18n/ja.ts +275 -0
- package/src/tool/sailArea/i18n/ko.ts +275 -0
- package/src/tool/sailArea/i18n/nl.ts +275 -0
- package/src/tool/sailArea/i18n/pl.ts +275 -0
- package/src/tool/sailArea/i18n/pt.ts +275 -0
- package/src/tool/sailArea/i18n/ru.ts +275 -0
- package/src/tool/sailArea/i18n/sv.ts +275 -0
- package/src/tool/sailArea/i18n/tr.ts +275 -0
- package/src/tool/sailArea/i18n/zh.ts +275 -0
- package/src/tool/sailArea/index.ts +12 -0
- package/src/tool/speedConverter/i18n/de.ts +271 -0
- package/src/tool/speedConverter/i18n/id.ts +271 -0
- package/src/tool/speedConverter/i18n/it.ts +271 -0
- package/src/tool/speedConverter/i18n/ja.ts +271 -0
- package/src/tool/speedConverter/i18n/ko.ts +271 -0
- package/src/tool/speedConverter/i18n/nl.ts +271 -0
- package/src/tool/speedConverter/i18n/pl.ts +271 -0
- package/src/tool/speedConverter/i18n/pt.ts +271 -0
- package/src/tool/speedConverter/i18n/ru.ts +194 -0
- package/src/tool/speedConverter/i18n/sv.ts +271 -0
- package/src/tool/speedConverter/i18n/tr.ts +225 -0
- package/src/tool/speedConverter/i18n/zh.ts +271 -0
- package/src/tool/speedConverter/index.ts +12 -0
- package/src/tool/tideCalculator/i18n/de.ts +203 -0
- package/src/tool/tideCalculator/i18n/id.ts +203 -0
- package/src/tool/tideCalculator/i18n/it.ts +203 -0
- package/src/tool/tideCalculator/i18n/ja.ts +203 -0
- package/src/tool/tideCalculator/i18n/ko.ts +203 -0
- package/src/tool/tideCalculator/i18n/nl.ts +203 -0
- package/src/tool/tideCalculator/i18n/pl.ts +203 -0
- package/src/tool/tideCalculator/i18n/pt.ts +203 -0
- package/src/tool/tideCalculator/i18n/ru.ts +203 -0
- package/src/tool/tideCalculator/i18n/sv.ts +203 -0
- package/src/tool/tideCalculator/i18n/tr.ts +203 -0
- package/src/tool/tideCalculator/i18n/zh.ts +203 -0
- package/src/tool/tideCalculator/index.ts +12 -0
- package/src/tool/underKeel/i18n/de.ts +189 -0
- package/src/tool/underKeel/i18n/en.ts +2 -2
- package/src/tool/underKeel/i18n/fr.ts +2 -2
- package/src/tool/underKeel/i18n/id.ts +189 -0
- package/src/tool/underKeel/i18n/it.ts +176 -0
- package/src/tool/underKeel/i18n/ja.ts +185 -0
- package/src/tool/underKeel/i18n/ko.ts +185 -0
- package/src/tool/underKeel/i18n/nl.ts +176 -0
- package/src/tool/underKeel/i18n/pl.ts +176 -0
- package/src/tool/underKeel/i18n/pt.ts +176 -0
- package/src/tool/underKeel/i18n/ru.ts +176 -0
- package/src/tool/underKeel/i18n/sv.ts +176 -0
- package/src/tool/underKeel/i18n/tr.ts +185 -0
- package/src/tool/underKeel/i18n/zh.ts +185 -0
- package/src/tool/underKeel/index.ts +12 -0
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { EnduranceUI, EnduranceLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'menzil-hesaplayici-tr';
|
|
5
|
+
const title = 'Denizcilik Menzil Hesaplayıcı';
|
|
6
|
+
const description =
|
|
7
|
+
'Yakıt tüketimi, depo kapasitesi ve seyir hızına dayalı olarak maksimum menzilinizi ve güvenli mesafenizi hesaplayın. Motorlu tekneler için yakıt yönetimi.';
|
|
8
|
+
|
|
9
|
+
const ui: EnduranceUI = {
|
|
10
|
+
tankCapacityLabel: 'Depo Kapasitesi',
|
|
11
|
+
mainTankLabel: 'Ana',
|
|
12
|
+
auxTankLabel: 'Yedek',
|
|
13
|
+
currentFuelLabel: 'Mevcut Yakıt',
|
|
14
|
+
seaConditionsLabel: 'Deniz / Rüzgar Koşulları',
|
|
15
|
+
consumptionLabel: 'Teorik Tüketim',
|
|
16
|
+
cruiseSpeedLabel: 'Seyir Hızı',
|
|
17
|
+
reserveLabel: 'Yedek',
|
|
18
|
+
fuelPriceLabel: 'Litre Başına Fiyat',
|
|
19
|
+
maxRangeLabel: 'Maksimum Menzil',
|
|
20
|
+
realPerformanceLabel: 'Gerçek Performans',
|
|
21
|
+
hoursLabel: 'Menzil Saati',
|
|
22
|
+
safeMilesLabel: 'Güvenli Miller',
|
|
23
|
+
tankValueLabel: 'Depo Değeri',
|
|
24
|
+
inverseCalcLabel: 'Ters Hesaplama: Ne kadar yakıt almalıyım?',
|
|
25
|
+
desiredDistLabel: 'Hedeflenen Mesafe',
|
|
26
|
+
minFuelLabel: 'Gereken Minimum Yakıt',
|
|
27
|
+
warningLabel: 'Hatırlatma: Deniz güvenliği için %20 yedek yakıt önerilen mutlak minimumdur.',
|
|
28
|
+
seaCalm: 'Süt Liman (1.0x)',
|
|
29
|
+
seaLight: 'Hafif Çalkantılı (+%15)',
|
|
30
|
+
seaModerate: 'Orta Çalkantılı (+%30)',
|
|
31
|
+
seaStorm: 'Fırtınalı (+%60)',
|
|
32
|
+
faqTitle: 'Sıkça Sorulan Sorular',
|
|
33
|
+
bibliographyTitle: 'Kaynakça',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const faq: EnduranceLocaleContent['faq'] = [
|
|
37
|
+
{
|
|
38
|
+
question: 'Bir motorlu teknenin menzili nasıl hesaplanır?',
|
|
39
|
+
answer: 'Menzil, toplam saati bulmak için mevcut yakıtın saatlik tüketime bölünmesi ve ardından bu sürenin seyir hızıyla çarpılmasıyla hesaplanır. Araç, gerçek seyir koşullarını yansıtmak için bir deniz durumu faktörü de ekler.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: 'Deniz navigasyonunda neden %20 yedek yakıt önerilir?',
|
|
43
|
+
answer: '%20 yedek, öngörülemeyen durumlar (ters akıntılar, kötü hava nedeniyle rotadan sapan yollar, tüketim tahminlerindeki hatalar veya başka bir tekneye yardım etme ihtiyacı) için yeterli yakıtı garanti eden bir deniz güvenliği standardıdır. Birçok sigortacı ve liman başkanlığı bunu zorunlu kabul eder.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: 'L/NM performansı nedir ve planlamayı nasıl etkiler?',
|
|
47
|
+
answer: 'Deniz mili başına litre (L/NM) cinsinden performans, motorun deniz koşullarındaki gerçek verimliliğidir. Saatlik tüketimin aksine, hızınız ne olursa olsun belirli bir mesafeyi kat etmek için tam olarak ne kadar yakıta ihtiyacınız olduğunu hesaplamanıza olanak tanır.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: 'Deniz durumu gerçek tüketimi nasıl etkiler?',
|
|
51
|
+
answer: 'Deniz durumu tüketimi artırır çünkü gövde su ve rüzgar direncine karşı daha fazla zorlanır. Hafif çalkantılı denizde tüketim %15 artar, orta çalkantılıda %30 ve fırtınada %60 veya daha fazla fırlayabilir. Bu faktörü görmezden gelmek, limana varmadan yakıtın bitmesine neden olabilir.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const howTo: EnduranceLocaleContent['howTo'] = [
|
|
56
|
+
{
|
|
57
|
+
name: 'Depo kapasitenizi girin',
|
|
58
|
+
text: 'Ana deponun litre miktarını ve varsa yedek depoyu girin. Araç, mevcut doluluk yüzdesini hesaplayacaktır.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Mevcut yakıt seviyesini girin',
|
|
62
|
+
text: 'Şu anda elinizde bulunan gerçek litre miktarını girin. Bunu teknenizin göstergesinden ölçebilir veya son yakıt alımından tahmin edebilirsiniz.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Seyir koşullarını ayarlayın',
|
|
66
|
+
text: 'Geçişiniz için beklenen deniz durumunu seçin. Deniz faktörü, teorik tüketimi beklenen gerçek tüketime göre düzeltir.',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Tüketim ve seyir hızını girin',
|
|
70
|
+
text: 'Saatlik tüketim ve genellikle seyrettiğiniz hız için üretici verilerini veya kendi kayıtlarınızı kullanın.',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'Güvenli mesafeyi ve ters hesaplamayı gözden geçirin',
|
|
74
|
+
text: 'Araç, kaç mil güvenle kat edebileceğinizi ve belirli bir hedefe ulaşmak için ne kadar yakıta ihtiyacınız olduğunu gösterir.',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const bibliography: EnduranceLocaleContent['bibliography'] = [
|
|
79
|
+
{
|
|
80
|
+
name: 'UK Maritime and Coastguard Agency',
|
|
81
|
+
url: 'https://www.gov.uk/government/organisations/maritime-and-coastguard-agency',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'RYA - Royal Yachting Association',
|
|
85
|
+
url: 'https://www.rya.org.uk/',
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const seo: EnduranceLocaleContent['seo'] = [
|
|
90
|
+
{
|
|
91
|
+
type: 'title',
|
|
92
|
+
text: 'Motorlu Navigasyonda Yakıt Yönetimi ve Menzil',
|
|
93
|
+
level: 2,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html: '<strong>Deniz menzili</strong>, bir motorlu tekneyle yola çıkmadan önceki en kritik hesaplamalardan biridir. Elinizdeki yakıtla tam olarak kaç mil kat edebileceğinizi bilmek, planlı bir geçiş ile denizdeki acil bir durum arasındaki farkı belirler.',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'paragraph',
|
|
101
|
+
html: 'Bu menzil hesaplayıcı, yakıt yönetiminin her durumda eksiksiz ve güvenilir olması için <strong>deniz durumu faktörünü</strong>, emniyet yedeği yüzdesini ve ters yakıt hesaplamasını entegre eder.',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: 'Altın Kural: Üçte Bir Kuralı',
|
|
106
|
+
level: 3,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'Deniz navigasyonundaki klasik yakıt yönetimi kuralı, her zaman bir emniyet marjı garanti etmek için depoyu üç eşit parçaya böler:',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'list',
|
|
114
|
+
items: [
|
|
115
|
+
'<strong>Üçte biri gidiş için:</strong> Planlanan hedefe ulaşmak için gereken yakıt.',
|
|
116
|
+
'<strong>Üçte biri dönüş için:</strong> Kalkış limanına veya en yakın limana geri dönmek için gereken yakıt.',
|
|
117
|
+
'<strong>Üçte biri yedek olarak:</strong> Beklenmedik olaylar, akıntılar veya olumsuz koşullar için emniyet marjı.',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'paragraph',
|
|
122
|
+
html: 'Hesaplayıcıda yedek yüzdesini kendi kriterlerinize göre ayarlayabilirsiniz, ancak <strong>%20\'nin altına inmek asla önerilmez</strong>. Büyük depolarda veya uzun geçişlerde, birçok deneyimli kaptan bu marjı %30 hatta %33\'e çıkarır.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'title',
|
|
126
|
+
text: 'Tüketimi Etkileyen Faktörler (l/h)',
|
|
127
|
+
level: 3,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'paragraph',
|
|
131
|
+
html: 'Üreticinin teorik tüketimi ideal laboratuvar koşulları altında hesaplanır. Uygulamada, birden fazla faktör <strong>gerçek yakıt tüketimini</strong> değiştirir. Gövde hızı en belirleyici olanıdır: ekonomik hızın üzerinde seyretmek, kat edilen mil başına tüketimi ikiye hatta üçe katlayabilir.',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'table',
|
|
135
|
+
headers: ['Navigasyon Durumu', 'Menzil Üzerindeki Etkisi', 'Tavsiye'],
|
|
136
|
+
rows: [
|
|
137
|
+
['<strong>Kirli Gövde</strong>', 'Menzili %20\'ye kadar azaltır', 'Sezon öncesi gövdeyi temizleyin'],
|
|
138
|
+
['<strong>Karşı Akıntı</strong>', 'Etkili hızı %30 azaltabilir', 'Her zaman yere göre hız (SOG) ile hesaplayın'],
|
|
139
|
+
['<strong>Karşı Rüzgar</strong>', 'Direnci ve tüketimi %10-25 artırır', 'Hafif veya orta çalkantılı deniz faktörünü kullanın'],
|
|
140
|
+
['<strong>Aşırı Yükleme</strong>', 'Su çekimini ve direnci artırır', 'Hesaplama yapmadan önce ekipman ve kumanyaları tartın'],
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'title',
|
|
145
|
+
text: 'Menzil Teknik Terimler Sözlüğü',
|
|
146
|
+
level: 3,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'glossary',
|
|
150
|
+
items: [
|
|
151
|
+
{ term: 'Performans (L/NM)', definition: 'Kat edilen deniz mili başına tüketilen yakıt litresi. Tüketimi gerçek mesafeye bağladığı için geçiş planlamasında en yararlı göstergedir.' },
|
|
152
|
+
{ term: 'Seyir Hızı', definition: 'Motorun hız ve tüketim arasında en iyi dengeyi sunduğu optimum hız. Genellikle maksimum gücün %70\'i ile %80\'i arasındadır.' },
|
|
153
|
+
{ term: 'Kritik Yedek', definition: 'Deponun asla tüketilmemesi gereken yüzdesi. Beklenmedik durumları karşılamak ve yakıt devresine hava girmesini önlemek için minimum %20 önerilir.' },
|
|
154
|
+
{ term: 'Özgül Tüketim', definition: 'Üretilen kilovat-saat güç başına gram yakıt (g/kWh). Farklı tahrik sistemleri arasında verimliliği karşılaştırmayı sağlayan teknik motor ölçümü.' },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'title',
|
|
159
|
+
text: 'Tortu ve Hareket Tehlikesi',
|
|
160
|
+
level: 3,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'paragraph',
|
|
164
|
+
html: 'Düşük yakıt seviyelerine sahip teknelerde sıkça karşılaşılan bir sorun kaynağı <strong>depo dibi tortusu</strong>dur. Seviye çok düştüğünde, yıllar içinde biriken tortular filtreye ulaşabilir ve onu tıkayabilir, böylece gösterge birkaç litre gösterse bile motorun yakıtsız kalmasına neden olabilir.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: 'Az yakıtla denizde teknenin hareketi de sorunlara yol açabilir: Sıvı dalgalarla çalkalanır ve yakıt pompasını anlık olarak susuz bırakabilir. Yedeği korumak, bunun liman giriş manevrası gibi kritik bir anda gerçekleşmemesini sağlar.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
title: 'Yakıt Tasarrufu İpucu',
|
|
173
|
+
html: 'Hızı olağan seyir hızınızın %10-15 altına düşürmek verimliliği %30\'a kadar artırabilir. Zamanınız varsa ve hava uygunsa, daha yavaş gitmek her zaman en ekonomik ve güvenli karardır.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'title',
|
|
177
|
+
text: 'Deniz Mili (NM) ile Kilometre Arasındaki Fark',
|
|
178
|
+
level: 3,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'paragraph',
|
|
182
|
+
html: 'Bir <strong>deniz mili</strong> 1.852 metreye (1,852 km) eşittir ve denizcilik ile havacılık navigasyonunda evrensel mesafe birimidir. Coğrafi bir derecenin bir yay dakikasına dayanır, bu da onu coğrafi koordinatlardaki haritalarla navigasyon için ideal kılar. Saatteki deniz mili cinsinden hıza knot (kn) denir.',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'comparative',
|
|
186
|
+
items: [
|
|
187
|
+
{
|
|
188
|
+
title: 'Analog İğneli Gösterge',
|
|
189
|
+
description: 'Geleneksel şamandıra sistemi',
|
|
190
|
+
points: [
|
|
191
|
+
'Düşük maliyet ve basit kurulum',
|
|
192
|
+
'Çalışmak için elektriğe ihtiyaç duymaz',
|
|
193
|
+
'Yakıt hareketi nedeniyle dalgalı denizlerde hatalı ölçüm yapar',
|
|
194
|
+
'Tüketimi veya tahmini menzili göstermez',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
title: 'Dijital Akış Hesaplayıcı',
|
|
199
|
+
description: 'Elektronik akış sensörleri',
|
|
200
|
+
highlight: true,
|
|
201
|
+
points: [
|
|
202
|
+
'Gerçek tüketimde %1-2 doğruluk',
|
|
203
|
+
'Menzil, tüketim ve maliyeti gerçek zamanlı gösterir',
|
|
204
|
+
'Chartplotter ve NMEA 2000 ile entegre edilebilir',
|
|
205
|
+
'Başlangıç kalibrasyonu ve bakım gerektirir',
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
];
|
|
211
|
+
|
|
212
|
+
const schemas: EnduranceLocaleContent['schemas'] = [
|
|
213
|
+
{
|
|
214
|
+
'@context': 'https://schema.org',
|
|
215
|
+
'@type': 'SoftwareApplication',
|
|
216
|
+
name: title,
|
|
217
|
+
description,
|
|
218
|
+
applicationCategory: 'UtilityApplication',
|
|
219
|
+
operatingSystem: 'Web',
|
|
220
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
221
|
+
} as WithContext<SoftwareApplication>,
|
|
222
|
+
{
|
|
223
|
+
'@context': 'https://schema.org',
|
|
224
|
+
'@type': 'FAQPage',
|
|
225
|
+
mainEntity: faq.map((item) => ({
|
|
226
|
+
'@type': 'Question',
|
|
227
|
+
name: item.question,
|
|
228
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
229
|
+
})),
|
|
230
|
+
} as WithContext<FAQPage>,
|
|
231
|
+
{
|
|
232
|
+
'@context': 'https://schema.org',
|
|
233
|
+
'@type': 'HowTo',
|
|
234
|
+
name: `Nasıl kullanılır: ${title}`,
|
|
235
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
236
|
+
} as WithContext<HowTo>,
|
|
237
|
+
];
|
|
238
|
+
|
|
239
|
+
export const content: EnduranceLocaleContent = {
|
|
240
|
+
slug,
|
|
241
|
+
title,
|
|
242
|
+
description,
|
|
243
|
+
ui,
|
|
244
|
+
seo,
|
|
245
|
+
faq,
|
|
246
|
+
bibliography,
|
|
247
|
+
howTo,
|
|
248
|
+
schemas,
|
|
249
|
+
};
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { EnduranceUI, EnduranceLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'nautical-endurance-calculator';
|
|
5
|
+
const title = '航行续航能力计算器';
|
|
6
|
+
const description =
|
|
7
|
+
'根据燃料消耗、油箱容量和巡航速度,计算您的最大航程和安全距离。适用于机动艇的燃料管理。';
|
|
8
|
+
|
|
9
|
+
const ui: EnduranceUI = {
|
|
10
|
+
tankCapacityLabel: '油箱容量',
|
|
11
|
+
mainTankLabel: '主油箱',
|
|
12
|
+
auxTankLabel: '备用油箱',
|
|
13
|
+
currentFuelLabel: '当前燃料',
|
|
14
|
+
seaConditionsLabel: '海况 / 风力条件',
|
|
15
|
+
consumptionLabel: '理论油耗',
|
|
16
|
+
cruiseSpeedLabel: '巡航速度',
|
|
17
|
+
reserveLabel: '燃料储备',
|
|
18
|
+
fuelPriceLabel: '每升价格',
|
|
19
|
+
maxRangeLabel: '最大航程',
|
|
20
|
+
realPerformanceLabel: '实际表现',
|
|
21
|
+
hoursLabel: '续航时间',
|
|
22
|
+
safeMilesLabel: '安全航程',
|
|
23
|
+
tankValueLabel: '燃油价值',
|
|
24
|
+
inverseCalcLabel: '反向计算:我需要加多少油?',
|
|
25
|
+
desiredDistLabel: '目标距离',
|
|
26
|
+
minFuelLabel: '最低燃料需求',
|
|
27
|
+
warningLabel: '提醒:出于航海安全考虑,建议燃料储备绝对不低于20%。',
|
|
28
|
+
seaCalm: '风平浪静 (1.0x)',
|
|
29
|
+
seaLight: '轻微涌浪 (+15%)',
|
|
30
|
+
seaModerate: '中等涌浪 (+30%)',
|
|
31
|
+
seaStorm: '风暴 (+60%)',
|
|
32
|
+
faqTitle: '常见问题',
|
|
33
|
+
bibliographyTitle: '参考文献',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const faq: EnduranceLocaleContent['faq'] = [
|
|
37
|
+
{
|
|
38
|
+
question: '机动艇的续航能力是如何计算 fol 的?',
|
|
39
|
+
answer: '续航能力是通过用可用燃料除以每小时油耗得到总小时数,然后将该时间乘以巡航速度计算得出的。该工具还应用了海况系数,以反映真实的航行条件。',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: '为什么航海中建议保留20%的储备燃料?',
|
|
43
|
+
answer: '20%的储备燃料是航海安全标准,用以确保在发生意外情况(如逆流、因恶劣天气绕行、油耗估算错误或需要协助其他船只)时有足够的燃料。许多保险公司和港务局都将其视为强制性要求。',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: '什么是L/NM效率,它如何影响航行规划?',
|
|
47
|
+
answer: '每海里升数 (L/NM) 的表现是发动机在海上条件下的实际效率。与每小时油耗不同,它可以让您准确计算出覆盖特定距离所需的燃料量,而不管您的速度如何。',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: '海况如何影响实际油耗?',
|
|
51
|
+
answer: '海况会增加油耗,因为船体需要克服更大的水阻和风阻。在轻微涌浪中油耗增加15%,在中等涌浪中增加30%,而在风暴中则可能激增60%或更多。忽视这一因素可能导致船只在到达港口前燃料耗尽。',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const howTo: EnduranceLocaleContent['howTo'] = [
|
|
56
|
+
{
|
|
57
|
+
name: '输入油箱容量',
|
|
58
|
+
text: '输入主油箱的升数,如果有备用油箱也请一并输入。工具将计算当前的填充比例。',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: '输入当前油位',
|
|
62
|
+
text: '输入当前的实际燃料升数。您可以通过船上的油位计测量,或根据上次加油量进行估算。',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: '调整航行条件',
|
|
66
|
+
text: '选择预计的海况。海况系数会将理论油耗修正为预期的实际油耗。',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: '输入油耗和巡航速度',
|
|
70
|
+
text: '使用制造商提供的数据或您自己的记录,输入每小时油耗和您通常航行的速度。',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: '查看安全距离和反向计算',
|
|
74
|
+
text: '工具将显示您可以安全覆盖的里程数,以及到达特定目的地所需的燃料量。',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const bibliography: EnduranceLocaleContent['bibliography'] = [
|
|
79
|
+
{
|
|
80
|
+
name: 'UK Maritime and Coastguard Agency',
|
|
81
|
+
url: 'https://www.gov.uk/government/organisations/maritime-and-coastguard-agency',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'RYA - Royal Yachting Association',
|
|
85
|
+
url: 'https://www.rya.org.uk/',
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const seo: EnduranceLocaleContent['seo'] = [
|
|
90
|
+
{
|
|
91
|
+
type: 'title',
|
|
92
|
+
text: '机动艇航行中的燃料管理与续航能力',
|
|
93
|
+
level: 2,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html: '<strong>航海续航能力</strong>是驾驶机动艇出海前最关键的计算之一。准确了解使用现有燃料可以覆盖多少海里,是计划航行与海上紧急情况之间的区别。',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'paragraph',
|
|
101
|
+
html: '此续航能力计算器集成了<strong>海况因素</strong>、安全储备百分比和燃料反向计算功能,使燃料管理在任何情况下都完整可靠。',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: '金科玉律:三分之一规则',
|
|
106
|
+
level: 3,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: '航海中经典的燃料管理规则将油箱分成三等份,以始终保证安全余量:',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'list',
|
|
114
|
+
items: [
|
|
115
|
+
'<strong>三分之一用于去程:</strong> 抵达计划目的地所需的燃料。',
|
|
116
|
+
'<strong>三分之一用于回程:</strong> 返回出发港或最近港口所需的燃料。',
|
|
117
|
+
'<strong>三分之一作为储备:</strong> 用于应对意外情况、潮流或不利条件的安全余量。',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'paragraph',
|
|
122
|
+
html: '在计算器中,您可以根据自己的标准设置储备百分比,但<strong>绝不建议低于20%</strong>。对于较大的油箱或长途航线,许多经验丰富的船长会将此余量提高到30%甚至33%。',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'title',
|
|
126
|
+
text: '影响油耗 (l/h) 的因素',
|
|
127
|
+
level: 3,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'paragraph',
|
|
131
|
+
html: '制造商的理论油耗是在理想的实验室条件下计算得出的。在实际操作中,多种因素会改变<strong>实际油耗</strong>。船体速度是最具决定性的因素:以超过经济速度的速度航行,每海里的消耗量可能会翻倍甚至增加两倍。',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'table',
|
|
135
|
+
headers: ['航行状态', '对续航能力的影响', '建议'],
|
|
136
|
+
rows: [
|
|
137
|
+
['<strong>船体污损</strong>', '降低续航能力高达20%', '在季节开始前清洁船体'],
|
|
138
|
+
['<strong>顶流</strong>', '可能降低有效速度30%', '始终以对地速度 (SOG) 计算'],
|
|
139
|
+
['<strong>顶风</strong>', '增加阻力和油耗10-25%', '使用轻微或中等涌浪系数'],
|
|
140
|
+
['<strong>超载</strong>', '增加吃水和阻力', '计算前称量装备和物资的重量'],
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'title',
|
|
145
|
+
text: '续航能力技术术语表',
|
|
146
|
+
level: 3,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'glossary',
|
|
150
|
+
items: [
|
|
151
|
+
{ term: '效率 (L/NM)', definition: '每航行一海里消耗的燃料升数。规划航线最实用的指标,因为它将油耗与实际距离联系起来。' },
|
|
152
|
+
{ term: '巡航速度', definition: '发动机在速度和油耗之间提供最佳平衡的最佳速度。通常在最大功率的70%到80%之间。' },
|
|
153
|
+
{ term: '临界储备', definition: '油箱中绝不能消耗的百分比。建议至少保留20%,以应对突发情况并防止空气进入燃料回路。' },
|
|
154
|
+
{ term: '比油耗', definition: '每产出1千瓦时功率消耗的燃料克数 (g/kWh)。用于比较不同推进系统效率的发动机技术衡量标准。' },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'title',
|
|
159
|
+
text: '油泥与晃动的危险',
|
|
160
|
+
level: 3,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'paragraph',
|
|
164
|
+
html: '燃料油位较低的船只常见的故障源是<strong>油箱底部油泥</strong>。当油位降得太低时,多年积累的沉淀物可能会到达过滤器并造成堵塞,即使油表显示还有几升,也会导致发动机断油。',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: '燃料较少时船只在海上的晃动也会产生问题:液体随波浪震荡,可能导致燃油泵瞬间吸空。保持储备燃料可确保这种情况不会在进港操纵等关键时刻发生。',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
title: '省油窍门',
|
|
173
|
+
html: '将速度降低到常用巡航速度以下10-15%,效率可提高多达30%。如果您有时间且天气良好,慢速航行始终是最经济安全的选择。',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'title',
|
|
177
|
+
text: '海里 (NM) 与公里的区别',
|
|
178
|
+
level: 3,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'paragraph',
|
|
182
|
+
html: '1 <strong>海里</strong> 等于1852米 (1.852 km),是航海和航空导行的通用距离单位。它基于地球纬度的一分弧长,非常适合在地理坐标海图上导航。以海里每小时计算的速度称为节 (kn)。',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'comparative',
|
|
186
|
+
items: [
|
|
187
|
+
{
|
|
188
|
+
title: '指针式机械油表',
|
|
189
|
+
description: '传统浮子系统',
|
|
190
|
+
points: [
|
|
191
|
+
'成本低且安装简单',
|
|
192
|
+
'运行无需电力',
|
|
193
|
+
'海况差时因燃料晃动而读数不准',
|
|
194
|
+
'不显示油耗或预计续航里程',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
title: '数字流量计算器',
|
|
199
|
+
description: '电子流量传感器',
|
|
200
|
+
highlight: true,
|
|
201
|
+
points: [
|
|
202
|
+
'实际油耗精度可达1-2%',
|
|
203
|
+
'实时显示续航、消耗和成本',
|
|
204
|
+
'可与海图绘图仪和 NMEA 2000 集成',
|
|
205
|
+
'需要初始校准和维护',
|
|
206
|
+
],
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
];
|
|
211
|
+
|
|
212
|
+
const schemas: EnduranceLocaleContent['schemas'] = [
|
|
213
|
+
{
|
|
214
|
+
'@context': 'https://schema.org',
|
|
215
|
+
'@type': 'SoftwareApplication',
|
|
216
|
+
name: title,
|
|
217
|
+
description,
|
|
218
|
+
applicationCategory: 'UtilityApplication',
|
|
219
|
+
operatingSystem: 'Web',
|
|
220
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
221
|
+
} as WithContext<SoftwareApplication>,
|
|
222
|
+
{
|
|
223
|
+
'@context': 'https://schema.org',
|
|
224
|
+
'@type': 'FAQPage',
|
|
225
|
+
mainEntity: faq.map((item) => ({
|
|
226
|
+
'@type': 'Question',
|
|
227
|
+
name: item.question,
|
|
228
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
229
|
+
})),
|
|
230
|
+
} as WithContext<FAQPage>,
|
|
231
|
+
{
|
|
232
|
+
'@context': 'https://schema.org',
|
|
233
|
+
'@type': 'HowTo',
|
|
234
|
+
name: `使用方法: ${title}`,
|
|
235
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
236
|
+
} as WithContext<HowTo>,
|
|
237
|
+
];
|
|
238
|
+
|
|
239
|
+
export const content: EnduranceLocaleContent = {
|
|
240
|
+
slug,
|
|
241
|
+
title,
|
|
242
|
+
description,
|
|
243
|
+
ui,
|
|
244
|
+
seo,
|
|
245
|
+
faq,
|
|
246
|
+
bibliography,
|
|
247
|
+
howTo,
|
|
248
|
+
schemas,
|
|
249
|
+
};
|
|
@@ -43,6 +43,18 @@ export const endurance: NauticalToolEntry<EnduranceUI> = {
|
|
|
43
43
|
es: () => import('./i18n/es').then((m) => m.content),
|
|
44
44
|
en: () => import('./i18n/en').then((m) => m.content),
|
|
45
45
|
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
46
|
+
de: () => import('./i18n/de').then((m) => m.content),
|
|
47
|
+
id: () => import('./i18n/id').then((m) => m.content),
|
|
48
|
+
it: () => import('./i18n/it').then((m) => m.content),
|
|
49
|
+
ja: () => import('./i18n/ja').then((m) => m.content),
|
|
50
|
+
ko: () => import('./i18n/ko').then((m) => m.content),
|
|
51
|
+
nl: () => import('./i18n/nl').then((m) => m.content),
|
|
52
|
+
pl: () => import('./i18n/pl').then((m) => m.content),
|
|
53
|
+
pt: () => import('./i18n/pt').then((m) => m.content),
|
|
54
|
+
ru: () => import('./i18n/ru').then((m) => m.content),
|
|
55
|
+
sv: () => import('./i18n/sv').then((m) => m.content),
|
|
56
|
+
tr: () => import('./i18n/tr').then((m) => m.content),
|
|
57
|
+
zh: () => import('./i18n/zh').then((m) => m.content),
|
|
46
58
|
},
|
|
47
59
|
};
|
|
48
60
|
|