@jjlmoya/utils-astronomy 1.24.0 → 1.26.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 (70) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +57 -57
  3. package/src/category/i18n/en.ts +1 -1
  4. package/src/category/i18n/es.ts +1 -1
  5. package/src/category/i18n/fr.ts +58 -58
  6. package/src/category/i18n/it.ts +1 -1
  7. package/src/category/i18n/nl.ts +57 -57
  8. package/src/category/i18n/pl.ts +57 -57
  9. package/src/category/i18n/pt.ts +1 -1
  10. package/src/category/i18n/ru.ts +57 -57
  11. package/src/category/i18n/sv.ts +57 -57
  12. package/src/category/i18n/zh.ts +57 -57
  13. package/src/category/index.ts +30 -30
  14. package/src/category/seo.astro +15 -15
  15. package/src/components/PreviewNavSidebar.astro +116 -116
  16. package/src/components/PreviewToolbar.astro +143 -143
  17. package/src/data.ts +16 -16
  18. package/src/env.d.ts +5 -5
  19. package/src/index.ts +22 -22
  20. package/src/layouts/PreviewLayout.astro +122 -122
  21. package/src/pages/[locale].astro +251 -251
  22. package/src/pages/index.astro +4 -4
  23. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  24. package/src/tests/category_seo_quality.test.ts +74 -0
  25. package/src/tests/faq_count.test.ts +1 -1
  26. package/src/tests/mocks/astro_mock.js +2 -2
  27. package/src/tests/no_h1_in_components.test.ts +1 -1
  28. package/src/tests/seo_length.test.ts +1 -1
  29. package/src/tests/seo_parity.test.ts +2 -2
  30. package/src/tests/seo_translation_completeness.test.ts +75 -0
  31. package/src/tests/seo_wellformed_export.test.ts +65 -0
  32. package/src/tests/tool_structure.test.ts +71 -71
  33. package/src/tests/tool_validation.test.ts +146 -146
  34. package/src/tool/bortleVisualizer/bibliography.astro +14 -14
  35. package/src/tool/bortleVisualizer/bibliography.ts +8 -8
  36. package/src/tool/bortleVisualizer/i18n/pl.ts +159 -159
  37. package/src/tool/bortleVisualizer/i18n/ru.ts +159 -159
  38. package/src/tool/deepSpaceScope/bibliography.astro +14 -14
  39. package/src/tool/deepSpaceScope/component.astro +382 -382
  40. package/src/tool/deepSpaceScope/i18n/de.ts +172 -172
  41. package/src/tool/deepSpaceScope/i18n/ko.ts +172 -172
  42. package/src/tool/deepSpaceScope/i18n/pl.ts +172 -172
  43. package/src/tool/deepSpaceScope/i18n/ru.ts +172 -172
  44. package/src/tool/deepSpaceScope/i18n/zh.ts +172 -172
  45. package/src/tool/smartEyepieceCalculator/component.astro +125 -125
  46. package/src/tool/smartEyepieceCalculator/i18n/fr.ts +165 -165
  47. package/src/tool/smartEyepieceCalculator/i18n/ru.ts +165 -165
  48. package/src/tool/smartEyepieceCalculator/i18n/zh.ts +165 -165
  49. package/src/tool/starExposureCalculator/bibliography.astro +14 -14
  50. package/src/tool/starExposureCalculator/bibliography.ts +7 -7
  51. package/src/tool/starExposureCalculator/component.astro +249 -249
  52. package/src/tool/starExposureCalculator/i18n/pl.ts +156 -156
  53. package/src/tool/starExposureCalculator/i18n/ru.ts +156 -156
  54. package/src/tool/telescopeResolution/bibliography.astro +14 -14
  55. package/src/tool/telescopeResolution/component.astro +222 -222
  56. package/src/tool/telescopeResolution/i18n/de.ts +169 -169
  57. package/src/tool/telescopeResolution/i18n/en.ts +169 -169
  58. package/src/tool/telescopeResolution/i18n/es.ts +169 -169
  59. package/src/tool/telescopeResolution/i18n/fr.ts +169 -169
  60. package/src/tool/telescopeResolution/i18n/id.ts +169 -169
  61. package/src/tool/telescopeResolution/i18n/it.ts +169 -169
  62. package/src/tool/telescopeResolution/i18n/ja.ts +169 -169
  63. package/src/tool/telescopeResolution/i18n/ko.ts +169 -169
  64. package/src/tool/telescopeResolution/i18n/nl.ts +169 -169
  65. package/src/tool/telescopeResolution/i18n/pl.ts +169 -169
  66. package/src/tool/telescopeResolution/i18n/pt.ts +169 -169
  67. package/src/tool/telescopeResolution/i18n/ru.ts +169 -169
  68. package/src/tool/telescopeResolution/i18n/sv.ts +169 -169
  69. package/src/tool/telescopeResolution/i18n/tr.ts +169 -169
  70. package/src/tool/telescopeResolution/i18n/zh.ts +169 -169
