@jjlmoya/utils-home 1.6.0 → 1.7.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.
- package/package.json +61 -60
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/dewPointCalculator/i18n/de.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/en.ts +1 -1
- package/src/tool/dewPointCalculator/i18n/es.ts +1 -1
- package/src/tool/dewPointCalculator/i18n/fr.ts +1 -1
- package/src/tool/dewPointCalculator/i18n/id.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/it.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/ja.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/ko.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/nl.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/pl.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/pt.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/ru.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/sv.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/tr.ts +178 -0
- package/src/tool/dewPointCalculator/i18n/zh.ts +178 -0
- package/src/tool/dewPointCalculator/index.ts +16 -6
- package/src/tool/heatingComparator/i18n/de.ts +340 -0
- package/src/tool/heatingComparator/i18n/id.ts +324 -0
- package/src/tool/heatingComparator/i18n/it.ts +336 -0
- package/src/tool/heatingComparator/i18n/ja.ts +311 -0
- package/src/tool/heatingComparator/i18n/ko.ts +307 -0
- package/src/tool/heatingComparator/i18n/nl.ts +336 -0
- package/src/tool/heatingComparator/i18n/pl.ts +311 -0
- package/src/tool/heatingComparator/i18n/pt.ts +336 -0
- package/src/tool/heatingComparator/i18n/ru.ts +307 -0
- package/src/tool/heatingComparator/i18n/sv.ts +311 -0
- package/src/tool/heatingComparator/i18n/tr.ts +324 -0
- package/src/tool/heatingComparator/i18n/zh.ts +307 -0
- package/src/tool/heatingComparator/index.ts +13 -1
- package/src/tool/ledSavingCalculator/i18n/de.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/fr.ts +1 -1
- package/src/tool/ledSavingCalculator/i18n/id.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/it.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/ja.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/ko.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/nl.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/pl.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/pt.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/ru.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/sv.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/tr.ts +208 -0
- package/src/tool/ledSavingCalculator/i18n/zh.ts +208 -0
- package/src/tool/ledSavingCalculator/index.ts +16 -7
- package/src/tool/projectorCalculator/i18n/de.ts +180 -0
- package/src/tool/projectorCalculator/i18n/fr.ts +1 -1
- package/src/tool/projectorCalculator/i18n/id.ts +181 -0
- package/src/tool/projectorCalculator/i18n/it.ts +180 -0
- package/src/tool/projectorCalculator/i18n/ja.ts +180 -0
- package/src/tool/projectorCalculator/i18n/ko.ts +180 -0
- package/src/tool/projectorCalculator/i18n/nl.ts +180 -0
- package/src/tool/projectorCalculator/i18n/pl.ts +180 -0
- package/src/tool/projectorCalculator/i18n/pt.ts +180 -0
- package/src/tool/projectorCalculator/i18n/ru.ts +180 -0
- package/src/tool/projectorCalculator/i18n/sv.ts +180 -0
- package/src/tool/projectorCalculator/i18n/tr.ts +180 -0
- package/src/tool/projectorCalculator/i18n/zh.ts +180 -0
- package/src/tool/projectorCalculator/index.ts +15 -6
- package/src/tool/qrGenerator/i18n/de.ts +203 -0
- package/src/tool/qrGenerator/i18n/id.ts +151 -0
- package/src/tool/qrGenerator/i18n/it.ts +174 -0
- package/src/tool/qrGenerator/i18n/ja.ts +151 -0
- package/src/tool/qrGenerator/i18n/ko.ts +151 -0
- package/src/tool/qrGenerator/i18n/nl.ts +151 -0
- package/src/tool/qrGenerator/i18n/pl.ts +151 -0
- package/src/tool/qrGenerator/i18n/pt.ts +151 -0
- package/src/tool/qrGenerator/i18n/ru.ts +151 -0
- package/src/tool/qrGenerator/i18n/sv.ts +151 -0
- package/src/tool/qrGenerator/i18n/tr.ts +151 -0
- package/src/tool/qrGenerator/i18n/zh.ts +151 -0
- package/src/tool/qrGenerator/index.ts +17 -9
- package/src/tool/solarCalculator/i18n/de.ts +146 -0
- package/src/tool/solarCalculator/i18n/id.ts +126 -0
- package/src/tool/solarCalculator/i18n/it.ts +126 -0
- package/src/tool/solarCalculator/i18n/ja.ts +126 -0
- package/src/tool/solarCalculator/i18n/ko.ts +121 -0
- package/src/tool/solarCalculator/i18n/nl.ts +120 -0
- package/src/tool/solarCalculator/i18n/pl.ts +121 -0
- package/src/tool/solarCalculator/i18n/pt.ts +126 -0
- package/src/tool/solarCalculator/i18n/ru.ts +110 -0
- package/src/tool/solarCalculator/i18n/sv.ts +110 -0
- package/src/tool/solarCalculator/i18n/tr.ts +120 -0
- package/src/tool/solarCalculator/i18n/zh.ts +121 -0
- package/src/tool/solarCalculator/index.ts +17 -9
- package/src/tool/tariffComparator/i18n/de.ts +133 -0
- package/src/tool/tariffComparator/i18n/id.ts +133 -0
- package/src/tool/tariffComparator/i18n/it.ts +133 -0
- package/src/tool/tariffComparator/i18n/ja.ts +133 -0
- package/src/tool/tariffComparator/i18n/ko.ts +133 -0
- package/src/tool/tariffComparator/i18n/nl.ts +133 -0
- package/src/tool/tariffComparator/i18n/pl.ts +133 -0
- package/src/tool/tariffComparator/i18n/pt.ts +133 -0
- package/src/tool/tariffComparator/i18n/ru.ts +106 -0
- package/src/tool/tariffComparator/i18n/sv.ts +111 -0
- package/src/tool/tariffComparator/i18n/tr.ts +133 -0
- package/src/tool/tariffComparator/i18n/zh.ts +133 -0
- package/src/tool/tariffComparator/index.ts +16 -7
- package/src/types.ts +1 -1
|
@@ -0,0 +1,146 @@
|
|
|
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-neigung-rechner';
|
|
6
|
+
const title = 'Solarpanel Neigungsrechner';
|
|
7
|
+
const description =
|
|
8
|
+
'Berechnen Sie den optimalen Neigungswinkel für Ihre Solarmodule basierend auf Ihrem Breitengrad. Für feste Installationen und saisonale Anpassungen.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Was passiert, wenn mein Dach nicht die perfekte Neigung hat?',
|
|
13
|
+
answer:
|
|
14
|
+
'Das ist kein großes Problem. Verluste durch Abweichungen von 5-10° liegen bei weniger als 3 % der Jahresproduktion. Es ist wichtiger, Schatten zu vermeiden, als den exakten Winkel zu jagen.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Ist der optimale Winkel überall auf der Welt gleich?',
|
|
18
|
+
answer:
|
|
19
|
+
'Nein. Er hängt direkt von Ihrem Breitengrad ab. In Madrid (~40°N) ist der Winkel anders als in Oslo (~60°N) oder Sydney (~34°S).',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'In welche Richtung sollten die Paneele zeigen?',
|
|
23
|
+
answer:
|
|
24
|
+
'Auf der Nordhalbkugel immer nach Süden (Azimut 180°). Auf der Südhalbkugel nach Norden. Eine Ost-West-Ausrichtung kann 15-20 % Verlust gegenüber dem Optimum bedeuten.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Funktioniert das auch für Solarthermie (Warmwasser)?',
|
|
28
|
+
answer:
|
|
29
|
+
'Ja. Die Formeln für die Neigung sind für thermische Kollektoren und Photovoltaik identisch, da beide auf dem gleichen geometrischen Prinzip basieren.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Breitengrad eingeben',
|
|
36
|
+
text: 'Geben Sie Ihren Breitengrad in Dezimalgrad ein oder nutzen Sie die automatische Standorterkennung.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Optimalen Winkel prüfen',
|
|
40
|
+
text: 'Der optimale Ganzjahreswinkel ist der Hauptwert für feste Installationen.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Saisonal anpassen (optional)',
|
|
44
|
+
text: 'Wenn Ihre Halterung verstellbar ist, nutzen Sie die Winter- und Sommerwinkel für maximale Erträge.',
|
|
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,
|
|
62
|
+
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: 'EUR' },
|
|
78
|
+
inLanguage: 'de',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<SolarCalculatorUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Häufig gestellte Fragen',
|
|
86
|
+
faq: faqData,
|
|
87
|
+
bibliographyTitle: 'Quellen',
|
|
88
|
+
bibliography: [
|
|
89
|
+
{ name: 'NREL PVWatts Rechner', url: 'https://pvwatts.nrel.gov/' },
|
|
90
|
+
{ name: 'PVGIS — Europäisches Solar-Tool', url: 'https://re.jrc.ec.europa.eu/pvgis/' },
|
|
91
|
+
],
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Die Wissenschaft der Solar-Neigung',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Der Unterschied zwischen einer hohen Stromersparnis und einer suboptimalen Anlage liegt oft im Winkel. Die Sonnenstrahlung ist dynamisch und ändert sich mit der Uhrzeit und Jahreszeit.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'stats',
|
|
106
|
+
items: [
|
|
107
|
+
{ value: 'Breite × 0,87', label: 'Faustformel', icon: 'mdi:angle-acute' },
|
|
108
|
+
{ value: '± 15°', label: 'Saisonaler Abgleich', icon: 'mdi:calendar-sync' },
|
|
109
|
+
],
|
|
110
|
+
columns: 2,
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
type: 'comparative',
|
|
114
|
+
items: [
|
|
115
|
+
{
|
|
116
|
+
title: 'Das Prinzip der Rechtwinkligkeit',
|
|
117
|
+
description: 'Ein Solarpanel arbeitet am effektivsten, wenn die Sonnenstrahlen im 90°-Winkel auftreffen.',
|
|
118
|
+
icon: 'mdi:solar-panel',
|
|
119
|
+
points: ['Maximiert die Energieausbeute', 'Basis aller Neigungsberechnungen'],
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
columns: 1,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'summary',
|
|
126
|
+
title: 'Tipps für eine effiziente Installation',
|
|
127
|
+
items: [
|
|
128
|
+
'Der Ganzjahreswinkel ist ideal für feste Montagen.',
|
|
129
|
+
'Abweichungen von ±5° sind vernachlässigbar.',
|
|
130
|
+
'Verschattung vermeiden ist wichtiger als der exakte Winkel.',
|
|
131
|
+
'Auf der Nordhalbkugel nach Süden ausrichten.',
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
],
|
|
135
|
+
ui: {
|
|
136
|
+
labelLatitude: 'Geographische Breite',
|
|
137
|
+
btnLocate: 'Meinen Standort finden',
|
|
138
|
+
labelOptimal: 'Optimaler Ganzjahreswinkel',
|
|
139
|
+
labelEfficiency: 'Maximale Effizienz',
|
|
140
|
+
labelWinter: 'Winter',
|
|
141
|
+
labelSummer: 'Sommer',
|
|
142
|
+
hemisphereNorth: 'Nordhalbkugel — Nach SÜDEN ausrichten',
|
|
143
|
+
hemisphereSouth: 'Südhalbkugel — Nach NORDEN ausrichten',
|
|
144
|
+
geoNotAvailable: 'Geolokalisierung wird nicht unterstützt.',
|
|
145
|
+
},
|
|
146
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
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 = 'kalkulator-solar';
|
|
6
|
+
const title = 'Kalkulator Kemiringan Panel Surya';
|
|
7
|
+
const description =
|
|
8
|
+
'Hitung sudut kemiringan optimal untuk panel surya Anda berdasarkan lintang geografis Anda. Dapatkan nilai untuk pemasangan tetap dan penyesuaian musiman.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Apa yang terjadi jika atap saya tidak memiliki kemiringan yang sempurna?',
|
|
13
|
+
answer:
|
|
14
|
+
'Ini bukan masalah serius. Kerugian dari penyimpangan kecil (5-10°) kurang dari 3% dari produksi tahunan. Lebih penting untuk menghindari bayangan parsial daripada terobsesi dengan sudut yang tepat.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Apakah sudut optimal sama di seluruh dunia?',
|
|
18
|
+
answer:
|
|
19
|
+
'Tidak. Ini sangat bergantung pada lintang Anda. Seseorang di Madrid (~40°LU) memiliki sudut optimal yang berbeda dari seseorang di Jakarta (~6°LS).',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Kearah mana panel harus menghadap?',
|
|
23
|
+
answer:
|
|
24
|
+
'Di Belahan Bumi Utara, selalu menghadap ke Selatan (azimuth 180°). Di Belahan Bumi Selatan, menghadap ke Utara. Orientasi Timur-Barat dapat menyebabkan kerugian 15-20% dibandingkan optimal.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Apakah ini juga berlaku untuk pemanas air surya?',
|
|
28
|
+
answer:
|
|
29
|
+
'Ya. Formula untuk kemiringan adalah sama untuk kolektor termal dan panel fotovoltaik, karena keduanya bergantung pada prinsip geometris yang sama.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Masukkan lintang Anda',
|
|
36
|
+
text: 'Tulis lintang lokasi Anda dalam derajat desimal, atau gunakan tombol deteksi otomatis.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Lihat sudut optimalnya',
|
|
40
|
+
text: 'Sudut optimal tahunan adalah nilai referensi utama untuk instalasi tetap.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Sesuaikan menurut musim (opsional)',
|
|
44
|
+
text: 'Jika dudukan Anda memungkinkan, gunakan sudut musim dingin dan musim panas untuk memaksimalkan produksi.',
|
|
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,
|
|
62
|
+
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: 'IDR' },
|
|
78
|
+
inLanguage: 'id',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<SolarCalculatorUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Pertanyaan Umum',
|
|
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
|
+
],
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'Sains Kemiringan Matahari',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'Efisiensi panel surya Anda sangat bergantung pada sudutnya. Memahami geometri langit adalah langkah pertama untuk mengubah atap Anda menjadi pembangkit listrik berkinerja tinggi.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'summary',
|
|
106
|
+
title: 'Kunci Instalasi Efisien',
|
|
107
|
+
items: [
|
|
108
|
+
'Sudut optimal tahunan adalah referensi utama Anda.',
|
|
109
|
+
'Penyimpangan ±5° hanya mengurangi produksi <3%.',
|
|
110
|
+
'Prioritaskan menghindari bayangan daripada mencari sudut yang sempurna.',
|
|
111
|
+
'Di Belahan Bumi Utara, arahkan panel ke Selatan.',
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
ui: {
|
|
116
|
+
labelLatitude: 'Lintang Geografis',
|
|
117
|
+
btnLocate: 'Deteksi lokasi saya',
|
|
118
|
+
labelOptimal: 'Sudut Optimal Tahunan',
|
|
119
|
+
labelEfficiency: 'Efisiensi Maksimal',
|
|
120
|
+
labelWinter: 'Musim Dingin',
|
|
121
|
+
labelSummer: 'Musim Panas',
|
|
122
|
+
hemisphereNorth: 'Belahan Bumi Utara — Hadapkan ke SELATAN',
|
|
123
|
+
hemisphereSouth: 'Belahan Bumi Selatan — Hadapkan ke UTARA',
|
|
124
|
+
geoNotAvailable: 'Geolokasi tidak tersedia pada browser ini.',
|
|
125
|
+
},
|
|
126
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
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 = 'calcolatore-solare';
|
|
6
|
+
const title = 'Calcolatore Inclinazione Pannelli Solari';
|
|
7
|
+
const description =
|
|
8
|
+
'Calcola l\'angolo di inclinazione ottimale per i tuoi pannelli solari in base alla tua latitudine. Ottieni i valori per installazioni fisse e stagionali.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Cosa succede se il mio tetto non ha l\'inclinazione perfetta?',
|
|
13
|
+
answer:
|
|
14
|
+
'Non è un problema grave. Perdite per deviazioni di 5-10° sono inferiori al 3% della produzione annua. È più importante evitare le ombre che ossessionarsi con l\'angolo esatto.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'L\'angolo ottimale è lo stesso in tutto il mondo?',
|
|
18
|
+
answer:
|
|
19
|
+
'No. Dipende direttamente dalla tua latitudine. A Roma (~41°N) l\'angolo ottimale è diverso da quello di Oslo (~60°N).',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Verso dove devono guardare i pannelli?',
|
|
23
|
+
answer:
|
|
24
|
+
'Nell\'emisfero nord, sempre verso sud (azimut 180°). Nell\'emisfero sud, verso nord.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Serve anche per il solare termico (acqua calda)?',
|
|
28
|
+
answer:
|
|
29
|
+
'Sì. Le formule di inclinazione sono le stesse sia per i collettori termici che per i pannelli fotovoltaici.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Inserisci la latitudine',
|
|
36
|
+
text: 'Scrivi la latitudine in gradi decimali o usa il pulsante per rilevarla automaticamente.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'Verifica l\'angolo ottimale',
|
|
40
|
+
text: 'L\'angolo ottimale annuo è il riferimento principale per installazioni fisse.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Regola per stagione (opzionale)',
|
|
44
|
+
text: 'Se il supporto è regolabile, usa gli angoli di inverno e estate per massimizzare la resa.',
|
|
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,
|
|
62
|
+
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: 'EUR' },
|
|
78
|
+
inLanguage: 'it',
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const content: ToolLocaleContent<SolarCalculatorUI> = {
|
|
82
|
+
slug,
|
|
83
|
+
title,
|
|
84
|
+
description,
|
|
85
|
+
faqTitle: 'Domande Frequenti',
|
|
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
|
+
],
|
|
92
|
+
howTo: howToData,
|
|
93
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
94
|
+
seo: [
|
|
95
|
+
{
|
|
96
|
+
type: 'title',
|
|
97
|
+
text: 'La Scienza dell\'Inclinazione Solare',
|
|
98
|
+
level: 2,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
type: 'paragraph',
|
|
102
|
+
html: 'L\'efficienza di un impianto solare dipende fortemente dall\'angolazione. Un pannello funziona al massimo quando è perpendicolare ai raggi del sole.',
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'summary',
|
|
106
|
+
title: 'Chiavi per un\'installazione efficiente',
|
|
107
|
+
items: [
|
|
108
|
+
'L\'angolo ottimale annuo è il punto di partenza.',
|
|
109
|
+
'Piccole deviazioni non danneggiano significativamente la resa.',
|
|
110
|
+
'Evitare ombre è la priorità assoluta.',
|
|
111
|
+
'Orientamento a Sud nell\'emisfero nord.',
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
],
|
|
115
|
+
ui: {
|
|
116
|
+
labelLatitude: 'Latitudine Geografica',
|
|
117
|
+
btnLocate: 'Rileva posizione',
|
|
118
|
+
labelOptimal: 'Angolo Ottimale Annuo',
|
|
119
|
+
labelEfficiency: 'Efficienza Massima',
|
|
120
|
+
labelWinter: 'Inverno',
|
|
121
|
+
labelSummer: 'Estate',
|
|
122
|
+
hemisphereNorth: 'Emisfero Nord — Orientare a SUD',
|
|
123
|
+
hemisphereSouth: 'Emisfero Sud — Orientare a NORD',
|
|
124
|
+
geoNotAvailable: 'Geolocalizzazione non supportata.',
|
|
125
|
+
},
|
|
126
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
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,
|
|
62
|
+
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
|
+
};
|
|
@@ -0,0 +1,121 @@
|
|
|
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,
|
|
57
|
+
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
|
+
};
|