@jjlmoya/utils-nautical 1.16.0 → 1.18.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 (49) hide show
  1. package/package.json +4 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/es.ts +16 -16
  5. package/src/category/i18n/fr.ts +16 -16
  6. package/src/category/i18n/id.ts +1 -1
  7. package/src/category/i18n/it.ts +1 -1
  8. package/src/category/i18n/nl.ts +1 -1
  9. package/src/category/i18n/pl.ts +1 -1
  10. package/src/category/i18n/pt.ts +1 -1
  11. package/src/category/i18n/ru.ts +3 -3
  12. package/src/category/i18n/sv.ts +1 -1
  13. package/src/category/i18n/tr.ts +1 -1
  14. package/src/data.ts +0 -6
  15. package/src/layouts/PreviewLayout.astro +1 -0
  16. package/src/tests/diacritics_density.test.ts +118 -0
  17. package/src/tests/inverted_punctuation.test.ts +84 -0
  18. package/src/tests/no_en_dash.test.ts +70 -0
  19. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  20. package/src/tests/script_density.test.ts +94 -0
  21. package/src/tool/endurance/component.astro +10 -10
  22. package/src/tool/endurance/i18n/es.ts +54 -54
  23. package/src/tool/endurance/i18n/fr.ts +70 -70
  24. package/src/tool/endurance/i18n/ru.ts +9 -9
  25. package/src/tool/nauticalConverter/component.astro +15 -15
  26. package/src/tool/nauticalConverter/i18n/es.ts +46 -46
  27. package/src/tool/nauticalConverter/i18n/fr.ts +53 -53
  28. package/src/tool/nauticalConverter/i18n/pl.ts +3 -3
  29. package/src/tool/nauticalConverter/i18n/ru.ts +8 -8
  30. package/src/tool/nauticalConverter/i18n/zh.ts +3 -3
  31. package/src/tool/sailArea/component.astro +13 -13
  32. package/src/tool/sailArea/i18n/es.ts +53 -53
  33. package/src/tool/sailArea/i18n/fr.ts +70 -70
  34. package/src/tool/sailArea/i18n/ru.ts +8 -8
  35. package/src/tool/sailArea/i18n/zh.ts +5 -5
  36. package/src/tool/speedConverter/i18n/es.ts +58 -58
  37. package/src/tool/speedConverter/i18n/fr.ts +75 -75
  38. package/src/tool/speedConverter/i18n/ru.ts +6 -6
  39. package/src/tool/speedConverter/i18n/zh.ts +5 -5
  40. package/src/tool/tideCalculator/component.astro +5 -5
  41. package/src/tool/tideCalculator/i18n/es.ts +39 -39
  42. package/src/tool/tideCalculator/i18n/fr.ts +43 -43
  43. package/src/tool/tideCalculator/i18n/ru.ts +6 -6
  44. package/src/tool/tideCalculator/i18n/zh.ts +1 -1
  45. package/src/tool/tideCalculator/tide-height-calculator.css +136 -5
  46. package/src/tool/underKeel/component.astro +7 -7
  47. package/src/tool/underKeel/i18n/es.ts +39 -39
  48. package/src/tool/underKeel/i18n/fr.ts +45 -45
  49. package/src/tool/underKeel/i18n/ru.ts +5 -5
@@ -5,168 +5,168 @@ import type { EnduranceUI, EnduranceLocaleContent } from '../index';
5
5
  const slug = 'calculateur-autonomie-nautique';
6
6
  const title = "Calculateur d'Autonomie Nautique";
7
7
  const description =
8
- "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
+ "Calculez votre portée maximale et la distance sécurisée selon la consommation, la capacité du réservoir et la vitesse de croisière. Gestion du carburant pour bateaux à moteur.";
9
9
 
