@jjlmoya/utils-finance 1.30.0 → 1.31.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 (211) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/fr.ts +159 -159
  3. package/src/category/i18n/ru.ts +158 -158
  4. package/src/category/index.ts +39 -38
  5. package/src/category/seo.astro +1 -1
  6. package/src/components/PreviewNavSidebar.astro +1 -1
  7. package/src/components/PreviewToolbar.astro +1 -1
  8. package/src/data.ts +1 -1
  9. package/src/entries.ts +4 -1
  10. package/src/env.d.ts +1 -1
  11. package/src/index.ts +1 -0
  12. package/src/layouts/PreviewLayout.astro +113 -113
  13. package/src/pages/index.astro +1 -1
  14. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  15. package/src/tests/faq_count.test.ts +1 -1
  16. package/src/tests/locale_completeness.test.ts +2 -2
  17. package/src/tests/mocks/astro_mock.js +1 -1
  18. package/src/tests/no_h1_in_components.test.ts +1 -1
  19. package/src/tests/script_density.test.ts +94 -94
  20. package/src/tests/seo_length.test.ts +23 -23
  21. package/src/tests/seo_translation_completeness.test.ts +69 -0
  22. package/src/tests/seo_wellformed_export.test.ts +65 -0
  23. package/src/tests/tool_validation.test.ts +17 -17
  24. package/src/tool/compoundInterest/compound-interest-calculator.css +236 -236
  25. package/src/tool/compoundInterest/entry.ts +32 -32
  26. package/src/tool/compoundInterest/i18n/de.ts +195 -195
  27. package/src/tool/compoundInterest/i18n/fr.ts +195 -195
  28. package/src/tool/compoundInterest/i18n/it.ts +195 -195
  29. package/src/tool/compoundInterest/i18n/pl.ts +194 -194
  30. package/src/tool/compoundInterest/i18n/ru.ts +195 -195
  31. package/src/tool/compoundInterest/i18n/tr.ts +195 -195
  32. package/src/tool/compoundInterest/i18n/zh.ts +189 -189
  33. package/src/tool/compoundInterest/seo.astro +15 -15
  34. package/src/tool/courtFeeCalculator/i18n/it.ts +158 -158
  35. package/src/tool/courtFeeCalculator/i18n/ru.ts +158 -158
  36. package/src/tool/courtFeeCalculator/i18n/tr.ts +158 -158
  37. package/src/tool/courtFeeCalculator/seo.astro +15 -15
  38. package/src/tool/courtFeeCalculator/spanish-court-fees-calculator.css +197 -197
  39. package/src/tool/debtSnowball/bibliography.ts +12 -12
  40. package/src/tool/debtSnowball/i18n/de.ts +16 -16
  41. package/src/tool/debtSnowball/i18n/id.ts +16 -16
  42. package/src/tool/debtSnowball/i18n/it.ts +168 -168
  43. package/src/tool/debtSnowball/i18n/nl.ts +16 -16
  44. package/src/tool/debtSnowball/i18n/pl.ts +168 -168
  45. package/src/tool/debtSnowball/i18n/pt.ts +1 -1
  46. package/src/tool/debtSnowball/i18n/ru.ts +1 -1
  47. package/src/tool/debtSnowball/i18n/sv.ts +22 -29
  48. package/src/tool/debtSnowball/i18n/tr.ts +168 -168
  49. package/src/tool/debtSnowball/i18n/zh.ts +168 -168
  50. package/src/tool/debtSnowball/seo.astro +15 -15
  51. package/src/tool/dividendYield/bibliography.astro +14 -0
  52. package/src/tool/dividendYield/bibliography.ts +12 -0
  53. package/src/tool/dividendYield/component.astro +83 -0
  54. package/src/tool/dividendYield/controller.ts +85 -0
  55. package/src/tool/dividendYield/dividend-yield-calculator.css +352 -0
  56. package/src/tool/dividendYield/dom-views.ts +58 -0
  57. package/src/tool/dividendYield/entry.ts +29 -0
  58. package/src/tool/dividendYield/evaluator.ts +16 -0
  59. package/src/tool/dividendYield/i18n/de.ts +53 -0
  60. package/src/tool/dividendYield/i18n/en.ts +138 -0
  61. package/src/tool/dividendYield/i18n/es.ts +49 -0
  62. package/src/tool/dividendYield/i18n/fr.ts +49 -0
  63. package/src/tool/dividendYield/i18n/id.ts +49 -0
  64. package/src/tool/dividendYield/i18n/it.ts +49 -0
  65. package/src/tool/dividendYield/i18n/ja.ts +49 -0
  66. package/src/tool/dividendYield/i18n/ko.ts +25 -0
  67. package/src/tool/dividendYield/i18n/nl.ts +25 -0
  68. package/src/tool/dividendYield/i18n/pl.ts +25 -0
  69. package/src/tool/dividendYield/i18n/pt.ts +25 -0
  70. package/src/tool/dividendYield/i18n/ru.ts +25 -0
  71. package/src/tool/dividendYield/i18n/sv.ts +25 -0
  72. package/src/tool/dividendYield/i18n/tr.ts +25 -0
  73. package/src/tool/dividendYield/i18n/zh.ts +25 -0
  74. package/src/tool/dividendYield/index.ts +11 -0
  75. package/src/tool/dividendYield/logic.test.ts +73 -0
  76. package/src/tool/dividendYield/logic.ts +55 -0
  77. package/src/tool/dividendYield/seo.astro +14 -0
  78. package/src/tool/dividendYield/storage.ts +24 -0
  79. package/src/tool/dividendYield/ui.ts +33 -0
  80. package/src/tool/financialFreedom/financial-freedom-calculator.css +311 -311
  81. package/src/tool/financialFreedom/i18n/en.ts +182 -182
  82. package/src/tool/financialFreedom/i18n/fr.ts +128 -128
  83. package/src/tool/financialFreedom/i18n/id.ts +24 -7
  84. package/src/tool/financialFreedom/i18n/it.ts +24 -7
  85. package/src/tool/financialFreedom/i18n/ja.ts +1 -1
  86. package/src/tool/financialFreedom/i18n/nl.ts +24 -7
  87. package/src/tool/financialFreedom/i18n/pl.ts +24 -7
  88. package/src/tool/financialFreedom/i18n/pt.ts +24 -7
  89. package/src/tool/financialFreedom/i18n/ru.ts +128 -128
  90. package/src/tool/financialFreedom/i18n/sv.ts +1 -1
  91. package/src/tool/financialFreedom/i18n/tr.ts +2 -2
  92. package/src/tool/financialFreedom/i18n/zh.ts +128 -128
  93. package/src/tool/fireCalculator/i18n/it.ts +241 -241
  94. package/src/tool/fireCalculator/i18n/ru.ts +241 -241
  95. package/src/tool/fireCalculator/i18n/tr.ts +241 -241
  96. package/src/tool/fireCalculator/i18n/zh.ts +241 -241
  97. package/src/tool/fireCalculator/seo.astro +15 -15
  98. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +151 -151
  99. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +118 -118
  100. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +118 -118
  101. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +118 -118
  102. package/src/tool/ibanBicSwiftConverter/iban-to-bic-swift-converter.css +366 -366
  103. package/src/tool/ibanBicSwiftConverter/seo.astro +15 -15
  104. package/src/tool/inflation/bibliography.ts +20 -20
  105. package/src/tool/inflation/entry.ts +32 -32
  106. package/src/tool/inflation/i18n/de.ts +284 -284
  107. package/src/tool/inflation/i18n/fr.ts +284 -284
  108. package/src/tool/inflation/i18n/it.ts +284 -284
  109. package/src/tool/inflation/i18n/nl.ts +284 -284
  110. package/src/tool/inflation/i18n/pl.ts +284 -284
  111. package/src/tool/inflation/i18n/pt.ts +284 -284
  112. package/src/tool/inflation/i18n/ru.ts +284 -284
  113. package/src/tool/inflation/i18n/sv.ts +284 -284
  114. package/src/tool/inflation/i18n/tr.ts +284 -284
  115. package/src/tool/inflation/i18n/zh.ts +284 -284
  116. package/src/tool/inflation/seo.astro +15 -15
  117. package/src/tool/lateInterest/bibliography.ts +16 -16
  118. package/src/tool/lateInterest/entry.ts +32 -32
  119. package/src/tool/lateInterest/i18n/de.ts +213 -213
  120. package/src/tool/lateInterest/i18n/es.ts +213 -213
  121. package/src/tool/lateInterest/i18n/it.ts +213 -213
  122. package/src/tool/lateInterest/i18n/nl.ts +213 -213
  123. package/src/tool/lateInterest/i18n/pl.ts +213 -213
  124. package/src/tool/lateInterest/i18n/pt.ts +213 -213
  125. package/src/tool/lateInterest/i18n/ru.ts +213 -213
  126. package/src/tool/lateInterest/i18n/sv.ts +213 -213
  127. package/src/tool/lateInterest/i18n/tr.ts +213 -213
  128. package/src/tool/lateInterest/i18n/zh.ts +213 -213
  129. package/src/tool/lateInterest/seo.astro +15 -15
  130. package/src/tool/legalInterestRate/i18n/it.ts +129 -129
  131. package/src/tool/legalInterestRate/i18n/ru.ts +129 -129
  132. package/src/tool/legalInterestRate/i18n/tr.ts +128 -121
  133. package/src/tool/legalInterestRate/i18n/zh.ts +11 -4
  134. package/src/tool/legalInterestRate/seo.astro +15 -15
  135. package/src/tool/lotteryOptimizer/i18n/it.ts +163 -163
  136. package/src/tool/lotteryOptimizer/i18n/pl.ts +163 -163
  137. package/src/tool/lotteryOptimizer/i18n/ru.ts +163 -163
  138. package/src/tool/lotteryOptimizer/i18n/tr.ts +163 -163
  139. package/src/tool/lotteryOptimizer/i18n/zh.ts +162 -155
  140. package/src/tool/lotteryOptimizer/seo.astro +15 -15
  141. package/src/tool/mortgage/bibliography.ts +20 -20
  142. package/src/tool/mortgage/entry.ts +32 -32
  143. package/src/tool/mortgage/i18n/de.ts +210 -210
  144. package/src/tool/mortgage/i18n/es.ts +210 -210
  145. package/src/tool/mortgage/i18n/fr.ts +210 -210
  146. package/src/tool/mortgage/i18n/id.ts +210 -210
  147. package/src/tool/mortgage/i18n/it.ts +210 -210
  148. package/src/tool/mortgage/i18n/nl.ts +210 -210
  149. package/src/tool/mortgage/i18n/pl.ts +210 -210
  150. package/src/tool/mortgage/i18n/ru.ts +210 -210
  151. package/src/tool/mortgage/i18n/tr.ts +210 -210
  152. package/src/tool/mortgage/i18n/zh.ts +210 -210
  153. package/src/tool/mortgage/mortgage-calculator.css +595 -595
  154. package/src/tool/mortgage/seo.astro +15 -15
  155. package/src/tool/percentageCalculator/bibliography.ts +16 -16
  156. package/src/tool/percentageCalculator/entry.ts +32 -32
  157. package/src/tool/percentageCalculator/i18n/de.ts +220 -220
  158. package/src/tool/percentageCalculator/i18n/en.ts +220 -220
  159. package/src/tool/percentageCalculator/i18n/es.ts +220 -220
  160. package/src/tool/percentageCalculator/i18n/fr.ts +220 -220
  161. package/src/tool/percentageCalculator/i18n/it.ts +220 -220
  162. package/src/tool/percentageCalculator/i18n/pl.ts +220 -220
  163. package/src/tool/percentageCalculator/i18n/ru.ts +220 -220
  164. package/src/tool/percentageCalculator/i18n/tr.ts +220 -220
  165. package/src/tool/percentageCalculator/i18n/zh.ts +220 -220
  166. package/src/tool/percentageCalculator/seo.astro +15 -15
  167. package/src/tool/profitability/i18n/de.ts +24 -7
  168. package/src/tool/profitability/i18n/fr.ts +121 -104
  169. package/src/tool/profitability/i18n/id.ts +2 -2
  170. package/src/tool/profitability/i18n/it.ts +24 -7
  171. package/src/tool/profitability/i18n/ja.ts +1 -1
  172. package/src/tool/profitability/i18n/nl.ts +24 -7
  173. package/src/tool/profitability/i18n/pl.ts +1 -1
  174. package/src/tool/profitability/i18n/pt.ts +24 -7
  175. package/src/tool/profitability/i18n/ru.ts +118 -118
  176. package/src/tool/profitability/i18n/sv.ts +1 -1
  177. package/src/tool/profitability/i18n/tr.ts +1 -1
  178. package/src/tool/profitability/i18n/zh.ts +118 -118
  179. package/src/tool/profitability/profitability-calculator.css +229 -229
  180. package/src/tool/rentIncreaseCalculator/i18n/it.ts +125 -125
  181. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +125 -125
  182. package/src/tool/rentIncreaseCalculator/rent-increase-calculator.css +326 -326
  183. package/src/tool/rentIncreaseCalculator/seo.astro +15 -15
  184. package/src/tool/revolvingCardCalculator/i18n/de.ts +38 -20
  185. package/src/tool/revolvingCardCalculator/i18n/es.ts +19 -18
  186. package/src/tool/revolvingCardCalculator/i18n/fr.ts +32 -28
  187. package/src/tool/revolvingCardCalculator/i18n/id.ts +18 -18
  188. package/src/tool/revolvingCardCalculator/i18n/it.ts +18 -18
  189. package/src/tool/revolvingCardCalculator/i18n/ja.ts +2 -2
  190. package/src/tool/revolvingCardCalculator/i18n/ko.ts +2 -2
  191. package/src/tool/revolvingCardCalculator/i18n/nl.ts +22 -19
  192. package/src/tool/revolvingCardCalculator/i18n/pl.ts +2 -2
  193. package/src/tool/revolvingCardCalculator/i18n/pt.ts +2 -2
  194. package/src/tool/revolvingCardCalculator/i18n/ru.ts +2 -2
  195. package/src/tool/revolvingCardCalculator/i18n/sv.ts +2 -2
  196. package/src/tool/revolvingCardCalculator/i18n/tr.ts +2 -2
  197. package/src/tool/revolvingCardCalculator/i18n/zh.ts +6 -6
  198. package/src/tool/salaryEmployerCost/i18n/de.ts +10 -10
  199. package/src/tool/salaryEmployerCost/i18n/fr.ts +9 -9
  200. package/src/tool/salaryEmployerCost/i18n/id.ts +9 -9
  201. package/src/tool/salaryEmployerCost/i18n/it.ts +9 -9
  202. package/src/tool/salaryEmployerCost/i18n/ja.ts +1 -1
  203. package/src/tool/salaryEmployerCost/i18n/ko.ts +1 -1
  204. package/src/tool/salaryEmployerCost/i18n/nl.ts +2 -2
  205. package/src/tool/salaryEmployerCost/i18n/pl.ts +2 -2
  206. package/src/tool/salaryEmployerCost/i18n/pt.ts +2 -2
  207. package/src/tool/salaryEmployerCost/i18n/ru.ts +2 -2
  208. package/src/tool/salaryEmployerCost/i18n/sv.ts +2 -2
  209. package/src/tool/salaryEmployerCost/i18n/tr.ts +2 -2
  210. package/src/tool/salaryEmployerCost/i18n/zh.ts +2 -2
  211. package/src/tools.ts +2 -1
