@jjlmoya/utils-home 1.15.0 → 1.17.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 (140) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/pages/[locale]/[slug].astro +28 -12
  4. package/src/tests/locale_completeness.test.ts +2 -20
  5. package/src/tests/shared-test-helpers.ts +56 -0
  6. package/src/tests/tool_exports.test.ts +34 -0
  7. package/src/tool/dewPointCalculator/bibliography.ts +10 -0
  8. package/src/tool/dewPointCalculator/component.astro +0 -232
  9. package/src/tool/dewPointCalculator/dew-point-calculator.css +230 -0
  10. package/src/tool/dewPointCalculator/i18n/de.ts +2 -12
  11. package/src/tool/dewPointCalculator/i18n/en.ts +2 -12
  12. package/src/tool/dewPointCalculator/i18n/es.ts +2 -12
  13. package/src/tool/dewPointCalculator/i18n/fr.ts +2 -12
  14. package/src/tool/dewPointCalculator/i18n/id.ts +2 -12
  15. package/src/tool/dewPointCalculator/i18n/it.ts +2 -12
  16. package/src/tool/dewPointCalculator/i18n/ja.ts +2 -12
  17. package/src/tool/dewPointCalculator/i18n/ko.ts +2 -12
  18. package/src/tool/dewPointCalculator/i18n/nl.ts +2 -12
  19. package/src/tool/dewPointCalculator/i18n/pl.ts +2 -12
  20. package/src/tool/dewPointCalculator/i18n/pt.ts +2 -12
  21. package/src/tool/dewPointCalculator/i18n/ru.ts +2 -12
  22. package/src/tool/dewPointCalculator/i18n/sv.ts +2 -12
  23. package/src/tool/dewPointCalculator/i18n/tr.ts +2 -12
  24. package/src/tool/dewPointCalculator/i18n/zh.ts +2 -12
  25. package/src/tool/dewPointCalculator/seo.astro +2 -1
  26. package/src/tool/heatingComparator/bibliography.ts +14 -0
  27. package/src/tool/heatingComparator/component.astro +0 -269
  28. package/src/tool/heatingComparator/heating-consumption-comparator.css +267 -0
  29. package/src/tool/heatingComparator/i18n/de.ts +2 -16
  30. package/src/tool/heatingComparator/i18n/en.ts +2 -12
  31. package/src/tool/heatingComparator/i18n/es.ts +2 -16
  32. package/src/tool/heatingComparator/i18n/fr.ts +2 -12
  33. package/src/tool/heatingComparator/i18n/id.ts +2 -16
  34. package/src/tool/heatingComparator/i18n/it.ts +2 -16
  35. package/src/tool/heatingComparator/i18n/ja.ts +296 -310
  36. package/src/tool/heatingComparator/i18n/ko.ts +296 -306
  37. package/src/tool/heatingComparator/i18n/nl.ts +2 -16
  38. package/src/tool/heatingComparator/i18n/pl.ts +2 -16
  39. package/src/tool/heatingComparator/i18n/pt.ts +2 -16
  40. package/src/tool/heatingComparator/i18n/ru.ts +2 -12
  41. package/src/tool/heatingComparator/i18n/sv.ts +2 -16
  42. package/src/tool/heatingComparator/i18n/tr.ts +2 -16
  43. package/src/tool/heatingComparator/i18n/zh.ts +296 -306
  44. package/src/tool/heatingComparator/seo.astro +3 -3
  45. package/src/tool/ledSavingCalculator/bibliography.ts +14 -0
  46. package/src/tool/ledSavingCalculator/component.astro +0 -305
  47. package/src/tool/ledSavingCalculator/i18n/de.ts +2 -12
  48. package/src/tool/ledSavingCalculator/i18n/en.ts +2 -16
  49. package/src/tool/ledSavingCalculator/i18n/es.ts +2 -16
  50. package/src/tool/ledSavingCalculator/i18n/fr.ts +2 -16
  51. package/src/tool/ledSavingCalculator/i18n/id.ts +2 -12
  52. package/src/tool/ledSavingCalculator/i18n/it.ts +2 -12
  53. package/src/tool/ledSavingCalculator/i18n/ja.ts +2 -12
  54. package/src/tool/ledSavingCalculator/i18n/ko.ts +2 -12
  55. package/src/tool/ledSavingCalculator/i18n/nl.ts +2 -12
  56. package/src/tool/ledSavingCalculator/i18n/pl.ts +2 -12
  57. package/src/tool/ledSavingCalculator/i18n/pt.ts +2 -12
  58. package/src/tool/ledSavingCalculator/i18n/ru.ts +2 -12
  59. package/src/tool/ledSavingCalculator/i18n/sv.ts +2 -12
  60. package/src/tool/ledSavingCalculator/i18n/tr.ts +2 -12
  61. package/src/tool/ledSavingCalculator/i18n/zh.ts +2 -12
  62. package/src/tool/ledSavingCalculator/led-saving-calculator.css +303 -0
  63. package/src/tool/ledSavingCalculator/seo.astro +2 -1
  64. package/src/tool/projectorCalculator/bibliography.ts +5 -0
  65. package/src/tool/projectorCalculator/component.astro +0 -359
  66. package/src/tool/projectorCalculator/i18n/de.ts +2 -6
  67. package/src/tool/projectorCalculator/i18n/en.ts +2 -7
  68. package/src/tool/projectorCalculator/i18n/es.ts +2 -7
  69. package/src/tool/projectorCalculator/i18n/fr.ts +2 -7
  70. package/src/tool/projectorCalculator/i18n/id.ts +2 -7
  71. package/src/tool/projectorCalculator/i18n/it.ts +2 -6
  72. package/src/tool/projectorCalculator/i18n/ja.ts +175 -179
  73. package/src/tool/projectorCalculator/i18n/ko.ts +175 -179
  74. package/src/tool/projectorCalculator/i18n/nl.ts +2 -6
  75. package/src/tool/projectorCalculator/i18n/pl.ts +2 -6
  76. package/src/tool/projectorCalculator/i18n/pt.ts +2 -6
  77. package/src/tool/projectorCalculator/i18n/ru.ts +2 -6
  78. package/src/tool/projectorCalculator/i18n/sv.ts +2 -6
  79. package/src/tool/projectorCalculator/i18n/tr.ts +2 -6
  80. package/src/tool/projectorCalculator/i18n/zh.ts +175 -179
  81. package/src/tool/projectorCalculator/projector-throw-calculator.css +357 -0
  82. package/src/tool/projectorCalculator/seo.astro +2 -1
  83. package/src/tool/qrGenerator/bibliography.ts +14 -0
  84. package/src/tool/qrGenerator/component.astro +0 -266
  85. package/src/tool/qrGenerator/i18n/de.ts +192 -202
  86. package/src/tool/qrGenerator/i18n/en.ts +2 -16
  87. package/src/tool/qrGenerator/i18n/es.ts +2 -16
  88. package/src/tool/qrGenerator/i18n/fr.ts +2 -16
  89. package/src/tool/qrGenerator/i18n/id.ts +146 -150
  90. package/src/tool/qrGenerator/i18n/it.ts +169 -173
  91. package/src/tool/qrGenerator/i18n/ja.ts +146 -150
  92. package/src/tool/qrGenerator/i18n/ko.ts +146 -150
  93. package/src/tool/qrGenerator/i18n/nl.ts +146 -150
  94. package/src/tool/qrGenerator/i18n/pl.ts +146 -150
  95. package/src/tool/qrGenerator/i18n/pt.ts +146 -150
  96. package/src/tool/qrGenerator/i18n/ru.ts +146 -150
  97. package/src/tool/qrGenerator/i18n/sv.ts +146 -150
  98. package/src/tool/qrGenerator/i18n/tr.ts +146 -150
  99. package/src/tool/qrGenerator/i18n/zh.ts +146 -150
  100. package/src/tool/qrGenerator/qr-generator.css +264 -0
  101. package/src/tool/qrGenerator/seo.astro +2 -1
  102. package/src/tool/solarCalculator/bibliography.ts +5 -0
  103. package/src/tool/solarCalculator/component.astro +0 -298
  104. package/src/tool/solarCalculator/i18n/de.ts +141 -145
  105. package/src/tool/solarCalculator/i18n/en.ts +2 -7
  106. package/src/tool/solarCalculator/i18n/es.ts +2 -7
  107. package/src/tool/solarCalculator/i18n/fr.ts +2 -7
  108. package/src/tool/solarCalculator/i18n/id.ts +2 -6
  109. package/src/tool/solarCalculator/i18n/it.ts +2 -6
  110. package/src/tool/solarCalculator/i18n/ja.ts +121 -125
  111. package/src/tool/solarCalculator/i18n/ko.ts +116 -120
  112. package/src/tool/solarCalculator/i18n/nl.ts +2 -5
  113. package/src/tool/solarCalculator/i18n/pl.ts +2 -6
  114. package/src/tool/solarCalculator/i18n/pt.ts +2 -6
  115. package/src/tool/solarCalculator/i18n/ru.ts +2 -5
  116. package/src/tool/solarCalculator/i18n/sv.ts +2 -5
  117. package/src/tool/solarCalculator/i18n/tr.ts +2 -5
  118. package/src/tool/solarCalculator/i18n/zh.ts +116 -120
  119. package/src/tool/solarCalculator/seo.astro +2 -1
  120. package/src/tool/solarCalculator/solar-panel-calculator.css +296 -0
  121. package/src/tool/tariffComparator/bibliography.ts +7 -0
  122. package/src/tool/tariffComparator/component.astro +0 -337
  123. package/src/tool/tariffComparator/electricity-tariff-comparator.css +335 -0
  124. package/src/tool/tariffComparator/i18n/de.ts +129 -132
  125. package/src/tool/tariffComparator/i18n/en.ts +2 -9
  126. package/src/tool/tariffComparator/i18n/es.ts +2 -9
  127. package/src/tool/tariffComparator/i18n/fr.ts +2 -9
  128. package/src/tool/tariffComparator/i18n/id.ts +2 -5
  129. package/src/tool/tariffComparator/i18n/it.ts +2 -5
  130. package/src/tool/tariffComparator/i18n/ja.ts +129 -132
  131. package/src/tool/tariffComparator/i18n/ko.ts +129 -132
  132. package/src/tool/tariffComparator/i18n/nl.ts +2 -5
  133. package/src/tool/tariffComparator/i18n/pl.ts +2 -5
  134. package/src/tool/tariffComparator/i18n/pt.ts +2 -5
  135. package/src/tool/tariffComparator/i18n/ru.ts +2 -5
  136. package/src/tool/tariffComparator/i18n/sv.ts +2 -5
  137. package/src/tool/tariffComparator/i18n/tr.ts +2 -5
  138. package/src/tool/tariffComparator/i18n/zh.ts +129 -132
  139. package/src/tool/tariffComparator/seo.astro +2 -1
  140. package/src/types.ts +0 -2
