@jjlmoya/utils-chrono 1.8.0 → 1.10.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 (57) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +4 -0
  3. package/src/entries.ts +7 -1
  4. package/src/tests/locale_completeness.test.ts +1 -1
  5. package/src/tests/tool_validation.test.ts +1 -1
  6. package/src/tool/sidereal-time-tracker/bibliography.astro +16 -0
  7. package/src/tool/sidereal-time-tracker/bibliography.ts +16 -0
  8. package/src/tool/sidereal-time-tracker/client.ts +278 -0
  9. package/src/tool/sidereal-time-tracker/component.astro +15 -0
  10. package/src/tool/sidereal-time-tracker/components/SiderealPanel.astro +197 -0
  11. package/src/tool/sidereal-time-tracker/entry.ts +51 -0
  12. package/src/tool/sidereal-time-tracker/helpers.ts +80 -0
  13. package/src/tool/sidereal-time-tracker/i18n/de.ts +93 -0
  14. package/src/tool/sidereal-time-tracker/i18n/en.ts +93 -0
  15. package/src/tool/sidereal-time-tracker/i18n/es.ts +93 -0
  16. package/src/tool/sidereal-time-tracker/i18n/fr.ts +93 -0
  17. package/src/tool/sidereal-time-tracker/i18n/id.ts +93 -0
  18. package/src/tool/sidereal-time-tracker/i18n/it.ts +93 -0
  19. package/src/tool/sidereal-time-tracker/i18n/ja.ts +93 -0
  20. package/src/tool/sidereal-time-tracker/i18n/ko.ts +93 -0
  21. package/src/tool/sidereal-time-tracker/i18n/nl.ts +93 -0
  22. package/src/tool/sidereal-time-tracker/i18n/pl.ts +93 -0
  23. package/src/tool/sidereal-time-tracker/i18n/pt.ts +93 -0
  24. package/src/tool/sidereal-time-tracker/i18n/ru.ts +93 -0
  25. package/src/tool/sidereal-time-tracker/i18n/sv.ts +93 -0
  26. package/src/tool/sidereal-time-tracker/i18n/tr.ts +93 -0
  27. package/src/tool/sidereal-time-tracker/i18n/zh.ts +93 -0
  28. package/src/tool/sidereal-time-tracker/index.ts +11 -0
  29. package/src/tool/sidereal-time-tracker/seo.astro +16 -0
  30. package/src/tool/sidereal-time-tracker/sidereal-time-tracker.css +257 -0
  31. package/src/tool/telemeter-calculator/audio.ts +59 -0
  32. package/src/tool/telemeter-calculator/bibliography.astro +16 -0
  33. package/src/tool/telemeter-calculator/bibliography.ts +16 -0
  34. package/src/tool/telemeter-calculator/client.ts +269 -0
  35. package/src/tool/telemeter-calculator/component.astro +15 -0
  36. package/src/tool/telemeter-calculator/components/TelemeterPanel.astro +224 -0
  37. package/src/tool/telemeter-calculator/entry.ts +53 -0
  38. package/src/tool/telemeter-calculator/helpers.ts +80 -0
  39. package/src/tool/telemeter-calculator/i18n/de.ts +57 -0
  40. package/src/tool/telemeter-calculator/i18n/en.ts +114 -0
  41. package/src/tool/telemeter-calculator/i18n/es.ts +114 -0
  42. package/src/tool/telemeter-calculator/i18n/fr.ts +57 -0
  43. package/src/tool/telemeter-calculator/i18n/id.ts +57 -0
  44. package/src/tool/telemeter-calculator/i18n/it.ts +57 -0
  45. package/src/tool/telemeter-calculator/i18n/ja.ts +57 -0
  46. package/src/tool/telemeter-calculator/i18n/ko.ts +57 -0
  47. package/src/tool/telemeter-calculator/i18n/nl.ts +57 -0
  48. package/src/tool/telemeter-calculator/i18n/pl.ts +57 -0
  49. package/src/tool/telemeter-calculator/i18n/pt.ts +57 -0
  50. package/src/tool/telemeter-calculator/i18n/ru.ts +57 -0
  51. package/src/tool/telemeter-calculator/i18n/sv.ts +57 -0
  52. package/src/tool/telemeter-calculator/i18n/tr.ts +57 -0
  53. package/src/tool/telemeter-calculator/i18n/zh.ts +57 -0
  54. package/src/tool/telemeter-calculator/index.ts +11 -0
  55. package/src/tool/telemeter-calculator/seo.astro +16 -0
  56. package/src/tool/telemeter-calculator/telemeter-calculator.css +856 -0
  57. package/src/tools.ts +4 -0
