@jjlmoya/utils-finance 1.30.0 → 1.32.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 (215) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/en.ts +1 -1
  3. package/src/category/i18n/es.ts +4 -4
  4. package/src/category/i18n/fr.ts +159 -159
  5. package/src/category/i18n/pl.ts +1 -1
  6. package/src/category/i18n/ru.ts +158 -158
  7. package/src/category/index.ts +39 -38
  8. package/src/category/seo.astro +1 -1
  9. package/src/components/PreviewNavSidebar.astro +1 -1
  10. package/src/components/PreviewToolbar.astro +1 -1
  11. package/src/data.ts +1 -1
  12. package/src/entries.ts +4 -1
  13. package/src/env.d.ts +1 -1
  14. package/src/index.ts +1 -0
  15. package/src/layouts/PreviewLayout.astro +113 -113
  16. package/src/pages/index.astro +1 -1
  17. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  18. package/src/tests/category_seo_quality.test.ts +76 -0
  19. package/src/tests/faq_count.test.ts +1 -1
  20. package/src/tests/locale_completeness.test.ts +2 -2
  21. package/src/tests/mocks/astro_mock.js +1 -1
  22. package/src/tests/no_h1_in_components.test.ts +1 -1
  23. package/src/tests/script_density.test.ts +94 -94
  24. package/src/tests/seo_length.test.ts +23 -23
  25. package/src/tests/seo_translation_completeness.test.ts +69 -0
  26. package/src/tests/seo_wellformed_export.test.ts +65 -0
  27. package/src/tests/tool_validation.test.ts +17 -17
  28. package/src/tool/compoundInterest/compound-interest-calculator.css +236 -236
  29. package/src/tool/compoundInterest/entry.ts +32 -32
  30. package/src/tool/compoundInterest/i18n/de.ts +195 -195
  31. package/src/tool/compoundInterest/i18n/fr.ts +195 -195
  32. package/src/tool/compoundInterest/i18n/it.ts +195 -195
  33. package/src/tool/compoundInterest/i18n/pl.ts +194 -194
  34. package/src/tool/compoundInterest/i18n/ru.ts +195 -195
  35. package/src/tool/compoundInterest/i18n/tr.ts +195 -195
  36. package/src/tool/compoundInterest/i18n/zh.ts +189 -189
  37. package/src/tool/compoundInterest/seo.astro +15 -15
  38. package/src/tool/courtFeeCalculator/i18n/it.ts +158 -158
  39. package/src/tool/courtFeeCalculator/i18n/ru.ts +158 -158
  40. package/src/tool/courtFeeCalculator/i18n/tr.ts +158 -158
  41. package/src/tool/courtFeeCalculator/seo.astro +15 -15
  42. package/src/tool/courtFeeCalculator/spanish-court-fees-calculator.css +197 -197
  43. package/src/tool/debtSnowball/bibliography.ts +12 -12
  44. package/src/tool/debtSnowball/i18n/de.ts +16 -16
  45. package/src/tool/debtSnowball/i18n/id.ts +16 -16
  46. package/src/tool/debtSnowball/i18n/it.ts +168 -168
  47. package/src/tool/debtSnowball/i18n/nl.ts +16 -16
  48. package/src/tool/debtSnowball/i18n/pl.ts +168 -168
  49. package/src/tool/debtSnowball/i18n/pt.ts +1 -1
  50. package/src/tool/debtSnowball/i18n/ru.ts +1 -1
  51. package/src/tool/debtSnowball/i18n/sv.ts +22 -29
  52. package/src/tool/debtSnowball/i18n/tr.ts +168 -168
  53. package/src/tool/debtSnowball/i18n/zh.ts +168 -168
  54. package/src/tool/debtSnowball/seo.astro +15 -15
  55. package/src/tool/dividendYield/bibliography.astro +14 -0
  56. package/src/tool/dividendYield/bibliography.ts +12 -0
  57. package/src/tool/dividendYield/component.astro +83 -0
  58. package/src/tool/dividendYield/controller.ts +85 -0
  59. package/src/tool/dividendYield/dividend-yield-calculator.css +352 -0
  60. package/src/tool/dividendYield/dom-views.ts +58 -0
  61. package/src/tool/dividendYield/entry.ts +29 -0
  62. package/src/tool/dividendYield/evaluator.ts +16 -0
  63. package/src/tool/dividendYield/i18n/de.ts +53 -0
  64. package/src/tool/dividendYield/i18n/en.ts +138 -0
  65. package/src/tool/dividendYield/i18n/es.ts +49 -0
  66. package/src/tool/dividendYield/i18n/fr.ts +49 -0
  67. package/src/tool/dividendYield/i18n/id.ts +49 -0
  68. package/src/tool/dividendYield/i18n/it.ts +49 -0
  69. package/src/tool/dividendYield/i18n/ja.ts +49 -0
  70. package/src/tool/dividendYield/i18n/ko.ts +25 -0
  71. package/src/tool/dividendYield/i18n/nl.ts +25 -0
  72. package/src/tool/dividendYield/i18n/pl.ts +25 -0
  73. package/src/tool/dividendYield/i18n/pt.ts +25 -0
  74. package/src/tool/dividendYield/i18n/ru.ts +25 -0
  75. package/src/tool/dividendYield/i18n/sv.ts +25 -0
  76. package/src/tool/dividendYield/i18n/tr.ts +25 -0
  77. package/src/tool/dividendYield/i18n/zh.ts +25 -0
  78. package/src/tool/dividendYield/index.ts +11 -0
  79. package/src/tool/dividendYield/logic.test.ts +73 -0
  80. package/src/tool/dividendYield/logic.ts +55 -0
  81. package/src/tool/dividendYield/seo.astro +14 -0
  82. package/src/tool/dividendYield/storage.ts +24 -0
  83. package/src/tool/dividendYield/ui.ts +33 -0
  84. package/src/tool/financialFreedom/financial-freedom-calculator.css +311 -311
  85. package/src/tool/financialFreedom/i18n/en.ts +182 -182
  86. package/src/tool/financialFreedom/i18n/fr.ts +128 -128
  87. package/src/tool/financialFreedom/i18n/id.ts +24 -7
  88. package/src/tool/financialFreedom/i18n/it.ts +24 -7
  89. package/src/tool/financialFreedom/i18n/ja.ts +1 -1
  90. package/src/tool/financialFreedom/i18n/nl.ts +24 -7
  91. package/src/tool/financialFreedom/i18n/pl.ts +24 -7
  92. package/src/tool/financialFreedom/i18n/pt.ts +24 -7
  93. package/src/tool/financialFreedom/i18n/ru.ts +128 -128
  94. package/src/tool/financialFreedom/i18n/sv.ts +1 -1
  95. package/src/tool/financialFreedom/i18n/tr.ts +2 -2
  96. package/src/tool/financialFreedom/i18n/zh.ts +128 -128
  97. package/src/tool/fireCalculator/i18n/it.ts +241 -241
  98. package/src/tool/fireCalculator/i18n/ru.ts +241 -241
  99. package/src/tool/fireCalculator/i18n/tr.ts +241 -241
  100. package/src/tool/fireCalculator/i18n/zh.ts +241 -241
  101. package/src/tool/fireCalculator/seo.astro +15 -15
  102. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +151 -151
  103. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +118 -118
  104. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +118 -118
  105. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +118 -118
  106. package/src/tool/ibanBicSwiftConverter/iban-to-bic-swift-converter.css +366 -366
  107. package/src/tool/ibanBicSwiftConverter/seo.astro +15 -15
  108. package/src/tool/inflation/bibliography.ts +20 -20
  109. package/src/tool/inflation/entry.ts +32 -32
  110. package/src/tool/inflation/i18n/de.ts +284 -284
  111. package/src/tool/inflation/i18n/fr.ts +284 -284
  112. package/src/tool/inflation/i18n/it.ts +284 -284
  113. package/src/tool/inflation/i18n/nl.ts +284 -284
  114. package/src/tool/inflation/i18n/pl.ts +284 -284
  115. package/src/tool/inflation/i18n/pt.ts +284 -284
  116. package/src/tool/inflation/i18n/ru.ts +284 -284
  117. package/src/tool/inflation/i18n/sv.ts +284 -284
  118. package/src/tool/inflation/i18n/tr.ts +284 -284
  119. package/src/tool/inflation/i18n/zh.ts +284 -284
  120. package/src/tool/inflation/seo.astro +15 -15
  121. package/src/tool/lateInterest/bibliography.ts +16 -16
  122. package/src/tool/lateInterest/entry.ts +32 -32
  123. package/src/tool/lateInterest/i18n/de.ts +213 -213
  124. package/src/tool/lateInterest/i18n/es.ts +213 -213
  125. package/src/tool/lateInterest/i18n/it.ts +213 -213
  126. package/src/tool/lateInterest/i18n/nl.ts +213 -213
  127. package/src/tool/lateInterest/i18n/pl.ts +213 -213
  128. package/src/tool/lateInterest/i18n/pt.ts +213 -213
  129. package/src/tool/lateInterest/i18n/ru.ts +213 -213
  130. package/src/tool/lateInterest/i18n/sv.ts +213 -213
  131. package/src/tool/lateInterest/i18n/tr.ts +213 -213
  132. package/src/tool/lateInterest/i18n/zh.ts +213 -213
  133. package/src/tool/lateInterest/seo.astro +15 -15
  134. package/src/tool/legalInterestRate/i18n/it.ts +129 -129
  135. package/src/tool/legalInterestRate/i18n/ru.ts +129 -129
  136. package/src/tool/legalInterestRate/i18n/tr.ts +128 -121
  137. package/src/tool/legalInterestRate/i18n/zh.ts +11 -4
  138. package/src/tool/legalInterestRate/seo.astro +15 -15
  139. package/src/tool/lotteryOptimizer/i18n/it.ts +163 -163
  140. package/src/tool/lotteryOptimizer/i18n/pl.ts +163 -163
  141. package/src/tool/lotteryOptimizer/i18n/ru.ts +163 -163
  142. package/src/tool/lotteryOptimizer/i18n/tr.ts +163 -163
  143. package/src/tool/lotteryOptimizer/i18n/zh.ts +162 -155
  144. package/src/tool/lotteryOptimizer/seo.astro +15 -15
  145. package/src/tool/mortgage/bibliography.ts +20 -20
  146. package/src/tool/mortgage/entry.ts +32 -32
  147. package/src/tool/mortgage/i18n/de.ts +210 -210
  148. package/src/tool/mortgage/i18n/es.ts +210 -210
  149. package/src/tool/mortgage/i18n/fr.ts +210 -210
  150. package/src/tool/mortgage/i18n/id.ts +210 -210
  151. package/src/tool/mortgage/i18n/it.ts +210 -210
  152. package/src/tool/mortgage/i18n/nl.ts +210 -210
  153. package/src/tool/mortgage/i18n/pl.ts +210 -210
  154. package/src/tool/mortgage/i18n/ru.ts +210 -210
  155. package/src/tool/mortgage/i18n/tr.ts +210 -210
  156. package/src/tool/mortgage/i18n/zh.ts +210 -210
  157. package/src/tool/mortgage/mortgage-calculator.css +595 -595
  158. package/src/tool/mortgage/seo.astro +15 -15
  159. package/src/tool/percentageCalculator/bibliography.ts +16 -16
  160. package/src/tool/percentageCalculator/entry.ts +32 -32
  161. package/src/tool/percentageCalculator/i18n/de.ts +220 -220
  162. package/src/tool/percentageCalculator/i18n/en.ts +220 -220
  163. package/src/tool/percentageCalculator/i18n/es.ts +220 -220
  164. package/src/tool/percentageCalculator/i18n/fr.ts +220 -220
  165. package/src/tool/percentageCalculator/i18n/it.ts +220 -220
  166. package/src/tool/percentageCalculator/i18n/pl.ts +220 -220
  167. package/src/tool/percentageCalculator/i18n/ru.ts +220 -220
  168. package/src/tool/percentageCalculator/i18n/tr.ts +220 -220
  169. package/src/tool/percentageCalculator/i18n/zh.ts +220 -220
  170. package/src/tool/percentageCalculator/seo.astro +15 -15
  171. package/src/tool/profitability/i18n/de.ts +24 -7
  172. package/src/tool/profitability/i18n/fr.ts +121 -104
  173. package/src/tool/profitability/i18n/id.ts +2 -2
  174. package/src/tool/profitability/i18n/it.ts +24 -7
  175. package/src/tool/profitability/i18n/ja.ts +1 -1
  176. package/src/tool/profitability/i18n/nl.ts +24 -7
  177. package/src/tool/profitability/i18n/pl.ts +1 -1
  178. package/src/tool/profitability/i18n/pt.ts +24 -7
  179. package/src/tool/profitability/i18n/ru.ts +118 -118
  180. package/src/tool/profitability/i18n/sv.ts +1 -1
  181. package/src/tool/profitability/i18n/tr.ts +1 -1
  182. package/src/tool/profitability/i18n/zh.ts +118 -118
  183. package/src/tool/profitability/profitability-calculator.css +229 -229
  184. package/src/tool/rentIncreaseCalculator/i18n/it.ts +125 -125
  185. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +125 -125
  186. package/src/tool/rentIncreaseCalculator/rent-increase-calculator.css +326 -326
  187. package/src/tool/rentIncreaseCalculator/seo.astro +15 -15
  188. package/src/tool/revolvingCardCalculator/i18n/de.ts +38 -20
  189. package/src/tool/revolvingCardCalculator/i18n/es.ts +19 -18
  190. package/src/tool/revolvingCardCalculator/i18n/fr.ts +32 -28
  191. package/src/tool/revolvingCardCalculator/i18n/id.ts +18 -18
  192. package/src/tool/revolvingCardCalculator/i18n/it.ts +18 -18
  193. package/src/tool/revolvingCardCalculator/i18n/ja.ts +2 -2
  194. package/src/tool/revolvingCardCalculator/i18n/ko.ts +2 -2
  195. package/src/tool/revolvingCardCalculator/i18n/nl.ts +22 -19
  196. package/src/tool/revolvingCardCalculator/i18n/pl.ts +2 -2
  197. package/src/tool/revolvingCardCalculator/i18n/pt.ts +2 -2
  198. package/src/tool/revolvingCardCalculator/i18n/ru.ts +2 -2
  199. package/src/tool/revolvingCardCalculator/i18n/sv.ts +2 -2
  200. package/src/tool/revolvingCardCalculator/i18n/tr.ts +2 -2
  201. package/src/tool/revolvingCardCalculator/i18n/zh.ts +6 -6
  202. package/src/tool/salaryEmployerCost/i18n/de.ts +10 -10
  203. package/src/tool/salaryEmployerCost/i18n/fr.ts +9 -9
  204. package/src/tool/salaryEmployerCost/i18n/id.ts +9 -9
  205. package/src/tool/salaryEmployerCost/i18n/it.ts +9 -9
  206. package/src/tool/salaryEmployerCost/i18n/ja.ts +1 -1
  207. package/src/tool/salaryEmployerCost/i18n/ko.ts +1 -1
  208. package/src/tool/salaryEmployerCost/i18n/nl.ts +2 -2
  209. package/src/tool/salaryEmployerCost/i18n/pl.ts +2 -2
  210. package/src/tool/salaryEmployerCost/i18n/pt.ts +2 -2
  211. package/src/tool/salaryEmployerCost/i18n/ru.ts +2 -2
  212. package/src/tool/salaryEmployerCost/i18n/sv.ts +2 -2
  213. package/src/tool/salaryEmployerCost/i18n/tr.ts +2 -2
  214. package/src/tool/salaryEmployerCost/i18n/zh.ts +2 -2
  215. package/src/tools.ts +2 -1