10
10
  const ui: EnduranceUI = {
11
- tankCapacityLabel: 'Capacite du Reservoir',
11
+ tankCapacityLabel: 'Capacité du Réservoir',
12
12
  mainTankLabel: 'Principal',
13
13
  auxTankLabel: 'Aux',
14
- currentFuelLabel: 'Carburant Actuel',
14
+ currentFuelLabel: 'Carburant actuel',
15
15
  seaConditionsLabel: 'Conditions Mer / Vent',
16
- consumptionLabel: 'Consommation Theorique',
17
- cruiseSpeedLabel: 'Vitesse de Croisiere',
18
- reserveLabel: 'Reserve',
16
+ consumptionLabel: 'Consommation théorique',
17
+ cruiseSpeedLabel: 'Vitesse de croisière',
18
+ reserveLabel: 'Réserve',
19
19
  fuelPriceLabel: 'Prix au Litre',
20
- maxRangeLabel: 'Portee Maximale',
21
- realPerformanceLabel: 'Performance Reelle',
22
- hoursLabel: "Autonomie en Heures",
23
- safeMilesLabel: 'Miles Securises',
24
- tankValueLabel: 'Valeur du Reservoir',
25
- inverseCalcLabel: 'Calcul Inverse : Combien dois-je ravitailler ?',
26
- desiredDistLabel: 'Distance Souhaitee',
27
- minFuelLabel: 'Carburant Minimum Requis',
28
- warningLabel: 'Rappel : Une reserve de 20% est le minimum absolu recommande par la securite nautique.',
20
+ maxRangeLabel: 'Portée maximale',
21
+ realPerformanceLabel: 'Performance réelle',
22
+ hoursLabel: "Autonomie en heures",
23
+ safeMilesLabel: 'Miles sécurisés',
24
+ tankValueLabel: 'Valeur du réservoir',
25
+ inverseCalcLabel: 'Calcul inverse: Combien dois-je ravitailler ?',
26
+ desiredDistLabel: 'Distance souhaitée',
27
+ minFuelLabel: 'Carburant minimum requis',
28
+ warningLabel: 'Rappel: Une réserve de 20% est le minimum absolu recommandé par la sécurité nautique.',
29
29
  seaCalm: 'Calme (1.0x)',
30
30
  seaLight: 'Petite houle (+15%)',
31
- seaModerate: 'Houle moderee (+30%)',
32
- seaStorm: 'Tempete (+60%)',
31
+ seaModerate: 'Houle modérée (+30%)',
32
+ seaStorm: 'Tempête (+60%)',
33
33
  };
34
34
 
35
35
  const faq: EnduranceLocaleContent['faq'] = [
36
36
  {
37
- question: "Comment calcule-t-on l'autonomie d'un bateau a moteur ?",
38
- 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.",
37
+ question: "Comment calcule-t-on l'autonomie d'un bateau à moteur ?",
38
+ 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 croisière. L'outil applique également un facteur d'état de mer pour refléter les conditions réelles de navigation.",
39
39
  },
40
40
  {
41
- question: "Pourquoi recommande-t-on une reserve de 20% en navigation ?",
42
- 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.",
41
+ question: "Pourquoi recommande-t-on une réserve de 20% en navigation ?",
42
+ answer: "La réserve de 20% est une norme de sécurité nautique qui garantit un carburant suffisant en cas d'imprévu: courants contraires, détours par mauvais temps, erreurs dans les estimations de consommation ou nécessité d'assister un autre bateau. De nombreux assureurs et capitaineries la considèrent obligatoire.",
43
43
  },
44
44
  {
45
45
  question: "Qu'est-ce que la performance en L/NM et comment affecte-t-elle la planification ?",
46
- 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.",
46
+ answer: "La performance en litres par mille nautique (L/NM) est l'efficacité réelle du moteur dans les conditions de mer. Contrairement à la consommation horaire, elle permet de calculer exactement la quantité de carburant nécessaire pour parcourir une distance précise, quelle que soit la vitesse.",
47
47
  },
48
48
  {
49
- question: "Comment l'etat de la mer affecte-t-il la consommation reelle ?",
50
- 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.",
49
+ question: "Comment l'état de la mer affecte-t-il la consommation réelle ?",
50
+ answer: "L'état de la mer augmente la consommation car la coque travaille davantage contre la résistance de l'eau et du vent. Par petite houle la consommation augmente de 15%, par houle modérée de 30%, et par tempête elle peut bondir de 60% ou plus. Ignorer ce facteur peut laisser un bateau sans carburant avant d'arriver au port.",
51
51
  },
52
52
  ];
53
53
 