@@ -0,0 +1,80 @@
1
+ import type { WithContext, Thing } from 'schema-dts';
2
+ import type { FAQItem, HowToStep } from '../../types';
3
+
4
+ export function getSpeedOfSound(tempCelsius: number): number {
5
+ return 331.3 + 0.6 * tempCelsius;
6
+ }
7
+
8
+ export function formatDistance(
9
+ elapsedTime: number,
10
+ tempCelsius: number,
11
+ unitSystem: string
12
+ ): { primary: string; secondary: string; timeText: string } {
13
+ const speed = getSpeedOfSound(tempCelsius);
14
+ const distM = speed * elapsedTime;
15
+ const timeText = `${elapsedTime.toFixed(2)} ${elapsedTime === 1 ? 'second' : 'seconds'}`;
16
+
17
+ if (unitSystem === 'metric') {
18
+ const distKm = distM / 1000;
19
+ return {
20
+ primary: `${distKm.toFixed(2)} km`,
21
+ secondary: `${distM.toFixed(0)} m`,
22
+ timeText
23
+ };
24
+ } else {
25
+ const distFt = distM * 3.28084;
26
+ const distMi = distFt / 5280;
27
+ return {
28
+ primary: `${distMi.toFixed(2)} mi`,
29
+ secondary: `${distFt.toFixed(0)} ft`,
30
+ timeText
31
+ };
32
+ }
33
+ }
34
+
35
+ function buildFAQ(faq: FAQItem[]): WithContext<Thing> {
36
+ return {
37
+ '@context': 'https://schema.org',
38
+ '@type': 'FAQPage',
39
+ 'mainEntity': faq.map((f) => ({
40
+ '@type': 'Question',
41
+ 'name': f.question,
42
+ 'acceptedAnswer': {
43
+ '@type': 'Answer',
44
+ 'text': f.answer,
45
+ },
46
+ })),
47
+ } as unknown as WithContext<Thing>;
48
+ }
49
+
50
+ function buildApp(title: string): WithContext<Thing> {
51
+ return {
52
+ '@context': 'https://schema.org',
53
+ '@type': 'SoftwareApplication',
54
+ 'name': title,
55
+ 'operatingSystem': 'All',
56
+ 'applicationCategory': 'UtilitiesApplication',
57
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.',
58
+ } as unknown as WithContext<Thing>;
59
+ }
60
+
61
+ function buildHowTo(title: string, howTo: HowToStep[]): WithContext<Thing> {
62
+ return {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ 'name': title,
66
+ 'step': howTo.map((h) => ({
67
+ '@type': 'HowToStep',
68
+ 'name': h.name,
69
+ 'text': h.text,
70
+ })),
71
+ } as unknown as WithContext<Thing>;
72
+ }
73
+
74
+ export function buildSchemas(
75
+ title: string,
76
+ faq: FAQItem[],
77
+ howTo: HowToStep[]
78
+ ): WithContext<Thing>[] {
79
+ return [buildFAQ(faq), buildApp(title), buildHowTo(title, howTo)];
80
+ }
@@ -0,0 +1,57 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
7
+ slug: 'telemeterschritt-rechner',
8
+ title: 'Telemeter Rechner: Verwendung eines Telemeters auf einer Uhr',
9
+ description: 'Erfahren Sie, wie Sie eine Telemeter-Lünette verwenden. Berechnen Sie die Entfernung vom Blitz zum Donner basierend auf der Lufttemperatur.',
10
+ ui: {
11
+ title: 'Telemeter Rechner',
12
+ triggerFlash: 'Blitz Auslösen',
13
+ triggerSound: 'Ton Auslösen',
14
+ stop: 'Stoppen',
15
+ reset: 'Zurücksetzen',
16
+ settings: 'Einstellungen',
17
+ unitSystem: 'Einheitensystem',
18
+ metric: 'Metrisch (km)',
19
+ imperial: 'Imperial (Meilen)',
20
+ temperature: 'Lufttemperatur',
21
+ speedOfSound: 'Schallgeschwindigkeit',
22
+ distanceResult: 'Gemessene Entfernung',
23
+ elapsedTime: 'Verstrichene Zeit',
24
+ historyTitle: 'Messungsverlauf',
25
+ noHistory: 'Noch keine Messungen. Starten Sie oben eine Berechnung!',
26
+ sec: 's',
27
+ km: 'km',
28
+ m: 'm',
29
+ mi: 'mi',
30
+ ft: 'ft',
31
+ step1: 'Klicken Sie auf den Drücker bei 2 Uhr oder auf "Blitz Auslösen", sobald Sie den Blitz sehen.',
32
+ step2: 'Klicken Sie erneut oder auf "Ton Auslösen", wenn Sie den Donner hören.',
33
+ step3: 'Lesen Sie die Entfernung an der Stelle ab, an der der Sekundenzeiger auf der Telemeter-Lünette stoppt.',
34
+ tipTitle: 'Profi-Tipp',
35
+ tipContent: 'Warme Luft leitet Schall schneller als kalte Luft. Die Anpassung der Temperatur stellt sicher, dass die Entfernungsberechnung der Physik Ihrer Umgebung entspricht.',
36
+ },
37
+ seo: [
38
+ { type: 'title', text: 'Was ist eine Telemeter-Lünette auf einer Uhr?', level: 2 },
39
+ { type: 'paragraph', html: 'Ein Telemeter ist eine Skala, die auf das Zifferblatt oder die Lünette einer Chronographenuhr gedruckt ist. Sie ermöglicht es dem Träger, die ungefähre Entfernung zu einem entfernten Ereignis zu berechnen, das sowohl gesehen als auch gehört werden kann (z. B. ein Blitz, ein Feuerwerk oder eine Explosion).' },
40
+ ],
41
+ faq: [
42
+ {
43
+ question: 'Wie verwende ich eine Uhr mit Telemeter-Skala?',
44
+ answer: 'Starten Sie den Chronographen, wenn Sie das Ereignis sehen (z. B. den Blitz). Stoppen Sie ihn, sobald Sie den Ton hören (den Donner). Der Sekundenzeiger zeigt auf die Entfernung auf der Lünette.',
45
+ },
46
+ ],
47
+ bibliography,
48
+ howTo: [
49
+ {
50
+ name: 'Einheiten und Umgebung konfigurieren',
51
+ text: 'Wählen Sie Ihr bevorzugtes Einheitensystem und stellen Sie die aktuelle Lufttemperatur an Ihrem Standort ein.',
52
+ },
53
+ ],
54
+ schemas: [],
55
+ };
56
+
57
+ content.schemas = buildSchemas(content.title, content.faq, content.howTo);
@@ -0,0 +1,114 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: 'What is a telemeter bezel used for on a watch?',
9
+ answer: 'It is used to calculate the distance between the watch wearer and an event that is both visible and audible. Historically, it was used in military operations to measure the distance to enemy artillery, and is now popular for measuring the distance of lightning and storms.',
10
+ },
11
+ {
12
+ question: 'How do you calculate lightning distance with a watch telemeter?',
13
+ answer: 'Start the chronograph when you see a lightning flash. Stop it when you hear the thunder. Read the number on the telemeter bezel pointed to by the seconds hand to find the distance (usually in kilometers or miles).',
14
+ },
15
+ {
16
+ question: 'What is the difference between a tachymeter and a telemeter bezel?',
17
+ answer: 'A tachymeter scale measures speed based on elapsed time over a known distance (like 1 kilometer). A telemeter scale measures distance based on elapsed time and the known speed of sound in air.',
18
+ },
19
+ {
20
+ question: 'How accurate is a watch telemeter scale?',
21
+ answer: 'Most watch telemeters are calibrated for standard atmospheric conditions at 20°C (68°F). Since temperature alters the speed of sound, measurements will have minor errors on cold or hot days. This digital calculator solves this by compensating for local ambient temperature.',
22
+ },
23
+ {
24
+ question: 'Can you use a telemeter in water?',
25
+ answer: 'No, standard watch telemeter scales are calibrated specifically for the speed of sound in air. Sound travels more than four times faster in water, so the printed bezel scale would be highly inaccurate underwater.',
26
+ },
27
+ ];
28
+
29
+ const howTo = [
30
+ {
31
+ name: 'Configure Units and Environment',
32
+ text: 'Select your preferred units (metric or imperial) and set the current ambient air temperature of your location.',
33
+ },
34
+ {
35
+ name: 'Trigger the Chrono on Flash',
36
+ text: 'Click the "Trigger Flash" action button or the 2 o\'clock chronograph pusher when you see the lightning flash.',
37
+ },
38
+ {
39
+ name: 'Trigger the Chrono on Sound',
40
+ text: 'Click "Trigger Sound" or the 2 o\'clock pusher again the moment you hear the thunder clap.',
41
+ },
42
+ {
43
+ name: 'Read Your Distance',
44
+ text: 'Read the calculated distance on the results display or directly from the second hand positioning on the watch bezel.',
45
+ },
46
+ ];
47
+
48
+ const title = 'Telemeter Bezel Calculator: How to Use a Watch Telemeter';
49
+
50
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
51
+ slug: 'telemeter-calculator',
52
+ title,
53
+ description: 'Learn how to use a telemeter watch bezel. Calculate distance from lightning to thunder or sound and flash events with automatic air temperature compensation.',
54
+ ui: {
55
+ title: 'Telemeter Bezel Calculator',
56
+ triggerFlash: 'Trigger Flash',
57
+ triggerSound: 'Trigger Sound',
58
+ stop: 'Stop',
59
+ reset: 'Reset',
60
+ settings: 'Settings',
61
+ unitSystem: 'Unit System',
62
+ metric: 'Metric (km)',
63
+ imperial: 'Imperial (miles)',
64
+ temperature: 'Air Temperature',
65
+ speedOfSound: 'Speed of Sound',
66
+ distanceResult: 'Measured Distance',
67
+ elapsedTime: 'Elapsed Time',
68
+ historyTitle: 'Measurement History',
69
+ noHistory: 'No measurements yet. Start a calculation above!',
70
+ sec: 's',
71
+ km: 'km',
72
+ m: 'm',
73
+ mi: 'mi',
74
+ ft: 'ft',
75
+ step1: 'Click the 2 o\'clock pusher or "Trigger Flash" when you see the visual event (e.g. lightning).',
76
+ step2: 'Click it again or click "Trigger Sound" when you hear the acoustic event (e.g. thunder).',
77
+ step3: 'Read the distance where the sweep hand stops on the telemeter bezel.',
78
+ tipTitle: 'Pro Tip',
79
+ tipContent: 'Warm air conducts sound faster than cold air. Adjusting the ambient temperature ensures the distance matches the physical acoustics of your environment.',
80
+ },
81
+ seo: [
82
+ { type: 'title', text: 'What is a Telemeter Watch Bezel?', level: 2 },
83
+ { type: 'paragraph', html: 'A telemeter is a scale printed on a chronograph watch dial or bezel. It allows the wearer to calculate the approximate distance to a remote event that can be both seen and heard (such as lightning, fireworks, or an explosion). By measuring the elapsed time between the visual cue (flash) and the auditory cue (sound), the telemeter scale reads the distance directly.' },
84
+ { type: 'title', text: 'How to Use a Watch Telemeter Scale', level: 3 },
85
+ {
86
+ type: 'glossary', items: [
87
+ { term: 'Step 1: Start the Chronograph', definition: 'Start your watch\'s stopwatch the moment you see the visual trigger, such as a lightning flash or muzzle flare.' },
88
+ { term: 'Step 2: Stop the Chronograph', definition: 'Stop the stopwatch the instant you hear the accompanying sound, such as the thunderclap or explosion boom.' },
89
+ { term: 'Step 3: Read the Scale', definition: 'Look at where the chronograph second hand is pointing on the outer telemeter scale. That number is your distance in kilometers or miles.' },
90
+ ]
91
+ },
92
+ { type: 'title', text: 'The Physics of the Lightning-to-Thunder Calculation', level: 3 },
93
+ { type: 'paragraph', html: 'Since light travels at approximately 300,000 km/s, you see the flash instantly. Sound, however, is much slower, traveling through the atmosphere at about 343 meters per second (at 20°C / 68°F). A standard telemeter watch scale is calibrated with 1 kilometer at 2.91 seconds, and 1 mile at 4.69 seconds. This calculator refines this math by adjusting the speed of sound based on local air temperature, which traditional watch dials cannot do.' },
94
+ { type: 'title', text: 'Telemeter vs Tachymeter: What is the Difference?', level: 3 },
95
+ { type: 'paragraph', html: 'While both scales are found on chronograph watches, they serve opposite purposes. A <strong>tachymeter</strong> measures speed over a fixed distance (e.g., how fast you are going over 1 mile). A <strong>telemeter</strong> measures distance over a variable time (e.g., how far away the lightning strike is based on sound travel time). Telemeters are marked with smaller, evenly distributed numbers (typically from 1 to 20), whereas tachymeters start at 60 and go up to 400 or 500.' },
96
+ { type: 'title', text: 'Distance vs Seconds Reference Table', level: 3 },
97
+ {
98
+ type: 'table', headers: ['Elapsed Time', 'Distance (Kilometers)', 'Distance (Miles)', 'Acoustic Speed of Sound'], rows: [
99
+ ['1.0 s', '0.34 km', '0.21 mi', '343.3 m/s (at 20°C)'],
100
+ ['2.9 s', '1.00 km', '0.62 mi', '343.3 m/s (at 20°C)'],
101
+ ['4.7 s', '1.61 km', '1.00 mi', '343.3 m/s (at 20°C)'],
102
+ ['5.8 s', '2.00 km', '1.24 mi', '343.3 m/s (at 20°C)'],
103
+ ['10.0 s', '3.43 km', '2.13 mi', '343.3 m/s (at 20°C)'],
104
+ ['15.0 s', '5.15 km', '3.20 mi', '343.3 m/s (at 20°C)'],
105
+ ['29.1 s', '10.00 km', '6.21 mi', '343.3 m/s (at 20°C)'],
106
+ ]
107
+ },
108
+ { type: 'diagnostic', variant: 'info', title: 'Why Temperature Matters', icon: 'mdi:information', badge: 'ACCURACY', html: 'Sound travels faster in warm air because the molecules are vibrating with more kinetic energy. At freezing temperatures (0°C / 32°F), sound travels at 331.3 m/s, whereas on a hot summer day (35°C / 95°F) it speeds up to 352.3 m/s. Adjusting the temperature slider in our tool corrects this discrepancy for accurate measurements.' },
109
+ ],
110
+ faq,
111
+ bibliography,
112
+ howTo,
113
+ schemas: buildSchemas(title, faq, howTo),
114
+ };
@@ -0,0 +1,114 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ const faq = [
7
+ {
8
+ question: '¿Para qué sirve el bisel de telémetro en un reloj?',
9
+ answer: 'Sirve para calcular la distancia entre el usuario del reloj y un suceso que es visible y audible. Históricamente, se usaba en operaciones militares para medir la distancia de la artillería enemiga, y hoy es popular para medir la distancia de tormentas y rayos.',
10
+ },
11
+ {
12
+ question: '¿Cómo se calcula la distancia de un rayo con un reloj con telémetro?',
13
+ answer: 'Inicia el cronógrafo al ver el destello de un rayo. Deténlo al escuchar el trueno. Lee el número en el bisel de telémetro señalado por la manecilla de los segundos para conocer la distancia (habitualmente en kilómetros o millas).',
14
+ },
15
+ {
16
+ question: '¿Cuál es la diferencia entre un bisel taquimétrico y uno telemétrico?',
17
+ answer: 'Un taquímetro mide la velocidad en base al tiempo transcurrido sobre una distancia conocida (como 1 kilómetro). Un telémetro mide la distancia en base al tiempo transcurrido y la velocidad conocida del sonido en el aire.',
18
+ },
19
+ {
20
+ question: '¿Qué tan precisa es la escala de telémetro de un reloj?',
21
+ answer: 'La mayoría de telémetros mecánicos están calibrados para condiciones estándar a 20 °C. Como la temperatura cambia la velocidad del sonido, la medición tendrá pequeños errores en días fríos o calurosos. Esta calculadora digital corrige esa desviación mediante la temperatura ambiente.',
22
+ },
23
+ {
24
+ question: '¿Se puede usar el telémetro en el agua?',
25
+ answer: 'No, las escalas de telémetro de los relojes están calibradas específicamente para la velocidad del sonido en el aire. El sonido viaja más de cuatro veces más rápido en el agua, por lo que la escala impresa sería sumamente inexacta bajo el agua.',
26
+ },
27
+ ];
28
+
29
+ const howTo = [
30
+ {
31
+ name: 'Configura las unidades y el entorno',
32
+ text: 'Selecciona las unidades de tu preferencia (métrica o imperial) y ajusta la temperatura ambiente de tu ubicación.',
33
+ },
34
+ {
35
+ name: 'Inicia en el destello',
36
+ text: 'Pulsa el botón de disparo "Disparar Destello" o el pulsador de las 2 en punto en el momento en que veas el rayo.',
37
+ },
38
+ {
39
+ name: 'Detén en el sonido',
40
+ text: 'Pulsa el botón "Disparar Sonido" o el pulsador de las 2 en punto de nuevo en el instante en que escuches el trueno.',
41
+ },
42
+ {
43
+ name: 'Lee la distancia',
44
+ text: 'Lee la distancia calculada en el panel de resultados o directamente de la posición de la manecilla en el bisel del reloj.',
45
+ },
46
+ ];
47
+
48
+ const title = 'Calculadora de Telémetro: Cómo usar el telémetro de un reloj';
49
+
50
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
51
+ slug: 'calculadora-telemetrica',
52
+ title,
53
+ description: 'Aprende a usar el bisel de telémetro de un reloj. Calcula la distancia de un rayo al trueno o de cualquier destello y sonido con compensación de temperatura.',
54
+ ui: {
55
+ title: 'Calculadora de Telémetro',
56
+ triggerFlash: 'Disparar Destello',
57
+ triggerSound: 'Disparar Sonido',
58
+ stop: 'Detener',
59
+ reset: 'Restablecer',
60
+ settings: 'Ajustes',
61
+ unitSystem: 'Sistema de Unidades',
62
+ metric: 'Métrico (km)',
63
+ imperial: 'Imperial (millas)',
64
+ temperature: 'Temperatura del Aire',
65
+ speedOfSound: 'Velocidad del Sonido',
66
+ distanceResult: 'Distancia Medida',
67
+ elapsedTime: 'Tiempo Transcurrido',
68
+ historyTitle: 'Historial de Mediciones',
69
+ noHistory: '¡No hay mediciones aún. Inicia un cálculo arriba!',
70
+ sec: 's',
71
+ km: 'km',
72
+ m: 'm',
73
+ mi: 'mi',
74
+ ft: 'ft',
75
+ step1: 'Pulsa el botón de las 2 en punto o "Disparar Destello" cuando veas el suceso visual (ej. el rayo).',
76
+ step2: 'Púlsalo de nuevo o haz clic en "Disparar Sonido" al escuchar el suceso acústico (ej. el trueno).',
77
+ step3: 'Lee la distancia donde se detiene la manecilla en el bisel del telémetro.',
78
+ tipTitle: 'Consejo Pro',
79
+ tipContent: 'El aire caliente transmite el sonido más rápido que el aire frío. Ajustar la temperatura ambiente asegura que el cálculo coincida con la acústica real de tu entorno.',
80
+ },
81
+ seo: [
82
+ { type: 'title', text: '¿Qué es el bisel de telémetro de un reloj?', level: 2 },
83
+ { type: 'paragraph', html: 'Un telémetro es una escala graduada en la esfera o el bisel de un reloj cronógrafo. Permite al usuario calcular la distancia aproximada a un suceso remoto que puede verse y oírse (como un rayo, fuegos artificiales o una explosión). Al medir el tiempo transcurrido entre el destello visual y el sonido auditivo, la escala del telémetro indica directamente la distancia.' },
84
+ { type: 'title', text: 'Cómo usar la escala de telémetro de un reloj', level: 3 },
85
+ {
86
+ type: 'glossary', items: [
87
+ { term: 'Paso 1: Inicia el cronógrafo', definition: 'Inicia el segundero del cronógrafo en el momento preciso en que veas la señal visual, como el relámpago de un rayo.' },
88
+ { term: 'Paso 2: Detén el cronógrafo', definition: 'Detén el cronógrafo en el instante en que escuches el sonido asociado, como el estallido del trueno.' },
89
+ { term: 'Paso 3: Lee la escala', definition: 'Observa dónde apunta la manecilla de los segundos en la escala exterior del telémetro. Ese número indica la distancia en kilómetros o millas.' },
90
+ ]
91
+ },
92
+ { type: 'title', text: 'La física detrás del cálculo de distancia de rayos', level: 3 },
93
+ { type: 'paragraph', html: 'Dado que la luz viaja a unos 300,000 km/s, vemos el destello de forma instantánea. El sonido viaja mucho más lento, a unos 343 metros por segundo en el aire a 20 °C. Las escalas mecánicas estándar están calibradas a una velocidad fija, pero nuestra calculadora digital ajusta la velocidad del sonido según la temperatura ambiente para máxima precisión.' },
94
+ { type: 'title', text: 'Telémetro vs. Taquímetro: ¿Cuál es la diferencia?', level: 3 },
95
+ { type: 'paragraph', html: 'Un <strong>taquímetro</strong> sirve para medir la velocidad promedio sobre una distancia fija (por ejemplo, velocidad en 1 km). Un <strong>telémetro</strong> mide la distancia recorrida por el sonido en un tiempo variable. Los números del telémetro suelen ser bajos y espaciados (del 1 al 20), a diferencia de la escala del taquímetro que comienza en 60 y sube hasta 400 o 500.' },
96
+ { type: 'title', text: 'Tabla de referencia de segundos frente a distancia', level: 3 },
97
+ {
98
+ type: 'table', headers: ['Tiempo Transcurrido', 'Distancia (Kilómetros)', 'Distancia (Millas)', 'Velocidad del Sonido'], rows: [
99
+ ['1.0 s', '0.34 km', '0.21 mi', '343.3 m/s (a 20 °C)'],
100
+ ['2.9 s', '1.00 km', '0.62 mi', '343.3 m/s (a 20 °C)'],
101
+ ['4.7 s', '1.61 km', '1.00 mi', '343.3 m/s (a 20 °C)'],
102
+ ['5.8 s', '2.00 km', '1.24 mi', '343.3 m/s (a 20 °C)'],
103
+ ['10.0 s', '3.43 km', '2.13 mi', '343.3 m/s (a 20 °C)'],
104
+ ['15.0 s', '5.15 km', '3.20 mi', '343.3 m/s (a 20 °C)'],
105
+ ['29.1 s', '10.00 km', '6.21 mi', '343.3 m/s (a 20 °C)'],
106
+ ]
107
+ },
108
+ { type: 'diagnostic', variant: 'info', title: 'Por qué importa la temperatura', icon: 'mdi:information', badge: 'PRECISIÓN', html: 'El sonido viaja más rápido en el aire caliente porque las moléculas vibran con mayor energía cinética. A temperaturas de congelación (0 °C), el sonido viaja a 331,3 m/s, mientras que en un día caluroso de verano (35 °C) se acelera hasta los 352,3 m/s. Ajustar el deslizador de temperatura en nuestra herramienta corrige esta desviación.' },
109
+ ],
110
+ faq,
111
+ bibliography,
112
+ howTo,
113
+ schemas: buildSchemas(title, faq, howTo),
114
+ };
@@ -0,0 +1,57 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
7
+ slug: 'calculateur-telemetre',
8
+ title: 'Calculateur de Télémètre: Comment utiliser un télémètre de montre',
9
+ description: 'Apprenez à utiliser une lunette de télémètre. Calculez la distance de l\'éclair au tonnerre en fonction de la température de l\'air.',
10
+ ui: {
11
+ title: 'Calculateur de Télémètre',
12
+ triggerFlash: 'Déclencher l\'Éclair',
13
+ triggerSound: 'Déclencher le Son',
14
+ stop: 'Arrêter',
15
+ reset: 'Réinitialiser',
16
+ settings: 'Paramètres',
17
+ unitSystem: 'Système d\'Unités',
18
+ metric: 'Métrique (km)',
19
+ imperial: 'Impérial (milles)',
20
+ temperature: 'Température de l\'Air',
21
+ speedOfSound: 'Vitesse du Son',
22
+ distanceResult: 'Distance Mesurée',
23
+ elapsedTime: 'Temps Écoulé',
24
+ historyTitle: 'Historique des Mesures',
25
+ noHistory: 'Aucune mesure pour l\'instant. Commencez un calcul ci-dessus !',
26
+ sec: 's',
27
+ km: 'km',
28
+ m: 'm',
29
+ mi: 'mi',
30
+ ft: 'ft',
31
+ step1: 'Cliquez sur le poussoir de 2h ou "Déclencher l\'Éclair" dès que vous voyez l\'éclair.',
32
+ step2: 'Cliquez de nouveau ou sur "Déclencher le Son" quand vous entendez le tonnerre.',
33
+ step3: 'Lisez la distance où l\'aiguille des secondes s\'arrête sur la lunette du télémètre.',
34
+ tipTitle: 'Conseil de Pro',
35
+ tipContent: 'L\'air chaud conduit le son plus rapidement que l\'air froid. L\'ajustement de la température garantit des calculs de distance conformes aux lois de la physique.',
36
+ },
37
+ seo: [
38
+ { type: 'title', text: 'Qu\'est-ce qu\'une lunette de télémètre de montre ?', level: 2 },
39
+ { type: 'paragraph', html: 'Un télémètre est une échelle imprimée sur le cadran ou la lunette d\'une montre chronographe. Il permet à l\'utilisateur de calculer la distance approximative d\'un événement à la fois visible et audible (comme un éclair, un feu d\'artifice ou une explosion). En mesurant le temps écoulé entre le signal visuel et le signal sonore, le télémètre indique directement la distance.' },
40
+ ],
41
+ faq: [
42
+ {
43
+ question: 'Comment utiliser une montre avec télémètre ?',
44
+ answer: 'Démarrez le chronographe lorsque vous voyez l\'événement (comme l\'éclair). Arrêtez-le dès que vous entendez le son (le tonnerre). L\'aiguille des secondes indiquera la distance sur la lunette.',
45
+ },
46
+ ],
47
+ bibliography,
48
+ howTo: [
49
+ {
50
+ name: 'Configurer les unités et l\'environnement',
51
+ text: 'Sélectionnez le système métrique ou impérial et réglez la température de l\'air de votre position.',
52
+ },
53
+ ],
54
+ schemas: [],
55
+ };
56
+
57
+ content.schemas = buildSchemas(content.title, content.faq, content.howTo);
@@ -0,0 +1,57 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
7
+ slug: 'kalkulator-telemetri',
8
+ title: 'Kalkulator Telemetri: Cara Menggunakan Telemetri Jam Tangan',
9
+ description: 'Pelajari cara menggunakan bezel telemetri jam tangan. Hitung jarak dari kilat ke guntur berdasarkan suhu udara.',
10
+ ui: {
11
+ title: 'Kalkulator Telemetri',
12
+ triggerFlash: 'Picu Kilat',
13
+ triggerSound: 'Picu Suara',
14
+ stop: 'Hentikan',
15
+ reset: 'Atur Ulang',
16
+ settings: 'Pengaturan',
17
+ unitSystem: 'Sistem Satuan',
18
+ metric: 'Metrik (km)',
19
+ imperial: 'Imperial (mil)',
20
+ temperature: 'Suhu Udara',
21
+ speedOfSound: 'Kecepatan Suara',
22
+ distanceResult: 'Jarak Terukur',
23
+ elapsedTime: 'Waktu Berjalan',
24
+ historyTitle: 'Riwayat Pengukuran',
25
+ noHistory: 'Belum ada pengukuran. Mulai perhitungan di atas!',
26
+ sec: 's',
27
+ km: 'km',
28
+ m: 'm',
29
+ mi: 'mil',
30
+ ft: 'kaki',
31
+ step1: 'Klik tombol di posisi jam 2 atau "Picu Kilat" saat Anda melihat kilatan.',
32
+ step2: 'Klik lagi atau klik "Picu Suara" saat Anda mendengar guntur.',
33
+ step3: 'Baca jarak di mana jarum detik berhenti pada bezel telemetri.',
34
+ tipTitle: 'Tips Pro',
35
+ tipContent: 'Udara hangat menghantarkan suara lebih cepat daripada udara dingin. Menyesuaikan suhu memastikan perhitungan jarak sesuai dengan kondisi lingkungan Anda.',
36
+ },
37
+ seo: [
38
+ { type: 'title', text: 'Apa itu Bezel Telemetri pada Jam Tangan?', level: 2 },
39
+ { type: 'paragraph', html: 'Telemetri adalah skala yang dicetak pada dial atau bezel jam tangan kronograf. Skala ini memungkinkan pengguna menghitung perkiraan jarak ke peristiwa jauh yang dapat dilihat dan didengar (seperti kilat, kembang api, atau ledakan).' },
40
+ ],
41
+ faq: [
42
+ {
43
+ question: 'Bagaimana cara menggunakan bezel telemetri?',
44
+ answer: 'Mulai kronograf saat Anda melihat peristiwa (seperti kilatan). Hentikan saat Anda mendengar suara (guntur). Jarum detik akan menunjuk ke jarak pada skala.',
45
+ },
46
+ ],
47
+ bibliography,
48
+ howTo: [
49
+ {
50
+ name: 'Konfigurasikan Satuan dan Lingkungan',
51
+ text: 'Pilih satuan satuan yang Anda inginkan dan atur suhu udara saat ini di lokasi Anda.',
52
+ },
53
+ ],
54
+ schemas: [],
55
+ };
56
+
57
+ content.schemas = buildSchemas(content.title, content.faq, content.howTo);
@@ -0,0 +1,57 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
7
+ slug: 'calcolatore-telemetro',
8
+ title: 'Calcolatore Telemetro: Come usare il telemetro di un orologio',
9
+ description: 'Scopri come usare la lunetta telemetrica. Calcola la distanza dal fulmine al tuono basandoti sulla temperatura dell\'aria.',
10
+ ui: {
11
+ title: 'Calcolatore Telemetro',
12
+ triggerFlash: 'Attiva Flash',
13
+ triggerSound: 'Attiva Suono',
14
+ stop: 'Ferma',
15
+ reset: 'Ripristina',
16
+ settings: 'Impostazioni',
17
+ unitSystem: 'Sistema di Unità',
18
+ metric: 'Metrico (km)',
19
+ imperial: 'Imperiale (miglia)',
20
+ temperature: 'Temperatura dell\'Aria',
21
+ speedOfSound: 'Velocità del Suono',
22
+ distanceResult: 'Distanza Misurata',
23
+ elapsedTime: 'Tempo Trascorso',
24
+ historyTitle: 'Cronologia delle Misure',
25
+ noHistory: 'Nessuna misura ancora. Avvia un calcolo sopra!',
26
+ sec: 's',
27
+ km: 'km',
28
+ m: 'm',
29
+ mi: 'mi',
30
+ ft: 'ft',
31
+ step1: 'Fai clic sul pulsante a ore 2 o "Attiva Flash" non appena vedi il fulmine.',
32
+ step2: 'Fai clic di nuovo o su "Attiva Suono" quando senti il tuono.',
33
+ step3: 'Leggi la distanza nel punto in cui la lancetta dei secondi si ferma sulla lunetta del telemetro.',
34
+ tipTitle: 'Consiglio da Pro',
35
+ tipContent: 'L\'aria calda conduce il suono più velocemente dell\'aria fredda. La regolazione della temperatura garantisce che il calcolo della distanza rispetti la fisica dell\'ambiente.',
36
+ },
37
+ seo: [
38
+ { type: 'title', text: 'Cos\'è la lunetta telemetrica di un orologio?', level: 2 },
39
+ { type: 'paragraph', html: 'Un telemetro è una scala stampata sul quadrante o sulla lunetta di un cronografo. Consente a chi lo indossa di calcolare la distanza approssimativa da un evento remoto che può essere visto e udito (come fulmini, fuochi d\'artificio o un\'esplosione).' },
40
+ ],
41
+ faq: [
42
+ {
43
+ question: 'Come si usa una scala telemetrica su un orologio?',
44
+ answer: 'Avvia il cronografo quando vedi l\'evento (come il fulmine). Fermalo non appena senti il suono (il tuono). La lancetta dei secondi indicherà la distanza sulla scala della lunetta.',
45
+ },
46
+ ],
47
+ bibliography,
48
+ howTo: [
49
+ {
50
+ name: 'Configurare unità e ambiente',
51
+ text: 'Seleziona il sistema di unità preferito e imposta la temperatura dell\'aria locale.',
52
+ },
53
+ ],
54
+ schemas: [],
55
+ };
56
+
57
+ content.schemas = buildSchemas(content.title, content.faq, content.howTo);
@@ -0,0 +1,57 @@
1
+ import type { ToolLocaleContent } from '../../../types';
2
+ import type { TelemeterCalculatorUI } from '../entry';
3
+ import { bibliography } from '../bibliography';
4
+ import { buildSchemas } from '../helpers';
5
+
6
+ export const content: ToolLocaleContent<TelemeterCalculatorUI> = {
7
+ slug: 'telemeter-calculator',
8
+ title: 'テレメーター計算機:腕時計のテレメーター(測距計)の使い方',
9
+ description: '腕時計のテレメーターベゼルの使い方を学びましょう。気温に基づいて、雷の光から音が聞こえるまでの距離を計算します。',
10
+ ui: {
11
+ title: 'テレメーター計算機',
12
+ triggerFlash: '光のトリガー',
13
+ triggerSound: '音のトリガー',
14
+ stop: 'ストップ',
15
+ reset: 'リセット',
16
+ settings: '設定',
17
+ unitSystem: '単位系',
18
+ metric: 'メートル法 (km)',
19
+ imperial: 'ヤード・ポンド法 (マイル)',
20
+ temperature: '気温',
21
+ speedOfSound: '音速',
22
+ distanceResult: '測定距離',
23
+ elapsedTime: '経過時間',
24
+ historyTitle: '測定履歴',
25
+ noHistory: '履歴がありません。上のボタンから測定を開始してください。',
26
+ sec: '秒',
27
+ km: 'km',
28
+ m: 'm',
29
+ mi: 'マイル',
30
+ ft: 'フィート',
31
+ step1: '稲妻などの光が見えた瞬間に、2時位置のプッシャーまたは「光のトリガー」をクリックします。',
32
+ step2: '雷鳴などの音が聞こえた瞬間に、もう一度クリックするか「音のトリガー」をクリックします。',
33
+ step3: 'テレメーターベゼル上でクロノグラフ秒針が指している距離を読み取ります。',
34
+ tipTitle: 'プロのアドバイス',
35
+ tipContent: '暖かい空気は冷たい空気よりも音を速く伝えます。周囲の気温を調節することで、お使いの環境における物理的な音響に一致した正確な距離計算を行えます。',
36
+ },
37
+ seo: [
38
+ { type: 'title', text: '腕時計のテレメーター(測距計)ベゼルとは?', level: 2 },
39
+ { type: 'paragraph', html: 'テレメーターは、クロノグラフ(ストップウォッチ機能付き腕時計)の文字盤やベゼルに印刷されている目盛りです。光(視覚的なイベント)と音(聴覚的なイベント)の速度差を利用して、対象物までの距離を即座に算出できます。' },
40
+ ],
41
+ faq: [
42
+ {
43
+ question: 'テレメーターベゼルはどのように使いますか?',
44
+ answer: '雷の光などが見えた瞬間にストップウォッチをスタートさせ、音が聞こえた瞬間にストップします。秒針が指しているベゼルの数値が、対象までの距離(キロメートルまたはマイル)になります。',
45
+ },
46
+ ],
47
+ bibliography,
48
+ howTo: [
49
+ {
50
+ name: '単位と環境の設定',
51
+ text: '表示単位(メートルまたはマイル)を選択し、現在の場所の気温を設定します。',
52
+ },
53
+ ],
54
+ schemas: [],
55
+ };
56
+
57
+ content.schemas = buildSchemas(content.title, content.faq, content.howTo);