@jjlmoya/utils-astronomy 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/package.json +59 -58
  2. package/src/category/i18n/de.ts +57 -0
  3. package/src/category/i18n/id.ts +57 -0
  4. package/src/category/i18n/it.ts +57 -0
  5. package/src/category/i18n/ja.ts +57 -0
  6. package/src/category/i18n/ko.ts +57 -0
  7. package/src/category/i18n/nl.ts +57 -0
  8. package/src/category/i18n/pl.ts +57 -0
  9. package/src/category/i18n/pt.ts +57 -0
  10. package/src/category/i18n/ru.ts +57 -0
  11. package/src/category/i18n/sv.ts +57 -0
  12. package/src/category/i18n/tr.ts +57 -0
  13. package/src/category/i18n/zh.ts +57 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/tests/faq_count.test.ts +9 -14
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +42 -0
  18. package/src/tests/no_h1_in_components.test.ts +48 -0
  19. package/src/tests/schemas_fulfillment.test.ts +23 -0
  20. package/src/tests/seo_length.test.ts +3 -38
  21. package/src/tests/title_quality.test.ts +55 -0
  22. package/src/tests/tool_validation.test.ts +5 -5
  23. package/src/tool/bortleVisualizer/component.astro +11 -4
  24. package/src/tool/bortleVisualizer/i18n/de.ts +167 -0
  25. package/src/tool/bortleVisualizer/i18n/en.ts +14 -0
  26. package/src/tool/bortleVisualizer/i18n/es.ts +14 -0
  27. package/src/tool/bortleVisualizer/i18n/fr.ts +13 -0
  28. package/src/tool/bortleVisualizer/i18n/id.ts +167 -0
  29. package/src/tool/bortleVisualizer/i18n/it.ts +167 -0
  30. package/src/tool/bortleVisualizer/i18n/ja.ts +167 -0
  31. package/src/tool/bortleVisualizer/i18n/ko.ts +167 -0
  32. package/src/tool/bortleVisualizer/i18n/nl.ts +167 -0
  33. package/src/tool/bortleVisualizer/i18n/pl.ts +167 -0
  34. package/src/tool/bortleVisualizer/i18n/pt.ts +167 -0
  35. package/src/tool/bortleVisualizer/i18n/ru.ts +167 -0
  36. package/src/tool/bortleVisualizer/i18n/sv.ts +167 -0
  37. package/src/tool/bortleVisualizer/i18n/tr.ts +167 -0
  38. package/src/tool/bortleVisualizer/i18n/zh.ts +167 -0
  39. package/src/tool/bortleVisualizer/index.ts +32 -8
  40. package/src/tool/deepSpaceScope/component.astro +26 -18
  41. package/src/tool/deepSpaceScope/i18n/de.ts +178 -0
  42. package/src/tool/deepSpaceScope/i18n/en.ts +21 -0
  43. package/src/tool/deepSpaceScope/i18n/es.ts +21 -0
  44. package/src/tool/deepSpaceScope/i18n/fr.ts +21 -0
  45. package/src/tool/deepSpaceScope/i18n/id.ts +178 -0
  46. package/src/tool/deepSpaceScope/i18n/it.ts +178 -0
  47. package/src/tool/deepSpaceScope/i18n/ja.ts +178 -0
  48. package/src/tool/deepSpaceScope/i18n/ko.ts +178 -0
  49. package/src/tool/deepSpaceScope/i18n/nl.ts +178 -0
  50. package/src/tool/deepSpaceScope/i18n/pl.ts +178 -0
  51. package/src/tool/deepSpaceScope/i18n/pt.ts +178 -0
  52. package/src/tool/deepSpaceScope/i18n/ru.ts +178 -0
  53. package/src/tool/deepSpaceScope/i18n/sv.ts +178 -0
  54. package/src/tool/deepSpaceScope/i18n/tr.ts +178 -0
  55. package/src/tool/deepSpaceScope/i18n/zh.ts +178 -0
  56. package/src/tool/deepSpaceScope/index.ts +32 -8
  57. package/src/tool/deepSpaceScope/logic.ts +1 -17
  58. package/src/tool/starExposureCalculator/component.astro +8 -2
  59. package/src/tool/starExposureCalculator/i18n/de.ts +163 -0
  60. package/src/tool/starExposureCalculator/i18n/id.ts +163 -0
  61. package/src/tool/starExposureCalculator/i18n/it.ts +163 -0
  62. package/src/tool/starExposureCalculator/i18n/ja.ts +163 -0
  63. package/src/tool/starExposureCalculator/i18n/ko.ts +163 -0
  64. package/src/tool/starExposureCalculator/i18n/nl.ts +163 -0
  65. package/src/tool/starExposureCalculator/i18n/pl.ts +163 -0
  66. package/src/tool/starExposureCalculator/i18n/pt.ts +163 -0
  67. package/src/tool/starExposureCalculator/i18n/ru.ts +163 -0
  68. package/src/tool/starExposureCalculator/i18n/sv.ts +163 -0
  69. package/src/tool/starExposureCalculator/i18n/tr.ts +163 -0
  70. package/src/tool/starExposureCalculator/i18n/zh.ts +163 -0
  71. package/src/tool/starExposureCalculator/index.ts +15 -7
  72. package/src/tool/telescopeResolution/component.astro +26 -26
  73. package/src/tool/telescopeResolution/i18n/de.ts +176 -0
  74. package/src/tool/telescopeResolution/i18n/en.ts +10 -2
  75. package/src/tool/telescopeResolution/i18n/es.ts +8 -0
  76. package/src/tool/telescopeResolution/i18n/fr.ts +9 -1
  77. package/src/tool/telescopeResolution/i18n/id.ts +176 -0
  78. package/src/tool/telescopeResolution/i18n/it.ts +176 -0
  79. package/src/tool/telescopeResolution/i18n/ja.ts +176 -0
  80. package/src/tool/telescopeResolution/i18n/ko.ts +176 -0
  81. package/src/tool/telescopeResolution/i18n/nl.ts +176 -0
  82. package/src/tool/telescopeResolution/i18n/pl.ts +176 -0
  83. package/src/tool/telescopeResolution/i18n/pt.ts +176 -0
  84. package/src/tool/telescopeResolution/i18n/ru.ts +176 -0
  85. package/src/tool/telescopeResolution/i18n/sv.ts +176 -0
  86. package/src/tool/telescopeResolution/i18n/tr.ts +176 -0
  87. package/src/tool/telescopeResolution/i18n/zh.ts +176 -0
  88. package/src/tool/telescopeResolution/index.ts +17 -8
  89. package/src/types.ts +6 -4
@@ -35,7 +35,7 @@ const { ui } = Astro.props;
35
35
  <p id="modal-type" class="modal-type">Type</p>
36
36
  </div>
37
37
  </div>
38
- <button id="close-modal" class="modal-close" aria-label="Cerrar">
38
+ <button id="close-modal" class="modal-close" aria-label={ui.closeLabel}>
39
39
  <Icon name="mdi:close" />
40
40
  </button>
41
41
  </div>
@@ -128,14 +128,20 @@ const { ui } = Astro.props;
128
128
  </div>
129
129
  </div>
130
130
 
131
+ <script define:vars={{ ui }} is:inline>
132
+ window.__deepSpaceUI = ui;
133
+ </script>
134
+
131
135
  <script>
136
+ import type { DeepSpaceObject } from "./index";
132
137
  import {
133
- DEEP_SPACE_OBJECTS,
134
138
  calculateLimitingMagnitude,
135
139
  apertureSliderToMm,
136
140
  } from "./logic";
137
141
 
138
142
  const container = document.getElementById("scope-container");
