@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 = 'ciglesme-noktasi-hesaplama';
6
+ const title = 'Çiğleşme Noktası Hesaplayıcı';
7
+ const description = 'Nem ve oda sıcaklığını kullanarak duvarlarınızdaki yoğuşma sıcaklığını hesaplayın. Rutubeti önlemek ve evinizin yapı sağlığını korumak için hayati bir araç.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Çiğleşme noktası tam olarak nedir?',
12
+ answer: 'Havadaki su buharının sıvı suya dönüşmesi (yoğuşması) için havanın soğutulması gereken sıcaklıktır. Bağıl nem ne kadar yüksekse, çiğleşme noktası mevcut sıcaklığa o kadar yakındır.',
13
+ },
14
+ {
15
+ question: 'Evimin köşelerinde neden küf oluşuyor?',
16
+ answer: 'Köşeler genellikle duvarın daha soğuk olduğu ısı köprüleridir. Eğer bu yüzeyin sıcaklığı çiğleşme noktasının altına düşerse, sıvı su oluşur. Küfün büyümek için bu sürekli neme ihtiyacı vardır.',
17
+ },
18
+ {
19
+ question: 'Evdeki nemi nasıl düşürebilirim?',
20
+ answer: 'En etkili yol havalandırmaktır (özellikle duştan veya yemek pişirdikten sonra) ve nem giderici cihazlar kullanmaktır. Sabit bir sıcaklık sağlamak da havanın yoğuşmadan daha fazla buhar tutmasına yardımcı olur.',
21
+ },
22
+ {
23
+ question: 'Yoğuşma kaynaklı küf tehlikeli midir?',
24
+ answer: 'Evet. Küf, solunum problemlerine, alerjilere ve astıma neden olabilen sporlar yayar. Bu hesaplayıcı ile yoğuşma riskini belirlemek, sağlıklı bir ev için ilk adımdır.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Sıcaklık ve Nemi Ölçün',
31
+ text: 'Odanın mevcut değerlerini öğrenmek için bir termometre ve higrometre kullanın.',
32
+ },
33
+ {
34
+ name: 'Değerleri Girin',
35
+ text: 'Hesaplayıcıda sıcaklığı Celsius ve nem yüzdesini ayarlayın.',
36
+ },
37
+ {
38
+ name: 'Kritik Sıcaklığı Öğrenin',
39
+ text: 'Araç size suyun yüzeylerde tam olarak hangi sıcaklıkta yoğuşmaya başlayacağını söyleyecektir.',
40
+ },
41
+ {
42
+ name: 'Yüzeyleri Kontrol Edin',
43
+ text: 'Lazer termometreniz varsa duvarların sıcaklığını ölçün. Sonuçtan düşükse, yalıtım veya havalandırma yapmanız gerekir.',
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: 'TRY' },
77
+ inLanguage: 'tr',
78
+ };
79
+
80
+ export const content: ToolLocaleContent<DewPointCalculatorUI> = {
81
+ slug,
82
+ title,
83
+ description,
84
+ faqTitle: 'Sıkça Sorulan Sorular',
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
+ ],
97
+ howTo: howToData,
98
+ schemas: [faqSchema, howToSchema, appSchema],
99
+ seo: [
100
+ {
101
+ type: 'title',
102
+ text: 'Çiğleşme Noktası Nedir ve Eviniz İçin Neden Önemlidir?',
103
+ level: 2,
104
+ },
105
+ {
106
+ type: 'paragraph',
107
+ html: 'Çiğleşme noktası, havanın su buharını sıvıya dönüştürmesi için soğuması gereken sıcaklıktır. Ev içinde bu değer, sağlıklı bir yaşam alanı ile rutubetli bir bina arasındaki sınırı çizer. Duvar sıcaklığı bu noktanın altına düştüğünde su damlacıkları oluşur; bu da mantar ve küf için ideal üreme ortamıdır.',
108
+ },
109
+ {
110
+ type: 'stats',
111
+ items: [
112
+ { value: '> 5°C', label: 'Güvenli Fark', icon: 'mdi:shield-check' },
113
+ { value: '%40–60', label: 'İdeal Nem', icon: 'mdi:water-percent' },
114
+ { value: '< 1°C', label: 'Aşırı Tehlike', icon: 'mdi:alert' },
115
+ ],
116
+ columns: 3,
117
+ },
118
+ {
119
+ type: 'comparative',
120
+ items: [
121
+ {
122
+ title: 'Magnus Tetens Formülü',
123
+ description: 'Çiğleşme noktasını bilimsel hassasiyetle hesaplamak için WMO tarafından 0°C ile 50°C arası önerilen Magnus-Tetens yaklaşımını kullanıyoruz.',
124
+ icon: 'mdi:calculator',
125
+ points: ['Bilimsel olarak doğrulanmış hassasiyet', 'Ev sıcaklıkları için ideal'],
126
+ },
127
+ {
128
+ title: 'Isı Köprüleri ve Küf',
129
+ description: 'Köşeler ve pencere kasaları en soğuk noktalardır. Sıcaklıkları çiğleşme noktasının altına düşerse küf kaçınılmazdır.',
130
+ icon: 'mdi:home-thermometer',
131
+ points: ['Köşeler en hassas noktalardır', 'Isı yalıtımı yoğuşmayı önler'],
132
+ },
133
+ ],
134
+ columns: 2,
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: 'Risk Seviyeleri',
139
+ level: 3,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: '<strong>Düşük Risk (fark &gt; 5°C):</strong> Duvarlarınız güvende. <strong>Orta Risk (3–5°C):</strong> Köşeleri kontrol edin. <strong>Yüksek Risk (1–3°C):</strong> Camlarda yoğuşma muhtemel — hemen havalandırın. <strong>Aşırı Tehlike (&lt; 1°C):</strong> Aktif yoğuşma ve siyah küf riski.',
144
+ },
145
+ {
146
+ type: 'diagnostic',
147
+ variant: 'warning',
148
+ title: 'Altın Kural',
149
+ icon: 'mdi:thermometer-alert',
150
+ badge: 'Anahtar Tavsiye',
151
+ html: '<p>Duvar sıcaklığınız <strong>çiğleşme noktasından 3°C daha az</strong> farka sahipse, yoğuşma riski altındasınız demektir. Havalandırın ve nemi %40-60 arasında tutun.</p>',
152
+ },
153
+ {
154
+ type: 'summary',
155
+ title: 'Yoğuşma Nasıl Önlenir?',
156
+ items: [
157
+ 'Her gün havalandırın, özellikle banyo ve yemek sonrası.',
158
+ 'Bağıl nemi %40 ile %60 arasında tutun.',
159
+ 'Mutfakta aspiratör kullanmaya özen gösterin.',
160
+ 'İçeride çamaşır kurutmaktan kaçının.',
161
+ 'Soğuk yüzeyleri önlemek için duvarları yalıtın.',
162
+ ],
163
+ },
164
+ ],
165
+ ui: {
166
+ labelTemperature: 'Oda Sıcaklığı',
167
+ labelHumidity: 'Bağıl Nem',
168
+ labelDewPoint: 'Çiğleşme Noktası',
169
+ riskLow: 'Düşük Risk',
170
+ riskMedium: 'Orta Risk',
171
+ riskHigh: 'Yüksek Risk',
172
+ riskExtreme: 'Aşırı Tehlike',
173
+ riskLowDesc: 'Fark > 5°C. Yüzeyler güvende.',
174
+ riskMediumDesc: 'Fark 3–5°C. Köşelere dikkat.',
175
+ riskHighDesc: 'Fark 1–3°C. Hemen havalandırın.',
176
+ riskExtremeDesc: 'Fark < 1°C. Aktif yoğuşma.',
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 = 'dew-point-calculator';
6
+ const title = '露点计算器';
7
+ const description = '根据环境湿度和温度,计算您墙壁表面的冷凝温度。这是一款预防潮湿、保护家居结构健康的重要工具。';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '露点到底是什么?',
12
+ answer: '露点是空气在冷却过程中,其所含水蒸气凝结成液态水时的温度。相对湿度越高,露点就越接近当前气温。',
13
+ },
14
+ {
15
+ question: '为什么我家的墙角会出现霉菌?',
16
+ answer: '墙角通常是“热桥”所在,墙体温度通常较低。如果该表面温度降至露点以下,就会形成冷凝水。霉菌在这种持续潮湿的环境中会迅速滋生。',
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: '在计算器中输入摄氏温度和湿度百分比。',
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: 'CNY' },
77
+ inLanguage: 'zh',
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: '露点计算的 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
+ ],
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: 'Magnus Tetens 公式',
123
+ description: '为了实现科学精准的计算,我们采用了世界气象组织 (WMO) 推荐的 Magnus-Tetens 近似法,适用于 0°C 至 50°C 的温度环境。',
124
+ icon: 'mdi:calculator',
125
+ points: ['经 WMO 验证的科学精度', '适用于室内温度范围'],
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
+ };
@@ -7,9 +7,7 @@ import type { DewPointCalculatorUI } from './ui';
7
7
 
