@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,133 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TariffComparatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'electricity-tariff-comparator';
|
|
6
|
+
const title = '電気料金比較:自由市場 vs 規制料金';
|
|
7
|
+
const description =
|
|
8
|
+
'どちらの電気料金プランがあなたに最適かを見つけましょう。消費電力に基づいて自由市場プランと規制プランを比較します。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '固定料金プランと市場連動型プラン、どちらが良いですか?',
|
|
13
|
+
answer:
|
|
14
|
+
'固定料金は価格の安定性を提供します。市場連動型は市場価格が安い時に有利ですが、高騰するリスクもあります。このツールでシミュレーションを行ってください。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '年間消費電力はどこでわかりますか?',
|
|
18
|
+
answer:
|
|
19
|
+
'検針票や電力会社のマイページに記載されている年間使用量(kWh)を確認してください。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '契約電力とは何ですか?',
|
|
23
|
+
answer:
|
|
24
|
+
'一度に使える電気の上限(kWまたはA)です。高すぎると基本料金が無駄になり、低すぎるとブレーカーが落ちやすくなります。',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: '検針票を確認',
|
|
31
|
+
text: '前年1年間の消費量(kWh)と現在の契約容量を確認します。',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: '値を入力',
|
|
35
|
+
text: 'スライダーをご自身の実際のデータに合わせます。',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: '結果を比較',
|
|
39
|
+
text: '2つのプランの年間推定金額を確認します。',
|
|
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: 'JPY' },
|
|
73
|
+
inLanguage: 'ja',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
faqTitle: 'よくある質問',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: '参考文献',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: '資源エネルギー庁 — 料金プラン比較', url: 'https://www.enecho.meti.go.jp' },
|
|
85
|
+
],
|
|
86
|
+
howTo: howToData,
|
|
87
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
|
+
seo: [
|
|
89
|
+
{
|
|
90
|
+
type: 'title',
|
|
91
|
+
text: '電気代を節約するために',
|
|
92
|
+
level: 2,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html: '適切なプランを選択することで、年間で大きな節約が可能になります。',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'summary',
|
|
100
|
+
title: '節約のヒント',
|
|
101
|
+
items: [
|
|
102
|
+
'定期的に他社のプランと比較する。',
|
|
103
|
+
'無理のない範囲で契約容量を適正化する。',
|
|
104
|
+
'可能であれば安い時間帯に電力をシフトする。',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
ui: {
|
|
109
|
+
labelConsumption: '年間消費電力',
|
|
110
|
+
unitKwhYear: 'kWh/年',
|
|
111
|
+
labelPower: '契約容量',
|
|
112
|
+
unitKw: 'kW/A',
|
|
113
|
+
labelMarket: '市場連動・規制プラン',
|
|
114
|
+
labelFree: '固定料金プラン',
|
|
115
|
+
labelAnnualEst: '年間推定金額',
|
|
116
|
+
labelPowerTerm: '基本料金 (固定分)',
|
|
117
|
+
labelEnergyTerm: '電力量料金 (従量分)',
|
|
118
|
+
labelDashboard: 'エネルギーダッシュボード',
|
|
119
|
+
labelMaxPower: '最大使用電力',
|
|
120
|
+
labelMaxPowerEst: '推定ピーク',
|
|
121
|
+
labelCo2: 'CO₂排出量',
|
|
122
|
+
labelCo2Est: '年間推定',
|
|
123
|
+
labelSimulator: 'シナリオシミュレーター',
|
|
124
|
+
labelSolar: '太陽光自己消費',
|
|
125
|
+
labelSolarDesc: 'パネル設置時の節約(30%削減と仮定)',
|
|
126
|
+
labelShift: 'ピークシフト',
|
|
127
|
+
labelShiftDesc: '安い時間帯への移行割合:',
|
|
128
|
+
badgeBetter: 'よりお得な選択肢',
|
|
129
|
+
badgeWorseYear: '年',
|
|
130
|
+
currencySign: '¥',
|
|
131
|
+
monthLabels: '1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月',
|
|
132
|
+
},
|
|
133
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TariffComparatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'electricity-tariff-comparator';
|
|
6
|
+
const title = '전기 요금 비교: 고정 요금 vs 변동 요금';
|
|
7
|
+
const description =
|
|
8
|
+
'나에게 어떤 전기 요금제가 가장 유리한지 확인해 보세요. 연간 사용량을 기준으로 고정 요금제와 변동 요금제를 비교합니다.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '고정 요금과 변동 요금 중 무엇이 더 좋나요?',
|
|
13
|
+
answer:
|
|
14
|
+
'고정 요금은 가격 예측이 가능합니다. 변동 요금은 시장 가격이 낮을 때 매우 저렴할 수 있지만 변동성이 큽니다. 시뮬레이터를 통해 결정해 보세요.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '연간 소비량은 어떻게 확인하나요?',
|
|
18
|
+
answer:
|
|
19
|
+
'최근 전기 요금 고지서의 "연간 사용량"(kWh) 항목에서 확인할 수 있습니다.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '계약 전력이란 무엇인가요?',
|
|
23
|
+
answer:
|
|
24
|
+
'동시에 사용할 수 있는 최대 전기 부하(kW)를 말합니다.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: '고지서 확인',
|
|
31
|
+
text: '연간 소비량(kWh)과 계약 전력(kW)을 확인합니다.',
|
|
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<TariffComparatorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
faqTitle: '자주 묻는 질문',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: '참고 자료',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: '한국전력공사 — 전기요금 안내', url: 'https://cyber.kepco.co.kr' },
|
|
85
|
+
],
|
|
86
|
+
howTo: howToData,
|
|
87
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
|
+
seo: [
|
|
89
|
+
{
|
|
90
|
+
type: 'title',
|
|
91
|
+
text: '전기 요금 절약하기',
|
|
92
|
+
level: 2,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html: '나에게 맞는 요금제를 선택하면 연간 수십만 원을 절약할 수 있습니다.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'summary',
|
|
100
|
+
title: '절약 팁',
|
|
101
|
+
items: [
|
|
102
|
+
'정기적으로 새로운 요금제를 비교해 보세요.',
|
|
103
|
+
'불필요하게 높은 계약 전력을 조정하여 기본료를 줄이세요.',
|
|
104
|
+
'가능하다면 요금이 저렴한 시간대에 가전제품을 사용하세요.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
ui: {
|
|
109
|
+
labelConsumption: '연간 소비량',
|
|
110
|
+
unitKwhYear: 'kWh/년',
|
|
111
|
+
labelPower: '계약 전력',
|
|
112
|
+
unitKw: 'kW',
|
|
113
|
+
labelMarket: '변동/규제 요금제',
|
|
114
|
+
labelFree: '고정 요금제',
|
|
115
|
+
labelAnnualEst: '연간 예상 비용',
|
|
116
|
+
labelPowerTerm: '기본 요금 (고정분)',
|
|
117
|
+
labelEnergyTerm: '전력량 요금 (사용분)',
|
|
118
|
+
labelDashboard: '에너지 대시보드',
|
|
119
|
+
labelMaxPower: '최대 전력 피크',
|
|
120
|
+
labelMaxPowerEst: '예상 피크',
|
|
121
|
+
labelCo2: '탄소 발자국',
|
|
122
|
+
labelCo2Est: '연간 예상치',
|
|
123
|
+
labelSimulator: '시나리오 시뮬레이터',
|
|
124
|
+
labelSolar: '태양광 자가소비',
|
|
125
|
+
labelSolarDesc: '패널 설치 시 절감 시뮬레이션 (30% 감소 가정)',
|
|
126
|
+
labelShift: '부하 이동 (피크 시프트)',
|
|
127
|
+
labelShiftDesc: '저렴한 시간대로 옮긴 비율:',
|
|
128
|
+
badgeBetter: '더 저렴한 선택',
|
|
129
|
+
badgeWorseYear: '년',
|
|
130
|
+
currencySign: '₩',
|
|
131
|
+
monthLabels: '1월,2月,3월,4월,5월,6월,7월,8월,9월,10월,11월,12월',
|
|
132
|
+
},
|
|
133
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TariffComparatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'energietarief-vergelijker';
|
|
6
|
+
const title = 'Energietarief Vergelijker: Vast vs. Variabel';
|
|
7
|
+
const description =
|
|
8
|
+
'Ontdek welk energietarief het beste bij u past. Vergelijk vaste prijzen met variabele/dynamische tarieven op basis van uw verbruik.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Wat is beter, een vast of een variabel tarief?',
|
|
13
|
+
answer:
|
|
14
|
+
'Vaste tarieven bieden zekerheid. Variabele of dynamische tarieven kunnen goedkoper zijn als de marktprijzen dalen. Het hangt af van hoeveel risico u wilt nemen.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Waar vind ik mijn jaarverbruik?',
|
|
18
|
+
answer:
|
|
19
|
+
'Dit staat op uw laatste jaarrekening van uw energieleverancier, uitgedrukt in kWh.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Wat is vastrecht of vast leveringstarief?',
|
|
23
|
+
answer:
|
|
24
|
+
'Dit zijn de vaste kosten die u betaalt aan de leverancier, ongeacht hoeveel stroom u verbruikt.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Jaarrekening checken',
|
|
31
|
+
text: 'Zoek uw jaarverbruik (kWh) en uw gecontracteerd vermogen.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Gegevens invoeren',
|
|
35
|
+
text: 'Stel de sliders in op uw werkelijke waarden.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Vergelijk de kosten',
|
|
39
|
+
text: 'Bekijk de geschatte jaarlijkse kosten voor beide opties.',
|
|
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: 'EUR' },
|
|
73
|
+
inLanguage: 'nl',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
faqTitle: 'Veelgestelde Vragen',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: 'Referenties',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'ACM ConsuWijzer', url: 'https://www.consuwijzer.nl' },
|
|
85
|
+
],
|
|
86
|
+
howTo: howToData,
|
|
87
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
|
+
seo: [
|
|
89
|
+
{
|
|
90
|
+
type: 'title',
|
|
91
|
+
text: 'Bespaar op uw energierekening',
|
|
92
|
+
level: 2,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html: 'De juiste keuze kan u honderden euro\'s per jaar besparen. Gebruik onze tool om de beste optie voor uw profiel te vinden.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'summary',
|
|
100
|
+
title: 'Bespaartips',
|
|
101
|
+
items: [
|
|
102
|
+
'Dynamische tarieven zijn voordelig bij verbruik buiten de piekuren.',
|
|
103
|
+
'Vaste tarieven geven rust bij stijgende prijzen.',
|
|
104
|
+
'Controleer of uw aansluitwaarde niet te hoog is.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
ui: {
|
|
109
|
+
labelConsumption: 'Jaarverbruik',
|
|
110
|
+
unitKwhYear: 'kWh/jaar',
|
|
111
|
+
labelPower: 'Aansluitwaarde',
|
|
112
|
+
unitKw: 'kW',
|
|
113
|
+
labelMarket: 'Variabel/Dynamisch',
|
|
114
|
+
labelFree: 'Vast Tarief',
|
|
115
|
+
labelAnnualEst: 'Jaarlijkse schatting',
|
|
116
|
+
labelPowerTerm: 'Vaste kosten (Fijo)',
|
|
117
|
+
labelEnergyTerm: 'Verbruikskosten (Variabel)',
|
|
118
|
+
labelDashboard: 'Energie Dashboard',
|
|
119
|
+
labelMaxPower: 'Piekvermogen',
|
|
120
|
+
labelMaxPowerEst: 'Geschatte piek',
|
|
121
|
+
labelCo2: 'CO₂-voetafdruk',
|
|
122
|
+
labelCo2Est: 'Jaarlijkse schatting',
|
|
123
|
+
labelSimulator: 'Scenario Simulator',
|
|
124
|
+
labelSolar: 'Zonne-energie',
|
|
125
|
+
labelSolarDesc: 'Simuleer besparing met panelen (30% reductie)',
|
|
126
|
+
labelShift: 'Verschuiving naar daluren',
|
|
127
|
+
labelShiftDesc: 'Verbruik verplaatst naar goedkope uren:',
|
|
128
|
+
badgeBetter: 'Goedkoopste optie',
|
|
129
|
+
badgeWorseYear: 'jaar',
|
|
130
|
+
currencySign: '€',
|
|
131
|
+
monthLabels: 'Jan,Feb,Mär,Apr,Mei,Jun,Jul,Aug,Sep,Okt,Nov,Dec',
|
|
132
|
+
},
|
|
133
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TariffComparatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'porownanie-taryf-pradu';
|
|
6
|
+
const title = 'Porównywarka Taryf Prądu: Rynek Wolny vs Regulowany';
|
|
7
|
+
const description =
|
|
8
|
+
'Dowiedz się, która taryfa za prąd najbardziej Ci się opłaca. Porównaj rynek regulowany z ofertami wolnorynkowymi na podstawie Twojego zużycia.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Co jest lepsze, cena stała czy zmienna?',
|
|
13
|
+
answer:
|
|
14
|
+
'Cena stała daje przewidywalność. Taryfy zmienne (jak G11/G12 w Polsce) zależą od regulacji lub rynku hurtowego. Nasze narzędzie pomoże Ci zdecydować.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Gdzie znajdę roczne zużycie?',
|
|
18
|
+
answer:
|
|
19
|
+
'Informację tę znajdziesz na fakturze rozliczeniowej, oznaczoną jako "Zużycie roczne" w kWh.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Co to jest moc umowna?',
|
|
23
|
+
answer:
|
|
24
|
+
'To maksymalna ilość energii (kW), jaką możesz pobierać jednocześnie. W domach standard to 12.5–16 kW.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Sprawdź fakturę',
|
|
31
|
+
text: 'Znajdź zużycie roczne (kWh) i moc umowną (kW).',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Wprowadź dane',
|
|
35
|
+
text: 'Dopasuj suwaki do swoich realnych parametrów.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Porównaj wyniki',
|
|
39
|
+
text: 'Zobacz szacunkową różnicę w kosztach rocznych.',
|
|
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: 'PLN' },
|
|
73
|
+
inLanguage: 'pl',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
faqTitle: 'Często Zadawane Pytania',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: 'Bibliografia',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'URE — Urząd Regulacji Energetyki', url: 'https://www.ure.gov.pl' },
|
|
85
|
+
],
|
|
86
|
+
howTo: howToData,
|
|
87
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
|
+
seo: [
|
|
89
|
+
{
|
|
90
|
+
type: 'title',
|
|
91
|
+
text: 'Oszczędź na rachunkach za prąd',
|
|
92
|
+
level: 2,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html: 'Wybór odpowiedniej taryfy może oszczędzić Ci setki złotych rocznie.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'summary',
|
|
100
|
+
title: 'Klucze do oszczędzania',
|
|
101
|
+
items: [
|
|
102
|
+
'Regularnie sprawdzaj nowe oferty sprzedawców.',
|
|
103
|
+
'Zmniejsz moc umowną, jeśli nigdy nie przekraczasz progu.',
|
|
104
|
+
'Przenieś duże zużycie na tańsze godziny w taryfie G12.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
ui: {
|
|
109
|
+
labelConsumption: 'Zużycie Roczne',
|
|
110
|
+
unitKwhYear: 'kWh/rok',
|
|
111
|
+
labelPower: 'Moc Umowna',
|
|
112
|
+
unitKw: 'kW',
|
|
113
|
+
labelMarket: 'Rynek Regulowany',
|
|
114
|
+
labelFree: 'Cena Stała / Wolny Rynek',
|
|
115
|
+
labelAnnualEst: 'Szacunek roczny',
|
|
116
|
+
labelPowerTerm: 'Opłata za Moc (Stała)',
|
|
117
|
+
labelEnergyTerm: 'Opłata za Prąd (Zmienna)',
|
|
118
|
+
labelDashboard: 'Panel Energetyczny',
|
|
119
|
+
labelMaxPower: 'Maks. Moc Pobierana',
|
|
120
|
+
labelMaxPowerEst: 'Szacunkowy szczyt',
|
|
121
|
+
labelCo2: 'Ślad CO₂',
|
|
122
|
+
labelCo2Est: 'Szacunek roczny',
|
|
123
|
+
labelSimulator: 'Symulator Scenariuszy',
|
|
124
|
+
labelSolar: 'Fotowoltaika',
|
|
125
|
+
labelSolarDesc: 'Symuluj zysk z paneli (30% redukcji)',
|
|
126
|
+
labelShift: 'Przesunięcie na Tanią Strefę',
|
|
127
|
+
labelShiftDesc: 'Zużycie przesunięte na tanią tano:',
|
|
128
|
+
badgeBetter: 'Tańsza opcja',
|
|
129
|
+
badgeWorseYear: 'rok',
|
|
130
|
+
currencySign: 'zł',
|
|
131
|
+
monthLabels: 'Sty,Lut,Mar,Kwi,Maj,Cze,Lip,Sie,Wrz,Paź,Lis,Gru',
|
|
132
|
+
},
|
|
133
|
+
};
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TariffComparatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'comparador-tarifas-eletricidade';
|
|
6
|
+
const title = 'Comparador de Tarifas de Eletricidade: Mercado Livre vs Regulado';
|
|
7
|
+
const description =
|
|
8
|
+
'Descubra qual a tarifa de luz que mais lhe convém. Compare o mercado regulado vs mercado livre com base no seu consumo anual.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'É melhor o mercado livre ou o regulado?',
|
|
13
|
+
answer:
|
|
14
|
+
'O mercado regulado tem preços fixados pelo estado, enquanto o livre permite concorrência entre empresas. Depende da oferta de cada comercializadora no momento.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Onde vejo o meu consumo anual?',
|
|
18
|
+
answer:
|
|
19
|
+
'Esta informação consta na sua fatura da luz, normalmente indicada como "Consumo Anual" em kWh.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'O que é a potência contratada?',
|
|
23
|
+
answer:
|
|
24
|
+
'É o limite de energia que pode usar ao mesmo tempo. Em Portugal, os valores comuns são 3.45 kVA o 6.9 kVA.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{
|
|
30
|
+
name: 'Consulte a fatura',
|
|
31
|
+
text: 'Procure o consumo anual (kWh) e a potência (kVA).',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Ajuste os dados',
|
|
35
|
+
text: 'Mova os seletores para os seus valores reais.',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Compare custos',
|
|
39
|
+
text: 'Veja a estimativa de custo anual para ambas as opções.',
|
|
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: 'EUR' },
|
|
73
|
+
inLanguage: 'pt',
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
77
|
+
slug,
|
|
78
|
+
title,
|
|
79
|
+
description,
|
|
80
|
+
faqTitle: 'Perguntas Frequentes',
|
|
81
|
+
faq: faqData,
|
|
82
|
+
bibliographyTitle: 'Bibliografia',
|
|
83
|
+
bibliography: [
|
|
84
|
+
{ name: 'ERSE — Simulador de Preços', url: 'https://www.erse.pt' },
|
|
85
|
+
],
|
|
86
|
+
howTo: howToData,
|
|
87
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
|
+
seo: [
|
|
89
|
+
{
|
|
90
|
+
type: 'title',
|
|
91
|
+
text: 'Poupe na fatura da eletricidade',
|
|
92
|
+
level: 2,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
type: 'paragraph',
|
|
96
|
+
html: 'Escolher a tarifa certa pode poupar-lhe centenas de euros por ano. Utilize o nosso comparador para decidir.',
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: 'summary',
|
|
100
|
+
title: 'Dicas para poupar',
|
|
101
|
+
items: [
|
|
102
|
+
'Compare as ofertas do mercado livre regularmente.',
|
|
103
|
+
'Ajuste a potência contratada se o quadro nunca disparar.',
|
|
104
|
+
'Aproveite as horas de vazio para consumos pesados.',
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
ui: {
|
|
109
|
+
labelConsumption: 'Consumo Anual',
|
|
110
|
+
unitKwhYear: 'kWh/ano',
|
|
111
|
+
labelPower: 'Potência Contratada',
|
|
112
|
+
unitKw: 'kVA',
|
|
113
|
+
labelMarket: 'Mercado Regulado',
|
|
114
|
+
labelFree: 'Mercado Livre (Fixo)',
|
|
115
|
+
labelAnnualEst: 'Estimativa anual',
|
|
116
|
+
labelPowerTerm: 'Termo de Potência (Fixo)',
|
|
117
|
+
labelEnergyTerm: 'Termo de Energia (Variável)',
|
|
118
|
+
labelDashboard: 'Painel Energético',
|
|
119
|
+
labelMaxPower: 'Pico de Potência',
|
|
120
|
+
labelMaxPowerEst: 'Estimativa de pico',
|
|
121
|
+
labelCo2: 'Pegada de CO₂',
|
|
122
|
+
labelCo2Est: 'Estimativa anual',
|
|
123
|
+
labelSimulator: 'Simulador de Cenários',
|
|
124
|
+
labelSolar: 'Autoconsumo Solar',
|
|
125
|
+
labelSolarDesc: 'Simular poupança com painéis (30% redução)',
|
|
126
|
+
labelShift: 'Desvio para Vazio',
|
|
127
|
+
labelShiftDesc: 'Consumo movido para horas baratas:',
|
|
128
|
+
badgeBetter: 'Opção mais barata',
|
|
129
|
+
badgeWorseYear: 'ano',
|
|
130
|
+
currencySign: '€',
|
|
131
|
+
monthLabels: 'Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez',
|
|
132
|
+
},
|
|
133
|
+
};
|