@jjlmoya/utils-astronomy 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 (106) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/data.ts +2 -0
  4. package/src/entries.ts +4 -1
  5. package/src/pages/[locale]/[slug].astro +30 -14
  6. package/src/tests/locale_completeness.test.ts +1 -34
  7. package/src/tests/tool_structure.test.ts +71 -0
  8. package/src/tests/tool_validation.test.ts +4 -3
  9. package/src/tool/bortleVisualizer/bibliography.ts +8 -0
  10. package/src/tool/bortleVisualizer/entry.ts +2 -0
  11. package/src/tool/bortleVisualizer/i18n/de.ts +1 -9
  12. package/src/tool/bortleVisualizer/i18n/en.ts +1 -9
  13. package/src/tool/bortleVisualizer/i18n/es.ts +1 -9
  14. package/src/tool/bortleVisualizer/i18n/fr.ts +1 -9
  15. package/src/tool/bortleVisualizer/i18n/id.ts +1 -9
  16. package/src/tool/bortleVisualizer/i18n/it.ts +1 -9
  17. package/src/tool/bortleVisualizer/i18n/ja.ts +1 -9
  18. package/src/tool/bortleVisualizer/i18n/ko.ts +1 -9
  19. package/src/tool/bortleVisualizer/i18n/nl.ts +1 -9
  20. package/src/tool/bortleVisualizer/i18n/pl.ts +1 -9
  21. package/src/tool/bortleVisualizer/i18n/pt.ts +1 -9
  22. package/src/tool/bortleVisualizer/i18n/ru.ts +1 -9
  23. package/src/tool/bortleVisualizer/i18n/sv.ts +1 -9
  24. package/src/tool/bortleVisualizer/i18n/tr.ts +1 -9
  25. package/src/tool/bortleVisualizer/i18n/zh.ts +1 -9
  26. package/src/tool/bortleVisualizer/seo.astro +2 -48
  27. package/src/tool/deepSpaceScope/bibliography.ts +6 -0
  28. package/src/tool/deepSpaceScope/entry.ts +2 -0
  29. package/src/tool/deepSpaceScope/i18n/de.ts +1 -7
  30. package/src/tool/deepSpaceScope/i18n/en.ts +1 -7
  31. package/src/tool/deepSpaceScope/i18n/es.ts +1 -7
  32. package/src/tool/deepSpaceScope/i18n/fr.ts +1 -7
  33. package/src/tool/deepSpaceScope/i18n/id.ts +1 -7
  34. package/src/tool/deepSpaceScope/i18n/it.ts +1 -7
  35. package/src/tool/deepSpaceScope/i18n/ja.ts +1 -7
  36. package/src/tool/deepSpaceScope/i18n/ko.ts +1 -7
  37. package/src/tool/deepSpaceScope/i18n/nl.ts +1 -7
  38. package/src/tool/deepSpaceScope/i18n/pl.ts +1 -7
  39. package/src/tool/deepSpaceScope/i18n/pt.ts +1 -7
  40. package/src/tool/deepSpaceScope/i18n/ru.ts +1 -7
  41. package/src/tool/deepSpaceScope/i18n/sv.ts +1 -7
  42. package/src/tool/deepSpaceScope/i18n/tr.ts +1 -7
  43. package/src/tool/deepSpaceScope/i18n/zh.ts +1 -7
  44. package/src/tool/deepSpaceScope/seo.astro +2 -48
  45. package/src/tool/smartEyepieceCalculator/app.ts +327 -0
  46. package/src/tool/smartEyepieceCalculator/bibliography.astro +14 -0
  47. package/src/tool/smartEyepieceCalculator/bibliography.ts +6 -0
  48. package/src/tool/smartEyepieceCalculator/component.astro +125 -0
  49. package/src/tool/smartEyepieceCalculator/entry.ts +67 -0
  50. package/src/tool/smartEyepieceCalculator/i18n/de.ts +165 -0
  51. package/src/tool/smartEyepieceCalculator/i18n/en.ts +166 -0
  52. package/src/tool/smartEyepieceCalculator/i18n/es.ts +165 -0
  53. package/src/tool/smartEyepieceCalculator/i18n/fr.ts +165 -0
  54. package/src/tool/smartEyepieceCalculator/i18n/id.ts +165 -0
  55. package/src/tool/smartEyepieceCalculator/i18n/it.ts +165 -0
  56. package/src/tool/smartEyepieceCalculator/i18n/ja.ts +165 -0
  57. package/src/tool/smartEyepieceCalculator/i18n/ko.ts +165 -0
  58. package/src/tool/smartEyepieceCalculator/i18n/nl.ts +165 -0
  59. package/src/tool/smartEyepieceCalculator/i18n/pl.ts +165 -0
  60. package/src/tool/smartEyepieceCalculator/i18n/pt.ts +165 -0
  61. package/src/tool/smartEyepieceCalculator/i18n/ru.ts +165 -0
  62. package/src/tool/smartEyepieceCalculator/i18n/sv.ts +165 -0
  63. package/src/tool/smartEyepieceCalculator/i18n/tr.ts +165 -0
  64. package/src/tool/smartEyepieceCalculator/i18n/zh.ts +165 -0
  65. package/src/tool/smartEyepieceCalculator/index.ts +13 -0
  66. package/src/tool/smartEyepieceCalculator/logic.ts +67 -0
  67. package/src/tool/smartEyepieceCalculator/seo.astro +15 -0
  68. package/src/tool/smartEyepieceCalculator/smart-eyepiece-calculator.css +393 -0
  69. package/src/tool/starExposureCalculator/bibliography.ts +7 -0
  70. package/src/tool/starExposureCalculator/entry.ts +2 -0
  71. package/src/tool/starExposureCalculator/i18n/de.ts +1 -8
  72. package/src/tool/starExposureCalculator/i18n/en.ts +1 -8
  73. package/src/tool/starExposureCalculator/i18n/es.ts +1 -8
  74. package/src/tool/starExposureCalculator/i18n/fr.ts +1 -8
  75. package/src/tool/starExposureCalculator/i18n/id.ts +1 -8
  76. package/src/tool/starExposureCalculator/i18n/it.ts +1 -8
  77. package/src/tool/starExposureCalculator/i18n/ja.ts +1 -8
  78. package/src/tool/starExposureCalculator/i18n/ko.ts +1 -8
  79. package/src/tool/starExposureCalculator/i18n/nl.ts +1 -8
  80. package/src/tool/starExposureCalculator/i18n/pl.ts +1 -8
  81. package/src/tool/starExposureCalculator/i18n/pt.ts +1 -8
  82. package/src/tool/starExposureCalculator/i18n/ru.ts +1 -8
  83. package/src/tool/starExposureCalculator/i18n/sv.ts +1 -8
  84. package/src/tool/starExposureCalculator/i18n/tr.ts +1 -8
  85. package/src/tool/starExposureCalculator/i18n/zh.ts +1 -8
  86. package/src/tool/starExposureCalculator/seo.astro +2 -48
  87. package/src/tool/telescopeResolution/bibliography.ts +7 -0
  88. package/src/tool/telescopeResolution/entry.ts +2 -0
  89. package/src/tool/telescopeResolution/i18n/de.ts +1 -8
  90. package/src/tool/telescopeResolution/i18n/en.ts +1 -8
  91. package/src/tool/telescopeResolution/i18n/es.ts +1 -8
  92. package/src/tool/telescopeResolution/i18n/fr.ts +1 -8
  93. package/src/tool/telescopeResolution/i18n/id.ts +1 -8
  94. package/src/tool/telescopeResolution/i18n/it.ts +1 -8
  95. package/src/tool/telescopeResolution/i18n/ja.ts +1 -8
  96. package/src/tool/telescopeResolution/i18n/ko.ts +1 -8
  97. package/src/tool/telescopeResolution/i18n/nl.ts +1 -8
  98. package/src/tool/telescopeResolution/i18n/pl.ts +1 -8
  99. package/src/tool/telescopeResolution/i18n/pt.ts +1 -8
  100. package/src/tool/telescopeResolution/i18n/ru.ts +1 -8
  101. package/src/tool/telescopeResolution/i18n/sv.ts +1 -8
  102. package/src/tool/telescopeResolution/i18n/tr.ts +1 -8
  103. package/src/tool/telescopeResolution/i18n/zh.ts +1 -8
  104. package/src/tool/telescopeResolution/seo.astro +2 -48
  105. package/src/tools.ts +3 -0
  106. package/src/types.ts +1 -5