54
54
  const howTo: EnduranceLocaleContent['howTo'] = [
55
55
  {
56
- name: 'Saisissez la capacite de vos reservoirs',
57
- text: "Indiquez les litres du reservoir principal et de l'auxiliaire si vous en avez un. L'outil calculera le pourcentage de remplissage actuel.",
56
+ name: 'Saisissez la capacité de vos réservoirs',
57
+ text: "Indiquez les litres du réservoir principal et de l'auxiliaire si vous en avez un. L'outil calculera le pourcentage de remplissage actuel.",
58
58
  },
59
59
  {
60
60
  name: 'Indiquez le carburant actuel',
61
- 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.",
61
+ text: "Saisissez les litres réels que vous avez en ce moment. Vous pouvez les mesurer avec la jauge du bateau ou les estimer d'après le dernier ravitaillement.",
62
62
  },
63
63
  {
64
64
  name: 'Ajustez les conditions de navigation',
65
- text: "Selectionnez l'etat de mer prevu pour votre traversee. Le facteur de mer corrige la consommation theorique a la consommation reelle attendue.",
65
+ text: "Sélectionnez l'état de mer prévu pour votre traversée. Le facteur de mer corrige la consommation théorique à la consommation réelle attendue.",
66
66
  },
67
67
  {
68
- name: 'Saisissez la consommation et la vitesse de croisiere',
69
- text: 'Utilisez les donnees du fabricant ou vos propres enregistrements de consommation horaire et de vitesse de navigation habituelle.',
68
+ name: 'Saisissez la consommation et la vitesse de croisière',
69
+ text: 'Utilisez les données du fabricant ou vos propres enregistrements de consommation horaire et de vitesse de navigation habituelle.',
70
70
  },
71
71
  {
72
- name: 'Verifiez la distance securisee et le calcul inverse',
73
- 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.",
72
+ name: 'Vérifiez la distance sécurisée et le calcul inverse',
73
+ text: "L'outil vous montre combien de miles vous pouvez parcourir en sécurité et combien de carburant vous avez besoin pour atteindre une destination précise.",
74
74
  },
75
75
  ];
76
76
 
