@jjlmoya/utils-home 1.16.0 → 1.17.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 (125) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +28 -12
  3. package/src/tests/locale_completeness.test.ts +2 -20
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/dewPointCalculator/bibliography.ts +10 -0
  7. package/src/tool/dewPointCalculator/i18n/de.ts +2 -12
  8. package/src/tool/dewPointCalculator/i18n/en.ts +2 -12
  9. package/src/tool/dewPointCalculator/i18n/es.ts +2 -12
  10. package/src/tool/dewPointCalculator/i18n/fr.ts +2 -12
  11. package/src/tool/dewPointCalculator/i18n/id.ts +2 -12
  12. package/src/tool/dewPointCalculator/i18n/it.ts +2 -12
  13. package/src/tool/dewPointCalculator/i18n/ja.ts +2 -12
  14. package/src/tool/dewPointCalculator/i18n/ko.ts +2 -12
  15. package/src/tool/dewPointCalculator/i18n/nl.ts +2 -12
  16. package/src/tool/dewPointCalculator/i18n/pl.ts +2 -12
  17. package/src/tool/dewPointCalculator/i18n/pt.ts +2 -12
  18. package/src/tool/dewPointCalculator/i18n/ru.ts +2 -12
  19. package/src/tool/dewPointCalculator/i18n/sv.ts +2 -12
  20. package/src/tool/dewPointCalculator/i18n/tr.ts +2 -12
  21. package/src/tool/dewPointCalculator/i18n/zh.ts +2 -12
  22. package/src/tool/dewPointCalculator/seo.astro +2 -1
  23. package/src/tool/heatingComparator/bibliography.ts +14 -0
  24. package/src/tool/heatingComparator/i18n/de.ts +2 -16
  25. package/src/tool/heatingComparator/i18n/en.ts +2 -12
  26. package/src/tool/heatingComparator/i18n/es.ts +2 -16
  27. package/src/tool/heatingComparator/i18n/fr.ts +2 -12
  28. package/src/tool/heatingComparator/i18n/id.ts +2 -16
  29. package/src/tool/heatingComparator/i18n/it.ts +2 -16
  30. package/src/tool/heatingComparator/i18n/ja.ts +296 -310
  31. package/src/tool/heatingComparator/i18n/ko.ts +296 -306
  32. package/src/tool/heatingComparator/i18n/nl.ts +2 -16
  33. package/src/tool/heatingComparator/i18n/pl.ts +2 -16
  34. package/src/tool/heatingComparator/i18n/pt.ts +2 -16
  35. package/src/tool/heatingComparator/i18n/ru.ts +2 -12
  36. package/src/tool/heatingComparator/i18n/sv.ts +2 -16
  37. package/src/tool/heatingComparator/i18n/tr.ts +2 -16
  38. package/src/tool/heatingComparator/i18n/zh.ts +296 -306
  39. package/src/tool/heatingComparator/seo.astro +3 -3
  40. package/src/tool/ledSavingCalculator/bibliography.ts +14 -0
  41. package/src/tool/ledSavingCalculator/i18n/de.ts +2 -12
  42. package/src/tool/ledSavingCalculator/i18n/en.ts +2 -16
  43. package/src/tool/ledSavingCalculator/i18n/es.ts +2 -16
  44. package/src/tool/ledSavingCalculator/i18n/fr.ts +2 -16
  45. package/src/tool/ledSavingCalculator/i18n/id.ts +2 -12
  46. package/src/tool/ledSavingCalculator/i18n/it.ts +2 -12
  47. package/src/tool/ledSavingCalculator/i18n/ja.ts +2 -12
  48. package/src/tool/ledSavingCalculator/i18n/ko.ts +2 -12
  49. package/src/tool/ledSavingCalculator/i18n/nl.ts +2 -12
  50. package/src/tool/ledSavingCalculator/i18n/pl.ts +2 -12
  51. package/src/tool/ledSavingCalculator/i18n/pt.ts +2 -12
  52. package/src/tool/ledSavingCalculator/i18n/ru.ts +2 -12
  53. package/src/tool/ledSavingCalculator/i18n/sv.ts +2 -12
  54. package/src/tool/ledSavingCalculator/i18n/tr.ts +2 -12
  55. package/src/tool/ledSavingCalculator/i18n/zh.ts +2 -12
  56. package/src/tool/ledSavingCalculator/seo.astro +2 -1
  57. package/src/tool/projectorCalculator/bibliography.ts +5 -0
  58. package/src/tool/projectorCalculator/i18n/de.ts +2 -6
  59. package/src/tool/projectorCalculator/i18n/en.ts +2 -7
  60. package/src/tool/projectorCalculator/i18n/es.ts +2 -7
  61. package/src/tool/projectorCalculator/i18n/fr.ts +2 -7
  62. package/src/tool/projectorCalculator/i18n/id.ts +2 -7
  63. package/src/tool/projectorCalculator/i18n/it.ts +2 -6
  64. package/src/tool/projectorCalculator/i18n/ja.ts +175 -179
  65. package/src/tool/projectorCalculator/i18n/ko.ts +175 -179
  66. package/src/tool/projectorCalculator/i18n/nl.ts +2 -6
  67. package/src/tool/projectorCalculator/i18n/pl.ts +2 -6
  68. package/src/tool/projectorCalculator/i18n/pt.ts +2 -6
  69. package/src/tool/projectorCalculator/i18n/ru.ts +2 -6
  70. package/src/tool/projectorCalculator/i18n/sv.ts +2 -6
  71. package/src/tool/projectorCalculator/i18n/tr.ts +2 -6
  72. package/src/tool/projectorCalculator/i18n/zh.ts +175 -179
  73. package/src/tool/projectorCalculator/seo.astro +2 -1
  74. package/src/tool/qrGenerator/bibliography.ts +14 -0
  75. package/src/tool/qrGenerator/i18n/de.ts +192 -202
  76. package/src/tool/qrGenerator/i18n/en.ts +2 -16
  77. package/src/tool/qrGenerator/i18n/es.ts +2 -16
  78. package/src/tool/qrGenerator/i18n/fr.ts +2 -16
  79. package/src/tool/qrGenerator/i18n/id.ts +146 -150
  80. package/src/tool/qrGenerator/i18n/it.ts +169 -173
  81. package/src/tool/qrGenerator/i18n/ja.ts +146 -150
  82. package/src/tool/qrGenerator/i18n/ko.ts +146 -150
  83. package/src/tool/qrGenerator/i18n/nl.ts +146 -150
  84. package/src/tool/qrGenerator/i18n/pl.ts +146 -150
  85. package/src/tool/qrGenerator/i18n/pt.ts +146 -150
  86. package/src/tool/qrGenerator/i18n/ru.ts +146 -150
  87. package/src/tool/qrGenerator/i18n/sv.ts +146 -150
  88. package/src/tool/qrGenerator/i18n/tr.ts +146 -150
  89. package/src/tool/qrGenerator/i18n/zh.ts +146 -150
  90. package/src/tool/qrGenerator/seo.astro +2 -1
  91. package/src/tool/solarCalculator/bibliography.ts +5 -0
  92. package/src/tool/solarCalculator/i18n/de.ts +141 -145
  93. package/src/tool/solarCalculator/i18n/en.ts +2 -7
  94. package/src/tool/solarCalculator/i18n/es.ts +2 -7
  95. package/src/tool/solarCalculator/i18n/fr.ts +2 -7
  96. package/src/tool/solarCalculator/i18n/id.ts +2 -6
  97. package/src/tool/solarCalculator/i18n/it.ts +2 -6
  98. package/src/tool/solarCalculator/i18n/ja.ts +121 -125
  99. package/src/tool/solarCalculator/i18n/ko.ts +116 -120
  100. package/src/tool/solarCalculator/i18n/nl.ts +2 -5
  101. package/src/tool/solarCalculator/i18n/pl.ts +2 -6
  102. package/src/tool/solarCalculator/i18n/pt.ts +2 -6
  103. package/src/tool/solarCalculator/i18n/ru.ts +2 -5
  104. package/src/tool/solarCalculator/i18n/sv.ts +2 -5
  105. package/src/tool/solarCalculator/i18n/tr.ts +2 -5
  106. package/src/tool/solarCalculator/i18n/zh.ts +116 -120
  107. package/src/tool/solarCalculator/seo.astro +2 -1
  108. package/src/tool/tariffComparator/bibliography.ts +7 -0
  109. package/src/tool/tariffComparator/i18n/de.ts +129 -132
  110. package/src/tool/tariffComparator/i18n/en.ts +2 -9
  111. package/src/tool/tariffComparator/i18n/es.ts +2 -9
  112. package/src/tool/tariffComparator/i18n/fr.ts +2 -9
  113. package/src/tool/tariffComparator/i18n/id.ts +2 -5
  114. package/src/tool/tariffComparator/i18n/it.ts +2 -5
  115. package/src/tool/tariffComparator/i18n/ja.ts +129 -132
  116. package/src/tool/tariffComparator/i18n/ko.ts +129 -132
  117. package/src/tool/tariffComparator/i18n/nl.ts +2 -5
  118. package/src/tool/tariffComparator/i18n/pl.ts +2 -5
  119. package/src/tool/tariffComparator/i18n/pt.ts +2 -5
  120. package/src/tool/tariffComparator/i18n/ru.ts +2 -5
  121. package/src/tool/tariffComparator/i18n/sv.ts +2 -5
  122. package/src/tool/tariffComparator/i18n/tr.ts +2 -5
  123. package/src/tool/tariffComparator/i18n/zh.ts +129 -132
  124. package/src/tool/tariffComparator/seo.astro +2 -1
  125. package/src/types.ts +0 -2
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-solaire';
6
7
  const title = "Calculateur d'Inclinaison de Panneaux Solaires";
