@jjlmoya/utils-nature 1.13.0 → 1.15.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 (84) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/fr.ts +6 -6
  3. package/src/category/i18n/ru.ts +5 -5
  4. package/src/layouts/PreviewLayout.astro +1 -1
  5. package/src/pages/[locale]/[slug].astro +32 -14
  6. package/src/tests/diacritics_density.test.ts +118 -0
  7. package/src/tests/inverted_punctuation.test.ts +84 -0
  8. package/src/tests/locale_completeness.test.ts +1 -31
  9. package/src/tests/no_en_dash.test.ts +71 -0
  10. package/src/tests/script_density.test.ts +94 -0
  11. package/src/tests/shared-test-helpers.ts +56 -0
  12. package/src/tests/tool_exports.test.ts +34 -0
  13. package/src/tool/cricketThermometer/bibliography.ts +12 -0
  14. package/src/tool/cricketThermometer/i18n/de.ts +6 -18
  15. package/src/tool/cricketThermometer/i18n/en.ts +3 -15
  16. package/src/tool/cricketThermometer/i18n/es.ts +3 -15
  17. package/src/tool/cricketThermometer/i18n/fr.ts +9 -21
  18. package/src/tool/cricketThermometer/i18n/id.ts +3 -15
  19. package/src/tool/cricketThermometer/i18n/it.ts +3 -15
  20. package/src/tool/cricketThermometer/i18n/ja.ts +3 -15
  21. package/src/tool/cricketThermometer/i18n/ko.ts +3 -15
  22. package/src/tool/cricketThermometer/i18n/nl.ts +3 -15
  23. package/src/tool/cricketThermometer/i18n/pl.ts +6 -18
  24. package/src/tool/cricketThermometer/i18n/pt.ts +3 -15
  25. package/src/tool/cricketThermometer/i18n/ru.ts +8 -20
  26. package/src/tool/cricketThermometer/i18n/sv.ts +3 -15
  27. package/src/tool/cricketThermometer/i18n/tr.ts +3 -15
  28. package/src/tool/cricketThermometer/i18n/zh.ts +8 -20
  29. package/src/tool/cricketThermometer/seo.astro +1 -1
  30. package/src/tool/cricketThermometer/ui.ts +0 -2
  31. package/src/tool/digitalCarbon/bibliography.ts +8 -0
  32. package/src/tool/digitalCarbon/digital-carbon-footprint-calculator.css +57 -1
  33. package/src/tool/digitalCarbon/i18n/de.ts +4 -10
  34. package/src/tool/digitalCarbon/i18n/en.ts +2 -8
  35. package/src/tool/digitalCarbon/i18n/es.ts +2 -8
  36. package/src/tool/digitalCarbon/i18n/fr.ts +6 -12
  37. package/src/tool/digitalCarbon/i18n/id.ts +2 -8
  38. package/src/tool/digitalCarbon/i18n/it.ts +2 -8
  39. package/src/tool/digitalCarbon/i18n/ja.ts +2 -8
  40. package/src/tool/digitalCarbon/i18n/ko.ts +2 -8
  41. package/src/tool/digitalCarbon/i18n/nl.ts +2 -8
  42. package/src/tool/digitalCarbon/i18n/pl.ts +2 -8
  43. package/src/tool/digitalCarbon/i18n/pt.ts +2 -8
  44. package/src/tool/digitalCarbon/i18n/ru.ts +3 -9
  45. package/src/tool/digitalCarbon/i18n/sv.ts +2 -8
  46. package/src/tool/digitalCarbon/i18n/tr.ts +2 -8
  47. package/src/tool/digitalCarbon/i18n/zh.ts +2 -8
  48. package/src/tool/digitalCarbon/seo.astro +1 -1
  49. package/src/tool/rainHarvester/bibliography.ts +20 -0
  50. package/src/tool/rainHarvester/i18n/de.ts +5 -23
  51. package/src/tool/rainHarvester/i18n/en.ts +2 -20
  52. package/src/tool/rainHarvester/i18n/es.ts +2 -20
  53. package/src/tool/rainHarvester/i18n/fr.ts +3 -21
  54. package/src/tool/rainHarvester/i18n/id.ts +2 -20
  55. package/src/tool/rainHarvester/i18n/it.ts +2 -20
  56. package/src/tool/rainHarvester/i18n/ja.ts +2 -20
  57. package/src/tool/rainHarvester/i18n/ko.ts +2 -20
  58. package/src/tool/rainHarvester/i18n/nl.ts +2 -20
  59. package/src/tool/rainHarvester/i18n/pl.ts +5 -23
  60. package/src/tool/rainHarvester/i18n/pt.ts +2 -20
  61. package/src/tool/rainHarvester/i18n/ru.ts +8 -26
  62. package/src/tool/rainHarvester/i18n/sv.ts +2 -20
  63. package/src/tool/rainHarvester/i18n/tr.ts +2 -20
  64. package/src/tool/rainHarvester/i18n/zh.ts +5 -23
  65. package/src/tool/rainHarvester/seo.astro +1 -1
  66. package/src/tool/seedCalculator/bibliography.ts +16 -0
  67. package/src/tool/seedCalculator/i18n/de.ts +2 -18
  68. package/src/tool/seedCalculator/i18n/en.ts +2 -18
  69. package/src/tool/seedCalculator/i18n/es.ts +2 -18
  70. package/src/tool/seedCalculator/i18n/fr.ts +3 -19
  71. package/src/tool/seedCalculator/i18n/id.ts +2 -18
  72. package/src/tool/seedCalculator/i18n/it.ts +2 -18
  73. package/src/tool/seedCalculator/i18n/ja.ts +2 -18
  74. package/src/tool/seedCalculator/i18n/ko.ts +2 -18
  75. package/src/tool/seedCalculator/i18n/nl.ts +2 -18
  76. package/src/tool/seedCalculator/i18n/pl.ts +3 -19
  77. package/src/tool/seedCalculator/i18n/pt.ts +2 -18
  78. package/src/tool/seedCalculator/i18n/ru.ts +6 -22
  79. package/src/tool/seedCalculator/i18n/sv.ts +2 -18
  80. package/src/tool/seedCalculator/i18n/tr.ts +2 -18
  81. package/src/tool/seedCalculator/i18n/zh.ts +2 -18
  82. package/src/tool/seedCalculator/seo.astro +8 -2
  83. package/src/tool/seedCalculator/ui.ts +0 -2
  84. package/src/types.ts +0 -2
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DigitalCarbonLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'kalkulator-cyfrowego-sladu-weglowego';
@@ -119,10 +120,8 @@ export const content: DigitalCarbonLocaleContent = {
119
120
  tipFonts: 'Ładuj tylko te grubości czcionek, których faktycznie używasz.',
120
121
  tipCache: 'Skonfiguruj nagłówki pamięci podręcznej HTTP, aby uniknąć ponownego pobierania.',
121
122
  },
