@jjlmoya/utils-finance 1.1.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.
- package/package.json +64 -0
- package/src/category/i18n/en.ts +159 -0
- package/src/category/i18n/es.ts +159 -0
- package/src/category/i18n/fr.ts +159 -0
- package/src/category/index.ts +24 -0
- package/src/category/seo.astro +15 -0
- package/src/components/PreviewNavSidebar.astro +116 -0
- package/src/components/PreviewToolbar.astro +143 -0
- package/src/data.ts +11 -0
- package/src/env.d.ts +5 -0
- package/src/index.ts +32 -0
- package/src/layouts/PreviewLayout.astro +117 -0
- package/src/pages/[locale]/[slug].astro +146 -0
- package/src/pages/[locale].astro +251 -0
- package/src/pages/index.astro +4 -0
- package/src/tests/faq_count.test.ts +19 -0
- package/src/tests/locale_completeness.test.ts +39 -0
- package/src/tests/mocks/astro_mock.js +2 -0
- package/src/tests/no_h1_in_components.test.ts +48 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/seo_length.test.ts +23 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tests/tool_validation.test.ts +17 -0
- package/src/tool/compoundInterest/bibliography.astro +14 -0
- package/src/tool/compoundInterest/component.astro +697 -0
- package/src/tool/compoundInterest/i18n/en.ts +212 -0
- package/src/tool/compoundInterest/i18n/es.ts +212 -0
- package/src/tool/compoundInterest/i18n/fr.ts +212 -0
- package/src/tool/compoundInterest/index.ts +34 -0
- package/src/tool/compoundInterest/logic.ts +40 -0
- package/src/tool/compoundInterest/seo.astro +14 -0
- package/src/tool/compoundInterest/ui.ts +19 -0
- package/src/tool/courtFeeCalculator/bibliography.astro +14 -0
- package/src/tool/courtFeeCalculator/component.astro +427 -0
- package/src/tool/courtFeeCalculator/i18n/en.ts +268 -0
- package/src/tool/courtFeeCalculator/i18n/es.ts +268 -0
- package/src/tool/courtFeeCalculator/i18n/fr.ts +268 -0
- package/src/tool/courtFeeCalculator/index.ts +33 -0
- package/src/tool/courtFeeCalculator/logic.ts +86 -0
- package/src/tool/courtFeeCalculator/seo.astro +14 -0
- package/src/tool/courtFeeCalculator/ui.ts +31 -0
- package/src/tool/debtSnowball/bibliography.astro +14 -0
- package/src/tool/debtSnowball/component.astro +1052 -0
- package/src/tool/debtSnowball/i18n/en.ts +288 -0
- package/src/tool/debtSnowball/i18n/es.ts +288 -0
- package/src/tool/debtSnowball/i18n/fr.ts +288 -0
- package/src/tool/debtSnowball/index.ts +37 -0
- package/src/tool/debtSnowball/logic.ts +156 -0
- package/src/tool/debtSnowball/seo.astro +14 -0
- package/src/tool/debtSnowball/ui.ts +49 -0
- package/src/tool/fireCalculator/bibliography.astro +14 -0
- package/src/tool/fireCalculator/component.astro +689 -0
- package/src/tool/fireCalculator/i18n/en.ts +261 -0
- package/src/tool/fireCalculator/i18n/es.ts +261 -0
- package/src/tool/fireCalculator/i18n/fr.ts +261 -0
- package/src/tool/fireCalculator/index.ts +33 -0
- package/src/tool/fireCalculator/logic.ts +108 -0
- package/src/tool/fireCalculator/seo.astro +14 -0
- package/src/tool/fireCalculator/ui.ts +33 -0
- package/src/tool/ibanBicSwiftConverter/bibliography.astro +14 -0
- package/src/tool/ibanBicSwiftConverter/component.astro +581 -0
- package/src/tool/ibanBicSwiftConverter/i18n/en.ts +167 -0
- package/src/tool/ibanBicSwiftConverter/i18n/es.ts +216 -0
- package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +167 -0
- package/src/tool/ibanBicSwiftConverter/index.ts +33 -0
- package/src/tool/ibanBicSwiftConverter/logic.ts +101 -0
- package/src/tool/ibanBicSwiftConverter/seo.astro +14 -0
- package/src/tool/ibanBicSwiftConverter/ui.ts +17 -0
- package/src/tool/inflation/bibliography.astro +14 -0
- package/src/tool/inflation/component.astro +400 -0
- package/src/tool/inflation/i18n/en.ts +301 -0
- package/src/tool/inflation/i18n/es.ts +301 -0
- package/src/tool/inflation/i18n/fr.ts +301 -0
- package/src/tool/inflation/index.ts +34 -0
- package/src/tool/inflation/logic.ts +92 -0
- package/src/tool/inflation/seo.astro +14 -0
- package/src/tool/inflation/ui.ts +17 -0
- package/src/tool/lateInterest/bibliography.astro +14 -0
- package/src/tool/lateInterest/component.astro +655 -0
- package/src/tool/lateInterest/i18n/en.ts +255 -0
- package/src/tool/lateInterest/i18n/es.ts +224 -0
- package/src/tool/lateInterest/i18n/fr.ts +224 -0
- package/src/tool/lateInterest/index.ts +34 -0
- package/src/tool/lateInterest/logic.ts +89 -0
- package/src/tool/lateInterest/seo.astro +14 -0
- package/src/tool/lateInterest/ui.ts +33 -0
- package/src/tool/legalInterestRate/bibliography.astro +14 -0
- package/src/tool/legalInterestRate/component.astro +650 -0
- package/src/tool/legalInterestRate/i18n/en.ts +159 -0
- package/src/tool/legalInterestRate/i18n/es.ts +159 -0
- package/src/tool/legalInterestRate/i18n/fr.ts +159 -0
- package/src/tool/legalInterestRate/index.ts +33 -0
- package/src/tool/legalInterestRate/logic.ts +29 -0
- package/src/tool/legalInterestRate/seo.astro +14 -0
- package/src/tool/legalInterestRate/ui.ts +23 -0
- package/src/tool/lotteryOptimizer/bibliography.astro +14 -0
- package/src/tool/lotteryOptimizer/component.astro +863 -0
- package/src/tool/lotteryOptimizer/i18n/en.ts +188 -0
- package/src/tool/lotteryOptimizer/i18n/es.ts +281 -0
- package/src/tool/lotteryOptimizer/i18n/fr.ts +188 -0
- package/src/tool/lotteryOptimizer/index.ts +33 -0
- package/src/tool/lotteryOptimizer/logic.ts +133 -0
- package/src/tool/lotteryOptimizer/seo.astro +14 -0
- package/src/tool/lotteryOptimizer/ui.ts +33 -0
- package/src/tool/mortgage/bibliography.astro +14 -0
- package/src/tool/mortgage/component.astro +1030 -0
- package/src/tool/mortgage/i18n/en.ts +227 -0
- package/src/tool/mortgage/i18n/es.ts +227 -0
- package/src/tool/mortgage/i18n/fr.ts +227 -0
- package/src/tool/mortgage/index.ts +34 -0
- package/src/tool/mortgage/logic.ts +118 -0
- package/src/tool/mortgage/seo.astro +14 -0
- package/src/tool/mortgage/ui.ts +35 -0
- package/src/tool/percentageCalculator/bibliography.astro +14 -0
- package/src/tool/percentageCalculator/component.astro +640 -0
- package/src/tool/percentageCalculator/i18n/en.ts +233 -0
- package/src/tool/percentageCalculator/i18n/es.ts +233 -0
- package/src/tool/percentageCalculator/i18n/fr.ts +233 -0
- package/src/tool/percentageCalculator/index.ts +34 -0
- package/src/tool/percentageCalculator/logic.ts +48 -0
- package/src/tool/percentageCalculator/seo.astro +14 -0
- package/src/tool/percentageCalculator/ui.ts +30 -0
- package/src/tool/rentIncreaseCalculator/bibliography.astro +14 -0
- package/src/tool/rentIncreaseCalculator/component.astro +587 -0
- package/src/tool/rentIncreaseCalculator/i18n/en.ts +159 -0
- package/src/tool/rentIncreaseCalculator/i18n/es.ts +220 -0
- package/src/tool/rentIncreaseCalculator/i18n/fr.ts +159 -0
- package/src/tool/rentIncreaseCalculator/index.ts +33 -0
- package/src/tool/rentIncreaseCalculator/logic.ts +43 -0
- package/src/tool/rentIncreaseCalculator/seo.astro +14 -0
- package/src/tool/rentIncreaseCalculator/ui.ts +19 -0
- package/src/tools.ts +16 -0
- package/src/types.ts +74 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { InflationUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'calculatrice-inflation-espagne';
|
|
6
|
+
const title = 'Calculatrice d\'Inflation en Espagne: Valeur Historique de l\'Argent';
|
|
7
|
+
const description =
|
|
8
|
+
'Découvrez la valeur actuelle de vos pesetas ou comment le coût de la vie a augmenté depuis 1980. Données historiques IPC espagnoles mises à jour jusqu\'en 2026.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Qu\'est-ce que l\'IPC et comment est-il calculé?',
|
|
13
|
+
answer:
|
|
14
|
+
'L\'Indice des Prix à la Consommation (IPC) mesure l\'évolution des prix d\'un panier de biens et services représentatif de la consommation espagnole. Il est calculé en comparant le coût de ce panier sur différentes périodes.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Combien d\'argent a perdu de valeur depuis 1980?',
|
|
18
|
+
answer:
|
|
19
|
+
'1 000 pesetas de 1980 valent environ 60€ aujourd\'hui en pouvoir d\'achat. L\'argent a perdu plus de 90% de sa valeur en 40+ ans en raison de l\'inflation accumulée.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'Pourquoi mes économies perdent-elles de la valeur si je ne les bouge pas?',
|
|
23
|
+
answer:
|
|
24
|
+
'Si l\'inflation est de 3% par an et votre compte rapporte 0% d\'intérêts, vous perdez 3% de pouvoir d\'achat chaque année. Pour maintenir la valeur réelle, vos économies doivent générer au moins le taux d\'inflation.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Quelle a été la période d\'inflation la plus élevée en Espagne?',
|
|
28
|
+
answer:
|
|
29
|
+
'Les années 1980 ont connu l\'inflation la plus importante, avec des taux à deux chiffres (jusqu\'à 15%). Les prix changeaient drastiquement mois après mois. Depuis l\'euro (2002), l\'inflation a été mieux contrôlée, sauf en 2021-2023.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
question: 'Comment l\'inflation affecte-t-elle mes économies?',
|
|
33
|
+
answer:
|
|
34
|
+
'L\'inflation agit comme un "impôt silencieux". Si l\'inflation est de 5% et votre argent est sous le matelas, en fin d\'année vous pourrez acheter 5% moins de produits. Il est essentiel d\'investir pour contrecarrer cet effet.',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
|
|
38
|
+
const howToData = [
|
|
39
|
+
{
|
|
40
|
+
name: 'Sélectionner l\'année de départ',
|
|
41
|
+
text: 'Choisissez à partir de quelle date vous souhaitez calculer la valeur de l\'argent (disponible de 1980 à 2026).',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Entrer le montant',
|
|
45
|
+
text: 'Tapez le montant en pesetas (pour les anciennes dates) ou en euros que vous souhaitez comparer.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Choisir l\'année de fin',
|
|
49
|
+
text: 'Définissez jusqu\'à quand vous souhaitez voir l\'évolution du pouvoir d\'achat.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'Analyser le résultat réel',
|
|
53
|
+
text: 'Observez l\'équivalence de pouvoir d\'achat et le pourcentage d\'inflation accumulée pour cette période.',
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
|
|
57
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
58
|
+
'@context': 'https://schema.org',
|
|
59
|
+
'@type': 'FAQPage',
|
|
60
|
+
mainEntity: faqData.map((item) => ({
|
|
61
|
+
'@type': 'Question',
|
|
62
|
+
name: item.question,
|
|
63
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
64
|
+
})),
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const howToSchema: WithContext<HowTo> = {
|
|
68
|
+
'@context': 'https://schema.org',
|
|
69
|
+
'@type': 'HowTo',
|
|
70
|
+
name: title,
|
|
71
|
+
description,
|
|
72
|
+
step: howToData.map((step, i) => ({
|
|
73
|
+
'@type': 'HowToStep',
|
|
74
|
+
position: i + 1,
|
|
75
|
+
name: step.name,
|
|
76
|
+
text: step.text,
|
|
77
|
+
})),
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
81
|
+
'@context': 'https://schema.org',
|
|
82
|
+
'@type': 'SoftwareApplication',
|
|
83
|
+
name: title,
|
|
84
|
+
description,
|
|
85
|
+
applicationCategory: 'FinanceApplication',
|
|
86
|
+
operatingSystem: 'All',
|
|
87
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
88
|
+
inLanguage: 'fr',
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export const content: ToolLocaleContent<InflationUI> = {
|
|
92
|
+
slug,
|
|
93
|
+
title,
|
|
94
|
+
description,
|
|
95
|
+
faqTitle: 'Questions Fréquemment Posées',
|
|
96
|
+
faq: faqData,
|
|
97
|
+
bibliographyTitle: 'Sources et Références',
|
|
98
|
+
bibliography: [
|
|
99
|
+
{
|
|
100
|
+
name: 'INE: Indice des Prix à la Consommation Espagnol',
|
|
101
|
+
url: 'https://www.ine.es/',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'Banque d\'Espagne: Analyse de l\'Inflation',
|
|
105
|
+
url: 'https://www.bde.es/',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'BCE: Données Historiques d\'Inflation de la Zone Euro',
|
|
109
|
+
url: 'https://www.ecb.europa.eu/',
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: 'OCDE: Analyse de la Parité du Pouvoir d\'Achat',
|
|
113
|
+
url: 'https://www.oecd.org/',
|
|
114
|
+
},
|
|
115
|
+
],
|
|
116
|
+
howTo: howToData,
|
|
117
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
118
|
+
seo: [
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: 'Calculatrice d\'Inflation Historique: Comprendre la Valeur Réelle de Votre Argent',
|
|
122
|
+
level: 2,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: 'L\'inflation est l\'« impôt silencieux » qui dévore vos économies année après année. Savez-vous combien votre argent a perdu de valeur depuis 1980? Combien coûte réellement ce café que vous payiez 300 pesetas il y a 20 ans?',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'L\'Inflation: L\'Impôt Silencieux sur Votre Patrimoine',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: 'L\'<strong>inflation</strong> est l\'augmentation soutenue et généralisée des prix. Bien qu\'elle semble être un phénomène technique, son impact sur l\'économie réelle est direct: elle réduit la quantité de biens que vous pouvez acheter avec le même argent, éroding une vie d\'épargne si les mesures protectrices ne sont pas prises.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'stats',
|
|
139
|
+
columns: 3,
|
|
140
|
+
items: [
|
|
141
|
+
{
|
|
142
|
+
value: '15,6%',
|
|
143
|
+
label: 'Record Historique 1980',
|
|
144
|
+
icon: 'mdi:trending-up',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
value: '8,4%',
|
|
148
|
+
label: 'Pic de Prix 2022',
|
|
149
|
+
icon: 'mdi:alert',
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
value: '2,0%',
|
|
153
|
+
label: 'Objectif de Stabilité',
|
|
154
|
+
icon: 'mdi:target',
|
|
155
|
+
},
|
|
156
|
+
],
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
type: 'title',
|
|
160
|
+
text: 'Termes Financiers Essentiels',
|
|
161
|
+
level: 3,
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
type: 'glossary',
|
|
165
|
+
items: [
|
|
166
|
+
{
|
|
167
|
+
term: 'IPC',
|
|
168
|
+
definition: 'Indicateur qui résume la variation des prix d\'un panier de consommation de base.',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
term: 'Pouvoir d\'Achat',
|
|
172
|
+
definition: 'La capacité réelle d\'achat de la monnaie à un moment donné.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
term: 'Déflation',
|
|
176
|
+
definition: 'Baisse généralisée des prix qui peut paralyser l\'investissement.',
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
term: 'Stagflation',
|
|
180
|
+
definition: 'Scénario d\'inflation élevée combinée avec la stagnation économique.',
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
type: 'title',
|
|
186
|
+
text: 'Jalons Économiques et Comparaison',
|
|
187
|
+
level: 2,
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
type: 'comparative',
|
|
191
|
+
columns: 2,
|
|
192
|
+
items: [
|
|
193
|
+
{
|
|
194
|
+
title: 'Crise des Années 1980',
|
|
195
|
+
description: 'Période marquée par des inflations à deux chiffres et une grande instabilité du travail.',
|
|
196
|
+
points: [
|
|
197
|
+
'Taux d\'intérêt extrêmement élevés',
|
|
198
|
+
'Perte rapide de valeur de la peseta',
|
|
199
|
+
'Salaires dévorés par les prix',
|
|
200
|
+
],
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
title: 'Inflation Pandémique: 2021 à 2023',
|
|
204
|
+
description: 'Augmentation brutale due aux coûts énergétiques et aux problèmes de chaîne d\'approvisionnement.',
|
|
205
|
+
highlight: true,
|
|
206
|
+
points: [
|
|
207
|
+
'Impact direct sur le coût de la vie',
|
|
208
|
+
'Augmentation des taux de la BCE pour freiner la consommation',
|
|
209
|
+
'Récupération lente du pouvoir d\'achat',
|
|
210
|
+
],
|
|
211
|
+
},
|
|
212
|
+
],
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
type: 'table',
|
|
216
|
+
headers: ['Produit ou Indicateur', 'Valeur en 1980 (Estimée)', 'Valeur en 2026 (Projetée)', 'Variation'],
|
|
217
|
+
rows: [
|
|
218
|
+
['Baguette de Pain', '0,15€ (25 pts)', '1,40€', '833%'],
|
|
219
|
+
['Café en Établissement', '0,30€ (50 pts)', '1,65€', '450%'],
|
|
220
|
+
['Ticket de Cinéma', '1,20€ (200 pts)', '9,80€', '716%'],
|
|
221
|
+
['Salaire Minimum Mensuel', '154€ (25 615 pts)', '1 140€', '640%'],
|
|
222
|
+
],
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
type: 'card',
|
|
226
|
+
icon: 'mdi:piggy-bank',
|
|
227
|
+
title: 'Le Danger de l\'Argent Liquide',
|
|
228
|
+
html: 'Garder l\'argent sous le matelas ou sur des comptes d\'épargne non rémunérés est une perte garantie de capital. Une inflation moyenne de 3% réduit de moitié la valeur de vos économies en moins de 25 ans.',
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
type: 'title',
|
|
232
|
+
text: 'Conseils pour Protéger vos Économies',
|
|
233
|
+
level: 2,
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
type: 'proscons',
|
|
237
|
+
title: 'Stratégies d\'Investissement',
|
|
238
|
+
items: [
|
|
239
|
+
{
|
|
240
|
+
pro: 'Actifs Réels: L\'immobilier s\'apprécie généralement avec l\'inflation.',
|
|
241
|
+
con: 'Faible liquidité et coûts d\'entrée élevés.',
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
pro: 'Bourse et Fonds: Rendements qui dépassent généralement l\'IPC à long terme.',
|
|
245
|
+
con: 'Volatilité et risque de marché à court terme.',
|
|
246
|
+
},
|
|
247
|
+
],
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
type: 'title',
|
|
251
|
+
text: 'Habitudes Financières Saines',
|
|
252
|
+
level: 3,
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
type: 'list',
|
|
256
|
+
items: [
|
|
257
|
+
'Passez en revue régulièrement vos dépenses pour détecter les augmentations cachées.',
|
|
258
|
+
'Diversifiez vos épargnes dans différents types d\'actifs.',
|
|
259
|
+
'Envisagez les obligations d\'État liées à l\'inflation.',
|
|
260
|
+
'Utilisez des outils de calcul pour contextualiser les offres et les salaires.',
|
|
261
|
+
],
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
type: 'diagnostic',
|
|
265
|
+
variant: 'warning',
|
|
266
|
+
title: 'Attention: Intérêt Composé Négatif',
|
|
267
|
+
html: 'L\'inflation agit comme un intérêt composé inversé. Chaque année, le pourcentage de perte s\'applique à une valeur déjà diminuée, accélérant la perte de richesse si vous n\'intervenez pas.',
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
type: 'summary',
|
|
271
|
+
title: 'Conclusions Clés',
|
|
272
|
+
items: [
|
|
273
|
+
'L\'IPC est juste une moyenne; votre inflation personnelle dépend de vos habitudes.',
|
|
274
|
+
'Investir n\'est pas optionnel si vous voulez préserver la valeur réelle de votre travail.',
|
|
275
|
+
'Les calculatrices d\'inflation sont essentielles pour comprendre les contrats à long terme.',
|
|
276
|
+
],
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
type: 'message',
|
|
280
|
+
title: 'Prenez le Contrôle de Votre Économie',
|
|
281
|
+
html: 'Notre calculatrice utilise les données officielles de l\'INE pour vous offrir la vision la plus précise du paysage économique actuel et passé de l\'Espagne.',
|
|
282
|
+
},
|
|
283
|
+
],
|
|
284
|
+
ui: {
|
|
285
|
+
labelTitle: 'Calculatrice d\'Inflation Espagne',
|
|
286
|
+
labelInitialAmount: 'Argent Initial',
|
|
287
|
+
labelInitialYear: 'En l\'année',
|
|
288
|
+
labelFinalAmount: 'Équivalence Aujourd\'hui',
|
|
289
|
+
labelFinalYear: 'Année 2026',
|
|
290
|
+
labelInflationRate: 'Inflation Accumulée',
|
|
291
|
+
labelCalculatedOn: 'Calcul effectué à partir des données officielles de l\'INE jusqu\'en 2025 et des projections estimées pour la fin de 2026.',
|
|
292
|
+
currencySymbol: '€',
|
|
293
|
+
currencyCode: 'EUR',
|
|
294
|
+
currencyLocale: 'fr-FR',
|
|
295
|
+
labelYearSelect: 'En l\'année',
|
|
296
|
+
labelIn: 'En',
|
|
297
|
+
labelEquivalentToday: 'équivaut aujourd\'hui à',
|
|
298
|
+
labelInflationAccumulated: 'Inflation Accumulée',
|
|
299
|
+
labelYear: 'Année',
|
|
300
|
+
},
|
|
301
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { FinanceToolEntry, ToolLocaleContent, ToolDefinition } from '../../types';
|
|
2
|
+
import InflationComponent from './component.astro';
|
|
3
|
+
import InflationSEO from './seo.astro';
|
|
4
|
+
import InflationBibliography from './bibliography.astro';
|
|
5
|
+
|
|
6
|
+
import type { InflationUI } from './ui';
|
|
7
|
+
|
|
8
|
+
export type InflationLocaleContent = ToolLocaleContent<InflationUI>;
|
|
9
|
+
|
|
10
|
+
import { content as es } from './i18n/es';
|
|
11
|
+
import { content as en } from './i18n/en';
|
|
12
|
+
import { content as fr } from './i18n/fr';
|
|
13
|
+
|
|
14
|
+
export const inflation: FinanceToolEntry<InflationUI> = {
|
|
15
|
+
id: 'inflacion',
|
|
16
|
+
icons: {
|
|
17
|
+
bg: 'mdi:chart-line',
|
|
18
|
+
fg: 'mdi:trending-up',
|
|
19
|
+
},
|
|
20
|
+
i18n: {
|
|
21
|
+
es: async () => es,
|
|
22
|
+
en: async () => en,
|
|
23
|
+
fr: async () => fr,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export { InflationComponent, InflationSEO, InflationBibliography };
|
|
28
|
+
|
|
29
|
+
export const INFLATION_TOOL: ToolDefinition = {
|
|
30
|
+
entry: inflation,
|
|
31
|
+
Component: InflationComponent,
|
|
32
|
+
SEOComponent: InflationSEO,
|
|
33
|
+
BibliographyComponent: InflationBibliography,
|
|
34
|
+
};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export interface InflationResult {
|
|
2
|
+
finalAmount: number;
|
|
3
|
+
percentChange: number;
|
|
4
|
+
inflationRate: number;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export class InflationCalculator {
|
|
8
|
+
private static readonly INFLATION_DATA: Record<number, number> = {
|
|
9
|
+
1980: 15.6,
|
|
10
|
+
1981: 14.6,
|
|
11
|
+
1982: 14.4,
|
|
12
|
+
1983: 12.2,
|
|
13
|
+
1984: 11.3,
|
|
14
|
+
1985: 8.8,
|
|
15
|
+
1986: 8.8,
|
|
16
|
+
1987: 5.2,
|
|
17
|
+
1988: 4.8,
|
|
18
|
+
1989: 6.8,
|
|
19
|
+
1990: 6.7,
|
|
20
|
+
1991: 5.9,
|
|
21
|
+
1992: 5.9,
|
|
22
|
+
1993: 4.6,
|
|
23
|
+
1994: 4.7,
|
|
24
|
+
1995: 4.7,
|
|
25
|
+
1996: 3.6,
|
|
26
|
+
1997: 2.0,
|
|
27
|
+
1998: 1.8,
|
|
28
|
+
1999: 2.3,
|
|
29
|
+
2000: 3.4,
|
|
30
|
+
2001: 3.6,
|
|
31
|
+
2002: 3.0,
|
|
32
|
+
2003: 3.0,
|
|
33
|
+
2004: 3.0,
|
|
34
|
+
2005: 3.7,
|
|
35
|
+
2006: 3.5,
|
|
36
|
+
2007: 2.8,
|
|
37
|
+
2008: 4.1,
|
|
38
|
+
2009: -0.3,
|
|
39
|
+
2010: 1.8,
|
|
40
|
+
2011: 3.2,
|
|
41
|
+
2012: 2.4,
|
|
42
|
+
2013: 1.4,
|
|
43
|
+
2014: -0.2,
|
|
44
|
+
2015: -0.5,
|
|
45
|
+
2016: -0.2,
|
|
46
|
+
2017: 2.0,
|
|
47
|
+
2018: 1.7,
|
|
48
|
+
2019: 0.7,
|
|
49
|
+
2020: -0.3,
|
|
50
|
+
2021: 6.5,
|
|
51
|
+
2022: 5.7,
|
|
52
|
+
2023: 3.1,
|
|
53
|
+
2024: 2.8,
|
|
54
|
+
2025: 2.2,
|
|
55
|
+
2026: 2.0,
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
static calculate(amount: number, startYear: number, endYear: number = 2026): InflationResult {
|
|
59
|
+
if (startYear === endYear) {
|
|
60
|
+
return { finalAmount: amount, percentChange: 0, inflationRate: 0 };
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
let multiplier = 1;
|
|
64
|
+
let totalInflationRate = 0;
|
|
65
|
+
const start = Math.min(startYear, endYear);
|
|
66
|
+
const end = Math.max(startYear, endYear);
|
|
67
|
+
|
|
68
|
+
for (let year = start + 1; year <= end; year++) {
|
|
69
|
+
const inflation = this.INFLATION_DATA[year] || 2.0;
|
|
70
|
+
multiplier *= 1 + inflation / 100;
|
|
71
|
+
totalInflationRate += inflation;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const finalAmount = startYear < endYear
|
|
75
|
+
? Number((amount * multiplier).toFixed(2))
|
|
76
|
+
: Number((amount / multiplier).toFixed(2));
|
|
77
|
+
|
|
78
|
+
const percentChange = ((finalAmount - amount) / amount) * 100;
|
|
79
|
+
|
|
80
|
+
return {
|
|
81
|
+
finalAmount,
|
|
82
|
+
percentChange: Number(percentChange.toFixed(1)),
|
|
83
|
+
inflationRate: Number(totalInflationRate.toFixed(1)),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static getAvailableYears(): number[] {
|
|
88
|
+
return Object.keys(this.INFLATION_DATA)
|
|
89
|
+
.map(Number)
|
|
90
|
+
.sort((a, b) => a - b);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { SEORenderer } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { inflation } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await inflation.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
13
|
+
---
|
|
14
|
+
<SEORenderer content={{ locale: locale as string, sections: content.seo }} />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface InflationUI {
|
|
2
|
+
labelTitle: string;
|
|
3
|
+
labelInitialAmount: string;
|
|
4
|
+
labelInitialYear: string;
|
|
5
|
+
labelFinalAmount: string;
|
|
6
|
+
labelFinalYear: string;
|
|
7
|
+
labelInflationRate: string;
|
|
8
|
+
labelCalculatedOn: string;
|
|
9
|
+
currencySymbol: string;
|
|
10
|
+
currencyCode: string;
|
|
11
|
+
currencyLocale: string;
|
|
12
|
+
labelYearSelect: string;
|
|
13
|
+
labelIn: string;
|
|
14
|
+
labelEquivalentToday: string;
|
|
15
|
+
labelInflationAccumulated: string;
|
|
16
|
+
labelYear: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
+
import { lateInterest } from './index';
|
|
4
|
+
import type { KnownLocale } from '../../types';
|
|
5
|
+
|
|
6
|
+
interface Props {
|
|
7
|
+
locale?: KnownLocale;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const { locale = 'es' } = Astro.props;
|
|
11
|
+
const content = await lateInterest.i18n[locale]?.();
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
{content && <SharedBibliography links={content.bibliography} />}
|