@jjlmoya/utils-home 1.15.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/pages/[locale]/[slug].astro +28 -12
  4. package/src/tests/locale_completeness.test.ts +2 -20
  5. package/src/tests/shared-test-helpers.ts +56 -0
  6. package/src/tests/tool_exports.test.ts +34 -0
  7. package/src/tool/dewPointCalculator/bibliography.ts +10 -0
  8. package/src/tool/dewPointCalculator/component.astro +0 -232
  9. package/src/tool/dewPointCalculator/dew-point-calculator.css +230 -0
  10. package/src/tool/dewPointCalculator/i18n/de.ts +2 -12
  11. package/src/tool/dewPointCalculator/i18n/en.ts +2 -12
  12. package/src/tool/dewPointCalculator/i18n/es.ts +2 -12
  13. package/src/tool/dewPointCalculator/i18n/fr.ts +2 -12
  14. package/src/tool/dewPointCalculator/i18n/id.ts +2 -12
  15. package/src/tool/dewPointCalculator/i18n/it.ts +2 -12
  16. package/src/tool/dewPointCalculator/i18n/ja.ts +2 -12
  17. package/src/tool/dewPointCalculator/i18n/ko.ts +2 -12
  18. package/src/tool/dewPointCalculator/i18n/nl.ts +2 -12
  19. package/src/tool/dewPointCalculator/i18n/pl.ts +2 -12
  20. package/src/tool/dewPointCalculator/i18n/pt.ts +2 -12
  21. package/src/tool/dewPointCalculator/i18n/ru.ts +2 -12
  22. package/src/tool/dewPointCalculator/i18n/sv.ts +2 -12
  23. package/src/tool/dewPointCalculator/i18n/tr.ts +2 -12
  24. package/src/tool/dewPointCalculator/i18n/zh.ts +2 -12
  25. package/src/tool/dewPointCalculator/seo.astro +2 -1
  26. package/src/tool/heatingComparator/bibliography.ts +14 -0
  27. package/src/tool/heatingComparator/component.astro +0 -269
  28. package/src/tool/heatingComparator/heating-consumption-comparator.css +267 -0
  29. package/src/tool/heatingComparator/i18n/de.ts +2 -16
  30. package/src/tool/heatingComparator/i18n/en.ts +2 -12
  31. package/src/tool/heatingComparator/i18n/es.ts +2 -16
  32. package/src/tool/heatingComparator/i18n/fr.ts +2 -12
  33. package/src/tool/heatingComparator/i18n/id.ts +2 -16
  34. package/src/tool/heatingComparator/i18n/it.ts +2 -16
  35. package/src/tool/heatingComparator/i18n/ja.ts +296 -310
  36. package/src/tool/heatingComparator/i18n/ko.ts +296 -306
  37. package/src/tool/heatingComparator/i18n/nl.ts +2 -16
  38. package/src/tool/heatingComparator/i18n/pl.ts +2 -16
  39. package/src/tool/heatingComparator/i18n/pt.ts +2 -16
  40. package/src/tool/heatingComparator/i18n/ru.ts +2 -12
  41. package/src/tool/heatingComparator/i18n/sv.ts +2 -16
  42. package/src/tool/heatingComparator/i18n/tr.ts +2 -16
  43. package/src/tool/heatingComparator/i18n/zh.ts +296 -306
  44. package/src/tool/heatingComparator/seo.astro +3 -3
  45. package/src/tool/ledSavingCalculator/bibliography.ts +14 -0
  46. package/src/tool/ledSavingCalculator/component.astro +0 -305
  47. package/src/tool/ledSavingCalculator/i18n/de.ts +2 -12
  48. package/src/tool/ledSavingCalculator/i18n/en.ts +2 -16
  49. package/src/tool/ledSavingCalculator/i18n/es.ts +2 -16
  50. package/src/tool/ledSavingCalculator/i18n/fr.ts +2 -16
  51. package/src/tool/ledSavingCalculator/i18n/id.ts +2 -12
  52. package/src/tool/ledSavingCalculator/i18n/it.ts +2 -12
  53. package/src/tool/ledSavingCalculator/i18n/ja.ts +2 -12
  54. package/src/tool/ledSavingCalculator/i18n/ko.ts +2 -12
  55. package/src/tool/ledSavingCalculator/i18n/nl.ts +2 -12
  56. package/src/tool/ledSavingCalculator/i18n/pl.ts +2 -12
  57. package/src/tool/ledSavingCalculator/i18n/pt.ts +2 -12
  58. package/src/tool/ledSavingCalculator/i18n/ru.ts +2 -12
  59. package/src/tool/ledSavingCalculator/i18n/sv.ts +2 -12
  60. package/src/tool/ledSavingCalculator/i18n/tr.ts +2 -12
  61. package/src/tool/ledSavingCalculator/i18n/zh.ts +2 -12
  62. package/src/tool/ledSavingCalculator/led-saving-calculator.css +303 -0
  63. package/src/tool/ledSavingCalculator/seo.astro +2 -1
  64. package/src/tool/projectorCalculator/bibliography.ts +5 -0
  65. package/src/tool/projectorCalculator/component.astro +0 -359
  66. package/src/tool/projectorCalculator/i18n/de.ts +2 -6
  67. package/src/tool/projectorCalculator/i18n/en.ts +2 -7
  68. package/src/tool/projectorCalculator/i18n/es.ts +2 -7
  69. package/src/tool/projectorCalculator/i18n/fr.ts +2 -7
  70. package/src/tool/projectorCalculator/i18n/id.ts +2 -7
  71. package/src/tool/projectorCalculator/i18n/it.ts +2 -6
  72. package/src/tool/projectorCalculator/i18n/ja.ts +175 -179
  73. package/src/tool/projectorCalculator/i18n/ko.ts +175 -179
  74. package/src/tool/projectorCalculator/i18n/nl.ts +2 -6
  75. package/src/tool/projectorCalculator/i18n/pl.ts +2 -6
  76. package/src/tool/projectorCalculator/i18n/pt.ts +2 -6
  77. package/src/tool/projectorCalculator/i18n/ru.ts +2 -6
  78. package/src/tool/projectorCalculator/i18n/sv.ts +2 -6
  79. package/src/tool/projectorCalculator/i18n/tr.ts +2 -6
  80. package/src/tool/projectorCalculator/i18n/zh.ts +175 -179
  81. package/src/tool/projectorCalculator/projector-throw-calculator.css +357 -0
  82. package/src/tool/projectorCalculator/seo.astro +2 -1
  83. package/src/tool/qrGenerator/bibliography.ts +14 -0
  84. package/src/tool/qrGenerator/component.astro +0 -266
  85. package/src/tool/qrGenerator/i18n/de.ts +192 -202
  86. package/src/tool/qrGenerator/i18n/en.ts +2 -16
  87. package/src/tool/qrGenerator/i18n/es.ts +2 -16
  88. package/src/tool/qrGenerator/i18n/fr.ts +2 -16
  89. package/src/tool/qrGenerator/i18n/id.ts +146 -150
  90. package/src/tool/qrGenerator/i18n/it.ts +169 -173
  91. package/src/tool/qrGenerator/i18n/ja.ts +146 -150
  92. package/src/tool/qrGenerator/i18n/ko.ts +146 -150
  93. package/src/tool/qrGenerator/i18n/nl.ts +146 -150
  94. package/src/tool/qrGenerator/i18n/pl.ts +146 -150
  95. package/src/tool/qrGenerator/i18n/pt.ts +146 -150
  96. package/src/tool/qrGenerator/i18n/ru.ts +146 -150
  97. package/src/tool/qrGenerator/i18n/sv.ts +146 -150
  98. package/src/tool/qrGenerator/i18n/tr.ts +146 -150
  99. package/src/tool/qrGenerator/i18n/zh.ts +146 -150
  100. package/src/tool/qrGenerator/qr-generator.css +264 -0
  101. package/src/tool/qrGenerator/seo.astro +2 -1
  102. package/src/tool/solarCalculator/bibliography.ts +5 -0
  103. package/src/tool/solarCalculator/component.astro +0 -298
  104. package/src/tool/solarCalculator/i18n/de.ts +141 -145
  105. package/src/tool/solarCalculator/i18n/en.ts +2 -7
  106. package/src/tool/solarCalculator/i18n/es.ts +2 -7
  107. package/src/tool/solarCalculator/i18n/fr.ts +2 -7
  108. package/src/tool/solarCalculator/i18n/id.ts +2 -6
  109. package/src/tool/solarCalculator/i18n/it.ts +2 -6
  110. package/src/tool/solarCalculator/i18n/ja.ts +121 -125
  111. package/src/tool/solarCalculator/i18n/ko.ts +116 -120
  112. package/src/tool/solarCalculator/i18n/nl.ts +2 -5
  113. package/src/tool/solarCalculator/i18n/pl.ts +2 -6
  114. package/src/tool/solarCalculator/i18n/pt.ts +2 -6
  115. package/src/tool/solarCalculator/i18n/ru.ts +2 -5
  116. package/src/tool/solarCalculator/i18n/sv.ts +2 -5
  117. package/src/tool/solarCalculator/i18n/tr.ts +2 -5
  118. package/src/tool/solarCalculator/i18n/zh.ts +116 -120
  119. package/src/tool/solarCalculator/seo.astro +2 -1
  120. package/src/tool/solarCalculator/solar-panel-calculator.css +296 -0
  121. package/src/tool/tariffComparator/bibliography.ts +7 -0
  122. package/src/tool/tariffComparator/component.astro +0 -337
  123. package/src/tool/tariffComparator/electricity-tariff-comparator.css +335 -0
  124. package/src/tool/tariffComparator/i18n/de.ts +129 -132
  125. package/src/tool/tariffComparator/i18n/en.ts +2 -9
  126. package/src/tool/tariffComparator/i18n/es.ts +2 -9
  127. package/src/tool/tariffComparator/i18n/fr.ts +2 -9
  128. package/src/tool/tariffComparator/i18n/id.ts +2 -5
  129. package/src/tool/tariffComparator/i18n/it.ts +2 -5
  130. package/src/tool/tariffComparator/i18n/ja.ts +129 -132
  131. package/src/tool/tariffComparator/i18n/ko.ts +129 -132
  132. package/src/tool/tariffComparator/i18n/nl.ts +2 -5
  133. package/src/tool/tariffComparator/i18n/pl.ts +2 -5
  134. package/src/tool/tariffComparator/i18n/pt.ts +2 -5
  135. package/src/tool/tariffComparator/i18n/ru.ts +2 -5
  136. package/src/tool/tariffComparator/i18n/sv.ts +2 -5
  137. package/src/tool/tariffComparator/i18n/tr.ts +2 -5
  138. package/src/tool/tariffComparator/i18n/zh.ts +129 -132
  139. package/src/tool/tariffComparator/seo.astro +2 -1
  140. package/src/types.ts +0 -2