8
8
  export type DewPointCalculatorLocaleContent = ToolLocaleContent<DewPointCalculatorUI>;
9
9
 
10
- import { content as es } from './i18n/es';
11
- import { content as en } from './i18n/en';
12
- import { content as fr } from './i18n/fr';
10
+
13
11
 
14
12
  export const dewPointCalculator: HomeToolEntry<DewPointCalculatorUI> = {
15
13
  id: 'dew-point-calculator',
@@ -18,9 +16,21 @@ export const dewPointCalculator: HomeToolEntry<DewPointCalculatorUI> = {
18
16
  fg: 'mdi:home-thermometer',
19
17
  },
20
18
  i18n: {
21
- es: async () => es,
22
- en: async () => en,
23
- fr: async () => fr,
19
+ de: async () => (await import('./i18n/de')).content,
20
+ en: async () => (await import('./i18n/en')).content,
21
+ es: async () => (await import('./i18n/es')).content,
22
+ fr: async () => (await import('./i18n/fr')).content,
23
+ id: async () => (await import('./i18n/id')).content,
24
+ it: async () => (await import('./i18n/it')).content,
25
+ ja: async () => (await import('./i18n/ja')).content,
26
+ ko: async () => (await import('./i18n/ko')).content,
27
+ nl: async () => (await import('./i18n/nl')).content,
28
+ pl: async () => (await import('./i18n/pl')).content,
29
+ pt: async () => (await import('./i18n/pt')).content,
30
+ ru: async () => (await import('./i18n/ru')).content,
31
+ sv: async () => (await import('./i18n/sv')).content,
32
+ tr: async () => (await import('./i18n/tr')).content,
33
+ zh: async () => (await import('./i18n/zh')).content,
24
34
  },
25
35
  };
26
36