@@ -1,118 +1,135 @@
1
- import type { ProfitabilityUI } from '../ui';
2
- import type { ToolLocaleContent } from '../../../types';
3
-
4
- export const ui: ProfitabilityUI = {
5
- labelInitialInvestment: 'Investissement Initial',
6
- labelFinalValue: 'Valeur Finale / Solde Actuel',
7
- labelTimeSelection: 'Durée de l\'Investissement',
8
- labelYears: 'Ans',
9
- labelMonths: 'Mois',
10
- labelDays: 'Jours',
11
- labelROI: 'Retour sur Investissement (ROI)',
12
- labelCAGR: 'Croissance Annualisée (CAGR)',
13
- labelNetProfit: 'Bénéfice Net',
14
- labelLinearGrowth: 'Croissance Linéaire (Estimée)',
15
- labelExponentialGrowth: 'Croissance Composée (CAGR)',
16
- labelPositiveResult: 'Investissement Rentable',
17
- labelNegativeResult: 'Position Déficitaire',
18
- labelCopyResult: 'Copier les Résultats',
19
- labelCopied: 'Copié !',
20
- };
21
-
22
- const slug = 'calculateur-rentabilite-investissement-roi-cagr';
23
- const title = 'Calculateur de Rentabilité: ROI & CAGR';
24
- const description = 'Analysez la performance de vos investissements. Calculez le ROI total et le CAGR pour comprendre vos gains réels.';
25
-
26
- const faq = [
27
- {
28
- question: 'Qu\'est-ce qu\'un bon CAGR ?',
29
- answer: 'Cela dépend de l\'actif. Le S&P 500 tourne historiquement autour de 7-10% par an.',
30
- },
31
- {
32
- question: 'Pourquoi mon CAGR est-il différent de mon ROI total ?',
33
- answer: 'Le ROI est le rendement total sans tenir compte du temps. Le CAGR est le taux annuel nécessaire pour atteindre ce rendement total.',
34
- },
35
-
36
- { question: "Que faut-il vérifier avant d'utiliser le résultat ?", answer: "Vérifiez les données, unités, hypothèses et limites ; il s'agit d'une indication, pas d'une décision officielle." },];
37
-
38
- const howTo = [
39
- {
40
- name: 'Entrez votre capital initial',
41
- text: 'Saisissez le montant investi à l\'origine.',
42
- },
43
- {
44
- name: 'Entrez la valeur finale',
45
- text: 'Saisissez la valeur actuelle du marché.',
46
- },
47
- {
48
- name: 'Réglez la durée',
49
- text: 'Indiquez la durée de détention de l\'investissement.',
50
- },
51
- ];
52
-
53
- export const content: ToolLocaleContent<ProfitabilityUI> = {
54
- slug,
55
- title,
56
- description,
57
- ui,
58
- seo: [
59
- {
60
- type: 'title',
61
- text: 'ROI vs CAGR: Quelle métrique choisir ?',
62
- level: 2,
63
- },
1
+ import type { ProfitabilityUI } from '../ui';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ export const ui: ProfitabilityUI = {
5
+ labelInitialInvestment: 'Investissement Initial',
6
+ labelFinalValue: 'Valeur Finale / Solde Actuel',
7
+ labelTimeSelection: 'Durée de l\'Investissement',
8
+ labelYears: 'Ans',
9
+ labelMonths: 'Mois',
10
+ labelDays: 'Jours',
11
+ labelROI: 'Retour sur Investissement (ROI)',
12
+ labelCAGR: 'Croissance Annualisée (CAGR)',
13
+ labelNetProfit: 'Bénéfice Net',
14
+ labelLinearGrowth: 'Croissance Linéaire (Estimée)',
15
+ labelExponentialGrowth: 'Croissance Composée (CAGR)',
16
+ labelPositiveResult: 'Investissement Rentable',
17
+ labelNegativeResult: 'Position Déficitaire',
18
+ labelCopyResult: 'Copier les Résultats',
19
+ labelCopied: 'Copié !',
20
+ };
21
+
22
+ const slug = 'calculateur-rentabilite-investissement-roi-cagr';
23
+ const title = 'Calculateur de Rentabilité: ROI & CAGR';
24
+ const description = 'Analysez la performance de vos investissements. Calculez le ROI total et le CAGR pour comprendre vos gains réels.';
25
+
26
+ const faq = [
27
+ {
28
+ question: 'Qu\'est-ce qu\'un bon CAGR ?',
29
+ answer: 'Cela dépend de l\'actif. Le S&P 500 tourne historiquement autour de 7-10% par an.',
30
+ },
31
+ {
32
+ question: 'Pourquoi mon CAGR est-il différent de mon ROI total ?',
33
+ answer: 'Le ROI est le rendement total sans tenir compte du temps. Le CAGR est le taux annuel nécessaire pour atteindre ce rendement total.',
34
+ },
35
+
36
+ { question: "Que faut-il vérifier avant d'utiliser le résultat ?", answer: "Vérifiez les données, unités, hypothèses et limites ; il s'agit d'une indication, pas d'une décision officielle." },];
37
+
38
+ const howTo = [
39
+ {
40
+ name: 'Entrez votre capital initial',
41
+ text: 'Saisissez le montant investi à l\'origine.',
42
+ },
43
+ {
44
+ name: 'Entrez la valeur finale',
45
+ text: 'Saisissez la valeur actuelle du marché.',
46
+ },
47
+ {
48
+ name: 'Réglez la durée',
49
+ text: 'Indiquez la durée de détention de l\'investissement.',
50
+ },
51
+ ];
52
+
53
+ export const content: ToolLocaleContent<ProfitabilityUI> = {
54
+ slug,
55
+ title,
56
+ description,
57
+ ui,
58
+ seo: [
59
+ {
60
+ type: 'title',
61
+ text: 'ROI vs CAGR: Quelle métrique choisir ?',
62
+ level: 2,
63
+ },
64
64
  {
65
65
  type: 'paragraph',
66
- html: 'Le <strong>ROI</strong> indique le gain total en pourcentage, mais ignore le temps. Le <strong>CAGR</strong> est supérieur pour l\'analyse à long terme car il "annualise" vos rendements.',
66
+ html: 'Le <strong>ROI</strong> indique le gain total en pourcentage, mais ignore le temps. Le <strong>CAGR</strong> est plus utile pour l\'analyse à long terme car il annualise vos rendements et permet de comparer des placements détenus pendant des durées différentes.',
67
67
  },
68
-
69
- { type: 'paragraph', html: "Utilisez le résultat pour planifier et comparer des scénarios ; il ne remplace ni un calcul officiel ni un avis professionnel." },
70
- { type: 'paragraph', html: "Interprétez le résultat avec les hypothèses affichées par le calculateur avant de l'utiliser." },
71
- { type: 'paragraph', html: "Vérifiez les données, unités, arrondi, date et juridiction, car chacun de ces éléments peut modifier l'estimation." },
72
- { type: 'paragraph', html: "Utilisez le résultat pour planifier et comparer des scénarios ; il ne remplace ni un calcul officiel ni un avis professionnel." },
73
- { type: 'paragraph', html: "Interprétez le résultat avec les hypothèses affichées par le calculateur avant de l'utiliser." },],
74
- faq,
75
- bibliography: [
76
68
  {
77
- name: 'Définition du ROI - Investopedia',
78
- url: 'https://www.investopedia.com/terms/r/returnoninvestment.asp',
69
+ type: 'title',
70
+ text: 'Comment utiliser le calculateur de rentabilité',
71
+ level: 3,
79
72
  },
80
- ],
81
- howTo,
82
- schemas: [
83
73
  {
84
- '@context': 'https://schema.org',
85
- '@type': 'FinancialProduct',
86
- name: title,
87
- description,
74
+ type: 'paragraph',
75
+ html: 'Saisissez le capital initial, la valeur actuelle ou le prix de vente, puis choisissez une durée en jours, mois ou années. L\'outil calcule le bénéfice ou la perte en euros, le ROI total et la moyenne géométrique de la croissance annuelle. Pour comparer deux placements, utilisez la même convention de durée et vérifiez que les dépôts, retraits, frais et dividendes sont traités de la même façon.',
88
76
  },
89
77
  {
90
- '@context': 'https://schema.org',
91
- '@type': 'FAQPage',
92
- mainEntity: faq.map((f) => ({
93
- '@type': 'Question',
94
- name: f.question,
95
- acceptedAnswer: { '@type': 'Answer', text: f.answer },
96
- })),
78
+ type: 'title',
79
+ text: 'ROI total ou rendement annualisé ?',
80
+ level: 3,
97
81
  },
98
82
  {
99
- '@context': 'https://schema.org',
100
- '@type': 'HowTo',
101
- name: title,
102
- step: howTo.map((h, i) => ({
103
- '@type': 'HowToStep',
104
- position: i + 1,
105
- name: h.name,
106
- text: h.text,
107
- })),
83
+ type: 'paragraph',
84
+ html: 'Le ROI répond à la question "combien ai-je gagné au total ?". Le CAGR répond à "quel taux annuel composé aurait produit ce résultat ?". Un placement qui gagne 20 % en un an n\'est pas équivalent à un placement qui gagne 20 % en cinq ans. Le graphique oppose une progression linéaire à la courbe composée pour rendre cette différence visible.',
108
85
  },
109
86
  {
110
- '@context': 'https://schema.org',
111
- '@type': 'SoftwareApplication',
112
- name: title,
113
- applicationCategory: 'FinanceApplication',
114
- operatingSystem: 'All',
115
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
87
+ type: 'paragraph',
88
+ html: 'Le CAGR est une moyenne théorique et ne décrit pas le chemin réel de l\'investissement: il masque la volatilité et suppose une valeur initiale et finale fiables. Utilisez le résultat pour explorer des scénarios, après avoir vérifié les unités, les dates, les frais et les hypothèses affichées par le calculateur. Il ne remplace pas un avis financier personnalisé.',
116
89
  },
117
90
  ],
118
- };
91
+ faq,
92
+ bibliography: [
93
+ {
94
+ name: 'Définition du ROI - Investopedia',
95
+ url: 'https://www.investopedia.com/terms/r/returnoninvestment.asp',
96
+ },
97
+ ],
98
+ howTo,
99
+ schemas: [
100
+ {
101
+ '@context': 'https://schema.org',
102
+ '@type': 'FinancialProduct',
103
+ name: title,
104
+ description,
105
+ },
106
+ {
107
+ '@context': 'https://schema.org',
108
+ '@type': 'FAQPage',
109
+ mainEntity: faq.map((f) => ({
110
+ '@type': 'Question',
111
+ name: f.question,
112
+ acceptedAnswer: { '@type': 'Answer', text: f.answer },
113
+ })),
114
+ },
115
+ {
116
+ '@context': 'https://schema.org',
117
+ '@type': 'HowTo',
118
+ name: title,
119
+ step: howTo.map((h, i) => ({
120
+ '@type': 'HowToStep',
121
+ position: i + 1,
122
+ name: h.name,
123
+ text: h.text,
124
+ })),
125
+ },
126
+ {
127
+ '@context': 'https://schema.org',
128
+ '@type': 'SoftwareApplication',
129
+ name: title,
130
+ applicationCategory: 'FinanceApplication',
131
+ operatingSystem: 'All',
132
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
133
+ },
134
+ ],
135
+ };
@@ -69,8 +69,8 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
69
69
  { type: 'paragraph', html: "Gunakan hasil untuk perencanaan dan perbandingan skenario; hasil ini bukan pengganti perhitungan resmi atau nasihat ahli." },
70
70
  { type: 'paragraph', html: "Tafsirkan hasil bersama asumsi yang ditampilkan kalkulator sebelum menggunakannya." },
71
71
  { type: 'paragraph', html: "Periksa input, satuan, pembulatan, tanggal, dan yurisdiksi karena semuanya dapat mengubah estimasi." },
72
- { type: 'paragraph', html: "Gunakan hasil untuk perencanaan dan perbandingan skenario; hasil ini bukan pengganti perhitungan resmi atau nasihat ahli." },
73
- { type: 'paragraph', html: "Tafsirkan hasil bersama asumsi yang ditampilkan kalkulator sebelum menggunakannya." },],
72
+ { type: 'paragraph', html: "Gunakan hasil untuk perencanaan dan perbandingan skenario; hasil ini bukan pengganti perhitungan resmi atau nasihat ahli. Pastikan nilai awal, nilai akhir, dan periode investasi memang berasal dari rentang waktu yang sama." },
73
+ { type: 'paragraph', html: "CAGR adalah rata-rata teoretis yang tidak menunjukkan volatilitas atau urutan naik turunnya harga. Periksa biaya, setoran, penarikan, satuan waktu, pembulatan, dan asumsi sebelum menafsirkan hasil." },],
74
74
  faq,