@@ -1,210 +1,210 @@
1
- import { bibliography } from '../bibliography'
2
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
- import type { ToolLocaleContent } from '../../../types';
4
- import type { MortgageUI } from '../ui';
5
-
6
- const slug = 'calculatrice-hypotheque';
7
- const title = 'Calculatrice Hypothécaire: Tableau d\'Amortissement Complet';
8
- const description =
9
- 'Calculez votre paiement hypothécaire mensuel, découvrez le coût total des intérêts et visualisez votre tableau d\'amortissement complet instantanément.';
10
-
11
- const faqData = [
12
- {
13
- question: 'Qu\'est-ce que le système d\'amortissement français?',
14
- answer:
15
- 'C\'est le système le plus utilisé en Europe. Votre paiement mensuel reste identique, mais au début vous payez presque entièrement les intérêts avec très peu de capital. À la fin, c\'est l\'inverse. C\'est pourquoi le remboursement anticipé est plus rentable dans les premières années.',
16
- },
17
- {
18
- question: 'Taux fixe ou variable en 2026?',
19
- answer:
20
- 'Taux fixe: vous payez un peu plus maintenant mais dormez tranquille 30 ans. Taux variable: peut être moins cher au début, mais si les taux montent à 4-5%, votre paiement pourrait exploser. Cela dépend de votre tolérance au risque.',
21
- },
22
- {
23
- question: 'Combien j\'économise si je rembourse 10 000€ à l\'avance?',
24
- answer:
25
- 'Cela dépend du moment. Si vous remboursez à l\'année 1 d\'une hypothèque de 200 000€ à 3%, vous pouvez économiser plus de 15 000€ en intérêts. Si vous le faites à l\'année 20, vous en économisez à peine 2 000€. Le timing est crucial.',
26
- },
27
- {
28
- question: 'Quel pourcentage de mon revenu devrais-je consacrer à l\'hypothèque?',
29
- answer:
30
- 'Les conseillers financiers recommandent de ne pas dépasser 28-31% du revenu brut mensuel (ratio d\'habitation). Certains permettent jusqu\'à 43% de ratio d\'endettement incluant toutes les obligations. Dépasser ces seuils augmente le risque de défaut en cas d\'urgence.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: 'Entrez le montant du prêt',
37
- text: 'Tapez le montant total que vous devez emprunter au prêteur (moins votre acompte).',
38
- },
39
- {
40
- name: 'Ajustez le taux d\'intérêt',
41
- text: 'Entrez le TAEG (Taux Annuel Effectif Global) offert par le prêteur. Vous pouvez comparer les options à taux fixe ou variable.',
42
- },
43
- {
44
- name: 'Choisissez votre période de remboursement',
45
- text: 'Définissez en combien d\'années vous souhaitez rembourser le prêt. Plus d\'années signifie un paiement mensuel plus faible mais des intérêts totaux plus élevés.',
46
- },
47
- {
48
- name: 'Examinez le tableau d\'amortissement',
49
- text: 'Examinez mois après mois comment votre dette diminue et quelle partie de chaque paiement va aux intérêts par rapport au capital.',
50
- },
51
- ];
52
-
53
- const faqSchema: WithContext<FAQPage> = {
54
- '@context': 'https://schema.org',
55
- '@type': 'FAQPage',
56
- mainEntity: faqData.map((item) => ({
57
- '@type': 'Question',
58
- name: item.question,
59
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
60
- })),
61
- };
62
-
63
- const howToSchema: WithContext<HowTo> = {
64
- '@context': 'https://schema.org',
65
- '@type': 'HowTo',
66
- name: title,
67
- description,
68
- step: howToData.map((step, i) => ({
69
- '@type': 'HowToStep',
70
- position: i + 1,
71
- name: step.name,
72
- text: step.text,
73
- })),
74
- };
75
-
76
- const appSchema: WithContext<SoftwareApplication> = {
77
- '@context': 'https://schema.org',
78
- '@type': 'SoftwareApplication',
79
- name: title,
80
- description,
81
- applicationCategory: 'FinanceApplication',
82
- operatingSystem: 'All',
83
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
84
- inLanguage: 'fr',
85
- };
86
-
87
- export const content: ToolLocaleContent<MortgageUI> = {
88
- slug,
89
- title,
90
- description,
91
- faq: faqData,
92
- bibliography,
93
-
94
- howTo: howToData,
95
- schemas: [faqSchema, howToSchema, appSchema],
96
- seo: [
97
- {
98
- type: 'title',
99
- text: 'Guide Complet du Crédit Immobilier: Comprendre l\'Amortissement',
100
- level: 2,
101
- },
102
- {
103
- type: 'paragraph',
104
- html: 'Un crédit immobilier est probablement la plus grande dette que vous contracterez jamais. Comprendre comment fonctionne le système d\'amortissement est crucial pour prendre des décisions intelligentes qui pourraient vous économiser des dizaines de milliers d\'euros.',
105
- },
106
- {
107
- type: 'title',
108
- text: 'Le "Piège" des Intérêts Prépondérants: Comprendre Votre Ventilation de Paiement',
109
- level: 3,
110
- },
111
- {
112
- type: 'paragraph',
113
- html: 'La plupart des crédits immobiliers utilisent le <strong>système d\'amortissement standard</strong>. Sa caractéristique est que votre paiement mensuel reste constant (à taux fixe), mais la composition change dramatiquement au fil du temps.',
114
- },
115
- {
116
- type: 'tip',
117
- title: 'Comment Votre Paiement Évolue',
118
- html: '<p><strong>Premières Années (1-10 ans) :</strong> Vous payez presque uniquement les INTÉRÊTS et très peu du capital emprunté. Sur un crédit de 250 000€ à 3%, votre premier paiement pourrait être 80% intérêts.</p><p><strong>Années Intermédiaires (11-25 ans) :</strong> La proportion s\'équilibre graduellement.</p><p><strong>Dernières Années (26-30 ans) :</strong> Vous payez presque uniquement le CAPITAL avec très peu d\'intérêts.</p>',
119
- },
120
- {
121
- type: 'paragraph',
122
- html: 'C\'est pourquoi <strong>faire des remboursements anticipés</strong> (rembourser le capital tôt) est bien plus rentable dans les premières années. Rembourser 10 000€ en année 1 peut vous économiser plus de 15 000€ en intérêts. Le même remboursement en année 20 vous économise à peine 2 000€.',
123
- },
124
- {
125
- type: 'title',
126
- text: 'Combien Devriez-Vous Consacrer à Votre Crédit?',
127
- level: 3,
128
- },
129
- {
130
- type: 'paragraph',
131
- html: 'Les experts financiers recommandent que votre crédit <strong>ne dépasse pas 30-35% de vos revenus bruts mensuels</strong>. Si vous dépassez ce seuil, vous augmentez considérablement le risque de défaillance face aux imprévus (perte d\'emploi, urgence médicale, etc.).',
132
- },
133
- {
134
- type: 'title',
135
- text: 'Contexte 2026: Taux Fixe vs Variable',
136
- level: 3,
137
- },
138
- {
139
- type: 'paragraph',
140
- html: 'Avec des taux d\'intérêt fluctuants, choisir entre <strong>Taux Fixe</strong> ou <strong>Taux Variable</strong> est une décision stratégique qui peut coûter des milliers d\'euros par an.',
141
- },
142
- {
143
- type: 'comparative',
144
- columns: 2,
145
- items: [
146
- {
147
- title: 'Taux Fixe',
148
- description: 'Vous payez un peu plus maintenant, mais dormez tranquille sachant que votre paiement ne changerait jamais.',
149
- points: [
150
- 'Paiement prévisible pour 30 ans',
151
- 'Protection contre les augmentations de taux',
152
- 'Tranquillité d\'esprit en économie incertaine',
153
- 'Idéal pour les budgets serrés',
154
- ],
155
- },
156
- {
157
- title: 'Taux Variable',
158
- description: 'Il peut être moins cher aujourd\'hui, mais expose vos finances à la volatilité.',
159
- highlight: true,
160
- points: [
161
- 'Paiement initial plus bas',
162
- 'Risque d\'augmentations de taux (4-5% possibles)',
163
- 'Impact potentiellement grave sur le budget',
164
- 'Seulement pour ceux qui tolèrent le risque élevé',
165
- ],
166
- },
167
- ],
168
- },
169
- {
170
- type: 'tip',
171
- title: 'Taux Fixe vs Variable: Cela Dépend de Votre Profil',
172
- html: '<p><strong>Choisissez Taux Fixe si :</strong> Votre budget est serré, vous recherchez la certitude, vous ne tolérez pas les surprises de paiement.</p><p><strong>Choisissez Taux Variable si :</strong> Vous avez un coussin financier, vous croyez que les taux baisseront, votre crédit est petit ou à court terme.</p>',
173
- },
174
- ],
175
- ui: {
176
- labelTitle: 'Calculatrice Hypothécaire',
177
- labelLoanAmount: 'Montant du Prêt',
178
- labelInterestRate: 'Taux d\'Intérêt (TAEG)',
179
- labelYears: 'Durée du Prêt (Années)',
180
- labelMonthlyExtra: 'Ajouter un Paiement Mensuel Supplémentaire',
181
- labelMonthlyPayment: 'Paiement Mensuel',
182
- labelMonthCount: 'mois',
183
- labelSavingsCard: 'Votre Potentiel d\'Économies',
184
- labelSavingsInterest: 'Intérêts',
185
- labelSavingsTime: 'Temps',
186
- labelTimelineComparison: 'Comparaison Temporelle',
187
- labelTimelineOriginal: 'Durée Originale',
188
- labelTimelineOptimized: 'Durée avec Paiements Supplémentaires',
189
- labelCostBreakdown: 'Répartition des Coûts Totaux',
190
- labelBorrowed: 'Emprunté',
191
- labelTotalBorrowed: 'Total Emprunté',
192
- labelTotalInterest: 'Total des Intérêts',
193
- labelAmortizationTable: 'Tableau d\'Amortissement',
194
- labelTableHeader: 'Afficher le tableau complet',
195
- labelViewAll: 'Afficher tout',
196
- labelPaid: 'Hypothèque Remboursée',
197
- labelTableMonth: 'Mois',
198
- labelTableInterest: 'Intérêt',
199
- labelTablePrincipal: 'Principal',
200
- labelTableExtra: 'Extra',
201
- labelTableBalance: 'Solde',
202
- labelMoreMonths: 'plus de mois',
203
- labelMonth: 'Mois',
204
- currencySymbol: '€',
205
- currencyCode: 'EUR',
206
- currencyLocale: 'fr-FR',
207
- monthPlural: 'mois',
208
- yearPlural: 'années',
209
- },
210
- };
1
+ import { bibliography } from '../bibliography'
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { MortgageUI } from '../ui';
5
+
6
+ const slug = 'calculatrice-hypotheque';
7
+ const title = 'Calculatrice Hypothécaire: Tableau d\'Amortissement Complet';
8
+ const description =
9
+ 'Calculez votre paiement hypothécaire mensuel, découvrez le coût total des intérêts et visualisez votre tableau d\'amortissement complet instantanément.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: 'Qu\'est-ce que le système d\'amortissement français?',
14
+ answer:
15
+ 'C\'est le système le plus utilisé en Europe. Votre paiement mensuel reste identique, mais au début vous payez presque entièrement les intérêts avec très peu de capital. À la fin, c\'est l\'inverse. C\'est pourquoi le remboursement anticipé est plus rentable dans les premières années.',
16
+ },
17
+ {
18
+ question: 'Taux fixe ou variable en 2026?',
19
+ answer:
20
+ 'Taux fixe: vous payez un peu plus maintenant mais dormez tranquille 30 ans. Taux variable: peut être moins cher au début, mais si les taux montent à 4-5%, votre paiement pourrait exploser. Cela dépend de votre tolérance au risque.',
21
+ },
22
+ {
23
+ question: 'Combien j\'économise si je rembourse 10 000€ à l\'avance?',
24
+ answer:
25
+ 'Cela dépend du moment. Si vous remboursez à l\'année 1 d\'une hypothèque de 200 000€ à 3%, vous pouvez économiser plus de 15 000€ en intérêts. Si vous le faites à l\'année 20, vous en économisez à peine 2 000€. Le timing est crucial.',
26
+ },
27
+ {
28
+ question: 'Quel pourcentage de mon revenu devrais-je consacrer à l\'hypothèque?',
29
+ answer:
30
+ 'Les conseillers financiers recommandent de ne pas dépasser 28-31% du revenu brut mensuel (ratio d\'habitation). Certains permettent jusqu\'à 43% de ratio d\'endettement incluant toutes les obligations. Dépasser ces seuils augmente le risque de défaut en cas d\'urgence.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: 'Entrez le montant du prêt',
37
+ text: 'Tapez le montant total que vous devez emprunter au prêteur (moins votre acompte).',
38
+ },
39
+ {
40
+ name: 'Ajustez le taux d\'intérêt',
41
+ text: 'Entrez le TAEG (Taux Annuel Effectif Global) offert par le prêteur. Vous pouvez comparer les options à taux fixe ou variable.',
42
+ },
43
+ {
44
+ name: 'Choisissez votre période de remboursement',
45
+ text: 'Définissez en combien d\'années vous souhaitez rembourser le prêt. Plus d\'années signifie un paiement mensuel plus faible mais des intérêts totaux plus élevés.',
46
+ },
47
+ {
48
+ name: 'Examinez le tableau d\'amortissement',
49
+ text: 'Examinez mois après mois comment votre dette diminue et quelle partie de chaque paiement va aux intérêts par rapport au capital.',
50
+ },
51
+ ];
52
+
53
+ const faqSchema: WithContext<FAQPage> = {
54
+ '@context': 'https://schema.org',
55
+ '@type': 'FAQPage',
56
+ mainEntity: faqData.map((item) => ({
57
+ '@type': 'Question',
58
+ name: item.question,
59
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
60
+ })),
61
+ };
62
+
63
+ const howToSchema: WithContext<HowTo> = {
64
+ '@context': 'https://schema.org',
65
+ '@type': 'HowTo',
66
+ name: title,
67
+ description,
68
+ step: howToData.map((step, i) => ({
69
+ '@type': 'HowToStep',
70
+ position: i + 1,
71
+ name: step.name,
72
+ text: step.text,
73
+ })),
74
+ };
75
+
76
+ const appSchema: WithContext<SoftwareApplication> = {
77
+ '@context': 'https://schema.org',
78
+ '@type': 'SoftwareApplication',
79
+ name: title,
80
+ description,
81
+ applicationCategory: 'FinanceApplication',
82
+ operatingSystem: 'All',
83
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
84
+ inLanguage: 'fr',
85
+ };
86
+
87
+ export const content: ToolLocaleContent<MortgageUI> = {
88
+ slug,
89
+ title,
90
+ description,
91
+ faq: faqData,
92
+ bibliography,
93
+
94
+ howTo: howToData,
95
+ schemas: [faqSchema, howToSchema, appSchema],
96
+ seo: [
97
+ {
98
+ type: 'title',
99
+ text: 'Guide Complet du Crédit Immobilier: Comprendre l\'Amortissement',
100
+ level: 2,
101
+ },
102
+ {
103
+ type: 'paragraph',
104
+ html: 'Un crédit immobilier est probablement la plus grande dette que vous contracterez jamais. Comprendre comment fonctionne le système d\'amortissement est crucial pour prendre des décisions intelligentes qui pourraient vous économiser des dizaines de milliers d\'euros.',
105
+ },
106
+ {
107
+ type: 'title',
108
+ text: 'Le "Piège" des Intérêts Prépondérants: Comprendre Votre Ventilation de Paiement',
109
+ level: 3,
110
+ },
111
+ {
112
+ type: 'paragraph',
113
+ html: 'La plupart des crédits immobiliers utilisent le <strong>système d\'amortissement standard</strong>. Sa caractéristique est que votre paiement mensuel reste constant (à taux fixe), mais la composition change dramatiquement au fil du temps.',
114
+ },
115
+ {
116
+ type: 'tip',
117
+ title: 'Comment Votre Paiement Évolue',
118
+ html: '<p><strong>Premières Années (1-10 ans) :</strong> Vous payez presque uniquement les INTÉRÊTS et très peu du capital emprunté. Sur un crédit de 250 000€ à 3%, votre premier paiement pourrait être 80% intérêts.</p><p><strong>Années Intermédiaires (11-25 ans) :</strong> La proportion s\'équilibre graduellement.</p><p><strong>Dernières Années (26-30 ans) :</strong> Vous payez presque uniquement le CAPITAL avec très peu d\'intérêts.</p>',
119
+ },
120
+ {
121
+ type: 'paragraph',
122
+ html: 'C\'est pourquoi <strong>faire des remboursements anticipés</strong> (rembourser le capital tôt) est bien plus rentable dans les premières années. Rembourser 10 000€ en année 1 peut vous économiser plus de 15 000€ en intérêts. Le même remboursement en année 20 vous économise à peine 2 000€.',
123
+ },
124
+ {
125
+ type: 'title',
126
+ text: 'Combien Devriez-Vous Consacrer à Votre Crédit?',
127
+ level: 3,
128
+ },
129
+ {
130
+ type: 'paragraph',
131
+ html: 'Les experts financiers recommandent que votre crédit <strong>ne dépasse pas 30-35% de vos revenus bruts mensuels</strong>. Si vous dépassez ce seuil, vous augmentez considérablement le risque de défaillance face aux imprévus (perte d\'emploi, urgence médicale, etc.).',
132
+ },
133
+ {
134
+ type: 'title',
135
+ text: 'Contexte 2026: Taux Fixe vs Variable',
136
+ level: 3,
137
+ },
138
+ {
139
+ type: 'paragraph',
140
+ html: 'Avec des taux d\'intérêt fluctuants, choisir entre <strong>Taux Fixe</strong> ou <strong>Taux Variable</strong> est une décision stratégique qui peut coûter des milliers d\'euros par an.',
141
+ },
142
+ {
143
+ type: 'comparative',
144
+ columns: 2,
145
+ items: [
146
+ {
147
+ title: 'Taux Fixe',
148
+ description: 'Vous payez un peu plus maintenant, mais dormez tranquille sachant que votre paiement ne changerait jamais.',
149
+ points: [
150
+ 'Paiement prévisible pour 30 ans',
151
+ 'Protection contre les augmentations de taux',
152
+ 'Tranquillité d\'esprit en économie incertaine',
153
+ 'Idéal pour les budgets serrés',
154
+ ],
155
+ },
156
+ {
157
+ title: 'Taux Variable',
158
+ description: 'Il peut être moins cher aujourd\'hui, mais expose vos finances à la volatilité.',
159
+ highlight: true,
160
+ points: [
161
+ 'Paiement initial plus bas',
162
+ 'Risque d\'augmentations de taux (4-5% possibles)',
163
+ 'Impact potentiellement grave sur le budget',
164
+ 'Seulement pour ceux qui tolèrent le risque élevé',
165
+ ],
166
+ },
167
+ ],
168
+ },
169
+ {
170
+ type: 'tip',
171
+ title: 'Taux Fixe vs Variable: Cela Dépend de Votre Profil',
172
+ html: '<p><strong>Choisissez Taux Fixe si :</strong> Votre budget est serré, vous recherchez la certitude, vous ne tolérez pas les surprises de paiement.</p><p><strong>Choisissez Taux Variable si :</strong> Vous avez un coussin financier, vous croyez que les taux baisseront, votre crédit est petit ou à court terme.</p>',
173
+ },
174
+ ],
175
+ ui: {
176
+ labelTitle: 'Calculatrice Hypothécaire',
177
+ labelLoanAmount: 'Montant du Prêt',
178
+ labelInterestRate: 'Taux d\'Intérêt (TAEG)',
179
+ labelYears: 'Durée du Prêt (Années)',
180
+ labelMonthlyExtra: 'Ajouter un Paiement Mensuel Supplémentaire',
181
+ labelMonthlyPayment: 'Paiement Mensuel',
182
+ labelMonthCount: 'mois',
183
+ labelSavingsCard: 'Votre Potentiel d\'Économies',
184
+ labelSavingsInterest: 'Intérêts',
185
+ labelSavingsTime: 'Temps',
186
+ labelTimelineComparison: 'Comparaison Temporelle',
187
+ labelTimelineOriginal: 'Durée Originale',
188
+ labelTimelineOptimized: 'Durée avec Paiements Supplémentaires',
189
+ labelCostBreakdown: 'Répartition des Coûts Totaux',
190
+ labelBorrowed: 'Emprunté',
191
+ labelTotalBorrowed: 'Total Emprunté',
192
+ labelTotalInterest: 'Total des Intérêts',
193
+ labelAmortizationTable: 'Tableau d\'Amortissement',
194
+ labelTableHeader: 'Afficher le tableau complet',
195
+ labelViewAll: 'Afficher tout',
196
+ labelPaid: 'Hypothèque Remboursée',
197
+ labelTableMonth: 'Mois',
198
+ labelTableInterest: 'Intérêt',
199
+ labelTablePrincipal: 'Principal',
200
+ labelTableExtra: 'Extra',
201
+ labelTableBalance: 'Solde',
202
+ labelMoreMonths: 'plus de mois',
203
+ labelMonth: 'Mois',
204
+ currencySymbol: '€',
205
+ currencyCode: 'EUR',
206
+ currencyLocale: 'fr-FR',
207
+ monthPlural: 'mois',
208
+ yearPlural: 'années',
209
+ },
210
+ };