@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 = 'calculadora-agua-da-chuva';
6
- const title = 'Calculadora de Recolha de Água da Chuva';
7
- const description = 'Calcule quanta água da chuva pode recolher do seu telhado e dimensione o seu tanque de armazenamento.';
8
-
9
- const faqData = [
10
- {
11
- question: 'Quanta água posso realmente recolher do meu telhado?',
12
- answer: 'A regra geral é que, para cada metro quadrado de telhado e cada milímetro de chuva, pode recolher aproximadamente 1 litro de água. No entanto, existem perdas por evaporação e filtração ajustadas com o "coeficiente de escoamento".',
13
- },
14
- {
15
- question: 'O que é o coeficiente de escoamento?',
16
- answer: 'É uma percentagem que indica quanta água é perdida dependendo do material do telhado. Um telhado de metal ou cerâmica é muito eficiente (0,85-0,95), enquanto um telhado de cascalho ou terra é muito menos eficiente (0,1-0,3).',
17
- },
18
- {
19
- question: 'Como dimensiono o tanque de armazenamento?',
20
- answer: 'Deve calcular o volume máximo de chuva esperado num mês e cruzá-lo com o seu consumo mensal estimado. Um tanque demasiado pequeno transbordará em tempestades, e um demasiado grande será desnecessariamente caro.',
21
- },
22
- {
23
- question: 'É seguro beber água da chuva recolhida?',
24
- answer: 'Não diretamente. A água transporta poeira, excrementos de aves e partículas transportadas pelo ar. Para consumo humano, deve passar por filtros de sedimentos, carvão ativado e desinfeção por luz UV ou cloro.',
25
- },
26
- ];
27
-
28
- const howToData = [
29
- {
30
- name: 'Meça a superfície horizontal',
31
- text: 'Meça o comprimento e a largura da base do seu telhado (não a superfície inclinada, mas a área que projeta sombras no chão).',
32
- },
33
- {
34
- name: 'Verifique a pluviosidade local',
35
- text: 'Pesquise no serviço meteorológico nacional a precipitação média anual ou mensal na sua área em milímetros (mm).',
36
- },
37
- {
38
- name: 'Aplique a eficiência do material',
39
- text: 'Selecione o material do seu telhado na nossa calculadora para descontar a água que se perderá por absorção ou calor.',
40
- },
41
- {
42
- name: 'Calcule o volume necessário',
43
- text: 'Use o resultado dos litros anuais para escolher um tanque que possa armazenar pelo menos 20-30% da colheita total para períodos secos.',
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: 'pt',
79
- };
80
-
81
- export const content: RainHarvesterLocaleContent = {
82
- slug,
83
- title,
84
- description,
85
- ui: {
86
- headInputs: 'Configurações do Telhado',
87
- headResults: 'Potencial de Recolha',
88
- labelArea: 'Área do Telhado',
89
- labelRainfall: 'Pluviosidade Anual',
90
- labelMaterial: 'Material do Telhado',
91
- unitM2: 'm²',
92
- unitMm: 'mm',
93
- unitLiters: 'Litros',
94
- helpRainfall: 'Não sabe? Pesquise "precipitação média anual [sua cidade]" no Google.',
95
- efficiencyTitle: 'Fator de Eficiência',
96
- efficiencyNote: 'É aplicada uma perda de 10% para filtros e evaporação.',
97
- resultTitle: 'Potencial de Recolha Anual',
98
- equivalenciesTitle: 'Equivalentes Práticos',
99
- labelFlushes: 'Descargas de Autoclismo',
100
- labelShowers: 'Duches (10 min)',
101
- labelGarden: 'Rega de Jardim',
102
- gardenArea: '(50m²)',
103
- materialMetal: 'Metal / Telha Vidrada',
104
- materialClay: 'Telha Árabe / Barro',
105
- materialConcrete: 'Betão / Asfalto',
106
- materialGravel: 'Cascalho / Telhado Verde',
107
- },
108
- seo: [
109
- {
110
- type: 'title',
111
- text: 'Recolha de Água da Chuva: Autonomia e Sustentabilidade',
112
- level: 2,
113
- },
114
- {
115
- type: 'paragraph',
116
- html: 'A maioria dos proprietários ignora o potencial dos seus próprios telhados. Um telhado comum pode captar milhares de litros de água gratuita todos os anos. Esta ferramenta quantifica esse potencial, permitindo-lhe calcular exatamente quanta água pode "colher" e determinar o tamanho ideal do tanque para armazenamento.',
117
- },
118
- {
119
- type: 'title',
120
- text: 'Lógica de Cálculo',
121
- level: 3,
122
- },
123
- {
124
- type: 'paragraph',
125
- html: 'A fórmula base para a recolha de água da chuva é simples, mas poderosa:',
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 = Área × Pluviosidade × Coeficiente de Escoamento × Eficiência do Filtro</code>',
130
- },
131
- {
132
- type: 'list',
133
- items: [
134
- '<strong>Área:</strong> A base do seu telhado (comprimento × largura projetada).',
135
- '<strong>Pluviosidade:</strong> Chuva caída em milímetros.',
136
- '<strong>Coeficiente:</strong> Quanta água o seu telhado perde (ex: absorção).',
137
- '<strong>Eficiência:</strong> Perdas nos filtros pré-tanque (~10%).',
138
- ],
139
- },
140
- {
141
- type: 'title',
142
- text: 'Porquê Recolher Água da Chuva?',
143
- level: 3,
144
- },
145
- {
146
- type: 'list',
147
- items: [
148
- '<strong>Poupança:</strong> Reduza significativamente a sua fatura de água.',
149
- '<strong>Jardinagem:</strong> As plantas adoram água sem cloro ou calcário.',
150
- '<strong>Resiliência:</strong> Mantenha uma reserva de emergência para o caso de cortes.',
151
- ],
152
- },
153
- {
154
- type: 'title',
155
- text: 'Dimensionamento do Tanque',
156
- level: 2,
157
- },
158
- {
159
- type: 'paragraph',
160
- html: 'O erro mais comum é comprar um tanque baseando-se apenas no orçamento. Se for demasiado pequeno, desperdiçará milhares de litros devido ao transbordo. Se for demasiado grande, gastará dinheiro desnecessariamente. Uma regra geral é ter capacidade para armazenar <strong>3 meses</strong> da pluviosidade média da sua zona, o que lhe permite atravessar as estações secas.',
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 = 'calculadora-agua-da-chuva';
6
+ const title = 'Calculadora de Recolha de Água da Chuva';
7
+ const description = 'Calcule quanta água da chuva pode recolher do seu telhado e dimensione o seu tanque de armazenamento.';
8
+
9
+ const faqData = [
10
+ {
11
+ question: 'Quanta água posso realmente recolher do meu telhado?',
12
+ answer: 'A regra geral é que, para cada metro quadrado de telhado e cada milímetro de chuva, pode recolher aproximadamente 1 litro de água. No entanto, existem perdas por evaporação e filtração ajustadas com o "coeficiente de escoamento".',
13
+ },
14
+ {
15
+ question: 'O que é o coeficiente de escoamento?',
16
+ answer: 'É uma percentagem que indica quanta água é perdida dependendo do material do telhado. Um telhado de metal ou cerâmica é muito eficiente (0,85-0,95), enquanto um telhado de cascalho ou terra é muito menos eficiente (0,1-0,3).',
17
+ },
18
+ {
19
+ question: 'Como dimensiono o tanque de armazenamento?',
20
+ answer: 'Deve calcular o volume máximo de chuva esperado num mês e cruzá-lo com o seu consumo mensal estimado. Um tanque demasiado pequeno transbordará em tempestades, e um demasiado grande será desnecessariamente caro.',
21
+ },
22
+ {
23
+ question: 'É seguro beber água da chuva recolhida?',
24
+ answer: 'Não diretamente. A água transporta poeira, excrementos de aves e partículas transportadas pelo ar. Para consumo humano, deve passar por filtros de sedimentos, carvão ativado e desinfeção por luz UV ou cloro.',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: 'Meça a superfície horizontal',
31
+ text: 'Meça o comprimento e a largura da base do seu telhado (não a superfície inclinada, mas a área que projeta sombras no chão).',
32
+ },
33
+ {
34
+ name: 'Verifique a pluviosidade local',
35
+ text: 'Pesquise no serviço meteorológico nacional a precipitação média anual ou mensal na sua área em milímetros (mm).',
36
+ },
37
+ {
38
+ name: 'Aplique a eficiência do material',
39
+ text: 'Selecione o material do seu telhado na nossa calculadora para descontar a água que se perderá por absorção ou calor.',
40
+ },
41
+ {
42
+ name: 'Calcule o volume necessário',
43
+ text: 'Use o resultado dos litros anuais para escolher um tanque que possa armazenar pelo menos 20-30% da colheita total para períodos secos.',
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: 'pt',
79
+ };
80
+
81
+ export const content: RainHarvesterLocaleContent = {
82
+ slug,
83
+ title,
84
+ description,
85
+ ui: {
86
+ headInputs: 'Configurações do Telhado',
87
+ headResults: 'Potencial de Recolha',
88
+ labelArea: 'Área do Telhado',
89
+ labelRainfall: 'Pluviosidade Anual',
90
+ labelMaterial: 'Material do Telhado',
91
+ unitM2: 'm²',
92
+ unitMm: 'mm',
93
+ unitLiters: 'Litros',
94
+ helpRainfall: 'Não sabe? Pesquise "precipitação média anual [sua cidade]" no Google.',
95
+ efficiencyTitle: 'Fator de Eficiência',
96
+ efficiencyNote: 'É aplicada uma perda de 10% para filtros e evaporação.',
97
+ resultTitle: 'Potencial de Recolha Anual',
98
+ equivalenciesTitle: 'Equivalentes Práticos',
99
+ labelFlushes: 'Descargas de Autoclismo',
100
+ labelShowers: 'Duches (10 min)',
101
+ labelGarden: 'Rega de Jardim',
102
+ gardenArea: '(50m²)',
103
+ materialMetal: 'Metal / Telha Vidrada',
104
+ materialClay: 'Telha Árabe / Barro',
105
+ materialConcrete: 'Betão / Asfalto',
106
+ materialGravel: 'Cascalho / Telhado Verde',
107
+ },
108
+ seo: [
109
+ {
110
+ type: 'title',
111
+ text: 'Recolha de Água da Chuva: Autonomia e Sustentabilidade',
112
+ level: 2,
113
+ },
114
+ {
115
+ type: 'paragraph',
116
+ html: 'A maioria dos proprietários ignora o potencial dos seus próprios telhados. Um telhado comum pode captar milhares de litros de água gratuita todos os anos. Esta ferramenta quantifica esse potencial, permitindo-lhe calcular exatamente quanta água pode "colher" e determinar o tamanho ideal do tanque para armazenamento.',
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Lógica de Cálculo',
121
+ level: 3,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: 'A fórmula base para a recolha de água da chuva é simples, mas poderosa:',
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 = Área × Pluviosidade × Coeficiente de Escoamento × Eficiência do Filtro</code>',
130
+ },
131
+ {
132
+ type: 'list',
133
+ items: [
134
+ '<strong>Área:</strong> A base do seu telhado (comprimento × largura projetada).',
135
+ '<strong>Pluviosidade:</strong> Chuva caída em milímetros.',
136
+ '<strong>Coeficiente:</strong> Quanta água o seu telhado perde (ex: absorção).',
137
+ '<strong>Eficiência:</strong> Perdas nos filtros pré-tanque (~10%).',
138
+ ],
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'Porquê Recolher Água da Chuva?',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ items: [
148
+ '<strong>Poupança:</strong> Reduza significativamente a sua fatura de água.',
149
+ '<strong>Jardinagem:</strong> As plantas adoram água sem cloro ou calcário.',
150
+ '<strong>Resiliência:</strong> Mantenha uma reserva de emergência para o caso de cortes.',
151
+ ],
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Dimensionamento do Tanque',
156
+ level: 2,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: 'O erro mais comum é comprar um tanque baseando-se apenas no orçamento. Se for demasiado pequeno, desperdiçará milhares de litros devido ao transbordo. Se for demasiado grande, gastará dinheiro desnecessariamente. Uma regra geral é ter capacidade para armazenar <strong>3 meses</strong> da pluviosidade média da sua zona, o que lhe permite atravessar as estações secas.',
161
+ },
162
+ ],
163
+ faq: faqData,
164
+ howTo: howToData,
165
+ bibliography,
166
+ schemas: [faqSchema, howToSchema, appSchema],
167
+ };