@jjlmoya/utils-audiovisual 1.6.0 โ†’ 1.8.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 (175) hide show
  1. package/package.json +59 -58
  2. package/src/category/i18n/de.ts +198 -0
  3. package/src/category/i18n/fr.ts +1 -1
  4. package/src/category/i18n/id.ts +198 -0
  5. package/src/category/i18n/it.ts +198 -0
  6. package/src/category/i18n/ja.ts +198 -0
  7. package/src/category/i18n/ko.ts +198 -0
  8. package/src/category/i18n/nl.ts +198 -0
  9. package/src/category/i18n/pl.ts +198 -0
  10. package/src/category/i18n/pt.ts +198 -0
  11. package/src/category/i18n/ru.ts +198 -0
  12. package/src/category/i18n/sv.ts +198 -0
  13. package/src/category/i18n/tr.ts +198 -0
  14. package/src/category/i18n/zh.ts +198 -0
  15. package/src/category/index.ts +31 -3
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/schemas_fulfillment.test.ts +23 -0
  18. package/src/tests/title_quality.test.ts +55 -0
  19. package/src/tool/chromaticLens/i18n/de.ts +246 -0
  20. package/src/tool/chromaticLens/i18n/en.ts +1 -1
  21. package/src/tool/chromaticLens/i18n/es.ts +1 -1
  22. package/src/tool/chromaticLens/i18n/fr.ts +1 -1
  23. package/src/tool/chromaticLens/i18n/id.ts +246 -0
  24. package/src/tool/chromaticLens/i18n/it.ts +246 -0
  25. package/src/tool/chromaticLens/i18n/ja.ts +246 -0
  26. package/src/tool/chromaticLens/i18n/ko.ts +246 -0
  27. package/src/tool/chromaticLens/i18n/nl.ts +246 -0
  28. package/src/tool/chromaticLens/i18n/pl.ts +246 -0
  29. package/src/tool/chromaticLens/i18n/pt.ts +246 -0
  30. package/src/tool/chromaticLens/i18n/ru.ts +246 -0
  31. package/src/tool/chromaticLens/i18n/sv.ts +246 -0
  32. package/src/tool/chromaticLens/i18n/tr.ts +246 -0
  33. package/src/tool/chromaticLens/i18n/zh.ts +246 -0
  34. package/src/tool/chromaticLens/index.ts +15 -7
  35. package/src/tool/collageMaker/i18n/de.ts +233 -0
  36. package/src/tool/collageMaker/i18n/en.ts +1 -1
  37. package/src/tool/collageMaker/i18n/es.ts +1 -1
  38. package/src/tool/collageMaker/i18n/fr.ts +1 -1
  39. package/src/tool/collageMaker/i18n/id.ts +233 -0
  40. package/src/tool/collageMaker/i18n/it.ts +233 -0
  41. package/src/tool/collageMaker/i18n/ja.ts +233 -0
  42. package/src/tool/collageMaker/i18n/ko.ts +233 -0
  43. package/src/tool/collageMaker/i18n/nl.ts +233 -0
  44. package/src/tool/collageMaker/i18n/pl.ts +233 -0
  45. package/src/tool/collageMaker/i18n/pt.ts +233 -0
  46. package/src/tool/collageMaker/i18n/ru.ts +233 -0
  47. package/src/tool/collageMaker/i18n/sv.ts +233 -0
  48. package/src/tool/collageMaker/i18n/tr.ts +233 -0
  49. package/src/tool/collageMaker/i18n/zh.ts +233 -0
  50. package/src/tool/collageMaker/index.ts +15 -6
  51. package/src/tool/exifCleaner/i18n/de.ts +277 -0
  52. package/src/tool/exifCleaner/i18n/en.ts +2 -2
  53. package/src/tool/exifCleaner/i18n/es.ts +2 -2
  54. package/src/tool/exifCleaner/i18n/fr.ts +4 -4
  55. package/src/tool/exifCleaner/i18n/id.ts +277 -0
  56. package/src/tool/exifCleaner/i18n/it.ts +277 -0
  57. package/src/tool/exifCleaner/i18n/ja.ts +277 -0
  58. package/src/tool/exifCleaner/i18n/ko.ts +277 -0
  59. package/src/tool/exifCleaner/i18n/nl.ts +277 -0
  60. package/src/tool/exifCleaner/i18n/pl.ts +277 -0
  61. package/src/tool/exifCleaner/i18n/pt.ts +277 -0
  62. package/src/tool/exifCleaner/i18n/ru.ts +277 -0
  63. package/src/tool/exifCleaner/i18n/sv.ts +277 -0
  64. package/src/tool/exifCleaner/i18n/tr.ts +277 -0
  65. package/src/tool/exifCleaner/i18n/zh.ts +277 -0
  66. package/src/tool/exifCleaner/index.ts +16 -8
  67. package/src/tool/imageCompressor/i18n/de.ts +242 -0
  68. package/src/tool/imageCompressor/i18n/en.ts +2 -2
  69. package/src/tool/imageCompressor/i18n/es.ts +2 -2
  70. package/src/tool/imageCompressor/i18n/id.ts +242 -0
  71. package/src/tool/imageCompressor/i18n/it.ts +242 -0
  72. package/src/tool/imageCompressor/i18n/ja.ts +242 -0
  73. package/src/tool/imageCompressor/i18n/ko.ts +242 -0
  74. package/src/tool/imageCompressor/i18n/nl.ts +242 -0
  75. package/src/tool/imageCompressor/i18n/pl.ts +242 -0
  76. package/src/tool/imageCompressor/i18n/pt.ts +242 -0
  77. package/src/tool/imageCompressor/i18n/ru.ts +242 -0
  78. package/src/tool/imageCompressor/i18n/sv.ts +242 -0
  79. package/src/tool/imageCompressor/i18n/tr.ts +242 -0
  80. package/src/tool/imageCompressor/i18n/zh.ts +244 -0
  81. package/src/tool/imageCompressor/index.ts +15 -7
  82. package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
  83. package/src/tool/printQualityCalculator/i18n/en.ts +2 -2
  84. package/src/tool/printQualityCalculator/i18n/es.ts +3 -3
  85. package/src/tool/printQualityCalculator/i18n/fr.ts +3 -3
  86. package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
  87. package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
  88. package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
  89. package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
  90. package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
  91. package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
  92. package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
  93. package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
  94. package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
  95. package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
  96. package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
  97. package/src/tool/printQualityCalculator/index.ts +15 -7
  98. package/src/tool/privacyBlur/i18n/de.ts +238 -0
  99. package/src/tool/privacyBlur/i18n/en.ts +1 -1
  100. package/src/tool/privacyBlur/i18n/es.ts +1 -1
  101. package/src/tool/privacyBlur/i18n/fr.ts +1 -1
  102. package/src/tool/privacyBlur/i18n/id.ts +238 -0
  103. package/src/tool/privacyBlur/i18n/it.ts +238 -0
  104. package/src/tool/privacyBlur/i18n/ja.ts +238 -0
  105. package/src/tool/privacyBlur/i18n/ko.ts +238 -0
  106. package/src/tool/privacyBlur/i18n/nl.ts +238 -0
  107. package/src/tool/privacyBlur/i18n/pl.ts +238 -0
  108. package/src/tool/privacyBlur/i18n/pt.ts +238 -0
  109. package/src/tool/privacyBlur/i18n/ru.ts +238 -0
  110. package/src/tool/privacyBlur/i18n/sv.ts +238 -0
  111. package/src/tool/privacyBlur/i18n/tr.ts +238 -0
  112. package/src/tool/privacyBlur/i18n/zh.ts +238 -0
  113. package/src/tool/privacyBlur/index.ts +15 -7
  114. package/src/tool/subtitleSync/i18n/de.ts +241 -0
  115. package/src/tool/subtitleSync/i18n/en.ts +1 -1
  116. package/src/tool/subtitleSync/i18n/es.ts +1 -1
  117. package/src/tool/subtitleSync/i18n/fr.ts +8 -8
  118. package/src/tool/subtitleSync/i18n/id.ts +241 -0
  119. package/src/tool/subtitleSync/i18n/it.ts +241 -0
  120. package/src/tool/subtitleSync/i18n/ja.ts +241 -0
  121. package/src/tool/subtitleSync/i18n/ko.ts +241 -0
  122. package/src/tool/subtitleSync/i18n/nl.ts +241 -0
  123. package/src/tool/subtitleSync/i18n/pl.ts +241 -0
  124. package/src/tool/subtitleSync/i18n/pt.ts +241 -0
  125. package/src/tool/subtitleSync/i18n/ru.ts +241 -0
  126. package/src/tool/subtitleSync/i18n/sv.ts +241 -0
  127. package/src/tool/subtitleSync/i18n/tr.ts +241 -0
  128. package/src/tool/subtitleSync/i18n/zh.ts +241 -0
  129. package/src/tool/subtitleSync/index.ts +15 -7
  130. package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
  131. package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
  132. package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
  133. package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
  134. package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
  135. package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
  136. package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
  137. package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
  138. package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
  139. package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
  140. package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
  141. package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
  142. package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
  143. package/src/tool/timelapseCalculator/index.ts +16 -8
  144. package/src/tool/tvDistance/i18n/de.ts +223 -0
  145. package/src/tool/tvDistance/i18n/en.ts +1 -1
  146. package/src/tool/tvDistance/i18n/es.ts +1 -1
  147. package/src/tool/tvDistance/i18n/fr.ts +1 -1
  148. package/src/tool/tvDistance/i18n/id.ts +223 -0
  149. package/src/tool/tvDistance/i18n/it.ts +223 -0
  150. package/src/tool/tvDistance/i18n/ja.ts +223 -0
  151. package/src/tool/tvDistance/i18n/ko.ts +223 -0
  152. package/src/tool/tvDistance/i18n/nl.ts +223 -0
  153. package/src/tool/tvDistance/i18n/pl.ts +223 -0
  154. package/src/tool/tvDistance/i18n/pt.ts +223 -0
  155. package/src/tool/tvDistance/i18n/ru.ts +223 -0
  156. package/src/tool/tvDistance/i18n/sv.ts +223 -0
  157. package/src/tool/tvDistance/i18n/tr.ts +223 -0
  158. package/src/tool/tvDistance/i18n/zh.ts +223 -0
  159. package/src/tool/tvDistance/index.ts +15 -7
  160. package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
  161. package/src/tool/videoFrameExtractor/i18n/en.ts +1 -1
  162. package/src/tool/videoFrameExtractor/i18n/es.ts +1 -1
  163. package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -1
  164. package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
  165. package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
  166. package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
  167. package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
  168. package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
  169. package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
  170. package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
  171. package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
  172. package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
  173. package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
  174. package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
  175. package/src/tool/videoFrameExtractor/index.ts +16 -8
