@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 { CompoundInterestUI } from '../ui';
@@ -87,27 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Frequently Asked Questions',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Sources & References',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Khan Academy: Interest and Debt',
104
- url: 'https://www.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
- },
106
- {
107
- name: 'Investopedia: Time Value of Money',
108
- url: 'https://www.investopedia.com/terms/t/timevalueofmoney.asp',
109
- },
110
- ],
92
+ bibliography,
93
+
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,27 +88,8 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Preguntas Frecuentes',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Fuentes y Referencias',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Khan Academy: Interest and Debt',
104
- url: 'https://www.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
- },
106
- {
107
- name: 'Banco de España: Portal del Cliente Bancario',
108
- url: 'https://www.bde.es/bde/es/secciones/servicios/Particulares_y_e/Clientesbancarios/',
109
- },
110
- ],
92
+ bibliography,
111
93
  howTo: howToData,
112
94
  schemas: [faqSchema, howToSchema, appSchema],
113
95
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,27 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Questions Fréquentes',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Sources et Références',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Khan Academy: Interest and Debt',
104
- url: 'https://www.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
- },
106
- {
107
- name: 'Banque de France : Éducation financière',
108
- url: 'https://www.banque-france.fr/fr/la-banque-de-france/notre-mission/education-economique-financiere-et-statistique',
109
- },
110
- ],
92
+ bibliography,
93
+
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Pertanyaan Umum',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Sumber dan Referensi',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Khan Academy: Bunga dan Hutang',
104
- url: 'https://id.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Domande Frequenti',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Fonti e Riferimenti',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Khan Academy: Interest and Debt',
104
- url: 'https://it.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'よくある質問',
91
91
  faq: faqData,
92
- bibliographyTitle: '情報源とリファレンス',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: '複利の計算 - Wikipedia',
104
- url: 'https://ja.wikipedia.org/wiki/複利',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: '자주 묻는 질문',
91
91
  faq: faqData,
92
- bibliographyTitle: '출처 및 참고 자료',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: '복리의 개념 - 위키백과',
104
- url: 'https://ko.wikipedia.org/wiki/복리',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Veelgestelde vragen',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Bronnen en Referenties',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Samengestelde interest - Wikipedia',
104
- url: 'https://nl.wikipedia.org/wiki/Samengestelde_interest',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,8 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Często zadawane pytania',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Źródła i referencje',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Procent składany - Wikipedia',
104
- url: 'https://pl.wikipedia.org/wiki/Procent_składany',
105
- },
106
- ],
92
+ bibliography,
107
93
  howTo: howToData,
108
94
  schemas: [faqSchema, howToSchema, appSchema],
109
95
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Perguntas Frequentes',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Fontes e Referências',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Juros compostos - Wikipédia',
104
- url: 'https://pt.wikipedia.org/wiki/Juros_compostos',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Часто задаваемые вопросы',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Источники и ссылки',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Сложный процент — Википедия',
104
- url: 'https://ru.wikipedia.org/wiki/Сложный_процент',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Vanliga frågor',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Källor och referenser',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Ränta på ränta - Wikipedia',
104
- url: 'https://sv.wikipedia.org/wiki/Ränta_på_ränta',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: 'Sıkça Sorulan Sorular',
91
91
  faq: faqData,
92
- bibliographyTitle: 'Kaynaklar ve Referanslar',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: 'Bileşik Faiz - Vikipedi',
104
- url: 'https://tr.wikipedia.org/wiki/Bileşik_faiz',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -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 { CompoundInterestUI } from '../ui';
@@ -87,23 +88,9 @@ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
88
  slug,
88
89
  title,
89
90
  description,
90
- faqTitle: '常见问题',
91
91
  faq: faqData,
