@jjlmoya/utils-nature 1.23.0 → 1.25.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 (65) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/es.ts +1 -1
  3. package/src/category/i18n/fr.ts +110 -110
  4. package/src/category/i18n/it.ts +1 -1
  5. package/src/category/i18n/pl.ts +1 -1
  6. package/src/category/i18n/pt.ts +1 -1
  7. package/src/category/i18n/ru.ts +110 -110
  8. package/src/category/seo.astro +1 -1
  9. package/src/components/PreviewNavSidebar.astro +1 -1
  10. package/src/components/PreviewToolbar.astro +1 -1
  11. package/src/data.ts +1 -1
  12. package/src/env.d.ts +1 -1
  13. package/src/layouts/PreviewLayout.astro +117 -117
  14. package/src/pages/[locale]/[slug].astro +164 -164
  15. package/src/pages/index.astro +1 -1
  16. package/src/tests/category_seo_quality.test.ts +74 -0
  17. package/src/tests/faq_count.test.ts +19 -19
  18. package/src/tests/mocks/astro_mock.js +1 -1
  19. package/src/tests/no_en_dash.test.ts +71 -71
  20. package/src/tests/no_h1_in_components.test.ts +1 -1
  21. package/src/tests/seo_length.test.ts +23 -23
  22. package/src/tests/seo_parity.test.ts +2 -2
  23. package/src/tests/seo_translation_completeness.test.ts +18 -12
  24. package/src/tests/spanish_leakage.test.ts +175 -175
  25. package/src/tool/cricketThermometer/i18n/de.ts +169 -169
  26. package/src/tool/cricketThermometer/i18n/en.ts +169 -169
  27. package/src/tool/cricketThermometer/i18n/es.ts +169 -169
  28. package/src/tool/cricketThermometer/i18n/fr.ts +169 -169
  29. package/src/tool/cricketThermometer/i18n/id.ts +169 -169
  30. package/src/tool/cricketThermometer/i18n/it.ts +169 -169
  31. package/src/tool/cricketThermometer/i18n/ja.ts +169 -169
  32. package/src/tool/cricketThermometer/i18n/ko.ts +169 -169
  33. package/src/tool/cricketThermometer/i18n/nl.ts +169 -169
  34. package/src/tool/cricketThermometer/i18n/pl.ts +169 -169
  35. package/src/tool/cricketThermometer/i18n/pt.ts +169 -169
  36. package/src/tool/cricketThermometer/i18n/ru.ts +169 -169
  37. package/src/tool/cricketThermometer/i18n/sv.ts +169 -169
  38. package/src/tool/cricketThermometer/i18n/tr.ts +169 -169
  39. package/src/tool/cricketThermometer/i18n/zh.ts +169 -169
  40. package/src/tool/cricketThermometer/seo.astro +15 -15
  41. package/src/tool/digitalCarbon/i18n/de.ts +229 -229
  42. package/src/tool/digitalCarbon/i18n/fr.ts +229 -229
  43. package/src/tool/digitalCarbon/i18n/ru.ts +229 -229
  44. package/src/tool/digitalCarbon/seo.astro +15 -15
  45. package/src/tool/rainHarvester/i18n/de.ts +167 -167
  46. package/src/tool/rainHarvester/i18n/en.ts +167 -167
  47. package/src/tool/rainHarvester/i18n/es.ts +167 -167
  48. package/src/tool/rainHarvester/i18n/fr.ts +167 -167
  49. package/src/tool/rainHarvester/i18n/id.ts +167 -167
  50. package/src/tool/rainHarvester/i18n/it.ts +167 -167
  51. package/src/tool/rainHarvester/i18n/ja.ts +167 -167
  52. package/src/tool/rainHarvester/i18n/ko.ts +167 -167
  53. package/src/tool/rainHarvester/i18n/nl.ts +167 -167
  54. package/src/tool/rainHarvester/i18n/pl.ts +167 -167
  55. package/src/tool/rainHarvester/i18n/pt.ts +167 -167
  56. package/src/tool/rainHarvester/i18n/ru.ts +167 -167
  57. package/src/tool/rainHarvester/i18n/sv.ts +167 -167
  58. package/src/tool/rainHarvester/i18n/tr.ts +167 -167
  59. package/src/tool/rainHarvester/i18n/zh.ts +167 -167
  60. package/src/tool/rainHarvester/seo.astro +15 -15
  61. package/src/tool/seedCalculator/i18n/fr.ts +197 -197
  62. package/src/tool/seedCalculator/i18n/pl.ts +197 -197
  63. package/src/tool/seedCalculator/i18n/ru.ts +197 -197
  64. package/src/tool/seedCalculator/seo.astro +15 -15
  65. package/src/types.ts +1 -1