75
75
  bibliography: [
76
76
  {
@@ -63,14 +63,31 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
63
63
  },
64
64
  {
65
65
  type: 'paragraph',
66
- html: 'Il <strong>ROI</strong> indica il guadagno percentuale totale, ma ignora il tempo. Il <strong>CAGR</strong> è migliore per le analisi a lungo termine.',
66
+ html: 'Il <strong>ROI</strong> indica il guadagno percentuale totale, ma ignora il tempo. Il <strong>CAGR</strong> è più utile per le analisi a lungo termine perché converte il risultato in un tasso annuo composto e permette di confrontare investimenti con durate diverse.',
67
67
  },
68
-
69
- { type: 'paragraph', html: "Usa il risultato per pianificare e confrontare scenari; non sostituisce un calcolo ufficiale o una consulenza professionale." },
70
- { type: 'paragraph', html: "Interpreta il risultato insieme alle ipotesi mostrate dal calcolatore prima di utilizzarlo." },
71
- { type: 'paragraph', html: "Controlla dati, unità, arrotondamento, data e giurisdizione, perché ciascun elemento può cambiare la stima." },
72
- { type: 'paragraph', html: "Usa il risultato per pianificare e confrontare scenari; non sostituisce un calcolo ufficiale o una consulenza professionale." },
73
- { type: 'paragraph', html: "Interpreta il risultato insieme alle ipotesi mostrate dal calcolatore prima di utilizzarlo." },],
68
+ {
69
+ type: 'title',
70
+ text: 'Come usare il calcolatore di redditività',
71
+ level: 3,
72
+ },
73
+ {
74
+ type: 'paragraph',
75
+ html: 'Inserisci il capitale iniziale, il valore attuale o il prezzo di vendita e la durata in giorni, mesi o anni. Lo strumento calcola utile o perdita, ROI totale e crescita annuale geometrica. Per confrontare due investimenti usa la stessa unità di tempo e verifica se commissioni, versamenti, prelievi e dividendi sono inclusi.',
76
+ },
77
+ {
78
+ type: 'title',
79
+ text: 'ROI totale o rendimento annualizzato?',
80
+ level: 3,
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'Il ROI risponde alla domanda "quanto ho guadagnato in totale?". Il CAGR risponde a "quale tasso annuo composto avrebbe prodotto questo risultato?". Un +20% in un anno non equivale a un +20% in cinque anni. Il grafico rende visibile la differenza tra crescita lineare e composta.',
85
+ },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'Il CAGR è una media teorica e nasconde la volatilità e il percorso reale del prezzo. Controlla dati, unità, date, arrotondamenti e ipotesi prima di usare il risultato. È uno strumento di orientamento e non sostituisce una consulenza finanziaria personalizzata.',
89
+ },
90
+ ],
74
91
  faq,
