@jjlmoya/utils-astronomy 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/package.json +59 -58
  2. package/src/category/i18n/de.ts +57 -0
  3. package/src/category/i18n/id.ts +57 -0
  4. package/src/category/i18n/it.ts +57 -0
  5. package/src/category/i18n/ja.ts +57 -0
  6. package/src/category/i18n/ko.ts +57 -0
  7. package/src/category/i18n/nl.ts +57 -0
  8. package/src/category/i18n/pl.ts +57 -0
  9. package/src/category/i18n/pt.ts +57 -0
  10. package/src/category/i18n/ru.ts +57 -0
  11. package/src/category/i18n/sv.ts +57 -0
  12. package/src/category/i18n/tr.ts +57 -0
  13. package/src/category/i18n/zh.ts +57 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/tests/faq_count.test.ts +9 -14
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +42 -0
  18. package/src/tests/no_h1_in_components.test.ts +48 -0
  19. package/src/tests/schemas_fulfillment.test.ts +23 -0
  20. package/src/tests/seo_length.test.ts +3 -38
  21. package/src/tests/title_quality.test.ts +55 -0
  22. package/src/tests/tool_validation.test.ts +5 -5
  23. package/src/tool/bortleVisualizer/component.astro +11 -4
  24. package/src/tool/bortleVisualizer/i18n/de.ts +167 -0
  25. package/src/tool/bortleVisualizer/i18n/en.ts +14 -0
  26. package/src/tool/bortleVisualizer/i18n/es.ts +14 -0
  27. package/src/tool/bortleVisualizer/i18n/fr.ts +13 -0
  28. package/src/tool/bortleVisualizer/i18n/id.ts +167 -0
  29. package/src/tool/bortleVisualizer/i18n/it.ts +167 -0
  30. package/src/tool/bortleVisualizer/i18n/ja.ts +167 -0
  31. package/src/tool/bortleVisualizer/i18n/ko.ts +167 -0
  32. package/src/tool/bortleVisualizer/i18n/nl.ts +167 -0
  33. package/src/tool/bortleVisualizer/i18n/pl.ts +167 -0
  34. package/src/tool/bortleVisualizer/i18n/pt.ts +167 -0
  35. package/src/tool/bortleVisualizer/i18n/ru.ts +167 -0
  36. package/src/tool/bortleVisualizer/i18n/sv.ts +167 -0
  37. package/src/tool/bortleVisualizer/i18n/tr.ts +167 -0
  38. package/src/tool/bortleVisualizer/i18n/zh.ts +167 -0
  39. package/src/tool/bortleVisualizer/index.ts +32 -8
  40. package/src/tool/deepSpaceScope/component.astro +26 -18
  41. package/src/tool/deepSpaceScope/i18n/de.ts +178 -0
  42. package/src/tool/deepSpaceScope/i18n/en.ts +21 -0
  43. package/src/tool/deepSpaceScope/i18n/es.ts +21 -0
  44. package/src/tool/deepSpaceScope/i18n/fr.ts +21 -0
  45. package/src/tool/deepSpaceScope/i18n/id.ts +178 -0
  46. package/src/tool/deepSpaceScope/i18n/it.ts +178 -0
  47. package/src/tool/deepSpaceScope/i18n/ja.ts +178 -0
  48. package/src/tool/deepSpaceScope/i18n/ko.ts +178 -0
  49. package/src/tool/deepSpaceScope/i18n/nl.ts +178 -0
  50. package/src/tool/deepSpaceScope/i18n/pl.ts +178 -0
  51. package/src/tool/deepSpaceScope/i18n/pt.ts +178 -0
  52. package/src/tool/deepSpaceScope/i18n/ru.ts +178 -0
  53. package/src/tool/deepSpaceScope/i18n/sv.ts +178 -0
  54. package/src/tool/deepSpaceScope/i18n/tr.ts +178 -0
  55. package/src/tool/deepSpaceScope/i18n/zh.ts +178 -0
  56. package/src/tool/deepSpaceScope/index.ts +32 -8
  57. package/src/tool/deepSpaceScope/logic.ts +1 -17
  58. package/src/tool/starExposureCalculator/component.astro +8 -2
  59. package/src/tool/starExposureCalculator/i18n/de.ts +163 -0
  60. package/src/tool/starExposureCalculator/i18n/id.ts +163 -0
  61. package/src/tool/starExposureCalculator/i18n/it.ts +163 -0
  62. package/src/tool/starExposureCalculator/i18n/ja.ts +163 -0
  63. package/src/tool/starExposureCalculator/i18n/ko.ts +163 -0
  64. package/src/tool/starExposureCalculator/i18n/nl.ts +163 -0
  65. package/src/tool/starExposureCalculator/i18n/pl.ts +163 -0
  66. package/src/tool/starExposureCalculator/i18n/pt.ts +163 -0
  67. package/src/tool/starExposureCalculator/i18n/ru.ts +163 -0
  68. package/src/tool/starExposureCalculator/i18n/sv.ts +163 -0
  69. package/src/tool/starExposureCalculator/i18n/tr.ts +163 -0
  70. package/src/tool/starExposureCalculator/i18n/zh.ts +163 -0
  71. package/src/tool/starExposureCalculator/index.ts +15 -7
  72. package/src/tool/telescopeResolution/component.astro +26 -26
  73. package/src/tool/telescopeResolution/i18n/de.ts +176 -0
  74. package/src/tool/telescopeResolution/i18n/en.ts +10 -2
  75. package/src/tool/telescopeResolution/i18n/es.ts +8 -0
  76. package/src/tool/telescopeResolution/i18n/fr.ts +9 -1
  77. package/src/tool/telescopeResolution/i18n/id.ts +176 -0
  78. package/src/tool/telescopeResolution/i18n/it.ts +176 -0
  79. package/src/tool/telescopeResolution/i18n/ja.ts +176 -0
  80. package/src/tool/telescopeResolution/i18n/ko.ts +176 -0
  81. package/src/tool/telescopeResolution/i18n/nl.ts +176 -0
  82. package/src/tool/telescopeResolution/i18n/pl.ts +176 -0
  83. package/src/tool/telescopeResolution/i18n/pt.ts +176 -0
  84. package/src/tool/telescopeResolution/i18n/ru.ts +176 -0
  85. package/src/tool/telescopeResolution/i18n/sv.ts +176 -0
  86. package/src/tool/telescopeResolution/i18n/tr.ts +176 -0
  87. package/src/tool/telescopeResolution/i18n/zh.ts +176 -0
  88. package/src/tool/telescopeResolution/index.ts +17 -8
  89. package/src/types.ts +6 -4