@@ -1,167 +1,167 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import { bibliography } from '../bibliography';
3
- import type { RainHarvesterLocaleContent } from '../index';
4
-
5
- const slug = 'regenwasser-ernte-rechner';
6
- const title = 'Regenwasser Ernte Rechner';
7
- const description = 'Berechnen Sie, wie viel Regenwasser Sie von Ihrem Dach sammeln können, und dimensionieren Sie Ihren Speichertank.';
8
-
9
- const faqData = [
10
- {
11
- question: 'Wie viel Wasser kann ich tatsächlich von meinem Dach sammeln?',
12
- answer: 'Als Faustregel gilt: Pro Quadratmeter Dachfläche und Millimeter Regen können Sie etwa 1 Liter Wasser sammeln. Es entstehen jedoch Verluste durch Verdunstung und Filtration, die mit dem "Abflussbeiwert" angepasst werden.',
13
- },
14
- {
15
- question: 'Was ist der Abflussbeiwert?',
16
- answer: 'Dies ist ein Prozentsatz, der angibt, wie viel Wasser je nach Dachmaterial verloren geht. Ein Metall- oder Ziegeldach ist sehr effizient (0,85-0,95), während ein Kies- oder Erddach viel weniger effizient ist (0,1-0,3).',
17
- },
18
- {
19
- question: 'Wie dimensioniere ich den Speichertank?',
20
- answer: 'Sie sollten das maximal erwartete Regenvolumen in einem Monat berechnen und es mit Ihrem geschätzten monatlichen Verbrauch abgleichen. Ein zu kleiner Tank läuft bei Stürmen über, und ein zu großer Tank ist unnötig teuer.',
21
- },
22
- {
23
- question: 'Ist gesammeltes Regenwasser als Trinkwasser sicher?',
24
- answer: 'Nicht direkt. Wasser führt Staub, Vogelkot und Partikel aus der Luft mit sich. Für den menschlichen Verzehr muss es Sedimentfilter, Aktivkohle und eine Desinfektion mittels UV-Licht oder Chlor durchlaufen.',
25
- },
26
- ];
27
-
28
- const howToData = [
29
- {
30
- name: 'Horizontale Fläche messen',
31
- text: 'Messen Sie die Länge und Breite Ihrer Dachbasis (nicht die geneigte Fläche, sondern die Fläche, die Schatten auf den Boden wirft).',
32
- },
33
- {
34
- name: 'Lokalen Niederschlag prüfen',
35
- text: 'Suchen Sie beim nationalen Wetterdienst nach dem durchschnittlichen jährlichen oder monatlichen Niederschlag in Ihrer Region in Millimetern (mm).',
36
- },
37
- {
38
- name: 'Materialeffizienz anwenden',
39
- text: 'Wählen Sie Ihr Dachmaterial in unserem Rechner aus, um das Wasser abzuziehen, das durch Absorption oder Hitze verloren geht.',
40
- },
41
- {
42
- name: 'Benötigtes Volumen berechnen',
43
- text: 'Nutzen Sie das Ergebnis des jährlichen Ertrags in Litern, um einen Tank zu wählen, der für Trockenperioden mindestens 20-30 % der Gesamternte speichern kann.',
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, i) => ({
63
- '@type': 'HowToStep',
64
- position: i + 1,
65
- name: step.name,
66
- text: step.text,
67
- })),
68
- };
69
-
70
- const appSchema: WithContext<SoftwareApplication> = {
71
- '@context': 'https://schema.org',
72
- '@type': 'SoftwareApplication',
73
- name: title,
74
- description,
75
- applicationCategory: 'UtilityApplication',
76
- operatingSystem: 'All',
77
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
78
- inLanguage: 'de',
79
- };
80
-
81
- export const content: RainHarvesterLocaleContent = {
82
- slug,
83
- title,
84
- description,
85
- ui: {
86
- headInputs: 'Dach-Einstellungen',
87
- headResults: 'Ernte-Potenzial',
88
- labelArea: 'Dachfläche',
89
- labelRainfall: 'Jährlicher Niederschlag',
90
- labelMaterial: 'Dachmaterial',
91
- unitM2: 'm²',
92
- unitMm: 'mm',
93
- unitLiters: 'Liter',
94
- helpRainfall: 'Unbekannt? Suchen Sie bei Google nach "durchschnittlicher jährlicher Niederschlag [Ihre Stadt]".',
95
- efficiencyTitle: 'Effizienzfaktor',
96
- efficiencyNote: 'Für Filter und Verdunstung wird ein Verlust von 10 % angesetzt.',
97
- resultTitle: 'Jährliches Erntepotenzial',
98
- equivalenciesTitle: 'Praktische Entsprechungen',
99
- labelFlushes: 'Toilettenspülungen',
100
- labelShowers: 'Duschen (10 Min.)',
101
- labelGarden: 'Gartenbewässerung',
102
- gardenArea: '(50m²)',
103
- materialMetal: 'Metall / Glasierte Ziegel',
104
- materialClay: 'Dachziegel / Ton',
105
- materialConcrete: 'Beton / Asphalt',
106
- materialGravel: 'Kies / Gründach',
107
- },
108
- seo: [
109
- {
110
- type: 'title',
111
- text: 'Regenwassernutzung: Autonomie und Nachhaltigkeit',
112
- level: 2,
113
- },
114
- {
115
- type: 'paragraph',
116
- html: 'Die meisten Hausbesitzer sind sich des Potenzials ihres eigenen Daches nicht bewusst. Ein Standarddach kann jedes Jahr Tausende Liter kostenloses Wasser auffangen. Dieses Tool quantifiziert dieses Potenzial, sodass Sie genau berechnen können, wie viel Wasser Sie "ernten" können, und die ideale Tankgröße für die Speicherung bestimmen können.',
117
- },
118
- {
119
- type: 'title',
120
- text: 'Berechnungslogik',
121
- level: 3,
122
- },
123
- {
124
- type: 'paragraph',
125
- html: 'Die Grundformel für die Regenwassersammlung ist einfach, aber wirkungsvoll:',
126
- },
127
- {
128
- type: 'paragraph',
129
- html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Volumen = Fläche × Niederschlag × Abflussbeiwert × Filtereffizienz</code>',
130
- },
131
- {
132
- type: 'list',
133
- items: [
134
- '<strong>Fläche:</strong> Ihre Dachgrundfläche (projizierte Länge × Breite).',
135
- '<strong>Niederschlag:</strong> Fallender Regen in Millimetern.',
136
- '<strong>Beiwert:</strong> Wie viel Wasser Ihr Dach verliert (z. B. Absorption).',
137
- '<strong>Effizienz:</strong> Verluste in Vor-Tank-Filtern (~10 %).',
138
- ],
139
- },
140
- {
141
- type: 'title',
142
- text: 'Warum Regenwasser sammeln?',
143
- level: 3,
144
- },
145
- {
146
- type: 'list',
147
- items: [
148
- '<strong>Ersparnis:</strong> Reduzieren Sie Ihre Wasserrechnung erheblich.',
149
- '<strong>Gartenarbeit:</strong> Pflanzen lieben Wasser ohne Chlor oder Kalk.',
150
- '<strong>Resilienz:</strong> Behalten Sie eine Notreserve für den Fall von Unterbrechungen.',
151
- ],
152
- },
153
- {
154
- type: 'title',
155
- text: 'Dimensionierung des Tanks',
156
- level: 2,
157
- },
158
- {
159
- type: 'paragraph',
160
- html: 'Der häufigste Fehler ist der Kauf eines Tanks, der nur auf dem Budget basiert. Wenn er zu klein ist, verschwenden Sie Tausende Liter durch Überlauf. Wenn er zu groß ist, geben Sie unnötig Geld aus. Eine allgemeine Regel ist, eine Kapazität für die Speicherung von <strong>3 Monaten</strong> des durchschnittlichen Niederschlags in Ihrer Region zu haben, um Trockenperioden zu überbrücken.',
161
- },
162
- ],
163
- faq: faqData,
164
- howTo: howToData,
165
- bibliography,
166
- schemas: [faqSchema, howToSchema, appSchema],
167
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { RainHarvesterLocaleContent } from '../index';
4
+
5
+ const slug = 'regenwasser-ernte-rechner';
6
+ const title = 'Regenwasser Ernte Rechner';
7
+ const description = 'Berechnen Sie, wie viel Regenwasser Sie von Ihrem Dach sammeln können, und dimensionieren Sie Ihren Speichertank.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Wie viel Wasser kann ich tatsächlich von meinem Dach sammeln?',
12
+ answer: 'Als Faustregel gilt: Pro Quadratmeter Dachfläche und Millimeter Regen können Sie etwa 1 Liter Wasser sammeln. Es entstehen jedoch Verluste durch Verdunstung und Filtration, die mit dem "Abflussbeiwert" angepasst werden.',
13
+ },
14
+ {
15
+ question: 'Was ist der Abflussbeiwert?',
16
+ answer: 'Dies ist ein Prozentsatz, der angibt, wie viel Wasser je nach Dachmaterial verloren geht. Ein Metall- oder Ziegeldach ist sehr effizient (0,85-0,95), während ein Kies- oder Erddach viel weniger effizient ist (0,1-0,3).',
17
+ },
18
+ {
19
+ question: 'Wie dimensioniere ich den Speichertank?',
20
+ answer: 'Sie sollten das maximal erwartete Regenvolumen in einem Monat berechnen und es mit Ihrem geschätzten monatlichen Verbrauch abgleichen. Ein zu kleiner Tank läuft bei Stürmen über, und ein zu großer Tank ist unnötig teuer.',
21
+ },
22
+ {
23
+ question: 'Ist gesammeltes Regenwasser als Trinkwasser sicher?',
24
+ answer: 'Nicht direkt. Wasser führt Staub, Vogelkot und Partikel aus der Luft mit sich. Für den menschlichen Verzehr muss es Sedimentfilter, Aktivkohle und eine Desinfektion mittels UV-Licht oder Chlor durchlaufen.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Horizontale Fläche messen',
31
+ text: 'Messen Sie die Länge und Breite Ihrer Dachbasis (nicht die geneigte Fläche, sondern die Fläche, die Schatten auf den Boden wirft).',
32
+ },
33
+ {
34
+ name: 'Lokalen Niederschlag prüfen',
35
+ text: 'Suchen Sie beim nationalen Wetterdienst nach dem durchschnittlichen jährlichen oder monatlichen Niederschlag in Ihrer Region in Millimetern (mm).',
36
+ },
37
+ {
38
+ name: 'Materialeffizienz anwenden',
39
+ text: 'Wählen Sie Ihr Dachmaterial in unserem Rechner aus, um das Wasser abzuziehen, das durch Absorption oder Hitze verloren geht.',
40
+ },
41
+ {
42
+ name: 'Benötigtes Volumen berechnen',
43
+ text: 'Nutzen Sie das Ergebnis des jährlichen Ertrags in Litern, um einen Tank zu wählen, der für Trockenperioden mindestens 20-30 % der Gesamternte speichern kann.',
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, i) => ({
63
+ '@type': 'HowToStep',
64
+ position: i + 1,
65
+ name: step.name,
66
+ text: step.text,
67
+ })),
68
+ };
69
+
70
+ const appSchema: WithContext<SoftwareApplication> = {
71
+ '@context': 'https://schema.org',
72
+ '@type': 'SoftwareApplication',
73
+ name: title,
74
+ description,
75
+ applicationCategory: 'UtilityApplication',
76
+ operatingSystem: 'All',
77
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
78
+ inLanguage: 'de',
79
+ };
80
+
81
+ export const content: RainHarvesterLocaleContent = {
82
+ slug,
83
+ title,
84
+ description,
85
+ ui: {
86
+ headInputs: 'Dach-Einstellungen',
87
+ headResults: 'Ernte-Potenzial',
88
+ labelArea: 'Dachfläche',
89
+ labelRainfall: 'Jährlicher Niederschlag',
90
+ labelMaterial: 'Dachmaterial',
91
+ unitM2: 'm²',
92
+ unitMm: 'mm',
93
+ unitLiters: 'Liter',
94
+ helpRainfall: 'Unbekannt? Suchen Sie bei Google nach "durchschnittlicher jährlicher Niederschlag [Ihre Stadt]".',
95
+ efficiencyTitle: 'Effizienzfaktor',
96
+ efficiencyNote: 'Für Filter und Verdunstung wird ein Verlust von 10 % angesetzt.',
97
+ resultTitle: 'Jährliches Erntepotenzial',
98
+ equivalenciesTitle: 'Praktische Entsprechungen',
99
+ labelFlushes: 'Toilettenspülungen',
100
+ labelShowers: 'Duschen (10 Min.)',
101
+ labelGarden: 'Gartenbewässerung',
102
+ gardenArea: '(50m²)',
103
+ materialMetal: 'Metall / Glasierte Ziegel',
104
+ materialClay: 'Dachziegel / Ton',
105
+ materialConcrete: 'Beton / Asphalt',
106
+ materialGravel: 'Kies / Gründach',
107
+ },
108
+ seo: [
109
+ {
110
+ type: 'title',
111
+ text: 'Regenwassernutzung: Autonomie und Nachhaltigkeit',
112
+ level: 2,
113
+ },
114
+ {
115
+ type: 'paragraph',
116
+ html: 'Die meisten Hausbesitzer sind sich des Potenzials ihres eigenen Daches nicht bewusst. Ein Standarddach kann jedes Jahr Tausende Liter kostenloses Wasser auffangen. Dieses Tool quantifiziert dieses Potenzial, sodass Sie genau berechnen können, wie viel Wasser Sie "ernten" können, und die ideale Tankgröße für die Speicherung bestimmen können.',
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Berechnungslogik',
121
+ level: 3,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'Die Grundformel für die Regenwassersammlung ist einfach, aber wirkungsvoll:',
126
+ },
127
+ {
128
+ type: 'paragraph',
129
+ html: '<code style="display:block;padding:1rem;background:var(-bg-alt);border-radius:0.5rem;margin:1rem 0;font-family:monospace;">Volumen = Fläche × Niederschlag × Abflussbeiwert × Filtereffizienz</code>',
130
+ },
131
+ {
132
+ type: 'list',
133
+ items: [
134
+ '<strong>Fläche:</strong> Ihre Dachgrundfläche (projizierte Länge × Breite).',
135
+ '<strong>Niederschlag:</strong> Fallender Regen in Millimetern.',
136
+ '<strong>Beiwert:</strong> Wie viel Wasser Ihr Dach verliert (z. B. Absorption).',
137
+ '<strong>Effizienz:</strong> Verluste in Vor-Tank-Filtern (~10 %).',
138
+ ],
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Warum Regenwasser sammeln?',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ items: [
148
+ '<strong>Ersparnis:</strong> Reduzieren Sie Ihre Wasserrechnung erheblich.',
149
+ '<strong>Gartenarbeit:</strong> Pflanzen lieben Wasser ohne Chlor oder Kalk.',
150
+ '<strong>Resilienz:</strong> Behalten Sie eine Notreserve für den Fall von Unterbrechungen.',
151
+ ],
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Dimensionierung des Tanks',
156
+ level: 2,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: 'Der häufigste Fehler ist der Kauf eines Tanks, der nur auf dem Budget basiert. Wenn er zu klein ist, verschwenden Sie Tausende Liter durch Überlauf. Wenn er zu groß ist, geben Sie unnötig Geld aus. Eine allgemeine Regel ist, eine Kapazität für die Speicherung von <strong>3 Monaten</strong> des durchschnittlichen Niederschlags in Ihrer Region zu haben, um Trockenperioden zu überbrücken.',
161
+ },
162
+ ],
163
+ faq: faqData,
164
+ howTo: howToData,
165
+ bibliography,
166
+ schemas: [faqSchema, howToSchema, appSchema],
167
+ };