92
- bibliographyTitle: '来源与参考',
93
- bibliography: [
94
- {
95
- name: 'Investopedia: Compound Interest Definition',
96
- url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
- },
98
- {
99
- name: 'Investopedia: Rule of 72',
100
- url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
- },
102
- {
103
- name: '复利 - 维基百科',
104
- url: 'https://zh.wikipedia.org/wiki/复利',
105
- },
106
- ],
92
+ bibliography,
93
+
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -11,4 +11,5 @@ const { locale = 'es' } = Astro.props;
11
11
  const content = await compoundInterest.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 }} />}
@@ -0,0 +1,16 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Gesetz 10/2012 über Gerichtsgebühren (Spanien)',
6
+ url: 'https://www.boe.es/',
7
+ },
8
+ {
9
+ name: 'Urteil TC 140/2016 über Gerichtsgebühren',
10
+ url: 'https://www.boe.es/',
11
+ },
12
+ {
13
+ name: 'Steuerbehörde - Modell 696',
14
+ url: 'https://sede.agenciatributaria.gob.es/',
15
+ },
16
+ ];
@@ -27,3 +27,5 @@ export const courtFeeCalculator: FinanceToolEntry<CourtFeeCalculatorUI> = {
27
27
  zh: () => import('./i18n/zh').then((m) => m.content),
28
28
  },
29
29
  };
30
+
31
+ export { bibliography } from './bibliography';
@@ -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 { CourtFeeCalculatorUI } from '../ui';
@@ -48,21 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Gesetz 10/2012 über Gerichtsgebühren (Spanien)',
54
- url: 'https://www.boe.es/',
55
- },
56
- {
57
- name: 'Urteil TC 140/2016 über Gerichtsgebühren',
58
- url: 'https://www.boe.es/',
59
- },
60
- {
61
- name: 'Steuerbehörde - Modell 696',
62
- url: 'https://sede.agenciatributaria.gob.es/',
63
- },
64
- ];
65
-
66
52
  const seoData = [
67
53
  {
68
54
  type: 'title',
@@ -111,8 +97,6 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
111
97
  slug,
112
98
  title,
113
99
  description,
114
- faqTitle: 'Häufig gestellte Fragen',
115
- bibliographyTitle: 'Quellen und Referenzen',
116
100
  ui: {
117
101
  labelTitle: 'Gerichtskostenrechner',
118
102
  labelDescription: 'Berechnen Sie den exakten Betrag für Modell 696 nach Gerichtsbarkeit und Verfahren. Für spanische Unternehmen.',
@@ -146,7 +130,7 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
146
130
  },
147
131
  faq: faqData,
148
132
  howTo: howToData,
149
- bibliography: bibliographyData,
133
+ bibliography,
150
134
  seo: seoData,
151
135
  schemas: [faqSchema, howToSchema, appSchema],
152
136
  };
@@ -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 { CourtFeeCalculatorUI } from '../ui';
@@ -48,25 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Law 10/2012 on Judicial Fees (Spanish Official Gazette)',
54
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2012-14301',
55
- },
56
- {
57
- name: 'Constitutional Court Ruling 140/2016 on Judicial Fees',
58
- url: 'https://www.boe.es/buscar/doc.php?id=BOE-A-2016-7905',
59
- },
60
- {
61
- name: 'Spanish Tax Authority - Form 696',
62
- url: 'https://sede.agenciatributaria.gob.es/Sede/procedimientoini/GC07.shtml',
63
- },
64
- {
65
- name: 'General Council of the Judiciary - Fee Information',
66
- url: 'https://www.cgpj.es/es/Inicio',
67
- },
68
- ];
69
-
70
52
  const seoData = [
71
53
  {
72
54
  type: 'title',
@@ -227,8 +209,6 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
227
209
  slug,
228
210
  title,
229
211
  description,
230
- faqTitle: 'Frequently Asked Questions',
231
- bibliographyTitle: 'Sources and References',
232
212
  ui: {
233
213
  labelTitle: 'Spanish Court Fees Calculator',
234
214
  labelDescription: 'Calculate the exact Form 696 amount based on jurisdiction, procedure and claim amount. For Spanish companies and professionals.',
@@ -262,7 +242,7 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
262
242
  },
263
243
  faq: faqData,
264
244
  howTo: howToData,
265
- bibliography: bibliographyData,
245
+ bibliography,
266
246
  seo: seoData,
267
247
  schemas: [faqSchema, howToSchema, appSchema],
268
248
  };
@@ -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 { CourtFeeCalculatorUI } from '../ui';
@@ -48,25 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Ley 10/2012 de Tasas Judiciales (BOE)',
54
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2012-14301',
55
- },
56
- {
57
- name: 'Sentencia TC 140/2016 sobre Tasas Judiciales',
58
- url: 'https://www.boe.es/buscar/doc.php?id=BOE-A-2016-7905',
59
- },
60
- {
61
- name: 'Agencia Tributaria - Modelo 696',
62
- url: 'https://sede.agenciatributaria.gob.es/Sede/procedimientoini/GC07.shtml',
63
- },
64
- {
65
- name: 'Consejo General del Poder Judicial - Información de Tasas',
66
- url: 'https://www.cgpj.es/es/Inicio',
67
- },
68
- ];
69
-
70
52
  const seoData = [
71
53
  {
72
54
  type: 'title',
@@ -227,8 +209,6 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
227
209
  slug,
228
210
  title,
229
211
  description,
230
- faqTitle: 'Preguntas Frecuentes',
231
- bibliographyTitle: 'Fuentes y Referencias',
232
212
  ui: {
233
213
  labelTitle: 'Calculadora de Tasas Judiciales',
234
214
  labelDescription: 'Calcula el importe exacto del Modelo 696 según jurisdicción, procedimiento y cuantía. Para empresas y profesionales españoles.',
@@ -262,7 +242,7 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
262
242
  },
263
243
  faq: faqData,
264
244
  howTo: howToData,
265
- bibliography: bibliographyData,
245
+ bibliography,
266
246
  seo: seoData,
267
247
  schemas: [faqSchema, howToSchema, appSchema],
268
248
  };
@@ -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 { CourtFeeCalculatorUI } from '../ui';
@@ -48,25 +49,6 @@ const howToData = [
48
49
  },
49
50
  ];
