@jjlmoya/utils-nature 1.23.0 → 1.24.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 (64) 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/spanish_leakage.test.ts +175 -175
  24. package/src/tool/cricketThermometer/i18n/de.ts +169 -169
  25. package/src/tool/cricketThermometer/i18n/en.ts +169 -169
  26. package/src/tool/cricketThermometer/i18n/es.ts +169 -169
  27. package/src/tool/cricketThermometer/i18n/fr.ts +169 -169
  28. package/src/tool/cricketThermometer/i18n/id.ts +169 -169
  29. package/src/tool/cricketThermometer/i18n/it.ts +169 -169
  30. package/src/tool/cricketThermometer/i18n/ja.ts +169 -169
  31. package/src/tool/cricketThermometer/i18n/ko.ts +169 -169
  32. package/src/tool/cricketThermometer/i18n/nl.ts +169 -169
  33. package/src/tool/cricketThermometer/i18n/pl.ts +169 -169
  34. package/src/tool/cricketThermometer/i18n/pt.ts +169 -169
  35. package/src/tool/cricketThermometer/i18n/ru.ts +169 -169
  36. package/src/tool/cricketThermometer/i18n/sv.ts +169 -169
  37. package/src/tool/cricketThermometer/i18n/tr.ts +169 -169
  38. package/src/tool/cricketThermometer/i18n/zh.ts +169 -169
  39. package/src/tool/cricketThermometer/seo.astro +15 -15
  40. package/src/tool/digitalCarbon/i18n/de.ts +229 -229
  41. package/src/tool/digitalCarbon/i18n/fr.ts +229 -229
  42. package/src/tool/digitalCarbon/i18n/ru.ts +229 -229
  43. package/src/tool/digitalCarbon/seo.astro +15 -15
  44. package/src/tool/rainHarvester/i18n/de.ts +167 -167
  45. package/src/tool/rainHarvester/i18n/en.ts +167 -167
  46. package/src/tool/rainHarvester/i18n/es.ts +167 -167
  47. package/src/tool/rainHarvester/i18n/fr.ts +167 -167
  48. package/src/tool/rainHarvester/i18n/id.ts +167 -167
  49. package/src/tool/rainHarvester/i18n/it.ts +167 -167
  50. package/src/tool/rainHarvester/i18n/ja.ts +167 -167
  51. package/src/tool/rainHarvester/i18n/ko.ts +167 -167
  52. package/src/tool/rainHarvester/i18n/nl.ts +167 -167
  53. package/src/tool/rainHarvester/i18n/pl.ts +167 -167
  54. package/src/tool/rainHarvester/i18n/pt.ts +167 -167
  55. package/src/tool/rainHarvester/i18n/ru.ts +167 -167
  56. package/src/tool/rainHarvester/i18n/sv.ts +167 -167
  57. package/src/tool/rainHarvester/i18n/tr.ts +167 -167
  58. package/src/tool/rainHarvester/i18n/zh.ts +167 -167
  59. package/src/tool/rainHarvester/seo.astro +15 -15
  60. package/src/tool/seedCalculator/i18n/fr.ts +197 -197
  61. package/src/tool/seedCalculator/i18n/pl.ts +197 -197
  62. package/src/tool/seedCalculator/i18n/ru.ts +197 -197
  63. package/src/tool/seedCalculator/seo.astro +15 -15
  64. 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 = 'regenwater-opvang-calculator';
