@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 = 'Kalkulator Okularów i Symulator Wizualny';
6
+ const description = 'Oblicz powiększenie, rzeczywiste pole widzenia (TFOV) i źrenicę wyjściową dla dowolnego okularu w Twoim teleskopie. Zawiera interaktywny symulator wizualny.';
7
+
8
+ const ui = {
9
+ toolTitle: 'Inteligentny Kalkulator Okularów',
10
+ telescopeTitle: 'Twój Teleskop',
11
+ apertureLabel: 'Apertura (mm)',
12
+ focalLabel: 'Ogniskowa (mm)',
13
+ presetsLabel: 'Popularne Modele',
14
+ presetsPlaceholder: 'Wybierz teleskop...',
15
+ addEyepieceBtn: '+ Dodaj Okular',
16
+ eyepiecesTitle: 'Twoje Okulary',
17
+ eyepieceFocal: 'Ogniskowa (mm)',
18
+ eyepieceAfov: 'Pole Pozorne (°)',
19
+ removeEyepiece: 'Usuń',
20
+ magLabel: 'Powiększenie',
21
+ tfovLabel: 'Pole Rzeczywiste',
22
+ pupilLabel: 'Źrenica Wyjściowa',
23
+ simulatorTitle: 'Symulator Pola Widzenia',
24
+ targetLabel: 'Co chcesz zobaczyć?',
25
+ targetMoon: 'Księżyc',
26
+ targetSaturn: 'Saturn',
27
+ targetPleiades: 'Gromada Plejady',
28
+ targetAndromeda: 'Galaktyka Andromedy',
29
+ targetM13: 'Gromada M13',
30
+ statusDangerHighMag: 'Wyrzucone pieniądze: Forsujesz teleskop powyżej jego fizycznych granic.',
31
+ statusDangerPupil: 'Strata światła: Źrenica wyjściowa przekracza 7 mm. Twoje oko nie przetworzy takiej ilości światła.',
32
+ statusWarningHighMag: 'Ostrożnie: Przy takim powiększeniu będziesz potrzebować wyjątkowo stabilnego nieba (dobrego seeingu).',
33
+ statusWarningLowMag: 'Małe powiększenie: Jesteś poniżej zalecanego minimum. Możesz widzieć cień wtórnego lustra lub stracić kontrast.',
34
+ statusPerfectDeepSky: 'Idealna kombinacja! Świetna do rozległych obiektów i Głębokiego Nieba (gromady, mgławice).',
35
+ statusPerfectPlanetary: 'Idealna kombinacja! Świetna do obserwacji szczegółów planetarnych (pierścienie Saturna, pasy Jowisza).',
36
+ statusPerfectGeneral: 'Doskonała uniwersalna kombinacja! Idealna do ogólnych obserwacji wszelkiego typu obiektów.',
37
+ ctaText: 'Biorąc pod uwagę Twój obecny sprzęt, zalecamy używanie okularów dających powiększenie od {min}x do {max}x.',
38
+ compareText: 'Porównaj Okulary',
39
+ apertureHelp: 'Średnica tubusu, zwykle podana na oryginalnej naklejce lub pudełku.',
40
+ focalHelp: 'Ogniskowa teleskopu.',
41
+ afovHelp: 'Pozorne pole widzenia okularu. Plössl to zazwyczaj 52°, szerokokątne 68° lub więcej.',
42
+ };
43
+
44
+ const faq: EyepieceCalculatorLocaleContent['faq'] = [
45
+ {
46
+ question: 'Jak obliczyć powiększenie teleskopu?',
47
+ answer: 'Wzór jest prosty: podziel ogniskową teleskopu przez ogniskową okularu. Na przykład teleskop 1000 mm z okularem 10 mm da powiększenie 100x.',
48
+ },
49
+ {
50
+ question: 'Co to jest źrenica wyjściowa i dlaczego jest ważna?',
51
+ answer: 'To średnica wiązki światła wychodzącej z okularu i wpadającej do Twojego oka. Oblicza się ją dzieląc aperturę teleskopu przez powiększenie. Jeśli przekracza 7 mm, Twoje oko nie przechwyci całego światła, co marnuje potencjał teleskopu.',
52
+ },
53
+ {
54
+ question: 'Jak sprawdzić rzeczywiste pole widzenia mojego okularu?',
55
+ answer: 'Rzeczywiste pole widzenia (TFOV) oblicza się dzieląc pozorne pole widzenia okularu (AFOV) przez powiększenie. Informuje to o tym, ile stopni nieba faktycznie widzisz.',
56
+ },
57
+ ];
58
+
59
+ const howTo: EyepieceCalculatorLocaleContent['howTo'] = [
60
+ { name: '1. Wprowadź dane teleskopu', text: 'Wpisz aperturę i ogniskową tubusu lub wybierz popularny model z listy.' },
61
+ { name: '2. Dodaj swoje okulary', text: 'Wpisz ogniskową i pole pozorne swoich okularów, aby porównać ich parametry.' },
62
+ { name: '3. Symuluj widok', text: 'Wybierz obiekt (Księżyc, Saturn itp.) i kliknij w okulary, aby zobaczyć, jak zmieni się obraz i czy mieścisz się w granicach optycznych.' },
63
+ ];
64
+
65
+ const seo: EyepieceCalculatorLocaleContent['seo'] = [
66
+ {
67
+ type: 'summary',
68
+ title: 'Kluczowe czynniki przy wyborze okularu',
69
+ items: [
70
+ 'Maksymalne powiększenie: 2x apertura w mm (ale ograniczone przez atmosferę do ok. 200-250x).',
71
+ 'Minimalne powiększenie: Apertura podzielona przez 7 (granica ludzkiej źrenicy).',
72
+ 'Optymalny zakres: Źrenica wyjściowa od 0,5 mm do 7 mm.',
73
+ ],
74
+ },
75
+ { type: 'title', text: 'Jak dobrać okulary do teleskopu: Praktyczny Przewodnik', level: 2 },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Nie kupuj okularów na wyczucie. Kluczem do udanych obserwacji jest zbalansowanie rozdzielczości teleskopu z biologicznymi możliwościami oka. Źle dobrany okular może sprawić, że nawet najlepszy teleskop na świecie da niewyraźny lub zbyt ciemny obraz.',
79
+ },
80
+ { type: 'title', text: '1. Obliczanie powiększenia (M)', level: 3 },
81
+ {
82
+ type: 'paragraph',
83
+ html: 'Wzór jest prosty: podziel ogniskową teleskopu przez ogniskową okularu. <br/><strong>Wzór:</strong> Ogniskowa Teleskopu / Ogniskowa Okularu = Powiększenie. <br/>Przykład: Teleskop 1000 mm z okularem 10 mm daje powiększenie 100x.',
84
+ },
85
+ { type: 'title', text: '2. Mit maksymalnego powiększenia', level: 3 },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'Realnej granicy nie stawia okular, lecz apertura (średnica) teleskopu. <br/>- <strong>Granica teoretyczna:</strong> 2 × Apertura w mm. <br/>- <strong>Granica realna (Przeciętny seeing):</strong> Rzadko przekroczysz 200x - 250x z powodu turbulencji atmosferycznych, bez względu na posiadany teleskop. Dalsze zwiększanie da tylko dużą, rozmazaną plamę.',
89
+ },
90
+ { type: 'title', text: '3. Źrenica wyjściowa: czynnik jasności', level: 3 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Źrenica wyjściowa to krążek światła wychodzący z okularu do Twojego oka. <br/>- <strong>Powyżej 7 mm:</strong> Twoje oko nie otworzy się tak szeroko; tracisz światło i dosłownie wyrzucasz pieniądze. <br/>- <strong>Poniżej 0,5 mm:</strong> Obraz będzie tak ciemny, że ledwo dostrzeżesz detale i zaczniesz widzieć "męty" we własnym oku.',
94
+ },
95
+ {
96
+ type: 'table',
97
+ headers: ['Obiekt obserwacji', 'Zalecane powiększenie', 'Idealna źrenica', 'Wrażenia wizualne'],
98
+ rows: [
99
+ ['Galaktyki i Mgławice', 'Małe (25x - 50x)', '5 mm - 7 mm', 'Jasny obraz, maksymalne pole widzenia.'],
100
+ ['Gromady gwiazd', 'Średnie (80x - 120x)', '2 mm', 'Punktowe gwiazdy i ciemne tło nieba.'],
101
+ ['Planety i Księżyc', 'Duże (150x lub więcej)', '0,7 mm - 1 mm', 'Maksymalny detal, obraz mniejszy i ciemniejszy.'],
102
+ ],
103
+ },
104
+ {
105
+ type: 'diagnostic',
106
+ variant: 'warning',
107
+ title: 'Użycie wizualne czy astrofotografia?',
108
+ icon: 'mdi:camera-off',
109
+ badge: 'Uwaga techniczna',
110
+ html: 'Należy wyjaśnić, że obliczenia te dotyczą wyłącznie <strong>obserwacji wizualnych</strong>. Wielu początkujących próbuje zastosować te powiększenia do kamer astro i czuje frustrację; w fotografii obliczenia zależą od rozmiaru piksela i rozdzielczości na sekundę łuku, a nie od okularu.',
111
+ },
112
+ {
113
+ type: 'diagnostic',
114
+ variant: 'info',
115
+ title: 'Wpływ stabilności atmosferycznej (Seeing)',
116
+ icon: 'mdi:weather-windy',
117
+ badge: 'Wskazówka obserwacyjna',
118
+ html: 'Nawet z najlepszymi okularami noce, w których gwiazdy intensywnie migoczą, nie nadają się do dużych powiększeń. Jest to spowodowane turbulencjami atmosferycznymi (seeing), które rozpraszają światło. Podczas obserwacji planet zaleca się rozpoczęcie od małego powiększenia i obserwowanie stabilności obrazu; jeśli obraz wydaje się być pod wodą, zmniejsz powiększenie, aby zobaczyć więcej szczegółów. W większości obszarów miejskich powiększenie 150x do 200x jest praktyczną górną granicą.',
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: 'pl',
153
+ };
154
+
155
+ export const content: EyepieceCalculatorLocaleContent = {
156
+ slug: 'kalkulator-okularow',
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 = 'Calculadora de Oculares & Simulador Visual';
6
+ const description = 'Calcule a ampliação, campo de visão real (TFOV) e pupila de saída para qualquer ocular com o seu telescópio. Inclui um simulador visual interativo.';
7
+
8
+ const ui = {
9
+ toolTitle: 'Calculadora Inteligente de Oculares',
10
+ telescopeTitle: 'O Seu Telescópio',
11
+ apertureLabel: 'Abertura (mm)',
12
+ focalLabel: 'Distância Focal (mm)',
13
+ presetsLabel: 'Modelos Populares',
14
+ presetsPlaceholder: 'Escolha um telescópio...',
15
+ addEyepieceBtn: '+ Adicionar Ocular',
16
+ eyepiecesTitle: 'As Suas Oculares',
17
+ eyepieceFocal: 'Focal (mm)',
18
+ eyepieceAfov: 'Campo Aparente (°)',
19
+ removeEyepiece: 'Remover',
20
+ magLabel: 'Ampliação',
21
+ tfovLabel: 'Campo Real',
22
+ pupilLabel: 'Pupila de Saída',
23
+ simulatorTitle: 'Simulador de Campo Visual',
24
+ targetLabel: 'O que deseja ver?',
25
+ targetMoon: 'A Lua',
26
+ targetSaturn: 'Saturno',
27
+ targetPleiades: 'Enxame das Pléiades',
28
+ targetAndromeda: 'Galáxia de Andrômeda',
29
+ targetM13: 'Enxame M13',
30
+ statusDangerHighMag: 'Dinheiro desperdiçado: Está a forçar o telescópio para além dos seus limites físicos.',
31
+ statusDangerPupil: 'Luz perdida: A pupila de saída excede 7 mm. O seu olho não consegue processar tanta luz.',
32
+ statusWarningHighMag: 'Cuidado: Para esta ampliação, precisará de um céu excecionalmente estável (bom seeing).',
33
+ statusWarningLowMag: 'Ampliação baixa: Está abaixo do mínimo recomendado. Poderá ver a sombra do espelho secundário ou perder contraste.',
34
+ statusPerfectDeepSky: 'Combinação perfeita! Ideal para objetos extensos e Céu Profundo (enxames, nebulosas).',
35
+ statusPerfectPlanetary: 'Combinação perfeita! Ideal para ver detalhes planetários (anéis de Saturno, bandas de Júpiter).',
36
+ statusPerfectGeneral: 'Excelente combinação polivalente! Ideal para observação geral de todo o tipo de objetos.',
37
+ ctaText: 'Com base no seu equipamento atual, recomendamos a utilização de oculares que ofereçam uma ampliação entre {min}x e {max}x.',
38
+ compareText: 'Comparar Oculares',
39
+ apertureHelp: 'O diâmetro do tubo, normalmente indicado no autocolante original ou na caixa.',
40
+ focalHelp: 'A distância focal do telescópio.',
41
+ afovHelp: 'O campo de visão aparente da ocular. Um Plössl tem normalmente 52°, uma grande angular 68° ou mais.',
42
+ };
43
+
44
+ const faq: EyepieceCalculatorLocaleContent['faq'] = [
45
+ {
46
+ question: 'Como se calcula a ampliação de um telescópio?',
47
+ answer: 'A fórmula é simples: divida a distância focal do telescópio pela focal da ocular. Por exemplo, um telescópio de 1000 mm com uma ocular de 10 mm dá 100 ampliações (100x).',
48
+ },
49
+ {
50
+ question: 'O que é a pupila de saída e por que é importante?',
51
+ answer: 'É o diâmetro do feixe de luz que sai da ocular e entra no seu olho. Calcula-se dividindo a abertura do telescópio pela ampliação. Se exceder 7 mm, o seu olho não conseguirá captar toda a luz, desperdiçando a potência do telescópio.',
52
+ },
53
+ {
54
+ question: 'Como conheço o campo visual real da minha ocular?',
55
+ answer: 'O campo visual real (TFOV) calcula-se dividindo o campo aparente da ocular (AFOV) pela ampliação. Isto diz-lhe quantos graus de céu vê realmente.',
56
+ },
57
+ ];
58
+
59
+ const howTo: EyepieceCalculatorLocaleContent['howTo'] = [
60
+ { name: '1. Introduza os dados do seu telescópio', text: 'Escreva a abertura e a focal do seu tubo ou selecione um modelo popular da lista.' },
61
+ { name: '2. Adicione as suas oculares', text: 'Introduza a focal e o campo aparente das suas oculares para comparar o seu desempenho.' },
62
+ { name: '3. Simule a visão', text: 'Selecione um objeto (Lua, Saturno, etc.) e clique nas suas oculares para ver como a imagem muda e se está dentro dos limites ópticos.' },
63
+ ];
64
+
65
+ const seo: EyepieceCalculatorLocaleContent['seo'] = [
66
+ {
67
+ type: 'summary',
68
+ title: 'Fatores chave para escolher a sua ocular ideal',
69
+ items: [
70
+ 'Ampliação Máxima Real: 2x a abertura em mm (mas limitada a 200-250x pelas condições do céu).',
71
+ 'Ampliação Mínima Útil: Abertura dividida por 7 (limite da pupila humana).',
72
+ 'Intervalo Ideal: Entre 0,5 mm e 7 mm de pupila de saída.',
73
+ ],
74
+ },
75
+ { type: 'title', text: 'Como escolher oculares para o seu telescópio: Guia Prático', level: 2 },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Não compre oculares por intuição. A chave para uma boa observação reside no equilíbrio entre a resolução do seu telescópio e a capacidade biológica do seu olho. Uma ocular mal escolhida pode tornar o melhor telescópio do mundo desfocado ou demasiado escuro.',
79
+ },
80
+ { type: 'title', text: '1. O cálculo da ampliação (A)', level: 3 },
81
+ {
82
+ type: 'paragraph',
83
+ html: 'A fórmula é simples: divida a focal do telescópio pela focal da ocular. <br/><strong>Fórmula:</strong> Focal do Telescópio / Focal da Ocular = Ampliação. <br/>Exemplo: Um telescópio de 1000 mm com uma ocular de 10 mm oferece 100 ampliações (100x).',
84
+ },
85
+ { type: 'title', text: '2. O mito da ampliação máxima', level: 3 },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'O limite real não é definido pela ocular, mas pela abertura (o diâmetro) do seu tubo. <br/>- <strong>Limite teórico:</strong> 2 × Abertura em mm. <br/>- <strong>Limite real (Seeing médio):</strong> Raramente ultrapassará os 200x - 250x devido à turbulência atmosférica, independentemente do seu telescópio. Forçar mais resultará apenas numa mancha desfocada ampliada.',
89
+ },
90
+ { type: 'title', text: '3. A pupila de saída: o fator brilho', level: 3 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'A pupila de saída é o cilindro de luz que sai da ocular em direção ao seu olho. <br/>- <strong>Se for superior a 7 mm:</strong> O seu olho não consegue abrir-se tanto; está a perder luz e literalmente a desperdiçar dinheiro. <br/>- <strong>Se for inferior a 0,5 mm:</strong> A imagem será tão escura que mal verá detalhes e começará a ver as moscas volantes do seu próprio olho.',
94
+ },
95
+ {
96
+ type: 'table',
97
+ headers: ['Objeto para observar', 'Ampliação recomendada', 'Pupila ideal', 'Experiência visual'],
98
+ rows: [
99
+ ['Galáxias e Nebulosas', 'Baixa (25x - 50x)', '5 mm - 7 mm', 'Imagem brilhante, campo de visão máximo.'],
100
+ ['Enxames Estelares', 'Média (80x - 120x)', '2 mm', 'Estrelas pontuais e fundo de céu bem negro.'],
101
+ ['Planetas e Lua', 'Alta (150x ou mais)', '0,7 mm - 1 mm', 'Detalhes máximos, imagem mais pequena e escura.'],
102
+ ],
103
+ },
104
+ {
105
+ type: 'diagnostic',
106
+ variant: 'warning',
107
+ title: 'Uso visual ou Astrofotografia?',
108
+ icon: 'mdi:camera-off',
109
+ badge: 'Nota técnica',
110
+ html: 'É vital esclarecer que estes cálculos são exclusivos para a <strong>observação visual</strong>. Muitos principiantes tentam aplicar estas ampliações a câmaras astro e sentem-se frustrados; na fotografia, o cálculo depende do tamanho do píxel e da resolução por segundo de arco, não da ocular.',
111
+ },
112
+ {
113
+ type: 'diagnostic',
114
+ variant: 'info',
115
+ title: 'Influência da estabilidade atmosférica (Seeing)',
116
+ icon: 'mdi:weather-windy',
117
+ badge: 'Conselho de observação',
118
+ html: 'Mesmo com as melhores oculares, as noites em que as estrelas cintilam intensamente não são adequadas para grandes ampliações. Isto deve-se à turbulência atmosférica (seeing) que dispersa a luz. Ao observar planetas, recomenda-se começar por uma ampliação baixa e vigiar la estabilidade da imagem; se a imagem parecer estar debaixo de água, baixe a ampliação para ver mais detalhes. Na maioria das zonas urbanas, 150x a 200x é o limite prático.',
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: 'pt',
153
+ };
154
+
155
+ export const content: EyepieceCalculatorLocaleContent = {
156
+ slug: 'calculadora-de-oculares',
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 = 'Калькулятор Окуляров и Визуальный Симулятор';
6
+ const description = 'Рассчитайте увеличение, истинное поле зрения (TFOV) и выходной зрачок для любого окуляра с вашим телескопом. Включает интерактивный визуальный симулятор.';
7
+
8
+ const ui = {
9
+ toolTitle: 'Умный Калькулятор Окуляров',
10
+ telescopeTitle: 'Ваш Телескоп',
11
+ apertureLabel: 'Апертура (мм)',
12
+ focalLabel: 'Фокусное расстояние (мм)',
13
+ presetsLabel: 'Популярные модели',
14
+ presetsPlaceholder: 'Выберите телескоп...',
15
+ addEyepieceBtn: '+ Добавить окуляр',
16
+ eyepiecesTitle: 'Ваши окуляры',
17
+ eyepieceFocal: 'Фокус (мм)',
18
+ eyepieceAfov: 'Поле зрения (°)',
19
+ removeEyepiece: 'Удалить',
20
+ magLabel: 'Увеличение',
21
+ tfovLabel: 'Истинное поле',
22
+ pupilLabel: 'Выходной зрачок',
23
+ simulatorTitle: 'Симулятор поля зрения',
24
+ targetLabel: 'Что вы хотите увидеть?',
25
+ targetMoon: 'Луна',
26
+ targetSaturn: 'Сатурн',
27
+ targetPleiades: 'Плеяды',
28
+ targetAndromeda: 'Галактика Андромеды',
29
+ targetM13: 'Скопление M13',
30
+ statusDangerHighMag: 'Деньги на ветер: Вы форсируете телескоп за пределы его физических возможностей.',
31
+ statusDangerPupil: 'Лишний свет: Выходной зрачок превышает 7 мм. Ваш глаз не может усвоить столько света.',
32
+ statusWarningHighMag: 'Осторожно: Для такого увеличения потребуется исключительно спокойная атмосфера (хороший сиинг).',
33
+ statusWarningLowMag: 'Малое увеличение: Вы ниже рекомендованного минимума. Возможно, вы увидите тень вторичного зеркала или потеряете контраст.',
34
+ statusPerfectDeepSky: 'Идеальное сочетание! Подходит для протяженных объектов и Дипскай (скопления, туманности).',
35
+ statusPerfectPlanetary: 'Идеальное сочетание! Подходит для наблюдения деталей планет (кольца Сатурна, полосы Юпитера).',
36
+ statusPerfectGeneral: 'Отличное универсальное сочетание! Подходит для общих наблюдений любых типов объектов.',
37
+ ctaText: 'Для вашего оборудования мы рекомендуем использовать окуляры, дающие увеличение от {min}x до {max}x.',
38
+ compareText: 'Сравнить окуляры',
39
+ apertureHelp: 'Диаметр трубы, обычно указан на наклейке или коробке.',
40
+ focalHelp: 'Фокусное расстояние телескопа.',
41
+ afovHelp: 'Кажущееся поле зрения окуляра. У Плёссла обычно 52°, у широкоугольных — 68° и более.',
42
+ };
43
+
44
+ const faq: EyepieceCalculatorLocaleContent['faq'] = [
45
+ {
46
+ question: 'Как рассчитать увеличение телескопа?',
47
+ answer: 'Формула проста: разделите фокусное расстояние телескопа на фокусное расстояние окуляра. Например, телескоп 1000 мм с окуляром 10 мм даст увеличение 100 крат (100x).',
48
+ },
49
+ {
50
+ question: 'Что такое выходной зрачок и почему он важен?',
51
+ answer: 'Это диаметр светового пучка, выходящего из окуляра в ваш глаз. Он рассчитывается делением апертуры телескопа на увеличение. Если он больше 7 мм, ваш глаз не сможет поймать весь свет, и мощность телескопа будет тратиться впустую.',
52
+ },
53
+ {
54
+ question: 'Как узнать истинное поле зрения моего окуляра?',
55
+ answer: 'Истинное поле зрения (TFOV) рассчитывается делением кажущегося поля зрения окуляра (AFOV) на увеличение. Это показывает, сколько градусов неба вы видите на самом деле.',
56
+ },
57
+ ];
58
+
59
+ const howTo: EyepieceCalculatorLocaleContent['howTo'] = [
60
+ { name: '1. Введите данные телескопа', text: 'Укажите апертуру и фокус трубы или выберите популярную модель из списка.' },
61
+ { name: '2. Добавьте ваши окуляры', text: 'Введите фокусное расстояние и поле зрения окуляров для сравнения их характеристик.' },
62
+ { name: '3. Симулируйте вид', text: 'Выберите объект (Луна, Сатурн и т.д.) и кликайте на окуляры, чтобы увидеть, как меняется изображение и входите ли вы в оптические лимиты.' },
63
+ ];
64
+
65
+ const seo: EyepieceCalculatorLocaleContent['seo'] = [
66
+ {
67
+ type: 'summary',
68
+ title: 'Ключевые факторы выбора идеального окуляра',
69
+ items: [
70
+ 'Реальное макс. увеличение: 2x апертура в мм (но ограничено атмосферой до 200-250x).',
71
+ 'Мин. полезное увеличение: Апертура, деленная на 7 (предел человеческого зрачка).',
72
+ 'Оптимальный диапазон: Выходной зрачок от 0.5 мм до 7 мм.',
73
+ ],
74
+ },
75
+ { type: 'title', text: 'Как выбрать окуляры для телескопа: Практическое руководство', level: 2 },
76
+ {
77
+ type: 'paragraph',
78
+ html: 'Не покупайте окуляры по интуиции. Ключ к хорошим наблюдениям — в балансе между разрешением телескопа и биологическими возможностями вашего глаза. Плохо подобранный окуляр может сделать изображение в лучшем телескопе мутным или слишком темным.',
79
+ },
80
+ { type: 'title', text: '1. Расчет увеличения (M)', level: 3 },
81
+ {
82
+ type: 'paragraph',
83
+ html: 'Формула проста: фокус телескопа разделить на фокус окуляра. <br/><strong>Формула:</strong> Фокус телескопа / Фокус окуляра = Увеличение. <br/>Пример: Телескоп 1000 мм с окуляром 10 мм дает увеличение 100 крат (100x).',
84
+ },
85
+ { type: 'title', text: '2. Миф о максимальном увеличении', level: 3 },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'Реальный лимит ставит не окуляр, а апертура (диаметр) вашей трубы. <br/>- <strong>Теоретический лимит:</strong> 2 × Апертура в мм. <br/>- <strong>Реальный лимит (Средний сиинг):</strong> Вы редко сможете превысить 200x - 250x из-за атмосферной турбулентности, какой бы телескоп у вас ни был. Дальнейшее форсирование даст лишь большое размытое пятно.',
89
+ },
90
+ { type: 'title', text: '3. Выходной зрачок: фактор яркости', level: 3 },
91
+ {
92
+ type: 'paragraph',
93
+ html: 'Выходной зрачок — это световой цилиндр, выходящий из окуляра в ваш глаз. <br/>- <strong>Если он больше 7 мм:</strong> Ваш глаз не может открыться так широко; вы теряете свет и буквально выбрасываете деньги. <br/>- <strong>Если он меньше 0.5 мм:</strong> Изображение будет настолько темным, что вы едва заметите детали и начнете видеть "мушки" в собственном глазу.',
94
+ },
95
+ {
96
+ type: 'table',
97
+ headers: ['Объект наблюдения', 'Реком. увеличение', 'Идеал. зрачок', 'Визуальный эффект'],
98
+ rows: [
99
+ ['Галактики и туманности', 'Низкое (25x - 50x)', '5 мм - 7 мм', 'Яркое фото, максимальное поле зрения.'],
100
+ ['Звездные скопления', 'Среднее (80x - 120x)', '2 мм', 'Точечные звезды и черный фон неба.'],
101
+ ['Планеты и Луна', 'Высокое (150x и более)', '0.7 мм - 1 мм', 'Максимум деталей, картинка меньше и тусклее.'],
102
+ ],
103
+ },
104
+ {
105
+ type: 'diagnostic',
106
+ variant: 'warning',
107
+ title: 'Визуал или Астрофотография?',
108
+ icon: 'mdi:camera-off',
109
+ badge: 'Техзаметка',
110
+ html: 'Важно уточнить, что эти расчеты предназначены исключительно для <strong>визуальных наблюдений</strong>. Многие новички пытаются применить это к астрокамерам и разочаровываются; в фотографии расчет зависит от размера пикселя и разрешения на угловую секунду, а не от окуляра.',
111
+ },
112
+ {
113
+ type: 'diagnostic',
114
+ variant: 'info',
115
+ title: 'Влияние стабильности атмосферы (сиинг)',
116
+ icon: 'mdi:weather-windy',
117
+ badge: 'Совет по наблюдениям',
118
+ html: 'Даже с лучшими окулярами ночи, когда звезды сильно мерцают, не подходят для больших увеличений. Это связано с атмосферной турбулентностью (сиигом), которая рассеивает свет. При наблюдении планет рекомендуется начинать с малого увеличения и следить за стабильностью изображения; если картинка кажется «подводной», уменьшите кратность, чтобы увидеть больше деталей. В большинстве городских районов 150x–200x — это практический предел.',
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: 'RUB' },
152
+ inLanguage: 'ru',
153
+ };
154
+
155
+ export const content: EyepieceCalculatorLocaleContent = {
156
+ slug: 'kalykulyator-okulyarov',
157
+ title,
158
+ description,
159
+ ui,
160
+ faq,
161
+ howTo,
162
+ seo,
163
+ bibliography,
164
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
165
+ };