75
92
  bibliography: [
76
93
  {
@@ -63,7 +63,7 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
63
63
  },
64
64
  {
65
65
  type: 'paragraph',
66
- html: '<strong>ROI</strong>は全体の収益率を示しますが、期間を考慮しません。<strong>CAGR</strong>は期間を「年換算」するため、長期分析に優れています。',
66
+ html: '<strong>ROI</strong>は全体の収益率を示しますが、期間を考慮しません。<strong>CAGR</strong>は期間を「年換算」するため、長期分析に優れています。開始額、終了額、保有期間、手数料を同じ条件で入力すると、異なる投資をより公平に比較できます。',
67
67
  },
68
68
 
69
69
  { type: 'paragraph', html: "結果は計画や条件比較に使えますが、公式計算や専門家の助言の代わりにはなりません。" },
@@ -63,14 +63,31 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
63
63
  },
64
64
  {
65
65
  type: 'paragraph',
66
- html: '<strong>ROI</strong> geeft het totale groeipercentage aan, maar negeert de tijd. <strong>CAGR</strong> is beter voor langetermijnanalyse.',
66
+ html: '<strong>ROI</strong> geeft het totale groeipercentage aan, maar negeert de tijd. <strong>CAGR</strong> is nuttiger voor langetermijnanalyse omdat het het resultaat omzet in een samengesteld jaarlijks groeipercentage en beleggingen met verschillende looptijden vergelijkbaar maakt.',
67
67
  },
