@jjlmoya/utils-nature 1.3.0 → 1.4.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 (56) hide show
  1. package/package.json +2 -1
  2. package/src/tests/i18n_coverage.test.ts +36 -0
  3. package/src/tests/slug_uniqueness.test.ts +81 -0
  4. package/src/tests/tool_validation.test.ts +1 -2
  5. package/src/tool/cricketThermometer/i18n/de.ts +181 -0
  6. package/src/tool/cricketThermometer/i18n/id.ts +181 -0
  7. package/src/tool/cricketThermometer/i18n/it.ts +181 -0
  8. package/src/tool/cricketThermometer/i18n/ja.ts +181 -0
  9. package/src/tool/cricketThermometer/i18n/ko.ts +181 -0
  10. package/src/tool/cricketThermometer/i18n/nl.ts +181 -0
  11. package/src/tool/cricketThermometer/i18n/pl.ts +181 -0
  12. package/src/tool/cricketThermometer/i18n/pt.ts +181 -0
  13. package/src/tool/cricketThermometer/i18n/ru.ts +181 -0
  14. package/src/tool/cricketThermometer/i18n/sv.ts +181 -0
  15. package/src/tool/cricketThermometer/i18n/tr.ts +181 -0
  16. package/src/tool/cricketThermometer/i18n/zh.ts +181 -0
  17. package/src/tool/cricketThermometer/index.ts +15 -7
  18. package/src/tool/digitalCarbon/i18n/de.ts +235 -0
  19. package/src/tool/digitalCarbon/i18n/id.ts +235 -0
  20. package/src/tool/digitalCarbon/i18n/it.ts +235 -0
  21. package/src/tool/digitalCarbon/i18n/ja.ts +235 -0
  22. package/src/tool/digitalCarbon/i18n/ko.ts +235 -0
  23. package/src/tool/digitalCarbon/i18n/nl.ts +235 -0
  24. package/src/tool/digitalCarbon/i18n/pl.ts +235 -0
  25. package/src/tool/digitalCarbon/i18n/pt.ts +235 -0
  26. package/src/tool/digitalCarbon/i18n/ru.ts +235 -0
  27. package/src/tool/digitalCarbon/i18n/sv.ts +235 -0
  28. package/src/tool/digitalCarbon/i18n/tr.ts +235 -0
  29. package/src/tool/digitalCarbon/i18n/zh.ts +235 -0
  30. package/src/tool/digitalCarbon/index.ts +15 -7
  31. package/src/tool/rainHarvester/i18n/de.ts +185 -0
  32. package/src/tool/rainHarvester/i18n/id.ts +185 -0
  33. package/src/tool/rainHarvester/i18n/it.ts +185 -0
  34. package/src/tool/rainHarvester/i18n/ja.ts +185 -0
  35. package/src/tool/rainHarvester/i18n/ko.ts +185 -0
  36. package/src/tool/rainHarvester/i18n/nl.ts +185 -0
  37. package/src/tool/rainHarvester/i18n/pl.ts +185 -0
  38. package/src/tool/rainHarvester/i18n/pt.ts +185 -0
  39. package/src/tool/rainHarvester/i18n/ru.ts +185 -0
  40. package/src/tool/rainHarvester/i18n/sv.ts +185 -0
  41. package/src/tool/rainHarvester/i18n/tr.ts +185 -0
  42. package/src/tool/rainHarvester/i18n/zh.ts +185 -0
  43. package/src/tool/rainHarvester/index.ts +15 -7
  44. package/src/tool/seedCalculator/i18n/de.ts +213 -0
  45. package/src/tool/seedCalculator/i18n/id.ts +213 -0
  46. package/src/tool/seedCalculator/i18n/it.ts +213 -0
  47. package/src/tool/seedCalculator/i18n/ja.ts +213 -0
  48. package/src/tool/seedCalculator/i18n/ko.ts +213 -0
  49. package/src/tool/seedCalculator/i18n/nl.ts +213 -0
  50. package/src/tool/seedCalculator/i18n/pl.ts +213 -0
  51. package/src/tool/seedCalculator/i18n/pt.ts +213 -0
  52. package/src/tool/seedCalculator/i18n/ru.ts +213 -0
  53. package/src/tool/seedCalculator/i18n/sv.ts +213 -0
  54. package/src/tool/seedCalculator/i18n/tr.ts +213 -0
  55. package/src/tool/seedCalculator/i18n/zh.ts +213 -0
  56. package/src/tool/seedCalculator/index.ts +15 -7