50
51
 
51
- const bibliographyData = [
52
- {
53
- name: 'Loi 10/2012 sur les Frais Judiciaires (Bulletin Officiel)',
54
- url: 'https://www.boe.es/buscar/act.php?id=BOE-A-2012-14301',
55
- },
56
- {
57
- name: 'Décision de la Cour Constitutionnelle 140/2016 sur les Frais Judiciaires',
58
- url: 'https://www.boe.es/buscar/doc.php?id=BOE-A-2016-7905',
59
- },
60
- {
61
- name: 'Administration Fiscale Espagnole - Formulaire 696',
62
- url: 'https://sede.agenciatributaria.gob.es/Sede/procedimientoini/GC07.shtml',
63
- },
64
- {
65
- name: 'Conseil Général du Pouvoir Judiciaire - Information sur les Frais',
66
- url: 'https://www.cgpj.es/es/Inicio',
67
- },
68
- ];
69
-
70
52
  const seoData = [
71
53
  {
72
54
  type: 'title',
@@ -227,8 +209,6 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
227
209
  slug,
228
210
  title,
229
211
  description,
230
- faqTitle: 'Questions Fréquemment Posées',
231
- bibliographyTitle: 'Sources et Références',
232
212
  ui: {
233
213
  labelTitle: 'Calculatrice de Frais Judiciaires',
234
214
  labelDescription: 'Calculez le montant exact du formulaire 696 selon la juridiction, la procédure et le montant du litige. Pour les entreprises et professionnels espagnols.',
@@ -262,7 +242,7 @@ export const content: ToolLocaleContent<CourtFeeCalculatorUI> = {
262
242
  },
263
243
  faq: faqData,
264
244
  howTo: howToData,
265
- bibliography: bibliographyData,
245
+ bibliography,
266
246
  seo: seoData,
267
247
  schemas: [faqSchema, howToSchema, appSchema],
268
248
  };