68
-
69
- { type: 'paragraph', html: "Gebruik het resultaat voor planning en scenariokeuze; het vervangt geen officiële berekening of professioneel advies." },
70
- { type: 'paragraph', html: "Interpreteer het resultaat samen met de aannames van de calculator voordat u het gebruikt." },
71
- { type: 'paragraph', html: "Controleer invoer, eenheden, afronding, datum en jurisdictie, want elk onderdeel kan de schatting wijzigen." },
72
- { type: 'paragraph', html: "Gebruik het resultaat voor planning en scenariokeuze; het vervangt geen officiële berekening of professioneel advies." },
73
- { type: 'paragraph', html: "Interpreteer het resultaat samen met de aannames van de calculator voordat u het gebruikt." },],
68
+ {
69
+ type: 'title',
70
+ text: 'De rendementscalculator gebruiken',
71
+ level: 3,
72
+ },
73
+ {
74
+ type: 'paragraph',
75
+ html: 'Vul het startkapitaal, de huidige waarde of verkoopprijs en de looptijd in dagen, maanden of jaren in. De tool berekent winst of verlies, totale ROI en geometrische jaarlijkse groei. Gebruik dezelfde tijdseenheid wanneer je beleggingen vergelijkt en controleer of kosten, stortingen, opnames en dividenden zijn meegenomen.',
76
+ },
77
+ {
78
+ type: 'title',
79
+ text: 'Totale ROI of geannualiseerd rendement?',
80
+ level: 3,
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'ROI beantwoordt de vraag hoeveel je in totaal hebt gewonnen of verloren. CAGR laat zien welk constant samengesteld jaarpercentage dezelfde begin- en eindwaarde zou hebben opgeleverd. 20% in één jaar is daarom niet hetzelfde als 20% in vijf jaar. De grafiek maakt het verschil tussen lineaire en samengestelde groei zichtbaar.',
85
+ },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'CAGR is een theoretisch gemiddelde en verbergt volatiliteit en het werkelijke prijsverloop. Controleer gegevens, eenheden, datums, afronding en aannames voordat je het resultaat gebruikt. Het is een hulpmiddel voor oriëntatie en vervangt geen persoonlijk financieel advies.',
89
+ },
90
+ ],
74
91
  faq,