@@ -86,14 +87,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Questions Fréquentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliographie',
92
- bibliography: [
93
- { name: 'NREL PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
94
- { name: 'PVGIS — Outil Solaire de la Commission Européenne', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
95
- { name: "SEIA — Données de Recherche sur l'Énergie Solaire", url: 'https://www.seia.org/solar-industry-research-data' },
96
- ],
91
+ bibliography,
97
92
  howTo: howToData,
98
93
  schemas: [faqSchema, howToSchema, appSchema],
99
94
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-solar';
6
7
  const title = 'Kalkulator Kemiringan Panel Surya';
@@ -82,13 +83,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Pertanyaan Umum',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Daftar Pustaka',
88
- bibliography: [
89
- { name: 'NREL PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
90
- { name: 'PVGIS — European Commission Solar Tool', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
91
- ],
87
+ bibliography,
92
88
  howTo: howToData,
93
89
  schemas: [faqSchema, howToSchema, appSchema],
94
90
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatore-solare';
6
7
  const title = 'Calcolatore Inclinazione Pannelli Solari';
@@ -82,13 +83,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Domande Frequenti',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Bibliografia',
88
- bibliography: [
89
- { name: 'PVGIS — Commissione Europea', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
90
- { name: 'PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
91
- ],
87
+ bibliography,
92
88
  howTo: howToData,
93
89
  schemas: [faqSchema, howToSchema, appSchema],
94
90
  seo: [
@@ -1,126 +1,122 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { ToolLocaleContent } from '../../../types';
3
- import type { SolarCalculatorUI } from '../ui';
4
-
5
- const slug = 'solar-panel-calculator';
6
- const title = 'ソーラーパネル傾斜角計算機';
7
- const description =
8
- '緯度に基づいてソーラーパネルの最適な傾斜角を計算します。固定設置および季節ごとの調整値を取得できます。';
9
-
10
- const faqData = [
11
- {
12
- question: '屋根の傾斜が理想的でない場合はどうなりますか?',
13
- answer:
14
- '大きな問題ではありません。5〜10度のズレによる損失は年間発電量の3%未満です。正確な角度にこだわるよりも、パネルの一部が影にならないようにすることの方が重要です。',
15
- },
16
- {
17
- question: '最適な角度は世界中どこでも同じですか?',
18
- answer:
19
- 'いいえ、緯度によって異なります。東京(約35°N)の最適角は、オーストラリアのシドニー(約34°S)やノルウェーのオスロ(約60°N)とは異なります。',
20
- },
21
- {
22
- question: 'パネルはどちらの方向を向くべきですか?',
23
- answer:
24
- '北半球では常に南向き(方位角180°)です。南半球では北向きです。東西に向けると最適方向に対して15〜20%の損失が生じる可能性があります。',
25
- },
26
- {
27
- question: '太陽熱温水器にも使えますか?',
28
- answer:
29
- 'はい。傾斜角の計算式は太陽熱コレクターも太陽光発電パネルも同じ幾何学的原理に基づいています。',
30
- },
31
- ];
32
-
33
- const howToData = [
34
- {
35
- name: '緯度を入力する',
36
- text: 'お住まいの地域の緯度を十進法で入力するか、位置情報取得ボタンを使用して自動検出します。',
37
- },
38
- {
39
- name: '最適な角度を確認する',
40
- text: '年間の最適角度は、固定設置の際の主要な参照値です。',
41
- },
42
- {
43
- name: '季節ごとに調整する(オプション)',
44
- text: '架台が可動式の場合は、冬と夏の角度を使用して季節ごとの発電量を最大化します。',
45
- },
46
- ];
47
-
48
- const faqSchema: WithContext<FAQPage> = {
49
- '@context': 'https://schema.org',
50
- '@type': 'FAQPage',
51
- mainEntity: faqData.map((item) => ({
52
- '@type': 'Question',
53
- name: item.question,
54
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
- })),
56
- };
57
-
58
- const howToSchema: WithContext<HowTo> = {
59
- '@context': 'https://schema.org',
60
- '@type': 'HowTo',
61
- name: title,
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'solar-panel-calculator';
7
+ const title = 'ソーラーパネル傾斜角計算機';
8
+ const description =
9
+ '緯度に基づいてソーラーパネルの最適な傾斜角を計算します。固定設置および季節ごとの調整値を取得できます。';
10
+
11
+ const faqData = [
12
+ {
13
+ question: '屋根の傾斜が理想的でない場合はどうなりますか?',
14
+ answer:
15
+ '大きな問題ではありません。5〜10度のズレによる損失は年間発電量の3%未満です。正確な角度にこだわるよりも、パネルの一部が影にならないようにすることの方が重要です。',
16
+ },
17
+ {
18
+ question: '最適な角度は世界中どこでも同じですか?',
19
+ answer:
20
+ 'いいえ、緯度によって異なります。東京(約35°N)の最適角は、オーストラリアのシドニー(約34°S)やノルウェーのオスロ(約60°N)とは異なります。',
21
+ },
22
+ {
23
+ question: 'パネルはどちらの方向を向くべきですか?',
24
+ answer:
25
+ '北半球では常に南向き(方位角180°)です。南半球では北向きです。東西に向けると最適方向に対して15〜20%の損失が生じる可能性があります。',
26
+ },
27
+ {
28
+ question: '太陽熱温水器にも使えますか?',
29
+ answer:
30
+ 'はい。傾斜角の計算式は太陽熱コレクターも太陽光発電パネルも同じ幾何学的原理に基づいています。',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: '緯度を入力する',
37
+ text: 'お住まいの地域の緯度を十進法で入力するか、位置情報取得ボタンを使用して自動検出します。',
38
+ },
39
+ {
40
+ name: '最適な角度を確認する',
41
+ text: '年間の最適角度は、固定設置の際の主要な参照値です。',
42
+ },
43
+ {
44
+ name: '季節ごとに調整する(オプション)',
45
+ text: '架台が可動式の場合は、冬と夏の角度を使用して季節ごとの発電量を最大化します。',
46
+ },
47
+ ];
48
+
49
+ const faqSchema: WithContext<FAQPage> = {
50
+ '@context': 'https://schema.org',
51
+ '@type': 'FAQPage',
52
+ mainEntity: faqData.map((item) => ({
53
+ '@type': 'Question',
54
+ name: item.question,
55
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
56
+ })),
57
+ };
58
+
59
+ const howToSchema: WithContext<HowTo> = {
60
+ '@context': 'https://schema.org',
61
+ '@type': 'HowTo',
62
+ name: title,
63
+ description,
64
+ step: howToData.map((step) => ({
65
+ '@type': 'HowToStep',
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'UtilityApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' },
79
+ inLanguage: 'ja',
80
+ };
81
+
82
+ export const content: ToolLocaleContent<SolarCalculatorUI> = {
83
+ slug,
84
+ title,
62
85
  description,
63
- step: howToData.map((step) => ({
64
- '@type': 'HowToStep',
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: 'JPY' },
78
- inLanguage: 'ja',
79
- };
80
-
81
- export const content: ToolLocaleContent<SolarCalculatorUI> = {
82
- slug,
83
- title,
84
- description,
85
- faqTitle: 'よくある質問',
86
- faq: faqData,
87
- bibliographyTitle: '参考文献',
88
- bibliography: [
89
- { name: 'PVGIS — 欧州委員会ソーラーツール', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
90
- { name: 'PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
91
- ],
92
- howTo: howToData,
93
- schemas: [faqSchema, howToSchema, appSchema],
94
- seo: [
95
- {
96
- type: 'title',
97
- text: '太陽光発電と傾斜角の科学',
98
- level: 2,
99
- },
100
- {
101
- type: 'paragraph',
102
- html: 'ソーラーパネルの効率は太陽の光が当たる角度に依存します。パネルが太陽光に対して垂直に近いほど、より多くのエネルギーを取り込むことができます。',
103
- },
104
- {
105
- type: 'summary',
106
- title: '効率的な設置のポイント',
107
- items: [
108
- '年間の最適角度を基本参照値とする。',
109
- '±5度のズレは年間発電量に大きな影響を与えない。',
110
- '正確な角度よりも「影を避ける」ことを最優先する。',
111
- '北半球では常に南向きに設置する。',
112
- ],
113
- },
114
- ],
115
- ui: {
116
- labelLatitude: '地理緯度',
117
- btnLocate: '現在地を取得',
118
- labelOptimal: '年間最適角度',
119
- labelEfficiency: '最大効率',
120
- labelWinter: '冬期',
121
- labelSummer: '夏期',
122
- hemisphereNorth: '北半球 — 南に向けて設置',
123
- hemisphereSouth: '南半球 — 北に向けて設置',
124
- geoNotAvailable: 'このブラウザでは位置情報が利用できません。',
125
- },
126
- };
86
+ faq: faqData,
87
+ bibliography,
88
+ howTo: howToData,
89
+ schemas: [faqSchema, howToSchema, appSchema],
90
+ seo: [
91
+ {
92
+ type: 'title',
93
+ text: '太陽光発電と傾斜角の科学',
94
+ level: 2,
95
+ },
96
+ {
97
+ type: 'paragraph',
98
+ html: 'ソーラーパネルの効率は太陽の光が当たる角度に依存します。パネルが太陽光に対して垂直に近いほど、より多くのエネルギーを取り込むことができます。',
99
+ },
100
+ {
101
+ type: 'summary',
102
+ title: '効率的な設置のポイント',
103
+ items: [
104
+ '年間の最適角度を基本参照値とする。',
105
+ '±5度のズレは年間発電量に大きな影響を与えない。',
106
+ '正確な角度よりも「影を避ける」ことを最優先する。',
107
+ '北半球では常に南向きに設置する。',
108
+ ],
109
+ },
110
+ ],
111
+ ui: {
112
+ labelLatitude: '地理緯度',
113
+ btnLocate: '現在地を取得',
114
+ labelOptimal: '年間最適角度',
115
+ labelEfficiency: '最大効率',
116
+ labelWinter: '冬期',
117
+ labelSummer: '夏期',
118
+ hemisphereNorth: '北半球 — 南に向けて設置',
119
+ hemisphereSouth: '南半球 — 北に向けて設置',
120
+ geoNotAvailable: 'このブラウザでは位置情報が利用できません。',
121
+ },
122
+ };
@@ -1,121 +1,117 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import type { ToolLocaleContent } from '../../../types';
3
- import type { SolarCalculatorUI } from '../ui';
4
-
5
- const slug = 'solar-panel-calculator';
6
- const title = '태양광 패널 각도 계산기';
7
- const description =
8
- '지역 위도에 따른 태양광 패널의 최적 기울기 각도를 계산합니다. 고정식 설치 및 계절별 조정 값을 확인해 보세요.';
9
-
10
- const faqData = [
11
- {
12
- question: '지붕 각도가 이상적이지 않으면 어떻게 되나요?',
13
- answer:
14
- '큰 문제는 아닙니다. 5~10도 정도의 오차로 인한 발전량 손실은 연간 3% 미만입니다. 정확한 각도에 집착하기보다 패널에 그림자가 생기지 않도록 하는 것이 더 중요합니다.',
15
- },
16
- {
17
- question: '최적 각도는 전 세계 어디나 같은가요?',
18
- answer:
19
- '아니요. 위도에 따라 다릅니다. 서울(약 37°N)의 최적 각도는 적도 부근이나 남반구 호주와는 확연히 다릅니다.',
20
- },
21
- {
22
- question: '패널은 어느 방향을 향해야 하나요?',
23
- answer:
24
- '북반구에서는 항상 남쪽(방위각 180°)을 향해야 합니다. 남반구에서는 북쪽을 향해야 합니다.',
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
-
43
- const faqSchema: WithContext<FAQPage> = {
44
- '@context': 'https://schema.org',
45
- '@type': 'FAQPage',
46
- mainEntity: faqData.map((item) => ({
47
- '@type': 'Question',
48
- name: item.question,
49
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
50
- })),
51
- };
52
-
53
- const howToSchema: WithContext<HowTo> = {
54
- '@context': 'https://schema.org',
55
- '@type': 'HowTo',
56
- name: title,
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
5
+
6
+ const slug = 'solar-panel-calculator';
7
+ const title = '태양광 패널 각도 계산기';
8
+ const description =
9
+ '지역 위도에 따른 태양광 패널의 최적 기울기 각도를 계산합니다. 고정식 설치 및 계절별 조정 값을 확인해 보세요.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: '지붕 각도가 이상적이지 않으면 어떻게 되나요?',
14
+ answer:
15
+ '큰 문제는 아닙니다. 5~10도 정도의 오차로 인한 발전량 손실은 연간 3% 미만입니다. 정확한 각도에 집착하기보다 패널에 그림자가 생기지 않도록 하는 것이 더 중요합니다.',
16
+ },
17
+ {
18
+ question: '최적 각도는 전 세계 어디나 같은가요?',
19
+ answer:
20
+ '아니요. 위도에 따라 다릅니다. 서울(약 37°N)의 최적 각도는 적도 부근이나 남반구 호주와는 확연히 다릅니다.',
21
+ },
22
+ {
23
+ question: '패널은 어느 방향을 향해야 하나요?',
24
+ answer:
25
+ '북반구에서는 항상 남쪽(방위각 180°)을 향해야 합니다. 남반구에서는 북쪽을 향해야 합니다.',
26
+ },
27
+ ];
28
+
29
+ const howToData = [
30
+ {
31
+ name: '위도 입력',
32
+ text: '현재 위치의 위도를 입력하거나 내 위치 찾기 버튼을 사용하세요.',
33
+ },
34
+ {
35
+ name: '최적 각도 확인',
36
+ text: '고정형 설치 시 연간 최적 각도가 가장 중요한 기준 값입니다.',
37
+ },
38
+ {
39
+ name: '계절별 조정 (선택 사항)',
40
+ text: '가변형 거치대를 사용 중이라면 겨울과 여름 각도를 참고하여 발전량을 높이세요.',
41
+ },
42
+ ];
43
+
44
+ const faqSchema: WithContext<FAQPage> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'FAQPage',
47
+ mainEntity: faqData.map((item) => ({
48
+ '@type': 'Question',
49
+ name: item.question,
50
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
51
+ })),
52
+ };
53
+
54
+ const howToSchema: WithContext<HowTo> = {
55
+ '@context': 'https://schema.org',
56
+ '@type': 'HowTo',
57
+ name: title,
58
+ description,
59
+ step: howToData.map((step) => ({
60
+ '@type': 'HowToStep',
61
+ name: step.name,
62
+ text: step.text,
63
+ })),
64
+ };
65
+
66
+ const appSchema: WithContext<SoftwareApplication> = {
67
+ '@context': 'https://schema.org',
68
+ '@type': 'SoftwareApplication',
69
+ name: title,
70
+ description,
71
+ applicationCategory: 'UtilityApplication',
72
+ operatingSystem: 'All',
73
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' },
74
+ inLanguage: 'ko',
75
+ };
76
+
77
+ export const content: ToolLocaleContent<SolarCalculatorUI> = {
78
+ slug,
79
+ title,
57
80
  description,
58
- step: howToData.map((step) => ({
59
- '@type': 'HowToStep',
60
- name: step.name,
61
- text: step.text,
62
- })),
63
- };
64
-
65
- const appSchema: WithContext<SoftwareApplication> = {
66
- '@context': 'https://schema.org',
67
- '@type': 'SoftwareApplication',
68
- name: title,
69
- description,
70
- applicationCategory: 'UtilityApplication',
71
- operatingSystem: 'All',
72
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' },
73
- inLanguage: 'ko',
74
- };
75
-
76
- export const content: ToolLocaleContent<SolarCalculatorUI> = {
77
- slug,
78
- title,
79
- description,
80
- faqTitle: '자주 묻는 질문',
81
- faq: faqData,
82
- bibliographyTitle: '참고 자료',
83
- bibliography: [
84
- { name: 'PVGIS — 유럽 연합 태양광 도구', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
85
- { name: 'PVWatts 계산기', url: 'https://pvwatts.nrel.gov/' },
86
- ],
87
- howTo: howToData,
88
- schemas: [faqSchema, howToSchema, appSchema],
89
- seo: [
90
- {
91
- type: 'title',
92
- text: '태양광 기울기 설계의 과학',
93
- level: 2,
94
- },
95
- {
96
- type: 'paragraph',
97
- html: '태양광 패널의 효율은 빛이 받는 각도에 달려 있습니다. 패널이 태양과 수직일수록 더 많은 에너지를 생산합니다.',
98
- },
99
- {
100
- type: 'summary',
101
- title: '효율적인 설치 핵심 요약',
102
- items: [
103
- '연간 최적 각도가 기본 설치 지표입니다.',
104
- '±5도 정도의 편차는 발전량에 큰 타격을 주지 않습니다.',
105
- '정확한 각도보다 그림자 방지가 최우선입니다.',
106
- '북반구에서는 항상 정남향으로 설치하세요.',
107
- ],
108
- },
109
- ],
110
- ui: {
111
- labelLatitude: '위도 (Latitude)',
112
- btnLocate: '내 위치 감지',
113
- labelOptimal: '연간 최적 각도',
114
- labelEfficiency: '최대 효율',
115
- labelWinter: '겨울철',
116
- labelSummer: '여름철',
117
- hemisphereNorth: '북반구 — 남쪽 방향 지향',
118
- hemisphereSouth: '남반구 — 북쪽 방향 지향',
119
- geoNotAvailable: '이 브라우저에서는 위치 정보 서비스를 사용할 수 없습니다.',
120
- },
121
- };
81
+ faq: faqData,
82
+ bibliography,
83
+ howTo: howToData,
84
+ schemas: [faqSchema, howToSchema, appSchema],
85
+ seo: [
86
+ {
87
+ type: 'title',
88
+ text: '태양광 기울기 설계의 과학',
89
+ level: 2,
90
+ },
91
+ {
92
+ type: 'paragraph',
93
+ html: '태양광 패널의 효율은 빛이 받는 각도에 달려 있습니다. 패널이 태양과 수직일수록 더 많은 에너지를 생산합니다.',
94
+ },
95
+ {
96
+ type: 'summary',
97
+ title: '효율적인 설치 핵심 요약',
98
+ items: [
99
+ '연간 최적 각도가 기본 설치 지표입니다.',
100
+ '±5도 정도의 편차는 발전량에 큰 타격을 주지 않습니다.',
101
+ '정확한 각도보다 그림자 방지가 최우선입니다.',
102
+ '북반구에서는 항상 정남향으로 설치하세요.',
103
+ ],
104
+ },
105
+ ],
106
+ ui: {
107
+ labelLatitude: '위도 (Latitude)',
108
+ btnLocate: ' 위치 감지',
109
+ labelOptimal: '연간 최적 각도',
110
+ labelEfficiency: '최대 효율',
111
+ labelWinter: '겨울철',
112
+ labelSummer: '여름철',
113
+ hemisphereNorth: '북반구 — 남쪽 방향 지향',
114
+ hemisphereSouth: '남반구 — 북쪽 방향 지향',
115
+ geoNotAvailable: ' 브라우저에서는 위치 정보 서비스를 사용할 수 없습니다.',
116
+ },
117
+ };
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'zonnepanelen-hellingshoek-calculator';
6
7
  const title = 'Zonnepanelen Hellingshoek Calculator';
@@ -77,12 +78,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
77
78
  slug,
78
79
  title,
79
80
  description,
80
- faqTitle: 'Veelgestelde Vragen',
81
81
  faq: faqData,
82
- bibliographyTitle: 'Referenties',
83
- bibliography: [
84
- { name: 'PVGIS Tool', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
85
- ],
82
+ bibliography,
86
83
  howTo: howToData,
87
84
  schemas: [faqSchema, howToSchema, appSchema],
88
85
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-paneli-slonecznych';
6
7
  const title = 'Kalkulator Nachylenia Paneli Słonecznych';
@@ -77,13 +78,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
77
78
  slug,
78
79
  title,
79
80
  description,
80
- faqTitle: 'Często Zadawane Pytania',
81
81
  faq: faqData,
82
- bibliographyTitle: 'Bibliografia',
83
- bibliography: [
84
- { name: 'PVGIS — Europejskie narzędzie solarne', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
85
- { name: 'PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
86
- ],
82
+ bibliography,
87
83
  howTo: howToData,
88
84
  schemas: [faqSchema, howToSchema, appSchema],
89
85
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-inclinacao-paineis';
6
7
  const title = 'Calculadora de Inclinação de Painéis Solares';
@@ -82,13 +83,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
82
83
  slug,
83
84
  title,
84
85
  description,
85
- faqTitle: 'Perguntas Frequentes',
86
86
  faq: faqData,
87
- bibliographyTitle: 'Bibliografia',
88
- bibliography: [
89
- { name: 'PVGIS Tool', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
90
- { name: 'PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
91
- ],
87
+ bibliography,
92
88
  howTo: howToData,
93
89
  schemas: [faqSchema, howToSchema, appSchema],
94
90
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { SolarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'solnechnyj-kalkulyator';
6
7
  const title = 'Калькулятор наклона солнечных панелей';
@@ -68,12 +69,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
68
69
  slug,
69
70
  title,
70
71
  description,
71
- faqTitle: 'Часто задаваемые вопросы',
72
72
  faq: faqData,
73
- bibliographyTitle: 'Библиография',
74
- bibliography: [
75
- { name: 'PVGIS Tool — European Commission', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
76
- ],
73
+ bibliography,
77
74
  howTo: howToData,
78
75
  schemas: [faqSchema, howToSchema, appSchema],
79
76
  seo: [