@jjlmoya/utils-nautical 1.2.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 +75 -0
- package/src/category/i18n/en.ts +79 -0
- package/src/category/i18n/es.ts +79 -0
- package/src/category/i18n/fr.ts +79 -0
- package/src/category/index.ts +13 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +12 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +22 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +249 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +30 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/seo_length.test.ts +29 -0
- package/src/tests/tool_validation.test.ts +51 -0
- package/src/tool/endurance/bibliography.astro +14 -0
- package/src/tool/endurance/component.astro +310 -0
- package/src/tool/endurance/i18n/en.ts +243 -0
- package/src/tool/endurance/i18n/es.ts +249 -0
- package/src/tool/endurance/i18n/fr.ts +217 -0
- package/src/tool/endurance/index.ts +56 -0
- package/src/tool/endurance/logic.ts +36 -0
- package/src/tool/endurance/seo.astro +55 -0
- package/src/tool/endurance/style.css +333 -0
- package/src/tool/nauticalConverter/bibliography.astro +14 -0
- package/src/tool/nauticalConverter/component.astro +481 -0
- package/src/tool/nauticalConverter/i18n/en.ts +239 -0
- package/src/tool/nauticalConverter/i18n/es.ts +239 -0
- package/src/tool/nauticalConverter/i18n/fr.ts +239 -0
- package/src/tool/nauticalConverter/index.ts +57 -0
- package/src/tool/nauticalConverter/logic.ts +52 -0
- package/src/tool/nauticalConverter/seo.astro +52 -0
- package/src/tool/nauticalConverter/style.css +205 -0
- package/src/tool/sailArea/bibliography.astro +14 -0
- package/src/tool/sailArea/component.astro +418 -0
- package/src/tool/sailArea/i18n/en.ts +275 -0
- package/src/tool/sailArea/i18n/es.ts +275 -0
- package/src/tool/sailArea/i18n/fr.ts +275 -0
- package/src/tool/sailArea/index.ts +53 -0
- package/src/tool/sailArea/logic.ts +55 -0
- package/src/tool/sailArea/seo.astro +52 -0
- package/src/tool/sailArea/style.css +351 -0
- package/src/tool/speedConverter/bibliography.astro +14 -0
- package/src/tool/speedConverter/component.astro +125 -0
- package/src/tool/speedConverter/i18n/en.ts +271 -0
- package/src/tool/speedConverter/i18n/es.ts +271 -0
- package/src/tool/speedConverter/i18n/fr.ts +271 -0
- package/src/tool/speedConverter/index.ts +46 -0
- package/src/tool/speedConverter/logic.ts +48 -0
- package/src/tool/speedConverter/seo.astro +43 -0
- package/src/tool/speedConverter/style.css +239 -0
- package/src/tool/tideCalculator/bibliography.astro +14 -0
- package/src/tool/tideCalculator/component.astro +314 -0
- package/src/tool/tideCalculator/i18n/en.ts +203 -0
- package/src/tool/tideCalculator/i18n/es.ts +225 -0
- package/src/tool/tideCalculator/i18n/fr.ts +190 -0
- package/src/tool/tideCalculator/index.ts +50 -0
- package/src/tool/tideCalculator/logic.ts +73 -0
- package/src/tool/tideCalculator/seo.astro +61 -0
- package/src/tool/tideCalculator/style.css +310 -0
- package/src/tool/underKeel/bibliography.astro +14 -0
- package/src/tool/underKeel/component.astro +240 -0
- package/src/tool/underKeel/i18n/en.ts +193 -0
- package/src/tool/underKeel/i18n/es.ts +206 -0
- package/src/tool/underKeel/i18n/fr.ts +193 -0
- package/src/tool/underKeel/index.ts +49 -0
- package/src/tool/underKeel/logic.ts +83 -0
- package/src/tool/underKeel/seo.astro +46 -0
- package/src/tool/underKeel/style.css +312 -0
- package/src/tools.ts +25 -0
- package/src/types.ts +69 -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 = 'calculadora-autonomia-nautica';
|
|
5
|
+
const title = 'Calculadora de Autonomia Nautica';
|
|
6
|
+
const description =
|
|
7
|
+
'Calcula tu alcance maximo y distancia segura segun consumo, capacidad y velocidad de crucero. Gestion de combustible para embarcaciones a motor.';
|
|
8
|
+
|
|
9
|
+
const ui: EnduranceUI = {
|
|
10
|
+
tankCapacityLabel: 'Capacidad del Deposito',
|
|
11
|
+
mainTankLabel: 'Ppal',
|
|
12
|
+
auxTankLabel: 'Aux',
|
|
13
|
+
currentFuelLabel: 'Combustible Actual',
|
|
14
|
+
seaConditionsLabel: 'Condiciones Mar/Viento',
|
|
15
|
+
consumptionLabel: 'Consumo Teorico',
|
|
16
|
+
cruiseSpeedLabel: 'Velocidad Crucero',
|
|
17
|
+
reserveLabel: 'Reserva',
|
|
18
|
+
fuelPriceLabel: 'Precio Litro',
|
|
19
|
+
maxRangeLabel: 'Alcance Maximo',
|
|
20
|
+
realPerformanceLabel: 'Rendimiento Real',
|
|
21
|
+
hoursLabel: 'Autonomia Horas',
|
|
22
|
+
safeMilesLabel: 'Millas Seguras',
|
|
23
|
+
tankValueLabel: 'Valor Tanque',
|
|
24
|
+
inverseCalcLabel: 'Calculo Inverso: ¿Cuanto necesito repostar?',
|
|
25
|
+
desiredDistLabel: 'Distancia Deseada',
|
|
26
|
+
minFuelLabel: 'Combustible Minimo Requerido',
|
|
27
|
+
warningLabel: 'Recordatorio: Una reserva del 20% es el minimo absoluto recomendado por seguridad nautica.',
|
|
28
|
+
seaCalm: 'Calma (1.0x)',
|
|
29
|
+
seaLight: 'Marejadilla (+15%)',
|
|
30
|
+
seaModerate: 'Marejada (+30%)',
|
|
31
|
+
seaStorm: 'Temporal (+60%)',
|
|
32
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
33
|
+
bibliographyTitle: 'Referencias',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const faq: EnduranceLocaleContent['faq'] = [
|
|
37
|
+
{
|
|
38
|
+
question: '¿Como se calcula la autonomia de una embarcacion a motor?',
|
|
39
|
+
answer: 'La autonomia se calcula dividiendo el combustible disponible entre el consumo horario para obtener las horas totales, y multiplicando ese tiempo por la velocidad de crucero. La herramienta aplica ademas un factor de mar para reflejar condiciones reales de navegacion.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: '¿Por que se recomienda una reserva del 20% en nautica?',
|
|
43
|
+
answer: 'La reserva del 20% es un estandar de seguridad nautica que garantiza combustible suficiente ante imprevistos: corrientes contrarias, rodeos por mal tiempo, fallos en las previsiones de consumo o necesidad de asistir a otra embarcacion. Muchas aseguradoras y capitanias lo consideran obligatorio.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: '¿Que es el rendimiento en L/MN y como afecta a la planificacion?',
|
|
47
|
+
answer: 'El rendimiento en litros por milla nautica (L/MN) es la eficiencia real del motor en condiciones de mar. A diferencia del consumo horario, permite calcular exactamente cuanto combustible necesitas para recorrer una distancia concreta, independientemente de tu velocidad.',
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: '¿Como influye el estado del mar en el consumo real?',
|
|
51
|
+
answer: 'El estado del mar incrementa el consumo porque el casco trabaja mas contra la resistencia del agua y el viento. En marejadilla el consumo aumenta un 15%, en marejada un 30% y en temporal puede dispararse un 60% o mas. Ignorar este factor puede dejar una embarcacion sin combustible antes de llegar a puerto.',
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const howTo: EnduranceLocaleContent['howTo'] = [
|
|
56
|
+
{
|
|
57
|
+
name: 'Introduce la capacidad de tus depositos',
|
|
58
|
+
text: 'Indica los litros del deposito principal y del auxiliar si tienes uno. La herramienta calculara el porcentaje de llenado actual.',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Indica el combustible actual',
|
|
62
|
+
text: 'Introduce los litros reales que tienes en este momento. Puedes medirlos con el nivel del barco o estimarlos segun el ultimo repostaje.',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Ajusta las condiciones de navegacion',
|
|
66
|
+
text: 'Selecciona el estado del mar previsto para tu travesia. El factor de mar corrije el consumo teorico al consumo real esperado.',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Introduce consumo y velocidad de crucero',
|
|
70
|
+
text: 'Usa los datos del fabricante o tus propios registros de consumo horario y la velocidad a la que navegaras habitualmente.',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'Revisa la distancia segura y el calculo inverso',
|
|
74
|
+
text: 'La herramienta te muestra cuantas millas puedes recorrer con seguridad y cuanto combustible necesitas para llegar a un destino concreto.',
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const bibliography: EnduranceLocaleContent['bibliography'] = [
|
|
79
|
+
{
|
|
80
|
+
name: 'Ministerio de Transportes - Nautica de Recreo',
|
|
81
|
+
url: 'https://www.mitma.gob.es/marina-mercante/nautica-de-recreo/',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'Real Federacion Espanola de Vela - Seguridad en la Mar',
|
|
85
|
+
url: 'https://www.rfev.es/es/seguridad/',
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const seo: EnduranceLocaleContent['seo'] = [
|
|
90
|
+
{
|
|
91
|
+
type: 'title',
|
|
92
|
+
text: 'Gestion de Combustible y Autonomia en Navegacion a Motor',
|
|
93
|
+
level: 2,
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html: 'La <strong>autonomia nautica</strong> es uno de los calculos mas criticos antes de zarpar en una embarcacion a motor. Conocer con precision cuantas millas puedes recorrer con el combustible disponible es la diferencia entre una travesia planificada y una emergencia en alta mar.',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'paragraph',
|
|
101
|
+
html: 'Esta calculadora de autonomia integra el <strong>factor de condiciones de mar</strong>, el porcentaje de reserva de seguridad y el calculo inverso de combustible necesario para que la gestion de combustible sea completa y fiable en cualquier situacion.',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
type: 'title',
|
|
105
|
+
text: 'La Regla de Oro: La Regla de los Tercios',
|
|
106
|
+
level: 3,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
type: 'paragraph',
|
|
110
|
+
html: 'La regla clasica de gestion de combustible en nautica divide el deposito en tres partes iguales para garantizar siempre un margen de seguridad:',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'list',
|
|
114
|
+
items: [
|
|
115
|
+
'<strong>Un tercio para la ida:</strong> El combustible necesario para llegar al destino previsto.',
|
|
116
|
+
'<strong>Un tercio para la vuelta:</strong> El combustible de regreso al puerto de salida o al mas cercano.',
|
|
117
|
+
'<strong>Un tercio de reserva:</strong> El margen de seguridad ante imprevistos, corrientes o condiciones adversas.',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'paragraph',
|
|
122
|
+
html: 'En la calculadora puedes configurar el porcentaje de reserva segun tu criterio, aunque <strong>nunca se recomienda bajar del 20%</strong>. Con depositos mas grandes o travesias largas, muchos patrones experimentados elevan este margen al 30% o incluso al 33%.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'title',
|
|
126
|
+
text: 'Factores que afectan al Consumo (l/h)',
|
|
127
|
+
level: 3,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'paragraph',
|
|
131
|
+
html: 'El consumo teorico del fabricante se calcula en condiciones ideales de laboratorio. En la practica, multiples factores alteran el <strong>consumo real</strong> de combustible. La velocidad de casco es el mas determinante: navegar a velocidades superiores a la velocidad economica puede duplicar o triplicar el consumo por milla recorrida.',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'table',
|
|
135
|
+
headers: ['Estado de la Navegacion', 'Efecto en la Autonomia', 'Consejo'],
|
|
136
|
+
rows: [
|
|
137
|
+
['<strong>Casco con Incrustaciones</strong>', 'Reduce la autonomia hasta un 20%', 'Limpia el casco antes de temporada'],
|
|
138
|
+
['<strong>Corriente en Contra</strong>', 'Puede reducir la velocidad efectiva un 30%', 'Calcula siempre con la velocidad real sobre el fondo'],
|
|
139
|
+
['<strong>Viento de Proa</strong>', 'Aumenta la resistencia y el consumo un 10-25%', 'Usa el factor de marejada o marejada para el calculo'],
|
|
140
|
+
['<strong>Exceso de Carga</strong>', 'Aumenta el calado y la resistencia', 'Pesa el equipo y provisiones antes de calcular'],
|
|
141
|
+
],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
type: 'title',
|
|
145
|
+
text: 'Glosario Tecnica de Autonomia',
|
|
146
|
+
level: 3,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
type: 'glossary',
|
|
150
|
+
items: [
|
|
151
|
+
{ term: 'Rendimiento (L/MN)', definition: 'Litros de combustible consumidos por cada milla nautica recorrida. Es el indicador mas util para planificar travesias porque relaciona consumo con distancia real.' },
|
|
152
|
+
{ term: 'Velocidad de Crucero', definition: 'La velocidad optima a la que el motor ofrece el mejor equilibrio entre velocidad y consumo. Generalmente entre el 70% y el 80% de la potencia maxima.' },
|
|
153
|
+
{ term: 'Reserva Critica', definition: 'El porcentaje del deposito que nunca debe consumirse. Se recomienda un minimo del 20% para cubrir imprevistos y evitar que entre aire en el circuito de combustible.' },
|
|
154
|
+
{ term: 'Consumo Especifico', definition: 'Gramos de combustible por kilovatio-hora de potencia producida (g/kWh). Medida tecnica del motor que permite comparar la eficiencia entre distintos propulsores.' },
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
type: 'title',
|
|
159
|
+
text: 'El Peligro de los Lodos y el Movimiento',
|
|
160
|
+
level: 3,
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
type: 'paragraph',
|
|
164
|
+
html: 'Una fuente habitual de problemas en embarcaciones con poco combustible son los <strong>lodos del fondo del deposito</strong>. Cuando el nivel baja mucho, los sedimentos acumulados durante anos pueden llegar al filtro y taponarlo, dejando el motor sin combustible aunque el nivel marque algunos litros.',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
type: 'paragraph',
|
|
168
|
+
html: 'El movimiento del barco en mar con poco combustible tambien puede causar problemas: el liquido oscila con las olas y puede dejar momentaneamente sin alimentacion a la bomba. Mantener la reserva garantiza que esto no ocurra en un momento critico como una maniobra de entrada a puerto.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
title: 'Consejo de Ahorro',
|
|
173
|
+
html: 'Reducir la velocidad entre un 10% y un 15% respecto a la de crucero habitual puede mejorar la eficiencia hasta un 30%. Si tienes tiempo y el tiempo acompana, navegar mas despacio es siempre la decision mas economica y segura.',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: 'title',
|
|
177
|
+
text: 'Diferencia entre Millas Nauticas (MN) y Kilometros',
|
|
178
|
+
level: 3,
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
type: 'paragraph',
|
|
182
|
+
html: 'Una <strong>milla nautica</strong> equivale a 1.852 metros (1,852 km), y es la unidad de distancia universal en navegacion maritima y aerea. Esta basada en el arco de un minuto de grado geografico, lo que la hace ideal para la navegacion con cartas en coordenadas geograficas. La velocidad en millas nauticas por hora se denomina nudo (kn).',
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'comparative',
|
|
186
|
+
items: [
|
|
187
|
+
{
|
|
188
|
+
title: 'Indicador Analogico de Aguja',
|
|
189
|
+
description: 'Sistema tradicional de flotador',
|
|
190
|
+
points: [
|
|
191
|
+
'Bajo coste y sencillez de instalacion',
|
|
192
|
+
'No requiere electricidad para funcionar',
|
|
193
|
+
'Imprecision en mar movido por el movimiento del combustible',
|
|
194
|
+
'No muestra consumo ni autonomia estimada',
|
|
195
|
+
],
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
title: 'Calculador de Flujo Digital',
|
|
199
|
+
description: 'Sensores electronicos de caudal',
|
|
200
|
+
highlight: true,
|
|
201
|
+
points: [
|
|
202
|
+
'Precision del 1-2% en el consumo real',
|
|
203
|
+
'Muestra autonomia, consumo y coste en tiempo real',
|
|
204
|
+
'Integrable con chartplotters y NMEA 2000',
|
|
205
|
+
'Requiere calibracion inicial y mantenimiento',
|
|
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: `Como usar: ${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,217 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { EnduranceUI, EnduranceLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'calculateur-autonomie-nautique';
|
|
5
|
+
const title = "Calculateur d'Autonomie Nautique";
|
|
6
|
+
const description =
|
|
7
|
+
"Calculez votre portee maximale et la distance securisee selon la consommation, la capacite du reservoir et la vitesse de croisiere. Gestion du carburant pour bateaux a moteur.";
|
|
8
|
+
|
|
9
|
+
const ui: EnduranceUI = {
|
|
10
|
+
tankCapacityLabel: 'Capacite du Reservoir',
|
|
11
|
+
mainTankLabel: 'Principal',
|
|
12
|
+
auxTankLabel: 'Aux',
|
|
13
|
+
currentFuelLabel: 'Carburant Actuel',
|
|
14
|
+
seaConditionsLabel: 'Conditions Mer / Vent',
|
|
15
|
+
consumptionLabel: 'Consommation Theorique',
|
|
16
|
+
cruiseSpeedLabel: 'Vitesse de Croisiere',
|
|
17
|
+
reserveLabel: 'Reserve',
|
|
18
|
+
fuelPriceLabel: 'Prix au Litre',
|
|
19
|
+
maxRangeLabel: 'Portee Maximale',
|
|
20
|
+
realPerformanceLabel: 'Performance Reelle',
|
|
21
|
+
hoursLabel: "Autonomie en Heures",
|
|
22
|
+
safeMilesLabel: 'Miles Securises',
|
|
23
|
+
tankValueLabel: 'Valeur du Reservoir',
|
|
24
|
+
inverseCalcLabel: 'Calcul Inverse : Combien dois-je ravitailler ?',
|
|
25
|
+
desiredDistLabel: 'Distance Souhaitee',
|
|
26
|
+
minFuelLabel: 'Carburant Minimum Requis',
|
|
27
|
+
warningLabel: 'Rappel : Une reserve de 20% est le minimum absolu recommande par la securite nautique.',
|
|
28
|
+
seaCalm: 'Calme (1.0x)',
|
|
29
|
+
seaLight: 'Petite houle (+15%)',
|
|
30
|
+
seaModerate: 'Houle moderee (+30%)',
|
|
31
|
+
seaStorm: 'Tempete (+60%)',
|
|
32
|
+
faqTitle: 'Questions Frequentes',
|
|
33
|
+
bibliographyTitle: 'References',
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const faq: EnduranceLocaleContent['faq'] = [
|
|
37
|
+
{
|
|
38
|
+
question: "Comment calcule-t-on l'autonomie d'un bateau a moteur ?",
|
|
39
|
+
answer: "L'autonomie se calcule en divisant le carburant disponible par la consommation horaire pour obtenir les heures totales, puis en multipliant ce temps par la vitesse de croisiere. L'outil applique egalement un facteur d'etat de mer pour refleter les conditions reelles de navigation.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
question: "Pourquoi recommande-t-on une reserve de 20% en navigation ?",
|
|
43
|
+
answer: "La reserve de 20% est une norme de securite nautique qui garantit un carburant suffisant en cas d'imprevu : courants contraires, detours par mauvais temps, erreurs dans les estimations de consommation ou necessite d'assister un autre bateau. De nombreux assureurs et capitaineries la considerent obligatoire.",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
question: "Qu'est-ce que la performance en L/NM et comment affecte-t-elle la planification ?",
|
|
47
|
+
answer: "La performance en litres par mille nautique (L/NM) est l'efficacite reelle du moteur dans les conditions de mer. Contrairement a la consommation horaire, elle permet de calculer exactement la quantite de carburant necessaire pour parcourir une distance precise, quelle que soit la vitesse.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
question: "Comment l'etat de la mer affecte-t-il la consommation reelle ?",
|
|
51
|
+
answer: "L'etat de la mer augmente la consommation car la coque travaille davantage contre la resistance de l'eau et du vent. Par petite houle la consommation augmente de 15%, par houle moderee de 30%, et par tempete elle peut bondir de 60% ou plus. Ignorer ce facteur peut laisser un bateau sans carburant avant d'arriver au port.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const howTo: EnduranceLocaleContent['howTo'] = [
|
|
56
|
+
{
|
|
57
|
+
name: 'Saisissez la capacite de vos reservoirs',
|
|
58
|
+
text: "Indiquez les litres du reservoir principal et de l'auxiliaire si vous en avez un. L'outil calculera le pourcentage de remplissage actuel.",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: 'Indiquez le carburant actuel',
|
|
62
|
+
text: "Saisissez les litres reels que vous avez en ce moment. Vous pouvez les mesurer avec la jauge du bateau ou les estimer d'apres le dernier ravitaillement.",
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
name: 'Ajustez les conditions de navigation',
|
|
66
|
+
text: "Selectionnez l'etat de mer prevu pour votre traversee. Le facteur de mer corrige la consommation theorique a la consommation reelle attendue.",
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
name: 'Saisissez la consommation et la vitesse de croisiere',
|
|
70
|
+
text: 'Utilisez les donnees du fabricant ou vos propres enregistrements de consommation horaire et de vitesse de navigation habituelle.',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
name: 'Verifiez la distance securisee et le calcul inverse',
|
|
74
|
+
text: "L'outil vous montre combien de miles vous pouvez parcourir en securite et combien de carburant vous avez besoin pour atteindre une destination precise.",
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const bibliography: EnduranceLocaleContent['bibliography'] = [
|
|
79
|
+
{
|
|
80
|
+
name: 'Direction des Affaires Maritimes - Navigation de Plaisance',
|
|
81
|
+
url: 'https://www.mer.gouv.fr/les-marins/plaisanciers',
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
name: 'Federation Francaise de Voile - Securite',
|
|
85
|
+
url: 'https://www.ffvoile.fr/',
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const seo: EnduranceLocaleContent['seo'] = [
|
|
90
|
+
{ type: 'title', text: 'Gestion du Carburant et Autonomie en Navigation a Moteur', level: 2 },
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: "L'<strong>autonomie nautique</strong> est l'un des calculs les plus critiques avant d'appareiller sur un bateau a moteur. Connaitre avec precision le nombre de miles que vous pouvez parcourir avec le carburant disponible est la difference entre une traversee planifiee et une urgence en haute mer.",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html: "Ce calculateur d'autonomie integre le <strong>facteur de conditions de mer</strong>, le pourcentage de reserve de securite et le calcul inverse du carburant necessaire pour que la gestion du carburant soit complete et fiable dans toute situation.",
|
|
98
|
+
},
|
|
99
|
+
{ type: 'title', text: "La Regle d'Or : La Regle des Tiers", level: 3 },
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'La regle classique de gestion du carburant en nautisme divise le reservoir en trois parties egales pour garantir toujours une marge de securite :',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'list',
|
|
106
|
+
items: [
|
|
107
|
+
"<strong>Un tiers pour l'aller :</strong> Le carburant necessaire pour atteindre la destination prevue.",
|
|
108
|
+
'<strong>Un tiers pour le retour :</strong> Le carburant pour revenir au port de depart ou au plus proche.',
|
|
109
|
+
"<strong>Un tiers de reserve :</strong> La marge de securite en cas d'imprevu, de courants ou de conditions adverses.",
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'paragraph',
|
|
114
|
+
html: "Dans le calculateur, vous pouvez configurer le pourcentage de reserve selon votre critere, bien que <strong>descendre sous 20% ne soit jamais recommande</strong>. Avec de grands reservoirs ou des traversees longues, de nombreux skippers experimentes elevent cette marge a 30% voire 33%.",
|
|
115
|
+
},
|
|
116
|
+
{ type: 'title', text: 'Facteurs affectant la Consommation (l/h)', level: 3 },
|
|
117
|
+
{
|
|
118
|
+
type: 'paragraph',
|
|
119
|
+
html: "La consommation theorique du fabricant est calculee dans des conditions ideales de laboratoire. En pratique, de multiples facteurs modifient la <strong>consommation reelle</strong> de carburant. La vitesse de coque est la plus determinante : naviguer au-dela de la vitesse economique peut doubler ou tripler la consommation par mile parcouru.",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'table',
|
|
123
|
+
headers: ['Etat de Navigation', "Effet sur l'Autonomie", 'Conseil'],
|
|
124
|
+
rows: [
|
|
125
|
+
['<strong>Coque Encrassee</strong>', "Reduit l'autonomie jusqu'a 20%", 'Nettoyez la coque avant la saison'],
|
|
126
|
+
['<strong>Courant Contraire</strong>', 'Peut reduire la vitesse effective de 30%', 'Calculez toujours avec la vitesse sur le fond'],
|
|
127
|
+
['<strong>Vent Debout</strong>', 'Augmente la resistance et la consommation de 10-25%', 'Utilisez le facteur petite ou moderee houle'],
|
|
128
|
+
['<strong>Surcharge</strong>', "Augmente le tirant d'eau et la resistance", "Pesez l'equipement avant de calculer"],
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
{ type: 'title', text: "Glossaire Technique d'Autonomie", level: 3 },
|
|
132
|
+
{
|
|
133
|
+
type: 'glossary',
|
|
134
|
+
items: [
|
|
135
|
+
{ term: 'Performance (L/NM)', definition: "Litres de carburant consommes par mille nautique parcouru. L'indicateur le plus utile pour planifier les traversees car il relie la consommation a la distance reelle." },
|
|
136
|
+
{ term: 'Vitesse de Croisiere', definition: 'La vitesse optimale a laquelle le moteur offre le meilleur equilibre entre vitesse et consommation. Generalement entre 70% et 80% de la puissance maximale.' },
|
|
137
|
+
{ term: 'Reserve Critique', definition: "Le pourcentage du reservoir qui ne doit jamais etre consomme. Un minimum de 20% est recommande pour couvrir les imprevu et empecher l'air d'entrer dans le circuit de carburant." },
|
|
138
|
+
{ term: 'Consommation Specifique', definition: "Grammes de carburant par kilowattheure de puissance produite (g/kWh). Mesure technique du moteur permettant de comparer l'efficacite entre differents systemes de propulsion." },
|
|
139
|
+
],
|
|
140
|
+
},
|
|
141
|
+
{ type: 'title', text: 'Le Danger des Boues et du Mouvement', level: 3 },
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: 'Une source courante de problemes sur les bateaux avec peu de carburant est les <strong>boues de fond de reservoir</strong>. Quand le niveau baisse trop, les sediments accumules pendant des annees peuvent atteindre le filtre et le boucher, laissant le moteur sans carburant meme si la jauge indique encore quelques litres.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'paragraph',
|
|
148
|
+
html: "Le mouvement du bateau en mer avec peu de carburant peut aussi causer des problemes : le liquide oscille avec les vagues et peut momentanement priver la pompe d'alimentation. Maintenir la reserve garantit que cela ne se produise pas a un moment critique comme une manoeuvre d'entree au port.",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
type: 'tip',
|
|
152
|
+
title: "Conseil d'Economie de Carburant",
|
|
153
|
+
html: "Reduire la vitesse de 10-15% par rapport a votre vitesse de croisiere habituelle peut ameliorer l'efficacite jusqu'a 30%. Si vous avez le temps et que le temps le permet, naviguer plus lentement est toujours la decision la plus economique et la plus sure.",
|
|
154
|
+
},
|
|
155
|
+
{ type: 'title', text: 'Difference entre Miles Nautiques (NM) et Kilometres', level: 3 },
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: "Un <strong>mille nautique</strong> equivaut a 1 852 metres (1,852 km), et est l'unite de distance universelle en navigation maritime et aeronautique. Il est base sur l'arc d'une minute de degre geographique, ce qui le rend ideal pour la navigation avec des cartes en coordonnees geographiques. La vitesse en milles nautiques par heure s'appelle un noeud (kn).",
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'comparative',
|
|
162
|
+
items: [
|
|
163
|
+
{
|
|
164
|
+
title: 'Jauge Analogique a Aiguille',
|
|
165
|
+
description: 'Systeme traditionnel a flotteur',
|
|
166
|
+
points: [
|
|
167
|
+
'Faible cout et installation simple',
|
|
168
|
+
"Ne necessite pas d'electricite pour fonctionner",
|
|
169
|
+
'Imprecision par mer agitee due au mouvement du carburant',
|
|
170
|
+
"N'affiche pas la consommation ni l'autonomie estimee",
|
|
171
|
+
],
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
title: 'Calculateur de Debit Numerique',
|
|
175
|
+
description: 'Capteurs electroniques de debit',
|
|
176
|
+
highlight: true,
|
|
177
|
+
points: [
|
|
178
|
+
'Precision de 1-2% sur la consommation reelle',
|
|
179
|
+
"Affiche l'autonomie, la consommation et le cout en temps reel",
|
|
180
|
+
'Integrable avec chartplotters et NMEA 2000',
|
|
181
|
+
'Necessite un etalonnage initial et une maintenance',
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
},
|
|
186
|
+
];
|
|
187
|
+
|
|
188
|
+
const schemas: EnduranceLocaleContent['schemas'] = [
|
|
189
|
+
{
|
|
190
|
+
'@context': 'https://schema.org',
|
|
191
|
+
'@type': 'SoftwareApplication',
|
|
192
|
+
name: title,
|
|
193
|
+
description,
|
|
194
|
+
applicationCategory: 'UtilityApplication',
|
|
195
|
+
operatingSystem: 'Web',
|
|
196
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
197
|
+
} as WithContext<SoftwareApplication>,
|
|
198
|
+
{
|
|
199
|
+
'@context': 'https://schema.org',
|
|
200
|
+
'@type': 'FAQPage',
|
|
201
|
+
mainEntity: faq.map((item) => ({
|
|
202
|
+
'@type': 'Question',
|
|
203
|
+
name: item.question,
|
|
204
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
205
|
+
})),
|
|
206
|
+
} as WithContext<FAQPage>,
|
|
207
|
+
{
|
|
208
|
+
'@context': 'https://schema.org',
|
|
209
|
+
'@type': 'HowTo',
|
|
210
|
+
name: `Comment utiliser : ${title}`,
|
|
211
|
+
step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
|
|
212
|
+
} as WithContext<HowTo>,
|
|
213
|
+
];
|
|
214
|
+
|
|
215
|
+
export const content: EnduranceLocaleContent = {
|
|
216
|
+
slug, title, description, ui, seo, faq, bibliography, howTo, schemas,
|
|
217
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { NauticalToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
|
|
2
|
+
import EnduranceComponent from './component.astro';
|
|
3
|
+
import EnduranceSEO from './seo.astro';
|
|
4
|
+
import EnduranceBibliography from './bibliography.astro';
|
|
5
|
+
|
|
6
|
+
export interface EnduranceUI {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
tankCapacityLabel: string;
|
|
9
|
+
mainTankLabel: string;
|
|
10
|
+
auxTankLabel: string;
|
|
11
|
+
currentFuelLabel: string;
|
|
12
|
+
seaConditionsLabel: string;
|
|
13
|
+
consumptionLabel: string;
|
|
14
|
+
cruiseSpeedLabel: string;
|
|
15
|
+
reserveLabel: string;
|
|
16
|
+
fuelPriceLabel: string;
|
|
17
|
+
maxRangeLabel: string;
|
|
18
|
+
realPerformanceLabel: string;
|
|
19
|
+
hoursLabel: string;
|
|
20
|
+
safeMilesLabel: string;
|
|
21
|
+
tankValueLabel: string;
|
|
22
|
+
inverseCalcLabel: string;
|
|
23
|
+
desiredDistLabel: string;
|
|
24
|
+
minFuelLabel: string;
|
|
25
|
+
warningLabel: string;
|
|
26
|
+
seaCalm: string;
|
|
27
|
+
seaLight: string;
|
|
28
|
+
seaModerate: string;
|
|
29
|
+
seaStorm: string;
|
|
30
|
+
faqTitle: string;
|
|
31
|
+
bibliographyTitle: string;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export type EnduranceLocaleContent = ToolLocaleContent<EnduranceUI>;
|
|
35
|
+
|
|
36
|
+
export const endurance: NauticalToolEntry<EnduranceUI> = {
|
|
37
|
+
id: 'endurance',
|
|
38
|
+
icons: {
|
|
39
|
+
bg: 'mdi:fuel',
|
|
40
|
+
fg: 'mdi:map-marker-distance',
|
|
41
|
+
},
|
|
42
|
+
i18n: {
|
|
43
|
+
es: () => import('./i18n/es').then((m) => m.content),
|
|
44
|
+
en: () => import('./i18n/en').then((m) => m.content),
|
|
45
|
+
fr: () => import('./i18n/fr').then((m) => m.content),
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { EnduranceComponent, EnduranceSEO, EnduranceBibliography };
|
|
50
|
+
|
|
51
|
+
export const ENDURANCE_TOOL: ToolDefinition = {
|
|
52
|
+
entry: endurance,
|
|
53
|
+
Component: EnduranceComponent,
|
|
54
|
+
SEOComponent: EnduranceSEO,
|
|
55
|
+
BibliographyComponent: EnduranceBibliography,
|
|
56
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface EnduranceParams {
|
|
2
|
+
tank1: number;
|
|
3
|
+
tank2: number;
|
|
4
|
+
fuelCurrent: number;
|
|
5
|
+
consumption: number;
|
|
6
|
+
speed: number;
|
|
7
|
+
seaFactor: number;
|
|
8
|
+
reserve: number;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export interface EnduranceResult {
|
|
12
|
+
maxDist: number;
|
|
13
|
+
safeHours: number;
|
|
14
|
+
safeDist: number;
|
|
15
|
+
litresPerMile: number;
|
|
16
|
+
fuelPct: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function calculateEndurance(p: EnduranceParams): EnduranceResult {
|
|
20
|
+
const { tank1, tank2, fuelCurrent, consumption, speed, seaFactor, reserve } = p;
|
|
21
|
+
const realCons = consumption * seaFactor;
|
|
22
|
+
const lpmn = speed > 0 ? realCons / speed : 0;
|
|
23
|
+
const hTotal = realCons > 0 ? fuelCurrent / realCons : 0;
|
|
24
|
+
const maxDist = hTotal * speed;
|
|
25
|
+
const safeFuel = fuelCurrent * (1 - reserve / 100);
|
|
26
|
+
const safeHours = realCons > 0 ? safeFuel / realCons : 0;
|
|
27
|
+
const safeDist = safeHours * speed;
|
|
28
|
+
const tCap = tank1 + tank2;
|
|
29
|
+
const fuelPct = tCap > 0 ? (fuelCurrent / tCap) * 100 : 0;
|
|
30
|
+
return { maxDist, safeHours, safeDist, litresPerMile: lpmn, fuelPct };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function calculateFuelNeeded(dist: number, litresPerMile: number, reserve: number): number {
|
|
34
|
+
const reserveFactor = 1 - reserve / 100;
|
|
35
|
+
return reserveFactor > 0 ? (dist * litresPerMile) / reserveFactor : 0;
|
|
36
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
import {
|
|
3
|
+
SEOTitle,
|
|
4
|
+
SEOTable,
|
|
5
|
+
SEOTip,
|
|
6
|
+
SEOGlossary,
|
|
7
|
+
SEOArticle,
|
|
8
|
+
SEOList,
|
|
9
|
+
SEOStats,
|
|
10
|
+
SEOComparative,
|
|
11
|
+
} from '@jjlmoya/utils-shared';
|
|
12
|
+
import { endurance } from './index';
|
|
13
|
+
import type { KnownLocale } from '../../types';
|
|
14
|
+
|
|
15
|
+
interface Props {
|
|
16
|
+
locale?: KnownLocale;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
const { locale = 'es' } = Astro.props;
|
|
20
|
+
const content = await endurance.i18n[locale]?.();
|
|
21
|
+
if (!content) return null;
|
|
22
|
+
|
|
23
|
+
const { seo } = content;
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
<SEOArticle>
|
|
27
|
+
{seo.map((section: any) => {
|
|
28
|
+
switch (section.type) {
|
|
29
|
+
case 'title':
|
|
30
|
+
return <SEOTitle title={section.text} level={section.level || 2} />;
|
|
31
|
+
case 'paragraph':
|
|
32
|
+
return <p set:html={section.html} />;
|
|
33
|
+
case 'list':
|
|
34
|
+
return <SEOList items={section.items} />;
|
|
35
|
+
case 'tip':
|
|
36
|
+
return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
|
|
37
|
+
case 'table':
|
|
38
|
+
return (
|
|
39
|
+
<SEOTable headers={section.headers}>
|
|
40
|
+
{section.rows.map((row: string[]) => (
|
|
41
|
+
<tr>{row.map((cell: string) => <td set:html={cell} />)}</tr>
|
|
42
|
+
))}
|
|
43
|
+
</SEOTable>
|
|
44
|
+
);
|
|
45
|
+
case 'glossary':
|
|
46
|
+
return <SEOGlossary items={section.items} />;
|
|
47
|
+
case 'stats':
|
|
48
|
+
return <SEOStats items={section.items} columns={section.columns} />;
|
|
49
|
+
case 'comparative':
|
|
50
|
+
return <SEOComparative items={section.items} columns={section.columns} />;
|
|
51
|
+
default:
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
})}
|
|
55
|
+
</SEOArticle>
|