@@ -0,0 +1,230 @@
1
+ .dew-wrapper {
2
+ --dew-p: #8b5cf6;
3
+
4
+ width: 100%;
5
+ padding: 1rem 0;
6
+ }
7
+
8
+ .dew-card {
9
+ background: var(--bg-surface);
10
+ width: calc(100% - 24px);
11
+ max-width: 900px;
12
+ margin: 0 auto;
13
+ border-radius: 24px;
14
+ overflow: hidden;
15
+ display: flex;
16
+ flex-direction: column;
17
+ border: 1px solid var(--border-color);
18
+ color: var(--text-main);
19
+ }
20
+
21
+ @media (min-width: 768px) {
22
+ .dew-card {
23
+ flex-direction: row;
24
+ min-height: 500px;
25
+ }
26
+ }
27
+
28
+ .dew-left {
29
+ flex: 0 0 auto;
30
+ width: 100%;
31
+ padding: 32px;
32
+ border-bottom: 1px solid var(--border-color);
33
+ display: flex;
34
+ flex-direction: column;
35
+ gap: 32px;
36
+ }
37
+
38
+ @media (min-width: 768px) {
39
+ .dew-left {
40
+ width: 340px;
41
+ border-bottom: none;
42
+ border-right: 1px solid var(--border-color);
43
+ }
44
+ }
45
+
46
+ .dew-right {
47
+ flex: 1;
48
+ background: var(--bg-page);
49
+ display: flex;
50
+ flex-direction: column;
51
+ align-items: center;
52
+ justify-content: center;
53
+ gap: 24px;
54
+ padding: 32px;
55
+ min-height: 360px;
56
+ }
57
+
58
+ .dew-field {
59
+ display: flex;
60
+ flex-direction: column;
61
+ gap: 12px;
62
+ }
63
+
64
+ .dew-field-top {
65
+ display: flex;
66
+ justify-content: space-between;
67
+ align-items: flex-end;
68
+ }
69
+
70
+ .dew-label {
71
+ font-size: 0.6875rem;
72
+ font-weight: 700;
73
+ text-transform: uppercase;
74
+ letter-spacing: 0.1em;
75
+ color: var(--dew-p);
76
+ }
77
+
78
+ .dew-val-display {
79
+ font-size: 2rem;
80
+ font-weight: 900;
81
+ color: var(--text-main);
82
+ line-height: 1;
83
+ }
84
+
85
+ .dew-unit {
86
+ font-size: 1rem;
87
+ font-weight: 400;
88
+ color: var(--text-muted);
89
+ }
90
+
91
+ .dew-slider {
92
+ width: 100%;
93
+ height: 6px;
94
+ accent-color: var(--dew-p);
95
+ cursor: pointer;
96
+ border-radius: 9999px;
97
+ }
98
+
99
+ .dew-steps {
100
+ display: flex;
101
+ gap: 8px;
102
+ }
103
+
104
+ .dew-step {
105
+ flex: 1;
106
+ padding: 8px;
107
+ border-radius: 10px;
108
+ border: 1px solid var(--border-color);
109
+ background: var(--bg-surface);
110
+ color: var(--text-main);
111
+ font-size: 1.25rem;
112
+ font-weight: 700;
113
+ cursor: pointer;
114
+ transition: all 0.15s;
115
+ }
116
+
117
+ .dew-step:hover {
118
+ border-color: var(--dew-p);
119
+ color: var(--dew-p);
120
+ }
121
+
122
+ .dew-result-section {
123
+ text-align: center;
124
+ }
125
+
126
+ .dew-result-label {
127
+ font-size: 0.6875rem;
128
+ font-weight: 700;
129
+ text-transform: uppercase;
130
+ letter-spacing: 0.15em;
131
+ color: var(--text-muted);
132
+ margin: 0 0 8px;
133
+ }
134
+
135
+ .dew-result-value {
136
+ font-size: 5rem;
137
+ font-weight: 900;
138
+ color: #06b6d4;
139
+ line-height: 1;
140
+ margin: 0;
141
+ }
142
+
143
+ .dew-result-unit {
144
+ font-size: 2.5rem;
145
+ font-weight: 300;
146
+ color: var(--text-muted);
147
+ }
148
+
149
+ .dew-risk-badge {
150
+ display: flex;
151
+ align-items: center;
152
+ gap: 10px;
153
+ padding: 12px 18px;
154
+ border-radius: 12px;
155
+ width: 100%;
156
+ max-width: 320px;
157
+ transition: background 0.3s;
158
+ }
159
+
160
+ .dew-risk-dot {
161
+ width: 10px;
162
+ height: 10px;
163
+ border-radius: 50%;
164
+ flex-shrink: 0;
165
+ }
166
+
167
+ .dew-risk-text {
168
+ display: flex;
169
+ flex-direction: column;
170
+ gap: 2px;
171
+ }
172
+
173
+ .dew-risk-name {
174
+ font-size: 0.875rem;
175
+ font-weight: 700;
176
+ }
177
+
178
+ .dew-risk-desc {
179
+ font-size: 0.6875rem;
180
+ opacity: 0.8;
181
+ }
182
+
183
+ .dew-risk-low {
184
+ background: rgba(34, 197, 94, 0.1);
185
+ border: 1px solid rgba(34, 197, 94, 0.2);
186
+ color: #4ade80;
187
+ }
188
+
189
+ .dew-risk-low .dew-risk-dot {
190
+ background: #22c55e;
191
+ }
192
+
193
+ .dew-risk-medium {
194
+ background: rgba(245, 158, 11, 0.1);
195
+ border: 1px solid rgba(245, 158, 11, 0.2);
196
+ color: #fbbf24;
197
+ }
198
+
199
+ .dew-risk-medium .dew-risk-dot {
200
+ background: #f59e0b;
201
+ }
202
+
203
+ .dew-risk-high {
204
+ background: rgba(249, 115, 22, 0.1);
205
+ border: 1px solid rgba(249, 115, 22, 0.2);
206
+ color: #fb923c;
207
+ }
208
+
209
+ .dew-risk-high .dew-risk-dot {
210
+ background: #f97316;
211
+ }
212
+
213
+ .dew-risk-extreme {
214
+ background: rgba(239, 68, 68, 0.1);
215
+ border: 1px solid rgba(239, 68, 68, 0.2);
216
+ color: #f87171;
217
+ }
218
+
219
+ .dew-risk-extreme .dew-risk-dot {
220
+ background: #ef4444;
221
+ }
222
+
223
+ .dew-gauge {
224
+ width: 100%;
225
+ max-width: 320px;
226
+ }
227
+
228
+ .dew-gauge-track {
229
+ fill: var(--bg-muted);
230
+ }
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'taupunkt-rechner';
6
7
  const title = 'Taupunkt Rechner';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Häufig gestellte Fragen',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Literaturhinweise',