122
- faqTitle: 'Często zadawane pytania',
123
123
  faq: faqData,
124
124
  howTo: howToData,
125
- bibliographyTitle: 'Źródła dotyczące zrównoważonego rozwoju sieci',
126
125
  seo: [
127
126
  {
128
127
  type: 'title',
@@ -225,11 +224,6 @@ export const content: DigitalCarbonLocaleContent = {
225
224
  html: 'Internet odpowiada za <strong>2% do 4% globalnej emisji CO₂</strong>, co jest wartością porównywalną z przemysłem lotniczym. Każdy wyeliminowany kilobajt nie tylko przyspiesza Twoją stronę: mierzalnie zmniejsza cyfrowe zanieczyszczenie.',
226
225
  },
227
226
  ],
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
- ],
227
+ bibliography,
234
228
  schemas: [faqSchema, howToSchema, appSchema],
235
229
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DigitalCarbonLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'calculadora-pegada-carbono-digital';
@@ -119,10 +120,8 @@ export const content: DigitalCarbonLocaleContent = {
119
120
  tipFonts: 'Carregue apenas os pesos tipográficos que realmente utiliza.',
120
121
  tipCache: 'Configure cabeçalhos de cache HTTP para evitar novos downloads.',
121
122
  },
122
- faqTitle: 'Perguntas Frequentes',
123
123
  faq: faqData,
124
124
  howTo: howToData,