77
77
  const seo: EnduranceLocaleContent['seo'] = [
78
- { type: 'title', text: 'Gestion du Carburant et Autonomie en Navigation a Moteur', level: 2 },
78
+ { type: 'title', text: 'Gestion du Carburant et Autonomie en Navigation à Moteur', level: 2 },
79
79
  {
80
80
  type: 'paragraph',
81
- 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.",
81
+ html: "L'<strong>autonomie nautique</strong> est l'un des calculs les plus critiques avant d'appareiller sur un bateau à moteur. Connaître avec précision le nombre de miles que vous pouvez parcourir avec le carburant disponible est la différence entre une traversée planifiée et une urgence en haute mer.",
82
82
  },
83
83
  {
84
84
  type: 'paragraph',
85
- 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.",
85
+ html: "Ce calculateur d'autonomie intègre le <strong>facteur de conditions de mer</strong>, le pourcentage de réserve de sécurité et le calcul inverse du carburant nécessaire pour que la gestion du carburant soit complète et fiable dans toute situation.",
86
86
  },
87
- { type: 'title', text: "La Regle d'Or : La Regle des Tiers", level: 3 },
87
+ { type: 'title', text: "La Règle d'Or: La Règle des Tiers", level: 3 },
88
88
  {
89
89
  type: 'paragraph',
90
- html: 'La regle classique de gestion du carburant en nautisme divise le reservoir en trois parties egales pour garantir toujours une marge de securite :',
90
+ html: 'La règle classique de gestion du carburant en nautisme divise le réservoir en trois parties égales pour garantir toujours une marge de sécurité:',
91
91
  },
92
92
  {
93
93
  type: 'list',
94
94
  items: [
95
- "<strong>Un tiers pour l'aller :</strong> Le carburant necessaire pour atteindre la destination prevue.",
96
- '<strong>Un tiers pour le retour :</strong> Le carburant pour revenir au port de depart ou au plus proche.',
97
- "<strong>Un tiers de reserve :</strong> La marge de securite en cas d'imprevu, de courants ou de conditions adverses.",
95
+ "<strong>Un tiers pour l'aller:</strong> Le carburant nécessaire pour atteindre la destination prévue.",
96
+ '<strong>Un tiers pour le retour:</strong> Le carburant pour revenir au port de départ ou au plus proche.',
97
+ "<strong>Un tiers de réserve:</strong> La marge de sécurité en cas d'imprévu, de courants ou de conditions adverses.",
98
98
  ],
99
99
  },
100
100
  {
101
101
  type: 'paragraph',
102
- 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%.",
102
+ html: "Dans le calculateur, vous pouvez configurer le pourcentage de réserve selon votre critère, bien que <strong>descendre sous 20% ne soit jamais recommandé</strong>. Avec de grands réservoirs ou des traversées longues, de nombreux skippers expérimentés élèvent cette marge à 30% voire 33%.",
103
103
  },
104
104
  { type: 'title', text: 'Facteurs affectant la Consommation (l/h)', level: 3 },
105
105
  {
106
106
  type: 'paragraph',
107
- 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.",
107
+ html: "La consommation théorique du fabricant est calculée dans des conditions idéales de laboratoire. En pratique, de multiples facteurs modifient la <strong>consommation réelle</strong> de carburant. La vitesse de coque est la plus déterminante: naviguer au-delà de la vitesse économique peut doubler ou tripler la consommation par mille parcouru.",
108
108
  },
109
109
  {
110
110
  type: 'table',
111
- headers: ['Etat de Navigation', "Effet sur l'Autonomie", 'Conseil'],
111
+ headers: ['État de Navigation', "Effet sur l'Autonomie", 'Conseil'],
112
112
  rows: [
113
- ['<strong>Coque Encrassee</strong>', "Reduit l'autonomie jusqu'a 20%", 'Nettoyez la coque avant la saison'],
114
- ['<strong>Courant Contraire</strong>', 'Peut reduire la vitesse effective de 30%', 'Calculez toujours avec la vitesse sur le fond'],
115
- ['<strong>Vent Debout</strong>', 'Augmente la resistance et la consommation de 10-25%', 'Utilisez le facteur petite ou moderee houle'],
116
- ['<strong>Surcharge</strong>', "Augmente le tirant d'eau et la resistance", "Pesez l'equipement avant de calculer"],
113
+ ['<strong>Coque Encrassée</strong>', "Réduit l'autonomie jusqu'à 20%", 'Nettoyez la coque avant la saison'],
114
+ ['<strong>Courant Contraire</strong>', 'Peut réduire la vitesse effective de 30%', 'Calculez toujours avec la vitesse sur le fond'],
115
+ ['<strong>Vent Debout</strong>', 'Augmente la résistance et la consommation de 10-25%', 'Utilisez le facteur petite ou modérée houle'],
116
+ ['<strong>Surcharge</strong>', "Augmente le tirant d'eau et la résistance", "Pesez l'équipement avant de calculer"],
117
117
  ],
118
118
  },
119
119
  { type: 'title', text: "Glossaire Technique d'Autonomie", level: 3 },
120
120
  {
121
121
  type: 'glossary',
122
122
  items: [
123
- { 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." },
124
- { 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.' },
125
- { 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." },
126
- { 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." },
123
+ { term: 'Performance (L/NM)', definition: "Litres de carburant consommés par mille nautique parcouru. L'indicateur le plus utile pour planifier les traversées car il relie la consommation à la distance réelle." },
124
+ { term: 'Vitesse de Croisière', definition: 'La vitesse optimale à laquelle le moteur offre le meilleur équilibre entre vitesse et consommation. Généralement entre 70% et 80% de la puissance maximale.' },
125
+ { term: 'Réserve Critique', definition: "Le pourcentage du réservoir qui ne doit jamais être consommé. Un minimum de 20% est recommandé pour couvrir les imprévus et empêcher l'air d'entrer dans le circuit de carburant." },
126
+ { term: 'Consommation Spécifique', definition: "Grammes de carburant par kilowattheure de puissance produite (g/kWh). Mesure technique du moteur permettant de comparer l'efficacité entre différents systèmes de propulsion." },
127
127
  ],
128
128
  },
129
129
  { type: 'title', text: 'Le Danger des Boues et du Mouvement', level: 3 },
130
130
  {
131
131
  type: 'paragraph',
132
- 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.',
132
+ html: 'Une source courante de problèmes sur les bateaux avec peu de carburant est les <strong>boues de fond de réservoir</strong>. Quand le niveau baisse trop, les sédiments accumulés pendant des années peuvent atteindre le filtre et le boucher, laissant le moteur sans carburant même si la jauge indique encore quelques litres.',
133
133
  },
134
134
  {
135
135
  type: 'paragraph',
136
- 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.",
136
+ html: "Le mouvement du bateau en mer avec peu de carburant peut aussi causer des problèmes: le liquide oscille avec les vagues et peut momentanément priver la pompe d'alimentation. Maintenir la réserve garantit que cela ne se produise pas à un moment critique comme une manœuvre d'entrée au port.",
137
137
  },
138
138
  {
139
139
  type: 'tip',
140
- title: "Conseil d'Economie de Carburant",
141
- 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.",
140
+ title: "Conseil d'Économie de Carburant",
141
+ html: "Réduire la vitesse de 10-15% par rapport à votre vitesse de croisière habituelle peut améliorer l'efficacité jusqu'à 30%. Si vous avez le temps et que le temps le permet, naviguer plus lentement est toujours la décision la plus économique et la plus sûre.",
142
142
  },
143
- { type: 'title', text: 'Difference entre Miles Nautiques (NM) et Kilometres', level: 3 },
143
+ { type: 'title', text: 'Différence entre Miles Nautiques (NM) et Kilomètres', level: 3 },
144
144
  {
145
145
  type: 'paragraph',
146
- 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).",
146
+ html: "Un <strong>mille nautique</strong> équivaut à 1 852 mètres (1,852 km), et est l'unité de distance universelle en navigation maritime et aéronautique. Il est basé sur l'arc d'une minute de degré géographique, ce qui le rend idéal pour la navigation avec des cartes en coordonnées géographiques. La vitesse en milles nautiques par heure s'appelle un nœud (kn).",
147
147
  },
148
148
  {
149
149
  type: 'comparative',
150
150
  items: [
151
151
  {
152
- title: 'Jauge Analogique a Aiguille',
153
- description: 'Systeme traditionnel a flotteur',
152
+ title: 'Jauge Analogique à Aiguille',
153
+ description: 'Système traditionnel à flotteur',
154
154
  points: [
155
- 'Faible cout et installation simple',
156
- "Ne necessite pas d'electricite pour fonctionner",
157
- 'Imprecision par mer agitee due au mouvement du carburant',
158
- "N'affiche pas la consommation ni l'autonomie estimee",
155
+ 'Faible coût et installation simple',
156
+ "Ne nécessite pas d'électricité pour fonctionner",
157
+ 'Imprécision par mer agitée due au mouvement du carburant',
158
+ "N'affiche pas la consommation ni l'autonomie estimée",
159
159
  ],
160
160
  },
161
161
  {
162
- title: 'Calculateur de Debit Numerique',
163
- description: 'Capteurs electroniques de debit',
162
+ title: 'Calculateur de Débit Numérique',
163
+ description: 'Capteurs électroniques de débit',
164
164
  highlight: true,
165
165
  points: [
166
- 'Precision de 1-2% sur la consommation reelle',
167
- "Affiche l'autonomie, la consommation et le cout en temps reel",
168
- 'Integrable avec chartplotters et NMEA 2000',
169
- 'Necessite un etalonnage initial et une maintenance',
166
+ 'Précision de 1-2% sur la consommation réelle',
167
+ "Affiche l'autonomie, la consommation et le coût en temps réel",
168
+ 'Intégrable avec chartplotters et NMEA 2000',
169
+ 'Nécessite un étalonnage initial et une maintenance',
170
170
  ],
171
171
  },
172
172
  ],
@@ -195,7 +195,7 @@ const schemas: EnduranceLocaleContent['schemas'] = [
195
195
  {
196
196
  '@context': 'https://schema.org',
197
197
  '@type': 'HowTo',
198
- name: `Comment utiliser : ${title}`,
198
+ name: `Comment utiliser: ${title}`,
199
199
  step: howTo.map((s) => ({ '@type': 'HowToStep', name: s.name, text: s.text })),
200
200
  } as WithContext<HowTo>,
201
201
  ];
@@ -25,7 +25,7 @@ const ui: EnduranceUI = {
25
25
  inverseCalcLabel: 'Обратный расчет: Сколько нужно заправить?',
26
26
  desiredDistLabel: 'Целевая дистанция',
27
27
  minFuelLabel: 'Минимум необходимого топлива',
28
- warningLabel: 'Напоминание: Резерв 20% это абсолютный минимум, рекомендуемый для морской безопасности.',
28
+ warningLabel: 'Напоминание: Резерв 20% - это абсолютный минимум, рекомендуемый для морской безопасности.',
29
29
  seaCalm: 'Штиль (1.0x)',
30
30
  seaLight: 'Легкое волнение (+15%)',
31
31
  seaModerate: 'Умеренное волнение (+30%)',
@@ -39,15 +39,15 @@ const faq: EnduranceLocaleContent['faq'] = [
39
39
  },
40
40
  {
41
41
  question: 'Почему в морской навигации рекомендуется резерв 20%?',
42
- answer: 'Резерв 20% это стандарт морской безопасности, гарантирующий наличие достаточного количества топлива на случай непредвиденных обстоятельств: встречных течений, обходов из-за плохой погоды, ошибок в оценке расхода или необходимости оказать помощь другому судну. Многие страховщики и капитании портов считают это обязательным.',
42
+ answer: 'Резерв 20% - это стандарт морской безопасности, гарантирующий наличие достаточного количества топлива на случай непредвиденных обстоятельств: встречных течений, обходов из-за плохой погоды, ошибок в оценке расхода или необходимости оказать помощь другому судну. Многие страховщики и капитании портов считают это обязательным.',
43
43
  },
44
44
  {
45
45
  question: 'Что такое эффективность L/NM и как она влияет на планирование?',
46
- answer: 'Эффективность в литрах на морскую милю (L/NM) это реальный показатель работы двигателя в морских условиях. В отличие от часового расхода, он позволяет точно рассчитать, сколько топлива вам нужно для преодоления определенного расстояния, независимо от вашей скорости.',
46
+ answer: 'Эффективность в литрах на морскую милю (L/NM) - это реальный показатель работы двигателя в морских условиях. В отличие от часового расхода, он позволяет точно рассчитать, сколько топлива вам нужно для преодоления определенного расстояния, независимо от вашей скорости.',
47
47
  },
48
48
  {
49
49
  question: 'Как состояние моря влияет на реальный расход топлива?',
50
- answer: 'Состояние моря увеличивает расход, так как корпус судна работает интенсивнее, преодолевая сопротивление воды и ветра. При легком волнении расход увеличивается на 15%, при умеренном на 30%, а в шторм он может вырасти на 60% и более. Игнорирование этого фактора может привести к тому, что судно останется без топлива до достижения порта.',
50
+ answer: 'Состояние моря увеличивает расход, так как корпус судна работает интенсивнее, преодолевая сопротивление воды и ветра. При легком волнении расход увеличивается на 15%, при умеренном - на 30%, а в шторм он может вырасти на 60% и более. Игнорирование этого фактора может привести к тому, что судно останется без топлива до достижения порта.',
51
51
  },
52
52
  ];
53
53
 
@@ -82,7 +82,7 @@ const seo: EnduranceLocaleContent['seo'] = [
82
82
  },
83
83
  {
84
84
  type: 'paragraph',
85
- html: '<strong>Морская автономность</strong> один из самых важных расчетов перед выходом в море на моторном судне. Точное знание того, сколько миль вы можете пройти на имеющемся топливе, это грань между спланированным переходом и чрезвычайной ситуацией в море.',
85
+ html: '<strong>Морская автономность</strong> - один из самых важных расчетов перед выходом в море на моторном судне. Точное знание того, сколько миль вы можете пройти на имеющемся топливе, - это грань между спланированным переходом и чрезвычайной ситуацией в море.',
86
86
  },
87
87
  {
88
88
  type: 'paragraph',
@@ -100,8 +100,8 @@ const seo: EnduranceLocaleContent['seo'] = [
100
100
  {
101
101
  type: 'list',
102
102
  items: [
103
- '<strong>Одна треть на путь «туда»:</strong> Топливо, необходимое для достижения намеченного пункта назначения.',
104
- '<strong>Одна треть на путь «обратно»:</strong> Топливо для возвращения в порт отправления или ближайший доступный порт.',
103
+ '<strong>Одна треть на путь "туда":</strong> Топливо, необходимое для достижения намеченного пункта назначения.',
104
+ '<strong>Одна треть на путь "обратно":</strong> Топливо для возвращения в порт отправления или ближайший доступный порт.',
105
105
  '<strong>Одна треть в качестве резерва:</strong> Запас безопасности на случай непредвиденных обстоятельств, течений или неблагоприятных условий.',
106
106
  ],
107
107
  },
@@ -153,12 +153,12 @@ const seo: EnduranceLocaleContent['seo'] = [
153
153
  },
154
154
  {
155
155
  type: 'paragraph',
156
- html: 'Качка судна в море при малом количестве топлива также может вызвать проблемы: жидкость колеблется вместе с волнами, что может привести к кратковременному «подхвату» воздуха топливным насосом. Наличие резерва гарантирует, что этого не произойдет в критический момент, например, при маневрировании в порту.',
156
+ html: 'Качка судна в море при малом количестве топлива также может вызвать проблемы: жидкость колеблется вместе с волнами, что может привести к кратковременному "подхвату" воздуха топливным насосом. Наличие резерва гарантирует, что этого не произойдет в критический момент, например, при маневрировании в порту.',
157
157
  },
158
158
  {
159
159
  type: 'tip',
160
160
  title: 'Совет по экономии топлива',
161
- html: 'Снижение скорости на 10-15% ниже вашей обычной крейсерской скорости может повысить эффективность до 30%. Если у вас есть время и погода благоприятная, идти медленнее это всегда самое экономичное и безопасное решение.',
161
+ html: 'Снижение скорости на 10-15% ниже вашей обычной крейсерской скорости может повысить эффективность до 30%. Если у вас есть время и погода благоприятная, идти медленнее - это всегда самое экономичное и безопасное решение.',
162
162
  },
163
163
  {
164
164
  type: 'title',
@@ -75,7 +75,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
75
75
  <div class="nc-converter-card">
76
76
  <div class="nc-input-grid">
77
77
  <div class="nc-input-group">
78
- <label>{ui.nmLabel}</label>
78
+ <label for="dist-nm">{ui.nmLabel}</label>
79
79
  <div class="nc-input-wrapper">
80
80
  <input class="nc-elegant-input" type="number" id="dist-nm" step="any" placeholder="0" />
81
81
  <button class="nc-copy-btn" data-copy="dist-nm" title={ui.copyLabel}>
@@ -84,7 +84,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
84
84
  </div>
85
85
  </div>
86
86
  <div class="nc-input-group">
87
- <label>{ui.kmLabel}</label>
87
+ <label for="dist-km">{ui.kmLabel}</label>
88
88
  <div class="nc-input-wrapper">
89
89
  <input class="nc-elegant-input" type="number" id="dist-km" step="any" placeholder="0" />
90
90
  <button class="nc-copy-btn" data-copy="dist-km" title={ui.copyLabel}>
@@ -93,7 +93,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
93
93
  </div>
94
94
  </div>
95
95
  <div class="nc-input-group">
96
- <label>{ui.miLabel}</label>
96
+ <label for="dist-mi">{ui.miLabel}</label>
97
97
  <div class="nc-input-wrapper">
98
98
  <input class="nc-elegant-input" type="number" id="dist-mi" step="any" placeholder="0" />
99
99
  <button class="nc-copy-btn" data-copy="dist-mi" title={ui.copyLabel}>
@@ -102,7 +102,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
102
102
  </div>
103
103
  </div>
104
104
  <div class="nc-input-group">
105
- <label>{ui.cableLabel}</label>
105
+ <label for="dist-cable">{ui.cableLabel}</label>
106
106
  <div class="nc-input-wrapper">
107
107
  <input class="nc-elegant-input" type="number" id="dist-cable" step="any" placeholder="0" />
108
108
  <button class="nc-copy-btn" data-copy="dist-cable" title={ui.copyLabel}>
@@ -118,7 +118,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
118
118
  <div class="nc-converter-card">
119
119
  <div class="nc-input-grid">
120
120
  <div class="nc-input-group">
121
- <label>{ui.knLabel}</label>
121
+ <label for="speed-kn">{ui.knLabel}</label>
122
122
  <div class="nc-input-wrapper">
123
123
  <input class="nc-elegant-input" type="number" id="speed-kn" step="any" placeholder="0" />
124
124
  <button class="nc-copy-btn" data-copy="speed-kn" title={ui.copyLabel}>
@@ -127,7 +127,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
127
127
  </div>
128
128
  </div>
129
129
  <div class="nc-input-group">
130
- <label>{ui.kmhLabel}</label>
130
+ <label for="speed-kmh">{ui.kmhLabel}</label>
131
131
  <div class="nc-input-wrapper">
132
132
  <input class="nc-elegant-input" type="number" id="speed-kmh" step="any" placeholder="0" />
133
133
  <button class="nc-copy-btn" data-copy="speed-kmh" title={ui.copyLabel}>
@@ -136,7 +136,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
136
136
  </div>
137
137
  </div>
138
138
  <div class="nc-input-group">
139
- <label>{ui.msLabel}</label>
139
+ <label for="speed-ms">{ui.msLabel}</label>
140
140
  <div class="nc-input-wrapper">
141
141
  <input class="nc-elegant-input" type="number" id="speed-ms" step="any" placeholder="0" />
142
142
  <button class="nc-copy-btn" data-copy="speed-ms" title={ui.copyLabel}>
@@ -145,7 +145,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
145
145
  </div>
146
146
  </div>
147
147
  <div class="nc-input-group">
148
- <label>{ui.mphLabel}</label>
148
+ <label for="speed-mph">{ui.mphLabel}</label>
149
149
  <div class="nc-input-wrapper">
150
150
  <input class="nc-elegant-input" type="number" id="speed-mph" step="any" placeholder="0" />
151
151
  <button class="nc-copy-btn" data-copy="speed-mph" title={ui.copyLabel}>
@@ -168,7 +168,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
168
168
  <div class="nc-converter-card">
169
169
  <div class="nc-input-grid">
170
170
  <div class="nc-input-group">
171
- <label>{ui.brozaLabel}</label>
171
+ <label for="depth-braza">{ui.brozaLabel}</label>
172
172
  <div class="nc-input-wrapper">
173
173
  <input class="nc-elegant-input" type="number" id="depth-braza" step="any" placeholder="0" />
174
174
  <button class="nc-copy-btn" data-copy="depth-braza" title={ui.copyLabel}>
@@ -177,7 +177,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
177
177
  </div>
178
178
  </div>
179
179
  <div class="nc-input-group">
180
- <label>{ui.mLabel}</label>
180
+ <label for="depth-m">{ui.mLabel}</label>
181
181
  <div class="nc-input-wrapper">
182
182
  <input class="nc-elegant-input" type="number" id="depth-m" step="any" placeholder="0" />
183
183
  <button class="nc-copy-btn" data-copy="depth-m" title={ui.copyLabel}>
@@ -186,7 +186,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
186
186
  </div>
187
187
  </div>
188
188
  <div class="nc-input-group">
189
- <label>{ui.ftLabel}</label>
189
+ <label for="depth-ft">{ui.ftLabel}</label>
190
190
  <div class="nc-input-wrapper">
191
191
  <input class="nc-elegant-input" type="number" id="depth-ft" step="any" placeholder="0" />
192
192
  <button class="nc-copy-btn" data-copy="depth-ft" title={ui.copyLabel}>
@@ -202,7 +202,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
202
202
  <div class="nc-converter-card">
203
203
  <div class="nc-input-grid">
204
204
  <div class="nc-input-group">
205
- <label>{ui.mbarLabel}</label>
205
+ <label for="pres-mbar">{ui.mbarLabel}</label>
206
206
  <div class="nc-input-wrapper">
207
207
  <input class="nc-elegant-input" type="number" id="pres-mbar" step="any" placeholder="1013" />
208
208
  <button class="nc-copy-btn" data-copy="pres-mbar" title={ui.copyLabel}>
@@ -211,7 +211,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
211
211
  </div>
212
212
  </div>
213
213
  <div class="nc-input-group">
214
- <label>{ui.mmhgLabel}</label>
214
+ <label for="pres-mmhg">{ui.mmhgLabel}</label>
215
215
  <div class="nc-input-wrapper">
216
216
  <input class="nc-elegant-input" type="number" id="pres-mmhg" step="any" placeholder="760" />
217
217
  <button class="nc-copy-btn" data-copy="pres-mmhg" title={ui.copyLabel}>
@@ -220,7 +220,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
220
220
  </div>
221
221
  </div>
222
222
  <div class="nc-input-group">
223
- <label>{ui.inhgLabel}</label>
223
+ <label for="pres-inhg">{ui.inhgLabel}</label>
224
224
  <div class="nc-input-wrapper">
225
225
  <input class="nc-elegant-input" type="number" id="pres-inhg" step="any" placeholder="29.92" />
226
226
  <button class="nc-copy-btn" data-copy="pres-inhg" title={ui.copyLabel}>
@@ -229,7 +229,7 @@ const allBeaufort = { es: beaufortEs, en: beaufortEn, fr: beaufortFr };
229
229
  </div>
230
230
  </div>
231
231
  <div class="nc-input-group">
232
- <label>{ui.atmLabel}</label>
232
+ <label for="pres-atm">{ui.atmLabel}</label>
233
233
  <div class="nc-input-wrapper">
234
234
  <input class="nc-elegant-input" type="number" id="pres-atm" step="any" placeholder="1" />
235
235
  <button class="nc-copy-btn" data-copy="pres-atm" title={ui.copyLabel}>