@@ -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 = 'Calcolatore Regola del 500 e NPF per Astrofotografia';
6
+ const description = 'Calcola il tempo di esposizione massimo per l\'astrofotografia senza tracce stellari. Regola classica del 500 e modello NPF ad alta precisione per sensori moderni.';
7
+
8
+ const ui: StarExposureCalculatorUI = {
9
+ toolTitle: 'Calcolatore Regola del 500',
10
+ modeLabel: 'Modalità',
11
+ classicMode: 'Classica (500)',
12
+ npfMode: 'Precisa (NPF)',
13
+ sensorLabel: 'Sensore (Fattore Crop)',
14
+ focalLabel: 'Lunghezza Focale (mm)',
15
+ apertureLabel: 'Apertura (f/stop)',
16
+ megapixelsLabel: 'Megapixel (MP)',
17
+ declinationLabel: 'Declinazione Celeste',
18
+ equatorLabel: 'Equatore',
19
+ poleLabel: 'Polo',
20
+ secondsUnit: 'secondi',
21
+ resultText: 'Tempo massimo per stelle puntiformi.',
22
+ simLabel: 'Simulazione Visiva (Zoom 200%)',
23
+ simRangeLabel: 'Simula eccesso di tempo',
24
+ pointStars: 'Stelle puntiformi',
25
+ trailStars: 'Traccia stellare visibile',
26
+ };
27
+
28
+ const faq: StarExposureCalculatorLocaleContent['faq'] = [
29
+ {
30
+ question: 'Cosa succede se supero il tempo calcolato?',
31
+ answer: 'Se superi il tempo massimo, le stelle inizieranno ad allungarsi invece di rimanere punti nitidi. Se l\'esposizione è molto lunga, otterrai delle tracce stellari (star trails), una tecnica artistica valida ma che richiede tempi molto più lunghi per essere estetica.',
32
+ },
33
+ {
34
+ question: 'Quando dovrei usare NPF invece della Regola del 500?',
35
+ answer: 'Il modello NPF è più accurato e consigliato per fotocamere con sensori ad alta risoluzione (24MP o più). Con la classica Regola del 500 potresti ottenere tracce invisibili su una stampa 10x15 ma visibili su un monitor 4K o in stampe di grande formato. Se il tuo obiettivo è la massima nitidezza, usa NPF.',
36
+ },
37
+ {
38
+ question: 'Come trovo la declinazione dell\'oggetto che voglio fotografare?',
39
+ answer: 'Puoi usare app come Stellarium, SkySafari o consultare mappe stellari. Come regola generale: più l\'oggetto è vicino al polo celeste (Dec 90°), maggiore è il tempo di esposizione che puoi permetterti.',
40
+ },
41
+ {
42
+ question: 'Questo calcolatore funziona con un inseguitore stellare?',
43
+ answer: 'Non per il cielo stesso, poiché l\'inseguitore compensa la rotazione. Tuttavia, è vitale per calcolare lo scatto del primo piano dove l\'inseguitore non aiuta, o per verificare se il motore sta fallendo quando vedi tracce inaspettate.',
44
+ },
45
+ ];
46
+
47
+ const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
48
+ { name: '1. Scegli la modalità di calcolo', text: 'Seleziona Classica (Regola del 500) per una stima rapida o NPF se hai un sensore ad alta risoluzione e cerchi la massima nitidezza.' },
49
+ { name: '2. Configura la tua attrezzatura', text: 'Inserisci la lunghezza focale del tuo obiettivo e seleziona il fattore di crop della tua fotocamera.' },
50
+ { name: '3. Regola la declinazione', text: 'Se fotografi vicino al polo celeste, aumenta la declinazione per consentire esposizioni più lunghe senza tracce.' },
51
+ { name: '4. Simula l\'eccesso di tempo', text: 'Usa lo slider della simulazione per visualizzare come apparirebbe una stella se superi il tempo calcolato.' },
52
+ ];
53
+
54
+ const bibliography: StarExposureCalculatorLocaleContent['bibliography'] = [
55
+ { name: 'Società Astronomica Francese: Il Modello NPF', url: 'https://sahavre.fr/wp/regle-npf-rule/' },
56
+ { name: 'PetaPixel: Perché la Regola del 500 non è più sufficiente', url: 'https://petapixel.com/2015/01/06/avoid-star-trails-following-500-rule/' },
57
+ { name: 'Lonely Speck: Calcolatore tempo di scatto per astrofotografia', url: 'https://www.lonelyspeck.com/advanced-astrophotography-shutter-time-calculator/' },
58
+ ];
59
+
60
+ const seo: StarExposureCalculatorLocaleContent['seo'] = [
61
+ {
62
+ type: 'summary',
63
+ title: 'Punti chiave della Regola del 500 e NPF',
64
+ items: [
65
+ 'La Regola del 500 è un\'approssimazione valida per sensori a bassa risoluzione e visualizzazione in piccolo formato.',
66
+ 'Il modello NPF è più accurato per i sensori moderni con alta densità di pixel.',
67
+ 'La declinazione celeste consente tempi di esposizione maggiori vicino ai poli (Dec 90°).',
68
+ 'Il fattore di crop del sensore moltiplica la focale effettiva e riduce il tempo massimo.',
69
+ ],
70
+ },
71
+ { type: 'title', text: 'Padroneggiare l\'Astrofotografia: Regola del 500 e Modello NPF', level: 2 },
72
+ {
73
+ type: 'paragraph',
74
+ html: 'Catturare la vastità del cielo notturno è una delle sfide più gratificanti per ogni fotografo. Tuttavia, il primo ostacolo è la rotazione terrestre. Se lasciamo l\'otturatore aperto troppo a lungo, quei perfetti punti di luce diventano tracce antiestetiche. Per ottenere stelle nitide come punti, dobbiamo calcolare il <strong>tempo massimo di esposizione</strong> usando la Regola del 500 o il Modello NPF.',
75
+ },
76
+ { type: 'title', text: 'Cos\'è la Regola del 500?', level: 2 },
77
+ {
78
+ type: 'paragraph',
79
+ html: 'La <strong>Regola del 500</strong> è una formula empirica semplificata che è stata lo standard nell\'astrofotografia paesaggistica per decenni. La sua formula è: <code>Tempo = 500 / (Focale × Fattore Crop)</code>. È rapida, mentale e sufficientemente accurata per sensori a bassa risoluzione e visualizzazione in formato ridotto.',
80
+ },
81
+ { type: 'title', text: 'Il Fattore Crop e il suo impatto', level: 2 },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Molti principianti dimenticano che la Regola del 500 si basa sullo standard 35mm (Full Frame). Se la tua fotocamera ha un sensore più piccolo, il campo visivo è più stretto e il movimento delle stelle è magnificato. Un obiettivo da 14mm su una APS-C (crop 1.5x) si comporta come un equivalente 21mm, riducendo il tempo massimo da 35.7s a soli 23.8s.',
85
+ },
86
+ {
87
+ type: 'table',
88
+ headers: ['Sensore', '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: 'Il Modello NPF: Precisione per sensori moderni', level: 2 },
97
+ {
98
+ type: 'paragraph',
99
+ html: 'La Regola del 500 è nata nell\'era della pellicola. Oggi, con sensori da 24-60MP, i pixel sono così piccoli che le tracce si percepiscono molto prima. Il <strong>Modello NPF</strong>, sviluppato dalla Società Astronomica Francese, aggiunge l\'apertura e la densità di pixel al calcolo: <code>t = (35×f + 30×p) / F</code>, dove f è l\'apertura, p è il pixel pitch e F è la focale.',
100
+ },
101
+ {
102
+ type: 'tip',
103
+ title: 'Declinazione: Il segreto del fotografo avanzato',
104
+ html: 'Le stelle vicino al <strong>polo celeste</strong> (la Stella Polare nell\'emisfero nord) tracciano cerchi molto piccoli nel cielo. Questo significa che si muovono molto lentamente sul tuo sensore, permettendo esposizioni molto più lunghe. Se fotografi l\'area intorno alla Polare, puoi usare il doppio o il triplo del tempo calcolato senza che si vedano tracce. La declinazione ti dice quanto il tuo obiettivo è vicino al polo celeste.',
105
+ },
106
+ {
107
+ type: 'stats',
108
+ columns: 2,
109
+ items: [
110
+ { label: 'Regola 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: 'Correzione Dec 60°', value: 'x2.0', icon: 'mdi:compass' },
113
+ { label: 'Correzione 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: 'it',
149
+ };
150
+
151
+ export const content: StarExposureCalculatorLocaleContent = {
152
+ slug,
153
+ title,
154
+ description,
155
+ ui,
156
+ seo,
157
+ faq,
158
+ faqTitle: 'Domande Frequenti',
159
+ bibliography,
160
+ bibliographyTitle: 'Riferimenti Bibliografici',
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 = '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: '最大露光時間を超えると、星は鋭い点ではなく、楕円形に伸びて写り始めます。さらに長時間露光すると「星の軌跡(スタートレイル)」になります。これは芸術的な手法の一つですが、きれいな軌跡にするにはこの計算値よりもはるかに長い時間が必要です。',
32
+ },
33
+ {
34
+ question: '500ルールではなくNPFモデルを使うべきなのはいつですか?',
35
+ answer: 'NPFモデルはより精密で、2400万画素以上の高画素カメラにおすすめです。古典的な500ルールでは、小さなプリントでは気にならなくても、4Kモニターでの鑑賞や大判プリントでは星の伸びが目立つことがあります。究極のシャープさを求めるならNPFを使用してください。',
36
+ },
37
+ {
38
+ question: '撮影したい天体の「赤緯」はどうやって調べればいいですか?',
39
+ answer: 'Stellarium(ステラリウム)などのアプリや星座表で確認できます。一般的なルールとして、天の北極または南極(赤緯90度)に近いほど、星の動きが遅くなるため露光時間を長く設定できます。',
40
+ },
41
+ {
42
+ question: 'この計算機はポータブル赤道儀(スタートラッカー)使用時も使えますか?',
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ルールは低画素機やSNS投稿などの小サイズ鑑賞に適した簡易的な計算方法です。',
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などの小型センサーを搭載したカメラでは、画角が狭くなるため、星の動きが相対的に大きく写ります。例えば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.7秒', '20.8秒', '10.0秒', '5.9秒'],
91
+ ['APS-C (1.5x)', 'x1.5', '23.8秒', '13.9秒', '6.7秒', '3.9秒'],
92
+ ['APS-C (1.6x)', 'x1.6', '22.3秒', '13.0秒', '6.3秒', '3.7秒'],
93
+ ['マイクロフォーサーズ', 'x2.0', '17.9秒', '10.4秒', '5.0秒', '2.9秒'],
94
+ ],
95
+ },
96
+ { type: 'title', text: 'NPFモデル:高画素機時代の精密計算', level: 2 },
97
+ {
98
+ type: 'paragraph',
99
+ html: '500ルールはフィルム時代に生まれた法則です。2400万〜6000万画素といった現代の高画素機では、ピクセル密度が極めて高いため、ごくわずかな星の動きも捉えてしまいます。フランス天文学会が提唱した<strong>NPFモデル</strong>は、絞り値(f)と画素ピッチ(p)を計算に取り入れることで、より厳密な時間を導き出します。',
100
+ },
101
+ {
102
+ type: 'tip',
103
+ title: '赤緯:ベテランが使う撮影の裏技',
104
+ html: '<strong>天の北極や南極</strong>(北半球では北極星付近)に近い星は、空の上で描く円が非常に小さくなります。つまり、センサー上での移動スピードが遅いため、より長時間の露光が可能です。北極星の周辺を撮る場合は、計算上の時間の2〜3倍露光しても星が流れて見えないことがあります。赤緯(Declination)を意識することで、ISO感度を下げてより高画質な写真を撮ることができます。',
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: 'ja',
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 = '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 = '500-rule-calculator';
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
+ };