@jjlmoya/utils-home 1.16.0 → 1.23.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 (174) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/de.ts +10 -10
  3. package/src/category/i18n/en.ts +8 -8
  4. package/src/category/i18n/es.ts +2 -2
  5. package/src/category/i18n/fr.ts +15 -15
  6. package/src/category/i18n/id.ts +8 -8
  7. package/src/category/i18n/it.ts +7 -7
  8. package/src/category/i18n/nl.ts +8 -8
  9. package/src/category/i18n/pl.ts +10 -10
  10. package/src/category/i18n/pt.ts +8 -8
  11. package/src/category/i18n/ru.ts +10 -10
  12. package/src/category/i18n/sv.ts +8 -8
  13. package/src/category/i18n/tr.ts +4 -4
  14. package/src/category/i18n/zh.ts +8 -8
  15. package/src/entries.ts +4 -1
  16. package/src/pages/[locale]/[slug].astro +28 -12
  17. package/src/tests/locale_completeness.test.ts +4 -22
  18. package/src/tests/no_en_dash.test.ts +70 -0
  19. package/src/tests/shared-test-helpers.ts +56 -0
  20. package/src/tests/tool_exports.test.ts +34 -0
  21. package/src/tests/tool_validation.test.ts +2 -2
  22. package/src/tool/dewPointCalculator/bibliography.ts +10 -0
  23. package/src/tool/dewPointCalculator/i18n/de.ts +7 -17
  24. package/src/tool/dewPointCalculator/i18n/en.ts +8 -18
  25. package/src/tool/dewPointCalculator/i18n/es.ts +7 -17
  26. package/src/tool/dewPointCalculator/i18n/fr.ts +8 -18
  27. package/src/tool/dewPointCalculator/i18n/id.ts +7 -17
  28. package/src/tool/dewPointCalculator/i18n/it.ts +7 -17
  29. package/src/tool/dewPointCalculator/i18n/ja.ts +6 -16
  30. package/src/tool/dewPointCalculator/i18n/ko.ts +6 -16
  31. package/src/tool/dewPointCalculator/i18n/nl.ts +7 -17
  32. package/src/tool/dewPointCalculator/i18n/pl.ts +7 -17
  33. package/src/tool/dewPointCalculator/i18n/pt.ts +7 -17
  34. package/src/tool/dewPointCalculator/i18n/ru.ts +13 -23
  35. package/src/tool/dewPointCalculator/i18n/sv.ts +7 -17
  36. package/src/tool/dewPointCalculator/i18n/tr.ts +6 -16
  37. package/src/tool/dewPointCalculator/i18n/zh.ts +7 -17
  38. package/src/tool/dewPointCalculator/seo.astro +2 -1
  39. package/src/tool/heatingComparator/bibliography.ts +14 -0
  40. package/src/tool/heatingComparator/i18n/de.ts +10 -24
  41. package/src/tool/heatingComparator/i18n/en.ts +3 -13
  42. package/src/tool/heatingComparator/i18n/es.ts +3 -17
  43. package/src/tool/heatingComparator/i18n/fr.ts +9 -19
  44. package/src/tool/heatingComparator/i18n/id.ts +3 -17
  45. package/src/tool/heatingComparator/i18n/it.ts +3 -17
  46. package/src/tool/heatingComparator/i18n/ja.ts +296 -310
  47. package/src/tool/heatingComparator/i18n/ko.ts +296 -306
  48. package/src/tool/heatingComparator/i18n/nl.ts +3 -17
  49. package/src/tool/heatingComparator/i18n/pl.ts +3 -17
  50. package/src/tool/heatingComparator/i18n/pt.ts +3 -17
  51. package/src/tool/heatingComparator/i18n/ru.ts +14 -24
  52. package/src/tool/heatingComparator/i18n/sv.ts +6 -20
  53. package/src/tool/heatingComparator/i18n/tr.ts +2 -16
  54. package/src/tool/heatingComparator/i18n/zh.ts +296 -306
  55. package/src/tool/heatingComparator/seo.astro +3 -3
  56. package/src/tool/ledSavingCalculator/bibliography.ts +14 -0
  57. package/src/tool/ledSavingCalculator/i18n/de.ts +6 -16
  58. package/src/tool/ledSavingCalculator/i18n/en.ts +6 -20
  59. package/src/tool/ledSavingCalculator/i18n/es.ts +6 -20
  60. package/src/tool/ledSavingCalculator/i18n/fr.ts +10 -24
  61. package/src/tool/ledSavingCalculator/i18n/id.ts +5 -15
  62. package/src/tool/ledSavingCalculator/i18n/it.ts +6 -16
  63. package/src/tool/ledSavingCalculator/i18n/ja.ts +5 -15
  64. package/src/tool/ledSavingCalculator/i18n/ko.ts +4 -14
  65. package/src/tool/ledSavingCalculator/i18n/nl.ts +5 -15
  66. package/src/tool/ledSavingCalculator/i18n/pl.ts +5 -15
  67. package/src/tool/ledSavingCalculator/i18n/pt.ts +5 -15
  68. package/src/tool/ledSavingCalculator/i18n/ru.ts +8 -18
  69. package/src/tool/ledSavingCalculator/i18n/sv.ts +5 -15
  70. package/src/tool/ledSavingCalculator/i18n/tr.ts +5 -15
  71. package/src/tool/ledSavingCalculator/i18n/zh.ts +6 -16
  72. package/src/tool/ledSavingCalculator/seo.astro +2 -1
  73. package/src/tool/projectorCalculator/bibliography.ts +5 -0
  74. package/src/tool/projectorCalculator/i18n/de.ts +4 -8
  75. package/src/tool/projectorCalculator/i18n/en.ts +3 -8
  76. package/src/tool/projectorCalculator/i18n/es.ts +4 -9
  77. package/src/tool/projectorCalculator/i18n/fr.ts +6 -11
  78. package/src/tool/projectorCalculator/i18n/id.ts +4 -9
  79. package/src/tool/projectorCalculator/i18n/it.ts +4 -8
  80. package/src/tool/projectorCalculator/i18n/ja.ts +175 -179
  81. package/src/tool/projectorCalculator/i18n/ko.ts +175 -179
  82. package/src/tool/projectorCalculator/i18n/nl.ts +4 -8
  83. package/src/tool/projectorCalculator/i18n/pl.ts +5 -9
  84. package/src/tool/projectorCalculator/i18n/pt.ts +4 -8
  85. package/src/tool/projectorCalculator/i18n/ru.ts +7 -11
  86. package/src/tool/projectorCalculator/i18n/sv.ts +4 -8
  87. package/src/tool/projectorCalculator/i18n/tr.ts +4 -8
  88. package/src/tool/projectorCalculator/i18n/zh.ts +175 -179
  89. package/src/tool/projectorCalculator/seo.astro +2 -1
  90. package/src/tool/qrGenerator/bibliography.ts +14 -0
  91. package/src/tool/qrGenerator/i18n/de.ts +192 -202
  92. package/src/tool/qrGenerator/i18n/en.ts +3 -17
  93. package/src/tool/qrGenerator/i18n/es.ts +2 -16
  94. package/src/tool/qrGenerator/i18n/fr.ts +3 -17
  95. package/src/tool/qrGenerator/i18n/id.ts +146 -150
  96. package/src/tool/qrGenerator/i18n/it.ts +169 -173
  97. package/src/tool/qrGenerator/i18n/ja.ts +146 -150
  98. package/src/tool/qrGenerator/i18n/ko.ts +146 -150
  99. package/src/tool/qrGenerator/i18n/nl.ts +146 -150
  100. package/src/tool/qrGenerator/i18n/pl.ts +146 -150
  101. package/src/tool/qrGenerator/i18n/pt.ts +146 -150
  102. package/src/tool/qrGenerator/i18n/ru.ts +146 -150
  103. package/src/tool/qrGenerator/i18n/sv.ts +146 -150
  104. package/src/tool/qrGenerator/i18n/tr.ts +146 -150
  105. package/src/tool/qrGenerator/i18n/zh.ts +146 -150
  106. package/src/tool/qrGenerator/seo.astro +2 -1
  107. package/src/tool/solarCalculator/bibliography.ts +5 -0
  108. package/src/tool/solarCalculator/i18n/de.ts +141 -145
  109. package/src/tool/solarCalculator/i18n/en.ts +7 -12
  110. package/src/tool/solarCalculator/i18n/es.ts +5 -10
  111. package/src/tool/solarCalculator/i18n/fr.ts +8 -13
  112. package/src/tool/solarCalculator/i18n/id.ts +4 -8
  113. package/src/tool/solarCalculator/i18n/it.ts +4 -8
  114. package/src/tool/solarCalculator/i18n/ja.ts +121 -125
  115. package/src/tool/solarCalculator/i18n/ko.ts +116 -120
  116. package/src/tool/solarCalculator/i18n/nl.ts +4 -7
  117. package/src/tool/solarCalculator/i18n/pl.ts +5 -9
  118. package/src/tool/solarCalculator/i18n/pt.ts +4 -8
  119. package/src/tool/solarCalculator/i18n/ru.ts +7 -10
  120. package/src/tool/solarCalculator/i18n/sv.ts +4 -7
  121. package/src/tool/solarCalculator/i18n/tr.ts +4 -7
  122. package/src/tool/solarCalculator/i18n/zh.ts +116 -120
  123. package/src/tool/solarCalculator/seo.astro +2 -1
  124. package/src/tool/tariffComparator/bibliography.ts +7 -0
  125. package/src/tool/tariffComparator/i18n/de.ts +129 -132
  126. package/src/tool/tariffComparator/i18n/en.ts +5 -12
  127. package/src/tool/tariffComparator/i18n/es.ts +5 -12
  128. package/src/tool/tariffComparator/i18n/fr.ts +8 -15
  129. package/src/tool/tariffComparator/i18n/id.ts +2 -5
  130. package/src/tool/tariffComparator/i18n/it.ts +2 -5
  131. package/src/tool/tariffComparator/i18n/ja.ts +129 -132
  132. package/src/tool/tariffComparator/i18n/ko.ts +129 -132
  133. package/src/tool/tariffComparator/i18n/nl.ts +2 -5
  134. package/src/tool/tariffComparator/i18n/pl.ts +3 -6
  135. package/src/tool/tariffComparator/i18n/pt.ts +2 -5
  136. package/src/tool/tariffComparator/i18n/ru.ts +2 -5
  137. package/src/tool/tariffComparator/i18n/sv.ts +2 -5
  138. package/src/tool/tariffComparator/i18n/tr.ts +2 -5
  139. package/src/tool/tariffComparator/i18n/zh.ts +129 -132
  140. package/src/tool/tariffComparator/seo.astro +2 -1
  141. package/src/tool/wifiRangeSimulator/bibliography.astro +14 -0
  142. package/src/tool/wifiRangeSimulator/bibliography.ts +14 -0
  143. package/src/tool/wifiRangeSimulator/component.astro +170 -0
  144. package/src/tool/wifiRangeSimulator/entry.ts +29 -0
  145. package/src/tool/wifiRangeSimulator/i18n/de.ts +477 -0
  146. package/src/tool/wifiRangeSimulator/i18n/en.ts +477 -0
  147. package/src/tool/wifiRangeSimulator/i18n/es.ts +477 -0
  148. package/src/tool/wifiRangeSimulator/i18n/fr.ts +477 -0
  149. package/src/tool/wifiRangeSimulator/i18n/id.ts +477 -0
  150. package/src/tool/wifiRangeSimulator/i18n/it.ts +477 -0
  151. package/src/tool/wifiRangeSimulator/i18n/ja.ts +477 -0
  152. package/src/tool/wifiRangeSimulator/i18n/ko.ts +477 -0
  153. package/src/tool/wifiRangeSimulator/i18n/nl.ts +477 -0
  154. package/src/tool/wifiRangeSimulator/i18n/pl.ts +477 -0
  155. package/src/tool/wifiRangeSimulator/i18n/pt.ts +477 -0
  156. package/src/tool/wifiRangeSimulator/i18n/ru.ts +477 -0
  157. package/src/tool/wifiRangeSimulator/i18n/sv.ts +477 -0
  158. package/src/tool/wifiRangeSimulator/i18n/tr.ts +477 -0
  159. package/src/tool/wifiRangeSimulator/i18n/zh.ts +477 -0
  160. package/src/tool/wifiRangeSimulator/i18n-utils.ts +14 -0
  161. package/src/tool/wifiRangeSimulator/index.ts +8 -0
  162. package/src/tool/wifiRangeSimulator/logic.ts +220 -0
  163. package/src/tool/wifiRangeSimulator/seo.astro +15 -0
  164. package/src/tool/wifiRangeSimulator/sketch-actions.ts +168 -0
  165. package/src/tool/wifiRangeSimulator/sketch-events.ts +138 -0
  166. package/src/tool/wifiRangeSimulator/sketch-render-dash.ts +170 -0
  167. package/src/tool/wifiRangeSimulator/sketch-render-device.ts +42 -0
  168. package/src/tool/wifiRangeSimulator/sketch-render.ts +155 -0
  169. package/src/tool/wifiRangeSimulator/sketch-state.ts +186 -0
  170. package/src/tool/wifiRangeSimulator/sketch.ts +100 -0
  171. package/src/tool/wifiRangeSimulator/ui.ts +69 -0
  172. package/src/tool/wifiRangeSimulator/wifi-range-simulator.css +583 -0
  173. package/src/tools.ts +2 -0
  174. 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 = 'solar-panel-calculator';