75
92
  bibliography: [
76
93
  {
@@ -70,7 +70,7 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
70
70
  { type: 'paragraph', html: "Przed użyciem zinterpretuj wynik razem z założeniami pokazanymi przez kalkulator." },
71
71
  { type: 'paragraph', html: "Sprawdź dane, jednostki, zaokrąglenie, datę i jurysdykcję, ponieważ każdy element może zmienić szacunek." },
72
72
  { type: 'paragraph', html: "Używaj wyniku do planowania i porównywania scenariuszy; nie zastępuje obliczeń urzędowych ani porady specjalisty." },
73
- { type: 'paragraph', html: "Przed użyciem zinterpretuj wynik razem z założeniami pokazanymi przez kalkulator." },],
73
+ { type: 'paragraph', html: "Przed użyciem zinterpretuj wynik razem z założeniami pokazanymi przez kalkulator. CAGR jest średnią teoretyczną i nie pokazuje zmienności ceny; sprawdź okres, opłaty, wpłaty i wypłaty przed porównaniem inwestycji. ROI pokazuje wynik całkowity, a CAGR ułatwia porównanie różnych okresów." },],
74
74
  faq,
75
75
  bibliography: [
76
76
  {
@@ -63,14 +63,31 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
63
63
  },
64
64
  {
65
65
  type: 'paragraph',
66
- html: 'O <strong>ROI</strong> indica a percentagem total de ganho, mas ignora o tempo. El <strong>CAGR</strong> é melhor para análises a longo prazo.',
66
+ html: 'O <strong>ROI</strong> indica a percentagem total de ganho, mas ignora o tempo. O <strong>CAGR</strong> é mais útil para análises a longo prazo porque transforma o resultado numa taxa anual composta e permite comparar investimentos com durações diferentes.',
67
67
  },
68
-
69
- { type: 'paragraph', html: "Use o resultado para planear e comparar cenários; não substitui um cálculo oficial nem aconselhamento profissional." },
70
- { type: 'paragraph', html: "Interprete o resultado juntamente com as premissas apresentadas pela calculadora antes de o utilizar." },
71
- { type: 'paragraph', html: "Confirme dados, unidades, arredondamento, data e jurisdição, pois cada elemento pode alterar a estimativa." },
72
- { type: 'paragraph', html: "Use o resultado para planear e comparar cenários; não substitui um cálculo oficial nem aconselhamento profissional." },
73
- { type: 'paragraph', html: "Interprete o resultado juntamente com as premissas apresentadas pela calculadora antes de o utilizar." },],
68
+ {
69
+ type: 'title',
70
+ text: 'Como utilizar o calculador de rentabilidade',
71
+ level: 3,
72
+ },
73
+ {
74
+ type: 'paragraph',
75
+ html: 'Introduza o capital inicial, o valor atual ou preço de venda e a duração em dias, meses ou anos. A ferramenta calcula o lucro ou prejuízo, o ROI total e o crescimento anual geométrico. Para comparar investimentos, use a mesma unidade de tempo e confirme se comissões, depósitos, levantamentos e dividendos estão incluídos.',
76
+ },
77
+ {
78
+ type: 'title',
79
+ text: 'ROI total ou rendimento anualizado?',
80
+ level: 3,
81
+ },
82
+ {
83
+ type: 'paragraph',
84
+ html: 'O ROI responde a "quanto ganhei no total?". O CAGR responde a "que taxa anual composta produziria este resultado?". Um ganho de 20% num ano não equivale a 20% em cinco anos. A visualização ajuda a distinguir crescimento linear de crescimento composto.',
85
+ },
86
+ {
87
+ type: 'paragraph',
88
+ html: 'O CAGR é uma média teórica e esconde a volatilidade e o caminho real do preço. Confirme dados, unidades, datas, arredondamentos e premissas antes de utilizar o resultado. É uma ferramenta de orientação e não substitui aconselhamento financeiro personalizado.',
89
+ },
90
+ ],
74
91
  faq,
