@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.
- package/package.json +1 -1
- package/src/pages/[locale]/[slug].astro +28 -12
- package/src/tests/locale_completeness.test.ts +2 -20
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tool/dewPointCalculator/bibliography.ts +10 -0
- package/src/tool/dewPointCalculator/i18n/de.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/en.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/es.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/fr.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/id.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/it.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/ja.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/ko.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/nl.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/pl.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/pt.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/ru.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/sv.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/tr.ts +2 -12
- package/src/tool/dewPointCalculator/i18n/zh.ts +2 -12
- package/src/tool/dewPointCalculator/seo.astro +2 -1
- package/src/tool/heatingComparator/bibliography.ts +14 -0
- package/src/tool/heatingComparator/i18n/de.ts +2 -16
- package/src/tool/heatingComparator/i18n/en.ts +2 -12
- package/src/tool/heatingComparator/i18n/es.ts +2 -16
- package/src/tool/heatingComparator/i18n/fr.ts +2 -12
- package/src/tool/heatingComparator/i18n/id.ts +2 -16
- package/src/tool/heatingComparator/i18n/it.ts +2 -16
- package/src/tool/heatingComparator/i18n/ja.ts +296 -310
- package/src/tool/heatingComparator/i18n/ko.ts +296 -306
- package/src/tool/heatingComparator/i18n/nl.ts +2 -16
- package/src/tool/heatingComparator/i18n/pl.ts +2 -16
- package/src/tool/heatingComparator/i18n/pt.ts +2 -16
- package/src/tool/heatingComparator/i18n/ru.ts +2 -12
- package/src/tool/heatingComparator/i18n/sv.ts +2 -16
- package/src/tool/heatingComparator/i18n/tr.ts +2 -16
- package/src/tool/heatingComparator/i18n/zh.ts +296 -306
- package/src/tool/heatingComparator/seo.astro +3 -3
- package/src/tool/ledSavingCalculator/bibliography.ts +14 -0
- package/src/tool/ledSavingCalculator/i18n/de.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/en.ts +2 -16
- package/src/tool/ledSavingCalculator/i18n/es.ts +2 -16
- package/src/tool/ledSavingCalculator/i18n/fr.ts +2 -16
- package/src/tool/ledSavingCalculator/i18n/id.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/it.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/ja.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/ko.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/nl.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/pl.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/pt.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/ru.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/sv.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/tr.ts +2 -12
- package/src/tool/ledSavingCalculator/i18n/zh.ts +2 -12
- package/src/tool/ledSavingCalculator/seo.astro +2 -1
- package/src/tool/projectorCalculator/bibliography.ts +5 -0
- package/src/tool/projectorCalculator/i18n/de.ts +2 -6
- package/src/tool/projectorCalculator/i18n/en.ts +2 -7
- package/src/tool/projectorCalculator/i18n/es.ts +2 -7
- package/src/tool/projectorCalculator/i18n/fr.ts +2 -7
- package/src/tool/projectorCalculator/i18n/id.ts +2 -7
- package/src/tool/projectorCalculator/i18n/it.ts +2 -6
- package/src/tool/projectorCalculator/i18n/ja.ts +175 -179
- package/src/tool/projectorCalculator/i18n/ko.ts +175 -179
- package/src/tool/projectorCalculator/i18n/nl.ts +2 -6
- package/src/tool/projectorCalculator/i18n/pl.ts +2 -6
- package/src/tool/projectorCalculator/i18n/pt.ts +2 -6
- package/src/tool/projectorCalculator/i18n/ru.ts +2 -6
- package/src/tool/projectorCalculator/i18n/sv.ts +2 -6
- package/src/tool/projectorCalculator/i18n/tr.ts +2 -6
- package/src/tool/projectorCalculator/i18n/zh.ts +175 -179
- package/src/tool/projectorCalculator/seo.astro +2 -1
- package/src/tool/qrGenerator/bibliography.ts +14 -0
- package/src/tool/qrGenerator/i18n/de.ts +192 -202
- package/src/tool/qrGenerator/i18n/en.ts +2 -16
- package/src/tool/qrGenerator/i18n/es.ts +2 -16
- package/src/tool/qrGenerator/i18n/fr.ts +2 -16
- package/src/tool/qrGenerator/i18n/id.ts +146 -150
- package/src/tool/qrGenerator/i18n/it.ts +169 -173
- package/src/tool/qrGenerator/i18n/ja.ts +146 -150
- package/src/tool/qrGenerator/i18n/ko.ts +146 -150
- package/src/tool/qrGenerator/i18n/nl.ts +146 -150
- package/src/tool/qrGenerator/i18n/pl.ts +146 -150
- package/src/tool/qrGenerator/i18n/pt.ts +146 -150
- package/src/tool/qrGenerator/i18n/ru.ts +146 -150
- package/src/tool/qrGenerator/i18n/sv.ts +146 -150
- package/src/tool/qrGenerator/i18n/tr.ts +146 -150
- package/src/tool/qrGenerator/i18n/zh.ts +146 -150
- package/src/tool/qrGenerator/seo.astro +2 -1
- package/src/tool/solarCalculator/bibliography.ts +5 -0
- package/src/tool/solarCalculator/i18n/de.ts +141 -145
- package/src/tool/solarCalculator/i18n/en.ts +2 -7
- package/src/tool/solarCalculator/i18n/es.ts +2 -7
- package/src/tool/solarCalculator/i18n/fr.ts +2 -7
- package/src/tool/solarCalculator/i18n/id.ts +2 -6
- package/src/tool/solarCalculator/i18n/it.ts +2 -6
- package/src/tool/solarCalculator/i18n/ja.ts +121 -125
- package/src/tool/solarCalculator/i18n/ko.ts +116 -120
- package/src/tool/solarCalculator/i18n/nl.ts +2 -5
- package/src/tool/solarCalculator/i18n/pl.ts +2 -6
- package/src/tool/solarCalculator/i18n/pt.ts +2 -6
- package/src/tool/solarCalculator/i18n/ru.ts +2 -5
- package/src/tool/solarCalculator/i18n/sv.ts +2 -5
- package/src/tool/solarCalculator/i18n/tr.ts +2 -5
- package/src/tool/solarCalculator/i18n/zh.ts +116 -120
- package/src/tool/solarCalculator/seo.astro +2 -1
- package/src/tool/tariffComparator/bibliography.ts +7 -0
- package/src/tool/tariffComparator/i18n/de.ts +129 -132
- package/src/tool/tariffComparator/i18n/en.ts +2 -9
- package/src/tool/tariffComparator/i18n/es.ts +2 -9
- package/src/tool/tariffComparator/i18n/fr.ts +2 -9
- package/src/tool/tariffComparator/i18n/id.ts +2 -5
- package/src/tool/tariffComparator/i18n/it.ts +2 -5
- package/src/tool/tariffComparator/i18n/ja.ts +129 -132
- package/src/tool/tariffComparator/i18n/ko.ts +129 -132
- package/src/tool/tariffComparator/i18n/nl.ts +2 -5
- package/src/tool/tariffComparator/i18n/pl.ts +2 -5
- package/src/tool/tariffComparator/i18n/pt.ts +2 -5
- package/src/tool/tariffComparator/i18n/ru.ts +2 -5
- package/src/tool/tariffComparator/i18n/sv.ts +2 -5
- package/src/tool/tariffComparator/i18n/tr.ts +2 -5
- package/src/tool/tariffComparator/i18n/zh.ts +129 -132
- package/src/tool/tariffComparator/seo.astro +2 -1
- 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 { TariffComparatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'sravnenie-tarifov-elektrichestva';
|
|
6
7
|
const title = 'Сравнение тарифов ЖКХ: Свободный vs Регулируемый';
|
|
@@ -59,12 +60,8 @@ export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
|
59
60
|
slug,
|
|
60
61
|
title,
|
|
61
62
|
description,
|
|
62
|
-
faqTitle: 'Часто задаваемые вопросы',
|
|
63
63
|
faq: faqData,
|
|
64
|
-
|
|
65
|
-
bibliography: [
|
|
66
|
-
{ name: 'Федеральная антимонопольная служба — Тарифы', url: 'https://fas.gov.ru' },
|
|
67
|
-
],
|
|
64
|
+
bibliography,
|
|
68
65
|
howTo: howToData,
|
|
69
66
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
70
67
|
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 { TariffComparatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'jamfor-deltra-priser';
|
|
6
7
|
const title = 'Jämför Elavtal: Rörligt vs Fast Pris';
|
|
@@ -64,12 +65,8 @@ export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
|
64
65
|
slug,
|
|
65
66
|
title,
|
|
66
67
|
description,
|
|
67
|
-
faqTitle: 'Vanliga Frågor',
|
|
68
68
|
faq: faqData,
|
|
69
|
-
|
|
70
|
-
bibliography: [
|
|
71
|
-
{ name: 'Energimarknadsinspektionen', url: 'https://www.ei.se' },
|
|
72
|
-
],
|
|
69
|
+
bibliography,
|
|
73
70
|
howTo: howToData,
|
|
74
71
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
75
72
|
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 { TariffComparatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
4
5
|
|
|
5
6
|
const slug = 'elektrik-tarifesi-karsilastirma';
|
|
6
7
|
const title = 'Elektrik Tarifesi Karşılaştırıcı: Sabit vs Değişken';
|
|
@@ -77,12 +78,8 @@ export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
|
77
78
|
slug,
|
|
78
79
|
title,
|
|
79
80
|
description,
|
|
80
|
-
faqTitle: 'Sıkça Sorulan Sorular',
|
|
81
81
|
faq: faqData,
|
|
82
|
-
|
|
83
|
-
bibliography: [
|
|
84
|
-
{ name: 'EPDK — Enerji Piyasası Düzenleme Kurumu', url: 'https://www.epdk.gov.tr' },
|
|
85
|
-
],
|
|
82
|
+
bibliography,
|
|
86
83
|
howTo: howToData,
|
|
87
84
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
85
|
seo: [
|
|
@@ -1,133 +1,130 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import type { TariffComparatorUI } from '../ui';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
'@
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
'@
|
|
56
|
-
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { TariffComparatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'electricity-tariff-comparator';
|
|
7
|
+
const title = '电费套餐对比:自由市场 vs 监管市场';
|
|
8
|
+
const description =
|
|
9
|
+
'了解哪种电费套餐最适合您。根据您的实际用电量对比自由市场套餐与监管市场套餐。';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: '固定价格和动态价格哪个更好?',
|
|
14
|
+
answer:
|
|
15
|
+
'固定价格提供可预测性。动态价格(如监管市场)在发电量充沛时可能极低,但存在波动风险。本计算器可帮您做出选择。',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: '如何获取我的年用电量?',
|
|
19
|
+
answer:
|
|
20
|
+
'您可以在最新的电费账单中找到“年用电量”(kWh) 这一数值。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '什么是合同功率?',
|
|
24
|
+
answer:
|
|
25
|
+
'指您可以同时使用的最大电力负荷 (kW)。',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const howToData = [
|
|
30
|
+
{
|
|
31
|
+
name: '查看账单',
|
|
32
|
+
text: '查找年用电量 (kWh) 和合同功率 (kW)。',
|
|
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: 'CNY' },
|
|
74
|
+
inLanguage: 'zh',
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export const content: ToolLocaleContent<TariffComparatorUI> = {
|
|
78
|
+
slug,
|
|
79
|
+
title,
|
|
57
80
|
description,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
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
|
-
};
|
|
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
|
+
'合理设定合同功率,避免不必要的月租费。',
|
|
101
|
+
'尽量将大功率用电安排在低谷时段。',
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
ui: {
|
|
106
|
+
labelConsumption: '年用电量',
|
|
107
|
+
unitKwhYear: 'kWh/年',
|
|
108
|
+
labelPower: '合同功率',
|
|
109
|
+
unitKw: 'kW',
|
|
110
|
+
labelMarket: '监管市场 (动态)',
|
|
111
|
+
labelFree: '自由市场 (固定)',
|
|
112
|
+
labelAnnualEst: '预估年支出',
|
|
113
|
+
labelPowerTerm: '功率费 (固定)',
|
|
114
|
+
labelEnergyTerm: '电费 (变量)',
|
|
115
|
+
labelDashboard: '能源面板',
|
|
116
|
+
labelMaxPower: '峰值功率',
|
|
117
|
+
labelMaxPowerEst: '预估峰值',
|
|
118
|
+
labelCo2: '碳足迹',
|
|
119
|
+
labelCo2Est: '预估年排放量',
|
|
120
|
+
labelSimulator: '方案模拟器',
|
|
121
|
+
labelSolar: '太阳能自用',
|
|
122
|
+
labelSolarDesc: '模拟安装电池板后的节省(默认减少 30% 用电)',
|
|
123
|
+
labelShift: '低谷时段转移',
|
|
124
|
+
labelShiftDesc: '转移至低谷时段的比例:',
|
|
125
|
+
badgeBetter: '更佳性价比',
|
|
126
|
+
badgeWorseYear: '年',
|
|
127
|
+
currencySign: '¥',
|
|
128
|
+
monthLabels: '1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月',
|
|
129
|
+
},
|
|
130
|
+
};
|
|
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
|
|
|
11
11
|
const content = await tariffComparator.i18n[locale]?.();
|
|
12
12
|
if (!content) return null;
|
|
13
13
|
---
|
|
14
|
-
|
|
14
|
+
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
package/src/types.ts
CHANGED
|
@@ -29,9 +29,7 @@ export interface ToolLocaleContent<TUI extends Record<string, string> = Record<s
|
|
|
29
29
|
description: string;
|
|
30
30
|
ui: TUI;
|
|
31
31
|
seo: SEOSection[];
|
|
32
|
-
faqTitle?: string;
|
|
33
32
|
faq: FAQItem[];
|
|
34
|
-
bibliographyTitle?: string;
|
|
35
33
|
bibliography: BibliographyEntry[];
|
|
36
34
|
howTo: HowToStep[];
|
|
37
35
|
schemas: WithContext<Thing>[];
|