@@ -213,308 +213,3 @@ const initial = calculateLedSaving({
213
213
  init();
214
214
  </script>
215
215
 
216
- <style>
217
- .led-wrapper {
218
- --led-p: #f59e0b;
219
-
220
- width: 100%;
221
- padding: 1rem 0;
222
- }
223
-
224
- .led-card {
225
- background: var(--bg-surface);
226
- width: calc(100% - 24px);
227
- max-width: 960px;
228
- margin: 0 auto;
229
- border-radius: 24px;
230
- overflow: hidden;
231
- display: flex;
232
- flex-direction: column;
233
- border: 1px solid var(--border-color);
234
- color: var(--text-main);
235
- }
236
-
237
- @media (min-width: 768px) {
238
- .led-card {
239
- flex-direction: row;
240
- min-height: 560px;
241
- }
242
- }
243
-
244
- .led-left {
245
- flex: 0 0 auto;
246
- width: 100%;
247
- padding: 32px;
248
- border-bottom: 1px solid var(--border-color);
249
- display: flex;
250
- flex-direction: column;
251
- gap: 24px;
252
- }
253
-
254
- @media (min-width: 768px) {
255
- .led-left {
256
- width: 380px;
257
- border-bottom: none;
258
- border-right: 1px solid var(--border-color);
259
- }
260
- }
261
-
262
- .led-right {
263
- flex: 1;
264
- background: var(--bg-page);
265
- display: flex;
266
- flex-direction: column;
267
- align-items: center;
268
- justify-content: center;
269
- gap: 28px;
270
- padding: 40px 32px;
271
- min-height: 360px;
272
- }
273
-
274
- .led-section-title {
275
- font-size: 0.75rem;
276
- font-weight: 900;
277
- text-transform: uppercase;
278
- letter-spacing: 0.14em;
279
- color: var(--led-p);
280
- margin: 0;
281
- }
282
-
283
- .led-field {
284
- display: flex;
285
- flex-direction: column;
286
- gap: 10px;
287
- }
288
-
289
- .led-label {
290
- font-size: 0.6875rem;
291
- font-weight: 700;
292
- text-transform: uppercase;
293
- letter-spacing: 0.1em;
294
- color: var(--text-muted);
295
- }
296
-
297
- .led-number-row {
298
- display: flex;
299
- align-items: baseline;
300
- gap: 8px;
301
- }
302
-
303
- .led-number-input {
304
- width: 100px;
305
- font-size: 2.5rem;
306
- font-weight: 900;
307
- color: var(--text-main);
308
- background: transparent;
309
- border: none;
310
- border-bottom: 2px solid var(--border-color);
311
- padding: 4px 0;
312
- outline: none;
313
- transition: border-color 0.2s;
314
- }
315
-
316
- .led-number-input:focus {
317
- border-color: var(--led-p);
318
- }
319
-
320
- .led-number-unit {
321
- font-size: 0.875rem;
322
- color: var(--text-muted);
323
- }
324
-
325
- .led-type-grid {
326
- display: grid;
327
- grid-template-columns: 1fr 1fr;
328
- gap: 8px;
329
- }
330
-
331
- .led-type-btn {
332
- display: flex;
333
- flex-direction: column;
334
- align-items: flex-start;
335
- gap: 2px;
336
- padding: 10px 12px;
337
- border-radius: 12px;
338
- border: 1px solid var(--border-color);
339
- background: var(--bg-surface);
340
- color: var(--text-muted);
341
- cursor: pointer;
342
- transition: all 0.2s;
343
- text-align: left;
344
- }
345
-
346
- .led-type-btn:hover {
347
- border-color: var(--led-p);
348
- color: var(--text-main);
349
- }
350
-
351
- .led-type-active {
352
- background: var(--led-p);
353
- border-color: var(--led-p);
354
- color: #fff;
355
- box-shadow: 0 4px 14px rgba(245, 158, 11, 0.35);
356
- }
357
-
358
- .led-type-title {
359
- font-size: 0.75rem;
360
- font-weight: 700;
361
- }
362
-
363
- .led-type-sub {
364
- font-size: 0.625rem;
365
- opacity: 0.75;
366
- }
367
-
368
- .led-slider {
369
- width: 100%;
370
- height: 6px;
371
- accent-color: var(--led-p);
372
- cursor: pointer;
373
- border-radius: 9999px;
374
- }
375
-
376
- .led-usage-desc {
377
- font-size: 0.8125rem;
378
- color: var(--text-muted);
379
- margin: 0;
380
- }
381
-
382
- .led-price-row {
383
- display: flex;
384
- align-items: baseline;
385
- gap: 8px;
386
- }
387
-
388
- .led-price-input {
389
- width: 90px;
390
- font-size: 1.5rem;
391
- font-weight: 900;
392
- color: var(--text-main);
393
- background: transparent;
394
- border: none;
395
- border-bottom: 2px solid var(--border-color);
396
- padding: 4px 0;
397
- outline: none;
398
- transition: border-color 0.2s;
399
- }
400
-
401
- .led-price-input:focus {
402
- border-color: var(--led-p);
403
- }
404
-
405
- .led-price-unit {
406
- font-size: 0.875rem;
407
- color: var(--text-muted);
408
- }
409
-
410
- .led-result-badge {
411
- font-size: 0.625rem;
412
- font-weight: 900;
413
- text-transform: uppercase;
414
- letter-spacing: 0.18em;
415
- color: var(--led-p);
416
- padding: 6px 14px;
417
- border: 1px solid rgba(245, 158, 11, 0.3);
418
- border-radius: 9999px;
419
- }
420
-
421
- .led-annual-section {
422
- text-align: center;
423
- }
424
-
425
- .led-annual-label {
426
- font-size: 0.6875rem;
427
- font-weight: 700;
428
- text-transform: uppercase;
429
- letter-spacing: 0.15em;
430
- color: var(--text-muted);
431
- margin: 0 0 8px;
432
- }
433
-
434
- .led-annual-value {
435
- font-size: 5rem;
436
- font-weight: 900;
437
- color: var(--led-p);
438
- line-height: 1;
439
- margin: 0;
440
- }
441
-
442
- .led-euro-sign {
443
- font-size: 2.5rem;
444
- font-weight: 300;
445
- color: var(--text-muted);
446
- }
447
-
448
- .led-stats {
449
- display: flex;
450
- align-items: center;
451
- gap: 24px;
452
- width: 100%;
453
- max-width: 320px;
454
- justify-content: center;
455
- }
456
-
457
- .led-stat {
458
- text-align: center;
459
- }
460
-
461
- .led-stat-label {
462
- font-size: 0.625rem;
463
- font-weight: 900;
464
- text-transform: uppercase;
465
- letter-spacing: 0.12em;
466
- color: var(--text-muted);
467
- margin: 0 0 4px;
468
- }
469
-
470
- .led-stat-value {
471
- font-size: 1.25rem;
472
- font-weight: 700;
473
- color: var(--text-main);
474
- margin: 0;
475
- }
476
-
477
- .led-stat-divider {
478
- width: 1px;
479
- height: 36px;
480
- background: var(--border-color);
481
- flex-shrink: 0;
482
- }
483
-
484
- .led-eco-box {
485
- display: flex;
486
- align-items: center;
487
- gap: 14px;
488
- padding: 16px 20px;
489
- border-radius: 16px;
490
- background: rgba(34, 197, 94, 0.08);
491
- border: 1px solid rgba(34, 197, 94, 0.2);
492
- width: 100%;
493
- max-width: 320px;
494
- }
495
-
496
- .led-eco-dot {
497
- width: 14px;
498
- height: 14px;
499
- border-radius: 50%;
500
- background: #22c55e;
501
- flex-shrink: 0;
502
- }
503
-
504
- .led-eco-text {
505
- display: flex;
506
- flex-direction: column;
507
- gap: 2px;
508
- }
509
-
510
- .led-eco-val {
511
- font-size: 1.25rem;
512
- font-weight: 900;
513
- color: #4ade80;
514
- }
515
-
516
- .led-eco-desc {
517
- font-size: 0.6875rem;
518
- color: var(--text-muted);
519
- }
520
- </style>
@@ -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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'led-sparrechner';
6
7
  const title = 'LED Sparrechner';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Häufig gestellte Fragen',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Quellen',
98
- bibliography: [
99
- {
100
- name: 'Energieeffizienz-Etiketten der EU',
101
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_de',
102
- },
103
- {
104
- name: 'Verbraucherzentrale: LED-Leuchtmittel kaufen',
105
- url: 'https://www.verbraucherzentrale.de/wissen/energie/strom-sparen/worauf-sie-beim-kauf-von-ledlampen-achten-sollten-11322',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'led-saving-calculator';
6
7
  const title = 'LED Saving Calculator';
@@ -97,23 +98,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
97
98
  slug,
98
99
  title,
99
100
  description,
100
- faqTitle: 'Frequently Asked Questions',
101
101
  faq: faqData,
102
- bibliographyTitle: 'Bibliography',
103
- bibliography: [
104
- {
105
- name: 'Energy Efficient Lighting Guide — IDAE (Spain)',
106
- url: 'https://www.idae.es/publicaciones/guia-tecnica-de-eficiencia-energetica-en-iluminacion-oficinas',
107
- },
108
- {
109
- name: 'Energy Labelling of Lamps — European Union',
110
- url: 'https://www.boe.es/buscar/doc.php?id=DOUE-L-2019-81875',
111
- },
112
- {
113
- name: 'Electricity Consumption Calculator — OCU',
114
- url: 'https://www.ocu.org/vivienda-y-energia/gas-luz/calculadora/consumo-stand-by',
115
- },
116
- ],
102
+ bibliography,
117
103
  howTo: howToData,
118
104
  schemas: [faqSchema, howToSchema, appSchema],
119
105
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-ahorro-led';
6
7
  const title = 'Calculadora de Ahorro LED';
@@ -97,23 +98,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
97
98
  slug,
98
99
  title,
99
100
  description,
100
- faqTitle: 'Preguntas Frecuentes',
101
101
  faq: faqData,
102
- bibliographyTitle: 'Bibliografía',
103
- bibliography: [
104
- {
105
- name: 'Guía de Iluminación Eficiente — IDAE (España)',
106
- url: 'https://www.idae.es/publicaciones/guia-tecnica-de-eficiencia-energetica-en-iluminacion-oficinas',
107
- },
108
- {
109
- name: 'Etiquetado Energético de Lámparas — Unión Europea',
110
- url: 'https://www.boe.es/buscar/doc.php?id=DOUE-L-2019-81875',
111
- },
112
- {
113
- name: 'Calculadora de Consumo Eléctrico — OCU',
114
- url: 'https://www.ocu.org/vivienda-y-energia/gas-luz/calculadora/consumo-stand-by',
115
- },
116
- ],
102
+ bibliography,
117
103
  howTo: howToData,
118
104
  schemas: [faqSchema, howToSchema, appSchema],
119
105
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-economies-led';
6
7
  const title = "Calculateur d'Économies LED";
@@ -97,23 +98,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
97
98
  slug,
98
99
  title,
99
100
  description,
100
- faqTitle: 'Questions Fréquentes',
101
101
  faq: faqData,
102
- bibliographyTitle: 'Bibliographie',
103
- bibliography: [
104
- {
105
- name: "Guide d'Éclairage Efficace — IDAE (Espagne)",
106
- url: 'https://www.idae.es/publicaciones/guia-tecnica-de-eficiencia-energetica-en-iluminacion-oficinas',
107
- },
108
- {
109
- name: 'Étiquetage Énergétique des Lampes — Union Européenne',
110
- url: 'https://www.boe.es/buscar/doc.php?id=DOUE-L-2019-81875',
111
- },
112
- {
113
- name: "Calculateur de Consommation Électrique — OCU",
114
- url: 'https://www.ocu.org/vivienda-y-energia/gas-luz/calculadora/consumo-stand-by',
115
- },
116
- ],
102
+ bibliography,
117
103
  howTo: howToData,
118
104
  schemas: [faqSchema, howToSchema, appSchema],
119
105
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-hemat-led';
6
7
  const title = 'Kalkulator Hemat LED';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Pertanyaan Umum',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Daftar Pustaka',
98
- bibliography: [
99
- {
100
- name: 'Label Energi Uni Eropa untuk Lampu',
101
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_en',
102
- },
103
- {
104
- name: 'Panduan Efisiensi Energi — IEA',
105
- url: 'https://www.iea.org/topics/energy-efficiency',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatore-risparmio-led';
6
7
  const title = 'Calcolatore Risparmio LED';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Domande Frequenti',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Bibliografia',
98
- bibliography: [
99
- {
100
- name: 'Efficienza Energetica - ENEA',
101
- url: 'https://www.efficienzaenergetica.enea.it/',
102
- },
103
- {
104
- name: 'Etichettatura Energetica UE',
105
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_it',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'led-saving-calculator';
6
7
  const title = 'LED節電・節約計算機';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'よくある質問',
96
96
  faq: faqData,
97
- bibliographyTitle: '参考文献',
98
- bibliography: [
99
- {
100
- name: '省エネポータルサイト — 資源エネルギー庁',
101
- url: 'https://www.enecho.meti.go.jp/category/saving_and_new/saving/',
102
- },
103
- {
104
- name: 'LED照明ナビ — 日本照明工業会',
105
- url: 'https://www.jlma.or.jp/led-navi/index.html',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'led-saving-calculator';
6
7
  const title = 'LED 절약 계산기';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: '자주 묻는 질문',
96
96
  faq: faqData,
97
- bibliographyTitle: '참고 자료',
98
- bibliography: [
99
- {
100
- name: '한국에너지공단 - 고효율 에너지기자재 가이드',
101
- url: 'https://www.energy.or.kr/',
102
- },
103
- {
104
- name: '에너지 효율 등급 안내 - 한국소비자원',
105
- url: 'https://www.kca.go.kr/',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'led-besparingscalculator';
6
7
  const title = 'LED Besparingscalculator';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Veelgestelde Vragen',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Bibliografie',
98
- bibliography: [
99
- {
100
- name: 'Energiebesparing — Milieu Centraal',
101
- url: 'https://www.milieucentraal.nl/',
102
- },
103
- {
104
- name: 'Energielabels voor lampen — Europese Unie',
105
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_nl',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-oszczednosci-led';
6
7
  const title = 'Kalkulator Oszczędności LED';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Często Zadawane Pytania',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Bibliografia',
98
- bibliography: [
99
- {
100
- name: 'Efektywność Energetyczna — Ministerstwo Klimatu',
101
- url: 'https://www.gov.pl/web/klimat/efektywnosc-energetyczna',
102
- },
103
- {
104
- name: 'Etykiety Energetyczne UE',
105
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_pl',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-poupanca-led';
6
7
  const title = 'Calculadora de Poupança LED';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Perguntas Frequentes',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Bibliografia',
98
- bibliography: [
99
- {
100
- name: 'Eficiência Energética — ADENE (Portugal)',
101
- url: 'https://www.adene.pt/',
102
- },
103
- {
104
- name: 'Etiquetagem Energética UE',
105
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_pt',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-ekonomii-led';
6
7
  const title = 'Калькулятор экономии LED';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Часто задаваемые вопросы',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Библиография',
98
- bibliography: [
99
- {
100
- name: 'Энергосбережение — портал Россетей',
101
- url: 'https://rosseti.ru/',
102
- },
103
- {
104
- name: 'Энергетическая маркировка ЕС для ламп',
105
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_en',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  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 { LedSavingCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'led-besparingskalkylator';
6
7
  const title = 'LED Besparingskalkylator';
@@ -92,19 +93,8 @@ export const content: ToolLocaleContent<LedSavingCalculatorUI> = {
92
93
  slug,
93
94
  title,
94
95
  description,
95
- faqTitle: 'Vanliga frågor',
96
96
  faq: faqData,
97
- bibliographyTitle: 'Referenser',
98
- bibliography: [
99
- {
100
- name: 'Energimyndigheten — Belysning',
101
- url: 'https://www.energimyndigheten.se/',
102
- },
103
- {
104
- name: 'EU:s energimärkning för lampor',
105
- url: 'https://commission.europa.eu/energy-climate-change-environment/standards-tools-and-labels/products-labelling-rules-and-requirements/energy-label-and-ecodesign/energy-efficient-products_sv',
106
- },
107
- ],
97
+ bibliography,
108
98
  howTo: howToData,
109
99
  schemas: [faqSchema, howToSchema, appSchema],
110
100
  seo: [