75
92
  bibliography: [
76
93
  {
@@ -1,118 +1,118 @@
1
- import type { ProfitabilityUI } from '../ui';
2
- import type { ToolLocaleContent } from '../../../types';
3
-
4
- export const ui: ProfitabilityUI = {
5
- labelInitialInvestment: 'Начальные Инвестиции',
6
- labelFinalValue: 'Конечная Стоимость / Текущий Баланс',
7
- labelTimeSelection: 'Срок Инвестирования',
8
- labelYears: 'Лет',
9
- labelMonths: 'Месяцев',
10
- labelDays: 'Дней',
11
- labelROI: 'Рентабельность Инвестиций (ROI)',
12
- labelCAGR: 'Среднегодовой Рост (CAGR)',
13
- labelNetProfit: 'Чистая Прибыль',
14
- labelLinearGrowth: 'Линейный Рост (Оценка)',
15
- labelExponentialGrowth: 'Сложный Рост (CAGR)',
16
- labelPositiveResult: 'Прибыльная Инвестиция',
17
- labelNegativeResult: 'Убыточная Позиция',
18
- labelCopyResult: 'Копировать Результаты',
19
- labelCopied: 'Скопировано!',
20
- };
21
-
22
- const slug = 'kalkulyator-rentabelnosti-investicij-roi-cagr';
23
- const title = 'Калькулятор Рентабельности: ROI и CAGR';
24
- const description = 'Анализируйте эффективность ваших инвестиций. Рассчитайте ROI и CAGR, чтобы понять вашу реальную годовую прибыль.';
25
-
26
- const faq = [
27
- {
28
- question: 'Какой CAGR считается хорошим?',
29
- answer: 'Исторически индекс S&P 500 приносит около 7-10% годовых.',
30
- },
31
- {
32
- question: 'Почему CAGR отличается от общего ROI?',
33
- answer: 'ROI - это общая прибыль без учета времени. CAGR - это среднегодовой темп роста.',
34
- },
35
-
36
- { question: "Что проверить перед использованием результата?", answer: "Проверьте ввод, единицы, допущения и ограничения; это ориентир, а не официальное решение." },];
37
-
38
- const howTo = [
39
- {
40
- name: 'Введите начальный капитал',
41
- text: 'Введите сумму, которую вы инвестировали изначально.',
42
- },
43
- {
44
- name: 'Введите конечную стоимость',
45
- text: 'Введите текущую рыночную стоимость или цену продажи.',
46
- },
47
- {
48
- name: 'Установите срок',
49
- text: 'Укажите, как долго вы удерживали инвестицию.',
50
- },
51
- ];
52
-
53
- export const content: ToolLocaleContent<ProfitabilityUI> = {
54
- slug,
55
- title,
56
- description,
57
- ui,
58
- seo: [
59
- {
60
- type: 'title',
61
- text: 'ROI против CAGR: Какой показатель лучше?',
62
- level: 2,
63
- },
64
- {
65
- type: 'paragraph',
66
- html: '<strong>ROI</strong> показывает общий процент прибыли, но игнорирует время. <strong>CAGR</strong> лучше подходит для долгосрочного анализа.',
67
- },
68
-
69
- { type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
70
- { type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
71
- { type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
72
- { type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
73
- { type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },],
74
- faq,
75
- bibliography: [
76
- {
77
- name: 'Определение ROI - Investopedia',
78
- url: 'https://www.investopedia.com/terms/r/returnoninvestment.asp',
79
- },
80
- ],
81
- howTo,
82
- schemas: [
83
- {
84
- '@context': 'https://schema.org',
85
- '@type': 'FinancialProduct',
86
- name: title,
87
- description,
88
- },
89
- {
90
- '@context': 'https://schema.org',
91
- '@type': 'FAQPage',
92
- mainEntity: faq.map((f) => ({
93
- '@type': 'Question',
94
- name: f.question,
95
- acceptedAnswer: { '@type': 'Answer', text: f.answer },
96
- })),
97
- },
98
- {
99
- '@context': 'https://schema.org',
100
- '@type': 'HowTo',
101
- name: title,
102
- step: howTo.map((h, i) => ({
103
- '@type': 'HowToStep',
104
- position: i + 1,
105
- name: h.name,
106
- text: h.text,
107
- })),
108
- },
109
- {
110
- '@context': 'https://schema.org',
111
- '@type': 'SoftwareApplication',
112
- name: title,
113
- applicationCategory: 'FinanceApplication',
114
- operatingSystem: 'All',
115
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
116
- },
117
- ],
118
- };
1
+ import type { ProfitabilityUI } from '../ui';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ export const ui: ProfitabilityUI = {
5
+ labelInitialInvestment: 'Начальные Инвестиции',
6
+ labelFinalValue: 'Конечная Стоимость / Текущий Баланс',
7
+ labelTimeSelection: 'Срок Инвестирования',
8
+ labelYears: 'Лет',
9
+ labelMonths: 'Месяцев',
10
+ labelDays: 'Дней',
11
+ labelROI: 'Рентабельность Инвестиций (ROI)',
12
+ labelCAGR: 'Среднегодовой Рост (CAGR)',
13
+ labelNetProfit: 'Чистая Прибыль',
14
+ labelLinearGrowth: 'Линейный Рост (Оценка)',
15
+ labelExponentialGrowth: 'Сложный Рост (CAGR)',
16
+ labelPositiveResult: 'Прибыльная Инвестиция',
17
+ labelNegativeResult: 'Убыточная Позиция',
18
+ labelCopyResult: 'Копировать Результаты',
19
+ labelCopied: 'Скопировано!',
20
+ };
21
+
22
+ const slug = 'kalkulyator-rentabelnosti-investicij-roi-cagr';
23
+ const title = 'Калькулятор Рентабельности: ROI и CAGR';
24
+ const description = 'Анализируйте эффективность ваших инвестиций. Рассчитайте ROI и CAGR, чтобы понять вашу реальную годовую прибыль.';
25
+
26
+ const faq = [
27
+ {
28
+ question: 'Какой CAGR считается хорошим?',
29
+ answer: 'Исторически индекс S&P 500 приносит около 7-10% годовых.',
30
+ },
31
+ {
32
+ question: 'Почему CAGR отличается от общего ROI?',
33
+ answer: 'ROI - это общая прибыль без учета времени. CAGR - это среднегодовой темп роста.',
34
+ },
35
+
36
+ { question: "Что проверить перед использованием результата?", answer: "Проверьте ввод, единицы, допущения и ограничения; это ориентир, а не официальное решение." },];
37
+
38
+ const howTo = [
39
+ {
40
+ name: 'Введите начальный капитал',
41
+ text: 'Введите сумму, которую вы инвестировали изначально.',
42
+ },
43
+ {
44
+ name: 'Введите конечную стоимость',
45
+ text: 'Введите текущую рыночную стоимость или цену продажи.',
46
+ },
47
+ {
48
+ name: 'Установите срок',
49
+ text: 'Укажите, как долго вы удерживали инвестицию.',
50
+ },
51
+ ];
52
+
53
+ export const content: ToolLocaleContent<ProfitabilityUI> = {
54
+ slug,
55
+ title,
56
+ description,
57
+ ui,
58
+ seo: [
59
+ {
60
+ type: 'title',
61
+ text: 'ROI против CAGR: Какой показатель лучше?',
62
+ level: 2,
63
+ },
64
+ {
65
+ type: 'paragraph',
66
+ html: '<strong>ROI</strong> показывает общий процент прибыли, но игнорирует время. <strong>CAGR</strong> лучше подходит для долгосрочного анализа, потому что переводит результат в средний годовой темп сложного роста и позволяет сравнивать вложения с разным сроком. Для корректного сравнения начальная и конечная стоимость должны относиться к одному периоду и учитывать одинаковые комиссии.',
67
+ },
68
+
69
+ { type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
70
+ { type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },
71
+ { type: 'paragraph', html: "Проверьте ввод, единицы, округление, дату и юрисдикцию: каждый параметр может изменить оценку." },
72
+ { type: 'paragraph', html: "Используйте результат для планирования и сравнения сценариев; он не заменяет официальный расчёт или консультацию специалиста." },
73
+ { type: 'paragraph', html: "Перед использованием интерпретируйте результат вместе с допущениями, указанными калькулятором." },],
74
+ faq,
75
+ bibliography: [
76
+ {
77
+ name: 'Определение ROI - Investopedia',
78
+ url: 'https://www.investopedia.com/terms/r/returnoninvestment.asp',
79
+ },
80
+ ],
81
+ howTo,
82
+ schemas: [
83
+ {
84
+ '@context': 'https://schema.org',
85
+ '@type': 'FinancialProduct',
86
+ name: title,
87
+ description,
88
+ },
89
+ {
90
+ '@context': 'https://schema.org',
91
+ '@type': 'FAQPage',
92
+ mainEntity: faq.map((f) => ({
93
+ '@type': 'Question',
94
+ name: f.question,
95
+ acceptedAnswer: { '@type': 'Answer', text: f.answer },
96
+ })),
97
+ },
98
+ {
99
+ '@context': 'https://schema.org',
100
+ '@type': 'HowTo',
101
+ name: title,
102
+ step: howTo.map((h, i) => ({
103
+ '@type': 'HowToStep',
104
+ position: i + 1,
105
+ name: h.name,
106
+ text: h.text,
107
+ })),
108
+ },
109
+ {
110
+ '@context': 'https://schema.org',
111
+ '@type': 'SoftwareApplication',
112
+ name: title,
113
+ applicationCategory: 'FinanceApplication',
114
+ operatingSystem: 'All',
115
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
116
+ },
117
+ ],
118
+ };