@@ -0,0 +1,181 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CricketThermometerUI } from '../ui';
4
+
5
+ const slug = 'cricket-thermometer';
6
+ const title = '蟋蟀温度计 – 杜倍耳定律温度计算器';
7
+ const description =
8
+ '没有温度计?听听蟋蟀的声音。使用我们的杜倍耳定律计算器,通过计算鸣叫次数来得出准确温度。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '什么是杜倍耳定律 (Dolbear\'s Law)?',
13
+ answer:
14
+ '由阿莫斯·杜倍耳于 1897 年提出,这是一种科学观察结果,发现了蟋蟀鸣叫频率与环境气温之间的线性相关性。',
15
+ },
16
+ {
17
+ question: '为什么蟋蟀在天热时鸣叫得更快?',
18
+ answer:
19
+ '蟋蟀是冷血动物(变温动物)。它们的代谢过程和肌肉收缩速度取决于外部温度;天气越暖,它们就有越多的能量来快速发出声音。',
20
+ },
21
+ {
22
+ question: '这种测量准确吗?',
23
+ answer:
24
+ '对于雪树蟋 (Oecanthus fultoni) 等品种,如果计算正确,它的准确度惊人,误差幅度仅约为 0.5°C。但是,湿度或风等因素可能会改变结果。',
25
+ },
26
+ {
27
+ question: '我应该用哪种蟋蟀来计算?',
28
+ answer:
29
+ '原始公式是基于雪树蟋的。对于普通田蟋,这种关系类似,但鸣叫频率往往会略慢一些。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '寻找单只蟋蟀',
36
+ text: '晚上找一个安静的地方,在那里你能清楚地听到一只蟋蟀的鸣叫,以避免混淆节奏。',
37
+ },
38
+ {
39
+ name: '计算 15 秒内的鸣叫次数',
40
+ text: '使用秒表,计算昆虫在整整 15 秒内发出了多少次摩擦声。',
41
+ },
42
+ {
43
+ name: '输入数值',
44
+ text: '跟随鸣叫节奏点击“TAP”按钮几秒钟,计算器会自动计算 BPM(每分钟鸣叫次数)。',
45
+ },
46
+ {
47
+ name: '验证温度',
48
+ text: '系统将应用公式 T(°C) = 10 + (N - 40) / 7,为您提供环境温度的摄氏度估值。',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowToThing> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'zh',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<CricketThermometerUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: '常见问题',
91
+ faq: faqData,
92
+ bibliographyTitle: '科学参考文献',
93
+ bibliography: [
94
+ {
95
+ name: 'The American Naturalist - The Cricket as a Thermometer',
96
+ url: 'https://www.jstor.org/stable/2453256',
97
+ },
98
+ {
99
+ name: 'Wikipedia - Dolbear\'s Law',
100
+ url: 'https://en.wikipedia.org/wiki/Dolbear%27s_law',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ {
107
+ type: 'title',
108
+ text: '完整指南:如何利用杜倍耳定律计算温度',
109
+ level: 2,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: '你知道吗,只需聆听大自然的声音就能得知准确的温度?1897 年,物理学家阿莫斯·杜倍耳发现蟋蟀鸣叫频率与环境热量之间存在精确的数学关系。这款工具将这一发现数字化,让你的手机变成一个天然温度计。',
114
+ },
115
+ {
116
+ type: 'tip',
117
+ title: '蟋蟀为什么要“唱歌”?',
118
+ html: '<p>蟋蟀的“歌声”,即<strong>摩擦发声</strong>,实际上是一种求偶信号。公蟋蟀通过摩擦双翅(而不是腿)来发出这种声音。令人着迷的是,由于它们是冷血动物(变温动物),这种摩擦的速度直接取决于空气的热能。</p>',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: '科学原理:变温性与代谢',
123
+ level: 3,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '与保持恒定体温的哺乳动物不同,昆虫依靠外部热量。它们的生化反应遵循<strong>阿伦尼乌斯公式</strong>:热量越多,反应越快。',
128
+ },
129
+ {
130
+ type: 'paragraph',
131
+ html: '这意味着蟋蟀的肌肉收缩和翅膀摩擦需要酶促反应。如果天气寒冷,这些反应就会变慢,鸣叫声也会变得迟缓。如果天气暖和,代谢就会加快,歌声也会变成疯狂的颤音。',
132
+ },
133
+ {
134
+ type: 'title',
135
+ text: '杜倍耳公式',
136
+ level: 3,
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: '尽管不同品种存在差异,但最著名的公式是针对雪树蟋 (<em>Oecanthus fultoni</em>) 的。要获得摄氏温度:',
141
+ },
142
+ {
143
+ type: 'code',
144
+ code: 'T(°C) = 10 + (N - 40) / 7\n\n其中 N = 每分钟鸣叫次数。',
145
+ ariaLabel: '通过蟋蟀鸣叫计算温度的杜倍耳定律',
146
+ },
147
+ {
148
+ type: 'paragraph',
149
+ html: '我们的工具会自动执行此操作:它测量您点击之间的时间,计算每分钟鸣叫次数(BPM)并立即应用公式。',
150
+ },
151
+ {
152
+ type: 'title',
153
+ text: '有趣的事实',
154
+ level: 3,
155
+ },
156
+ {
157
+ type: 'list',
158
+ items: [
159
+ '<strong>爱情温度计:</strong> 一些理论认为,母蟋蟀更喜欢在当前温度下以“正确”频率唱歌的公蟋蟀,因为这表明该公蟋蟀身体健康且代谢强健。',
160
+ '<strong>寒冷极限:</strong> 低于 10°C (50°F) 时,大多数蟋蟀会停止唱歌,因为它们的代谢太慢,无法维持肌肉输出。',
161
+ '<strong>同步鸣叫:</strong> 在温暖的夜晚,成千上万只蟋蟀可以同步鸣叫,产生令人印象深刻的“声波”效果。',
162
+ ],
163
+ },
164
+ {
165
+ type: 'tip',
166
+ title: '准确度提示',
167
+ html: '<p>准确度取决于蟋蟀的品种。此工具针对普通田蟋和树蟋进行了校准。湿度或风等因素可能会使结果产生 ±0.5°C 的偏差。</p>',
168
+ },
169
+ ],
170
+ ui: {
171
+ labelWaiting: '等待中...',
172
+ labelTapping: '继续点击...',
173
+ tapInstruction: '每当你听到一声鸣叫',
174
+ btnReset: '重置',
175
+ btnSoundOn: '声音:开启',
176
+ btnSoundOff: '声音:关闭',
177
+ unitChirpsMin: '次鸣叫/分',
178
+ faqTitle: '常见问题',
179
+ bibliographyTitle: '科学参考文献',
180
+ },
181
+ };
@@ -7,10 +7,6 @@ import type { CricketThermometerUI } from './ui';
7
7
 
8
8
  export type CricketThermometerLocaleContent = ToolLocaleContent<CricketThermometerUI>;
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';
13
-
14
10
  export const cricketThermometer: NatureToolEntry<CricketThermometerUI> = {
15
11
  id: 'cricket-thermometer',
16
12
  icons: {
@@ -18,9 +14,21 @@ export const cricketThermometer: NatureToolEntry<CricketThermometerUI> = {
18
14
  fg: 'mdi:grass',
19
15
  },
20
16
  i18n: {
21
- es: async () => es,
22
- en: async () => en,
23
- fr: async () => fr,
17
+ de: async () => (await import('./i18n/de')).content,
18
+ en: async () => (await import('./i18n/en')).content,
19
+ es: async () => (await import('./i18n/es')).content,
20
+ fr: async () => (await import('./i18n/fr')).content,
21
+ id: async () => (await import('./i18n/id')).content,
22
+ it: async () => (await import('./i18n/it')).content,
23
+ ja: async () => (await import('./i18n/ja')).content,
24
+ ko: async () => (await import('./i18n/ko')).content,
25
+ nl: async () => (await import('./i18n/nl')).content,
26
+ pl: async () => (await import('./i18n/pl')).content,
27
+ pt: async () => (await import('./i18n/pt')).content,
28
+ ru: async () => (await import('./i18n/ru')).content,
29
+ sv: async () => (await import('./i18n/sv')).content,
30
+ tr: async () => (await import('./i18n/tr')).content,
31
+ zh: async () => (await import('./i18n/zh')).content,
24
32
  },
25
33
  };
26
34
 
@@ -0,0 +1,235 @@
1
+ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import type { DigitalCarbonLocaleContent } from '../index';
3
+
4
+ const slug = 'digitaler-co2-fussabdruck-rechner';
5
+ const title = 'Rechner für den digitalen CO₂ Fußabdruck';
6
+ const description = 'Analysieren Sie die Umweltauswirkungen jeder Webseite. Schätzen Sie den Energieverbrauch und die CO₂-Emissionen pro Besuch.';
7
+
8
+ const faqData = [
9
+ {
10
+ question: 'Was ist der CO₂-Fußabdruck einer Website?',
11
+ answer: 'Es ist die Menge an Treibhausgasen, primär CO₂, die in die Atmosphäre emittiert wird, resultierend aus der Energie, die von Servern, Übertragungsnetzen und dem Gerät des Nutzers verbraucht wird, um eine Webseite zu laden und darzustellen.',
12
+ },
13
+ {
14
+ question: 'Wie wird die Auswirkung einer Website gemessen?',
15
+ answer: 'Sie wird normalerweise in Gramm CO₂-Äquivalent (gCO₂e) pro Besuch gemessen. Eine effiziente Website emittiert weniger als 0,2 g CO₂, während eine nicht optimierte Seite 2 oder 3 g pro Ladevorgang überschreiten kann.',
16
+ },
17
+ {
18
+ question: 'Warum verschmutzt das Internet die Umwelt?',
19
+ answer: 'Weil die gesamte notwendige Infrastruktur (Rechenzentren, Unterseekabel, WLAN-Router, Smartphones) mit Strom betrieben wird, der in weiten Teilen der Welt immer noch aus der Verbrennung von Kohle oder Gas stammt.',
20
+ },
21
+ {
22
+ question: 'Wie kann ich den CO₂-Ausstoß meiner Website reduzieren?',
23
+ answer: 'Der effektivste Weg ist die Reduzierung des Seitengewichts: Optimieren Sie Bilder (WebP), minimieren Sie CSS- und JS-Dateien, nutzen Sie Lazy Loading und wählen Sie einen Hosting-Anbieter, der erneuerbare Energien nutzt.',
24
+ },
25
+ ];
26
+
27
+ const howToData = [
28
+ {
29
+ name: 'URL eingeben',
30
+ text: 'Geben Sie die Webadresse der Seite, die Sie analysieren möchten, in das Eingabefeld ein.',
31
+ },
32
+ {
33
+ name: 'Analyse starten',
34
+ text: 'Klicken Sie auf die Schaltfläche "Analysieren", damit unser Tool das Gewicht der Ressourcen der Seite schätzen kann.',
35
+ },
36
+ {
37
+ name: 'Bewertung prüfen',
38
+ text: 'Erhalten Sie eine Note von A+ bis F basierend auf der Energieeffizienz der analysierten Website.',
39
+ },
40
+ {
41
+ name: 'Verbesserungen anwenden',
42
+ text: 'Nutzen Sie die Liste der personalisierten Tipps, um das Gewicht Ihrer Seite und deren Umweltauswirkungen zu reduzieren.',
43
+ },
44
+ ];
45
+
46
+ const faqSchema: WithContext<FAQPage> = {
47
+ '@context': 'https://schema.org',
48
+ '@type': 'FAQPage',
49
+ mainEntity: faqData.map((item) => ({
50
+ '@type': 'Question',
51
+ name: item.question,
52
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
53
+ })),
54
+ };
55
+
56
+ const howToSchema: WithContext<HowToThing> = {
57
+ '@context': 'https://schema.org',
58
+ '@type': 'HowTo',
59
+ name: title,
60
+ description,
61
+ step: howToData.map((step, i) => ({
62
+ '@type': 'HowToStep',
63
+ position: i + 1,
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: 'de',
78
+ };
79
+
80
+ export const content: DigitalCarbonLocaleContent = {
81
+ slug,
82
+ title,
83
+ description,
84
+ ui: {
85
+ headInputs: 'URL-Analyzer',
86
+ headResults: 'Ergebnis der Auswirkungen',
87
+ headTips: 'Optimierungstipps',
88
+ labelUrl: 'Seiten-URL',
89
+ btnAnalyze: 'Website analysieren',
90
+ btnAnalyzing: 'Analysiere...',
91
+ placeholderUrl: 'https://beispiel.de',
92
+ errorInvalidUrl: 'Bitte geben Sie eine gültige URL ein.',
93
+ errorFetchFailed: 'Die Website konnte nicht analysiert werden. Versuchen Sie eine andere URL.',
94
+
95
+ resultTitle: 'Digitaler CO₂-Fußabdruck',
96
+ resultSubtitle: 'Geschätzte Seiteneffizienz',
97
+ co2PerVisit: 'CO₂ pro Besuch',
98
+ energyPerVisit: 'Verbrauchte Energie',
99
+ co2Annual: 'Jährliches CO₂ (100k Besuche)',
100
+ impactTitle: 'Reale jährliche Auswirkung',
101
+ impactTrees: 'Benötigte Bäume',
102
+ impactKm: 'Gefahrene km (ca.)',
103
+ treesLabel: 'Bäume',
104
+ kmLabel: 'Kilometer',
105
+
106
+ ratingExcellent: 'Exzellent. Diese Seite verbraucht im Vergleich zum weltweiten Durchschnitt sehr wenig Energie.',
107
+ ratingVeryGood: 'Sehr gute Effizienz. Die Seite ist gut optimiert und hat minimale Auswirkungen.',
108
+ ratingGood: 'Akzeptable Effizienz. Es gibt Raum für Verbesserungen, liegt aber unter dem Durchschnitt.',
109
+ ratingAverage: 'Durchschnittlich. Die Seite verbraucht das, was im heutigen Web zu erwarten ist.',
110
+ ratingPoor: 'Über dem Durchschnitt. Erwägen Sie die Optimierung von Bildern, Skripten und Schriften.',
111
+ ratingVeryPoor: 'Hohe Auswirkung. Das Seitengewicht ist signifikant und sollte reduziert werden.',
112
+ ratingCritical: 'Sehr hohe Auswirkung. Es besteht eine große Chance, die Seitengröße zu reduzieren.',
113
+
114
+ tipImages: 'Konvertieren Sie Bilder in WebP oder AVIF, um deren Gewicht um bis zu 70 % zu reduzieren.',
115
+ tipCompression: 'Aktivieren Sie Brotli oder GZIP auf dem Server, um Ressourcen zu komprimieren.',
116
+ tipLazyLoading: 'Nutzen Sie Lazy Loading für Bilder und Videos außerhalb des Sichtfelds.',
117
+ tipHosting: 'Wählen Sie Hosting mit erneuerbarer Energie (Cloudflare, Netlify, Vercel).',
118
+ tipThirdParty: 'Entfernen Sie unnötige Analyse-Skripte und Drittanbieter-Widgets.',
119
+ tipFonts: 'Laden Sie nur die Schriftschnitte, die Sie tatsächlich verwenden.',
120
+ tipCache: 'Konfigurieren Sie HTTP-Cache-Header, um erneute Downloads zu vermeiden.',
121
+ },
122
+ faqTitle: 'Häufig gestellte Fragen',
123
+ faq: faqData,
124
+ howTo: howToData,
125
+ bibliographyTitle: 'Referenzen zur Web-Nachhaltigkeit',
126
+ seo: [
127
+ {
128
+ type: 'title',
129
+ text: 'Rechner für den digitalen CO₂-Fußabdruck: Wie viel CO₂ Ihre Website erzeugt',
130
+ level: 2,
131
+ },
132
+ {
133
+ type: 'paragraph',
134
+ html: 'Entdecken Sie die realen Umweltauswirkungen jeder Webseite. Analysieren Sie deren Gewicht, schätzen Sie den CO₂-Ausstoß pro Besuch und lernen Sie, wie Sie die digitale Verschmutzung Ihrer Projekte reduzieren können.',
135
+ },
136
+ {
137
+ type: 'title',
138
+ text: 'Was ist der digitale CO₂-Fußabdruck einer Website?',
139
+ level: 2,
140
+ },
141
+ {
142
+ type: 'paragraph',
143
+ html: 'Jedes Mal, wenn Sie eine Webseite öffnen, verbrauchen Ihr Gerät, Ihr Heimrouter, Unterseekabel und Server auf der anderen Seite der Welt Strom. Dieser Strom wird immer noch zu einem großen Teil durch die Verbrennung fossiler Brennstoffe erzeugt. Das Ergebnis: Eine reale Menge an <strong>CO₂, die bei jedem Besuch in die Atmosphäre emittiert wird</strong>.',
144
+ },
145
+ {
146
+ type: 'paragraph',
147
+ html: 'Der <strong>digitale CO₂-Fußabdruck</strong> einer Website wird in Gramm CO₂-Äquivalent (gCO₂e) pro Besuch gemessen. Eine durchschnittliche Website erzeugt etwa 0,5 g CO₂ pro Ladevorgang. Obwohl das unbedeutend scheint, kann eine Seite mit 100.000 monatlichen Besuchen mehr als 600 kg CO₂ pro Jahr emittieren – was einer Fahrt von mehr als 3.000 km mit einem Benziner entspricht.',
148
+ },
149
+ {
150
+ type: 'title',
151
+ text: 'Wie wird das CO₂ einer Website berechnet?',
152
+ level: 2,
153
+ },
154
+ {
155
+ type: 'paragraph',
156
+ html: 'Das verwendete Berechnungsmodell basiert auf den Standards des <strong>Sustainable Web Design Model</strong>, das den Energieverbrauch in vier Hauptsegmente unterteilt:',
157
+ },
158
+ {
159
+ type: 'card',
160
+ title: 'Datentransfer',
161
+ html: 'Das Gesamtgewicht der Seite bestimmt, wie viele Gigabyte übertragen werden. Der Standard sieht <code>0,81 kWh/GB</code> für die Netzwerkinfrastruktur vor.',
162
+ },
163
+ {
164
+ type: 'card',
165
+ title: 'Nutzergerät',
166
+ html: 'Der Computer oder das Smartphone, das die Seite empfängt, verbraucht Energie. Dieser wird auf <code>0,52 kWh/GB</code> verarbeiteter Daten geschätzt.',
167
+ },
168
+ {
169
+ type: 'card',
170
+ title: 'Kohlenstoffintensität',
171
+ html: 'Der globale Referenzwert von <code>442 gCO₂/kWh</code> wird verwendet, um den Energieverbrauch in reale Kohlenstoffemissionen umzurechnen.',
172
+ },
173
+ {
174
+ type: 'card',
175
+ title: 'Caching Faktor',
176
+ html: 'Das Modell wendet einen Faktor von <code>0,75</code> an, unter der Annahme, dass 25 % der Nutzer die Ressourcen bereits im Cache haben.',
177
+ },
178
+ {
179
+ type: 'title',
180
+ text: 'Was bedeutet die Effizienzbewertung?',
181
+ level: 2,
182
+ },
183
+ {
184
+ type: 'list',
185
+ items: [
186
+ '<strong>A+ und A:</strong> Weniger als 0,2 g CO₂. Sehr leichte und optimierte Seiten.',
187
+ '<strong>B:</strong> Zwischen 0.2 und 0.5 g. Unter dem globalen Durchschnitt.',
188
+ '<strong>C:</strong> Zwischen 0.5 und 1 g. Der Durchschnitt im aktuellen Web.',
189
+ '<strong>D und E:</strong> Zwischen 1 und 4 g. Schwere Seiten mit relevanten Auswirkungen.',
190
+ '<strong>F:</strong> Mehr als 4 g pro Besuch. Sehr hohe Auswirkungen.',
191
+ ],
192
+ },
193
+ {
194
+ type: 'title',
195
+ text: 'So reduzieren Sie den CO₂-Fußabdruck Ihrer Website',
196
+ level: 2,
197
+ },
198
+ {
199
+ type: 'card',
200
+ title: 'Bildoptimierung',
201
+ html: 'Verwenden Sie Formate wie <strong>WebP oder AVIF</strong>, um die Größe um bis zu 80 % zu reduzieren, ohne spürbaren Qualitätsverlust.',
202
+ },
203
+ {
204
+ type: 'card',
205
+ title: 'Server Komprimierung',
206
+ html: 'Die Aktivierung von <strong>Brotli oder GZIP</strong> reduziert die Größe von Textdateien um bis zu 70 %.',
207
+ },
208
+ {
209
+ type: 'card',
210
+ title: 'Nachhaltiges Hosting',
211
+ html: 'Die Wahl eines Anbieters mit <strong>zertifizierter erneuerbarer Energie</strong> kann die Auswirkungen um fast 100 % reduzieren.',
212
+ },
213
+ {
214
+ type: 'card',
215
+ title: 'Cache und CDN',
216
+ html: 'Konfigurieren Sie <strong>lange Cache-Header</strong>, um unnötige erneute Downloads zu vermeiden.',
217
+ },
218
+ {
219
+ type: 'title',
220
+ text: 'Die realen Auswirkungen des Internets auf das Klima',
221
+ level: 2,
222
+ },
223
+ {
224
+ type: 'paragraph',
225
+ html: 'Das Internet macht zwischen <strong>2 % und 4 % der weltweiten CO₂-Emissionen</strong> aus – ein Wert, der mit der Luftfahrtindustrie vergleichbar ist. Jedes Kilobyte, das Sie einsparen, macht nicht nur Ihre Website schneller: Es reduziert messbar die digitale Verschmutzung.',
226
+ },
227
+ ],
228
+ bibliography: [
229
+ { name: 'Sustainable Web Design Model', url: 'https://sustainablewebdesign.org/' },
230
+ { name: 'Website Carbon Calculator', url: 'https://www.websitecarbon.com/' },
231
+ { name: 'The Green Web Foundation', url: 'https://www.thegreenwebfoundation.org/' },
232
+ { name: 'W3C - Web Sustainability Guidelines', url: 'https://w3c.github.io/sustyweb/' },
233
+ ],
234
+ schemas: [faqSchema, howToSchema, appSchema],
235
+ };