@@ -0,0 +1,169 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { TimelapseUI, TimelapseLocaleContent } from '../index';
3
+
4
+ const slug = 'calcolatore-timelapse-hyperlapse-intervalli-perfetti';
5
+ const title = 'Calcolatore Timelapse e Hyperlapse: Intervalli Perfetti';
6
+ const description = 'Calcola l\'intervallo esatto tra le foto, la durata totale e lo spazio di archiviazione per i tuoi timelapse. Strumento essenziale per i fotografi.';
7
+
8
+ const ui: TimelapseUI = {
9
+ title: "Calcolatore Timelapse",
10
+ paramsTitle: "Parametri",
11
+ eventDuration: "Quanto dura l'evento reale?",
12
+ hours: "Ore",
13
+ minutes: "Minuti",
14
+ videoDuration: "Quale video finale desideri?",
15
+ seconds: "Durata (sec)",
16
+ fps: "FPS",
17
+ resultsTitle: "Risultati",
18
+ intervalLabel: "Imposta l'intervallometro su:",
19
+ secondsUnit: "secondi",
20
+ totalPhotos: "Foto Totali",
21
+ speed: "Velocitร ",
22
+ shutterSpeed: "Tempo di Otturazione",
23
+ storage: "Dimensione (RAW)",
24
+ rule180Info: "La regola dei 180ยฐ suggerisce un tempo di otturazione pari alla metร  dell'intervallo per un motion blur fluido.",
25
+ };
26
+
27
+ const faq: TimelapseLocaleContent['faq'] = [
28
+ {
29
+ question: "Come scelgo l'intervallo corretto per il mio timelapse?",
30
+ answer: "Dipende dalla velocitร  del movimento che stai catturando. Per nuvole veloci, usa 2-3 secondi. Per il movimento del sole o delle stelle, 15-30 secondi. Per la crescita di piante o cantieri edili, 5-15 minuti.",
31
+ },
32
+ {
33
+ question: "Quante foto servono per un video di un minuto?",
34
+ answer: "Un video standard ha 24 o 30 fotogrammi al secondo (fps). Per un minuto di video a 24fps, servono esattamente 1440 fotografie (60 secondi * 24 foto/secondo).",
35
+ },
36
+ {
37
+ question: "Cos'รจ il 'Flicker' e come posso evitarlo?",
38
+ answer: "รˆ un fastidioso sfarfallio causato da piccole variazioni di esposizione tra le foto. Per evitarlo, usa sempre la modalitร  manuale (M), il bilanciamento del bianco fisso e preferisci obiettivi con ghiera del diaframma manuale.",
39
+ },
40
+ {
41
+ question: "Perchรฉ il tempo di otturazione รจ importante?",
42
+ answer: "Perchรฉ il movimento appaia fluido (regola dei 180ยฐ), il tempo di otturazione dovrebbe essere circa la metร  dell'intervallo. Ad esempio, se l'intervallo รจ di 2 secondi, prova a scattare a 1 secondo.",
43
+ },
44
+ ];
45
+
46
+ const howTo: TimelapseLocaleContent['howTo'] = [
47
+ {
48
+ name: "Definisci la durata del video finale",
49
+ text: "Indica quanti secondi o minuti vuoi che duri il video risultante (es. 10 secondi per Instagram).",
50
+ },
51
+ {
52
+ name: "Seleziona gli FPS di uscita",
53
+ text: "Scegli la fluiditร  del video: 24 (cinema), 30 (web) o 60 (slow motion fluido).",
54
+ },
55
+ {
56
+ name: "Regola l'intervallo di scatto",
57
+ text: "Configura ogni quanti secondi la tua fotocamera scatterร  in base alla velocitร  della scena.",
58
+ },
59
+ {
60
+ name: "Verifica lo spazio di archiviazione",
61
+ text: "Il calcolatore ti dirร  quanti Gigabyte occuperร  la sessione. Assicurati che la tua scheda SD abbia spazio sufficiente.",
62
+ },
63
+ ];
64
+
65
+ const bibliography: TimelapseLocaleContent['bibliography'] = [
66
+ {
67
+ name: "Timescapes Forum - Digital Timelapse Acquisition & Processing",
68
+ url: "https://timescapes.org/phpBB3/viewforum.php?f=4",
69
+ },
70
+ {
71
+ name: "Magic Lantern - Auto ETTR & Bulb Ramping Algorithms",
72
+ url: "https://wiki.magiclantern.fm/ettr",
73
+ },
74
+ {
75
+ name: "LRTimelapse - Visual Deflicker & Holy Grail Workflow",
76
+ url: "https://lrtimelapse.com/tutorial/advanced/",
77
+ },
78
+ {
79
+ name: "PhotoPills - Advanced Timelapse Calculator & NPF Rule",
80
+ url: "https://www.photopills.com/calculators/timelapse",
81
+ },
82
+ ];
83
+
84
+ const seo: TimelapseLocaleContent['seo'] = [
85
+ { type: 'title', text: 'Guida Definitiva agli Intervalli Timelapse e Hyperlapse', level: 2 },
86
+ { type: 'paragraph', html: 'La differenza tra un video amatoriale ad alta velocitร  e un <strong>timelapse cinematografico</strong> risiede matematicamente in un unico fattore: <strong>l\'intervallo</strong>. Questo calcolatore elimina le incertezze, permettendoti di pianificare con precisione i tuoi scatti.' },
87
+
88
+ { type: 'title', text: 'Tabella Intervalli Raccomandati (Cheat Sheet)', level: 3 },
89
+ { type: 'paragraph', html: 'Usa questa tabella di riferimento rapido per impostare l\'intervallometro in base al soggetto.' },
90
+ { type: 'table', headers: ['Soggetto / Scena', 'Intervallo Suggerito', 'Durata Evento (Minima)'], rows: [
91
+ ['Nuvole Veloci / Tempeste', '1 - 2 secondi', '20 - 30 min'],
92
+ ['Traffico Urbano / Persone (Blur)', '0.5 - 2 secondi', '15 - 20 min'],
93
+ ['Tramonto / Alba (Holy Grail)', '5 - 10 secondi', '1.5 - 2.5 ore'],
94
+ ['Nuvole Lente / Ombre', '10 - 15 secondi', '2 - 3 ore'],
95
+ ['Stelle / Via Lattea (Astro)', '15 - 30 secondi*', '3 - 5 ore'],
96
+ ['Costruzioni / Crescita Piante', '5 - 15 minuti', 'Giorni / Settimane']
97
+ ]},
98
+ { type: 'tip', title: 'Nota per Astro', html: 'L\'intervallo รจ solitamente dettato dal tempo di esposizione (regola 500) + 1 o 2 secondi di buffer.' },
99
+
100
+ { type: 'title', text: 'La Regola dei 180ยฐ (Motion Blur)', level: 3 },
101
+ { type: 'paragraph', html: 'Un errore comune nel timelapse รจ ottenere un video "scattoso". Per ottenere quel look cinematografico fluido, hai bisogno di <strong>motion blur</strong>.' },
102
+ { type: 'card', title: 'La Regola', icon: 'mdi:information', html: 'Il tuo Tempo di Otturazione dovrebbe essere la metร  del tuo intervallo. <br /><br /> <em>Esempio:</em> Se scatti ogni <strong>4 secondi</strong>, la tua esposizione dovrebbe essere di <strong>2 secondi</strong>.' },
103
+
104
+ { type: 'title', text: 'Flicker e Diaframma Manuale', level: 3 },
105
+ { type: 'paragraph', html: 'Il "Flicker" รจ il fastidioso sfarfallio causato dalle micro-variazioni dell\'apertura del diaframma tra gli scatti.' },
106
+ { type: 'list', items: [
107
+ '<strong>Lens Twist:</strong> Sblocca leggermente l\'obiettivo sulle DSLR per interrompere il collegamento elettronico e fissare il diaframma meccanicamente.',
108
+ '<strong>Tutto Manuale:</strong> ISO, Bilanciamento del Bianco e Messa a Fuoco devono essere fissi.',
109
+ '<strong>Scatta in RAW:</strong> Essenziale per correggere esposizione e colore in post-produzione.'
110
+ ]},
111
+
112
+ { type: 'diagnostic', variant: 'success', title: 'Tecnica Avanzata: Il "Sacro Graal"', icon: 'mdi:crown', badge: 'Tecnica Pro', html: 'Il "Sacro Graal" si riferisce alla transizione fluida dal giorno alla notte (o viceversa). รˆ la sfida tecnica piรน difficile.' },
113
+
114
+ { type: 'stats', columns: 3, items: [
115
+ { label: 'Bulb Ramping', value: 'Esposizione Graduale', icon: 'mdi:brightness-6' },
116
+ { label: 'Post-Pro', value: 'LRTimelapse', icon: 'mdi:television-guide' },
117
+ { label: 'Strategia', value: 'Intervallo Notte', icon: 'mdi:weather-night' }
118
+ ]},
119
+
120
+ { type: 'title', text: 'Conclusione: Lo Zen della Meccanica Semplice', level: 3 },
121
+ { type: 'paragraph', html: 'Padroneggiare il tuo timelapse inizia con la comprensione della matematica del tuo intervallometro.' }
122
+ ];
123
+
124
+ const faqSchema: WithContext<FAQPage> = {
125
+ '@context': 'https://schema.org',
126
+ '@type': 'FAQPage',
127
+ mainEntity: faq.map((item) => ({
128
+ '@type': 'Question',
129
+ name: item.question,
130
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
131
+ })),
132
+ };
133
+
134
+ const howToSchema: WithContext<HowTo> = {
135
+ '@context': 'https://schema.org',
136
+ '@type': 'HowTo',
137
+ name: title,
138
+ description,
139
+ step: howTo.map((step) => ({
140
+ '@type': 'HowToStep',
141
+ name: step.name,
142
+ text: step.text,
143
+ })),
144
+ };
145
+
146
+ const appSchema: WithContext<SoftwareApplication> = {
147
+ '@context': 'https://schema.org',
148
+ '@type': 'SoftwareApplication',
149
+ name: title,
150
+ description,
151
+ applicationCategory: 'UtilitiesApplication',
152
+ operatingSystem: 'Web',
153
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
154
+ inLanguage: 'it',
155
+ };
156
+
157
+ export const content: TimelapseLocaleContent = {
158
+ slug,
159
+ title,
160
+ description,
161
+ ui,
162
+ seo,
163
+ faq,
164
+ faqTitle: 'Domande Frequenti sulla Produzione di Timelapse',
165
+ bibliography,
166
+ bibliographyTitle: 'Teoria e Risorse per il Timelapse',
167
+ howTo,
168
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
169
+ };
@@ -0,0 +1,169 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { TimelapseUI, TimelapseLocaleContent } from '../index';
3
+
4
+ const slug = 'timelapse-hyperlapse-calculator-intervals-japan';
5
+ const title = 'ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นใƒปใƒใ‚คใƒ‘ใƒผใƒฉใƒ—ใ‚น่จˆ็ฎ—ๆฉŸ๏ผšๆœ€้ฉใชใ‚คใƒณใ‚ฟใƒผใƒใƒซ่จญๅฎš';
6
+ const description = 'ๅ†™็œŸๆ’ฎๅฝฑใฎ้–“้š”ใ€ๅ‹•็”ปใฎ้•ทใ•ใ€ๅฟ…่ฆใชใ‚นใƒˆใƒฌใƒผใ‚ธๅฎน้‡ใ‚’ๆญฃ็ขบใซ่จˆ็ฎ—ใ€‚ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นๆ’ฎๅฝฑใซๆฌ ใ‹ใ›ใชใ„ใƒ•ใ‚ฉใƒˆใ‚ฐใƒฉใƒ•ใ‚กใƒผ็”จใƒ„ใƒผใƒซใ€‚';
7
+
8
+ const ui: TimelapseUI = {
9
+ title: "ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚น่จˆ็ฎ—ๆฉŸ",
10
+ paramsTitle: "ใƒ‘ใƒฉใƒกใƒผใ‚ฟใƒผ่จญๅฎš",
11
+ eventDuration: "ๅฎŸ้š›ใฎใ‚คใƒ™ใƒณใƒˆใฎๆ™‚้–“ใฏ๏ผŸ",
12
+ hours: "ๆ™‚้–“",
13
+ minutes: "ๅˆ†",
14
+ videoDuration: "ๅฎŒๆˆใ•ใ›ใ‚‹ๅ‹•็”ปใฎ้•ทใ•ใฏ๏ผŸ",
15
+ seconds: "ๅ‹•็”ปใฎ็ง’ๆ•ฐ",
16
+ fps: "FPS๏ผˆใƒ•ใƒฌใƒผใƒ ใƒฌใƒผใƒˆ๏ผ‰",
17
+ resultsTitle: "่จˆ็ฎ—็ตๆžœ",
18
+ intervalLabel: "ใ‚คใƒณใ‚ฟใƒผใƒใƒญใƒกใƒผใ‚ฟใƒผใฎ่จญๅฎšๅ€ค๏ผš",
19
+ secondsUnit: "็ง’",
20
+ totalPhotos: "ๅˆ่จˆๅ†™็œŸๆžšๆ•ฐ",
21
+ speed: "ๅ†็”Ÿ้€Ÿๅบฆ",
22
+ shutterSpeed: "ใ‚ทใƒฃใƒƒใ‚ฟใƒผใ‚นใƒ”ใƒผใƒ‰",
23
+ storage: "ๅฎน้‡็›ฎๅฎ‰๏ผˆRAW๏ผ‰",
24
+ rule180Info: "180ๅบฆใƒซใƒผใƒซใงใฏใ€ๆป‘ใ‚‰ใ‹ใชใƒขใƒผใ‚ทใƒงใƒณใƒ–ใƒฉใƒผใ‚’ๅพ—ใ‚‹ใŸใ‚ใซใ€ๆ’ฎๅฝฑ้–“้š”ใฎๅŠๅˆ†ใฎใ‚ทใƒฃใƒƒใ‚ฟใƒผใ‚นใƒ”ใƒผใƒ‰ใŒๆŽจๅฅจใ•ใ‚Œใพใ™ใ€‚",
25
+ };
26
+
27
+ const faq: TimelapseLocaleContent['faq'] = [
28
+ {
29
+ question: "ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นๆ’ฎๅฝฑใงๆญฃใ—ใ„ใ‚คใƒณใ‚ฟใƒผใƒใƒซ๏ผˆๆ’ฎๅฝฑ้–“้š”๏ผ‰ใ‚’้ธใถใซใฏ๏ผŸ",
30
+ answer: "่ขซๅ†™ไฝ“ใฎๅ‹•ใใฎ้€Ÿใ•ใซใ‚ˆใ‚Šใพใ™ใ€‚ๆตใ‚Œใ‚‹้›ฒใชใ‚‰2ใ€œ3็ง’ใ€ๅคช้™ฝใ‚„ๆ˜Ÿใฎๅ‹•ใใชใ‚‰15ใ€œ30็ง’ใ€ๆค็‰ฉใฎๆˆ้•ทใ‚„ๅปบ็‰ฉใฎๅปบ่จญ็พๅ ดใชใ‚‰5ใ€œ15ๅˆ†็จ‹ๅบฆใŒ็›ฎๅฎ‰ใงใ™ใ€‚",
31
+ },
32
+ {
33
+ question: "1ๅˆ†้–“ใฎๅ‹•็”ปใ‚’ไฝœใ‚‹ใซใฏไฝ•ๆžšใฎๅ†™็œŸใŒๅฟ…่ฆใงใ™ใ‹๏ผŸ",
34
+ answer: "ๆจ™ๆบ–็š„ใชๅ‹•็”ปใฏ1็ง’้–“ใซ24ๆžšใพใŸใฏ30ๆžšใฎใƒ•ใƒฌใƒผใƒ ๏ผˆfps๏ผ‰ใงๆง‹ๆˆใ•ใ‚Œใพใ™ใ€‚24fpsใง1ๅˆ†้–“ใฎๅ‹•็”ปใ‚’ไฝœใ‚‹ใซใฏใ€ๆญฃ็ขบใซ1440ๆžš๏ผˆ60็ง’ ร— 24ๆžš/็ง’๏ผ‰ใฎๅ†™็œŸใŒๅฟ…่ฆใงใ™ใ€‚",
35
+ },
36
+ {
37
+ question: "ใ€Œใƒ•ใƒชใƒƒใ‚ซใƒผใ€ใจใฏไฝ•ใงใ™ใ‹๏ผŸใฉใ†ใ™ใ‚Œใฐ้˜ฒใ’ใพใ™ใ‹๏ผŸ",
38
+ answer: "ๅ†™็œŸใ”ใจใฎใ‚ใšใ‹ใช้œฒๅ‡บใฎ้•ใ„ใซใ‚ˆใฃใฆ็”Ÿใ˜ใ‚‹ใ€ไธๅฟซใช็”ป้ขใฎใƒใƒฉใคใใฎใ“ใจใงใ™ใ€‚้˜ฒใใซใฏใ€ๅธธใซใƒžใƒ‹ใƒฅใ‚ขใƒซใƒขใƒผใƒ‰๏ผˆM๏ผ‰ใ€ใƒ›ใƒฏใ‚คใƒˆใƒใƒฉใƒณใ‚นใ‚’ๅ›บๅฎšใ—ใ€ใƒžใƒ‹ใƒฅใ‚ขใƒซ็ตžใ‚Šใƒชใƒณใ‚ฐใฎใ‚ใ‚‹ใƒฌใƒณใ‚บใ‚’ไฝฟ็”จใ™ใ‚‹ใ“ใจใ‚’ๆŽจๅฅจใ—ใพใ™ใ€‚",
39
+ },
40
+ {
41
+ question: "ใ‚ทใƒฃใƒƒใ‚ฟใƒผใ‚นใƒ”ใƒผใƒ‰ใŒ้‡่ฆใชใฎใฏใชใœใงใ™ใ‹๏ผŸ",
42
+ answer: "ๅ‹•ใใ‚’ๆป‘ใ‚‰ใ‹ใซ่ฆ‹ใ›ใ‚‹ใŸใ‚๏ผˆ180ๅบฆใƒซใƒผใƒซ๏ผ‰ใซใฏใ€ใ‚ทใƒฃใƒƒใ‚ฟใƒผใ‚นใƒ”ใƒผใƒ‰ใ‚’ๆ’ฎๅฝฑ้–“้š”ใฎ็ด„ๅŠๅˆ†ใซใ™ใ‚‹ใฎใŒ็†ๆƒณ็š„ใงใ™ใ€‚ไพ‹ใˆใฐใ€้–“้š”ใŒ2็ง’ใชใ‚‰ใ€ใ‚ทใƒฃใƒƒใ‚ฟใƒผใ‚นใƒ”ใƒผใƒ‰ใ‚’1็ง’ใซใ—ใฆ่‡ช็„ถใชใƒขใƒผใ‚ทใƒงใƒณใƒ–ใƒฉใƒผใ‚’ไฝœใ‚Šใพใ™ใ€‚",
43
+ },
44
+ ];
45
+
46
+ const howTo: TimelapseLocaleContent['howTo'] = [
47
+ {
48
+ name: "ๅ‹•็”ปใฎ้•ทใ•ใ‚’ๆฑบใ‚ใ‚‹",
49
+ text: "ๆœ€็ต‚็š„ใซไฝ•็ง’ใ€ใ‚ใ‚‹ใ„ใฏไฝ•ๅˆ†ใฎๅ‹•็”ปใซใ—ใŸใ„ใ‹ใ‚’ๆŒ‡ๅฎšใ—ใพใ™๏ผˆไพ‹๏ผšInstagram็”จใชใ‚‰10็ง’ใชใฉ๏ผ‰ใ€‚",
50
+ },
51
+ {
52
+ name: "ๅ‡บๅŠ›FPSใ‚’้ธๆŠž",
53
+ text: "ๅ‹•็”ปใฎๆป‘ใ‚‰ใ‹ใ•ใ‚’้ธใณใพใ™๏ผš24๏ผˆๆ˜ ็”ป้ขจ๏ผ‰ใ€30๏ผˆๆจ™ๆบ–็š„๏ผ‰ใ€60๏ผˆ้žๅธธใซๆป‘ใ‚‰ใ‹ใชใ‚นใƒญใƒผใƒขใƒผใ‚ทใƒงใƒณ๏ผ‰ใ€‚",
54
+ },
55
+ {
56
+ name: "ๆ’ฎๅฝฑ้–“้š”ใ‚’่ชฟๆ•ด",
57
+ text: "่ขซๅ†™ไฝ“ใฎๅ‹•ใใฎ้€Ÿใ•ใซๅˆใ‚ใ›ใฆใ€ใ‚ซใƒกใƒฉใ‚’ไฝ•็ง’ใŠใใซไฝœๅ‹•ใ•ใ›ใ‚‹ใ‹่จญๅฎšใ—ใพใ™ใ€‚",
58
+ },
59
+ {
60
+ name: "ใ‚นใƒˆใƒฌใƒผใ‚ธๅฎน้‡ใ‚’็ขบ่ช",
61
+ text: "ๆ’ฎๅฝฑใซๅฟ…่ฆใชๆฆ‚็ฎ—ๅฎน้‡ใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚้–‹ๅง‹ๅ‰ใซSDใ‚ซใƒผใƒ‰ใซๅๅˆ†ใช็ฉบใใŒใ‚ใ‚‹ใ‹็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚",
62
+ },
63
+ ];
64
+
65
+ const bibliography: TimelapseLocaleContent['bibliography'] = [
66
+ {
67
+ name: "Timescapes Forum - Digital Timelapse Acquisition & Processing",
68
+ url: "https://timescapes.org/phpBB3/viewforum.php?f=4",
69
+ },
70
+ {
71
+ name: "Magic Lantern - Auto ETTR & Bulb Ramping Algorithms",
72
+ url: "https://wiki.magiclantern.fm/ettr",
73
+ },
74
+ {
75
+ name: "LRTimelapse - Visual Deflicker & Holy Grail Workflow",
76
+ url: "https://lrtimelapse.com/tutorial/advanced/",
77
+ },
78
+ {
79
+ name: "PhotoPills - Advanced Timelapse Calculator & NPF Rule",
80
+ url: "https://www.photopills.com/calculators/timelapse",
81
+ },
82
+ ];
83
+
84
+ const seo: TimelapseLocaleContent['seo'] = [
85
+ { type: 'title', text: 'ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นใƒปใƒใ‚คใƒ‘ใƒผใƒฉใƒ—ใ‚นๆ’ฎๅฝฑใฎๅฎŒๅ…จใ‚ฌใ‚คใƒ‰', level: 2 },
86
+ { type: 'paragraph', html: '็ด ไบบใฎๆ—ฉ้€ใ‚Šๅ‹•็”ปใจ<strong>ๆ˜ ็”ปใฎใ‚ˆใ†ใชใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚น</strong>ใฎๆ•ฐๅญฆ็š„ใช้•ใ„ใฏใ€ใŸใฃใŸไธ€ใคใฎ่ฆ็ด ใ€ใคใพใ‚Š<strong>ใ€Œๆ’ฎๅฝฑ้–“้š”๏ผˆใ‚คใƒณใ‚ฟใƒผใƒใƒซ๏ผ‰ใ€</strong>ใซใ‚ใ‚Šใพใ™ใ€‚ใ“ใฎ่จˆ็ฎ—ๆฉŸใ‚’ไฝฟใˆใฐใ€ๆ—ฅใฎๅ‡บใ‚„้ƒฝๅธ‚ใฎไบค้€šใ€ๅคฉใฎๅทใชใฉใ‚’ๅฎŒ็’งใชๆป‘ใ‚‰ใ‹ใ•ใงๆ‰ใˆใ‚‹ใŸใ‚ใฎ่จˆ็”ป้ขใ‚’ใ‚ตใƒใƒผใƒˆใ—ใพใ™ใ€‚' },
87
+
88
+ { type: 'title', text: 'ๆŽจๅฅจๆ’ฎๅฝฑ้–“้š”ใƒ†ใƒผใƒ–ใƒซ๏ผˆใƒใƒผใƒˆใ‚ทใƒผใƒˆ๏ผ‰', level: 3 },
89
+ { type: 'paragraph', html: '่ขซๅ†™ไฝ“ใซๅˆใ‚ใ›ใฆใ‚คใƒณใ‚ฟใƒผใƒใƒญใƒกใƒผใ‚ฟใƒผใ‚’่จญๅฎšใ™ใ‚‹ใŸใ‚ใฎใ‚ฏใ‚คใƒƒใ‚ฏใƒชใƒ•ใ‚กใƒฌใƒณใ‚นใงใ™ใ€‚ๅ‹•ใใŒ่ช่ญ˜ใงใใ€ใ‹ใคๆป‘ใ‚‰ใ‹ใซ็น‹ใŒใ‚‹่จญๅฎšใ‚’็›ฎๆŒ‡ใ—ใพใ—ใ‚‡ใ†ใ€‚' },
90
+ { type: 'table', headers: ['่ขซๅ†™ไฝ“ / ใ‚ทใƒผใƒณ', 'ๆŽจๅฅจ้–“้š”', 'ใ‚คใƒ™ใƒณใƒˆใฎๆœ€ไฝŽๆ’ฎๅฝฑๆ™‚้–“'], rows: [
91
+ ['้€Ÿใ„้›ฒ / ๅต', '1 ใ€œ 2 ็ง’', '20 ใ€œ 30 ๅˆ†'],
92
+ ['่ก—ใฎไบค้€š / ไบบๆททใฟ๏ผˆใƒ–ใƒฌๆผ”ๅ‡บ๏ผ‰', '0.5 ใ€œ 2 ็ง’', '15 ใ€œ 20 ๅˆ†'],
93
+ ['ๅค•ๆ—ฅ / ๆœๆ—ฅ๏ผˆใƒ›ใƒผใƒชใƒผใ‚ฐใƒฌใ‚คใƒซ๏ผ‰', '5 ใ€œ 10 ็ง’', '1.5 ใ€œ 2.5 ๆ™‚้–“'],
94
+ ['้…ใ„้›ฒ / ๅฝฑใฎๅ‹•ใ', '10 ใ€œ 15 ็ง’', '2 ใ€œ 3 ๆ™‚้–“'],
95
+ ['ๆ˜Ÿ็ฉบ / ๅคฉใฎๅท๏ผˆใ‚ขใ‚นใƒˆใƒญ๏ผ‰', '15 ใ€œ 30 ็ง’*', '3 ใ€œ 5 ๆ™‚้–“'],
96
+ ['ๅปบ่จญ็พๅ ด / ๆค็‰ฉใฎๆˆ้•ท', '5 ใ€œ 15 ๅˆ†', 'ๆ•ฐๆ—ฅ ใ€œ ๆ•ฐ้€ฑ้–“']
97
+ ]},
98
+ { type: 'tip', title: 'ๆ˜Ÿ็ฉบๆ’ฎๅฝฑใฎๆณจๆ„็‚น', html: '้–“้š”ใฏ้€šๅธธใ€ๅ…‰ใ‚’ๆ‰ใˆใ‚‹ใŸใ‚ใฎ้œฒๅ‡บๆ™‚้–“๏ผˆ500ใƒซใƒผใƒซ็ญ‰๏ผ‰ใซใ€ใ‚ซใƒผใƒ‰ใธใฎๆ›ธใ่พผใฟใƒใƒƒใƒ•ใ‚กใจใ—ใฆ1ใ€œ2็ง’ใ‚’ๅŠ ใˆใŸๆ™‚้–“ใซใชใ‚Šใพใ™ใ€‚' },
99
+
100
+ { type: 'title', text: '180ๅบฆใƒซใƒผใƒซ๏ผˆใƒขใƒผใ‚ทใƒงใƒณใƒ–ใƒฉใƒผ๏ผ‰', level: 3 },
101
+ { type: 'paragraph', html: 'ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นใงใ‚ˆใใ‚ใ‚‹ๅคฑๆ•—ใฏใ€ๅ‹•็”ปใŒใ€Œใ‚ซใ‚ฏใ‚ซใ‚ฏใ€ใ—ใฆใ—ใพใ†ใ“ใจใงใ™ใ€‚ๆป‘ใ‚‰ใ‹ใชใ‚ทใƒใƒžใƒ†ใ‚ฃใƒƒใ‚ฏใชๅค–่ฆณใ‚’ๅพ—ใ‚‹ใซใฏใ€<strong>ใƒขใƒผใ‚ทใƒงใƒณใƒ–ใƒฉใƒผ</strong>ใŒๅฟ…่ฆใงใ™ใ€‚' },
102
+ { type: 'card', title: '้ป„้‡‘ใƒซใƒผใƒซ', icon: 'mdi:information', html: 'ใ‚ทใƒฃใƒƒใ‚ฟใƒผใ‚นใƒ”ใƒผใƒ‰ใ‚’ๆ’ฎๅฝฑ้–“้š”ใฎๅŠๅˆ†ใซใ—ใพใ™ใ€‚ <br /><br /> <em>ไพ‹๏ผš</em> <strong>4็ง’</strong>ใŠใใซๆ’ฎๅฝฑใ™ใ‚‹ๅ ดๅˆใ€้œฒๅ‡บใ‚’ <strong>2็ง’</strong> ใซ่จญๅฎšใ—ใพใ™ใ€‚ใ“ใ‚Œใซใ‚ˆใ‚Šๅ†™็œŸ้–“ใฎใ€Œๆ™‚้–“ใฎ้š™้–“ใ€ใŒๅŸ‹ใพใ‚Šใ€่ปŠใฎๅ…‰่ทกใ‚„ๆฐดใฎๆตใ‚ŒใŒๆŸ”ใ‚‰ใ‹ใใชใ‚Šใพใ™ใ€‚' },
103
+
104
+ { type: 'title', text: 'ใƒ•ใƒชใƒƒใ‚ซใƒผใจใƒžใƒ‹ใƒฅใ‚ขใƒซ็ตžใ‚Š', level: 3 },
105
+ { type: 'paragraph', html: 'ใ€Œใƒ•ใƒชใƒƒใ‚ซใƒผใ€ใจใฏใ€ๆ’ฎๅฝฑใ”ใจใซ็ตžใ‚Š็พฝๆ นใŒใ‚ใšใ‹ใซใšใ‚Œใ‚‹ใ“ใจใง็™บ็”Ÿใ™ใ‚‹ใƒใƒฉใคใใฎใ“ใจใงใ™ใ€‚' },
106
+ { type: 'list', items: [
107
+ '<strong>ใƒฌใƒณใ‚บใƒ„ใ‚คใ‚นใƒˆ:</strong> DSLR็ญ‰ใฎๅ ดๅˆใ€ใƒฌใƒณใ‚บใ‚’ใ‚ใšใ‹ใซๅ›žใ—ใฆ้›ปๅญๆŽฅ็‚นใ‚’ๅˆ‡ใ‚Šใ€็ตžใ‚Šใ‚’ๆฉŸๆขฐ็š„ใซๅ›บๅฎšใ™ใ‚‹ใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏใŒใ‚ใ‚Šใพใ™ใ€‚',
108
+ '<strong>ใ™ในใฆใƒžใƒ‹ใƒฅใ‚ขใƒซ่จญๅฎš:</strong> ISOใ€ใƒ›ใƒฏใ‚คใƒˆใƒใƒฉใƒณใ‚นใ€ใƒ•ใ‚ฉใƒผใ‚ซใ‚นใฏๅ›บๅฎšใ—ใฆใใ ใ•ใ„ใ€‚ใ‚ชใƒผใƒˆใƒขใƒผใƒ‰ใฏๅŽณ็ฆใงใ™ใ€‚',
109
+ '<strong>RAWใงๆ’ฎๅฝฑ:</strong> ็”ปๅƒใ‚’ๅฃŠใ•ใšใซๅพŒๅทฅ็จ‹ใง้œฒๅ‡บใ‚„่‰ฒใ‚’่ฃœๆญฃใ™ใ‚‹ใŸใ‚ใซๅฟ…้ ˆใงใ™ใ€‚'
110
+ ]},
111
+
112
+ { type: 'diagnostic', variant: 'success', title: '้ซ˜ๅบฆใชใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏ๏ผšใƒ›ใƒผใƒชใƒผใ‚ฐใƒฌใ‚คใƒซ', icon: 'mdi:crown', badge: 'ใƒ—ใƒญใฎๆŠ€', html: 'ใ€Œใƒ›ใƒผใƒชใƒผใ‚ฐใƒฌใ‚คใƒซ๏ผˆ่–ๆฏ๏ผ‰ใ€ใจใฏใ€ๆ˜ผใ‹ใ‚‰ๅคœ๏ผˆใพใŸใฏใใฎ้€†๏ผ‰ใธใฎๆป‘ใ‚‰ใ‹ใช็งปใ‚Šๅค‰ใ‚ใ‚Šใฎใ“ใจใงใ™ใ€‚ๅ…‰้‡ใŒๅЇ็š„ใซๅค‰ๅŒ–ใ™ใ‚‹ใŸใ‚ใ€ๆœ€ใ‚‚้›ฃใ—ใ„ๆŠ€่ก“็š„ๆŒ‘ๆˆฆใฎไธ€ใคใงใ™ใ€‚' },
113
+
114
+ { type: 'stats', columns: 3, items: [
115
+ { label: 'Bulb Ramping', value: 'ๆฎต้šŽ็š„้œฒๅ‡บ่ชฟๆ•ด', icon: 'mdi:brightness-6' },
116
+ { label: 'Post-Pro', value: 'LRTimelapseใ‚’ไฝฟ็”จ', icon: 'mdi:television-guide' },
117
+ { label: 'Strategy', value: 'ๅคœ้–“ใ‚คใƒณใ‚ฟใƒผใƒใƒซ', icon: 'mdi:weather-night' }
118
+ ]},
119
+
120
+ { type: 'title', text: '็ต่ซ–๏ผšใ‚ทใƒณใƒ—ใƒซใชไป•็ต„ใฟใซๅฎฟใ‚‹ใ€Œ็ฆ…ใ€', level: 3 },
121
+ { type: 'paragraph', html: 'ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นใ‚’ๆฅตใ‚ใ‚‹ใซใฏใ€ใ‚คใƒณใ‚ฟใƒผใƒใƒญใƒกใƒผใ‚ฟใƒผใฎ่ƒŒๅพŒใซใ‚ใ‚‹ๆ•ฐๅญฆใ‚’็†่งฃใ™ใ‚‹ใ“ใจใ‹ใ‚‰ๅง‹ใพใ‚Šใพใ™ใ€‚ไธ้ฉๅˆ‡ใช่จญๅฎšใงๆ’ฎๅฝฑใƒใƒฃใƒณใ‚นใ‚’้€ƒใ•ใชใ„ใ‚ˆใ†ใซใ—ใพใ—ใ‚‡ใ†ใ€‚' }
122
+ ];
123
+
124
+ const faqSchema: WithContext<FAQPage> = {
125
+ '@context': 'https://schema.org',
126
+ '@type': 'FAQPage',
127
+ mainEntity: faq.map((item) => ({
128
+ '@type': 'Question',
129
+ name: item.question,
130
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
131
+ })),
132
+ };
133
+
134
+ const howToSchema: WithContext<HowTo> = {
135
+ '@context': 'https://schema.org',
136
+ '@type': 'HowTo',
137
+ name: title,
138
+ description,
139
+ step: howTo.map((step) => ({
140
+ '@type': 'HowToStep',
141
+ name: step.name,
142
+ text: step.text,
143
+ })),
144
+ };
145
+
146
+ const appSchema: WithContext<SoftwareApplication> = {
147
+ '@context': 'https://schema.org',
148
+ '@type': 'SoftwareApplication',
149
+ name: title,
150
+ description,
151
+ applicationCategory: 'UtilitiesApplication',
152
+ operatingSystem: 'Web',
153
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
154
+ inLanguage: 'ja',
155
+ };
156
+
157
+ export const content: TimelapseLocaleContent = {
158
+ slug,
159
+ title,
160
+ description,
161
+ ui,
162
+ seo,
163
+ faq,
164
+ faqTitle: 'ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚น่ฃฝไฝœใซ้–ขใ™ใ‚‹ใ‚ˆใใ‚ใ‚‹่ณชๅ•',
165
+ bibliography,
166
+ bibliographyTitle: 'ใ‚ฟใ‚คใƒ ใƒฉใƒ—ใ‚นใฎ็†่ซ–ใจใƒชใ‚ฝใƒผใ‚น',
167
+ howTo,
168
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
169
+ };
@@ -0,0 +1,169 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { TimelapseUI, TimelapseLocaleContent } from '../index';
3
+
4
+ const slug = 'timelapse-hyperlapse-calculator-perfect-intervals-korea';
5
+ const title = 'ํƒ€์ž„๋žฉ์Šค ๋ฐ ํ•˜์ดํผ๋žฉ์Šค ๊ณ„์‚ฐ๊ธฐ: ์™„๋ฒฝํ•œ ์ดฌ์˜ ๊ฐ„๊ฒฉ ์„ค์ •';
6
+ const description = '์‚ฌ์ง„ ์ดฌ์˜ ๊ฐ„๊ฒฉ, ์ด ์†Œ์š” ์‹œ๊ฐ„, ๋ฐ์ดํ„ฐ ์ €์žฅ ์šฉ๋Ÿ‰์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•˜์„ธ์š”. ์‚ฌ์ง„์ž‘๊ฐ€๋ฅผ ์œ„ํ•œ ํƒ€์ž„๋žฉ์Šค ํ•„์ˆ˜ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.';
7
+
8
+ const ui: TimelapseUI = {
9
+ title: "ํƒ€์ž„๋žฉ์Šค ๊ณ„์‚ฐ๊ธฐ",
10
+ paramsTitle: "์„ค์ • ํŒŒ๋ผ๋ฏธํ„ฐ",
11
+ eventDuration: "์‹ค์ œ ์ด๋ฒคํŠธ์˜ ์ด ์ง€์† ์‹œ๊ฐ„์€?",
12
+ hours: "์‹œ๊ฐ„",
13
+ minutes: "๋ถ„",
14
+ videoDuration: "์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ ์˜์ƒ์˜ ๊ธธ์ด๋Š”?",
15
+ seconds: "์˜์ƒ ์‹œ๊ฐ„ (์ดˆ)",
16
+ fps: "FPS",
17
+ resultsTitle: "๊ณ„์‚ฐ ๊ฒฐ๊ณผ",
18
+ intervalLabel: "์ธํ„ฐ๋ฒŒ๋กœ๋ฏธํ„ฐ(์ดฌ์˜ ๊ฐ„๊ฒฉ) ์„ค์ •๊ฐ’:",
19
+ secondsUnit: "์ดˆ",
20
+ totalPhotos: "์ด ์‚ฌ์ง„ ๋งค์ˆ˜",
21
+ speed: "๋ฐฐ์†(์†๋„)",
22
+ shutterSpeed: "์…”ํ„ฐ ์Šคํ”ผ๋“œ",
23
+ storage: "์˜ˆ์ƒ ์šฉ๋Ÿ‰ (RAW)",
24
+ rule180Info: "180๋„ ๊ทœ์น™์— ๋”ฐ๋ฅด๋ฉด ๋ถ€๋“œ๋Ÿฌ์šด ๋ชจ์…˜ ๋ธ”๋Ÿฌ๋ฅผ ์œ„ํ•ด ์…”ํ„ฐ ์Šคํ”ผ๋“œ๋ฅผ ์ดฌ์˜ ๊ฐ„๊ฒฉ์˜ ์ ˆ๋ฐ˜์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.",
25
+ };
26
+
27
+ const faq: TimelapseLocaleContent['faq'] = [
28
+ {
29
+ question: "ํƒ€์ž„๋žฉ์Šค ์ดฌ์˜์„ ์œ„ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ„๊ฒฉ์€ ์–ด๋–ป๊ฒŒ ์„ ํƒํ•˜๋‚˜์š”?",
30
+ answer: "๋‹ด์œผ๋ ค๋Š” ํ”ผ์‚ฌ์ฒด์˜ ์›€์ง์ž„ ์†๋„์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ๋น ๋ฅด๊ฒŒ ์›€์ง์ด๋Š” ๊ตฌ๋ฆ„์€ 2~3์ดˆ, ํƒœ์–‘์ด๋‚˜ ๋ณ„์˜ ์›€์ง์ž„์€ 15~30์ดˆ, ์‹๋ฌผ์˜ ์„ฑ์žฅ์ด๋‚˜ ๊ฑด์ถ• ํ˜„์žฅ์€ 5~15๋ถ„ ์ •๋„๊ฐ€ ์ ๋‹นํ•ฉ๋‹ˆ๋‹ค.",
31
+ },
32
+ {
33
+ question: "1๋ถ„์งœ๋ฆฌ ์˜์ƒ์„ ๋งŒ๋“ค๋ ค๋ฉด ์‚ฌ์ง„์ด ๋ช‡ ์žฅ ํ•„์š”ํ•œ๊ฐ€์š”?",
34
+ answer: "ํ‘œ์ค€ ์˜์ƒ์€ ์ดˆ๋‹น 24 ๋˜๋Š” 30ํ”„๋ ˆ์ž„(fps)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 24fps๋กœ 1๋ถ„ ์˜์ƒ์„ ๋งŒ๋“ค๋ ค๋ฉด ์ •ํ™•ํžˆ 1440์žฅ์˜ ์‚ฌ์ง„(60์ดˆ * 24์žฅ/์ดˆ)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.",
35
+ },
36
+ {
37
+ question: "ํ”Œ๋ฆฌ์ปค(Flicker) ํ˜„์ƒ์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์–ด๋–ป๊ฒŒ ๋ฐฉ์ง€ํ•˜๋‚˜์š”?",
38
+ answer: "์‚ฌ์ง„ ๊ฐ„์˜ ๋ฏธ์„ธํ•œ ๋…ธ์ถœ ์ฐจ์ด๋กœ ์ธํ•ด ํ™”๋ฉด์ด ๊นœ๋นก์ด๋Š” ํ˜„์ƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ํ•ญ์ƒ ์ˆ˜๋™ ๋ชจ๋“œ(M), ๊ณ ์ • ํ™”์ดํŠธ ๋ฐธ๋Ÿฐ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ์ˆ˜๋™ ์กฐ๋ฆฌ๊ฐœ ์กฐ์ ˆ์ด ๊ฐ€๋Šฅํ•œ ๋ Œ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.",
39
+ },
40
+ {
41
+ question: "์…”ํ„ฐ ์Šคํ”ผ๋“œ๊ฐ€ ์™œ ์ค‘์š”ํ•œ๊ฐ€์š”?",
42
+ answer: "์›€์ง์ž„์ด ๋งค๋„๋Ÿฝ๊ฒŒ ๋ณด์ด๋ ค๋ฉด(180๋„ ๊ทœ์น™) ์…”ํ„ฐ ์Šคํ”ผ๋“œ๊ฐ€ ์ดฌ์˜ ๊ฐ„๊ฒฉ์˜ ์•ฝ ์ ˆ๋ฐ˜ ์ •๋„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ„๊ฒฉ์ด 2์ดˆ๋ผ๋ฉด, ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ชจ์…˜ ๋ธ”๋Ÿฌ๋ฅผ ์œ„ํ•ด 1์ดˆ ์ •๋„๋กœ ์ดฌ์˜ํ•ด ๋ณด์„ธ์š”.",
43
+ },
44
+ ];
45
+
46
+ const howTo: TimelapseLocaleContent['howTo'] = [
47
+ {
48
+ name: "์ตœ์ข… ์˜์ƒ ๊ธธ์ด ์ •์˜",
49
+ text: "๊ฒฐ๊ณผ๋ฌผ ์˜์ƒ์ด ๋ช‡ ์ดˆ ๋˜๋Š” ๋ช‡ ๋ถ„ ๋™์•ˆ ์ง€์†๋˜๊ธฐ๋ฅผ ์›ํ•˜๋Š”์ง€ ์ž…๋ ฅํ•˜์„ธ์š”(์˜ˆ: ์ธ์Šคํƒ€๊ทธ๋žจ์šฉ 10์ดˆ).",
50
+ },
51
+ {
52
+ name: "์ถœ๋ ฅ FPS ์„ ํƒ",
53
+ text: "์˜์ƒ์˜ ๋ถ€๋“œ๋Ÿฌ์›€์„ ์„ ํƒํ•˜์„ธ์š”: 24 (์˜ํ™”), 30 (์›น), ๋˜๋Š” 60 (๋งค๋„๋Ÿฌ์šด ์Šฌ๋กœ์šฐ ๋ชจ์…˜).",
54
+ },
55
+ {
56
+ name: "์ดฌ์˜ ๊ฐ„๊ฒฉ ์กฐ์ •",
57
+ text: "์žฅ๋ฉด์˜ ์†๋„์— ๋งž์ถฐ ์นด๋ฉ”๋ผ๊ฐ€ ๋ช‡ ์ดˆ๋งˆ๋‹ค ์ดฌ์˜ํ• ์ง€ ์„ค์ •ํ•˜์„ธ์š”.",
58
+ },
59
+ {
60
+ name: "์ €์žฅ ๊ณต๊ฐ„ ํ™•์ธ",
61
+ text: "๊ณ„์‚ฐ๊ธฐ๊ฐ€ ์ „์ฒด ์„ธ์…˜์— ํ•„์š”ํ•œ ์˜ˆ์ƒ ์šฉ๋Ÿ‰(GB)์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์‹œ์ž‘ ์ „ SD ์นด๋“œ์˜ ์—ฌ์œ  ๊ณต๊ฐ„์„ ํ™•์ธํ•˜์„ธ์š”.",
62
+ },
63
+ ];
64
+
65
+ const bibliography: TimelapseLocaleContent['bibliography'] = [
66
+ {
67
+ name: "Timescapes Forum - Digital Timelapse Acquisition & Processing",
68
+ url: "https://timescapes.org/phpBB3/viewforum.php?f=4",
69
+ },
70
+ {
71
+ name: "Magic Lantern - Auto ETTR & Bulb Ramping Algorithms",
72
+ url: "https://wiki.magiclantern.fm/ettr",
73
+ },
74
+ {
75
+ name: "LRTimelapse - Visual Deflicker & Holy Grail Workflow",
76
+ url: "https://lrtimelapse.com/tutorial/advanced/",
77
+ },
78
+ {
79
+ name: "PhotoPills - Advanced Timelapse Calculator & NPF Rule",
80
+ url: "https://www.photopills.com/calculators/timelapse",
81
+ },
82
+ ];
83
+
84
+ const seo: TimelapseLocaleContent['seo'] = [
85
+ { type: 'title', text: 'ํƒ€์ž„๋žฉ์Šค ๋ฐ ํ•˜์ดํผ๋žฉ์Šค ์ดฌ์˜ ๊ฐ„๊ฒฉ ์™„๋ฒฝ ๊ฐ€์ด๋“œ', level: 2 },
86
+ { type: 'paragraph', html: '๋‹จ์ˆœํ•œ ๊ณ ์† ์˜์ƒ๊ณผ <strong>์‹œ๋„ค๋งˆํ‹ฑ ํƒ€์ž„๋žฉ์Šค</strong>์˜ ์ˆ˜ํ•™์  ์ฐจ์ด๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์š”์†Œ, ๋ฐ”๋กœ <strong>์ดฌ์˜ ๊ฐ„๊ฒฉ(์ธํ„ฐ๋ฒŒ)</strong>์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณ„์‚ฐ๊ธฐ๋Š” ์ถ”์ธก์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ์ผ์ถœ, ๋„์‹ฌ ๊ตํ†ต, ์€ํ•˜์ˆ˜ ๋“ฑ์„ ์™„๋ฒฝํ•œ ๋ถ€๋“œ๋Ÿฌ์›€์œผ๋กœ ๋‹ด์„ ์ˆ˜ ์žˆ๋„๋ก ์ •๋ฐ€ํ•œ ๊ณ„ํš์„ ๋„์™€์ค๋‹ˆ๋‹ค.' },
87
+
88
+ { type: 'title', text: '์ถ”์ฒœ ์ดฌ์˜ ๊ฐ„๊ฒฉ ํ‘œ (์น˜ํŠธ ์‹œํŠธ)', level: 3 },
89
+ { type: 'paragraph', html: 'ํ”ผ์‚ฌ์ฒด์— ๋”ฐ๋ผ ์ธํ„ฐ๋ฒŒ๋กœ๋ฏธํ„ฐ๋ฅผ ์„ค์ •ํ•  ๋•Œ ์•„๋ž˜์˜ ํ€ต ๋ ˆํผ๋Ÿฐ์Šค ํ‘œ๋ฅผ ํ™œ์šฉํ•˜์„ธ์š”. ๋ชฉํ‘œ๋Š” ์›€์ง์ž„์ด ์ธ์ง€๋˜๋ฉด์„œ๋„ ๋งค๋„๋Ÿฝ๊ฒŒ ์ด์–ด์ง€๋„๋ก ๋‹ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.' },
90
+ { type: 'table', headers: ['ํ”ผ์‚ฌ์ฒด / ์žฅ๋ฉด', '์ถ”์ฒœ ๊ฐ„๊ฒฉ', '์ด๋ฒคํŠธ ์ง€์† ์‹œ๊ฐ„ (์ตœ์†Œ)'], rows: [
91
+ ['๋น ๋ฅธ ๊ตฌ๋ฆ„ / ํญํ’', '1 - 2 ์ดˆ', '20 - 30 ๋ถ„'],
92
+ ['๋„์‹ฌ ๊ตํ†ต / ์‚ฌ๋žŒ (๋ธ”๋Ÿฌ ํšจ๊ณผ)', '0.5 - 2 ์ดˆ', '15 - 20 ๋ถ„'],
93
+ ['์ผ๋ชฐ / ์ผ์ถœ (ํ™€๋ฆฌ ๊ทธ๋ ˆ์ผ)', '5 - 10 ์ดˆ', '1.5 - 2.5 ์‹œ๊ฐ„'],
94
+ ['๋А๋ฆฐ ๊ตฌ๋ฆ„ / ๊ทธ๋ฆผ์ž', '10 - 15 ์ดˆ', '2 - 3 ์‹œ๊ฐ„'],
95
+ ['๋ณ„ / ์€ํ•˜์ˆ˜ (์ฒœ์ฒด)', '15 - 30 ์ดˆ*', '3 - 5 ์‹œ๊ฐ„'],
96
+ ['๊ฑด์„ค ํ˜„์žฅ / ์‹๋ฌผ ์„ฑ์žฅ', '5 - 15 ๋ถ„', '์ˆ˜์ผ / ์ˆ˜์ฃผ']
97
+ ]},
98
+ { type: 'tip', title: '์ฒœ์ฒด ์ดฌ์˜ ์ฐธ๊ณ ', html: '์ดฌ์˜ ๊ฐ„๊ฒฉ์€ ๋ณดํ†ต ๋น›์„ ๋‹ด๋Š” ๋ฐ ํ•„์š”ํ•œ ๋…ธ์ถœ ์‹œ๊ฐ„(500 ๊ทœ์น™ ๋“ฑ)์— ๋ฉ”๋ชจ๋ฆฌ ์นด๋“œ ์“ฐ๊ธฐ ๋ฒ„ํผ ์‹œ๊ฐ„ 1~2์ดˆ๋ฅผ ๋”ํ•œ ๊ฐ’์œผ๋กœ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.' },
99
+
100
+ { type: 'title', text: '180๋„ ๊ทœ์น™ (๋ชจ์…˜ ๋ธ”๋Ÿฌ)', level: 3 },
101
+ { type: 'paragraph', html: 'ํƒ€์ž„๋žฉ์Šค์—์„œ ํ”ํžˆ ํ•˜๋Š” ์‹ค์ˆ˜๋Š” ์˜์ƒ์ด ๋š๋š ๋Š๊ฒจ ๋ณด์ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งค๋„๋Ÿฌ์šด ์‹œ๋„ค๋งˆํ‹ฑ ๋ฃฉ์„ ์–ป์œผ๋ ค๋ฉด <strong>๋ชจ์…˜ ๋ธ”๋Ÿฌ</strong>๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.' },
102
+ { type: 'card', title: 'ํ™ฉ๊ธˆ ๊ทœ์น™', icon: 'mdi:information', html: '์…”ํ„ฐ ์Šคํ”ผ๋“œ๋Š” ์ดฌ์˜ ๊ฐ„๊ฒฉ์˜ ๋”ฑ ์ ˆ๋ฐ˜์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. <br /><br /> <em>์˜ˆ์‹œ:</em> <strong>4์ดˆ</strong>๋งˆ๋‹ค ์ดฌ์˜ํ•œ๋‹ค๋ฉด ๋…ธ์ถœ์€ <strong>2์ดˆ</strong>์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์‚ฌ์ง„ ์‚ฌ์ด์˜ ์‹œ๊ฐ„์  ๊ณต๋ฐฑ์„ ์ฑ„์›Œ ์ž๋™์ฐจ์˜ ๊ถค์ ์ด๋‚˜ ํ๋ฅด๋Š” ๋ฌผ์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.' },
103
+
104
+ { type: 'title', text: 'ํ”Œ๋ฆฌ์ปค ํ˜„์ƒ๊ณผ ์ˆ˜๋™ ์กฐ๋ฆฌ๊ฐœ', level: 3 },
105
+ { type: 'paragraph', html: '"ํ”Œ๋ฆฌ์ปค"๋Š” ์ดฌ์˜ ์‹œ๋งˆ๋‹ค ์กฐ๋ฆฌ๊ฐœ ๊ฐ’์ด ๋ฏธ์„ธํ•˜๊ฒŒ ๋ณ€ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ถˆํŽธํ•œ ๊นœ๋นก์ž„์ž…๋‹ˆ๋‹ค.' },
106
+ { type: 'list', items: [
107
+ '<strong>๋ Œ์ฆˆ ํŠธ์œ„์ŠคํŠธ:</strong> DSLR ๋“ฑ์—์„œ ๋ Œ์ฆˆ๋ฅผ ์‚ด์ง ๋Œ๋ ค ์ „์ž์‹ ์ ‘์ ์„ ๋Š๊ณ  ์กฐ๋ฆฌ๊ฐœ๋ฅผ ๊ธฐ๊ณ„์ ์œผ๋กœ ๊ณ ์ •ํ•˜๋Š” ํ…Œํฌ๋‹‰์ž…๋‹ˆ๋‹ค.',
108
+ '<strong>์™„์ „ ์ˆ˜๋™ ์„ค์ •:</strong> ISO, ํ™”์ดํŠธ ๋ฐธ๋Ÿฐ์Šค, ์ดˆ์ ์€ ๋ฐ˜๋“œ์‹œ ๊ณ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ๋ชจ๋“œ๋Š” ์ ˆ๋Œ€ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.',
109
+ '<strong>RAW ์ดฌ์˜ ๊ถŒ์žฅ:</strong> ์ด๋ฏธ์ง€ ํŒŒ์† ์—†์ด ํ›„๋ณด์ • ๋‹จ๊ณ„์—์„œ ๋…ธ์ถœ๊ณผ ์ƒ‰์ƒ์„ ์ •๋ฐ€ํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.'
110
+ ]},
111
+
112
+ { type: 'diagnostic', variant: 'success', title: '๊ณ ๊ธ‰ ํ…Œํฌ๋‹‰: "ํ™€๋ฆฌ ๊ทธ๋ ˆ์ผ"', icon: 'mdi:crown', badge: 'ํ”„๋กœ ํ…Œํฌ๋‹‰', html: '"ํ™€๋ฆฌ ๊ทธ๋ ˆ์ผ(Holy Grail)"์€ ๋‚ฎ์—์„œ ๋ฐค(๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€)์œผ๋กœ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ „ํ™˜๋˜๋Š” ์ดฌ์˜์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๊ด‘๋Ÿ‰์ด ๋“œ๋ผ๋งˆํ‹ฑํ•˜๊ฒŒ ๋ณ€ํ•˜๋ฏ€๋กœ ๊ฐ€์žฅ ์–ด๋ ค์šด ๊ธฐ์ˆ ์  ๋„์ „ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.' },
113
+
114
+ { type: 'stats', columns: 3, items: [
115
+ { label: 'Bulb Ramping', value: '์ ์ง„์  ๋…ธ์ถœ ์กฐ์ •', icon: 'mdi:brightness-6' },
116
+ { label: 'Post-Pro', value: 'LRTimelapse ํ™œ์šฉ', icon: 'mdi:television-guide' },
117
+ { label: 'Strategy', value: '์•ผ๊ฐ„ ์ธํ„ฐ๋ฒŒ ์ „๋žต', icon: 'mdi:weather-night' }
118
+ ]},
119
+
120
+ { type: 'title', text: '๊ฒฐ๋ก : ๋‹จ์ˆœํ•œ ๊ธฐ๊ณ„ํ•™์˜ ๋ฏธํ•™', level: 3 },
121
+ { type: 'paragraph', html: 'ํƒ€์ž„๋žฉ์Šค๋ฅผ ๋งˆ์Šคํ„ฐํ•˜๋Š” ๊ฒƒ์€ ์ธํ„ฐ๋ฒŒ๋กœ๋ฏธํ„ฐ ๋’ค์— ์ˆจ๊ฒจ์ง„ ์ˆ˜ํ•™์  ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.' }
122
+ ];
123
+
124
+ const faqSchema: WithContext<FAQPage> = {
125
+ '@context': 'https://schema.org',
126
+ '@type': 'FAQPage',
127
+ mainEntity: faq.map((item) => ({
128
+ '@type': 'Question',
129
+ name: item.question,
130
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
131
+ })),
132
+ };
133
+
134
+ const howToSchema: WithContext<HowTo> = {
135
+ '@context': 'https://schema.org',
136
+ '@type': 'HowTo',
137
+ name: title,
138
+ description,
139
+ step: howTo.map((step) => ({
140
+ '@type': 'HowToStep',
141
+ name: step.name,
142
+ text: step.text,
143
+ })),
144
+ };
145
+
146
+ const appSchema: WithContext<SoftwareApplication> = {
147
+ '@context': 'https://schema.org',
148
+ '@type': 'SoftwareApplication',
149
+ name: title,
150
+ description,
151
+ applicationCategory: 'UtilitiesApplication',
152
+ operatingSystem: 'Web',
153
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
154
+ inLanguage: 'ko',
155
+ };
156
+
157
+ export const content: TimelapseLocaleContent = {
158
+ slug,
159
+ title,
160
+ description,
161
+ ui,
162
+ seo,
163
+ faq,
164
+ faqTitle: 'ํƒ€์ž„๋žฉ์Šค ์ œ์ž‘์— ๊ด€ํ•œ ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ',
165
+ bibliography,
166
+ bibliographyTitle: 'ํƒ€์ž„๋žฉ์Šค ์ด๋ก  ๋ฐ ๊ด€๋ จ ๋ฆฌ์†Œ์Šค',
167
+ howTo,
168
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
169
+ };