@jjlmoya/utils-nature 1.22.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 (68) 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/bibliography_wellformed_export.test.ts +46 -0
  17. package/src/tests/category_seo_quality.test.ts +74 -0
  18. package/src/tests/faq_count.test.ts +19 -19
  19. package/src/tests/mocks/astro_mock.js +1 -1
  20. package/src/tests/no_en_dash.test.ts +71 -71
  21. package/src/tests/no_h1_in_components.test.ts +1 -1
  22. package/src/tests/seo_length.test.ts +23 -23
  23. package/src/tests/seo_parity.test.ts +2 -2
  24. package/src/tests/seo_wellformed_export.test.ts +65 -0
  25. package/src/tests/spanish_leakage.test.ts +175 -175
  26. package/src/tool/compostBinVolumeRatioCalculator/bibliography.astro +2 -14
  27. package/src/tool/compostBinVolumeRatioCalculator/seo.astro +6 -14
  28. package/src/tool/cricketThermometer/i18n/de.ts +169 -169
  29. package/src/tool/cricketThermometer/i18n/en.ts +169 -169
  30. package/src/tool/cricketThermometer/i18n/es.ts +169 -169
  31. package/src/tool/cricketThermometer/i18n/fr.ts +169 -169
  32. package/src/tool/cricketThermometer/i18n/id.ts +169 -169
  33. package/src/tool/cricketThermometer/i18n/it.ts +169 -169
  34. package/src/tool/cricketThermometer/i18n/ja.ts +169 -169
  35. package/src/tool/cricketThermometer/i18n/ko.ts +169 -169
  36. package/src/tool/cricketThermometer/i18n/nl.ts +169 -169
  37. package/src/tool/cricketThermometer/i18n/pl.ts +169 -169
  38. package/src/tool/cricketThermometer/i18n/pt.ts +169 -169
  39. package/src/tool/cricketThermometer/i18n/ru.ts +169 -169
  40. package/src/tool/cricketThermometer/i18n/sv.ts +169 -169
  41. package/src/tool/cricketThermometer/i18n/tr.ts +169 -169
  42. package/src/tool/cricketThermometer/i18n/zh.ts +169 -169
  43. package/src/tool/cricketThermometer/seo.astro +15 -15
  44. package/src/tool/digitalCarbon/i18n/de.ts +229 -229
  45. package/src/tool/digitalCarbon/i18n/fr.ts +229 -229
  46. package/src/tool/digitalCarbon/i18n/ru.ts +229 -229
  47. package/src/tool/digitalCarbon/seo.astro +15 -15
  48. package/src/tool/rainHarvester/i18n/de.ts +167 -167
  49. package/src/tool/rainHarvester/i18n/en.ts +167 -167
  50. package/src/tool/rainHarvester/i18n/es.ts +167 -167
  51. package/src/tool/rainHarvester/i18n/fr.ts +167 -167
  52. package/src/tool/rainHarvester/i18n/id.ts +167 -167
  53. package/src/tool/rainHarvester/i18n/it.ts +167 -167
  54. package/src/tool/rainHarvester/i18n/ja.ts +167 -167
  55. package/src/tool/rainHarvester/i18n/ko.ts +167 -167
  56. package/src/tool/rainHarvester/i18n/nl.ts +167 -167
  57. package/src/tool/rainHarvester/i18n/pl.ts +167 -167
  58. package/src/tool/rainHarvester/i18n/pt.ts +167 -167
  59. package/src/tool/rainHarvester/i18n/ru.ts +167 -167
  60. package/src/tool/rainHarvester/i18n/sv.ts +167 -167
  61. package/src/tool/rainHarvester/i18n/tr.ts +167 -167
  62. package/src/tool/rainHarvester/i18n/zh.ts +167 -167
  63. package/src/tool/rainHarvester/seo.astro +15 -15
  64. package/src/tool/seedCalculator/i18n/fr.ts +197 -197
  65. package/src/tool/seedCalculator/i18n/pl.ts +197 -197
  66. package/src/tool/seedCalculator/i18n/ru.ts +197 -197
  67. package/src/tool/seedCalculator/seo.astro +15 -15
  68. 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 = 'rainwater-calculator';