143
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
144
+ const uiData = (window as any).__deepSpaceUI || {};
139
145
  const canvas = document.getElementById("sky-canvas") as HTMLCanvasElement;
140
146
  const ctx = canvas?.getContext("2d");
141
147
  const objectsLayer = document.getElementById("objects-layer");
@@ -168,7 +174,8 @@ const { ui } = Astro.props;
168
174
  function initObjectsDOM() {
169
175
  if (!objectsLayer) return;
170
176
  objectsLayer.innerHTML = "";
171
- DEEP_SPACE_OBJECTS.forEach((obj, idx) => {
177
+ const objects = uiData.deepSpaceObjects || [];
178
+ objects.forEach((obj: DeepSpaceObject, idx: number) => {
172
179
  const el = document.createElement("div");
173
180
  el.id = `obj-${idx}`;
174
181
  el.className = "scope-object";
@@ -194,13 +201,13 @@ const { ui } = Astro.props;
194
201
  const modalContent = document.getElementById("modal-content");
195
202
  const closeModalBtn = document.getElementById("close-modal");
196
203
 
197
- function openModal(obj: (typeof DEEP_SPACE_OBJECTS)[0]) {
204
+ function openModal(obj: DeepSpaceObject) {
198
205
  if (!modal || !modalContent) return;
199
206
  document.getElementById("modal-title")!.innerText = obj.name;
200
207
  document.getElementById("modal-type")!.innerText = obj.type;
201
208
  document.getElementById("modal-mag")!.innerText = obj.mag.toString();
202
- document.getElementById("modal-az")!.innerText = `Azimuth: ${obj.az}°`;
203
- document.getElementById("modal-alt")!.innerText = `Altitud: ${obj.alt}°`;
209
+ document.getElementById("modal-az")!.innerText = `${uiData.azimuthLabel}: ${obj.az}°`;
210
+ document.getElementById("modal-alt")!.innerText = `${uiData.altitudeLabel}: ${obj.alt}°`;
204
211
  const iconEl = document.getElementById("modal-icon");
205
212
  if (iconEl) {
206
213
  iconEl.innerHTML = `<span class="iconify" data-icon="${obj.icon}" style="font-size:2.5rem;color:${obj.color}"></span>`;
@@ -209,7 +216,7 @@ const { ui } = Astro.props;
209
216
  if (descEl) {
210
217
  descEl.innerText =
211
218
  obj.desc ||
212
- `Un objeto fascinante del espacio profundo. Magnitud ${obj.mag}.`;
219
+ `${uiData.defaultObjDesc} ${obj.mag}.`;
213
220
  }
214
221
  modal.classList.remove("modal-hidden");
215
222
  modalContent.classList.remove("modal-scale-out");
@@ -235,10 +242,10 @@ const { ui } = Astro.props;
235
242
 
236
243
  function updateDisplays(limit: number, apertureMM: number, bortle: number) {
237
244
  document.getElementById("aperture-display")!.innerText = `${apertureMM}mm`;
238
- document.getElementById("bortle-display")!.innerText = `Clase ${bortle}`;
245
+ document.getElementById("bortle-display")!.innerText = `${uiData.bortleClassPrefix} ${bortle}`;
239
246
  if (limitMagDisplay) limitMagDisplay.innerText = limit.toFixed(1);
240
247
  if (azimuthDisplay)
241
- azimuthDisplay.innerText = `AZ: ${Math.round(panAngle)}°`;
248
+ azimuthDisplay.innerText = `${uiData.azimuthLabel}: ${Math.round(panAngle)}°`;
242
249
  if (pollutionLayer) {
243
250
  const opacity = (bortle - 1) * 0.08;
244
251
  pollutionLayer.style.backgroundColor = `rgba(217, 119, 6, ${opacity})`;
@@ -266,7 +273,7 @@ const { ui } = Astro.props;
266
273
 
267
274
  function updateObjectElement(
268
275
  el: HTMLElement,
269
- obj: (typeof DEEP_SPACE_OBJECTS)[0],
276
+ obj: DeepSpaceObject,
270
277
  limit: number,
271
278
  ) {
272
279
  const delta = getShortestDelta(obj.az, panAngle);
@@ -282,7 +289,8 @@ const { ui } = Astro.props;
282
289
  }
283
290
 
284
291
  function renderObjects(limit: number) {
285
- DEEP_SPACE_OBJECTS.forEach((obj, idx) => {
292
+ const objects = uiData.deepSpaceObjects || [];
293
+ objects.forEach((obj: DeepSpaceObject, idx: number) => {
286
294
  const el = document.getElementById(`obj-${idx}`);
287
295
  if (!el) return;
288
296
  if (obj.mag > limit) {
@@ -481,7 +489,7 @@ const { ui } = Astro.props;
481
489
  }
482
490
  }
483
491
 
484
- .scope-object {
492
+ :global(.scope-object) {
485
493
  position: absolute;
486
494
  transform: translate(-50%, -50%);
487
495
  display: flex;
@@ -494,23 +502,23 @@ const { ui } = Astro.props;
494
502
  cursor: pointer;
495
503
  }
496
504
 
497
- .scope-object:hover .scope-obj-icon {
505
+ :global(.scope-object:hover) :global(.scope-obj-icon) {
498
506
  transform: scale(1.25);
499
507
  }
500
508
 
501
- .scope-obj-icon {
509
+ :global(.scope-obj-icon) {
502
510
  font-size: 2rem;
503
511
  transition: transform 0.3s ease;
504
512
  filter: drop-shadow(0 0 8px rgba(255, 255, 255, 0.4));
505
513
  }
506
514
 
507
515
  @media (min-width: 768px) {
508
- .scope-obj-icon {
516
+ :global(.scope-obj-icon) {
509
517
  font-size: 3rem;
510
518
  }
511
519
  }
512
520
 
513
- .scope-obj-label {
521
+ :global(.scope-obj-label) {
514
522
  margin-top: 0.5rem;
515
523
  display: flex;
516
524
  flex-direction: column;
@@ -519,7 +527,7 @@ const { ui } = Astro.props;
519
527
  transition: opacity 0.3s ease;
520
528
  }
521
529
 
522
- .scope-obj-name {
530
+ :global(.scope-obj-name) {
523
531
  font-size: 0.625rem;
524
532
  font-weight: 700;
525
533
  color: var(--on-dark);
@@ -531,7 +539,7 @@ const { ui } = Astro.props;
531
539
  white-space: nowrap;
532
540
  }
533
541
 
534
- .scope-obj-mag {
542
+ :global(.scope-obj-mag) {
535
543
  font-size: 0.5rem;
536
544
  color: rgba(148, 163, 184, 0.8);
537
545
  background: rgba(0, 0, 0, 0.8);
@@ -0,0 +1,178 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { DeepSpaceScopeUI, DeepSpaceScopeLocaleContent } from '../index';
3
+
4
+ const slug = 'telescope-reach';
5
+ const title = 'Teleskop Reichweitenrechner';
6
+ const description = 'Berechnen Sie die Grenzgröße Ihres Teleskops und entdecken Sie, welche Deep-Sky-Objekte mit Ihrer Ausrüstung unter Ihren Himmelsbedingungen sichtbar sind.';
7
+
8
+ const ui: DeepSpaceScopeUI = {
9
+ toolTitle: 'Teleskop-Reichweite',
10
+ apertureLabel: 'Öffnung',
11
+ bortleLabel: 'Himmel (Bortle)',
12
+ limitMagLabel: 'Grenzgröße',
13
+ azimuthLabel: 'AZ',
14
+ dragHint: 'Klicken und ziehen, um den Kosmos zu erkunden (360°)',
15
+ dragHintMobile: 'Ziehen, um 360° zu erkunden',
16
+ planetLabel: 'Planeten',
17
+ starLabel: 'Sterne',
18
+ deepSpaceLabel: 'Deep Sky',
19
+ magnitudeLabel: 'Magnitude',
20
+ coordinatesLabel: 'Koordinaten',
21
+ closeLabel: 'Schließen',
22
+ altitudeLabel: 'Höhe',
23
+ defaultObjDesc: 'Ein faszinierendes Deep-Sky-Objekt. Magnitude',
24
+ bortleClassPrefix: 'Klasse',
25
+ deepSpaceObjects: [
26
+ { name: 'Venus', type: 'Planet', mag: -4.5, az: 270, alt: 30, icon: 'mdi:circle', color: '#fef08a', desc: 'Der hellste Planet am Nachthimmel. Sogar am hellichten Tag sichtbar.' },
27
+ { name: 'Jupiter', type: 'Planet', mag: -2.5, az: 180, alt: 40, icon: 'mdi:circle', color: '#fef9c3', desc: 'Der Riese des Sonnensystems. Seine vier galileischen Monde sind bereits mit einem Fernglas zu sehen.' },
28
+ { name: 'Saturn', type: 'Planet', mag: 0.8, az: 220, alt: 35, icon: 'mdi:circle', color: '#fefce8', desc: 'Seine Ringe sind bereits mit einem 60-mm-Teleskop bei 50-facher Vergrößerung sichtbar.' },
29
+ { name: 'Mars', type: 'Planet', mag: 1.5, az: 150, alt: 25, icon: 'mdi:circle', color: '#f87171', desc: 'Der Rote Planet. Variiert von Magnitude -2,9 in Opposition bis +1,8 in Konjunktion.' },
30
+ { name: 'Sirius', type: 'Star', mag: -1.46, az: 145, alt: 50, icon: 'mdi:star-four-points', color: '#bfdbfe', desc: 'Der hellste Stern am Nachthimmel. Er ist nur 8,6 Lichtjahre entfernt.' },
31
+ { name: 'Canopus', type: 'Star', mag: -0.74, az: 200, alt: 20, icon: 'mdi:star-four-points', color: '#fef9c3', desc: 'Der zweithellste Stern, der auf der Südhalbkugel zur Navigation genutzt wird.' },
32
+ { name: 'Arcturus', type: 'Star', mag: -0.05, az: 60, alt: 55, icon: 'mdi:star-four-points', color: '#fdba74', desc: 'Oranger Riese im Sternbild Bärenhüter. 36 Lichtjahre von der Erde entfernt.' },
33
+ { name: 'Wega', type: 'Star', mag: 0.03, az: 40, alt: 70, icon: 'mdi:star-four-points', color: '#dbeafe', desc: 'Eckpunkt des Sommerdreiecks. Der Referenzstern für Magnitude 0.' },
34
+ { name: 'M42 Orion', type: 'Nebula', mag: 4.0, az: 140, alt: 45, icon: 'mdi:creation', color: '#a5b4fc', desc: 'Der große Orionnebel, 1344 Lichtjahre entfernt. Eine Kinderstube für junge Sterne.' },
35
+ { name: 'M45 Plejaden', type: 'Cluster', mag: 1.6, az: 100, alt: 60, icon: 'mdi:creation', color: '#93c5fd', desc: 'Das Siebengestirn. Mit 444 Lichtjahren der berühmteste offene Sternhaufen am Himmel.' },
36
+ { name: 'M31 Andromeda', type: 'Galaxy', mag: 3.4, az: 30, alt: 50, icon: 'mdi:creation', color: '#d8b4fe', desc: 'Die größte Nachbargalaxie. 2,5 Millionen Lichtjahre entfernt, bei dunklem Himmel mit bloßem Auge sichtbar.' },
37
+ { name: 'M13 Herkules', type: 'Cluster', mag: 5.8, az: 80, alt: 65, icon: 'mdi:creation', color: '#fde047', desc: 'Der große Kugelsternhaufen im Herkules. Enthält 300.000 Sterne in 25.100 Lichtjahren Entfernung.' },
38
+ { name: 'M57 Ringnebel', type: 'Nebula', mag: 8.8, az: 50, alt: 58, icon: 'mdi:creation', color: '#67e8f9', desc: 'Planetarischer Nebel in der Leier. Gasring, der von einem Weißen Zwerg abgestoßen wurde.' },
39
+ { name: 'M81 Bode', type: 'Galaxy', mag: 6.9, az: 340, alt: 55, icon: 'mdi:creation', color: '#c4b5fd', desc: 'Spiralgalaxie im Großen Bären. Steht in gravitativer Wechselwirkung mit M82.' },
40
+ { name: 'Pluto', type: 'Dwarf Planet', mag: 14.3, az: 195, alt: 22, icon: 'mdi:circle-small', color: '#cbd5e1', desc: 'Der berühmteste Zwergplanet. Benötigt ein 250-mm-Teleskop oder größer sowie dunklen Himmel.' },
41
+ ],
42
+ };
43
+
44
+ const faq: DeepSpaceScopeLocaleContent['faq'] = [
45
+ {
46
+ question: 'Was ist die Grenzgröße eines Teleskops?',
47
+ answer: 'Es ist die Magnitude des schwächsten Objekts, das ein Teleskop unter bestimmten Himmelsbedingungen erfassen kann. Sie hängt vom Öffnungsdurchmesser ab (größere Öffnung = mehr gesammeltes Licht) und von der Himmelsqualität (Bortle). Das menschliche Auge erreicht unter optimalen Bedingungen Magnitude 6,5; ein 200-mm-Teleskop kann Magnitude 13-14 erreichen.',
48
+ },
49
+ {
50
+ question: 'Wie beeinflusst die Bortle-Skala, was ich sehen kann?',
51
+ answer: 'Jede Bortle-Stufe reduziert die Sichtbarkeit um etwa 0,5 Magnituden. Ein 200-mm-Teleskop unter Bortle 2 kann Magnitude 14,5 erreichen, aber unter Bortle 7 erreicht dieselbe Öffnung nur Magnitude 11-12. Ein dunkler Himmel vervielfacht die Leistungsfähigkeit jedes Instruments.',
52
+ },
53
+ {
54
+ question: 'Welche Objekte sind aus einer Stadt heraus sichtbar?',
55
+ answer: 'Bei einem Bortle-7-8-Himmel (städtisch) können Sie mit einem 150-mm-Teleskop helle Planeten im Detail, den Mond, helle offene Sternhaufen (M45, M44), Kugelsternhaufen (M13) und einige helle Galaxien wie M31 und M81 sehen, wenn auch ohne viele Details. Schwache Nebel erfordern einen dunkleren Himmel oder spezielle Filter.',
56
+ },
57
+ {
58
+ question: 'Wie viel Öffnung benötige ich, um Farben in Nebeln zu sehen?',
59
+ answer: 'Das menschliche Auge verliert bei schwachem Licht seine Farbwahrnehmung. Um Farben in Emissionsnebeln wie M42 zu sehen, benötigen Sie mindestens 200-250 mm Öffnung und einen Bortle-3-4-Himmel. Mit weniger Öffnung erscheinen Nebel gräulich, obwohl die Astrofotografie selbst mit kleinen Teleskopen spektakuläre Farben einfängt.',
60
+ },
61
+ ];
62
+
63
+ const howTo: DeepSpaceScopeLocaleContent['howTo'] = [
64
+ { name: '1. Öffnung einstellen', text: 'Bewegen Sie den Öffnungsregler, um Ihr Teleskop zu simulieren. Der Bereich reicht von 50 mm (Fernglas) bis 400 mm (fortgeschrittenes Teleskop).' },
65
+ { name: '2. Himmelsqualität anpassen', text: 'Stellen Sie die Bortle-Stufe Ihres üblichen Beobachtungsortes ein, um die reale Grenzgröße zu sehen.' },
66
+ { name: '3. Sternkarte erkunden', text: 'Ziehen Sie das Feld, um die vollen 360° des Himmels zu erkunden und zu entdecken, welche Objekte mit Ihrer Ausrüstung sichtbar sind.' },
67
+ { name: '4. Auf Objekte klicken', text: 'Tippen Sie auf ein beliebiges Himmelsobjekt, um detaillierte Informationen wie Typ, Magnitude und Beschreibung anzuzeigen.' },
68
+ ];
69
+
70
+ const bibliography: DeepSpaceScopeLocaleContent['bibliography'] = [
71
+ { name: 'Vollständiger Messier-Katalog', url: 'https://www.skyatnightmagazine.com/space-science/messier-catalogue' },
72
+ { name: 'Stellarium Web - Interaktive Sternenkarte', url: 'https://stellarium-web.org/' },
73
+ ];
74
+
75
+ const seo: DeepSpaceScopeLocaleContent['seo'] = [
76
+ {
77
+ type: 'summary',
78
+ title: 'Kernpunkte der Teleskop Reichweite',
79
+ items: [
80
+ 'Die Öffnung ist der entscheidende Faktor: Ein größerer Durchmesser bedeutet mehr Licht und eine höhere Grenzgröße.',
81
+ 'Ein dunkler Himmel (niedriger Bortle-Wert) kann gegenüber einem städtischen Himmel 2-3 Magnituden Gewinn bringen.',
82
+ 'Ein 200-mm-Teleskop erreicht bei Bortle 3 Magn. 13-14, bei Bortle 7 jedoch nur Magn. 11.',
83
+ 'Helle Planeten und der Mond erfordern keinen dunklen Himmel – sie sind auch aus der Stadt sichtbar.',
84
+ ],
85
+ },
86
+ { type: 'title', text: 'Die Physik der astronomischen Beobachtung: Öffnung und Magnitude', level: 2 },
87
+ {
88
+ type: 'paragraph',
89
+ html: 'Die Hauptfunktion eines Teleskops besteht nicht darin, das Bild zu vergrößern, sondern <strong>Licht zu sammeln</strong>. Das menschliche Auge hat eine Pupille, die sich bei völliger Dunkelheit auf etwa 6-7 mm weitet. Ein 200-mm-Teleskop hat eine Sammelfläche von 31.416 mm², was mehr als <strong>800-mal größer</strong> ist als die menschliche Pupille. Dies ermöglicht es Ihnen, Objekte zu sehen, die hunderte Male schwächer sind.',
90
+ },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Die Formel für den Magnitudengewinn lautet: <code>Gewinn = 5 × log₁₀(Öffnung_mm / 6)</code>. Für eine 200-mm-Öffnung ergibt sich: 5 × log₁₀(200/6) = 5 × 1,52 = 7,6 zusätzliche Magnituden über der Wahrnehmung mit bloßem Auge. Rechnet man die 6,5 Magnituden hinzu, die mit bloßem Auge (unter dunklem Himmel) sichtbar sind, erreichen wir eine Grenzgröße von 14,1.',
94
+ },
95
+ { type: 'title', text: 'Der Effekt der Lichtverschmutzung auf die Reichweite', level: 2 },
96
+ {
97
+ type: 'paragraph',
98
+ html: 'Selbst mit dem größten Teleskop der Welt können Sie aus einem Stadtzentrum heraus keine schwachen Galaxien sehen. Die Helligkeit des Himmelshintergrunds "löscht" den notwendigen Kontrast aus. Die <strong>Bortle-Skala</strong> quantifiziert diesen Effekt: Jede zusätzliche Bortle-Stufe zieht etwa 0,5 Magnituden von der Reichweite des Teleskops ab.',
99
+ },
100
+ {
101
+ type: 'table',
102
+ headers: ['Öffnung', 'Bortle 2 (Dunkel)', 'Bortle 4 (Ländlich)', 'Bortle 6 (Vorstädt.)', 'Bortle 8 (Städtisch)'],
103
+ rows: [
104
+ ['70mm', 'Mag 12.0', 'Mag 10.8', 'Mag 9.5', 'Mag 8.3'],
105
+ ['100mm', 'Mag 12.8', 'Mag 11.6', 'Mag 10.3', 'Mag 9.1'],
106
+ ['150mm', 'Mag 13.6', 'Mag 12.4', 'Mag 11.1', 'Mag 9.9'],
107
+ ['200mm', 'Mag 14.2', 'Mag 13.0', 'Mag 11.7', 'Mag 10.5'],
108
+ ['300mm', 'Mag 15.0', 'Mag 13.8', 'Mag 12.5', 'Mag 11.3'],
109
+ ],
110
+ },
111
+ {
112
+ type: 'tip',
113
+ title: 'Der Messier Katalog: Ihre Objektliste',
114
+ html: 'Charles Messier stellte 1781 seinen berühmten Katalog mit 110 Objekten zusammen, um sie nicht mit Kometen zu verwechseln. Heute ist er der Referenzkatalog für visuelle Beobachter. Die 110 Messier-Objekte (M1-M110) umfassen Nebel, Sternhaufen und Galaxien, die alle mit Teleskopen unter 150 mm bei einem Bortle-4-5-Himmel zugänglich sind.',
115
+ },
116
+ { type: 'title', text: 'Besondere Objekte nach Typ und Schwierigkeitsgrad', level: 2 },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Für Einsteiger sind <strong>Planeten</strong> das lohnendste Ziel: Sie benötigen keinen dunklen Himmel und bieten schon mit kleinen Teleskopen überraschende Details (Saturnringe bei 40x, Jupiterbänder bei 80x, Polkappen des Mars). <strong>Nebel</strong> und <strong>Galaxien</strong> erfordern eine größere Öffnung und einen dunkleren Himmel, belohnen aber mit Panoramen von unvergleichlicher Schönheit.',
120
+ },
121
+ {
122
+ type: 'stats',
123
+ columns: 2,
124
+ items: [
125
+ { label: 'Auge (7mm)', value: 'Mag 6.5', icon: 'mdi:eye' },
126
+ { label: '70mm Refraktor', value: 'Mag 12', icon: 'mdi:telescope' },
127
+ { label: '200mm Dobsonian', value: 'Mag 14+', icon: 'mdi:telescope' },
128
+ { label: 'HST Weltraum', value: 'Mag 31', icon: 'mdi:satellite-variant' },
129
+ ],
130
+ },
131
+ ];
132
+
133
+ const faqSchema: WithContext<FAQPage> = {
134
+ '@context': 'https://schema.org',
135
+ '@type': 'FAQPage',
136
+ mainEntity: faq.map((item) => ({
137
+ '@type': 'Question',
138
+ name: item.question,
139
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
140
+ })),
141
+ };
142
+
143
+ const howToSchema: WithContext<HowTo> = {
144
+ '@context': 'https://schema.org',
145
+ '@type': 'HowTo',
146
+ name: title,
147
+ description,
148
+ step: howTo.map((step) => ({
149
+ '@type': 'HowToStep',
150
+ name: step.name,
151
+ text: step.text,
152
+ })),
153
+ };
154
+
155
+ const appSchema: WithContext<SoftwareApplication> = {
156
+ '@context': 'https://schema.org',
157
+ '@type': 'SoftwareApplication',
158
+ name: title,
159
+ description,
160
+ applicationCategory: 'UtilitiesApplication',
161
+ operatingSystem: 'Web',
162
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
163
+ inLanguage: 'de',
164
+ };
165
+
166
+ export const content: DeepSpaceScopeLocaleContent = {
167
+ slug,
168
+ title,
169
+ description,
170
+ ui,
171
+ seo,
172
+ faq,
173
+ faqTitle: 'Häufig gestellte Fragen (FAQ)',
174
+ bibliography,
175
+ bibliographyTitle: 'Bibliographische Referenzen',
176
+ howTo,
177
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
178
+ };
@@ -18,6 +18,27 @@ const ui: DeepSpaceScopeUI = {
18
18
  deepSpaceLabel: 'Deep Space',
19
19
  magnitudeLabel: 'Magnitude',
20
20
  coordinatesLabel: 'Coordinates',
21
+ closeLabel: 'Close',
22
+ altitudeLabel: 'Altitude',
23
+ defaultObjDesc: 'A fascinating deep space object. Magnitude',
24
+ bortleClassPrefix: 'Class',
25
+ deepSpaceObjects: [
26
+ { name: 'Venus', type: 'Planet', mag: -4.5, az: 270, alt: 30, icon: 'mdi:circle', color: '#fef08a', desc: 'The brightest planet in the night sky. Visible in broad daylight.' },
27
+ { name: 'Jupiter', type: 'Planet', mag: -2.5, az: 180, alt: 40, icon: 'mdi:circle', color: '#fef9c3', desc: 'The giant of the solar system. Its four Galilean moons can be seen with binoculars.' },
28
+ { name: 'Saturn', type: 'Planet', mag: 0.8, az: 220, alt: 35, icon: 'mdi:circle', color: '#fefce8', desc: 'Its rings are visible with a 60mm telescope at 50x magnification.' },
29
+ { name: 'Mars', type: 'Planet', mag: 1.5, az: 150, alt: 25, icon: 'mdi:circle', color: '#f87171', desc: 'The Red Planet. Varies from magnitude -2.9 at opposition to +1.8 at conjunction.' },
30
+ { name: 'Sirius', type: 'Star', mag: -1.46, az: 145, alt: 50, icon: 'mdi:star-four-points', color: '#bfdbfe', desc: 'The brightest star in the night sky. Located just 8.6 light-years away.' },
31
+ { name: 'Canopus', type: 'Star', mag: -0.74, az: 200, alt: 20, icon: 'mdi:star-four-points', color: '#fef9c3', desc: 'The second brightest star, used for navigation in the Southern Hemisphere.' },
32
+ { name: 'Arcturus', type: 'Star', mag: -0.05, az: 60, alt: 55, icon: 'mdi:star-four-points', color: '#fdba74', desc: 'Orange giant in the Boötes constellation. 36 light-years from Earth.' },
33
+ { name: 'Vega', type: 'Star', mag: 0.03, az: 40, alt: 70, icon: 'mdi:star-four-points', color: '#dbeafe', desc: 'Vertex of the Summer Triangle. The reference star for magnitude 0.' },
34
+ { name: 'M42 Orion', type: 'Nebula', mag: 4.0, az: 140, alt: 45, icon: 'mdi:creation', color: '#a5b4fc', desc: 'The Great Orion Nebula, 1344 light-years away. A nursery for young stars.' },
35
+ { name: 'M45 Pleiades', type: 'Cluster', mag: 1.6, az: 100, alt: 60, icon: 'mdi:creation', color: '#93c5fd', desc: 'The Seven Sisters. At 444 light-years, the most famous open cluster in the sky.' },
36
+ { name: 'M31 Andromeda', type: 'Galaxy', mag: 3.4, az: 30, alt: 50, icon: 'mdi:creation', color: '#d8b4fe', desc: 'The largest neighboring galaxy. 2.5 million light-years away, visible to the naked eye in dark skies.' },
37
+ { name: 'M13 Hercules', type: 'Cluster', mag: 5.8, az: 80, alt: 65, icon: 'mdi:creation', color: '#fde047', desc: 'The Great Globular Cluster in Hercules. Contains 300,000 stars 25,100 light-years away.' },
38
+ { name: 'M57 Ring', type: 'Nebula', mag: 8.8, az: 50, alt: 58, icon: 'mdi:creation', color: '#67e8f9', desc: 'Planetary nebula in Lyra. Ring of gas ejected by a white dwarf.' },
39
+ { name: 'M81 Bode', type: 'Galaxy', mag: 6.9, az: 340, alt: 55, icon: 'mdi:creation', color: '#c4b5fd', desc: 'Spiral galaxy in Ursa Major. Interacting gravitationally with M82.' },
40
+ { name: 'Pluto', type: 'Dwarf Planet', mag: 14.3, az: 195, alt: 22, icon: 'mdi:circle-small', color: '#cbd5e1', desc: 'The most famous dwarf planet. Requires a 250mm or larger telescope and dark skies.' },
41
+ ],
21
42
  };
22
43
 
23
44
  const faq: DeepSpaceScopeLocaleContent['faq'] = [
@@ -18,6 +18,27 @@ const ui: DeepSpaceScopeUI = {
18
18
  deepSpaceLabel: 'Espacio Profundo',
19
19
  magnitudeLabel: 'Magnitud',
20
20
  coordinatesLabel: 'Coordenadas',
21
+ closeLabel: 'Cerrar',
22
+ altitudeLabel: 'Altitud',
23
+ defaultObjDesc: 'Un objeto del espacio profundo. Magnitud',
24
+ bortleClassPrefix: 'Clase',
25
+ deepSpaceObjects: [
26
+ { name: 'Venus', type: 'Planeta', mag: -4.5, az: 270, alt: 30, icon: 'mdi:circle', color: '#fef08a', desc: 'El planeta más brillante del cielo nocturno. Visible a plena luz del día.' },
27
+ { name: 'Júpiter', type: 'Planeta', mag: -2.5, az: 180, alt: 40, icon: 'mdi:circle', color: '#fef9c3', desc: 'El gigante del sistema solar. Con binoculares se pueden ver sus cuatro lunas galileanas.' },
28
+ { name: 'Saturno', type: 'Planeta', mag: 0.8, az: 220, alt: 35, icon: 'mdi:circle', color: '#fefce8', desc: 'Sus anillos son visibles con un telescopio de 60mm a 50 aumentos.' },
29
+ { name: 'Marte', type: 'Planeta', mag: 1.5, az: 150, alt: 25, icon: 'mdi:circle', color: '#f87171', desc: 'El planeta rojo. Varía de magnitud -2.9 en oposición a +1.8 en conjunción.' },
30
+ { name: 'Sirio', type: 'Estrella', mag: -1.46, az: 145, alt: 50, icon: 'mdi:star-four-points', color: '#bfdbfe', desc: 'La estrella más brillante del cielo nocturno. Está a solo 8.6 años-luz.' },
31
+ { name: 'Canopus', type: 'Estrella', mag: -0.74, az: 200, alt: 20, icon: 'mdi:star-four-points', color: '#fef9c3', desc: 'La segunda estrella más brillante, usada para navegar en el hemisferio sur.' },
32
+ { name: 'Arcturus', type: 'Estrella', mag: -0.05, az: 60, alt: 55, icon: 'mdi:star-four-points', color: '#fdba74', desc: 'Gigante naranja en la constelación del Boyero. A 36 años-luz de la Tierra.' },
33
+ { name: 'Vega', type: 'Estrella', mag: 0.03, az: 40, alt: 70, icon: 'mdi:star-four-points', color: '#dbeafe', desc: 'Vértice del Triángulo de Verano. La estrella de referencia para magnitud 0.' },
34
+ { name: 'M42 Orión', type: 'Nebulosa', mag: 4.0, az: 140, alt: 45, icon: 'mdi:creation', color: '#a5b4fc', desc: 'La gran nebulosa de Orión, a 1344 años-luz. Vivero de estrellas jóvenes.' },
35
+ { name: 'M45 Pléyades', type: 'Cúmulo', mag: 1.6, az: 100, alt: 60, icon: 'mdi:creation', color: '#93c5fd', desc: 'Las Siete Hermanas. A 444 años-luz, el cúmulo abierto más famoso del cielo.' },
36
+ { name: 'M31 Andrómeda', type: 'Galaxia', mag: 3.4, az: 30, alt: 50, icon: 'mdi:creation', color: '#d8b4fe', desc: 'La galaxia vecina más grande. A 2.5 millones de años-luz, visible a simple vista en cielos oscuros.' },
37
+ { name: 'M13 Hércules', type: 'Cúmulo', mag: 5.8, az: 80, alt: 65, icon: 'mdi:creation', color: '#fde047', desc: 'El gran cúmulo globular de Hércules. Contiene 300.000 estrellas a 25.100 años-luz.' },
38
+ { name: 'M57 Anillo', type: 'Nebulosa', mag: 8.8, az: 50, alt: 58, icon: 'mdi:creation', color: '#67e8f9', desc: 'Nebulosa planetaria en Lyra. Anillo de gas expulsado por una enana blanca.' },
39
+ { name: 'M81 Bode', type: 'Galaxia', mag: 6.9, az: 340, alt: 55, icon: 'mdi:creation', color: '#c4b5fd', desc: 'Galaxia espiral en la Osa Mayor. Interactuando gravitatoriamente con M82.' },
40
+ { name: 'Plutón', type: 'Planeta Enano', mag: 14.3, az: 195, alt: 22, icon: 'mdi:circle-small', color: '#cbd5e1', desc: 'El planeta enano más famoso. Requiere un telescopio de 250mm o más y cielos oscuros.' },
41
+ ],
21
42
  };
22
43
 
23
44
  const faq: DeepSpaceScopeLocaleContent['faq'] = [
@@ -18,6 +18,27 @@ const ui: DeepSpaceScopeUI = {
18
18
  deepSpaceLabel: 'Espace Profond',
19
19
  magnitudeLabel: 'Magnitude',
20
20
  coordinatesLabel: 'Coordonnées',
21
+ closeLabel: 'Fermer',
22
+ altitudeLabel: 'Altitude',
23
+ defaultObjDesc: 'Un objet fascinant de l\'espace profond. Magnitude',
24
+ bortleClassPrefix: 'Classe',
25
+ deepSpaceObjects: [
26
+ { name: 'Vénus', type: 'Planète', mag: -4.5, az: 270, alt: 30, icon: 'mdi:circle', color: '#fef08a', desc: 'La planète la plus brillante du ciel nocturne. Visible en plein jour.' },
27
+ { name: 'Jupiter', type: 'Planète', mag: -2.5, az: 180, alt: 40, icon: 'mdi:circle', color: '#fef9c3', desc: 'Le géant du système solaire. Ses quatre lunes galiléennes sont visibles avec des jumelles.' },
28
+ { name: 'Saturne', type: 'Planète', mag: 0.8, az: 220, alt: 35, icon: 'mdi:circle', color: '#fefce8', desc: 'Ses anneaux sont visibles avec un télescope de 60mm à un grossissement de 50x.' },
29
+ { name: 'Mars', type: 'Planète', mag: 1.5, az: 150, alt: 25, icon: 'mdi:circle', color: '#f87171', desc: 'La planète rouge. Varie de la magnitude -2.9 en opposition à +1.8 en conjonction.' },
30
+ { name: 'Sirius', type: 'Étoile', mag: -1.46, az: 145, alt: 50, icon: 'mdi:star-four-points', color: '#bfdbfe', desc: 'L\'étoile la plus brillante du ciel nocturne. Située à seulement 8,6 années-lumière.' },
31
+ { name: 'Canope', type: 'Étoile', mag: -0.74, az: 200, alt: 20, icon: 'mdi:star-four-points', color: '#fef9c3', desc: 'La deuxième étoile la plus brillante, utilisée pour la navigation dans l\'hémisphère sud.' },
32
+ { name: 'Arcturus', type: 'Étoile', mag: -0.05, az: 60, alt: 55, icon: 'mdi:star-four-points', color: '#fdba74', desc: 'Géante orange dans la constellation du Bouvier. À 36 années-lumière de la Terre.' },
33
+ { name: 'Véga', type: 'Étoile', mag: 0.03, az: 40, alt: 70, icon: 'mdi:star-four-points', color: '#dbeafe', desc: 'Sommet du Triangle d\'Été. L\'étoile de référence pour la magnitude 0.' },
34
+ { name: 'M42 Orion', type: 'Nébuleuse', mag: 4.0, az: 140, alt: 45, icon: 'mdi:creation', color: '#a5b4fc', desc: 'La grande nébuleuse d\'Orion, à 1344 années-lumière. Une pouponnière d\'étoiles jeunes.' },
35
+ { name: 'M45 Pléiades', type: 'Amas', mag: 1.6, az: 100, alt: 60, icon: 'mdi:creation', color: '#93c5fd', desc: 'Les Sept Sœurs. À 444 années-lumière, l\'amas ouvert le plus célèbre du ciel.' },
36
+ { name: 'M31 Andromède', type: 'Galaxie', mag: 3.4, az: 30, alt: 50, icon: 'mdi:creation', color: '#d8b4fe', desc: 'La plus grande galaxie voisine. À 2,5 millions d\'années-lumière, visible à l\'œil nu sous un ciel sombre.' },
37
+ { name: 'M13 Hercule', type: 'Amas', mag: 5.8, az: 80, alt: 65, icon: 'mdi:creation', color: '#fde047', desc: 'Le grand amas globulaire d\'Hercule. Contiene 300 000 étoiles à 25 100 années-lumière.' },
38
+ { name: 'M57 Anneau', type: 'Nébuleuse', mag: 8.8, az: 50, alt: 58, icon: 'mdi:creation', color: '#67e8f9', desc: 'Nébuleuse planétaire dans la Lyre. Anneau de gaz expulsé par une naine blanche.' },
39
+ { name: 'M81 Bode', type: 'Galaxie', mag: 6.9, az: 340, alt: 55, icon: 'mdi:creation', color: '#c4b5fd', desc: 'Galaxie spirale dans la Grande Ourse. Interagissant gravitationnellement avec M82.' },
40
+ { name: 'Pluton', type: 'Planète naine', mag: 14.3, az: 195, alt: 22, icon: 'mdi:circle-small', color: '#cbd5e1', desc: 'La planète naine la plus célèbre. Nécessite un télescope de 250mm ou plus et un ciel sombre.' },
41
+ ],
21
42
  };
22
43
 
23
44
  const faq: DeepSpaceScopeLocaleContent['faq'] = [
@@ -0,0 +1,178 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { DeepSpaceScopeUI, DeepSpaceScopeLocaleContent } from '../index';
3
+
4
+ const slug = 'telescope-reach';
5
+ const title = 'Kalkulator Jangkauan Teleskop';
6
+ const description = 'Hitung magnitudo pembatas teleskop Anda dan temukan objek langit dalam mana yang terlihat dengan pelat peralatan Anda di bawah kondisi langit Anda.';
7
+
8
+ const ui: DeepSpaceScopeUI = {
9
+ toolTitle: 'Jangkauan Teleskop',
10
+ apertureLabel: 'Apertur (Bukaan)',
11
+ bortleLabel: 'Langit (Bortle)',
12
+ limitMagLabel: 'Magnitudo Pembatas',
13
+ azimuthLabel: 'AZ',
14
+ dragHint: 'Klik dan geser untuk menjelajahi kosmos (360°)',
15
+ dragHintMobile: 'Geser untuk menjelajah 360°',
16
+ planetLabel: 'Planet',
17
+ starLabel: 'Bintang',
18
+ deepSpaceLabel: 'Langit Dalam',
19
+ magnitudeLabel: 'Magnitudo',
20
+ coordinatesLabel: 'Koordinat',
21
+ closeLabel: 'Tutup',
22
+ altitudeLabel: 'Ketinggian',
23
+ defaultObjDesc: 'Objek langit dalam yang mempesona. Magnitudo',
24
+ bortleClassPrefix: 'Kelas',
25
+ deepSpaceObjects: [
26
+ { name: 'Venus', type: 'Planet', mag: -4.5, az: 270, alt: 30, icon: 'mdi:circle', color: '#fef08a', desc: 'Planet paling terang di langit malam. Terlihat di siang bolong.' },
27
+ { name: 'Jupiter', type: 'Planet', mag: -2.5, az: 180, alt: 40, icon: 'mdi:circle', color: '#fef9c3', desc: 'Raksasa tata surya. Empat bulan Galilea-nya dapat dilihat dengan teropong.' },
28
+ { name: 'Saturnus', type: 'Planet', mag: 0.8, az: 220, alt: 35, icon: 'mdi:circle', color: '#fefce8', desc: 'Cincinnya terlihat dengan teleskop 60mm pada perbesaran 50x.' },
29
+ { name: 'Mars', type: 'Planet', mag: 1.5, az: 150, alt: 25, icon: 'mdi:circle', color: '#f87171', desc: 'Planet Merah. Bervariasi dari magnitudo -2,9 saat oposisi hingga +1,8 saat konjungsi.' },
30
+ { name: 'Sirius', type: 'Star', mag: -1.46, az: 145, alt: 50, icon: 'mdi:star-four-points', color: '#bfdbfe', desc: 'Bintang paling terang di langit malam. Berjarak hanya 8,6 tahun cahaya.' },
31
+ { name: 'Canopus', type: 'Star', mag: -0.74, az: 200, alt: 20, icon: 'mdi:star-four-points', color: '#fef9c3', desc: 'Bintang paling terang kedua, digunakan untuk navigasi di Belahan Bumi Selatan.' },
32
+ { name: 'Arcturus', type: 'Star', mag: -0.05, az: 60, alt: 55, icon: 'mdi:star-four-points', color: '#fdba74', desc: 'Raksasa oranye di rasi bintang Boötes. Berjarak 36 tahun cahaya dari Bumi.' },
33
+ { name: 'Vega', type: 'Star', mag: 0.03, az: 40, alt: 70, icon: 'mdi:star-four-points', color: '#dbeafe', desc: 'Titik sudut Segitiga Musim Panas. Bintang referensi untuk magnitudo 0.' },
34
+ { name: 'M42 Orion', type: 'Nebula', mag: 4.0, az: 140, alt: 45, icon: 'mdi:creation', color: '#a5b4fc', desc: 'Nebula Orion Besar, berjarak 1344 tahun cahaya. Tempat lahir bagi bintang-bintang muda.' },
35
+ { name: 'M45 Pleiades', type: 'Cluster', mag: 1.6, az: 100, alt: 60, icon: 'mdi:creation', color: '#93c5fd', desc: 'Tujuh Bersaudara. Pada jarak 444 tahun cahaya, gugus terbuka paling terkenal di langit.' },
36
+ { name: 'M31 Andromeda', type: 'Galaxy', mag: 3.4, az: 30, alt: 50, icon: 'mdi:creation', color: '#d8b4fe', desc: 'Galaksi tetangga terbesar. Berjarak 2,5 juta tahun cahaya, terlihat dengan mata telanjang di langit gelap.' },
37
+ { name: 'M13 Hercules', type: 'Cluster', mag: 5.8, az: 80, alt: 65, icon: 'mdi:creation', color: '#fde047', desc: 'Gugus Bola Besar di Hercules. Berisi 300.000 bintang pada jarak 25.100 tahun cahaya.' },
38
+ { name: 'M57 Ring', type: 'Nebula', mag: 8.8, az: 50, alt: 58, icon: 'mdi:creation', color: '#67e8f9', desc: 'Nebula planet di Lyra. Cincin gas yang dihembuskan oleh katai putih.' },
39
+ { name: 'M81 Bode', type: 'Galaxy', mag: 6.9, az: 340, alt: 55, icon: 'mdi:creation', color: '#c4b5fd', desc: 'Galaksi spiral di Ursa Major. Berinteraksi secara gravitasi dengan M82.' },
40
+ { name: 'Pluto', type: 'Dwarf Planet', mag: 14.3, az: 195, alt: 22, icon: 'mdi:circle-small', color: '#cbd5e1', desc: 'Planet kerdil paling terkenal. Membutuhkan teleskop 250mm atau lebih besar dan langit gelap.' },
41
+ ],
42
+ };
43
+
44
+ const faq: DeepSpaceScopeLocaleContent['faq'] = [
45
+ {
46
+ question: 'Apa itu magnitudo pembatas teleskop?',
47
+ answer: 'Ini adalah magnitudo objek paling redup yang dapat dideteksi teleskop di bawah kondisi langit tertentu. Ini tergantung pada diameter apertur (apertur lebih besar = lebih banyak cahaya yang ditangkap) dan kualitas langit (Bortle). Mata manusia dalam kondisi optimal mencapai magnitudo 6,5; teleskop 200mm dapat mencapai magnitudo 13-14.',
48
+ },
49
+ {
50
+ question: 'Bagaimana skala Bortle memengaruhi apa yang bisa saya lihat?',
51
+ answer: 'Setiap level Bortle mengurangi sekitar 0,5 magnitudo dari apa yang bisa Anda lihat. Teleskop 200mm di bawah Bortle 2 dapat mencapai magnitudo 14,5, tetapi di bawah Bortle 7 apertur yang sama hanya akan mencapai magnitudo 11-12. Langit gelap melipatgandakan kemampuan instrumen apa pun.',
52
+ },
53
+ {
54
+ question: 'Objek apa yang terlihat dari kota?',
55
+ answer: 'Dari langit Bortle 7-8 (perkotaan), dengan teleskop 150mm Anda dapat melihat planet-planet terang dengan detail luar biasa, Bulan, gugus terbuka yang terang (M45, M44), gugus bola (M13), dan beberapa galaksi terang seperti M31 dan M81, meskipun tanpa banyak detail. Nebula redup membutuhkan langit yang lebih gelap atau filter khusus.',
56
+ },
57
+ {
58
+ question: 'Berapa apertur yang saya butuhkan untuk melihat warna pada nebula?',
59
+ answer: 'Mata manusia kehilangan sensitivitas warna pada cahaya rendah. Untuk melihat warna pada nebula emisi seperti M42, Anda membutuhkan setidaknya apertur 200-250mm dan langit Bortle 3-4. Dengan apertur yang lebih kecil, nebula tampak keabu-abuan, meskipun dengan astrofotografi bahkan teleskop kecil pun dapat menangkap warna-warna spektakuler.',
60
+ },
61
+ ];
62
+
63
+ const howTo: DeepSpaceScopeLocaleContent['howTo'] = [
64
+ { name: '1. Atur apertur Anda', text: 'Geser slider apertur untuk mensimulasikan teleskop Anda. Rentangnya mulai dari 50mm (teropong) hingga 400mm (teleskop canggih).' },
65
+ { name: '2. Sesuaikan kualitas langit', text: 'Atur level Bortle dari lokasi pengamatan biasa Anda untuk melihat magnitudo pembatas yang sebenarnya.' },
66
+ { name: '3. Jelajahi peta bintang', text: 'Geser bidang untuk menjelajahi seluruh 360° langit dan temukan objek mana yang terlihat dengan peralatan Anda.' },
67
+ { name: '4. Klik pada objek', text: 'Ketuk objek langit mana pun untuk melihat informasi detailnya: tipe, magnitudo, dan deskripsi.' },
68
+ ];
69
+
70
+ const bibliography: DeepSpaceScopeLocaleContent['bibliography'] = [
71
+ { name: 'Katalog Messier Lengkap', url: 'https://www.skyatnightmagazine.com/space-science/messier-catalogue' },
72
+ { name: 'Stellarium Web - Peta Bintang Interaktif', url: 'https://stellarium-web.org/' },
73
+ ];
74
+
75
+ const seo: DeepSpaceScopeLocaleContent['seo'] = [
76
+ {
77
+ type: 'summary',
78
+ title: 'Poin Kunci Jangkauan Teleskopik',
79
+ items: [
80
+ 'Apertur adalah faktor penentu: diameter yang lebih besar berarti lebih banyak cahaya dan magnitudo pembatas yang lebih tinggi.',
81
+ 'Langit gelap (Bortle rendah) dapat menambah 2-3 magnitudo dibandingkan dengan langit perkotaan.',
82
+ 'Teleskop 200mm mencapai mag 13-14 pada Bortle 3, dan hanya mag 11 pada Bortle 7.',
83
+ 'Planet terang dan Bulan tidak membutuhkan langit gelap - terlihat dari kota.',
84
+ ],
85
+ },
86
+ { type: 'title', text: 'Fisika Pengamatan Astronomi: Apertur dan Magnitudo', level: 2 },
87
+ {
88
+ type: 'paragraph',
89
+ html: 'Fungsi utama teleskop bukanlah untuk memperbesar gambar, melainkan untuk <strong>mengumpulkan cahaya</strong>. Mata manusia memiliki pupil yang melebar hingga sekitar 6-7mm dalam kegelapan total. Teleskop 200mm memiliki permukaan pengumpul seluas 31.416mm², lebih dari <strong>800 kali lebih besar</strong> daripada pupil manusia, memungkinkan Anda melihat objek ratusan kali lebih redup.',
90
+ },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Rumus untuk penguatan magnitudo adalah: <code>Keuntungan = 5 × log₁₀(Apertur_mm / 6)</code>. Untuk apertur 200mm: 5 × log₁₀(200/6) = 5 × 1,52 = 7,6 magnitudo tambahan di atas mata telanjang. Menambahkan 6,5 magnitudo yang terlihat oleh mata telanjang (di bawah langit gelap), kita mencapai magnitudo pembatas 14,1.',
94
+ },
95
+ { type: 'title', text: 'Efek Polusi Cahaya pada Jangkauan', level: 2 },
96
+ {
97
+ type: 'paragraph',
98
+ html: 'Bahkan dengan teleskop terbesar di dunia, Anda tidak dapat melihat galaksi redup dari pusat kota. Kecerahan latar belakang langit "menghapus" kontras yang diperlukan. <strong>Skala Bortle</strong> mengukur efek ini: setiap level Bortle tambahan mengurangi sekitar 0,5 magnitudo dari jangkauan teleskop.',
99
+ },
100
+ {
101
+ type: 'table',
102
+ headers: ['Apertur', 'Bortle 2 (Gelap)', 'Bortle 4 (Pedesaan)', 'Bortle 6 (Pinggiran)', 'Bortle 8 (Kota)'],
103
+ rows: [
104
+ ['70mm', 'Mag 12.0', 'Mag 10.8', 'Mag 9.5', 'Mag 8.3'],
105
+ ['100mm', 'Mag 12.8', 'Mag 11.6', 'Mag 10.3', 'Mag 9.1'],
106
+ ['150mm', 'Mag 13.6', 'Mag 12.4', 'Mag 11.1', 'Mag 9.9'],
107
+ ['200mm', 'Mag 14.2', 'Mag 13.0', 'Mag 11.7', 'Mag 10.5'],
108
+ ['300mm', 'Mag 15.0', 'Mag 13.8', 'Mag 12.5', 'Mag 11.3'],
109
+ ],
110
+ },
111
+ {
112
+ type: 'tip',
113
+ title: 'Katalog Messier: Daftar Objek Anda',
114
+ html: 'Charles Messier menyusun katalog terkenal berisi 110 objek pada tahun 1781 untuk menghindari kekeliruan dengan komet. Sekarang, ini menjadi katalog referensi bagi pengamat visual. 110 objek Messier (M1-M110) mencakup nebula, gugus, dan galaksi, semuanya dapat diakses dengan teleskop di bawah 150mm dari langit Bortle 4-5.',
115
+ },
116
+ { type: 'title', text: 'Objek Unggulan menurut Tipe dan Kesulitan', level: 2 },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Untuk pengamat pemula, <strong>planet</strong> adalah target yang paling memuaskan: mereka tidak memerlukan langit gelap dan menawarkan detail yang mengejutkan bahkan dengan teleskop kecil (cincin Saturnus pada 40x, pita Jupiter pada 80x, tudung kutub Mars). <strong>Nebula</strong> dan <strong>galaksi</strong> memerlukan apertur lebih besar dan langit yang lebih gelap, namun memberikan pemandangan dengan keindahan yang tiada tara.',
120
+ },
121
+ {
122
+ type: 'stats',
123
+ columns: 2,
124
+ items: [
125
+ { label: 'Mata Manusia (7mm)', value: 'Mag 6.5', icon: 'mdi:eye' },
126
+ { label: 'Refraktor 70mm', value: 'Mag 12', icon: 'mdi:telescope' },
127
+ { label: 'Dobsonian 200mm', value: 'Mag 14+', icon: 'mdi:telescope' },
128
+ { label: 'HST Ruang Angkasa', value: 'Mag 31', icon: 'mdi:satellite-variant' },
129
+ ],
130
+ },
131
+ ];
132
+
133
+ const faqSchema: WithContext<FAQPage> = {
134
+ '@context': 'https://schema.org',
135
+ '@type': 'FAQPage',
136
+ mainEntity: faq.map((item) => ({
137
+ '@type': 'Question',
138
+ name: item.question,
139
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
140
+ })),
141
+ };
142
+
143
+ const howToSchema: WithContext<HowTo> = {
144
+ '@context': 'https://schema.org',
145
+ '@type': 'HowTo',
146
+ name: title,
147
+ description,
148
+ step: howTo.map((step) => ({
149
+ '@type': 'HowToStep',
150
+ name: step.name,
151
+ text: step.text,
152
+ })),
153
+ };
154
+
155
+ const appSchema: WithContext<SoftwareApplication> = {
156
+ '@context': 'https://schema.org',
157
+ '@type': 'SoftwareApplication',
158
+ name: title,
159
+ description,
160
+ applicationCategory: 'UtilitiesApplication',
161
+ operatingSystem: 'Web',
162
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
163
+ inLanguage: 'id',
164
+ };
165
+
166
+ export const content: DeepSpaceScopeLocaleContent = {
167
+ slug,
168
+ title,
169
+ description,
170
+ ui,
171
+ seo,
172
+ faq,
173
+ faqTitle: 'Pertanyaan yang Sering Diajukan',
174
+ bibliography,
175
+ bibliographyTitle: 'Referensi Bibliografi',
176
+ howTo,
177
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
178
+ };