@jjlmoya/utils-astronomy 1.5.0 → 1.7.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 (76) 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/slug_uniqueness.test.ts +81 -0
  22. package/src/tests/title_quality.test.ts +55 -0
  23. package/src/tests/tool_validation.test.ts +5 -5
  24. package/src/tool/bortleVisualizer/i18n/de.ts +167 -0
  25. package/src/tool/bortleVisualizer/i18n/fr.ts +1 -1
  26. package/src/tool/bortleVisualizer/i18n/id.ts +167 -0
  27. package/src/tool/bortleVisualizer/i18n/it.ts +167 -0
  28. package/src/tool/bortleVisualizer/i18n/ja.ts +167 -0
  29. package/src/tool/bortleVisualizer/i18n/ko.ts +167 -0
  30. package/src/tool/bortleVisualizer/i18n/nl.ts +167 -0
  31. package/src/tool/bortleVisualizer/i18n/pl.ts +167 -0
  32. package/src/tool/bortleVisualizer/i18n/pt.ts +167 -0
  33. package/src/tool/bortleVisualizer/i18n/ru.ts +167 -0
  34. package/src/tool/bortleVisualizer/i18n/sv.ts +167 -0
  35. package/src/tool/bortleVisualizer/i18n/tr.ts +167 -0
  36. package/src/tool/bortleVisualizer/i18n/zh.ts +167 -0
  37. package/src/tool/bortleVisualizer/index.ts +15 -7
  38. package/src/tool/deepSpaceScope/i18n/de.ts +178 -0
  39. package/src/tool/deepSpaceScope/i18n/id.ts +178 -0
  40. package/src/tool/deepSpaceScope/i18n/it.ts +178 -0
  41. package/src/tool/deepSpaceScope/i18n/ja.ts +178 -0
  42. package/src/tool/deepSpaceScope/i18n/ko.ts +178 -0
  43. package/src/tool/deepSpaceScope/i18n/nl.ts +178 -0
  44. package/src/tool/deepSpaceScope/i18n/pl.ts +178 -0
  45. package/src/tool/deepSpaceScope/i18n/pt.ts +178 -0
  46. package/src/tool/deepSpaceScope/i18n/ru.ts +178 -0
  47. package/src/tool/deepSpaceScope/i18n/sv.ts +178 -0
  48. package/src/tool/deepSpaceScope/i18n/tr.ts +178 -0
  49. package/src/tool/deepSpaceScope/i18n/zh.ts +178 -0
  50. package/src/tool/deepSpaceScope/index.ts +15 -7
  51. package/src/tool/starExposureCalculator/i18n/de.ts +163 -0
  52. package/src/tool/starExposureCalculator/i18n/id.ts +163 -0
  53. package/src/tool/starExposureCalculator/i18n/it.ts +163 -0
  54. package/src/tool/starExposureCalculator/i18n/ja.ts +163 -0
  55. package/src/tool/starExposureCalculator/i18n/ko.ts +163 -0
  56. package/src/tool/starExposureCalculator/i18n/nl.ts +163 -0
  57. package/src/tool/starExposureCalculator/i18n/pl.ts +163 -0
  58. package/src/tool/starExposureCalculator/i18n/pt.ts +163 -0
  59. package/src/tool/starExposureCalculator/i18n/ru.ts +163 -0
  60. package/src/tool/starExposureCalculator/i18n/sv.ts +163 -0
  61. package/src/tool/starExposureCalculator/i18n/tr.ts +163 -0
  62. package/src/tool/starExposureCalculator/i18n/zh.ts +163 -0
  63. package/src/tool/starExposureCalculator/index.ts +15 -7
  64. package/src/tool/telescopeResolution/i18n/de.ts +176 -0
  65. package/src/tool/telescopeResolution/i18n/id.ts +176 -0
  66. package/src/tool/telescopeResolution/i18n/it.ts +176 -0
  67. package/src/tool/telescopeResolution/i18n/ja.ts +176 -0
  68. package/src/tool/telescopeResolution/i18n/ko.ts +176 -0
  69. package/src/tool/telescopeResolution/i18n/nl.ts +176 -0
  70. package/src/tool/telescopeResolution/i18n/pl.ts +176 -0
  71. package/src/tool/telescopeResolution/i18n/pt.ts +176 -0
  72. package/src/tool/telescopeResolution/i18n/ru.ts +176 -0
  73. package/src/tool/telescopeResolution/i18n/sv.ts +176 -0
  74. package/src/tool/telescopeResolution/i18n/tr.ts +176 -0
  75. package/src/tool/telescopeResolution/i18n/zh.ts +176 -0
  76. package/src/tool/telescopeResolution/index.ts +15 -7