87
- bibliography: [
88
- {
89
- name: 'Magnus-Formel zur Berechnung des Taupunkts',
90
- url: 'https://de.wikipedia.org/wiki/Taupunkt',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dew-point-calculator';
6
7
  const title = 'Dew Point Calculator';
@@ -86,19 +87,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Frequently Asked Questions',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliography',
92
- bibliography: [
93
- {
94
- name: 'Magnus Approximation of the Dew-Point — Meteorological Applications (2011)',
95
- url: 'https://es.scribd.com/document/331352069/dew-point',
96
- },
97
- {
98
- name: 'Guide to Meteorological Instruments and Methods of Observation — WMO (2021)',
99
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
100
- },
101
- ],
91
+ bibliography,
102
92
  howTo: howToData,
103
93
  schemas: [faqSchema, howToSchema, appSchema],
104
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'punto-de-rocio';
6
7
  const title = 'Calculadora de Punto de Rocío';
@@ -86,19 +87,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Preguntas Frecuentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografía',
92
- bibliography: [
93
- {
94
- name: 'Magnus Approximation of the Dew-Point — Meteorological Applications (2011)',
95
- url: 'https://es.scribd.com/document/331352069/dew-point',
96
- },
97
- {
98
- name: 'Guide to Meteorological Instruments and Methods of Observation — WMO (2021)',
99
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
100
- },
101
- ],
91
+ bibliography,
102
92
  howTo: howToData,
103
93
  schemas: [faqSchema, howToSchema, appSchema],
104
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-point-de-rosee';
6
7
  const title = 'Calculateur de Point de Rosée';
@@ -86,19 +87,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Questions Fréquentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliographie',
92
- bibliography: [
93
- {
94
- name: "Magnus Approximation of the Dew-Point — Meteorological Applications (2011)",
95
- url: 'https://es.scribd.com/document/331352069/dew-point',
96
- },
97
- {
98
- name: "Guide to Meteorological Instruments and Methods of Observation — WMO (2021)",
99
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
100
- },
101
- ],
91
+ bibliography,
102
92
  howTo: howToData,
103
93
  schemas: [faqSchema, howToSchema, appSchema],
104
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'titik-embun';
6
7
  const title = 'Kalkulator Titik Embun';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Pertanyaan Umum',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Daftar Pustaka',
87
- bibliography: [
88
- {
89
- name: 'Aproksimasi Magnus untuk Titik Embun',
90
- url: 'https://id.wikipedia.org/wiki/Titik_embun',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'punto-di-rugiada';
6
7
  const title = 'Calcolatore Punto di Rugiada';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Domande Frequenti',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Bibliografia',
87
- bibliography: [
88
- {
89
- name: 'Approssimazione di Magnus per il Punto di Rugiada',
90
- url: 'https://it.wikipedia.org/wiki/Punto_di_rugiada',
91
- },
92
- {
93
- name: 'WMO: Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dew-point-calculator';
6
7
  const title = '露点計算機';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'よくある質問',
85
85
  faq: faqData,
86
- bibliographyTitle: '参考文献',
87
- bibliography: [
88
- {
89
- name: 'マグヌス式による露点計算',
90
- url: 'https://ja.wikipedia.org/wiki/露点',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dew-point-calculator';
6
7
  const title = '이슬점 계산기';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: '자주 묻는 질문',
85
85
  faq: faqData,
86
- bibliographyTitle: '참고 자료',
87
- bibliography: [
88
- {
89
- name: '이슬점 계산의 마그누스 근사식',
90
- url: 'https://ko.wikipedia.org/wiki/이슬점',
91
- },
92
- {
93
- name: 'WMO 기상 측정 도구 및 관측 방법 가이드',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dauwpunt-calculator';
6
7
  const title = 'Dauwpunt Calculator';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Veelgestelde Vragen',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Bibliografie',
87
- bibliography: [
88
- {
89
- name: 'Magnus-formule voor dauwpuntberekening',
90
- url: 'https://nl.wikipedia.org/wiki/Dauwpunt',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'punkt-rosy';
6
7
  const title = 'Kalkulator Punktu Rosy';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Często Zadawane Pytania',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Bibliografia',
87
- bibliography: [
88
- {
89
- name: 'Przybliżenie Magnusa dla Punktu Rosy',
90
- url: 'https://pl.wikipedia.org/wiki/Punkt_rosy',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'ponto-de-orvalho';
6
7
  const title = 'Calculadora de Ponto de Orvalho';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Perguntas Frequentes',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Bibliografia',
87
- bibliography: [
88
- {
89
- name: 'Magnus Approximation of the Dew-Point — Meteorological Applications',
90
- url: 'https://en.wikipedia.org/wiki/Dew_point',
91
- },
92
- {
93
- name: 'Guide to Meteorological Instruments and Methods of Observation — WMO',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'tochka-rosy';
6
7
  const title = 'Калькулятор Точки Росы';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Часто задаваемые вопросы',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Библиография',
87
- bibliography: [
88
- {
89
- name: 'Приближение Магнуса для точки росы',
90
- url: 'https://ru.wikipedia.org/wiki/Точка_росы',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'daggpunkt-raknare';
6
7
  const title = 'Daggpunktsräknare';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Vanliga frågor',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Referenser',
87
- bibliography: [
88
- {
89
- name: 'Magnus approximation för daggpunkt',
90
- url: 'https://sv.wikipedia.org/wiki/Daggpunkt',
91
- },
92
- {
93
- name: 'WMO Guide to Meteorological Instruments',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'ciglesme-noktasi-hesaplama';
6
7
  const title = 'Çiğleşme Noktası Hesaplayıcı';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: 'Sıkça Sorulan Sorular',
85
85
  faq: faqData,
86
- bibliographyTitle: 'Kaynakça',
87
- bibliography: [
88
- {
89
- name: 'Magnus-Tetens Çiğleşme Noktası Yaklaşımı',
90
- url: 'https://tr.wikipedia.org/wiki/Çiğ_noktası',
91
- },
92
- {
93
- name: 'Dünya Meteoroloji Örgütü (WMO) Gözlem Rehberi',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { DewPointCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dew-point-calculator';
6
7
  const title = '露点计算器';
@@ -81,19 +82,8 @@ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
82
  slug,
82
83
  title,
83
84
  description,
84
- faqTitle: '常见问题',
85
85
  faq: faqData,
86
- bibliographyTitle: '参考资料',
87
- bibliography: [
88
- {
89
- name: '露点计算的 Magnus 近似法',
90
- url: 'https://zh.wikipedia.org/wiki/露点',
91
- },
92
- {
93
- name: 'WMO 气象仪器与观测方法指南',
94
- url: 'https://community.wmo.int/site/knowledge-hub/programmes-and-initiatives/instruments-and-methods-of-observation-programme-imop/guide-instruments-and-methods-of-observation-wmo-no-8',
95
- },
96
- ],
86
+ bibliography,
97
87
  howTo: howToData,
98
88
  schemas: [faqSchema, howToSchema, appSchema],
99
89
  seo: [
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
11
11
  const content = await dewPointCalculator.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}