@@ -0,0 +1,165 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { EyepieceCalculatorLocaleContent } from '../entry';
4
+
5
+ const title = 'Calculateur d\'Oculaires & Simulateur Visuel';
6
+ const description = 'Calculez le grossissement, le champ de vision réel (TFOV) et la pupille de sortie pour tout oculaire avec votre télescope. Inclut un simulateur visuel interactif.';
7
+
8
+ const ui = {
9
+ toolTitle: 'Calculateur d\'Oculaires Intelligent',
10
+ telescopeTitle: 'Votre Télescope',
11
+ apertureLabel: 'Ouverture (mm)',
12
+ focalLabel: 'Distance Focale (mm)',
13
+ presetsLabel: 'Modèles Populaires',
14
+ presetsPlaceholder: 'Choisissez un télescope...',
15
+ addEyepieceBtn: '+ Ajouter un Oculaire',
16
+ eyepiecesTitle: 'Vos Oculaires',
17
+ eyepieceFocal: 'Focale (mm)',
18
+ eyepieceAfov: 'Champ Apparent (°)',
19
+ removeEyepiece: 'Supprimer',
20
+ magLabel: 'Grossissement',
21
+ tfovLabel: 'Champ Réel',
22
+ pupilLabel: 'Pupille de Sortie',
23
+ simulatorTitle: 'Simulateur de Champ Visuel',
24
+ targetLabel: 'Que voulez-vous voir ?',
25
+ targetMoon: 'La Lune',
26
+ targetSaturn: 'Saturne',
27
+ targetPleiades: 'Amas des Pléiades',
28
+ targetAndromeda: 'Galaxie d\'Andromède',
29
+ targetM13: 'Amas M13',
30
+ statusDangerHighMag: 'Argent gaspillé : Vous poussez le télescope au-delà de ses limites physiques.',
31
+ statusDangerPupil: 'Lumière perdue : La pupille de sortie dépasse 7 mm. Votre œil ne peut pas traiter autant de lumière.',
32
+ statusWarningHighMag: 'Attention : Pour ce grossissement, vous aurez besoin d\'un ciel exceptionnellement stable (bon seeing).',
33
+ statusWarningLowMag: 'Grossissement faible : Vous êtes en dessous du minimum recommandé. Vous pourriez voir l\'ombre du miroir secondaire ou perdre du contraste.',
34
+ statusPerfectDeepSky: 'Combinaison parfaite ! Idéal pour les objets étendus et le Ciel Profond (amas, nébuleuses).',
35
+ statusPerfectPlanetary: 'Combinaison parfaite ! Idéal pour voir les détails planétaires (anneaux de Saturne, bandes de Jupiter).',
36
+ statusPerfectGeneral: 'Excellente combinaison polyvalente ! Idéal pour l\'observation générale de tout type d\'objets.',
37
+ ctaText: 'Compte tenu de votre équipement actuel, nous recommandons d\'utiliser des oculaires offrant un grossissement compris entre {min}x et {max}x.',
38
+ compareText: 'Comparer les Oculaires',
39
+ apertureHelp: 'Le diamètre du tube, généralement indiqué sur l\'autocollant ou la boîte d\'origine.',
40
+ focalHelp: 'La distance focale du télescope.',
41
+ afovHelp: 'Le champ de vision apparent de l\'oculaire. Un Plössl fait généralement 52°, un grand angle 68° ou plus.',
42
+ };
43
+
44
+ const faq: EyepieceCalculatorLocaleContent['faq'] = [
45
+ {
46
+ question: 'Comment calculer le grossissement d\'un télescope ?',
47
+ answer: 'La formule est simple : divisez la distance focale du télescope par celle de l\'oculaire. Par exemple, un télescope de 1000 mm avec un oculaire de 10 mm vous donne un grossissement de 100x.',
48
+ },
49
+ {
50
+ question: 'Qu\'est-ce que la pupille de sortie et pourquoi est-ce important ?',
51
+ answer: 'C\'est le diamètre du faisceau lumineux qui sort de l\'oculaire et entre dans votre œil. On le calcule en divisant l\'ouverture du télescope par le grossissement. S\'il dépasse 7 mm, votre œil ne peut pas capter toute la lumière, gâchant ainsi la puissance du télescope.',
52
+ },
53
+ {
54
+ question: 'Comment connaître le champ visuel réel de mon oculaire ?',
55
+ answer: 'Le champ visuel réel (TFOV) se calcule en divisant le champ apparent de l\'oculaire (AFOV) par le grossissement. Cela vous indique combien de degrés de ciel vous voyez réellement.',
56
+ },
57
+ ];
58
+
59
+ const howTo: EyepieceCalculatorLocaleContent['howTo'] = [
60
+ { name: '1. Saisissez les données de votre télescope', text: 'Indiquez l\'ouverture et la focale de votre tube ou sélectionnez un modèle populaire dans la liste.' },
61
+ { name: '2. Ajoutez vos oculaires', text: 'Saisissez la focale et le champ apparent de vos oculaires pour comparer leurs performances.' },
62
+ { name: '3. Simulez la vue', text: 'Sélectionnez un objet (Lune, Saturne, etc.) et cliquez sur vos oculaires pour voir comment l\'image change et si vous restez dans les limites optiques.' },
63
+ ];
64
+
65
+ const seo: EyepieceCalculatorLocaleContent['seo'] = [
66
+ {
67
+ type: 'summary',
68
+ title: 'Facteurs clés pour choisir votre oculaire idéal',
69
+ items: [
70
+ 'Grossissement Maximum Réel : 2x l\'ouverture en mm (mais limité à 200-250x par le ciel).',
71
+ 'Grossissement Minimum Utile : Ouverture divisée par 7 (limite de la pupille humaine).',
72
+ 'Plage Optimale : Entre 0,5 mm et 7 mm de pupille de sortie.',
73
+ ],
74
+ },
75
+ { type: 'title', text: 'Comment choisir des oculaires pour votre télescope : Guide Pratique', level: 2 },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'N\'achetez pas d\'oculaires à l\'instinct. La clé d\'une bonne observation réside dans l\'équilibre entre la résolution de votre télescope et la capacité biologique de votre œil. Un oculaire mal choisi peut rendre flou ou trop sombre le meilleur télescope du monde.',
79
+ },
80
+ { type: 'title', text: '1. Le calcul du grossissement (G)', level: 3 },
81
+ {
82
+ type: 'paragraph',
83
+ html: 'La formule est simple : divisez la focale du télescope par la focale de l\'oculaire. <br/><strong>Formule :</strong> Focale Télescope / Focale Oculaire = Grossissement. <br/>Exemple : Un télescope de 1000 mm avec un oculaire de 10 mm vous donne 100 grossissements (100x).',
84
+ },
85
+ { type: 'title', text: '2. Le mythe du grossissement maximum', level: 3 },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'La limite réelle n\'est pas fixée par l\'oculaire, mais par l\'ouverture (le diamètre) de votre tube. <br/>- <strong>Limite théorique :</strong> 2 × Ouverture en mm. <br/>- <strong>Limite réelle (Seeing moyen) :</strong> Vous dépasserez rarement 200x - 250x à cause de la turbulence atmosphérique, quel que soit votre télescope. Pousser davantage ne donnera qu\'une tache floue agrandie.',
89
+ },
90
+ { type: 'title', text: '3. La pupille de sortie : le facteur de luminosité', level: 3 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'La pupille de sortie est le cylindre de lumière qui sort de l\'oculaire vers votre œil. <br/>- <strong>Si elle est supérieure à 7 mm :</strong> Votre œil ne peut pas s\'ouvrir autant ; vous perdez de la lumière et gaspillez littéralement votre argent. <br/>- <strong>Si elle est inférieure à 0,5 mm :</strong> L\'image sera si sombre que vous verrez à peine les détails et commencerez à voir les poussières de votre propre œil.',
94
+ },
95
+ {
96
+ type: 'table',
97
+ headers: ['Objet à observer', 'Grossissement recommandé', 'Pupille idéale', 'Expérience visuelle'],
98
+ rows: [
99
+ ['Galaxies et Nébuleuses', 'Faible (25x - 50x)', '5 mm - 7 mm', 'Image lumineuse, champ de vision maximal.'],
100
+ ['Amas d\'étoiles', 'Moyen (80x - 120x)', '2 mm', 'Étoiles ponctuelles et fond de ciel bien noir.'],
101
+ ['Planètes et Lune', 'Élevé (150x ou plus)', '0,7 mm - 1 mm', 'Détails maximums, image plus petite et sombre.'],
102
+ ],
103
+ },
104
+ {
105
+ type: 'diagnostic',
106
+ variant: 'warning',
107
+ title: 'Observation visuelle ou astrophotographie ?',
108
+ icon: 'mdi:camera-off',
109
+ badge: 'Note technique',
110
+ html: 'Il est essentiel de clarifier que ces calculs sont exclusifs à l\'<strong>observation visuelle</strong>. De nombreux débutants tentent d\'appliquer ces grossissements à des caméras astro et sont frustrés ; en photographie, le calcul dépend de la taille des pixels et de la résolution par seconde d\'arc, pas de l\'oculaire.',
111
+ },
112
+ {
113
+ type: 'diagnostic',
114
+ variant: 'info',
115
+ title: 'Influence de la stabilité atmosphérique (Seeing)',
116
+ icon: 'mdi:weather-windy',
117
+ badge: 'Conseil d\'observation',
118
+ html: 'Même avec les meilleurs oculaires, les nuits où les étoiles scintillent intensément ne sont pas propices aux forts grossissements. Cela est dû à la turbulence atmosphérique (seeing) qui disperse la lumière. Lors de l\'observation des planètes, il est recommandé de commencer par un faible grossissement et de surveiller la stabilité de l\'image ; si l\'image semble être sous l\'eau, réduisez le grossissement pour voir plus de détails. Dans la plupart des zones urbaines, 150x à 200x est la limite supérieure pratique.',
119
+ },
120
+ ];
121
+
122
+ const faqSchema: WithContext<FAQPage> = {
123
+ '@context': 'https://schema.org',
124
+ '@type': 'FAQPage',
125
+ mainEntity: faq.map((item) => ({
126
+ '@type': 'Question',
127
+ name: item.question,
128
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
129
+ })),
130
+ };
131
+
132
+ const howToSchema: WithContext<HowTo> = {
133
+ '@context': 'https://schema.org',
134
+ '@type': 'HowTo',
135
+ name: title,
136
+ description,
137
+ step: howTo.map((step) => ({
138
+ '@type': 'HowToStep',
139
+ name: step.name,
140
+ text: step.text,
141
+ })),
142
+ };
143
+
144
+ const appSchema: WithContext<SoftwareApplication> = {
145
+ '@context': 'https://schema.org',
146
+ '@type': 'SoftwareApplication',
147
+ name: title,
148
+ description,
149
+ applicationCategory: 'UtilitiesApplication',
150
+ operatingSystem: 'Web',
151
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
152
+ inLanguage: 'fr',
153
+ };
154
+
155
+ export const content: EyepieceCalculatorLocaleContent = {
156
+ slug: 'calculateur-oculaire',
157
+ title,
158
+ description,
159
+ ui,
160
+ faq,
161
+ howTo,
162
+ seo,
163
+ bibliography,
164
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
165
+ };
@@ -0,0 +1,165 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { EyepieceCalculatorLocaleContent } from '../entry';
4
+
5
+ const title = 'Kalkulator Eyepiece & Simulator Visual';
6
+ const description = 'Hitung perbesaran, sudut pandang nyata (TFOV), dan exit pupil untuk setiap eyepiece dengan teleskop Anda. Termasuk simulator visual interaktif.';
7
+
8
+ const ui = {
9
+ toolTitle: 'Kalkulator Eyepiece Pintar',
10
+ telescopeTitle: 'Teleskop Anda',
11
+ apertureLabel: 'Apertur (mm)',
12
+ focalLabel: 'Panjang Fokus (mm)',
13
+ presetsLabel: 'Model Populer',
14
+ presetsPlaceholder: 'Pilih teleskop...',
15
+ addEyepieceBtn: '+ Tambah Eyepiece',
16
+ eyepiecesTitle: 'Eyepiece Anda',
17
+ eyepieceFocal: 'Fokus (mm)',
18
+ eyepieceAfov: 'Bidang Semu (°)',
19
+ removeEyepiece: 'Hapus',
20
+ magLabel: 'Perbesaran',
21
+ tfovLabel: 'Bidang Nyata',
22
+ pupilLabel: 'Exit Pupil',
23
+ simulatorTitle: 'Simulator Bidang Pandang',
24
+ targetLabel: 'Apa yang ingin Anda lihat?',
25
+ targetMoon: 'Bulan',
26
+ targetSaturn: 'Saturnus',
27
+ targetPleiades: 'Gugus Pleiades',
28
+ targetAndromeda: 'Galaksi Andromeda',
29
+ targetM13: 'Gugus M13',
30
+ statusDangerHighMag: 'Membuang uang: Anda memaksa teleskop melampaui batas fisiknya.',
31
+ statusDangerPupil: 'Cahaya terbuang: Exit pupil melebihi 7mm. Mata Anda tidak dapat memproses cahaya sebanyak itu.',
32
+ statusWarningHighMag: 'Hati-hati: Untuk perbesaran ini, Anda memerlukan langit yang sangat stabil (seeing bagus).',
33
+ statusWarningLowMag: 'Perbesaran rendah: Anda berada di bawah batas minimum yang disarankan. Anda mungkin melihat bayangan cermin sekunder atau kehilangan kontras.',
34
+ statusPerfectDeepSky: 'Kombinasi sempurna! Ideal untuk objek luas dan Deep Sky (gugus, nebula).',
35
+ statusPerfectPlanetary: 'Kombinasi sempurna! Ideal untuk melihat detail planet (cincin Saturnus, pita Jupiter).',
36
+ statusPerfectGeneral: 'Kombinasi serba guna yang luar biasa! Ideal untuk pengamatan umum semua jenis objek.',
37
+ ctaText: 'Berdasarkan peralatan Anda saat ini, kami menyarankan penggunaan eyepiece yang memberikan perbesaran antara {min}x dan {max}x.',
38
+ compareText: 'Bandingkan Eyepiece',
39
+ apertureHelp: 'Diameter tabung, biasanya tertera pada stiker asli atau kotak.',
40
+ focalHelp: 'Panjang fokus teleskop.',
41
+ afovHelp: 'Bidang pandang semu eyepiece. Plössl biasanya 52°, sudut lebar 68° atau lebih.',
42
+ };
43
+
44
+ const faq: EyepieceCalculatorLocaleContent['faq'] = [
45
+ {
46
+ question: 'Bagaimana cara menghitung perbesaran teleskop?',
47
+ answer: 'Rumusnya sederhana: bagi panjang fokus teleskop dengan panjang fokus eyepiece. Misalnya, teleskop 1000mm dengan eyepiece 10mm akan memberi Anda perbesaran 100x.',
48
+ },
49
+ {
50
+ question: 'Apa itu exit pupil dan mengapa itu penting?',
51
+ answer: 'Ini adalah diameter berkas cahaya yang keluar dari eyepiece dan masuk ke mata Anda. Dihitung dengan membagi apertur teleskop dengan perbesaran. Jika lebih dari 7mm, mata Anda tidak dapat menangkap semua cahaya, sehingga menyia-nyiakan kekuatan teleskop Anda.',
52
+ },
53
+ {
54
+ question: 'Bagaimana cara mengetahui bidang pandang nyata eyepiece saya?',
55
+ answer: 'Bidang Pandang Nyata (TFOV) dihitung dengan membagi bidang pandang semu eyepiece (AFOV) dengan perbesaran. Ini memberi tahu Anda berapa derajat langit yang sebenarnya Anda lihat.',
56
+ },
57
+ ];
58
+
59
+ const howTo: EyepieceCalculatorLocaleContent['howTo'] = [
60
+ { name: '1. Masukkan data teleskop', text: 'Ketik apertur dan panjang fokus tabung Anda atau pilih model populer dari daftar.' },
61
+ { name: '2. Tambahkan eyepiece Anda', text: 'Masukkan fokus dan bidang semu eyepiece Anda untuk membandingkan performanya.' },
62
+ { name: '3. Simulasikan tampilan', text: 'Pilih objek (Bulan, Saturnus, dll.) dan klik eyepiece Anda untuk melihat perubahan gambar dan apakah Anda berada dalam batas optik.' },
63
+ ];
64
+
65
+ const seo: EyepieceCalculatorLocaleContent['seo'] = [
66
+ {
67
+ type: 'summary',
68
+ title: 'Faktor kunci dalam memilih eyepiece ideal Anda',
69
+ items: [
70
+ 'Perbesaran Maksimum Nyata: 2x apertur dalam mm (tetapi dibatasi oleh kondisi langit hingga 200-250x).',
71
+ 'Perbesaran Minimum Berguna: Apertur dibagi 7 (batas pupil manusia).',
72
+ 'Rentang Optimal: Antara 0,5mm dan 7mm exit pupil.',
73
+ ],
74
+ },
75
+ { type: 'title', text: 'Cara Memilih Eyepiece untuk Teleskop Anda: Panduan Praktis', level: 2 },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Jangan membeli eyepiece hanya berdasarkan intuisi. Kunci pengamatan yang baik terletak pada keseimbangan antara resolusi teleskop dan kapasitas biologis mata Anda. Eyepiece yang salah pilih dapat membuat teleskop terbaik sekalipun terlihat buram atau terlalu gelap.',
79
+ },
80
+ { type: 'title', text: '1. Menghitung Perbesaran (M)', level: 3 },
81
+ {
82
+ type: 'paragraph',
83
+ html: 'Rumusnya sederhana: bagi fokus teleskop dengan fokus eyepiece. <br/><strong>Rumus:</strong> Fokus Teleskop / Fokus Eyepiece = Perbesaran. <br/>Contoh: Teleskop 1000mm dengan eyepiece 10mm memberikan perbesaran 100x.',
84
+ },
85
+ { type: 'title', text: '2. Mitos Perbesaran Maksimum', level: 3 },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'Batas sebenarnya bukan ditentukan oleh eyepiece, melainkan oleh apertur (diameter) tabung Anda. <br/>- <strong>Batas teoretis:</strong> 2 × Apertur dalam mm. <br/>- <strong>Batas nyata (Seeing rata-rata):</strong> Anda jarang bisa melebihi 200x - 250x karena turbulensi atmosfer, apa pun teleskopnya. Memaksa lebih hanya akan memberikan noda buram yang diperbesar.',
89
+ },
90
+ { type: 'title', text: '3. Exit Pupil: Faktor Kecerahan', level: 3 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Exit pupil adalah silinder cahaya yang keluar dari eyepiece menuju mata Anda. <br/>- <strong>Jika lebih besar dari 7mm:</strong> Mata Anda tidak dapat terbuka selebar itu; Anda kehilangan cahaya dan membuang uang. <br/>- <strong>Jika lebih kecil dari 0,5mm:</strong> Gambar akan sangat gelap sehingga Anda nyaris tidak melihat detail dan mulai melihat "floaters" di mata Anda sendiri.',
94
+ },
95
+ {
96
+ type: 'table',
97
+ headers: ['Objek untuk Diamati', 'Perbesaran Disarankan', 'Pupil Ideal', 'Pengalaman Visual'],
98
+ rows: [
99
+ ['Galaksi dan Nebula', 'Rendah (25x - 50x)', '5mm - 7mm', 'Gambar cerah, bidang pandang maksimal.'],
100
+ ['Gugus Bintang', 'Sedang (80x - 120x)', '2mm', 'Bintang titik dan latar langit gelap.'],
101
+ ['Planet dan Bulan', 'Tinggi (150x atau lebih)', '0,7mm - 1mm', 'Detail maksimal, gambar lebih kecil dan redup.'],
102
+ ],
103
+ },
104
+ {
105
+ type: 'diagnostic',
106
+ variant: 'warning',
107
+ title: 'Penggunaan Visual atau Astrofotografi?',
108
+ icon: 'mdi:camera-off',
109
+ badge: 'Catatan Teknis',
110
+ html: 'Penting untuk memperjelas bahwa perhitungan ini eksklusif untuk <strong>pengamatan visual</strong>. Banyak pemula mencoba menerapkan perbesaran ini pada kamera astro dan merasa frustrasi; dalam fotografi, perhitungan bergantung pada ukuran piksel dan resolusi per detik busur, bukan pada eyepiece.',
111
+ },
112
+ {
113
+ type: 'diagnostic',
114
+ variant: 'info',
115
+ title: 'Pengaruh Stabilitas Atmosfer (Seeing)',
116
+ icon: 'mdi:weather-windy',
117
+ badge: 'Tips Pengamatan',
118
+ html: 'Bahkan dengan eyepiece terbaik, malam di mana bintang-bintang berkelip sangat kuat tidak cocok untuk perbesaran tinggi. Hal ini disebabkan oleh turbulensi atmosfer (seeing) yang membiaskan cahaya. Saat mengamati planet, disarankan untuk mulai dengan perbesaran rendah dan perhatikan stabilitas gambar; jika gambar tampak seperti di bawah air, kurangi perbesaran untuk melihat lebih banyak detail. Di sebagian besar wilayah perkotaan, 150x atau 200x adalah batas praktis.',
119
+ },
120
+ ];
121
+
122
+ const faqSchema: WithContext<FAQPage> = {
123
+ '@context': 'https://schema.org',
124
+ '@type': 'FAQPage',
125
+ mainEntity: faq.map((item) => ({
126
+ '@type': 'Question',
127
+ name: item.question,
128
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
129
+ })),
130
+ };
131
+
132
+ const howToSchema: WithContext<HowTo> = {
133
+ '@context': 'https://schema.org',
134
+ '@type': 'HowTo',
135
+ name: title,
136
+ description,
137
+ step: howTo.map((step) => ({
138
+ '@type': 'HowToStep',
139
+ name: step.name,
140
+ text: step.text,
141
+ })),
142
+ };
143
+
144
+ const appSchema: WithContext<SoftwareApplication> = {
145
+ '@context': 'https://schema.org',
146
+ '@type': 'SoftwareApplication',
147
+ name: title,
148
+ description,
149
+ applicationCategory: 'UtilitiesApplication',
150
+ operatingSystem: 'Web',
151
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'IDR' },
152
+ inLanguage: 'id',
153
+ };
154
+
155
+ export const content: EyepieceCalculatorLocaleContent = {
156
+ slug: 'kalkulator-eyepiece',
157
+ title,
158
+ description,
159
+ ui,
160
+ faq,
161
+ howTo,
162
+ seo,
163
+ bibliography,
164
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
165
+ };
@@ -0,0 +1,165 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { EyepieceCalculatorLocaleContent } from '../entry';
4
+
5
+ const title = 'Calcolatore di Oculari e Simulatore Visivo';
6
+ const description = 'Calcola ingrandimento, campo visivo reale (TFOV) e pupilla d\'uscita per ogni oculare con il tuo telescopio. Include un simulatore visivo interattivo.';
7
+
8
+ const ui = {
9
+ toolTitle: 'Calcolatore Intelligente di Oculari',
10
+ telescopeTitle: 'Il Tuo Telescopio',
11
+ apertureLabel: 'Apertura (mm)',
12
+ focalLabel: 'Lunghezza Focale (mm)',
13
+ presetsLabel: 'Modelli Popolari',
14
+ presetsPlaceholder: 'Scegli un telescopio...',
15
+ addEyepieceBtn: '+ Aggiungi Oculare',
16
+ eyepiecesTitle: 'I Tuoi Oculari',
17
+ eyepieceFocal: 'Focale (mm)',
18
+ eyepieceAfov: 'Campo Apparente (°)',
19
+ removeEyepiece: 'Rimuovi',
20
+ magLabel: 'Ingrandimento',
21
+ tfovLabel: 'Campo Reale',
22
+ pupilLabel: 'Pupilla d\'Uscita',
23
+ simulatorTitle: 'Simulatore di Campo Visivo',
24
+ targetLabel: 'Cosa vuoi vedere?',
25
+ targetMoon: 'La Luna',
26
+ targetSaturn: 'Saturno',
27
+ targetPleiades: 'Ammasso delle Pleiadi',
28
+ targetAndromeda: 'Galassia di Andromeda',
29
+ targetM13: 'Ammasso M13',
30
+ statusDangerHighMag: 'Soldi sprecati: Stai spingendo il telescopio oltre i suoi limiti fisici.',
31
+ statusDangerPupil: 'Luce sprecata: La pupilla d\'uscita supera i 7 mm. Il tuo occhio non può elaborare così tanta luce.',
32
+ statusWarningHighMag: 'Attenzione: Per questo ingrandimento avrai bisogno di un cielo eccezionalmente stabile (buon seeing).',
33
+ statusWarningLowMag: 'Ingrandimento basso: Sei al di sotto del minimo raccomandato. Potresti vedere l\'ombra dello specchio secondario o perdere contrasto.',
34
+ statusPerfectDeepSky: 'Combinazione perfetta! Ideale per oggetti estesi e Cielo Profondo (ammassi, nebulose).',
35
+ statusPerfectPlanetary: 'Combinazione perfetta! Ideale per vedere i dettagli planetari (anelli di Saturno, bande di Giove).',
36
+ statusPerfectGeneral: 'Ottima combinazione tuttofare! Ideale per l\'osservazione generale di ogni tipo di oggetto.',
37
+ ctaText: 'In base alla tua attrezzatura attuale, ti consigliamo di utilizzare oculari che offrano un ingrandimento compreso tra {min}x e {max}x.',
38
+ compareText: 'Confronta Oculari',
39
+ apertureHelp: 'Il diametro del tubo, solitamente indicato sull\'adesivo originale o sulla scatola.',
40
+ focalHelp: 'La lunghezza focale del telescopio.',
41
+ afovHelp: 'Il campo visivo apparente dell\'oculare. Un Plössl è solitamente di 52°, un grandangolo 68° o più.',
42
+ };
43
+
44
+ const faq: EyepieceCalculatorLocaleContent['faq'] = [
45
+ {
46
+ question: 'Come si calcola l\'ingrandimento di un telescopio?',
47
+ answer: 'La formula è semplice: dividi la lunghezza focale del telescopio per quella dell\'oculare. Ad esempio, un telescopio da 1000 mm con un oculare da 10 mm ti dà 100 ingrandimenti (100x).',
48
+ },
49
+ {
50
+ question: 'Cos\'è la pupilla d\'uscita e perché è importante?',
51
+ answer: 'È il diametro del fascio di luce che esce dall\'oculare ed entra nel tuo occhio. Si calcola dividendo l\'apertura del telescopio per l\'ingrandimento. Se supera i 7 mm, il tuo occhio non può catturare tutta la luce, sprecando la potenza del telescopio.',
52
+ },
53
+ {
54
+ question: 'Come conosco il campo visivo reale del mio oculare?',
55
+ answer: 'Il campo visivo reale (TFOV) si calcola dividendo il campo apparente dell\'oculare (AFOV) per l\'ingrandimento. Questo ti dice quanti gradi di cielo vedi effettivamente.',
56
+ },
57
+ ];
58
+
59
+ const howTo: EyepieceCalculatorLocaleContent['howTo'] = [
60
+ { name: '1. Inserisci i dati del tuo telescopio', text: 'Scrivi l\'apertura e la focale del tuo tubo o seleziona un modello popolare dall\'elenco.' },
61
+ { name: '2. Aggiungi i tuoi oculari', text: 'Inserisci la focale e il campo apparente dei tuoi oculari per confrontare le loro prestazioni.' },
62
+ { name: '3. Simula la visione', text: 'Seleziona un oggetto (Luna, Saturno, ecc.) e clicca sui tuoi oculari per vedere come cambia l\'immagine e se sei entro i limiti ottici.' },
63
+ ];
64
+
65
+ const seo: EyepieceCalculatorLocaleContent['seo'] = [
66
+ {
67
+ type: 'summary',
68
+ title: 'Fattori chiave per scegliere il tuo oculare ideale',
69
+ items: [
70
+ 'Ingrandimento Massimo Reale: 2x l\'apertura in mm (ma limitato a 200-250x dalle condizioni del cielo).',
71
+ 'Ingrandimento Minimo Utile: Apertura divisa per 7 (limite della pupilla umana).',
72
+ 'Intervallo Ottimale: Tra 0,5 mm e 7 mm di pupilla d\'uscita.',
73
+ ],
74
+ },
75
+ { type: 'title', text: 'Come scegliere oculari per il tuo telescopio: Guida Pratica', level: 2 },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Non comprare oculari per intuito. La chiave per una buona osservazione risiede nel bilanciare la risoluzione del tuo telescopio con la capacità biologica del tuo occhio. Un oculare mal scelto può rendere sfocato o troppo scuro il miglior telescopio del mondo.',
79
+ },
80
+ { type: 'title', text: '1. Il calcolo dell\'ingrandimento (I)', level: 3 },
81
+ {
82
+ type: 'paragraph',
83
+ html: 'La formula è semplice: dividi la focale del telescopio per la focale dell\'oculare. <br/><strong>Formula:</strong> Focale Telescopio / Focale Oculare = Ingrandimento. <br/>Esempio: Un telescopio da 1000 mm con un oculare da 10 mm ti dà 100 ingrandimenti (100x).',
84
+ },
85
+ { type: 'title', text: '2. Il mito dell\'ingrandimento massimo', level: 3 },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'Il limite reale non è posto dall\'oculare, ma dall\'apertura (il diametro) del tuo tubo. <br/>- <strong>Limite teorico:</strong> 2 × Apertura in mm. <br/>- <strong>Limite reale (Seeing medio):</strong> Raramente supererai i 200x - 250x a causa della turbolenza atmosferica, a prescindere dal tuo telescopio. Spingere oltre darà solo una macchia sfocata ingrandita.',
89
+ },
90
+ { type: 'title', text: '3. La pupilla d\'uscita: il fattore luminosità', level: 3 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'La pupilla d\'uscita è il cilindro di luce che esce dall\'oculare verso il tuo occhio. <br/>- <strong>Se è maggiore di 7 mm:</strong> Il tuo occhio non può aprirsi così tanto; stai perdendo luce e letteralmente sprecando soldi. <br/>- <strong>Se è minore di 0,5 mm:</strong> L\'immagine sarà così scura che vedrai a malapena i dettagli e inizierai a vedere le impurità del tuo stesso occhio.',
94
+ },
95
+ {
96
+ type: 'table',
97
+ headers: ['Oggetto da osservare', 'Ingrandimento raccomandato', 'Pupilla ideale', 'Esperienza visiva'],
98
+ rows: [
99
+ ['Galassie e Nebulose', 'Basso (25x - 50x)', '5 mm - 7 mm', 'Immagine luminosa, massimo campo visivo.'],
100
+ ['Ammassi stellari', 'Medio (80x - 120x)', '2 mm', 'Stelle puntiformi e fondo cielo ben nero.'],
101
+ ['Pianeti e Luna', 'Alto (150x o più)', '0,7 mm - 1 mm', 'Massimi dettagli, immagine più piccola e scura.'],
102
+ ],
103
+ },
104
+ {
105
+ type: 'diagnostic',
106
+ variant: 'warning',
107
+ title: 'Uso visivo o Astrofotografia?',
108
+ icon: 'mdi:camera-off',
109
+ badge: 'Nota tecnica',
110
+ html: 'È fondamentale chiarire che questi calcoli sono esclusivi per l\'<strong>osservazione visiva</strong>. Molti principianti cercano di applicare questi ingrandimenti alle fotocamere astronomiche e rimangono delusi; in fotografia, il calcolo dipende dalla dimensione dei pixel e dalla risoluzione per arco-secondo, non dall\'oculare.',
111
+ },
112
+ {
113
+ type: 'diagnostic',
114
+ variant: 'info',
115
+ title: 'Influenza della stabilità atmosferica (Seeing)',
116
+ icon: 'mdi:weather-windy',
117
+ badge: 'Consiglio di osservazione',
118
+ html: 'Anche con i migliori oculari, le notti in cui le stelle scintillano intensamente non sono adatte ad alti ingrandimenti. Questo è dovuto alla turbolenza atmosferica (seeing) che disperde la luce. Osservando i pianeti, si consiglia di iniziare con un basso ingrandimento e osservare la stabilità dell\'immagine; se l\'immagine appare come se fosse sott\'acqua, riduci l\'ingrandimento per vedere più dettagli. Nella maggior parte delle aree urbane, 150x o 200x è il limite pratico.',
119
+ },
120
+ ];
121
+
122
+ const faqSchema: WithContext<FAQPage> = {
123
+ '@context': 'https://schema.org',
124
+ '@type': 'FAQPage',
125
+ mainEntity: faq.map((item) => ({
126
+ '@type': 'Question',
127
+ name: item.question,
128
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
129
+ })),
130
+ };
131
+
132
+ const howToSchema: WithContext<HowTo> = {
133
+ '@context': 'https://schema.org',
134
+ '@type': 'HowTo',
135
+ name: title,
136
+ description,
137
+ step: howTo.map((step) => ({
138
+ '@type': 'HowToStep',
139
+ name: step.name,
140
+ text: step.text,
141
+ })),
142
+ };
143
+
144
+ const appSchema: WithContext<SoftwareApplication> = {
145
+ '@context': 'https://schema.org',
146
+ '@type': 'SoftwareApplication',
147
+ name: title,
148
+ description,
149
+ applicationCategory: 'UtilitiesApplication',
150
+ operatingSystem: 'Web',
151
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
152
+ inLanguage: 'it',
153
+ };
154
+
155
+ export const content: EyepieceCalculatorLocaleContent = {
156
+ slug: 'calcolatore-oculari',
157
+ title,
158
+ description,
159
+ ui,
160
+ faq,
161
+ howTo,
162
+ seo,
163
+ bibliography,
164
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
165
+ };