6
7
  const title = 'Solar Panel Tilt Angle Calculator';
@@ -86,14 +87,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Frequently Asked Questions',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliography',
92
- bibliography: [
93
- { name: 'NREL PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
94
- { name: 'PVGIS — European Commission Solar Tool', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
95
- { name: 'SEIA — Solar Energy Industry Research Data', 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: [
@@ -104,13 +99,13 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
104
99
  },
105
100
  {
106
101
  type: 'paragraph',
107
- html: 'The difference between a zero-euro electricity bill and an underperforming investment lies, literally, in the angles. <strong>Solar radiation</strong> is not uniform it is a dynamic flow that changes with the hour, the day, and the season. Understanding celestial geometry is the first step to turning your roof into a high-performance power plant.',
102
+ html: 'The difference between a zero-euro electricity bill and an underperforming investment lies, literally, in the angles. <strong>Solar radiation</strong> is not uniform: it is a dynamic flow that changes with the hour, the day, and the season. Understanding celestial geometry is the first step to turning your roof into a high-performance power plant.',
108
103
  },
109
104
  {
110
105
  type: 'stats',
111
106
  items: [
112
107
  { value: 'Lat × 0.87', label: 'General Formula', icon: 'mdi:angle-acute' },
113
- { value: 'Lat × 0.76 + 3.1', label: 'Latitudes 25°–50°', icon: 'mdi:map-marker' },
108
+ { value: 'Lat × 0.76 + 3.1', label: 'Latitudes 25°-50°', icon: 'mdi:map-marker' },
114
109
  { value: '± 15°', label: 'Seasonal Adjustment', icon: 'mdi:calendar-sync' },
115
110
  ],
116
111
  columns: 3,
@@ -140,7 +135,7 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
140
135
  },
141
136
  {
142
137
  type: 'paragraph',
143
- html: '<strong>Summer:</strong> The sun reaches its zenith. Panels should be nearly flat subtract ~15° from your latitude. Take advantage of long days and intense direct radiation. <strong>Winter:</strong> The sun travels low near the horizon. Tilt panels steeper by adding ~15° to your latitude. A steeper angle also helps snow slide off without blocking the cells.',
138
+ html: '<strong>Summer:</strong> The sun reaches its zenith. Panels should be nearly flat: subtract ~15° from your latitude. Take advantage of long days and intense direct radiation. <strong>Winter:</strong> The sun travels low near the horizon. Tilt panels steeper by adding ~15° to your latitude. A steeper angle also helps snow slide off without blocking the cells.',
144
139
  },
145
140
  {
146
141
  type: 'diagnostic',
@@ -169,8 +164,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
169
164
  labelEfficiency: 'Maximum Efficiency',
170
165
  labelWinter: 'Winter',
171
166
  labelSummer: 'Summer',
172
- hemisphereNorth: 'Northern Hemisphere Face SOUTH',
173
- hemisphereSouth: 'Southern Hemisphere Face NORTH',
167
+ hemisphereNorth: 'Northern Hemisphere: Face SOUTH',
168
+ hemisphereSouth: 'Southern Hemisphere: Face NORTH',
174
169
  geoNotAvailable: 'Geolocation is not available in this browser.',
175
170
  },
176
171
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { SolarCalculatorUI } from '../ui';
@@ -86,14 +87,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Preguntas Frecuentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografía',
92
- bibliography: [
93
- { name: 'NREL PVWatts Calculator', url: 'https://pvwatts.nrel.gov/' },
94
- { name: 'PVGIS — European Commission Solar Tool', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
95
- { name: 'SEIA — Solar Energy Industry Research Data', 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: [
@@ -110,7 +105,7 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
110
105
  type: 'stats',
111
106
  items: [
112
107
  { value: 'Lat × 0.87', label: 'Fórmula General', icon: 'mdi:angle-acute' },
113
- { value: 'Lat × 0.76 + 3.1', label: 'Latitudes 25°–50°', icon: 'mdi:map-marker' },
108
+ { value: 'Lat × 0.76 + 3.1', label: 'Latitudes 25°-50°', icon: 'mdi:map-marker' },
114
109
  { value: '± 15°', label: 'Ajuste Estacional', icon: 'mdi:calendar-sync' },
115
110
  ],
116
111
  columns: 3,
@@ -169,8 +164,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
169
164
  labelEfficiency: 'Eficiencia Máxima',
170
165
  labelWinter: 'Invierno',
171
166
  labelSummer: 'Verano',
172
- hemisphereNorth: 'Hemisferio Norte Orientar al SUR',
173
- hemisphereSouth: 'Hemisferio Sur Orientar al NORTE',
167
+ hemisphereNorth: 'Hemisferio Norte: Orientar al SUR',
168
+ hemisphereSouth: 'Hemisferio Sur: Orientar al NORTE',
174
169
  geoNotAvailable: 'Geolocalización no disponible en este navegador.',
175
170
  },
176
171
  };
@@ -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";
@@ -45,7 +46,7 @@ const howToData = [
45
46
  },
46
47
  {
47
48
  name: "Vérifiez l'orientation",
48
- text: "Consultez l'indicateur d'hémisphère : vos panneaux doivent être orientés vers le Sud si vous êtes dans l'hémisphère nord, et vers le Nord dans l'hémisphère sud.",
49
+ text: "Consultez l'indicateur d'hémisphère: vos panneaux doivent être orientés vers le Sud si vous êtes dans l'hémisphère nord, et vers le Nord dans l'hémisphère sud.",
49
50
  },
50
51
  ];
51
52
 
@@ -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: [
@@ -104,13 +99,13 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
104
99
  },
105
100
  {
106
101
  type: 'paragraph',
107
- html: "La différence entre une facture d'électricité nulle et un investissement qui ne porte pas ses fruits se mesure, littéralement, en degrés. Le <strong>rayonnement solaire</strong> n'est pas uniforme : c'est un flux dynamique qui varie selon l'heure, le jour et la saison. Comprendre la géométrie céleste est la première étape pour transformer votre toit en centrale électrique haute performance.",
102
+ html: "La différence entre une facture d'électricité nulle et un investissement qui ne porte pas ses fruits se mesure, littéralement, en degrés. Le <strong>rayonnement solaire</strong> n'est pas uniforme: c'est un flux dynamique qui varie selon l'heure, le jour et la saison. Comprendre la géométrie céleste est la première étape pour transformer votre toit en centrale électrique haute performance.",
108
103
  },
109
104
  {
110
105
  type: 'stats',
111
106
  items: [
112
107
  { value: 'Lat × 0.87', label: 'Formule Générale', icon: 'mdi:angle-acute' },
113
- { value: 'Lat × 0.76 + 3.1', label: 'Latitudes 25°–50°', icon: 'mdi:map-marker' },
108
+ { value: 'Lat × 0.76 + 3.1', label: 'Latitudes 25°-50°', icon: 'mdi:map-marker' },
114
109
  { value: '± 15°', label: 'Ajustement Saisonnier', icon: 'mdi:calendar-sync' },
115
110
  ],
116
111
  columns: 3,
@@ -140,7 +135,7 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
140
135
  },
141
136
  {
142
137
  type: 'paragraph',
143
- html: "<strong>Été :</strong> Le soleil atteint son zénith. Les panneaux doivent être presque plats soustrayez ~15° à votre latitude. Profitez des longues journées et d'un rayonnement direct intense. <strong>Hiver :</strong> Le soleil voyage bas près de l'horizon. Inclinez davantage les panneaux en ajoutant ~15° à votre latitude. Une inclinaison plus forte aide aussi la neige à glisser sans bloquer les cellules.",
138
+ html: "<strong>Été :</strong> Le soleil atteint son zénith. Les panneaux doivent être presque plats: soustrayez ~15° à votre latitude. Profitez des longues journées et d'un rayonnement direct intense. <strong>Hiver :</strong> Le soleil voyage bas près de l'horizon. Inclinez davantage les panneaux en ajoutant ~15° à votre latitude. Une inclinaison plus forte aide aussi la neige à glisser sans bloquer les cellules.",
144
139
  },
145
140
  {
146
141
  type: 'diagnostic',
@@ -169,8 +164,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
169
164
  labelEfficiency: 'Efficacité Maximale',
170
165
  labelWinter: 'Hiver',
171
166
  labelSummer: 'Été',
172
- hemisphereNorth: 'Hémisphère Nord Orienter vers le SUD',
173
- hemisphereSouth: 'Hémisphère Sud Orienter vers le NORD',
167
+ hemisphereNorth: 'Hémisphère Nord: Orienter vers le SUD',
168
+ hemisphereSouth: 'Hémisphère Sud: Orienter vers le NORD',
174
169
  geoNotAvailable: "La géolocalisation n'est pas disponible dans ce navigateur.",
175
170
  },
176
171
  };
@@ -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: [
@@ -119,8 +115,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
119
115
  labelEfficiency: 'Efisiensi Maksimal',
120
116
  labelWinter: 'Musim Dingin',
121
117
  labelSummer: 'Musim Panas',
122
- hemisphereNorth: 'Belahan Bumi Utara Hadapkan ke SELATAN',
123
- hemisphereSouth: 'Belahan Bumi Selatan Hadapkan ke UTARA',
118
+ hemisphereNorth: 'Belahan Bumi Utara: Hadapkan ke SELATAN',
119
+ hemisphereSouth: 'Belahan Bumi Selatan: Hadapkan ke UTARA',
124
120
  geoNotAvailable: 'Geolokasi tidak tersedia pada browser ini.',
125
121
  },
126
122
  };
@@ -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: [
@@ -119,8 +115,8 @@ export const content: ToolLocaleContent<SolarCalculatorUI> = {
119
115
  labelEfficiency: 'Efficienza Massima',
120
116
  labelWinter: 'Inverno',
121
117
  labelSummer: 'Estate',
122
- hemisphereNorth: 'Emisfero Nord Orientare a SUD',
123
- hemisphereSouth: 'Emisfero Sud Orientare a NORD',
118
+ hemisphereNorth: 'Emisfero Nord: Orientare a SUD',
119
+ hemisphereSouth: 'Emisfero Sud: Orientare a NORD',
124
120
  geoNotAvailable: 'Geolocalizzazione non supportata.',
125
121
  },
126
122
  };
@@ -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
+ };