@jjlmoya/utils-finance 1.14.0 → 1.16.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 (225) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +29 -13
  3. package/src/tests/locale_completeness.test.ts +6 -16
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/compoundInterest/bibliography.ts +20 -0
  7. package/src/tool/compoundInterest/compound-interest-calculator.css +315 -69
  8. package/src/tool/compoundInterest/entry.ts +2 -0
  9. package/src/tool/compoundInterest/i18n/de.ts +3 -16
  10. package/src/tool/compoundInterest/i18n/en.ts +3 -20
  11. package/src/tool/compoundInterest/i18n/es.ts +2 -20
  12. package/src/tool/compoundInterest/i18n/fr.ts +3 -20
  13. package/src/tool/compoundInterest/i18n/id.ts +3 -16
  14. package/src/tool/compoundInterest/i18n/it.ts +3 -16
  15. package/src/tool/compoundInterest/i18n/ja.ts +3 -16
  16. package/src/tool/compoundInterest/i18n/ko.ts +3 -16
  17. package/src/tool/compoundInterest/i18n/nl.ts +3 -16
  18. package/src/tool/compoundInterest/i18n/pl.ts +2 -16
  19. package/src/tool/compoundInterest/i18n/pt.ts +3 -16
  20. package/src/tool/compoundInterest/i18n/ru.ts +3 -16
  21. package/src/tool/compoundInterest/i18n/sv.ts +3 -16
  22. package/src/tool/compoundInterest/i18n/tr.ts +3 -16
  23. package/src/tool/compoundInterest/i18n/zh.ts +3 -16
  24. package/src/tool/compoundInterest/seo.astro +2 -1
  25. package/src/tool/courtFeeCalculator/bibliography.ts +16 -0
  26. package/src/tool/courtFeeCalculator/entry.ts +2 -0
  27. package/src/tool/courtFeeCalculator/i18n/de.ts +2 -18
  28. package/src/tool/courtFeeCalculator/i18n/en.ts +2 -22
  29. package/src/tool/courtFeeCalculator/i18n/es.ts +2 -22
  30. package/src/tool/courtFeeCalculator/i18n/fr.ts +2 -22
  31. package/src/tool/courtFeeCalculator/i18n/id.ts +2 -18
  32. package/src/tool/courtFeeCalculator/i18n/it.ts +2 -18
  33. package/src/tool/courtFeeCalculator/i18n/ja.ts +2 -18
  34. package/src/tool/courtFeeCalculator/i18n/ko.ts +2 -18
  35. package/src/tool/courtFeeCalculator/i18n/nl.ts +2 -18
  36. package/src/tool/courtFeeCalculator/i18n/pl.ts +2 -18
  37. package/src/tool/courtFeeCalculator/i18n/pt.ts +2 -18
  38. package/src/tool/courtFeeCalculator/i18n/ru.ts +2 -18
  39. package/src/tool/courtFeeCalculator/i18n/sv.ts +2 -18
  40. package/src/tool/courtFeeCalculator/i18n/tr.ts +2 -18
  41. package/src/tool/courtFeeCalculator/i18n/zh.ts +2 -18
  42. package/src/tool/courtFeeCalculator/seo.astro +2 -1
  43. package/src/tool/debtSnowball/bibliography.ts +12 -0
  44. package/src/tool/debtSnowball/entry.ts +2 -0
  45. package/src/tool/debtSnowball/i18n/de.ts +2 -14
  46. package/src/tool/debtSnowball/i18n/en.ts +2 -14
  47. package/src/tool/debtSnowball/i18n/es.ts +2 -14
  48. package/src/tool/debtSnowball/i18n/fr.ts +2 -14
  49. package/src/tool/debtSnowball/i18n/id.ts +2 -14
  50. package/src/tool/debtSnowball/i18n/it.ts +2 -14
  51. package/src/tool/debtSnowball/i18n/ja.ts +2 -14
  52. package/src/tool/debtSnowball/i18n/ko.ts +2 -14
  53. package/src/tool/debtSnowball/i18n/nl.ts +2 -14
  54. package/src/tool/debtSnowball/i18n/pl.ts +2 -14
  55. package/src/tool/debtSnowball/i18n/pt.ts +2 -14
  56. package/src/tool/debtSnowball/i18n/ru.ts +2 -14
  57. package/src/tool/debtSnowball/i18n/sv.ts +2 -14
  58. package/src/tool/debtSnowball/i18n/tr.ts +2 -14
  59. package/src/tool/debtSnowball/i18n/zh.ts +2 -14
  60. package/src/tool/debtSnowball/seo.astro +2 -1
  61. package/src/tool/fireCalculator/bibliography.ts +20 -0
  62. package/src/tool/fireCalculator/entry.ts +2 -0
  63. package/src/tool/fireCalculator/i18n/de.ts +2 -22
  64. package/src/tool/fireCalculator/i18n/en.ts +2 -22
  65. package/src/tool/fireCalculator/i18n/es.ts +2 -22
  66. package/src/tool/fireCalculator/i18n/fr.ts +2 -22
  67. package/src/tool/fireCalculator/i18n/id.ts +2 -22
  68. package/src/tool/fireCalculator/i18n/it.ts +2 -22
  69. package/src/tool/fireCalculator/i18n/ja.ts +2 -22
  70. package/src/tool/fireCalculator/i18n/ko.ts +2 -22
  71. package/src/tool/fireCalculator/i18n/nl.ts +2 -22
  72. package/src/tool/fireCalculator/i18n/pl.ts +2 -22
  73. package/src/tool/fireCalculator/i18n/pt.ts +2 -22
  74. package/src/tool/fireCalculator/i18n/ru.ts +2 -22
  75. package/src/tool/fireCalculator/i18n/sv.ts +2 -22
  76. package/src/tool/fireCalculator/i18n/tr.ts +2 -22
  77. package/src/tool/fireCalculator/i18n/zh.ts +2 -22
  78. package/src/tool/fireCalculator/seo.astro +2 -1
  79. package/src/tool/ibanBicSwiftConverter/bibliography.ts +12 -0
  80. package/src/tool/ibanBicSwiftConverter/entry.ts +2 -0
  81. package/src/tool/ibanBicSwiftConverter/i18n/de.ts +2 -14
  82. package/src/tool/ibanBicSwiftConverter/i18n/en.ts +2 -18
  83. package/src/tool/ibanBicSwiftConverter/i18n/es.ts +2 -18
  84. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +2 -18
  85. package/src/tool/ibanBicSwiftConverter/i18n/id.ts +2 -14
  86. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +2 -14
  87. package/src/tool/ibanBicSwiftConverter/i18n/ja.ts +2 -14
  88. package/src/tool/ibanBicSwiftConverter/i18n/ko.ts +2 -14
  89. package/src/tool/ibanBicSwiftConverter/i18n/nl.ts +2 -14
  90. package/src/tool/ibanBicSwiftConverter/i18n/pl.ts +2 -14
  91. package/src/tool/ibanBicSwiftConverter/i18n/pt.ts +2 -14
  92. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +2 -14
  93. package/src/tool/ibanBicSwiftConverter/i18n/sv.ts +2 -14
  94. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +2 -14
  95. package/src/tool/ibanBicSwiftConverter/i18n/zh.ts +2 -14
  96. package/src/tool/ibanBicSwiftConverter/seo.astro +2 -1
  97. package/src/tool/inflation/bibliography.ts +20 -0
  98. package/src/tool/inflation/entry.ts +2 -0
  99. package/src/tool/inflation/i18n/de.ts +3 -16
  100. package/src/tool/inflation/i18n/en.ts +3 -20
  101. package/src/tool/inflation/i18n/es.ts +3 -20
  102. package/src/tool/inflation/i18n/fr.ts +3 -20
  103. package/src/tool/inflation/i18n/id.ts +3 -16
  104. package/src/tool/inflation/i18n/it.ts +3 -16
  105. package/src/tool/inflation/i18n/ja.ts +3 -16
  106. package/src/tool/inflation/i18n/ko.ts +3 -16
  107. package/src/tool/inflation/i18n/nl.ts +3 -16
  108. package/src/tool/inflation/i18n/pl.ts +3 -16
  109. package/src/tool/inflation/i18n/pt.ts +3 -16
  110. package/src/tool/inflation/i18n/ru.ts +3 -16
  111. package/src/tool/inflation/i18n/sv.ts +3 -16
  112. package/src/tool/inflation/i18n/tr.ts +3 -16
  113. package/src/tool/inflation/i18n/zh.ts +3 -16
  114. package/src/tool/inflation/seo.astro +2 -1
  115. package/src/tool/lateInterest/bibliography.ts +16 -0
  116. package/src/tool/lateInterest/entry.ts +2 -0
  117. package/src/tool/lateInterest/i18n/de.ts +3 -16
  118. package/src/tool/lateInterest/i18n/en.ts +3 -16
  119. package/src/tool/lateInterest/i18n/es.ts +3 -16
  120. package/src/tool/lateInterest/i18n/fr.ts +3 -16
  121. package/src/tool/lateInterest/i18n/id.ts +3 -16
  122. package/src/tool/lateInterest/i18n/it.ts +3 -16
  123. package/src/tool/lateInterest/i18n/ja.ts +3 -16
  124. package/src/tool/lateInterest/i18n/ko.ts +3 -16
  125. package/src/tool/lateInterest/i18n/nl.ts +3 -16
  126. package/src/tool/lateInterest/i18n/pl.ts +3 -16
  127. package/src/tool/lateInterest/i18n/pt.ts +3 -16
  128. package/src/tool/lateInterest/i18n/ru.ts +3 -16
  129. package/src/tool/lateInterest/i18n/sv.ts +3 -16
  130. package/src/tool/lateInterest/i18n/tr.ts +3 -16
  131. package/src/tool/lateInterest/i18n/zh.ts +3 -16
  132. package/src/tool/lateInterest/seo.astro +2 -1
  133. package/src/tool/legalInterestRate/bibliography.ts +16 -0
  134. package/src/tool/legalInterestRate/entry.ts +2 -0
  135. package/src/tool/legalInterestRate/i18n/de.ts +2 -18
  136. package/src/tool/legalInterestRate/i18n/en.ts +2 -22
  137. package/src/tool/legalInterestRate/i18n/es.ts +2 -22
  138. package/src/tool/legalInterestRate/i18n/fr.ts +2 -22
  139. package/src/tool/legalInterestRate/i18n/id.ts +2 -18
  140. package/src/tool/legalInterestRate/i18n/it.ts +2 -18
  141. package/src/tool/legalInterestRate/i18n/ja.ts +2 -18
  142. package/src/tool/legalInterestRate/i18n/ko.ts +2 -18
  143. package/src/tool/legalInterestRate/i18n/nl.ts +2 -18
  144. package/src/tool/legalInterestRate/i18n/pl.ts +2 -18
  145. package/src/tool/legalInterestRate/i18n/pt.ts +2 -18
  146. package/src/tool/legalInterestRate/i18n/ru.ts +2 -18
  147. package/src/tool/legalInterestRate/i18n/sv.ts +2 -18
  148. package/src/tool/legalInterestRate/i18n/tr.ts +2 -18
  149. package/src/tool/legalInterestRate/i18n/zh.ts +2 -18
  150. package/src/tool/legalInterestRate/seo.astro +2 -1
  151. package/src/tool/lotteryOptimizer/bibliography.ts +16 -0
  152. package/src/tool/lotteryOptimizer/entry.ts +2 -0
  153. package/src/tool/lotteryOptimizer/i18n/de.ts +2 -18
  154. package/src/tool/lotteryOptimizer/i18n/en.ts +2 -18
  155. package/src/tool/lotteryOptimizer/i18n/es.ts +2 -18
  156. package/src/tool/lotteryOptimizer/i18n/fr.ts +2 -18
  157. package/src/tool/lotteryOptimizer/i18n/id.ts +2 -18
  158. package/src/tool/lotteryOptimizer/i18n/it.ts +2 -18
  159. package/src/tool/lotteryOptimizer/i18n/ja.ts +2 -18
  160. package/src/tool/lotteryOptimizer/i18n/ko.ts +2 -18
  161. package/src/tool/lotteryOptimizer/i18n/nl.ts +2 -18
  162. package/src/tool/lotteryOptimizer/i18n/pl.ts +2 -18
  163. package/src/tool/lotteryOptimizer/i18n/pt.ts +2 -18
  164. package/src/tool/lotteryOptimizer/i18n/ru.ts +2 -18
  165. package/src/tool/lotteryOptimizer/i18n/sv.ts +2 -18
  166. package/src/tool/lotteryOptimizer/i18n/tr.ts +2 -18
  167. package/src/tool/lotteryOptimizer/i18n/zh.ts +2 -18
  168. package/src/tool/lotteryOptimizer/seo.astro +2 -1
  169. package/src/tool/lotteryOptimizer/spain-lottery-optimizer.css +524 -7
  170. package/src/tool/mortgage/bibliography.ts +20 -0
  171. package/src/tool/mortgage/entry.ts +2 -0
  172. package/src/tool/mortgage/i18n/de.ts +3 -16
  173. package/src/tool/mortgage/i18n/en.ts +3 -20
  174. package/src/tool/mortgage/i18n/es.ts +3 -20
  175. package/src/tool/mortgage/i18n/fr.ts +3 -20
  176. package/src/tool/mortgage/i18n/id.ts +3 -12
  177. package/src/tool/mortgage/i18n/it.ts +3 -16
  178. package/src/tool/mortgage/i18n/ja.ts +3 -12
  179. package/src/tool/mortgage/i18n/ko.ts +3 -12
  180. package/src/tool/mortgage/i18n/nl.ts +3 -12
  181. package/src/tool/mortgage/i18n/pl.ts +3 -12
  182. package/src/tool/mortgage/i18n/pt.ts +3 -12
  183. package/src/tool/mortgage/i18n/ru.ts +3 -12
  184. package/src/tool/mortgage/i18n/sv.ts +3 -12
  185. package/src/tool/mortgage/i18n/tr.ts +3 -12
  186. package/src/tool/mortgage/i18n/zh.ts +3 -12
  187. package/src/tool/mortgage/seo.astro +2 -1
  188. package/src/tool/percentageCalculator/bibliography.ts +16 -0
  189. package/src/tool/percentageCalculator/entry.ts +2 -0
  190. package/src/tool/percentageCalculator/i18n/de.ts +3 -12
  191. package/src/tool/percentageCalculator/i18n/en.ts +3 -16
  192. package/src/tool/percentageCalculator/i18n/es.ts +3 -16
  193. package/src/tool/percentageCalculator/i18n/fr.ts +3 -16
  194. package/src/tool/percentageCalculator/i18n/id.ts +3 -12
  195. package/src/tool/percentageCalculator/i18n/it.ts +3 -12
  196. package/src/tool/percentageCalculator/i18n/ja.ts +3 -12
  197. package/src/tool/percentageCalculator/i18n/ko.ts +3 -12
  198. package/src/tool/percentageCalculator/i18n/nl.ts +3 -12
  199. package/src/tool/percentageCalculator/i18n/pl.ts +3 -12
  200. package/src/tool/percentageCalculator/i18n/pt.ts +3 -12
  201. package/src/tool/percentageCalculator/i18n/ru.ts +3 -12
  202. package/src/tool/percentageCalculator/i18n/sv.ts +3 -12
  203. package/src/tool/percentageCalculator/i18n/tr.ts +3 -12
  204. package/src/tool/percentageCalculator/i18n/zh.ts +3 -12
  205. package/src/tool/percentageCalculator/percentage-calculator.css +20 -0
  206. package/src/tool/percentageCalculator/seo.astro +2 -1
  207. package/src/tool/rentIncreaseCalculator/bibliography.ts +16 -0
  208. package/src/tool/rentIncreaseCalculator/entry.ts +2 -0
  209. package/src/tool/rentIncreaseCalculator/i18n/de.ts +2 -18
  210. package/src/tool/rentIncreaseCalculator/i18n/en.ts +2 -18
  211. package/src/tool/rentIncreaseCalculator/i18n/es.ts +2 -18
  212. package/src/tool/rentIncreaseCalculator/i18n/fr.ts +2 -18
  213. package/src/tool/rentIncreaseCalculator/i18n/id.ts +2 -18
  214. package/src/tool/rentIncreaseCalculator/i18n/it.ts +2 -18
  215. package/src/tool/rentIncreaseCalculator/i18n/ja.ts +2 -18
  216. package/src/tool/rentIncreaseCalculator/i18n/ko.ts +2 -18
  217. package/src/tool/rentIncreaseCalculator/i18n/nl.ts +2 -18
  218. package/src/tool/rentIncreaseCalculator/i18n/pl.ts +2 -18
  219. package/src/tool/rentIncreaseCalculator/i18n/pt.ts +2 -18
  220. package/src/tool/rentIncreaseCalculator/i18n/ru.ts +2 -18
  221. package/src/tool/rentIncreaseCalculator/i18n/sv.ts +2 -18
  222. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +2 -18
  223. package/src/tool/rentIncreaseCalculator/i18n/zh.ts +2 -18
  224. package/src/tool/rentIncreaseCalculator/seo.astro +2 -1
  225. package/src/types.ts +0 -2
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Staatliches Haushaltsgesetz Spanien 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Spanisches Zivilgesetzbuch - Art. 1108 ff.',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Gesetz 3/2004 gegen Zahlungsverzug',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Häufig gestellte Fragen',
114
- bibliographyTitle: 'Rechtliche Quellen',
115
99
  ui: {
116
100
  labelTitle: 'Gesetzlicher Zinssatz',
117
101
  labelDescription: 'Berechnen Sie die Zinsen gemäß dem Haushaltsgesetz 2026. Simulator mit 3,25 % für Spanien.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,25 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'State Budget Law 2026',
54
- url: 'https://www.boe.es/buscar/act.php',
55
- },
56
- {
57
- name: 'Spanish Civil Code - Articles 1108 and following',
58
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-1889-4763',
59
- },
60
- {
61
- name: 'Law 3/1991 on Unfair Competition',
62
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-1991-8915',
63
- },
64
- {
65
- name: 'Law 3/2004 on Late Payment Combat',
66
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2004-20236',
67
- },
68
- ];
69
-
70
52
  const seoData = [
71
53
  {
72
54
  type: 'title',
@@ -126,8 +108,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
126
108
  slug,
127
109
  title,
128
110
  description,
129
- faqTitle: 'Frequently Asked Questions',
130
- bibliographyTitle: 'Legal Sources',
131
111
  ui: {
132
112
  labelTitle: 'Legal Interest Rate on Money',
133
113
  labelDescription: 'Calculate the exact amount of legal interest according to Spain\'s Budget Law 2026. Automatic calculator with 3.25% rate.',
@@ -153,7 +133,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
153
133
  },
154
134
  faq: faqData,
155
135
  howTo: howToData,
156
- bibliography: bibliographyData,
136
+ bibliography,
157
137
  seo: seoData,
158
138
  schemas: [faqSchema, howToSchema, appSchema],
159
139
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,25 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Ley de Presupuestos Generales del Estado 2026',
54
- url: 'https://www.boe.es/buscar/act.php',
55
- },
56
- {
57
- name: 'Código Civil Español - Artículos 1108 y siguientes',
58
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-1889-4763',
59
- },
60
- {
61
- name: 'Ley 3/1991 de Competencia Desleal',
62
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-1991-8915',
63
- },
64
- {
65
- name: 'Ley 3/2004 de Lucha contra la Morosidad',
66
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2004-20236',
67
- },
68
- ];
69
-
70
52
  const seoData = [
71
53
  {
72
54
  type: 'title',
@@ -126,8 +108,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
126
108
  slug,
127
109
  title,
128
110
  description,
129
- faqTitle: 'Preguntas Frecuentes',
130
- bibliographyTitle: 'Fuentes Legales',
131
111
  ui: {
132
112
  labelTitle: 'Tipo de Interés Legal del Dinero',
133
113
  labelDescription: 'Calcula el importe exacto de intereses legales según la Ley de Presupuestos 2026. Simulador con tasa al 3,25% para España.',
@@ -153,7 +133,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
153
133
  },
154
134
  faq: faqData,
155
135
  howTo: howToData,
156
- bibliography: bibliographyData,
136
+ bibliography,
157
137
  seo: seoData,
158
138
  schemas: [faqSchema, howToSchema, appSchema],
159
139
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,25 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Loi de Budgets Généraux de l\'État 2026',
54
- url: 'https://www.boe.es/buscar/act.php',
55
- },
56
- {
57
- name: 'Code civil espagnol - Articles 1108 et suivants',
58
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-1889-4763',
59
- },
60
- {
61
- name: 'Loi 3/1991 sur la concurrence déloyale',
62
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-1991-8915',
63
- },
64
- {
65
- name: 'Loi 3/2004 contre les retards de paiement',
66
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2004-20236',
67
- },
68
- ];
69
-
70
52
  const seoData = [
71
53
  {
72
54
  type: 'title',
@@ -126,8 +108,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
126
108
  slug,
127
109
  title,
128
110
  description,
129
- faqTitle: 'Questions Fréquemment Posées',
130
- bibliographyTitle: 'Sources Légales',
131
111
  ui: {
132
112
  labelTitle: 'Taux d\'Intérêt Légal de l\'Argent',
133
113
  labelDescription: 'Calculez le montant exact des intérêts légaux selon la Loi budgétaire 2026 de l\'Espagne. Calculatrice automatique avec taux de 3,25%.',
@@ -153,7 +133,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
153
133
  },
154
134
  faq: faqData,
155
135
  howTo: howToData,
156
- bibliography: bibliographyData,
136
+ bibliography,
157
137
  seo: seoData,
158
138
  schemas: [faqSchema, howToSchema, appSchema],
159
139
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Undang-Undang Anggaran Umum Negara (Spanyol) 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Kitab Undang-Undang Hukum Perdata Spanyol - Pasal 1108 dst.',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Undang-Undang 3/2004 tentang Keterlambatan Pembayaran',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Pertanyaan Umum',
114
- bibliographyTitle: 'Sumber Hukum',
115
99
  ui: {
116
100
  labelTitle: 'Tingkat Suku Bunga Hukum',
117
101
  labelDescription: 'Hitung jumlah bunga hukum menurut Undang-Undang Anggaran 2026. Simulator pada tingkat 3,25% untuk Spanyol.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Legge di Bilancio dello Stato (Spagna) 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Codice Civile Spagnolo - Art. 1108 e segg.',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Legge 3/2004 contro la Morosità',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Domande Frequenti',
114
- bibliographyTitle: 'Fonti Legali',
115
99
  ui: {
116
100
  labelTitle: 'Tasso di Interesse Legale',
117
101
  labelDescription: 'Calcola l’importo degli interessi legali secondo la Legge di Bilancio 2026. Simulatore al 3,25% per la Spagna.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: '2026年スペイン国家一般予算案',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'スペイン民法 - 第1108条以降',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: '支払遅延防止法 (Ley 3/2004)',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'よくある質問',
114
- bibliographyTitle: '法的情報源',
115
99
  ui: {
116
100
  labelTitle: '法定利息率',
117
101
  labelDescription: '2026年予算案に基づく法定利息額を計算します。スペイン向けの3.25%シミュレーターです。',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: '2026년 스페인 국가 일반 예산법',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: '스페인 민법 - 제1108조 이하',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: '지불 지연 방지법 (Ley 3/2004)',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: '자주 묻는 질문',
114
- bibliographyTitle: '법적 출처',
115
99
  ui: {
116
100
  labelTitle: '법정 이자율',
117
101
  labelDescription: '2026년 예산법에 따른 법정 이자액을 계산합니다. 스페인용 3.25% 시뮬레이터입니다.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Algemene Begrotingswet Spanje 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Spaans Burgerlijk Wetboek - Art. 1108 e.v.',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Wet 3/2004 tegen Betalingsachterstanden',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Veelgestelde Vragen',
114
- bibliographyTitle: 'Wettelijke Bronnen',
115
99
  ui: {
116
100
  labelTitle: 'Wettelijk Rentetarief',
117
101
  labelDescription: 'Bereken de rente volgens de Begrotingswet 2026. Simulator met 3,25% voor Spanje.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Ustawa o budżecie państwa (Hiszpania) 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Hiszpański Kodeks Cywilny - Art. 1108 i nast.',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Ustawa 3/2004 o zwalczaniu opóźnień w płatnościach',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Często Zadawane Pytania',
114
- bibliographyTitle: 'Źródła Prawne',
115
99
  ui: {
116
100
  labelTitle: 'Stopa Odsetek Ustawowych',
117
101
  labelDescription: 'Oblicz kwotę odsetek ustawowych zgodnie z ustawą budżetową 2026. Symulator ze stawką 3,25% dla Hiszpanii.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Lei de Orçamento Geral do Estado (Espanha) 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Código Civil Espanhol - Art. 1108 e seguintes',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Lei 3/2004 de Luta contra a Morosidade',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Perguntas Frequentes',
114
- bibliographyTitle: 'Fontes Legais',
115
99
  ui: {
116
100
  labelTitle: 'Taxa de Juro Legal',
117
101
  labelDescription: 'Calcule o montante dos juros legais conforme a Lei de Orçamento 2026. Simulador a 3,25% para Espanha.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Закон о государственном бюджете (Испания) 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Гражданский кодекс Испании - ст. 1108 и далее',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Закон 3/2004 о борьбе с просрочками платежей',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Часто залаваемые вопросы',
114
- bibliographyTitle: 'Юридические источники',
115
99
  ui: {
116
100
  labelTitle: 'Ставка законного процента',
117
101
  labelDescription: 'Рассчитайте сумму законных процентов согласно Закону о бюджете 2026 года. Симулятор на уровне 3,25% для Испании.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Spansk budgetlag 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Spanska civillagen - Art. 1108 ff.',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Lag 3/2004 mot sena betalningar',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Vanliga frågor',
114
- bibliographyTitle: 'Juridiska källor',
115
99
  ui: {
116
100
  labelTitle: 'Lagstadgad räntesats',
117
101
  labelDescription: 'Beräkna lagstadgad ränta enligt budgetlagen 2026. Simulator med 3,25 % för Spanien.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'İspanya Devlet Genel Bütçe Kanunu 2026',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'İspanya Medeni Kanunu - 1108. Madde ve devamı',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Geç Ödemelerle Mücadele Hakkında 3/2004 Sayılı Kanun',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: 'Sıkça Sorulan Sorular',
114
- bibliographyTitle: 'Yasal Kaynaklar',
115
99
  ui: {
116
100
  labelTitle: 'Yasal Faiz Oranı',
117
101
  labelDescription: '2026 Bütçe Kanunu’na göre yasal faiz miktarını hesaplayın. İspanya için %3,25 oranında simülatör.',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -1,3 +1,4 @@
1
+ import { bibliography } from '../bibliography';
1
2
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
3
  import type { ToolLocaleContent } from '../../../types';
3
4
  import type { LegalInterestRateUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: '2026 年西班牙国家一般预算法',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: '西班牙民法典 - 第 1108 条及后续条款',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: '第 3/2004 号打击逾期付款法',
62
- url: 'https://www.boe.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -110,8 +96,6 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
110
96
  slug,
111
97
  title,
112
98
  description,
113
- faqTitle: '常见问题',
114
- bibliographyTitle: '法律来源',
115
99
  ui: {
116
100
  labelTitle: '法定利息率',
117
101
  labelDescription: '根据 2026 年预算法计算法定利息金额。西班牙 3.25% 利率模拟器。',
@@ -137,7 +121,7 @@ export const content: ToolLocaleContent<LegalInterestRateUI> = {
137
121
  },
138
122
  faq: faqData,
139
123
  howTo: howToData,
140
- bibliography: bibliographyData,
124
+ bibliography,
141
125
  seo: seoData,
142
126
  schemas: [faqSchema, howToSchema, appSchema],
143
127
  };
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
11
11
  const content = await legalInterestRate.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
14
+
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}