@jjlmoya/utils-home 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/package.json +61 -60
  2. package/src/tests/i18n_coverage.test.ts +36 -0
  3. package/src/tests/schemas_fulfillment.test.ts +23 -0
  4. package/src/tests/slug_uniqueness.test.ts +81 -0
  5. package/src/tests/title_quality.test.ts +55 -0
  6. package/src/tool/dewPointCalculator/i18n/de.ts +178 -0
  7. package/src/tool/dewPointCalculator/i18n/en.ts +1 -1
  8. package/src/tool/dewPointCalculator/i18n/es.ts +1 -1
  9. package/src/tool/dewPointCalculator/i18n/fr.ts +1 -1
  10. package/src/tool/dewPointCalculator/i18n/id.ts +178 -0
  11. package/src/tool/dewPointCalculator/i18n/it.ts +178 -0
  12. package/src/tool/dewPointCalculator/i18n/ja.ts +178 -0
  13. package/src/tool/dewPointCalculator/i18n/ko.ts +178 -0
  14. package/src/tool/dewPointCalculator/i18n/nl.ts +178 -0
  15. package/src/tool/dewPointCalculator/i18n/pl.ts +178 -0
  16. package/src/tool/dewPointCalculator/i18n/pt.ts +178 -0
  17. package/src/tool/dewPointCalculator/i18n/ru.ts +178 -0
  18. package/src/tool/dewPointCalculator/i18n/sv.ts +178 -0
  19. package/src/tool/dewPointCalculator/i18n/tr.ts +178 -0
  20. package/src/tool/dewPointCalculator/i18n/zh.ts +178 -0
  21. package/src/tool/dewPointCalculator/index.ts +16 -6
  22. package/src/tool/heatingComparator/i18n/de.ts +340 -0
  23. package/src/tool/heatingComparator/i18n/es.ts +1 -1
  24. package/src/tool/heatingComparator/i18n/id.ts +324 -0
  25. package/src/tool/heatingComparator/i18n/it.ts +336 -0
  26. package/src/tool/heatingComparator/i18n/ja.ts +311 -0
  27. package/src/tool/heatingComparator/i18n/ko.ts +307 -0
  28. package/src/tool/heatingComparator/i18n/nl.ts +336 -0
  29. package/src/tool/heatingComparator/i18n/pl.ts +311 -0
  30. package/src/tool/heatingComparator/i18n/pt.ts +336 -0
  31. package/src/tool/heatingComparator/i18n/ru.ts +307 -0
  32. package/src/tool/heatingComparator/i18n/sv.ts +311 -0
  33. package/src/tool/heatingComparator/i18n/tr.ts +324 -0
  34. package/src/tool/heatingComparator/i18n/zh.ts +307 -0
  35. package/src/tool/heatingComparator/index.ts +13 -1
  36. package/src/tool/ledSavingCalculator/i18n/de.ts +208 -0
  37. package/src/tool/ledSavingCalculator/i18n/fr.ts +1 -1
  38. package/src/tool/ledSavingCalculator/i18n/id.ts +208 -0
  39. package/src/tool/ledSavingCalculator/i18n/it.ts +208 -0
  40. package/src/tool/ledSavingCalculator/i18n/ja.ts +208 -0
  41. package/src/tool/ledSavingCalculator/i18n/ko.ts +208 -0
  42. package/src/tool/ledSavingCalculator/i18n/nl.ts +208 -0
  43. package/src/tool/ledSavingCalculator/i18n/pl.ts +208 -0
  44. package/src/tool/ledSavingCalculator/i18n/pt.ts +208 -0
  45. package/src/tool/ledSavingCalculator/i18n/ru.ts +208 -0
  46. package/src/tool/ledSavingCalculator/i18n/sv.ts +208 -0
  47. package/src/tool/ledSavingCalculator/i18n/tr.ts +208 -0
  48. package/src/tool/ledSavingCalculator/i18n/zh.ts +208 -0
  49. package/src/tool/ledSavingCalculator/index.ts +16 -7
  50. package/src/tool/projectorCalculator/i18n/de.ts +180 -0
  51. package/src/tool/projectorCalculator/i18n/fr.ts +1 -1
  52. package/src/tool/projectorCalculator/i18n/id.ts +181 -0
  53. package/src/tool/projectorCalculator/i18n/it.ts +180 -0
  54. package/src/tool/projectorCalculator/i18n/ja.ts +180 -0
  55. package/src/tool/projectorCalculator/i18n/ko.ts +180 -0
  56. package/src/tool/projectorCalculator/i18n/nl.ts +180 -0
  57. package/src/tool/projectorCalculator/i18n/pl.ts +180 -0
  58. package/src/tool/projectorCalculator/i18n/pt.ts +180 -0
  59. package/src/tool/projectorCalculator/i18n/ru.ts +180 -0
  60. package/src/tool/projectorCalculator/i18n/sv.ts +180 -0
  61. package/src/tool/projectorCalculator/i18n/tr.ts +180 -0
  62. package/src/tool/projectorCalculator/i18n/zh.ts +180 -0
  63. package/src/tool/projectorCalculator/index.ts +15 -6
  64. package/src/tool/qrGenerator/i18n/de.ts +203 -0
  65. package/src/tool/qrGenerator/i18n/id.ts +151 -0
  66. package/src/tool/qrGenerator/i18n/it.ts +174 -0
  67. package/src/tool/qrGenerator/i18n/ja.ts +151 -0
  68. package/src/tool/qrGenerator/i18n/ko.ts +151 -0
  69. package/src/tool/qrGenerator/i18n/nl.ts +151 -0
  70. package/src/tool/qrGenerator/i18n/pl.ts +151 -0
  71. package/src/tool/qrGenerator/i18n/pt.ts +151 -0
  72. package/src/tool/qrGenerator/i18n/ru.ts +151 -0
  73. package/src/tool/qrGenerator/i18n/sv.ts +151 -0
  74. package/src/tool/qrGenerator/i18n/tr.ts +151 -0
  75. package/src/tool/qrGenerator/i18n/zh.ts +151 -0
  76. package/src/tool/qrGenerator/index.ts +17 -9
  77. package/src/tool/solarCalculator/i18n/de.ts +146 -0
  78. package/src/tool/solarCalculator/i18n/id.ts +126 -0
  79. package/src/tool/solarCalculator/i18n/it.ts +126 -0
  80. package/src/tool/solarCalculator/i18n/ja.ts +126 -0
  81. package/src/tool/solarCalculator/i18n/ko.ts +121 -0
  82. package/src/tool/solarCalculator/i18n/nl.ts +120 -0
  83. package/src/tool/solarCalculator/i18n/pl.ts +121 -0
  84. package/src/tool/solarCalculator/i18n/pt.ts +126 -0
  85. package/src/tool/solarCalculator/i18n/ru.ts +110 -0
  86. package/src/tool/solarCalculator/i18n/sv.ts +110 -0
  87. package/src/tool/solarCalculator/i18n/tr.ts +120 -0
  88. package/src/tool/solarCalculator/i18n/zh.ts +121 -0
  89. package/src/tool/solarCalculator/index.ts +17 -9
  90. package/src/tool/tariffComparator/i18n/de.ts +133 -0
  91. package/src/tool/tariffComparator/i18n/id.ts +133 -0
  92. package/src/tool/tariffComparator/i18n/it.ts +133 -0
  93. package/src/tool/tariffComparator/i18n/ja.ts +133 -0
  94. package/src/tool/tariffComparator/i18n/ko.ts +133 -0
  95. package/src/tool/tariffComparator/i18n/nl.ts +133 -0
  96. package/src/tool/tariffComparator/i18n/pl.ts +133 -0
  97. package/src/tool/tariffComparator/i18n/pt.ts +133 -0
  98. package/src/tool/tariffComparator/i18n/ru.ts +106 -0
  99. package/src/tool/tariffComparator/i18n/sv.ts +111 -0
  100. package/src/tool/tariffComparator/i18n/tr.ts +133 -0
  101. package/src/tool/tariffComparator/i18n/zh.ts +133 -0
  102. package/src/tool/tariffComparator/index.ts +16 -7
  103. package/src/types.ts +1 -1