6
- const title = 'Regenwater opvang calculator';
7
- const description = 'Bereken hoeveel regenwater u van uw dak kunt opvangen en bepaal de grootte van uw opslagtank.';
8
-
9
- const faqData = [
10
- {
11
- question: 'Hoeveel water kan ik daadwerkelijk van mijn dak opvangen?',
12
- answer: 'De algemene regel is dat u voor elke vierkante meter dak en elke millimeter regen ongeveer 1 liter water kunt opvangen. Er zijn echter verliezen door verdamping en filtratie, aangepast met de "afvloeiingscoëfficiënt".',
13
- },
14
- {
15
- question: 'Wat is de afvloeiingscoëfficiënt?',
16
- answer: 'Het is een percentage dat aangeeft hoeveel water er verloren gaat, afhankelijk van het dakmateriaal. Een metalen of pannendak is zeer efficiënt (0,85-0,95), terwijl een grind- of gronddak veel minder efficiënt is (0,1-0,3).',
17
- },
18
- {
19
- question: 'Hoe bepaal ik de grootte van de opslagtank?',
20
- answer: 'U moet het maximaal verwachte regenvolume in een maand berekenen en dit afzetten tegen uw geschatte maandelijkse verbruik. Een te kleine tank zal overstromen bij stormen, en een te grote tank zal onnodig duur zijn.',
21
- },
22
- {
23
- question: 'Is het veilig om opgevangen regenwater te drinken?',
24
- answer: 'Niet direct. Water voert stof, vogelpoep en deeltjes uit de lucht mee. Voor menselijke consumptie moet het door sedimentfilters, actieve kool en desinfectie met UV-licht of chloor gaan.',
25
- },
26
- ];
27
-
28
- const howToData = [
29
- {
30
- name: 'Meet het horizontale oppervlak',
31
- text: 'Meet de lengte en breedte van uw dakbasis (niet het schuine oppervlak, maar het gebied dat schaduw werpt op de grond).',
32
- },
33
- {
34
- name: 'Controleer de lokale neerslag',
35
- text: 'Zoek bij de nationale meteorologische dienst naar de gemiddelde jaarlijkse of maandelijkse neerslag in uw regio in millimeters (mm).',
36
- },
37
- {
38
- name: 'Pas materiaalefficiëntie toe',
39
- text: 'Selecteer uw dakmateriaal in onze calculator om het water af te trekken dat verloren gaat door absorptie of hitte.',
40
- },
41
- {
42
- name: 'Bereken het benodigde volume',
43
- text: 'Gebruik het jaarlijkse resultaat in liters om een tank te kiezen die ten minste 20-30% van de totale oogst kan opslaan voor droge periodes.',
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: 'nl',
79
- };
80
-
81
- export const content: RainHarvesterLocaleContent = {
82
- slug,
83
- title,
84
- description,
85
- ui: {
86
- headInputs: 'Dakinstellingen',
87
- headResults: 'Opvangpotentieel',
88
- labelArea: 'Dakoppervlak',
89
- labelRainfall: 'Jaarlijkse neerslag',
90
- labelMaterial: 'Dakmateriaal',
91
- unitM2: 'm²',
92
- unitMm: 'mm',
93
- unitLiters: 'Liter',
94
- helpRainfall: 'Weet u het niet? Zoek op Google naar "gemiddelde jaarlijkse neerslag [uw stad]".',
95
- efficiencyTitle: 'Efficiëntiefactor',
96
- efficiencyNote: 'Er wordt een verlies van 10% toegepast voor filters en verdamping.',
97
- resultTitle: 'Jaarlijks opvangpotentieel',
98
- equivalenciesTitle: 'Praktische equivalenten',
99
- labelFlushes: 'Doortrekken toilet',
100
- labelShowers: 'Douchebeurten (10 min)',
101
- labelGarden: 'Tuin besproeien',
102
- gardenArea: '(50m²)',
103
- materialMetal: 'Metaal / Geglazuurde pannen',
104
- materialClay: 'Dakkiezel / Klei',
105
- materialConcrete: 'Beton / Asfalt',
106
- materialGravel: 'Grind / Groendak',
107
- },
108
- seo: [
109
- {
110
- type: 'title',
111
- text: 'Regenwater opvangen: autonomie en duurzaamheid',
112
- level: 2,
113
- },
114
- {
115
- type: 'paragraph',
116
- html: 'De meeste huiseigenaren zijn zich niet bewust van het potentieel van hun eigen dak. Een standaard dak kan elk jaar duizenden liters gratis water opvangen. Deze tool kwantificeert dat potentieel, waardoor u precies kunt berekenen hoeveel water u kunt "oogsten" en de ideale tankgrootte voor opslag kunt bepalen.',
117
- },
118
- {
119
- type: 'title',
120
- text: 'Berekeningslogica',
121
- level: 3,
122
- },
123
- {
124
- type: 'paragraph',
125
- html: 'De basisformule voor regenwateropvang is eenvoudig maar krachtig:',
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;">Volume = Oppervlak × Neerslag × Afvloeiingscoëfficiënt × Filterefficiëntie</code>',
130
- },
131
- {
132
- type: 'list',
133
- items: [
134
- '<strong>Oppervlak:</strong> Uw dakvoetafdruk (geprojecteerde lengte × breedte).',
135
- '<strong>Neerslag:</strong> Vallende regen in millimeters.',
136
- '<strong>Coëfficiënt:</strong> Hoeveel water uw dak verliest (bijv. absorptie).',
137
- '<strong>Efficiëntie:</strong> Verliezen in filters vóór de tank (~10%).',
138
- ],
139
- },
140
- {
141
- type: 'title',
142
- text: 'Waarom regenwater opvangen?',
143
- level: 3,
144
- },
145
- {
146
- type: 'list',
147
- items: [
148
- '<strong>Besparing:</strong> Verlaag uw waterrekening aanzienlijk.',
149
- '<strong>Tuinieren:</strong> Planten houden van water zonder chloor of kalk.',
150
- '<strong>Veerkracht:</strong> Houd een noodreserve aan voor het geval de watertoevoer wordt onderbroken.',
151
- ],
152
- },
153
- {
154
- type: 'title',
155
- text: 'Tankgrootte bepalen',
156
- level: 2,
157
- },
158
- {
159
- type: 'paragraph',
160
- html: 'De meest gemaakte fout is het kopen van een tank die alleen is gebaseerd op het budget. Als hij te klein is, verspilt u duizenden liters door overloop. Als hij te groot is, geeft u onnodig geld uit. Een algemene regel is om capaciteit te hebben om <strong>3 maanden</strong> aan gemiddelde neerslag in uw regio op te slaan, zodat u drogere periodes kunt overbruggen.',
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 = 'regenwater-opvang-calculator';
6
+ const title = 'Regenwater opvang calculator';
7
+ const description = 'Bereken hoeveel regenwater u van uw dak kunt opvangen en bepaal de grootte van uw opslagtank.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Hoeveel water kan ik daadwerkelijk van mijn dak opvangen?',
12
+ answer: 'De algemene regel is dat u voor elke vierkante meter dak en elke millimeter regen ongeveer 1 liter water kunt opvangen. Er zijn echter verliezen door verdamping en filtratie, aangepast met de "afvloeiingscoëfficiënt".',
13
+ },
14
+ {
15
+ question: 'Wat is de afvloeiingscoëfficiënt?',
16
+ answer: 'Het is een percentage dat aangeeft hoeveel water er verloren gaat, afhankelijk van het dakmateriaal. Een metalen of pannendak is zeer efficiënt (0,85-0,95), terwijl een grind- of gronddak veel minder efficiënt is (0,1-0,3).',
17
+ },
18
+ {
19
+ question: 'Hoe bepaal ik de grootte van de opslagtank?',
20
+ answer: 'U moet het maximaal verwachte regenvolume in een maand berekenen en dit afzetten tegen uw geschatte maandelijkse verbruik. Een te kleine tank zal overstromen bij stormen, en een te grote tank zal onnodig duur zijn.',
21
+ },
22
+ {
23
+ question: 'Is het veilig om opgevangen regenwater te drinken?',
24
+ answer: 'Niet direct. Water voert stof, vogelpoep en deeltjes uit de lucht mee. Voor menselijke consumptie moet het door sedimentfilters, actieve kool en desinfectie met UV-licht of chloor gaan.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Meet het horizontale oppervlak',
31
+ text: 'Meet de lengte en breedte van uw dakbasis (niet het schuine oppervlak, maar het gebied dat schaduw werpt op de grond).',
32
+ },
33
+ {
34
+ name: 'Controleer de lokale neerslag',
35
+ text: 'Zoek bij de nationale meteorologische dienst naar de gemiddelde jaarlijkse of maandelijkse neerslag in uw regio in millimeters (mm).',
36
+ },
37
+ {
38
+ name: 'Pas materiaalefficiëntie toe',
39
+ text: 'Selecteer uw dakmateriaal in onze calculator om het water af te trekken dat verloren gaat door absorptie of hitte.',
40
+ },
41
+ {
42
+ name: 'Bereken het benodigde volume',
43
+ text: 'Gebruik het jaarlijkse resultaat in liters om een tank te kiezen die ten minste 20-30% van de totale oogst kan opslaan voor droge periodes.',
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: 'nl',
79
+ };
80
+
81
+ export const content: RainHarvesterLocaleContent = {
82
+ slug,
83
+ title,
84
+ description,
85
+ ui: {
86
+ headInputs: 'Dakinstellingen',
87
+ headResults: 'Opvangpotentieel',
88
+ labelArea: 'Dakoppervlak',
89
+ labelRainfall: 'Jaarlijkse neerslag',
90
+ labelMaterial: 'Dakmateriaal',
91
+ unitM2: 'm²',
92
+ unitMm: 'mm',
93
+ unitLiters: 'Liter',
94
+ helpRainfall: 'Weet u het niet? Zoek op Google naar "gemiddelde jaarlijkse neerslag [uw stad]".',
95
+ efficiencyTitle: 'Efficiëntiefactor',
96
+ efficiencyNote: 'Er wordt een verlies van 10% toegepast voor filters en verdamping.',
97
+ resultTitle: 'Jaarlijks opvangpotentieel',
98
+ equivalenciesTitle: 'Praktische equivalenten',
99
+ labelFlushes: 'Doortrekken toilet',
100
+ labelShowers: 'Douchebeurten (10 min)',
101
+ labelGarden: 'Tuin besproeien',
102
+ gardenArea: '(50m²)',
103
+ materialMetal: 'Metaal / Geglazuurde pannen',
104
+ materialClay: 'Dakkiezel / Klei',
105
+ materialConcrete: 'Beton / Asfalt',
106
+ materialGravel: 'Grind / Groendak',
107
+ },
108
+ seo: [
109
+ {
110
+ type: 'title',
111
+ text: 'Regenwater opvangen: autonomie en duurzaamheid',
112
+ level: 2,
113
+ },
114
+ {
115
+ type: 'paragraph',
116
+ html: 'De meeste huiseigenaren zijn zich niet bewust van het potentieel van hun eigen dak. Een standaard dak kan elk jaar duizenden liters gratis water opvangen. Deze tool kwantificeert dat potentieel, waardoor u precies kunt berekenen hoeveel water u kunt "oogsten" en de ideale tankgrootte voor opslag kunt bepalen.',
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Berekeningslogica',
121
+ level: 3,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'De basisformule voor regenwateropvang is eenvoudig maar krachtig:',
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;">Volume = Oppervlak × Neerslag × Afvloeiingscoëfficiënt × Filterefficiëntie</code>',
130
+ },
131
+ {
132
+ type: 'list',
133
+ items: [
134
+ '<strong>Oppervlak:</strong> Uw dakvoetafdruk (geprojecteerde lengte × breedte).',
135
+ '<strong>Neerslag:</strong> Vallende regen in millimeters.',
136
+ '<strong>Coëfficiënt:</strong> Hoeveel water uw dak verliest (bijv. absorptie).',
137
+ '<strong>Efficiëntie:</strong> Verliezen in filters vóór de tank (~10%).',
138
+ ],
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Waarom regenwater opvangen?',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ items: [
148
+ '<strong>Besparing:</strong> Verlaag uw waterrekening aanzienlijk.',
149
+ '<strong>Tuinieren:</strong> Planten houden van water zonder chloor of kalk.',
150
+ '<strong>Veerkracht:</strong> Houd een noodreserve aan voor het geval de watertoevoer wordt onderbroken.',
151
+ ],
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Tankgrootte bepalen',
156
+ level: 2,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: 'De meest gemaakte fout is het kopen van een tank die alleen is gebaseerd op het budget. Als hij te klein is, verspilt u duizenden liters door overloop. Als hij te groot is, geeft u onnodig geld uit. Een algemene regel is om capaciteit te hebben om <strong>3 maanden</strong> aan gemiddelde neerslag in uw regio op te slaan, zodat u drogere periodes kunt overbruggen.',
161
+ },
162
+ ],
163
+ faq: faqData,
164
+ howTo: howToData,
165
+ bibliography,
166
+ schemas: [faqSchema, howToSchema, appSchema],
167
+ };