@@ -1,156 +1,156 @@
1
- import { bibliography } from '../bibliography';
2
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
- import type { StarExposureCalculatorUI, StarExposureCalculatorLocaleContent } from '../index';
4
-
5
- const slug = 'kalkulator-reguly-500';
6
- const title = 'Kalkulator reguły 500 i NPF w astrofotografii';
7
- const description = 'Oblicz maksymalny czas ekspozycji w astrofotografii bez efektu poruszonych gwiazd. Klasyczna reguła 500 oraz precyzyjny model NPF dla nowoczesnych matryc.';
8
-
9
- const ui: StarExposureCalculatorUI = {
10
- toolTitle: 'Kalkulator reguły 500',
11
- modeLabel: 'Tryb',
12
- classicMode: 'Klasyczny (500)',
13
- npfMode: 'Precyzyjny (NPF)',
14
- sensorLabel: 'Matryca (Crop Factor)',
15
- focalLabel: 'Ogniskowa (mm)',
16
- apertureLabel: 'Przysłona (f/stop)',
17
- megapixelsLabel: 'Megapiksele (MP)',
18
- declinationLabel: 'Deklinacja niebieska',
19
- equatorLabel: 'Równik',
20
- poleLabel: 'Biegun',
21
- secondsUnit: 'sekundy',
22
- resultText: 'Maksymalny czas dla punktowych gwiazd.',
23
- simLabel: 'Symulacja wizualna (zoom 200%)',
24
- simRangeLabel: 'Symuluj przekroczenie czasu',
25
- pointStars: 'Gwiazdy jako punkty',
26
- trailStars: 'Widoczne ślady gwiazd',
27
- };
28
-
29
- const faq: StarExposureCalculatorLocaleContent['faq'] = [
30
- {
31
- question: 'Co się stanie, jeśli przekroczę obliczony czas?',
32
- 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.',
33
- },
34
- {
35
- question: 'Kiedy powinienem używać NPF zamiast reguły 500?',
36
- 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.',
37
- },
38
- {
39
- question: 'Jak znaleźć deklinację obiektu, który chcę sfotografować?',
40
- 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ć.',
41
- },
42
- {
43
- question: 'Czy ten kalkulator działa z trackerem gwiazd (star tracker)?',
44
- 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.',
45
- },
46
- ];
47
-
48
- const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
49
- { 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.' },
50
- { name: '2. Skonfiguruj swój sprzęt', text: 'Wprowadź ogniskową obiektywu i wybierz crop factor swojego aparatu.' },
51
- { 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.' },
52
- { name: '4. Symuluj przekroczenie czasu', text: 'Użyj suwaka symulacji, aby zobaczyć, jak wyglądałaby gwiazda po przekroczeniu obliczonego czasu ekspozycji.' },
53
- ];
54
-
55
- const seo: StarExposureCalculatorLocaleContent['seo'] = [
56
- {
57
- type: 'summary',
58
- title: 'Kluczowe punkty reguły 500 i NPF',
59
- items: [
60
- 'Reguła 500 to dobre przybliżenie dla matryc o niskiej rozdzielczości i małych formatów wyświetlania.',
61
- 'Model NPF jest znacznie dokładniejszy dla nowoczesnych matryc o dużej gęstości pikseli.',
62
- 'Deklinacja niebieska pozwala na dłuższy czas ekspozycji w pobliżu biegunów (Dec 90°).',
63
- 'Crop factor matrycy mnoży efektywną ogniskową i skraca maksymalny czas ekspozycji.',
64
- ],
65
- },
66
- { type: 'title', text: 'Mistrzowska astrofotografia: reguła 500 i model NPF', level: 2 },
67
- {
68
- type: 'paragraph',
69
- 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.',
70
- },
71
- { type: 'title', text: 'Czym jest reguła 500?', level: 2 },
72
- {
73
- type: 'paragraph',
74
- 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.',
75
- },
76
- { type: 'title', text: 'Crop Factor i jego wpływ', level: 2 },
77
- {
78
- type: 'paragraph',
79
- 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.',
80
- },
81
- {
82
- type: 'table',
83
- headers: ['Matryca', 'Crop', '14mm', '24mm', '50mm', '85mm'],
84
- rows: [
85
- ['Full Frame', 'x1.0', '35.7s', '20.8s', '10.0s', '5.9s'],
86
- ['APS-C Nikon/Sony', 'x1.5', '23.8s', '13.9s', '6.7s', '3.9s'],
87
- ['APS-C Canon', 'x1.6', '22.3s', '13.0s', '6.3s', '3.7s'],
88
- ['Micro 4/3', 'x2.0', '17.9s', '10.4s', '5.0s', '2.9s'],
89
- ],
90
- },
91
- { type: 'title', text: 'Model NPF: precyzja dla nowoczesnych matryc', level: 2 },
92
- {
93
- type: 'paragraph',
94
- 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.',
95
- },
96
- {
97
- type: 'tip',
98
- title: 'Deklinacja: sekret zaawansowanego fotografa',
99
- 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.',
100
- },
101
- {
102
- type: 'stats',
103
- columns: 2,
104
- items: [
105
- { label: 'Reguła 500 - 14mm FF', value: '35.7s', icon: 'mdi:timer' },
106
- { label: 'NPF - 14mm f/2.8 24MP', value: '~12s', icon: 'mdi:timer-sand' },
107
- { label: 'Korekta Dec 60°', value: 'x2.0', icon: 'mdi:compass' },
108
- { label: 'Korekta Dec 80°', value: 'x5.8', icon: 'mdi:compass' },
109
- ],
110
- },
111
- ];
112
-
113
- const faqSchema: WithContext<FAQPage> = {
114
- '@context': 'https://schema.org',
115
- '@type': 'FAQPage',
116
- mainEntity: faq.map((item) => ({
117
- '@type': 'Question',
118
- name: item.question,
119
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
120
- })),
121
- };
122
-
123
- const howToSchema: WithContext<HowTo> = {
124
- '@context': 'https://schema.org',
125
- '@type': 'HowTo',
126
- name: title,
127
- description,
128
- step: howTo.map((step) => ({
129
- '@type': 'HowToStep',
130
- name: step.name,
131
- text: step.text,
132
- })),
133
- };
134
-
135
- const appSchema: WithContext<SoftwareApplication> = {
136
- '@context': 'https://schema.org',
137
- '@type': 'SoftwareApplication',
138
- name: title,
139
- description,
140
- applicationCategory: 'UtilitiesApplication',
141
- operatingSystem: 'Web',
142
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
143
- inLanguage: 'pl',
144
- };
145
-
146
- export const content: StarExposureCalculatorLocaleContent = {
147
- slug,
148
- title,
149
- description,
150
- ui,
151
- seo,
152
- faq,
153
- bibliography,
154
- howTo,
155
- schemas: [faqSchema as any, howToSchema as any, appSchema],
156
- };
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { StarExposureCalculatorUI, StarExposureCalculatorLocaleContent } from '../index';
4
+
5
+ const slug = 'kalkulator-reguly-500';
6
+ const title = 'Kalkulator reguły 500 i NPF w astrofotografii';
7
+ const description = 'Oblicz maksymalny czas ekspozycji w astrofotografii bez efektu poruszonych gwiazd. Klasyczna reguła 500 oraz precyzyjny model NPF dla nowoczesnych matryc.';
8
+
9
+ const ui: StarExposureCalculatorUI = {
10
+ toolTitle: 'Kalkulator reguły 500',
11
+ modeLabel: 'Tryb',
12
+ classicMode: 'Klasyczny (500)',
13
+ npfMode: 'Precyzyjny (NPF)',
14
+ sensorLabel: 'Matryca (Crop Factor)',
15
+ focalLabel: 'Ogniskowa (mm)',
16
+ apertureLabel: 'Przysłona (f/stop)',
17
+ megapixelsLabel: 'Megapiksele (MP)',
18
+ declinationLabel: 'Deklinacja niebieska',
19
+ equatorLabel: 'Równik',
20
+ poleLabel: 'Biegun',
21
+ secondsUnit: 'sekundy',
22
+ resultText: 'Maksymalny czas dla punktowych gwiazd.',
23
+ simLabel: 'Symulacja wizualna (zoom 200%)',
24
+ simRangeLabel: 'Symuluj przekroczenie czasu',
25
+ pointStars: 'Gwiazdy jako punkty',
26
+ trailStars: 'Widoczne ślady gwiazd',
27
+ };
28
+
29
+ const faq: StarExposureCalculatorLocaleContent['faq'] = [
30
+ {
31
+ question: 'Co się stanie, jeśli przekroczę obliczony czas?',
32
+ 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.',
33
+ },
34
+ {
35
+ question: 'Kiedy powinienem używać NPF zamiast reguły 500?',
36
+ 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.',
37
+ },
38
+ {
39
+ question: 'Jak znaleźć deklinację obiektu, który chcę sfotografować?',
40
+ 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ć.',
41
+ },
42
+ {
43
+ question: 'Czy ten kalkulator działa z trackerem gwiazd (star tracker)?',
44
+ 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.',
45
+ },
46
+ ];
47
+
48
+ const howTo: StarExposureCalculatorLocaleContent['howTo'] = [
49
+ { 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.' },
50
+ { name: '2. Skonfiguruj swój sprzęt', text: 'Wprowadź ogniskową obiektywu i wybierz crop factor swojego aparatu.' },
51
+ { 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.' },
52
+ { name: '4. Symuluj przekroczenie czasu', text: 'Użyj suwaka symulacji, aby zobaczyć, jak wyglądałaby gwiazda po przekroczeniu obliczonego czasu ekspozycji.' },
53
+ ];
54
+
55
+ const seo: StarExposureCalculatorLocaleContent['seo'] = [
56
+ {
57
+ type: 'summary',
58
+ title: 'Kluczowe punkty reguły 500 i NPF',
59
+ items: [
60
+ 'Reguła 500 to dobre przybliżenie dla matryc o niskiej rozdzielczości i małych formatów wyświetlania.',
61
+ 'Model NPF jest znacznie dokładniejszy dla nowoczesnych matryc o dużej gęstości pikseli.',
62
+ 'Deklinacja niebieska pozwala na dłuższy czas ekspozycji w pobliżu biegunów (Dec 90°).',
63
+ 'Crop factor matrycy mnoży efektywną ogniskową i skraca maksymalny czas ekspozycji.',
64
+ ],
65
+ },
66
+ { type: 'title', text: 'Mistrzowska astrofotografia: reguła 500 i model NPF', level: 2 },
67
+ {
68
+ type: 'paragraph',
69
+ 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.',
70
+ },
71
+ { type: 'title', text: 'Czym jest reguła 500?', level: 2 },
72
+ {
73
+ type: 'paragraph',
74
+ 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.',
75
+ },
76
+ { type: 'title', text: 'Crop Factor i jego wpływ', level: 2 },
77
+ {
78
+ type: 'paragraph',
79
+ 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.',
80
+ },
81
+ {
82
+ type: 'table',
83
+ headers: ['Matryca', 'Crop', '14mm', '24mm', '50mm', '85mm'],
84
+ rows: [
85
+ ['Full Frame', 'x1.0', '35.7s', '20.8s', '10.0s', '5.9s'],
86
+ ['APS-C Nikon/Sony', 'x1.5', '23.8s', '13.9s', '6.7s', '3.9s'],
87
+ ['APS-C Canon', 'x1.6', '22.3s', '13.0s', '6.3s', '3.7s'],
88
+ ['Micro 4/3', 'x2.0', '17.9s', '10.4s', '5.0s', '2.9s'],
89
+ ],
90
+ },
91
+ { type: 'title', text: 'Model NPF: precyzja dla nowoczesnych matryc', level: 2 },
92
+ {
93
+ type: 'paragraph',
94
+ 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.',
95
+ },
96
+ {
97
+ type: 'tip',
98
+ title: 'Deklinacja: sekret zaawansowanego fotografa',
99
+ 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.',
100
+ },
101
+ {
102
+ type: 'stats',
103
+ columns: 2,
104
+ items: [
105
+ { label: 'Reguła 500 - 14mm FF', value: '35.7s', icon: 'mdi:timer' },
106
+ { label: 'NPF - 14mm f/2.8 24MP', value: '~12s', icon: 'mdi:timer-sand' },
107
+ { label: 'Korekta Dec 60°', value: 'x2.0', icon: 'mdi:compass' },
108
+ { label: 'Korekta Dec 80°', value: 'x5.8', icon: 'mdi:compass' },
109
+ ],
110
+ },
111
+ ];
112
+
113
+ const faqSchema: WithContext<FAQPage> = {
114
+ '@context': 'https://schema.org',
115
+ '@type': 'FAQPage',
116
+ mainEntity: faq.map((item) => ({
117
+ '@type': 'Question',
118
+ name: item.question,
119
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
120
+ })),
121
+ };
122
+
123
+ const howToSchema: WithContext<HowTo> = {
124
+ '@context': 'https://schema.org',
125
+ '@type': 'HowTo',
126
+ name: title,
127
+ description,
128
+ step: howTo.map((step) => ({
129
+ '@type': 'HowToStep',
130
+ name: step.name,
131
+ text: step.text,
132
+ })),
133
+ };
134
+
135
+ const appSchema: WithContext<SoftwareApplication> = {
136
+ '@context': 'https://schema.org',
137
+ '@type': 'SoftwareApplication',
138
+ name: title,
139
+ description,
140
+ applicationCategory: 'UtilitiesApplication',
141
+ operatingSystem: 'Web',
142
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
143
+ inLanguage: 'pl',
144
+ };
145
+
146
+ export const content: StarExposureCalculatorLocaleContent = {
147
+ slug,
148
+ title,
149
+ description,
150
+ ui,
151
+ seo,
152
+ faq,
153
+ bibliography,
154
+ howTo,
155
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
156
+ };