@@ -0,0 +1,178 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { DewPointCalculatorUI } from '../ui';
4
+
5
+ const slug = 'dew-point-calculator';
6
+ const title = '이슬점 계산기';
7
+ const description = '습도와 실내 온도를 사용하여 벽면의 결로 온도를 계산합니다. 습기를 방지하고 건물의 건강을 지키기 위한 필수 도구입니다.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '이슬점이란 정확히 무엇인가요?',
12
+ answer: '공기 중의 수증기가 물방울(결로)로 변하기 시작하는 온도입니다. 상대 습도가 높을수록 이슬점은 현재 기온에 가까워집니다.',
13
+ },
14
+ {
15
+ question: '왜 방 구석에 곰팡이가 생기나요?',
16
+ answer: '구석진 곳은 대개 벽면 온도가 낮은 열교(Heat bridge) 현상이 발생하기 쉽습니다. 벽면 온도가 이슬점보다 낮아지면 수분이 맺히고, 곰팡이는 이 습기를 먹고 자랍니다.',
17
+ },
18
+ {
19
+ question: '집안의 습도를 낮추는 방법은 무엇인가요?',
20
+ answer: '가장 효과적인 방법은 환기(특히 샤워나 요리 후)와 제습기 사용입니다. 실내 온도를 일정하게 유지하는 것도 공기가 결로 없이 더 많은 수증기를 머금을 수 있게 도와줍니다.',
21
+ },
22
+ {
23
+ question: '결로로 인한 곰팡이가 위험한가요?',
24
+ answer: '네. 곰팡이는 호흡기 질환, 알레르기, 천식을 유발할 수 있는 포자를 퍼뜨립니다. 이 계산기로 결로 위험을 미리 감지하는 것이 건강한 집을 만드는 첫 걸음입니다.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: '온도와 습도 측정',
31
+ text: '온습도계를 사용하여 현재 방 안의 온도와 습도를 확인하세요.',
32
+ },
33
+ {
34
+ name: '수치 입력',
35
+ text: '계산기에 현재 온도(Celsius)와 습도(%)를 입력하세요.',
36
+ },
37
+ {
38
+ name: '임계 온도 확인',
39
+ text: '표면 온도가 이 온도 이하로 떨어지면 물이 맺히기 시작한다는 것을 알려줍니다.',
40
+ },
41
+ {
42
+ name: '표면 온도 체크',
43
+ text: '레이저 온도계가 있다면 벽면 온도를 측정해 보세요. 계산 결과보다 낮다면 단열 보강이나 환기가 필요합니다.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howToData.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' },
77
+ inLanguage: 'ko',
78
+ };
79
+
80
+ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
+ slug,
82
+ title,
83
+ description,
84
+ faqTitle: '자주 묻는 질문',
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
+ ],
97
+ howTo: howToData,
98
+ schemas: [faqSchema, howToSchema, appSchema],
99
+ seo: [
100
+ {
101
+ type: 'title',
102
+ text: '이슬점이란 무엇이며 왜 우리 집에 중요한가요?',
103
+ level: 2,
104
+ },
105
+ {
106
+ type: 'paragraph',
107
+ html: '이슬점은 공기 중의 수증기가 액체로 변하는 온도입니다. 실내 환경에서 이 값은 "건강한 집"과 "습기 문제가 있는 집"을 나누는 경계가 됩니다. 단열이 부족한 벽면의 온도가 이슬점 아래로 떨어지면 물방울이 맺히고 이는 곰팡이가 번식하기 가장 좋은 환경이 됩니다.',
108
+ },
109
+ {
110
+ type: 'stats',
111
+ items: [
112
+ { value: '> 5°C', label: '안전 범위', icon: 'mdi:shield-check' },
113
+ { value: '40–60%', label: '이상적 습도', icon: 'mdi:water-percent' },
114
+ { value: '< 1°C', label: '매우 위험', icon: 'mdi:alert' },
115
+ ],
116
+ columns: 3,
117
+ },
118
+ {
119
+ type: 'comparative',
120
+ items: [
121
+ {
122
+ title: '마그누스 테텐스 공식',
123
+ description: '과학적으로 정확한 계산을 위해 세계기상기구(WMO)에서 0~50°C 사이 온도 대역에 권장하는 마그누스-테텐스 근사식을 사용합니다.',
124
+ icon: 'mdi:calculator',
125
+ points: ['검증된 과학적 정확도', '주거 공간 온도 대역에 최적화'],
126
+ },
127
+ {
128
+ title: '열교 현상과 곰팡이',
129
+ description: '방 구석이나 창틀은 집에서 가장 차가운 곳입니다. 이곳의 온도가 이슬점 이하로 떨어지면 곰팡이는 피할 수 없습니다.',
130
+ icon: 'mdi:home-thermometer',
131
+ points: ['구석진 곳은 가장 취약한 지점', '열 단열이 결로를 예방합니다'],
132
+ },
133
+ ],
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: '위험 단계',
139
+ level: 3,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '<strong>낮은 위험 (차이 &gt; 5°C):</strong> 벽면이 안전한 상태입니다. <strong>중간 위험 (3–5°C):</strong> 구석진 곳을 주의 깊게 살피세요. <strong>높은 위험 (1–3°C):</strong> 유리창 등에 결로 가능성이 큽니다 - 즉시 환기하세요. <strong>매우 위험 (차이 &lt; 1°C):</strong> 현재 결로가 진행 중이며 곰팡이 증식 위험이 매우 높습니다.',
144
+ },
145
+ {
146
+ type: 'diagnostic',
147
+ variant: 'warning',
148
+ title: '골든 룰',
149
+ icon: 'mdi:thermometer-alert',
150
+ badge: '핵심 팁',
151
+ html: '<p>벽면 온도와 <strong>이슬점의 차이가 3°C 이내</strong>라면 결로가 임박한 상태입니다. 자주 환기하고 상대 습도를 40~60% 사이로 유지하세요.</p>',
152
+ },
153
+ {
154
+ type: 'summary',
155
+ title: '결로를 예방하는 방법',
156
+ items: [
157
+ '매일 환기하세요. 특히 샤워나 요리 직후에는 필수입니다.',
158
+ '상대 습도를 40% ~ 60% 사이로 유지하세요.',
159
+ '주방에서는 반드시 후드를 사용하세요.',
160
+ '환기가 안 되는 실내에서 빨래 건조를 피하세요.',
161
+ '차가운 벽면이 생기지 않도록 단열을 보강하세요.',
162
+ ],
163
+ },
164
+ ],
165
+ ui: {
166
+ labelTemperature: '주변 온도',
167
+ labelHumidity: '상대 습도',
168
+ labelDewPoint: '이슬점 온도',
169
+ riskLow: '낮은 위험',
170
+ riskMedium: '중간 위험',
171
+ riskHigh: '높은 위험',
172
+ riskExtreme: '매우 위험',
173
+ riskLowDesc: '차이 > 5°C. 안전한 상태.',
174
+ riskMediumDesc: '차이 3–5°C. 구석을 살피세요.',
175
+ riskHighDesc: '차이 1–3°C. 즉시 환기 필요.',
176
+ riskExtremeDesc: '차이 < 1°C. 결로 진행 중.',
177
+ },
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { DewPointCalculatorUI } from '../ui';
4
+
5
+ const slug = 'dauwpunt-calculator';
6
+ const title = 'Dauwpunt Calculator';
7
+ const description = 'Bereken de condensatietemperatuur op uw muren met behulp van luchtvochtigheid und kamertemperatuur. Een essentieel hulpmiddel om schimmel te voorkomen en uw woning te beschermen.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Wat is precies het dauwpunt?',
12
+ answer: 'Het dauwpunt is de temperatuur waarbij de lucht verzadigd raakt met waterdamp, waardoor er condensatie (waterdruppels) ontstaat. Hoe hoger de luchtvochtigheid, hoe dichter het dauwpunt bij de huidige temperatuur ligt.',
13
+ },
14
+ {
15
+ question: 'Waarom ontstaat er schimmel in de hoeken van mijn huis?',
16
+ answer: 'Hoeken zijn vaak koudebruggen waar de muur kouder is. Als de temperatuur van dat oppervlak onder het dauwpunt zakt, ontstaat er vloeibaar water. Schimmel heeft dit vocht nodig om te kunnen groeien.',
17
+ },
18
+ {
19
+ question: 'Hoe kan ik de luchtvochtigheid in huis verlagen?',
20
+ answer: 'De meest effectieve manier is ventileren (vooral na het douchen of koken) en het gebruik van luchtontvochtigers. Een constante temperatuur aanhouden helpt ook, omdat warme lucht meer vocht kan vasthouden.',
21
+ },
22
+ {
23
+ question: 'Is schimmel door condensatie gevaarlijk?',
24
+ answer: 'Ja. Schimmel verspreidt sporen die ademhalingsproblemen, allergieën en astma kunnen veroorzaken. Het risico op condensatie opsporen is de eerste stap naar een gezond huis.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Temperatuur en vochtigheid meten',
31
+ text: 'Gebruik een thermometer en hygrometer om de huidige waarden in de kamer te bepalen.',
32
+ },
33
+ {
34
+ name: 'Waarden invoeren',
35
+ text: 'Stel de temperatuur in Celsius en het luchtvochtigheidspercentage in op de calculator.',
36
+ },
37
+ {
38
+ name: 'Kritieke temperatuur bepalen',
39
+ text: 'De tool vertelt u de exacte temperatuur waarbij water begint te condenseren op oppervlakken.',
40
+ },
41
+ {
42
+ name: 'Oppervlakken controleren',
43
+ text: 'Meet met een infraroodthermometer de temperatuur van uw muren. Is deze gelijk aan of lager dan het resultaat? Dan moet u isoleren of extra ventileren.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howToData.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
77
+ inLanguage: 'nl',
78
+ };
79
+
80
+ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
+ slug,
82
+ title,
83
+ description,
84
+ faqTitle: 'Veelgestelde Vragen',
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
+ ],
97
+ howTo: howToData,
98
+ schemas: [faqSchema, howToSchema, appSchema],
99
+ seo: [
100
+ {
101
+ type: 'title',
102
+ text: 'Wat is het dauwpunt en waarom is het belangrijk voor uw woning?',
103
+ level: 2,
104
+ },
105
+ {
106
+ type: 'paragraph',
107
+ html: 'Het dauwpunt is de temperatuur waarbij waterdamp in de lucht vloeibaar wordt. In huis markeert dit de grens tussen een gezonde woning en een woning met vochtproblemen. Wanneer de temperatuur van een oppervlak onder het dauwpunt zakt, ontstaan er waterdruppels — de ideale voedingsbodem voor schimmels.',
108
+ },
109
+ {
110
+ type: 'stats',
111
+ items: [
112
+ { value: '> 5°C', label: 'Veilige Marge', icon: 'mdi:shield-check' },
113
+ { value: '40–60%', label: 'Ideale Vochtigheid', icon: 'mdi:water-percent' },
114
+ { value: '< 1°C', label: 'Groot Risico', icon: 'mdi:alert' },
115
+ ],
116
+ columns: 3,
117
+ },
118
+ {
119
+ type: 'comparative',
120
+ items: [
121
+ {
122
+ title: 'De Magnus Tetens Formule',
123
+ description: 'Voor een wetenschappelijk nauwkeurige berekening gebruiken we de Magnus-Tetens benadering, aanbevolen door de WMO voor temperaturen tussen 0°C en 50°C.',
124
+ icon: 'mdi:calculator',
125
+ points: ['Wetenschappelijk gevalideerd', 'Ideaal voor woontemperaturen'],
126
+ },
127
+ {
128
+ title: 'Koudebruggen en Schimmel',
129
+ description: 'Hoeken en kozijnen zijn vaak de koudste punten. Als hun temperatuur onder het dauwpunt zakt, is schimmel onvermijdelijk.',
130
+ icon: 'mdi:home-thermometer',
131
+ points: ['Hoeken zijn kwetsbare punten', 'Isolatie voorkomt condensatie'],
132
+ },
133
+ ],
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: 'Risiconiveaus',
139
+ level: 3,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '<strong>Laag Risico (verschil &gt; 5°C):</strong> Uw muren zijn veilig. <strong>Gemiddeld Risico (3–5°C):</strong> Let op de hoeken. <strong>Hoog Risico (1–3°C):</strong> Condensatie op ramen waarschijnlijk — ventileer direct. <strong>Groot Gevaar (&lt; 1°C):</strong> Actieve condensatie met risico op zwarte schimmel.',
144
+ },
145
+ {
146
+ type: 'diagnostic',
147
+ variant: 'warning',
148
+ title: 'De Gouden Regel',
149
+ icon: 'mdi:thermometer-alert',
150
+ badge: 'Belangrijk Advies',
151
+ html: '<p>Ligt uw muurtemperatuur minder dan <strong>3°C boven het dauwpunt</strong>? Dan heeft u een acuut risico op condensatie. Ventileer vaker en houd de luchtvochtigheid tussen 40% en 60%.</p>',
152
+ },
153
+ {
154
+ type: 'summary',
155
+ title: 'Hoe condensatie te voorkomen',
156
+ items: [
157
+ 'Ventileer dagelijks, zeker na het douchen of koken.',
158
+ 'Houd de luchtvochtigheid tussen 40% und 60%.',
159
+ 'Gebruik de afzuigkap tijdens het koken.',
160
+ 'Droog geen was binnenshuis zonder extra ventilatie.',
161
+ 'Isoleer muren om koude oppervlakken te voorkomen.',
162
+ ],
163
+ },
164
+ ],
165
+ ui: {
166
+ labelTemperature: 'Kamertemperatuur',
167
+ labelHumidity: 'Luchtvochtigheid',
168
+ labelDewPoint: 'Dauwpunt',
169
+ riskLow: 'Laag Risico',
170
+ riskMedium: 'Matig Risico',
171
+ riskHigh: 'Hoog Risico',
172
+ riskExtreme: 'Groot Risico',
173
+ riskLowDesc: 'Verschil > 5°C. Oppervlakken veilig.',
174
+ riskMediumDesc: 'Verschil 3–5°C. Controleer hoeken.',
175
+ riskHighDesc: 'Verschil 1–3°C. Direct ventileren.',
176
+ riskExtremeDesc: 'Verschil < 1°C. Actieve condensatie.',
177
+ },
178
+ };
@@ -0,0 +1,178 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { DewPointCalculatorUI } from '../ui';
4
+
5
+ const slug = 'punkt-rosy';
6
+ const title = 'Kalkulator Punktu Rosy';
7
+ const description = 'Oblicz temperaturę kondensacji na swoich ścianach, wykorzystując wilgotność i temperaturę otoczenia. Niezbędne narzędzie w zapobieganiu wilgoci i ochronie konstrukcji domu.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Czym dokładnie jest punkt rosy?',
12
+ answer: 'To temperatura, do której należy ochłodzić powietrze, aby zawarta w nim para wodna skropliła się (zamieniła w wodę). Im wyższa wilgotność względna, tym punkt rosy jest bliższy aktualnej temperaturze.',
13
+ },
14
+ {
15
+ question: 'Dlaczego w rogach mojego domu pojawia się pleśń?',
16
+ answer: 'Rogi pomieszczeń to często mostki termiczne, gdzie ściana jest chłodniejsza. Jeśli temperatura tej powierzchni spadnie poniżej punktu rosy, powstaje skroplona woda. Pleśń potrzebuje tej stałej wilgoci do wzrostu.',
17
+ },
18
+ {
19
+ question: 'Jak mogę obniżyć wilgotność w domu?',
20
+ answer: 'Najskuteczniejszym sposobem jest wentylacja (zwłaszcza po kąpieli lub gotowaniu) oraz stosowanie osuszaczy powietrza. Utrzymywanie stałej temperatury również pomaga, gdyż ciepłe powietrze może pomieścić więcej pary bez kondensacji.',
21
+ },
22
+ {
23
+ question: 'Czy pleśń z kondensacji jest niebezpieczna?',
24
+ answer: 'Tak. Pleśń uwalnia zarodniki, które mogą powodować problemy z oddychaniem, alergie i astmę. Wykrycie ryzyka kondensacji za pomocą tego kalkulatora to pierwszy krok do zdrowego domu.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Zmierz temperaturę i wilgotność',
31
+ text: 'Użyj termometru i higrometru, aby poznać aktualne wartości w pomieszczeniu.',
32
+ },
33
+ {
34
+ name: 'Wprowadź wartości',
35
+ text: 'Ustaw temperaturę w stopniach Celsjusza i procent wilgotności w kalkulatorze.',
36
+ },
37
+ {
38
+ name: 'Uzyskaj temperaturę krytyczną',
39
+ text: 'Narzędzie powie Ci dokładnie, przy jakiej temperaturze powierzchni woda zacznie się skraplać.',
40
+ },
41
+ {
42
+ name: 'Sprawdź powierzchnie',
43
+ text: 'Jeśli masz termometr laserowy, zmierz temperaturę ścian. Jeśli jest równa lub niższa od wyniku, musisz przewietrzyć lub docieplić pomieszczenie.',
44
+ },
45
+ ];
46
+
47
+ const faqSchema: WithContext<FAQPage> = {
48
+ '@context': 'https://schema.org',
49
+ '@type': 'FAQPage',
50
+ mainEntity: faqData.map((item) => ({
51
+ '@type': 'Question',
52
+ name: item.question,
53
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
54
+ })),
55
+ };
56
+
57
+ const howToSchema: WithContext<HowTo> = {
58
+ '@context': 'https://schema.org',
59
+ '@type': 'HowTo',
60
+ name: title,
61
+ description,
62
+ step: howToData.map((step) => ({
63
+ '@type': 'HowToStep',
64
+ name: step.name,
65
+ text: step.text,
66
+ })),
67
+ };
68
+
69
+ const appSchema: WithContext<SoftwareApplication> = {
70
+ '@context': 'https://schema.org',
71
+ '@type': 'SoftwareApplication',
72
+ name: title,
73
+ description,
74
+ applicationCategory: 'UtilityApplication',
75
+ operatingSystem: 'All',
76
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'PLN' },
77
+ inLanguage: 'pl',
78
+ };
79
+
80
+ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
+ slug,
82
+ title,
83
+ description,
84
+ faqTitle: 'Często Zadawane Pytania',
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
+ ],
97
+ howTo: howToData,
98
+ schemas: [faqSchema, howToSchema, appSchema],
99
+ seo: [
100
+ {
101
+ type: 'title',
102
+ text: 'Czym jest Punkt Rosy i dlaczego ma znaczenie w Twoim domu?',
103
+ level: 2,
104
+ },
105
+ {
106
+ type: 'paragraph',
107
+ html: 'Punkt rosy to temperatura, w której para wodna w powietrzu skrapla się. W domu wartość ta wyznacza granicę między zdrowym budynkiem a takim z problemami wilgotnościowymi. Gdy temperatura powierzchni spadnie poniżej punktu rosy, pojawiają się krople wody — idealne podłoże dla szkodliwych grzybów i pleśni.',
108
+ },
109
+ {
110
+ type: 'stats',
111
+ items: [
112
+ { value: '> 5°C', label: 'Bezpieczny Margin', icon: 'mdi:shield-check' },
113
+ { value: '40–60%', label: 'Idealna Wilgotność', icon: 'mdi:water-percent' },
114
+ { value: '< 1°C', label: 'Ekstremalne Ryzyko', icon: 'mdi:alert' },
115
+ ],
116
+ columns: 3,
117
+ },
118
+ {
119
+ type: 'comparative',
120
+ items: [
121
+ {
122
+ title: 'Wzór Magnusa Tetensa',
123
+ description: 'Do obliczenia punktu rosy używamy przybliżenia Magnusa-Tetensa, zalecanego przez WMO dla temperatur od 0°C do 50°C.',
124
+ icon: 'mdi:calculator',
125
+ points: ['Potwierdzona naukowo precyzja', 'Idealny dla temperatur domowych'],
126
+ },
127
+ {
128
+ title: 'Mostki Termiczne i Pleśń',
129
+ description: 'Narożniki i ramy okienne to najzimniejsze punkty. Jeśli ich temperatura spadnie poniżej punktu rosy, pleśń jest nieunikniona.',
130
+ icon: 'mdi:home-thermometer',
131
+ points: ['Narożniki są najbardziej wrażliwe', 'Izolacja termiczna zapobiega skraplaniu'],
132
+ },
133
+ ],
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: 'Poziomy Ryzyka',
139
+ level: 3,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '<strong>Niskie Ryzyko (różnica &gt; 5°C):</strong> Ściany są bezpieczne. <strong>Średnie Ryzyko (3–5°C):</strong> Obserwuj narożniki. <strong>Wysokie Ryzyko (1–3°C):</strong> Skraplanie na szybach — natychmiast przewietrz. <strong>Ekstremalne Ryzyko (&lt; 1°C):</strong> Aktywne skraplanie z ryzykiem czarnej pleśni.',
144
+ },
145
+ {
146
+ type: 'diagnostic',
147
+ variant: 'warning',
148
+ title: 'Złota Zasada',
149
+ icon: 'mdi:thermometer-alert',
150
+ badge: 'Kluczowa Porada',
151
+ html: '<p>Jeśli temperatura ściany jest mniejsza niż <strong>3°C od punktu rosy</strong>, masz ryzyko kondensacji. Wietrz pomieszczenia i trzymaj wilgotność między 40% a 60%.</p>',
152
+ },
153
+ {
154
+ type: 'summary',
155
+ title: 'Jak zapobiegać skraplaniu',
156
+ items: [
157
+ 'Wietrz codziennie, zwłaszcza po prysznicu lub gotowaniu.',
158
+ 'Utrzymuj wilgotność względną między 40% a 60%.',
159
+ 'Używaj okapu kuchennego podczas gotowania.',
160
+ 'Unikaj suszenia ubrań wewnątrz bez odpowiedniej wentylacji.',
161
+ 'Ociepl ściany, aby uniknąć zimnych powierzchni.',
162
+ ],
163
+ },
164
+ ],
165
+ ui: {
166
+ labelTemperature: 'Temperatura Otoczenia',
167
+ labelHumidity: 'Wilgotność Względna',
168
+ labelDewPoint: 'Punkt Rosy',
169
+ riskLow: 'Niskie Ryzyko',
170
+ riskMedium: 'Średnie Ryzyko',
171
+ riskHigh: 'Wysokie Ryzyko',
172
+ riskExtreme: 'Ekstremalne Ryzyko',
173
+ riskLowDesc: 'Różnica > 5°C. Ściany bezpieczne.',
174
+ riskMediumDesc: 'Różnica 3–5°C. Sprawdź rogi.',
175
+ riskHighDesc: 'Różnica 1–3°C. Przewietrz teraz.',
176
+ riskExtremeDesc: 'Różnica < 1°C. Aktywne skraplanie.',
177
+ },
178
+ };