6
- const title = '雨水貯留量計算機';
7
- const description = '屋根からどれくらいの雨水を集められるかを計算し、適切な貯水タンクのサイズを判定します。';
8
-
9
- const faqData = [
10
- {
11
- question: '屋根から実際にどれくらいの水を集められますか?',
12
- answer: '一般的なルールとして、屋根1平方メートルあたり、降水量1ミリにつき約1リットルの水を集めることができます。ただし、蒸発や濾過による損失があり、「流出係数」で調整されます。',
13
- },
14
- {
15
- question: '流出係数とは何ですか?',
16
- answer: '屋根の材質によってどれだけの水が失われるかを示す割合です。金属や瓦の屋根は非常に効率的(0.85~0.95)ですが、砂利や土の屋根は効率が大幅に低下します(0.1~0.3)。',
17
- },
18
- {
19
- question: '貯水タンクのサイズはどう決めればよいですか?',
20
- answer: '1ヶ月に予想される最大降水量を計算し、推定される月間消費量と照らし合わせて検討する必要があります。小さすぎると大雨の際に溢れてしまい、大きすぎると不必要にコストがかかります。',
21
- },
22
- {
23
- question: '集めた雨水は飲んでも安全ですか?',
24
- answer: 'そのままでは安全ではありません。雨水には埃、鳥の糞、空気中の微粒子が含まれています。飲用にする場合は、沈殿フィルター、活性炭、およびUVライトや塩素による消毒を通す必要があります。',
25
- },
26
- ];
27
-
28
- const howToData = [
29
- {
30
- name: '水平投影面積を測定する',
31
- text: '屋根の土台の長さと幅を測定します(斜面の面積ではなく、地面に落ちる影の面積です)。',
32
- },
33
- {
34
- name: '地域の降水量を確認する',
35
- text: '気象庁などのデータで、お住まいの地域の年間または月間の平均降水量(ミリメートル単位)を確認します。',
36
- },
37
- {
38
- name: '材質の効率を適用する',
39
- text: '計算機で屋根の材質を選択し、吸収や熱で失われる水の分を差し引きます。',
40
- },
41
- {
42
- name: '必要な容量を計算する',
43
- text: '年間収穫量の結果を参考に、乾季のために総収穫量の少なくとも20~30%を貯蔵できるタンクを選びます。',
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: 'ja',
79
- };
80
-
81
- export const content: RainHarvesterLocaleContent = {
82
- slug,
83
- title,
84
- description,
85
- ui: {
86
- headInputs: '屋根の設定',
87
- headResults: '収穫ポテンシャル',
88
- labelArea: '屋根面積',
89
- labelRainfall: '年間降水量',
90
- labelMaterial: '屋根の材質',
91
- unitM2: 'm²',
92
- unitMm: 'mm',
93
- unitLiters: 'リットル',
94
- helpRainfall: '分からない場合は、Googleで「(お住まいの都市名) 年間平均降水量」を検索してください。',
95
- efficiencyTitle: '効率係数',
96
- efficiencyNote: 'フィルターや蒸発による損失として10%を差し引いています。',
97
- resultTitle: '年間に集められる水の量',
98
- equivalenciesTitle: '活用例(目安)',
99
- labelFlushes: 'トイレの洗浄回数',
100
- labelShowers: 'シャワー(10分間)',
101
- labelGarden: '庭への散水',
102
- gardenArea: '(50m²)',
103
- materialMetal: '金属 / 釉薬瓦',
104
- materialClay: '素焼き瓦 / 粘土',
105
- materialConcrete: 'コンクリート / アスファルト',
106
- materialGravel: '砂利 / 屋上緑化',
107
- },
108
- seo: [
109
- {
110
- type: 'title',
111
- text: '雨水利用:自立とサステナビリティ',
112
- level: 2,
113
- },
114
- {
115
- type: 'paragraph',
116
- html: '多くの住宅所有者は、自分の屋根が持つポテンシャルに気づいていません。標準的な屋根は、毎年何千リットルもの無料の水をキャッチすることができます。このツールはそのポテンシャルを数値化し、どれくらいの水を「収穫」できるかを正確に計算することで、理想的な貯水タンクのサイズを決定する助けとなります。',
117
- },
118
- {
119
- type: 'title',
120
- text: '計算のロジック',
121
- level: 3,
122
- },
123
- {
124
- type: 'paragraph',
125
- html: '雨水収集の基本式はシンプルですが強力です:',
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;">容量 = 面積 × 降水量 × 流出係数 × フィルター効率</code>',
130
- },
131
- {
132
- type: 'list',
133
- items: [
134
- '<strong>面積:</strong> 屋根の設置面積(投影された長さ × 幅)。',
135
- '<strong>降水量:</strong> ミリメートル単位の降雨量。',
136
- '<strong>係数:</strong> 屋根でどれだけの水が失われるか(吸収など)。',
137
- '<strong>効率:</strong> タンク前のフィルターでの損失(約10%)。',
138
- ],
139
- },
140
- {
141
- type: 'title',
142
- text: 'なぜ雨水を集めるのか?',
143
- level: 3,
144
- },
145
- {
146
- type: 'list',
147
- items: [
148
- '<strong>節約:</strong> 水道料金を大幅に削減できます。',
149
- '<strong>ガーデニング:</strong> 植物は塩素や石灰を含まない水を好みます。',
150
- '<strong>レジリエンス:</strong> 断水時の非常用備蓄として活用できます。',
151
- ],
152
- },
153
- {
154
- type: 'title',
155
- text: 'タンクのサイズ選定',
156
- level: 2,
157
- },
158
- {
159
- type: 'paragraph',
160
- html: '最も多い間違いは、予算だけでタンクを購入することです。小さすぎると大雨の際に溢れて無駄になり、大きすぎると不必要なコストがかかります。一般的なルールは、乾季を乗り切るために地域の平均降水量の<strong>3ヶ月分</strong>を貯蔵できる容量を持つことです。',
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 = 'rainwater-calculator';
6
+ const title = '雨水貯留量計算機';
7
+ const description = '屋根からどれくらいの雨水を集められるかを計算し、適切な貯水タンクのサイズを判定します。';
8
+
9
+ const faqData = [
10
+ {
11
+ question: '屋根から実際にどれくらいの水を集められますか?',
12
+ answer: '一般的なルールとして、屋根1平方メートルあたり、降水量1ミリにつき約1リットルの水を集めることができます。ただし、蒸発や濾過による損失があり、「流出係数」で調整されます。',
13
+ },
14
+ {
15
+ question: '流出係数とは何ですか?',
16
+ answer: '屋根の材質によってどれだけの水が失われるかを示す割合です。金属や瓦の屋根は非常に効率的(0.85~0.95)ですが、砂利や土の屋根は効率が大幅に低下します(0.1~0.3)。',
17
+ },
18
+ {
19
+ question: '貯水タンクのサイズはどう決めればよいですか?',
20
+ answer: '1ヶ月に予想される最大降水量を計算し、推定される月間消費量と照らし合わせて検討する必要があります。小さすぎると大雨の際に溢れてしまい、大きすぎると不必要にコストがかかります。',
21
+ },
22
+ {
23
+ question: '集めた雨水は飲んでも安全ですか?',
24
+ answer: 'そのままでは安全ではありません。雨水には埃、鳥の糞、空気中の微粒子が含まれています。飲用にする場合は、沈殿フィルター、活性炭、およびUVライトや塩素による消毒を通す必要があります。',
25
+ },
26
+ ];
27
+
28
+ const howToData = [
29
+ {
30
+ name: '水平投影面積を測定する',
31
+ text: '屋根の土台の長さと幅を測定します(斜面の面積ではなく、地面に落ちる影の面積です)。',
32
+ },
33
+ {
34
+ name: '地域の降水量を確認する',
35
+ text: '気象庁などのデータで、お住まいの地域の年間または月間の平均降水量(ミリメートル単位)を確認します。',
36
+ },
37
+ {
38
+ name: '材質の効率を適用する',
39
+ text: '計算機で屋根の材質を選択し、吸収や熱で失われる水の分を差し引きます。',
40
+ },
41
+ {
42
+ name: '必要な容量を計算する',
43
+ text: '年間収穫量の結果を参考に、乾季のために総収穫量の少なくとも20~30%を貯蔵できるタンクを選びます。',
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: 'ja',
79
+ };
80
+
81
+ export const content: RainHarvesterLocaleContent = {
82
+ slug,
83
+ title,
84
+ description,
85
+ ui: {
86
+ headInputs: '屋根の設定',
87
+ headResults: '収穫ポテンシャル',
88
+ labelArea: '屋根面積',
89
+ labelRainfall: '年間降水量',
90
+ labelMaterial: '屋根の材質',
91
+ unitM2: 'm²',
92
+ unitMm: 'mm',
93
+ unitLiters: 'リットル',
94
+ helpRainfall: '分からない場合は、Googleで「(お住まいの都市名) 年間平均降水量」を検索してください。',
95
+ efficiencyTitle: '効率係数',
96
+ efficiencyNote: 'フィルターや蒸発による損失として10%を差し引いています。',
97
+ resultTitle: '年間に集められる水の量',
98
+ equivalenciesTitle: '活用例(目安)',
99
+ labelFlushes: 'トイレの洗浄回数',
100
+ labelShowers: 'シャワー(10分間)',
101
+ labelGarden: '庭への散水',
102
+ gardenArea: '(50m²)',
103
+ materialMetal: '金属 / 釉薬瓦',
104
+ materialClay: '素焼き瓦 / 粘土',
105
+ materialConcrete: 'コンクリート / アスファルト',
106
+ materialGravel: '砂利 / 屋上緑化',
107
+ },
108
+ seo: [
109
+ {
110
+ type: 'title',
111
+ text: '雨水利用:自立とサステナビリティ',
112
+ level: 2,
113
+ },
114
+ {
115
+ type: 'paragraph',
116
+ html: '多くの住宅所有者は、自分の屋根が持つポテンシャルに気づいていません。標準的な屋根は、毎年何千リットルもの無料の水をキャッチすることができます。このツールはそのポテンシャルを数値化し、どれくらいの水を「収穫」できるかを正確に計算することで、理想的な貯水タンクのサイズを決定する助けとなります。',
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: '計算のロジック',
121
+ level: 3,
122
+ },
123
+ {
124
+ type: 'paragraph',
125
+ html: '雨水収集の基本式はシンプルですが強力です:',
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;">容量 = 面積 × 降水量 × 流出係数 × フィルター効率</code>',
130
+ },
131
+ {
132
+ type: 'list',
133
+ items: [
134
+ '<strong>面積:</strong> 屋根の設置面積(投影された長さ × 幅)。',
135
+ '<strong>降水量:</strong> ミリメートル単位の降雨量。',
136
+ '<strong>係数:</strong> 屋根でどれだけの水が失われるか(吸収など)。',
137
+ '<strong>効率:</strong> タンク前のフィルターでの損失(約10%)。',
138
+ ],
139
+ },
140
+ {
141
+ type: 'title',
142
+ text: 'なぜ雨水を集めるのか?',
143
+ level: 3,
144
+ },
145
+ {
146
+ type: 'list',
147
+ items: [
148
+ '<strong>節約:</strong> 水道料金を大幅に削減できます。',
149
+ '<strong>ガーデニング:</strong> 植物は塩素や石灰を含まない水を好みます。',
150
+ '<strong>レジリエンス:</strong> 断水時の非常用備蓄として活用できます。',
151
+ ],
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'タンクのサイズ選定',
156
+ level: 2,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: '最も多い間違いは、予算だけでタンクを購入することです。小さすぎると大雨の際に溢れて無駄になり、大きすぎると不必要なコストがかかります。一般的なルールは、乾季を乗り切るために地域の平均降水量の<strong>3ヶ月分</strong>を貯蔵できる容量を持つことです。',
161
+ },
162
+ ],
163
+ faq: faqData,
164
+ howTo: howToData,
165
+ bibliography,
166
+ schemas: [faqSchema, howToSchema, appSchema],
167
+ };