125
- bibliographyTitle: 'Referências de Sustentabilidade Web',
126
125
  seo: [
127
126
  {
128
127
  type: 'title',
@@ -225,11 +224,6 @@ export const content: DigitalCarbonLocaleContent = {
225
224
  html: 'A internet representa entre <strong>2% e 4% das emissões globais de CO₂</strong>, um valor comparável à indústria da aviação. Cada kilobyte que elimina não torna apenas o seu website mais rápido: reduz de forma mensurável a poluição digital.',
226
225
  },
227
226
  ],
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
- ],
227
+ bibliography,
234
228
  schemas: [faqSchema, howToSchema, appSchema],
235
229
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DigitalCarbonLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'kalkulyator-tsifrovogo-uglerodnogo-sleda';
@@ -20,7 +21,7 @@ const faqData = [
20
21
  },
21
22
  {
22
23
  question: 'Как я могу уменьшить выбросы CO₂ моего сайта?',
23
- answer: 'Самый эффективный способ уменьшить вес страницы: оптимизировать изображения (WebP), минифицировать файлы CSS и JS, использовать ленивую загрузку и выбрать хостинг-провайдера, использующего возобновляемую энергию.',
24
+ answer: 'Самый эффективный способ - уменьшить вес страницы: оптимизировать изображения (WebP), минифицировать файлы CSS и JS, использовать ленивую загрузку и выбрать хостинг-провайдера, использующего возобновляемую энергию.',
24
25
  },
25
26
  ];
26
27
 
@@ -119,10 +120,8 @@ export const content: DigitalCarbonLocaleContent = {
119
120
  tipFonts: 'Загружайте только те начертания шрифтов, которые вы действительно используете.',
120
121
  tipCache: 'Настройте заголовки HTTP-кэша, чтобы избежать повторных загрузок.',
121
122
  },
122
- faqTitle: 'Часто задаваемые вопросы',
123
123
  faq: faqData,
124
124
  howTo: howToData,
125
- bibliographyTitle: 'Источники по устойчивому развитию веба',
126
125
  seo: [
127
126
  {
128
127
  type: 'title',
@@ -225,11 +224,6 @@ export const content: DigitalCarbonLocaleContent = {
225
224
  html: 'Интернет отвечает за <strong>2-4% глобальных выбросов CO₂</strong>, что сопоставимо с авиационной промышленностью. Каждый удаленный килобайт не просто делает ваш сайт быстрее: он измеримо снижает цифровое загрязнение.',
226
225
  },
227
226
  ],
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
- ],
227
+ bibliography,
234
228
  schemas: [faqSchema, howToSchema, appSchema],
235
229
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DigitalCarbonLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'digitalt-koldioxidavtryck-kalkylator';
@@ -119,10 +120,8 @@ export const content: DigitalCarbonLocaleContent = {
119
120
  tipFonts: 'Ladda endast de typsnittsvikter du faktiskt använder.',
120
121
  tipCache: 'Konfigurera HTTP-cache-headers för att undvika onödiga nedladdningar.',
121
122
  },
122
- faqTitle: 'Vanliga frågor',
123
123
  faq: faqData,
124
124
  howTo: howToData,
125
- bibliographyTitle: 'Referenser för webbhållbarhet',
126
125
  seo: [
127
126
  {
128
127
  type: 'title',
@@ -225,11 +224,6 @@ export const content: DigitalCarbonLocaleContent = {
225
224
  html: 'Internet står för mellan <strong>2 % och 4 % av de globala CO₂-utsläppen</strong>, en siffra som är jämförbar med flygindustrin. Varje kilobyte du tar bort gör inte bara din webbplats snabbare: det minskar mätbart den digitala föroreningen.',
226
225
  },
227
226
  ],
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
- ],
227
+ bibliography,
234
228
  schemas: [faqSchema, howToSchema, appSchema],
235
229
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DigitalCarbonLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'dijital-karbon-ayak-izi-hesaplayici';
@@ -119,10 +120,8 @@ export const content: DigitalCarbonLocaleContent = {
119
120
  tipFonts: 'Sadece gerçekten kullandığınız yazı tipi ağırlıklarını yükleyin.',
120
121
  tipCache: 'Yeniden indirmeleri önlemek için HTTP önbellek başlıklarını yapılandırın.',
121
122
  },
122
- faqTitle: 'Sıkça Sorulan Sorular',
123
123
  faq: faqData,
124
124
  howTo: howToData,