@@ -0,0 +1,163 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { StarExposureCalculatorUI, StarExposureCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = '500-rule-calculator';
5
+ const title = '천체 사진 500 법칙 및 NPF 노출 계산기';
6
+ const description = '별의 흐름(궤적) 없이 천체 사진을 찍기 위한 최대 노출 시간을 계산합니다. 고전적인 500 법칙과 현대 센서에 최적화된 고정밀 NPF 모델을 지원합니다.';
7
+
8
+ const ui: StarExposureCalculatorUI = {
9
+ toolTitle: '500 법칙 계산기',
10
+ modeLabel: '계산 모드',
11
+ classicMode: '표준 (500 법칙)',
12
+ npfMode: '정밀 (NPF 모델)',
13
+ sensorLabel: '센서 크기 (크롭 계수)',
14
+ focalLabel: '초점 거리 (mm)',
15
+ apertureLabel: '조리개값 (f/)',
16
+ megapixelsLabel: '화소수 (MP)',
17
+ declinationLabel: '천구 적위',
18
+ equatorLabel: '적도 부근',
19
+ poleLabel: '천구의 북극/남극 부근',
20
+ secondsUnit: '초',
21
+ resultText: '별이 점으로 찍히는 최대 시간입니다.',
22
+ simLabel: '시각 시뮬레이션 (200% 확대)',
23
+ simRangeLabel: '시간 초과에 따른 영향 확인',
24
+ pointStars: '점상 형태의 별',
25
+ trailStars: '별의 궤적이 보임',
26
+ };
27
+
28
+ const faq: StarExposureCalculatorLocaleContent['faq'] = [
29
+ {
30
+ question: '계산된 시간을 초과하면 어떻게 되나요?',
31
+ answer: '최대 노출 시간을 초과하면 별이 날카로운 점이 아니라 타원형으로 늘어져 찍히기 시작합니다. 노출이 매우 길어지면 \'일주 운동 궤적(star trails)\'이 생기는데, 이는 예술적인 기법이기도 하지만 예쁜 궤적을 얻으려면 이 계산값보다 훨씬 긴 시간이 필요합니다.',
32
+ },
33
+ {
34
+ question: '언제 500 법칙 대신 NPF 모델을 사용해야 하나요?',
35
+ answer: 'NPF 모델은 훨씬 정밀하며, 2400만 화소 이상의 고화소 카메라에 권장됩니다. 고전적인 500 법칙을 사용하면 작은 인화물에서는 괜찮아 보일 수 있지만, 4K 모니터로 감상하거나 대형 인화를 할 때는 별의 흐름이 눈에 띌 수 있습니다. 최고의 선명도를 원하신다면 NPF를 사용하세요.',
36
+ },
37
+ {
38
+ question: '촬영하려는 천체의 \'적위(Declination)\' 정보는 어디서 찾나요?',
39
+ answer: 'Stellarium, SkySafari 같은 앱이나 성도를 통해 확인할 수 있습니다. 일반적인 규칙으로, 천구의 극(적위 90도)에 가까운 대상일수록 별의 이동 속도가 느리므로 더 긴 노출 시간을 가질 수 있습니다.',
40
+ },
41
+ {
42
+ question: '이 계산기는 별 추적 장치(Star Tracker) 사용 시에도 필요한가요?',
43
+ answer: '별 자체를 촬영할 때는 추적 장치가 지구의 자전을 보정해주므로 필요하지 않습니다. 하지만 추ติดตาม 장치가 보정해주지 않는 지상 풍경을 고정시켜 찍기 위한 시간을 계산하거나, 장치 오작동으로 예상치 못한 궤적이 생기는지 확인할 때 필수적입니다.',
44
+ },
45
+ ];
46
+
47
+ const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
48
+ { name: '1. 계산 모드 선택', text: '빠른 예측을 원하시면 표준(500 법칙)을, 고화소 센서로 최상의 선명도를 얻으려면 정밀(NPF) 모드를 선택하세요.' },
49
+ { name: '2. 장비 설정', text: '렌즈의 초점 거리를 입력하고 카메라의 크롭 계수(풀프레임, APS-C 등)를 선택하세요.' },
50
+ { name: '3. 적위 조정', text: '천구의 극(북극성 부근) 근처를 촬영하는 경우 적위를 높여 궤적 없이 더 긴 노출이 가능하도록 계산하세요.' },
51
+ { name: '4. 시간 초과 시뮬레이션', text: '시뮬레이션 슬라이더를 사용하여 계산된 시간을 초과했을 때 별이 어떻게 보이는지 미리 확인하세요.' },
52
+ ];
53
+
54
+ const bibliography: StarExposureCalculatorLocaleContent['bibliography'] = [
55
+ { name: '프랑스 천문학회: NPF 모델 상세 설명', url: 'https://sahavre.fr/wp/regle-npf-rule/' },
56
+ { name: 'PetaPixel: 왜 더 이상 500 법칙만으로는 충분하지 않은가', url: 'https://petapixel.com/2015/01/06/avoid-star-trails-following-500-rule/' },
57
+ { name: 'Lonely Speck: 천체 사진 셔터 스피드 계산 도구', url: 'https://www.lonelyspeck.com/advanced-astrophotography-shutter-time-calculator/' },
58
+ ];
59
+
60
+ const seo: StarExposureCalculatorLocaleContent['seo'] = [
61
+ {
62
+ type: 'summary',
63
+ title: '500 법칙과 NPF 모델의 핵심',
64
+ items: [
65
+ '500 법칙은 저화소 센서나 작은 포맷 감상에 적합한 간편한 근사치입니다.',
66
+ 'NPF 모델은 픽셀 밀도가 높은 현대식 센서에 훨씬 더 정확합니다.',
67
+ '천구 적위를 고려하면 극(적위 90도) 근처에서 더 긴 노출 시간을 확보할 수 있습니다.',
68
+ '카메라의 크롭 계수는 실효 초점 거리에 영향을 주어 최대 노출 시간을 단축시킵니다.',
69
+ ],
70
+ },
71
+ { type: 'title', text: '천체 사진 마스터: 500 법칙과 NPF 모델 활용하기', level: 2 },
72
+ {
73
+ type: 'paragraph',
74
+ html: '광활한 밤하늘을 담는 것은 사진가에게 매우 보람찬 도전입니다. 하지만 첫 번째 장애물은 지구의 자전입니다. 셔터를 너무 오래 열어두면 완벽한 점이었던 별들이 보기 싫은 선으로 변하게 됩니다. 선명한 \'점상 별\'을 얻으려면 500 법칙이나 NPF 모델을 사용하여 <strong>최대 노출 시간</strong>을 계산해야 합니다.',
75
+ },
76
+ { type: 'title', text: '500 법칙이란?', level: 2 },
77
+ {
78
+ type: 'paragraph',
79
+ html: '<strong>500 법칙</strong>은 수십 년 동안 풍경 천체 사진의 표준이었던 간단한 경험식입니다. 공식은 다음과 같습니다: <code>시간 = 500 / (초점 거리 × 크롭 계수)</code>. 계산이 빠르고 편리하며 저화소 센서에서는 충분히 정확한 결과를 보여줍니다.',
80
+ },
81
+ { type: 'title', text: '크롭 계수와 그 영향', level: 2 },
82
+ {
83
+ type: 'paragraph',
84
+ html: '많은 입문자들이 500 법칙이 35mm(풀프레임) 기준이라는 점을 간과합니다. 카메라의 센서가 작을수록 화각이 좁아져 별의 움직임이 더 크게 확대됩니다. APS-C(1.5배 크롭) 바디에 14mm 렌즈를 장착하면 환산 21mm와 같이 동작하여, 최대 시간이 35.7초에서 23.8초로 줄어듭니다.',
85
+ },
86
+ {
87
+ type: 'table',
88
+ headers: ['센서', '크롭', '14mm', '24mm', '50mm', '85mm'],
89
+ rows: [
90
+ ['풀프레임', 'x1.0', '35.7s', '20.8s', '10.0s', '5.9s'],
91
+ ['APS-C Nikon/Sony', 'x1.5', '23.8s', '13.9s', '6.7s', '3.9s'],
92
+ ['APS-C Canon', 'x1.6', '22.3s', '13.0s', '6.3s', '3.7s'],
93
+ ['마이크로 포서드', 'x2.0', '17.9s', '10.4s', '5.0s', '2.9s'],
94
+ ],
95
+ },
96
+ { type: 'title', text: 'NPF 모델: 현대 센서를 위한 정밀함', level: 2 },
97
+ {
98
+ type: 'paragraph',
99
+ html: '500 법칙은 필름 시대에 탄생했습니다. 오늘날 2400만~6000만 화소 센서에서는 픽셀이 매우 작아 흐름이 훨씬 빨리 감지됩니다. 프랑스 천문학회가 개발한 <strong>NPF 모델</strong>은 조리개값과 픽셀 크기를 계산에 포함합니다: <code>t = (35×f + 30×p) / F</code> (f: 조리개, p: 픽셀 피치, F: 초점 거리).',
100
+ },
101
+ {
102
+ type: 'tip',
103
+ title: '적위: 숙련된 사진가들의 비밀',
104
+ html: '<strong>천구의 극</strong>(북반구의 북극성) 근처의 별들은 하늘에서 아주 작은 원을 그리며 움직입니다. 이는 센서 위를 아주 천천히 움직인다는 뜻이며, 훨씬 더 긴 노출이 가능하다는 것을 의미합니다. 북극성 주변을 촬영할 경우 계산값의 2배 또는 3배의 시간을 사용해도 별의 흐름이 잘 보이지 않습니다. 적위값은 목표 대상이 극에 얼마나 가까운지 알려줍니다.',
105
+ },
106
+ {
107
+ type: 'stats',
108
+ columns: 2,
109
+ items: [
110
+ { label: '500 법칙 - 14mm FF', value: '35.7초', icon: 'mdi:timer' },
111
+ { label: 'NPF - 14mm f/2.8 24MP', value: '약 12초', icon: 'mdi:timer-sand' },
112
+ { label: '적위 60도 보정', value: '2.0배', icon: 'mdi:compass' },
113
+ { label: '적위 80도 보정', value: '5.8배', icon: 'mdi:compass' },
114
+ ],
115
+ },
116
+ ];
117
+
118
+ const faqSchema: WithContext<FAQPage> = {
119
+ '@context': 'https://schema.org',
120
+ '@type': 'FAQPage',
121
+ mainEntity: faq.map((item) => ({
122
+ '@type': 'Question',
123
+ name: item.question,
124
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
125
+ })),
126
+ };
127
+
128
+ const howToSchema: WithContext<HowTo> = {
129
+ '@context': 'https://schema.org',
130
+ '@type': 'HowTo',
131
+ name: title,
132
+ description,
133
+ step: howTo.map((step) => ({
134
+ '@type': 'HowToStep',
135
+ name: step.name,
136
+ text: step.text,
137
+ })),
138
+ };
139
+
140
+ const appSchema: WithContext<SoftwareApplication> = {
141
+ '@context': 'https://schema.org',
142
+ '@type': 'SoftwareApplication',
143
+ name: title,
144
+ description,
145
+ applicationCategory: 'UtilitiesApplication',
146
+ operatingSystem: 'Web',
147
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
148
+ inLanguage: 'ko',
149
+ };
150
+
151
+ export const content: StarExposureCalculatorLocaleContent = {
152
+ slug,
153
+ title,
154
+ description,
155
+ ui,
156
+ seo,
157
+ faq,
158
+ faqTitle: '자주 묻는 질문 (FAQ)',
159
+ bibliography,
160
+ bibliographyTitle: '참고 문헌',
161
+ howTo,
162
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
163
+ };
@@ -0,0 +1,163 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { StarExposureCalculatorUI, StarExposureCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = 'rekenmachine-500-regel';
5
+ const title = '500 Regel en NPF Astrofotografie Calculator';
6
+ const description = 'Bereken de maximale belichtingstijd voor astrofotografie zonder stersporen. Klassieke 500-regel en precisie NPF-model voor moderne sensoren.';
7
+
8
+ const ui: StarExposureCalculatorUI = {
9
+ toolTitle: '500-Regel Calculator',
10
+ modeLabel: 'Modus',
11
+ classicMode: 'Klassiek (500)',
12
+ npfMode: 'Precisie (NPF)',
13
+ sensorLabel: 'Sensor (Cropfactor)',
14
+ focalLabel: 'Brandpuntsafstand (mm)',
15
+ apertureLabel: 'Diafragma (f-getal)',
16
+ megapixelsLabel: 'Megapixels (MP)',
17
+ declinationLabel: 'Hemelse Declinatie',
18
+ equatorLabel: 'Evenaar',
19
+ poleLabel: 'Pool',
20
+ secondsUnit: 'seconden',
21
+ resultText: 'Maximale tijd voor puntvormige sterren.',
22
+ simLabel: 'Visuele Simulatie (200% Zoom)',
23
+ simRangeLabel: 'Simuleer tijdsoverschrijding',
24
+ pointStars: 'Sterren als punten',
25
+ trailStars: 'Sterspoor zichtbaar',
26
+ };
27
+
28
+ const faq: StarExposureCalculatorLocaleContent['faq'] = [
29
+ {
30
+ question: 'Wat gebeurt er als ik de berekende tijd overschrijdt?',
31
+ answer: 'Als je de maximale tijd overschrijdt, beginnen sterren uit te rekken in plaats van scherpe punten te blijven. Als de belichting erg lang is, krijg je stersporen (star trails), wat een artistieke techniek is, maar veel langere tijden vereist om esthetisch te zijn.',
32
+ },
33
+ {
34
+ question: 'Wanneer moet ik NPF gebruiken in plaats van de 500-regel?',
35
+ answer: 'Het NPF-model is nauwkeuriger en aanbevolen voor camera\'s met hoge resolutie sensoren (24MP of meer). Met de klassieke 500-regel kun je sporen krijgen die onzichtbaar zijn op een kleine afdruk, maar zichtbaar zijn op een 4K-monitor of bij grote afdrukken. Als je doel maximale scherpte is, gebruik dan NPF.',
36
+ },
37
+ {
38
+ question: 'Hoe vind ik de declinatie van het object dat ik wil fotograferen?',
39
+ answer: 'Je kunt apps zoals Stellarium of SkySafari gebruiken, of sterrenkaarten bekijken. Als algemene regel geldt: hoe dichter bij de hemelpool (Dec 90°) het object staat, hoe langer de belichtingstijd mag zijn.',
40
+ },
41
+ {
42
+ question: 'Werkt deze calculator met een star tracker?',
43
+ answer: 'Niet voor de sterrenhemel zelf, omdat de tracker de rotatie compenseert. Het is echter essentieel voor het berekenen van de voorgrondopname waar de tracker niet helpt, of om te controleren of de motor hapert wanneer je onverwachte sporen ziet.',
44
+ },
45
+ ];
46
+
47
+ const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
48
+ { name: '1. Kies de berekeningsmodus', text: 'Selecteer Klassiek (500-regel) voor een snelle schatting of NPF als je een hoge resolutie sensor hebt en maximale scherpte nastreeft.' },
49
+ { name: '2. Configureer je uitrusting', text: 'Voer de brandpuntsafstand van je lens in en selecteer de cropfactor van je camera.' },
50
+ { name: '3. Pas de declinatie aan', text: 'Als je dicht bij de hemelpool fotografeert, verhoog dan de declinatie om langere belichtingen zonder sporen mogelijk te maken.' },
51
+ { name: '4. Simuleer tijdsoverschrijding', text: 'Gebruik de simulatieregelaar om te visualiseren hoe een ster eruit zou zien als je de berekende tijd overschrijdt.' },
52
+ ];
53
+
54
+ const bibliography: StarExposureCalculatorLocaleContent['bibliography'] = [
55
+ { name: 'Franse Astronomische Vereniging: Het NPF-model', url: 'https://sahavre.fr/wp/regle-npf-rule/' },
56
+ { name: 'PetaPixel: Waarom de 500-regel niet meer genoeg is', url: 'https://petapixel.com/2015/01/06/avoid-star-trails-following-500-rule/' },
57
+ { name: 'Lonely Speck: Astrofotografie Belichtingstijd Calculator', url: 'https://www.lonelyspeck.com/advanced-astrophotography-shutter-time-calculator/' },
58
+ ];
59
+
60
+ const seo: StarExposureCalculatorLocaleContent['seo'] = [
61
+ {
62
+ type: 'summary',
63
+ title: 'Kernpunten van de 500 regel en NPF',
64
+ items: [
65
+ 'De 500-regel is een geldige benadering voor sensoren met een lage resolutie en weergave op klein formaat.',
66
+ 'Het NPF-model is nauwkeuriger voor moderne sensoren met een hoge pixeldichtheid.',
67
+ 'Hemelse declinatie staat langere belichtingstijd toe nabij de polen (Dec 90°).',
68
+ 'De cropfactor van je sensor vermenigvuldigt de effectieve brandpuntsafstand en verkort de maximale tijd.',
69
+ ],
70
+ },
71
+ { type: 'title', text: 'Astrofotografie beheersen: 500-regel en NPF-model', level: 2 },
72
+ {
73
+ type: 'paragraph',
74
+ html: 'Het vastleggen van de uitgestrektheid van de nachthemel is een van de meest dankbare uitdagingen voor elke fotograaf. De eerste hindernis is echter de rotatie van de aarde. Als we de sluiter te lang open laten staan, worden die perfecte lichtpunten ontsierende sporen. Om scherpe, puntvormige sterren te krijgen, moeten we de <strong>maximale belichtingstijd</strong> berekenen met de 500-regel of het NPF-model.',
75
+ },
76
+ { type: 'title', text: 'Wat is de 500-regel?', level: 2 },
77
+ {
78
+ type: 'paragraph',
79
+ html: 'De <strong>500-regel</strong> is een vereenvoudigde empirische formule die al decennia de standaard is in landschapsastrofotografie. De formule is: <code>Tijd = 500 / (Brandpuntsafstand × Cropfactor)</code>. Het is een snelle rekensom uit het hoofd en nauwkeurig genoeg voor sensoren met een lage resolutie en weergave op klein formaat.',
80
+ },
81
+ { type: 'title', text: 'De Cropfactor en de impact ervan', level: 2 },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Veel beginners vergeten dat de 500-regel is gebaseerd op de 35mm (Full Frame) standaard. Als je camera een kleinere sensor heeft, is het gezichtsveld smaller en wordt de beweging van sterren uitvergroot. Een 14mm lens op APS-C (1,5x crop) gedraagt zich als een 21mm equivalent, waardoor de maximale tijd afneemt van 35,7s naar slechts 23,8s.',
85
+ },
86
+ {
87
+ type: 'table',
88
+ headers: ['Sensor', 'Crop', '14mm', '24mm', '50mm', '85mm'],
89
+ rows: [
90
+ ['Full Frame', 'x1.0', '35.7s', '20.8s', '10.0s', '5.9s'],
91
+ ['APS-C Nikon/Sony', 'x1.5', '23.8s', '13.9s', '6.7s', '3.9s'],
92
+ ['APS-C Canon', 'x1.6', '22.3s', '13.0s', '6.3s', '3.7s'],
93
+ ['Micro 4/3', 'x2.0', '17.9s', '10.4s', '5.0s', '2.9s'],
94
+ ],
95
+ },
96
+ { type: 'title', text: 'Het NPF-model: Precisie voor moderne sensoren', level: 2 },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'De 500-regel is ontstaan in het filmtijdperk. Tegenwoordig, met sensors van 24-60MP, zijn pixels zo klein dat sporen veel eerder worden waargenomen. Het <strong>NPF-model</strong>, ontwikkeld door de Franse Astronomische Vereniging, voegt diafragma en pixeldichtheid toe aan de berekening: <code>t = (35×f + 30×p) / F</code>, waarbij f het diafragma is, p de pixelgrootte en F de brandpuntsafstand.',
100
+ },
101
+ {
102
+ type: 'tip',
103
+ title: 'Declinatie: Het geheim van de gevorderde fotograaf',
104
+ html: 'Sterren nabij de <strong>hemelpool</strong> (Polaris op het noordelijk halfrond) trekken zeer kleine cirkels aan de hemel. Dit betekent dat ze heel langzaam over je sensor bewegen, wat veel langere belichtingen mogelijk maakt. Als je het gebied rond Polaris fotografeert, kun je twee of drie keer de berekende tijd gebruiken zonder zichtbare sporen. Declinatie vertelt je hoe dicht je doel bij de hemelpool staat.',
105
+ },
106
+ {
107
+ type: 'stats',
108
+ columns: 2,
109
+ items: [
110
+ { label: '500-Regel - 14mm FF', value: '35,7s', icon: 'mdi:timer' },
111
+ { label: 'NPF - 14mm f/2.8 24MP', value: '~12s', icon: 'mdi:timer-sand' },
112
+ { label: 'Dec 60° Correctie', value: 'x2.0', icon: 'mdi:compass' },
113
+ { label: 'Dec 80° Correctie', value: 'x5.8', icon: 'mdi:compass' },
114
+ ],
115
+ },
116
+ ];
117
+
118
+ const faqSchema: WithContext<FAQPage> = {
119
+ '@context': 'https://schema.org',
120
+ '@type': 'FAQPage',
121
+ mainEntity: faq.map((item) => ({
122
+ '@type': 'Question',
123
+ name: item.question,
124
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
125
+ })),
126
+ };
127
+
128
+ const howToSchema: WithContext<HowTo> = {
129
+ '@context': 'https://schema.org',
130
+ '@type': 'HowTo',
131
+ name: title,
132
+ description,
133
+ step: howTo.map((step) => ({
134
+ '@type': 'HowToStep',
135
+ name: step.name,
136
+ text: step.text,
137
+ })),
138
+ };
139
+
140
+ const appSchema: WithContext<SoftwareApplication> = {
141
+ '@context': 'https://schema.org',
142
+ '@type': 'SoftwareApplication',
143
+ name: title,
144
+ description,
145
+ applicationCategory: 'UtilitiesApplication',
146
+ operatingSystem: 'Web',
147
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
148
+ inLanguage: 'nl',
149
+ };
150
+
151
+ export const content: StarExposureCalculatorLocaleContent = {
152
+ slug,
153
+ title,
154
+ description,
155
+ ui,
156
+ seo,
157
+ faq,
158
+ faqTitle: 'Veelgestelde Vragen',
159
+ bibliography,
160
+ bibliographyTitle: 'Bibliografische Referenties',
161
+ howTo,
162
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
163
+ };
@@ -0,0 +1,163 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { StarExposureCalculatorUI, StarExposureCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = 'kalkulator-reguly-500';
5
+ const title = 'Kalkulator reguły 500 i NPF w astrofotografii';
6
+ const description = 'Oblicz maksymalny czas ekspozycji w astrofotografii bez efektu poruszonych gwiazd. Klasyczna reguła 500 oraz precyzyjny model NPF dla nowoczesnych matryc.';
7
+
8
+ const ui: StarExposureCalculatorUI = {
9
+ toolTitle: 'Kalkulator reguły 500',
10
+ modeLabel: 'Tryb',
11
+ classicMode: 'Klasyczny (500)',
12
+ npfMode: 'Precyzyjny (NPF)',
13
+ sensorLabel: 'Matryca (Crop Factor)',
14
+ focalLabel: 'Ogniskowa (mm)',
15
+ apertureLabel: 'Przysłona (f/stop)',
16
+ megapixelsLabel: 'Megapiksele (MP)',
17
+ declinationLabel: 'Deklinacja niebieska',
18
+ equatorLabel: 'Równik',
19
+ poleLabel: 'Biegun',
20
+ secondsUnit: 'sekundy',
21
+ resultText: 'Maksymalny czas dla punktowych gwiazd.',
22
+ simLabel: 'Symulacja wizualna (zoom 200%)',
23
+ simRangeLabel: 'Symuluj przekroczenie czasu',
24
+ pointStars: 'Gwiazdy jako punkty',
25
+ trailStars: 'Widoczne ślady gwiazd',
26
+ };
27
+
28
+ const faq: StarExposureCalculatorLocaleContent['faq'] = [
29
+ {
30
+ question: 'Co się stanie, jeśli przekroczę obliczony czas?',
31
+ answer: 'Jeśli przekroczysz maksymalny czas, gwiazdy zaczną się wydłużać, zamiast pozostać ostrymi punktami. Przy bardzo długich ekspozycjach otrzymasz ślady gwiazd (star trails) – jest to uznana technika artystyczna, ale wymaga znacznie dłuższych czasów, aby wyglądała estetycznie.',
32
+ },
33
+ {
34
+ question: 'Kiedy powinienem używać NPF zamiast reguły 500?',
35
+ answer: 'Model NPF jest dokładniejszy i zalecany dla aparatów z matrycami o wysokiej rozdzielczości (24 MP lub więcej). Przy klasycznej regule 500 możesz otrzymać ślady niewidoczne na małym formacie, ale zauważalne na monitorze 4K lub dużych wydrukach. Jeśli Twoim celem jest maksymalna ostrość, użyj NPF.',
36
+ },
37
+ {
38
+ question: 'Jak znaleźć deklinację obiektu, który chcę sfotografować?',
39
+ answer: 'Możesz użyć aplikacji takich jak Stellarium, SkySafari lub sprawdzić mapy nieba. Ogólna zasada brzmi: im bliżej bieguna niebieskiego (Dec 90°) znajduje się obiekt, na tym dłuższy czas ekspozycji możesz sobie pozwolić.',
40
+ },
41
+ {
42
+ question: 'Czy ten kalkulator działa z trackerem gwiazd (star tracker)?',
43
+ answer: 'Nie dla samego nieba, ponieważ tracker kompensuje obrót Ziemi. Jest on jednak kluczowy przy obliczaniu ekspozycji dla pierwszego planu, którego tracker nie śledzi, lub do weryfikacji pracy silnika, jeśli zauważysz nieoczekiwane ślady.',
44
+ },
45
+ ];
46
+
47
+ const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
48
+ { name: '1. Wybierz tryb obliczeń', text: 'Wybierz tryb klasyczny (reguła 500) dla szybkiego oszacowania lub NPF, jeśli masz matrycę o wysokiej rozdzielczości i zależy Ci na maksymalnej ostrości.' },
49
+ { name: '2. Skonfiguruj swój sprzęt', text: 'Wprowadź ogniskową obiektywu i wybierz crop factor swojego aparatu.' },
50
+ { name: '3. Dostosuj deklinację', text: 'Jeśli fotografujesz w pobliżu bieguna niebieskiego, zwiększ deklinację, aby pozwolić na dłuższą ekspozycję bez śladów ruchu.' },
51
+ { name: '4. Symuluj przekroczenie czasu', text: 'Użyj suwaka symulacji, aby zobaczyć, jak wyglądałaby gwiazda po przekroczeniu obliczonego czasu ekspozycji.' },
52
+ ];
53
+
54
+ const bibliography: StarExposureCalculatorLocaleContent['bibliography'] = [
55
+ { name: 'Francuskie Towarzystwo Astronomiczne: Model NPF', url: 'https://sahavre.fr/wp/regle-npf-rule/' },
56
+ { name: 'PetaPixel: Dlaczego reguła 500 już nie wystarcza', url: 'https://petapixel.com/2015/01/06/avoid-star-trails-following-500-rule/' },
57
+ { name: 'Lonely Speck: Kalkulator czasu ekspozycji w astrofotografii', url: 'https://www.lonelyspeck.com/advanced-astrophotography-shutter-time-calculator/' },
58
+ ];
59
+
60
+ const seo: StarExposureCalculatorLocaleContent['seo'] = [
61
+ {
62
+ type: 'summary',
63
+ title: 'Kluczowe punkty reguły 500 i NPF',
64
+ items: [
65
+ 'Reguła 500 to dobre przybliżenie dla matryc o niskiej rozdzielczości i małych formatów wyświetlania.',
66
+ 'Model NPF jest znacznie dokładniejszy dla nowoczesnych matryc o dużej gęstości pikseli.',
67
+ 'Deklinacja niebieska pozwala na dłuższy czas ekspozycji w pobliżu biegunów (Dec 90°).',
68
+ 'Crop factor matrycy mnoży efektywną ogniskową i skraca maksymalny czas ekspozycji.',
69
+ ],
70
+ },
71
+ { type: 'title', text: 'Mistrzowska astrofotografia: reguła 500 i model NPF', level: 2 },
72
+ {
73
+ type: 'paragraph',
74
+ html: 'Uchwycenie ogromu nocnego nieba to jedno z najbardziej satysfakcjonujących wyzwań dla każdego fotografa. Pierwszą przeszkodą jest jednak obrót Ziemi. Jeśli zostawimy otwartą migawkę zbyt długo, te idealne punkty światła staną się nieestetycznymi kreskami. Aby uzyskać ostre, punktowe gwiazdy, musimy obliczyć <strong>maksymalny czas ekspozycji</strong> przy użyciu reguły 500 lub modelu NPF.',
75
+ },
76
+ { type: 'title', text: 'Czym jest reguła 500?', level: 2 },
77
+ {
78
+ type: 'paragraph',
79
+ html: '<strong>Reguła 500</strong> to uproszczony wzór empiryczny, który przez dekady był standardem w astrofotografii krajobrazowej. Wzór to: <code>Czas = 500 / (Ogniskowa × Crop Factor)</code>. Pozwala na szybkie obliczenia w pamięci i jest wystarczająco dokładny dla matryc o niskiej rozdzielczości.',
80
+ },
81
+ { type: 'title', text: 'Crop Factor i jego wpływ', level: 2 },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Wielu początkujących zapomina, że reguła 500 opiera się na standardzie 35 mm (Full Frame). Jeśli Twój aparat ma mniejszą matrycę, pole widzenia jest węższe, a ruch gwiazd zostaje powiększony. Obiektyw 14 mm na matrycy APS-C (crop 1,5x) zachowuje się jak odpowiednik 21 mm, skracając maksymalny czas z 35,7 s do zaledwie 23,8 s.',
85
+ },
86
+ {
87
+ type: 'table',
88
+ headers: ['Matryca', 'Crop', '14mm', '24mm', '50mm', '85mm'],
89
+ rows: [
90
+ ['Full Frame', 'x1.0', '35.7s', '20.8s', '10.0s', '5.9s'],
91
+ ['APS-C Nikon/Sony', 'x1.5', '23.8s', '13.9s', '6.7s', '3.9s'],
92
+ ['APS-C Canon', 'x1.6', '22.3s', '13.0s', '6.3s', '3.7s'],
93
+ ['Micro 4/3', 'x2.0', '17.9s', '10.4s', '5.0s', '2.9s'],
94
+ ],
95
+ },
96
+ { type: 'title', text: 'Model NPF: precyzja dla nowoczesnych matryc', level: 2 },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'Reguła 500 powstała w erze filmu. Dzisiaj, przy matrycach 24-60 MP, piksele są tak małe, że poruszenie jest widoczne znacznie wcześniej. <strong>Model NPF</strong>, opracowany przez Francuskie Towarzystwo Astronomiczne, uwzględnia przysłonę i gęstość pikseli: <code>t = (35×f + 30×p) / F</code>, gdzie f to przysłona, p to rozmiar piksela, a F to ogniskowa.',
100
+ },
101
+ {
102
+ type: 'tip',
103
+ title: 'Deklinacja: sekret zaawansowanego fotografa',
104
+ html: 'Gwiazdy w pobliżu <strong>bieguna niebieskiego</strong> (Gwiazda Polarna na półkuli północnej) zataczają na niebie bardzo małe okręgi. Oznacza to, że poruszają się bardzo powoli względem matrycy, co pozwala na znacznie dłuższą ekspozycję. Fotografując okolice Gwiazdy Polarnej, możesz użyć dwu- lub nawet trzykrotnie dłuższego czasu niż obliczony, bez widocznych śladów ruchu. Deklinacja mówi Ci, jak blisko bieguna niebieskiego znajduje się Twój cel.',
105
+ },
106
+ {
107
+ type: 'stats',
108
+ columns: 2,
109
+ items: [
110
+ { label: 'Reguła 500 - 14mm FF', value: '35.7s', icon: 'mdi:timer' },
111
+ { label: 'NPF - 14mm f/2.8 24MP', value: '~12s', icon: 'mdi:timer-sand' },
112
+ { label: 'Korekta Dec 60°', value: 'x2.0', icon: 'mdi:compass' },
113
+ { label: 'Korekta Dec 80°', value: 'x5.8', icon: 'mdi:compass' },
114
+ ],
115
+ },
116
+ ];
117
+
118
+ const faqSchema: WithContext<FAQPage> = {
119
+ '@context': 'https://schema.org',
120
+ '@type': 'FAQPage',
121
+ mainEntity: faq.map((item) => ({
122
+ '@type': 'Question',
123
+ name: item.question,
124
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
125
+ })),
126
+ };
127
+
128
+ const howToSchema: WithContext<HowTo> = {
129
+ '@context': 'https://schema.org',
130
+ '@type': 'HowTo',
131
+ name: title,
132
+ description,
133
+ step: howTo.map((step) => ({
134
+ '@type': 'HowToStep',
135
+ name: step.name,
136
+ text: step.text,
137
+ })),
138
+ };
139
+
140
+ const appSchema: WithContext<SoftwareApplication> = {
141
+ '@context': 'https://schema.org',
142
+ '@type': 'SoftwareApplication',
143
+ name: title,
144
+ description,
145
+ applicationCategory: 'UtilitiesApplication',
146
+ operatingSystem: 'Web',
147
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
148
+ inLanguage: 'pl',
149
+ };
150
+
151
+ export const content: StarExposureCalculatorLocaleContent = {
152
+ slug,
153
+ title,
154
+ description,
155
+ ui,
156
+ seo,
157
+ faq,
158
+ faqTitle: 'Często zadawane pytania',
159
+ bibliography,
160
+ bibliographyTitle: 'Bibliografia',
161
+ howTo,
162
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
163
+ };
@@ -0,0 +1,163 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { StarExposureCalculatorUI, StarExposureCalculatorLocaleContent } from '../index';
3
+
4
+ const slug = 'calculadora-regra-500';
5
+ const title = 'Calculadora da Regra dos 500 e NPF para Astrofotografia';
6
+ const description = 'Calcule o tempo de exposição máximo para astrofotografia sem rastos de estrelas. Regra clássica dos 500 e modelo NPF de alta precisão para sensores modernos.';
7
+
8
+ const ui: StarExposureCalculatorUI = {
9
+ toolTitle: 'Calculadora da Regra dos 500',
10
+ modeLabel: 'Modo',
11
+ classicMode: 'Clássico (500)',
12
+ npfMode: 'Preciso (NPF)',
13
+ sensorLabel: 'Sensor (Fator de Corte)',
14
+ focalLabel: 'Distância Focal (mm)',
15
+ apertureLabel: 'Abertura (f/stop)',
16
+ megapixelsLabel: 'Megapixels (MP)',
17
+ declinationLabel: 'Declinação Celeste',
18
+ equatorLabel: 'Equador',
19
+ poleLabel: 'Polo',
20
+ secondsUnit: 'segundos',
21
+ resultText: 'Tempo máximo para estrelas pontuais.',
22
+ simLabel: 'Simulação Visual (Zoom de 200%)',
23
+ simRangeLabel: 'Simular excesso de tempo',
24
+ pointStars: 'Estrelas como pontos',
25
+ trailStars: 'Rasto de estrela visível',
26
+ };
27
+
28
+ const faq: StarExposureCalculatorLocaleContent['faq'] = [
29
+ {
30
+ question: 'O que acontece se eu exceder o tempo calculado?',
31
+ answer: 'Se exceder o tempo máximo, as estrelas começarão a alongar-se em vez de serem pontos nítidos. Se a exposição for muito longa, obterá rastos de estrelas (star trails), uma técnica artística válida, mas que requer tempos muito mais longos para ser estética.',
32
+ },
33
+ {
34
+ question: 'Quando devo usar o NPF em vez da Regra dos 500?',
35
+ answer: 'O modelo NPF é mais preciso e recomendado para câmaras com sensores de alta resolução (24MP ou mais). Com a clássica Regra dos 500, poderá obter rastos invisíveis numa impressão de 10x15cm, mas visíveis ao visualizar num monitor 4K ou em impressões de grande formato. Se o seu objetivo é a nitidez máxima, use o NPF.',
36
+ },
37
+ {
38
+ question: 'Como encontro a declinação do objeto que quero fotografar?',
39
+ answer: 'Pode usar aplicações como Stellarium, SkySafari ou consultar cartas estelares. Como regra geral: quanto mais próximo do polo celeste (Dec 90°) o objeto estiver, mais tempo de exposição pode permitir-se.',
40
+ },
41
+ {
42
+ question: 'Esta calculadora funciona com um rastreador estelar (star tracker)?',
43
+ answer: 'Não para o céu em si, uma vez que o rastreador compensa a rotação. No entanto, é vital para calcular a foto do primeiro plano onde o rastreador não ajuda, ou para verificar se o motor está a falhar quando vê rastos inesperados.',
44
+ },
45
+ ];
46
+
47
+ const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
48
+ { name: '1. Escolha o modo de cálculo', text: 'Selecione Clássico (Regra dos 500) para uma estimativa rápida ou NPF se tiver um sensor de alta resolução e procurar a nitidez máxima.' },
49
+ { name: '2. Configure o seu equipamento', text: 'Introduza a distância focal da sua lente e selecione o fator de corte (crop factor) da sua câmara.' },
50
+ { name: '3. Ajuste a declinação', text: 'Se estiver a fotografar perto do polo celeste, aumente a declinação para permitir exposições mais longas sem rastos.' },
51
+ { name: '4. Simule o excesso de tempo', text: 'Use o cursor de simulação para visualizar como uma estrela ficaria se exceder o tempo calculado.' },
52
+ ];
53
+
54
+ const bibliography: StarExposureCalculatorLocaleContent['bibliography'] = [
55
+ { name: 'Sociedade Astronómica Francesa: O Modelo NPF', url: 'https://sahavre.fr/wp/regle-npf-rule/' },
56
+ { name: 'PetaPixel: Porque a Regra dos 500 já não é suficiente', url: 'https://petapixel.com/2015/01/06/avoid-star-trails-following-500-rule/' },
57
+ { name: 'Lonely Speck: Calculadora de Tempo de Obturação para Astrofotografia', url: 'https://www.lonelyspeck.com/advanced-astrophotography-shutter-time-calculator/' },
58
+ ];
59
+
60
+ const seo: StarExposureCalculatorLocaleContent['seo'] = [
61
+ {
62
+ type: 'summary',
63
+ title: 'Pontos Chave da Regra dos 500 e NPF',
64
+ items: [
65
+ 'A Regra dos 500 é uma aproximação válida para sensores de baixa resolução e visualização em pequenos formatos.',
66
+ 'O modelo NPF é mais preciso para sensores modernos com alta densidade de píxeis.',
67
+ 'A declinação celeste permite mais tempo de exposição perto dos polos (Dec 90°).',
68
+ 'O fator de corte do seu sensor multiplica a distância focal efetiva e reduz o tempo máximo.',
69
+ ],
70
+ },
71
+ { type: 'title', text: 'Dominando a Astrofotografia: Regra dos 500 e Modelo NPF', level: 2 },
72
+ {
73
+ type: 'paragraph',
74
+ html: 'Capturar a vastidão do céu noturno é um dos desafios mais gratificantes para qualquer fotógrafo. No entanto, o primeiro obstáculo é a rotação da Terra. Se deixarmos o obturador aberto durante demasiado tempo, esses pontos de luz perfeitos tornam-se rastos inestéticos. Para obter estrelas nítidas como pontos, precisamos de calcular o <strong>tempo de exposição máximo</strong> usando a Regora dos 500 ou o Modelo NPF.',
75
+ },
76
+ { type: 'title', text: 'O que é a Regra dos 500?', level: 2 },
77
+ {
78
+ type: 'paragraph',
79
+ html: 'A <strong>Regra dos 500</strong> é uma fórmula empírica simplificada que tem sido o padrão na astrofotografia de paisagem durante décadas. A sua fórmula é: <code>Tempo = 500 / (Distância Focal × Fator de Corte)</code>. É rápida, mental e suficientemente precisa para sensores de baixa resolução e visualização em formatos pequenos.',
80
+ },
81
+ { type: 'title', text: 'O Fator de Corte e o seu impacto', level: 2 },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Muitos principiantes esquecem-se que a Regra dos 500 se baseia no padrão de 35mm (Full Frame). Se a sua câmara tiver um sensor mais pequeno, o campo de visão é mais estreito e o movimento das estrelas é ampliado. Uma lente de 14mm numa APS-C (corte de 1.5x) comporta-se como uma equivalente a 21mm, reduzindo o tempo máximo de 35.7s para apenas 23.8s.',
85
+ },
86
+ {
87
+ type: 'table',
88
+ headers: ['Sensor', 'Corte', '14mm', '24mm', '50mm', '85mm'],
89
+ rows: [
90
+ ['Full Frame', 'x1.0', '35.7s', '20.8s', '10.0s', '5.9s'],
91
+ ['APS-C Nikon/Sony', 'x1.5', '23.8s', '13.9s', '6.7s', '3.9s'],
92
+ ['APS-C Canon', 'x1.6', '22.3s', '13.0s', '6.3s', '3.7s'],
93
+ ['Micro 4/3', 'x2.0', '17.9s', '10.4s', '5.0s', '2.9s'],
94
+ ],
95
+ },
96
+ { type: 'title', text: 'O Modelo NPF: Precisão para Sensores Modernos', level: 2 },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'A Regra dos 500 nasceu na era do rolo. Hoje, com sensores de 24-60MP, os píxeis são tão pequenos que os rastos são percebidos muito mais cedo. O <strong>Modelo NPF</strong>, desenvolvido pela Sociedade Astronómica Francesa, adiciona a abertura e a densidade de píxeis ao cálculo: <code>t = (35×f + 30×p) / F</code>, onde f é a abertura, p é o pixel pitch e F é a distância focal.',
100
+ },
101
+ {
102
+ type: 'tip',
103
+ title: 'Declinação: O Segredo do Fotógrafo Avançado',
104
+ html: 'As estrelas perto do <strong>polo celeste</strong> (Estrela Polar no hemisfério norte) traçam círculos muito pequenos no céu. Isto significa que se movem muito lentamente através do seu sensor, permitindo exposições muito mais longas. Se fotografar a área em redor da Estrela Polar, pode usar o dobro ou o triplo do tempo calculado sem visibilidade de rastos. A declinação indica o quão próximo do polo celeste o seu alvo está.',
105
+ },
106
+ {
107
+ type: 'stats',
108
+ columns: 2,
109
+ items: [
110
+ { label: 'Regra 500 - 14mm FF', value: '35.7s', icon: 'mdi:timer' },
111
+ { label: 'NPF - 14mm f/2.8 24MP', value: '~12s', icon: 'mdi:timer-sand' },
112
+ { label: 'Correção Dec 60°', value: 'x2.0', icon: 'mdi:compass' },
113
+ { label: 'Correção Dec 80°', value: 'x5.8', icon: 'mdi:compass' },
114
+ ],
115
+ },
116
+ ];
117
+
118
+ const faqSchema: WithContext<FAQPage> = {
119
+ '@context': 'https://schema.org',
120
+ '@type': 'FAQPage',
121
+ mainEntity: faq.map((item) => ({
122
+ '@type': 'Question',
123
+ name: item.question,
124
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
125
+ })),
126
+ };
127
+
128
+ const howToSchema: WithContext<HowTo> = {
129
+ '@context': 'https://schema.org',
130
+ '@type': 'HowTo',
131
+ name: title,
132
+ description,
133
+ step: howTo.map((step) => ({
134
+ '@type': 'HowToStep',
135
+ name: step.name,
136
+ text: step.text,
137
+ })),
138
+ };
139
+
140
+ const appSchema: WithContext<SoftwareApplication> = {
141
+ '@context': 'https://schema.org',
142
+ '@type': 'SoftwareApplication',
143
+ name: title,
144
+ description,
145
+ applicationCategory: 'UtilitiesApplication',
146
+ operatingSystem: 'Web',
147
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
148
+ inLanguage: 'pt',
149
+ };
150
+
151
+ export const content: StarExposureCalculatorLocaleContent = {
152
+ slug,
153
+ title,
154
+ description,
155
+ ui,
156
+ seo,
157
+ faq,
158
+ faqTitle: 'Perguntas Frequentes',
159
+ bibliography,
160
+ bibliographyTitle: 'Referências Bibliográficas',
161
+ howTo,
162
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
163
+ };