125
- bibliographyTitle: 'Web Sürdürülebilirliği Referansları',
126
125
  seo: [
127
126
  {
128
127
  type: 'title',
@@ -225,11 +224,6 @@ export const content: DigitalCarbonLocaleContent = {
225
224
  html: 'İnternet, havacılık endüstrisiyle karşılaştırılabilecek bir rakam olan <strong>küresel CO₂ emisyonlarının %2 ile %4\'ünü</strong> temsil etmektedir. Elediğiniz her kilobayt sadece web sitenizi hızlandırmakla kalmaz: dijital kirliliği ölçülebilir şekilde azaltır.',
226
225
  },
227
226
  ],
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
- ],
227
+ bibliography,
234
228
  schemas: [faqSchema, howToSchema, appSchema],
235
229
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DigitalCarbonLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'digital-carbon-footprint-calculator';
@@ -119,10 +120,8 @@ export const content: DigitalCarbonLocaleContent = {
119
120
  tipFonts: '仅加载您实际使用的字体粗细。',
120
121
  tipCache: '配置 HTTP 缓存标头以避免重复下载。',
121
122
  },
122
- faqTitle: '常见问题',
123
123
  faq: faqData,
124
124
  howTo: howToData,
125
- bibliographyTitle: '网页可持续性参考资料',
126
125
  seo: [
127
126
  {
128
127
  type: 'title',
@@ -225,11 +224,6 @@ export const content: DigitalCarbonLocaleContent = {
225
224
  html: '互联网约占<strong>全球 CO₂ 排放量的 2% 到 4%</strong>,这一数字可与航空业相提并论。您消除的每一个字节不仅让网站变快,更在实实在在地减少数字污染。',
226
225
  },
227
226
  ],
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
- ],
227
+ bibliography,
234
228
  schemas: [faqSchema, howToSchema, appSchema],
235
229
  };
@@ -12,4 +12,4 @@ const content = await digitalCarbon.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
14
 
15
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -0,0 +1,20 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'FAO - Captación y almacenamiento de agua de lluvia',
6
+ url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
7
+ },
8
+ {
9
+ name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
10
+ url: 'https://rainwaterharvesting.tamu.edu/',
11
+ },
12
+ {
13
+ name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
14
+ url: 'https://www.harvestingrainwater.com/',
15
+ },
16
+ {
17
+ name: 'European Environment Agency - Water Resources',
18
+ url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
19
+ },
20
+ ];
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'regenwasser-ernte-rechner';
@@ -8,7 +9,7 @@ const description = 'Berechnen Sie, wie viel Regenwasser Sie von Ihrem Dach samm
8
9
  const faqData = [
9
10
  {
10
11
  question: 'Wie viel Wasser kann ich tatsächlich von meinem Dach sammeln?',
11
- 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.',
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.',
12
13
  },
13
14
  {
14
15
  question: 'Was ist der Abflussbeiwert?',
@@ -90,7 +91,7 @@ export const content: RainHarvesterLocaleContent = {
90
91
  unitM2: 'm²',
91
92
  unitMm: 'mm',
92
93
  unitLiters: 'Liter',
93
- helpRainfall: 'Unbekannt? Suchen Sie bei Google nach durchschnittlicher jährlicher Niederschlag [Ihre Stadt]“.',
94
+ helpRainfall: 'Unbekannt? Suchen Sie bei Google nach "durchschnittlicher jährlicher Niederschlag [Ihre Stadt]".',
94
95
  efficiencyTitle: 'Effizienzfaktor',
95
96
  efficiencyNote: 'Für Filter und Verdunstung wird ein Verlust von 10 % angesetzt.',
96
97
  resultTitle: 'Jährliches Erntepotenzial',
@@ -112,7 +113,7 @@ export const content: RainHarvesterLocaleContent = {
112
113
  },
113
114
  {
114
115
  type: 'paragraph',
115
- 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.',
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.',
116
117
  },
117
118
  {
118
119
  type: 'title',
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
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.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Häufig gestellte Fragen',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Wissenschaftliche Referenzen',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'rainwater-calculator';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: 'The most common mistake is buying a tank based only on budget. If it is too small, you will waste thousands of liters due to overflow. If it is too large, you will spend money unnecessarily. A general rule is to have capacity to store <strong>3 months</strong> of average rainfall in your area, allowing you to bridge dry seasons.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Frequently Asked Questions',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Scientific References',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'calculadora-agua-lluvia';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: 'El error más común es comprar un tanque basándose solo en el presupuesto. Si es muy pequeño, desperdiciarás miles de litros por desbordamiento. Si es muy grande, gastarás dinero innecesariamente. Una regla general es tener capacidad para almacenar el agua de <strong>3 meses</strong> de lluvia promedio en tu zona, permitiéndote superar las estaciones secas.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Preguntas Frecuentes',
163
163
  faq: faqData,
164
- bibliographyTitle: 'Referencias Científicas',
165
- bibliography: [
166
- {
167
- name: 'FAO - Captación y almacenamiento de agua de lluvia',
168
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
169
- },
170
- {
171
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
172
- url: 'https://rainwaterharvesting.tamu.edu/',
173
- },
174
- {
175
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
176
- url: 'https://www.harvestingrainwater.com/',
177
- },
178
- {
179
- name: 'European Environment Agency - Water Resources',
180
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
181
- },
182
- ],
164
+ bibliography,
183
165
  howTo: howToData,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'calculateur-eau-pluie';
@@ -107,7 +108,7 @@ export const content: RainHarvesterLocaleContent = {
107
108
  seo: [
108
109
  {
109
110
  type: 'title',
110
- text: 'Récupération de l\'eau de pluie : Autonomie et durabilité',
111
+ text: 'Récupération de l\'eau de pluie: Autonomie et durabilité',
111
112
  level: 2,
112
113
  },
113
114
  {
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: 'L\'erreur la plus courante est d\'acheter un réservoir en se basant uniquement sur le budget. S\'il est trop petit, vous perdrez des milliers de litres par débordement. S\'il est trop grand, vous dépenserez de l\'argent inutilement. Une règle générale est d\'avoir une capacité de stockage pour <strong>3 mois</strong> de précipitations moyennes dans votre région, vous permettant de traverser les saisons sèches.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Questions Fréquemment Posées',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Références Scientifiques',
166
- bibliography: [
167
- {
168
- name: 'FAO - Collecte et stockage de l\'eau de pluie',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'kalkulator-air-hujan';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: 'Kesalahan paling umum adalah membeli tangki hanya berdasarkan anggaran. Jika terlalu kecil, Anda akan membuang ribuan liter karena meluap. Jika terlalu besar, Anda akan menghabiskan uang secara tidak perlu. Aturan umumnya adalah memiliki kapasitas untuk menyimpan <strong>3 bulan</strong> rata-rata curah hujan di daerah Anda, yang memungkinkan Anda menjembatani musim kemarau.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Pertanyaan yang Sering Diajukan',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Referensi Ilmiah',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'calcolatore-acqua-piovana';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: 'L\'errore più comune è acquistare un serbatoio basandosi solo sul budget. Se è troppo piccolo, sprecherai migliaia di litri a causa del troppo pieno. Se è troppo grande, spenderai soldi inutilmente. Una regola generale è di avere una capacità per conservare <strong>3 mesi</strong> di piovosità media nella tua zona, permettendoti di superare le stagioni secche.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Domande Frequenti',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Riferimenti Scientifici',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'rainwater-calculator';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: '最も多い間違いは、予算だけでタンクを購入することです。小さすぎると大雨の際に溢れて無駄になり、大きすぎると不必要なコストがかかります。一般的なルールは、乾季を乗り切るために地域の平均降水量の<strong>3ヶ月分</strong>を貯蔵できる容量を持つことです。',
160
161
  },
161
162
  ],
162
- faqTitle: 'よくある質問',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: '科学的参考文献',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'rainwater-calculator';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: '가장 흔한 실수는 예산에만 맞춰 탱크를 사는 것입니다. 너무 작으면 넘쳐서 물을 낭비하게 되고, 너무 크면 불필요한 비용을 쓰게 됩니다. 일반적인 규칙은 해당 지역 평균 강수량의 <strong>3개월분</strong>을 저장할 수 있는 용량을 확보하여 건기를 대비하는 것입니다.',
160
161
  },
161
162
  ],
162
- faqTitle: '자주 묻는 질문',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: '과학적 참고 문헌',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'regenwater-opvang-calculator';
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
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.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Veelgestelde vragen',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Wetenschappelijke bronnen',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { RainHarvesterLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'kalkulator-wody-deszczowej';
@@ -8,7 +9,7 @@ const description = 'Oblicz, ile wody deszczowej możesz zebrać ze swojego dach
8
9
  const faqData = [
9
10
  {
10
11
  question: 'Ile wody mogę faktycznie zebrać ze swojego dachu?',
11
- answer: 'Ogólna zasada mówi, że z każdego metra kwadratowego dachu i na każdy milimetr deszczu można zebrać około 1 litra wody. Istnieją jednak straty wynikające z parowania i filtracji, korygowane przez współczynnik spływu”.',
12
+ answer: 'Ogólna zasada mówi, że z każdego metra kwadratowego dachu i na każdy milimetr deszczu można zebrać około 1 litra wody. Istnieją jednak straty wynikające z parowania i filtracji, korygowane przez "współczynnik spływu".',
12
13
  },
13
14
  {
14
15
  question: 'Co to jest współczynnik spływu?',
@@ -90,7 +91,7 @@ export const content: RainHarvesterLocaleContent = {
90
91
  unitM2: 'm²',
91
92
  unitMm: 'mm',
92
93
  unitLiters: 'Litry',
93
- helpRainfall: 'Nie wiesz? Wyszukaj w Google „średnie roczne opady [Twoje miasto]”.',
94
+ helpRainfall: 'Nie wiesz? Wyszukaj w Google "średnie roczne opady [Twoje miasto]".',
94
95
  efficiencyTitle: 'Współczynnik Wydajności',
95
96
  efficiencyNote: 'Uwzględniono 10% strat na filtry i parowanie.',
96
97
  resultTitle: 'Roczny Potencjał Uzysku',
@@ -112,7 +113,7 @@ export const content: RainHarvesterLocaleContent = {
112
113
  },
113
114
  {
114
115
  type: 'paragraph',
115
- html: 'Większość właścicieli domów nie zdaje sobie sprawy z potencjału własnego dachu. Standardowy dach może zebrać tysiące litrów darmowej wody każdego roku. To narzędzie pozwala oszacować ten potencjał, obliczyć dokładnie, ile wody możesz „zebrać” i dobrać idealny zbiornik do jej przechowywania.',
116
+ html: 'Większość właścicieli domów nie zdaje sobie sprawy z potencjału własnego dachu. Standardowy dach może zebrać tysiące litrów darmowej wody każdego roku. To narzędzie pozwala oszacować ten potencjał, obliczyć dokładnie, ile wody możesz "zebrać" i dobrać idealny zbiornik do jej przechowywania.',
116
117
  },
117
118
  {
118
119
  type: 'title',
@@ -159,27 +160,8 @@ export const content: RainHarvesterLocaleContent = {
159
160
  html: 'Najczęstszym błędem jest zakup zbiornika wyłącznie w oparciu o budżet. Jeśli będzie za mały, zmarnujesz tysiące litrów przez przelew. Jeśli za duży, wydasz pieniądze niepotrzebnie. Przyjmuje się, że optymalna pojemność powinna pozwalać na zmagazynowanie średnich opadów z <strong>3 miesięcy</strong>, co pozwala przetrwać okresy bezdeszczowe.',
160
161
  },
161
162
  ],
162
- faqTitle: 'Często zadawane pytania',
163
163
  faq: faqData,
164
164
  howTo: howToData,
165
- bibliographyTitle: 'Źródła Naukowe',
166
- bibliography: [
167
- {
168
- name: 'FAO - Rainwater Harvesting and Storage',
169
- url: 'https://www.fao.org/3/a1348s/a1348s.pdf',
170
- },
171
- {
172
- name: 'Texas A&M AgriLife Extension - Rainwater Harvesting',
173
- url: 'https://rainwaterharvesting.tamu.edu/',
174
- },
175
- {
176
- name: 'Brad Lancaster - Rainwater Harvesting for Drylands',
177
- url: 'https://www.harvestingrainwater.com/',
178
- },
179
- {
180
- name: 'European Environment Agency - Water Resources',
181
- url: 'https://www.eea.europa.eu/en/topics/in-depth/water',
182
- },
183
- ],
165
+ bibliography,
184
166
  schemas: [faqSchema, howToSchema, appSchema],
185
167
  };