@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,220 +1,220 @@
1
- import { bibliography } from '../bibliography'
2
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
- import type { ToolLocaleContent } from '../../../types';
4
- import type { PercentageCalculatorUI } from '../ui';
5
-
6
- const slug = 'calculatrice-pourcentages';
7
- const title = 'Calculatrice de Pourcentages: 4 en 1 pour Réductions, TVA et Majorations';
8
- const description =
9
- 'Calculez facilement les pourcentages en ligne gratuitement. 4 outils en 1 pour trouver X% de Y, différence en pourcentage, ajouter ou soustraire la TVA, réductions et calculs de pourboires automatiquement.';
10
-
11
- const faqData = [
12
- {
13
- question: 'Comment fonctionne la calculatrice?',
14
- answer:
15
- 'Il suffit de saisir les valeurs dans les champs du cas d\'utilisation qui correspond à votre problème et notre calculatrice traite la formule sans avoir besoin d\'appuyer sur un bouton de calcul.',
16
- },
17
- {
18
- question: 'Est-elle valable pour calculer la TVA ou les impôts?',
19
- answer:
20
- 'Oui, le cas 4 (Ajouter ou soustraire un pourcentage) est conçu précisément pour les cas comme appliquer une TVA de 21% à un prix de base ou calculer un impôt sur le revenu négatif.',
21
- },
22
- {
23
- question: 'Gère-t-elle les décimales et les nombres négatifs?',
24
- answer:
25
- 'Bien sûr. Vous pouvez entrer des nombres décimaux (en utilisant un point) et cela fonctionnera également avec des valeurs négatives si vous avez besoin d\'analyser les soldes comptables en pertes.',
26
- },
27
- {
28
- question: 'Puis-je copier les résultats?',
29
- answer:
30
- 'Oui, chaque cas a un bouton dans la zone de résultat qui copie instantanément le nombre dans le presse-papiers de votre appareil pour que vous puissiez le coller dans une autre application ou document.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: 'Identifiez votre problème mathématique',
37
- text: 'Lisez les titres des 4 cas et choisissez celui qui correspond à ce que vous voulez savoir (Ex. Quel est 20% de 50? → Cas 1).',
38
- },
39
- {
40
- name: 'Entrez les nombres',
41
- text: 'Remplissez les champs X et Y. Ne vous inquiétez pas de l\'ordre, le texte de chaque cas vous guide visuellement.',
42
- },
43
- {
44
- name: 'Copiez le résultat instantané',
45
- text: 'Le nombre apparaîtra en temps réel ci-dessous à mesure que vous tapez. Cliquez sur l\'icône de copie si vous souhaitez l\'utiliser ailleurs.',
46
- },
47
- ];
48
-
49
- const faqSchema: WithContext<FAQPage> = {
50
- '@context': 'https://schema.org',
51
- '@type': 'FAQPage',
52
- mainEntity: faqData.map((item) => ({
53
- '@type': 'Question',
54
- name: item.question,
55
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
56
- })),
57
- };
58
-
59
- const howToSchema: WithContext<HowTo> = {
60
- '@context': 'https://schema.org',
61
- '@type': 'HowTo',
62
- name: title,
63
- description,
64
- step: howToData.map((step, i) => ({
65
- '@type': 'HowToStep',
66
- position: i + 1,
67
- name: step.name,
68
- text: step.text,
69
- })),
70
- };
71
-
72
- const appSchema: WithContext<SoftwareApplication> = {
73
- '@context': 'https://schema.org',
74
- '@type': 'SoftwareApplication',
75
- name: title,
76
- description,
77
- applicationCategory: 'FinanceApplication',
78
- operatingSystem: 'All',
79
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
80
- inLanguage: 'fr',
81
- };
82
-
83
- export const content: ToolLocaleContent<PercentageCalculatorUI> = {
84
- slug,
85
- title,
86
- description,
87
- faq: faqData,
88
- bibliography,
89
-
90
- howTo: howToData,
91
- schemas: [faqSchema, howToSchema, appSchema],
92
- seo: [
93
- {
94
- type: 'title',
95
- text: 'Calculatrice de Pourcentages 4-en-1: Maîtrisez les Calculs Rapides',
96
- level: 2,
97
- },
98
- {
99
- type: 'title',
100
- text: 'Pourquoi Vous Avez Besoin d\'une Calculatrice de Pourcentages Polyvalente',
101
- level: 3,
102
- },
103
- {
104
- type: 'paragraph',
105
- html: 'Calculer des pourcentages est l\'une des opérations mathématiques les plus courantes de notre vie quotidienne. Qu\'il s\'agisse de calculer la réduction lors des soldes, de déterminer le pourboire approprié au restaurant, de déterminer les marges bénéficiaires en affaires ou de comprendre les intérêts des prêts. Malgré le fait que ce sont des opérations de tous les jours, ce n\'est pas toujours facile de les faire mentalement ou de mémoriser la formule exacte.',
106
- },
107
- {
108
- type: 'paragraph',
109
- html: 'Notre calculatrice de pourcentages 4-en-1 regroupe les scénarios les plus courants que vous rencontrerez. Plus besoin de chercher sur Google "comment calculer 20 pour cent" ou "formule de pourcentage". Vous avez les quatre opérations essentielles au même endroit, interactif et avec des résultats instantanés.',
110
- },
111
- {
112
- type: 'title',
113
- text: 'Exploration des 4 Cas d\'Utilisation Les Plus Courants',
114
- level: 3,
115
- },
116
- {
117
- type: 'paragraph',
118
- html: 'Pour vous faciliter la vie, nous avons séparé l\'outil en quatre blocs visuels clairs qui résolvent les problèmes du monde réel que vous rencontrez quotidiennement:',
119
- },
120
- {
121
- type: 'card',
122
- icon: 'mdi:percent',
123
- title: '1. Combien Font X% de Y?',
124
- html: '<p><strong>Le cas classique.</strong> Parfait pour calculer les réductions ou les pourboires. Si vous voulez savoir ce que représente 15% de 100€, c\'est l\'outil qu\'il vous faut. La formule sous-jacente divise simplement le pourcentage par 100 et le multiplie par la valeur totale.</p>',
125
- },
126
- {
127
- type: 'card',
128
- icon: 'mdi:division',
129
- title: '2. Quel Pourcentage Représente X de Y?',
130
- html: '<p><strong>Idéal pour les proportions.</strong> Si vous avez obtenu 45 points sur 60 à un examen, quel est votre pourcentage? Cette fonction divise la partie par le total et multiplie par 100, vous donnant le poids relatif exact.</p>',
131
- },
132
- {
133
- type: 'card',
134
- icon: 'mdi:chart-line-variant',
135
- title: '3. Augmentation ou Diminution Percentuelle',
136
- html: '<p><strong>Parfait pour la finance et l\'analytique.</strong> De combien votre loyer a-t-il augmenté depuis l\'année dernière? Si vous payiez 800€ avant et 840€ maintenant, cette fonction vous indique une augmentation de 5%. Elle mesure la croissance ou le déclin entre deux chiffres.</p>',
137
- },
138
- {
139
- type: 'card',
140
- icon: 'mdi:calculator',
141
- title: '4. Ajouter ou Soustraire un Pourcentage d\'une Valeur',
142
- html: '<p><strong>Très utile pour la TVA.</strong> Si vous avez un prix de base (par ex. 100€) et devez ajouter 20% de TVA, cette calculatrice vous donne directement les 120€ finaux sans étapes intermédiaires. De la même manière, cela fonctionne pour appliquer des réductions directement (par ex. soustraire 20%).</p>',
143
- },
144
- {
145
- type: 'title',
146
- text: 'Mythes Courants sur les Calculs de Pourcentages',
147
- level: 3,
148
- },
149
- {
150
- type: 'paragraph',
151
- html: 'Nous nous bloquons souvent en voyant de grands pourcentages ou des décimales, mais il y a des "astuces" mathématiques qui peuvent vous faciliter la vie. La plus célèbre est la <strong>réversibilité des pourcentages</strong>.',
152
- },
153
- {
154
- type: 'tip',
155
- title: 'L\'Astuce de Réversibilité',
156
- html: '<p>Saviez-vous que X% de Y est exactement égal à Y% de X? Par exemple, si on vous demande de calculer 18% de 50 de tête, cela semble compliqué. Mais inversez-le-50% de 18 est facile: c\'est 9! Cela fonctionne pour absolument tous les nombres et c\'est une astuce incroyable au quotidien.</p>',
157
- },
158
- {
159
- type: 'title',
160
- text: 'Pourquoi Nous Échouons aux Calculs de Croissance',
161
- level: 3,
162
- },
163
- {
164
- type: 'paragraph',
165
- html: 'L\'une des erreurs les plus courantes se produit au Cas 3: augmentation ou diminution percentuelle. Imaginez qu\'une action coûte 100€, baisse de 50%, puis augmente de 50% le lendemain. Votre intuition dit qu\'elle revient à 100€, mais c\'est faux.',
166
- },
167
- {
168
- type: 'paragraph',
169
- html: 'Si elle baisse de 50% depuis 100€, la nouvelle valeur est 50€. Si elle augmente alors de 50% à partir de ces 50€, le gain est la moitié de 50€ (ce qui est 25€). Donc le prix final est 75€. Cet exemple classique montre pourquoi les augmentations et diminutions de pourcentage ne sont pas symétriques, et pourquoi les calculatrices dynamiques comme celle-ci préviennent les erreurs financières graves.',
170
- },
171
- {
172
- type: 'title',
173
- text: 'Utilisation Professionnelle et Académique',
174
- level: 3,
175
- },
176
- {
177
- type: 'paragraph',
178
- html: 'Notre interface est sans distraction et conçue pour <strong>travailler rapidement</strong>. Épinglez-la en tant qu\'onglet de navigateur, basculez rapidement entre les champs, et utilisez le bouton de copie à côté des résultats pour transférer les chiffres exacts vers Excel ou Google Sheets sans risque d\'erreur de frappe.',
179
- },
180
- {
181
- type: 'list',
182
- items: [
183
- 'Commerce électronique et magasins de détail: Calcul rapide des prix de vente au détail en appliquant les marges bénéficiaires et la TVA.',
184
- 'Ressources humaines: Détermination des écarts salariaux, retenues fiscales et augmentations de salaire indexées sur l\'inflation.',
185
- 'Enseignement supérieur: Enseignants courbes de notation ou étudiants STIM analysant la déviation expérimentale.',
186
- 'Marketing numérique: Mesure du CTR (Taux de Clic), ROAS (Retour sur Dépenses Publicitaires), ou taux de conversion d\'e-commerce.',
187
- ],
188
- },
189
- ],
190
- ui: {
191
- labelTitle: 'Calculatrice de Pourcentages',
192
- labelCase1Title: 'Cas 1',
193
- labelCase1Question: 'Quel est X% de Y?',
194
- labelCase1Placeholder1: 'X',
195
- labelCase1Placeholder2: 'Y',
196
- labelCase1Formula: 'Formule: (X / 100) × Y',
197
- labelCase2Title: 'Cas 2',
198
- labelCase2Question: 'Quel pourcentage est X de Y?',
199
- labelCase2Placeholder1: 'X',
200
- labelCase2Placeholder2: 'Y',
201
- labelCase2Formula: 'Formule: (X / Y) × 100',
202
- labelCase3Title: 'Cas 3',
203
- labelCase3Question: 'Différence en pourcentage entre deux valeurs',
204
- labelCase3Placeholder1: 'Valeur 1',
205
- labelCase3Placeholder2: 'Valeur 2',
206
- labelCase3Formula: 'Formule: ((Valeur 2 - Valeur 1) / |Valeur 1|) × 100',
207
- labelCase4Title: 'Cas 4',
208
- labelCase4Question: 'Ajouter ou soustraire un pourcentage à une valeur',
209
- labelCase4Placeholder1: 'Valeur',
210
- labelCase4Placeholder2: '%',
211
- labelCase4Formula: 'Formule: Valeur ± (Valeur × (% / 100))',
212
- labelCase4AddLabel: 'Ajouter (Valeur + %)',
213
- labelCase4SubtractLabel: 'Soustraire (Valeur - %)',
214
- labelResult: 'Résultat',
215
- labelDifference: 'Différence',
216
- labelCopyTooltip: 'Copier le résultat',
217
- labelFormula: 'Formule',
218
- percentSymbol: '%',
219
- },
220
- };
1
+ import { bibliography } from '../bibliography'
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { PercentageCalculatorUI } from '../ui';
5
+
6
+ const slug = 'calculatrice-pourcentages';
7
+ const title = 'Calculatrice de Pourcentages: 4 en 1 pour Réductions, TVA et Majorations';
8
+ const description =
9
+ 'Calculez facilement les pourcentages en ligne gratuitement. 4 outils en 1 pour trouver X% de Y, différence en pourcentage, ajouter ou soustraire la TVA, réductions et calculs de pourboires automatiquement.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: 'Comment fonctionne la calculatrice?',
14
+ answer:
15
+ 'Il suffit de saisir les valeurs dans les champs du cas d\'utilisation qui correspond à votre problème et notre calculatrice traite la formule sans avoir besoin d\'appuyer sur un bouton de calcul.',
16
+ },
17
+ {
18
+ question: 'Est-elle valable pour calculer la TVA ou les impôts?',
19
+ answer:
20
+ 'Oui, le cas 4 (Ajouter ou soustraire un pourcentage) est conçu précisément pour les cas comme appliquer une TVA de 21% à un prix de base ou calculer un impôt sur le revenu négatif.',
21
+ },
22
+ {
23
+ question: 'Gère-t-elle les décimales et les nombres négatifs?',
24
+ answer:
25
+ 'Bien sûr. Vous pouvez entrer des nombres décimaux (en utilisant un point) et cela fonctionnera également avec des valeurs négatives si vous avez besoin d\'analyser les soldes comptables en pertes.',
26
+ },
27
+ {
28
+ question: 'Puis-je copier les résultats?',
29
+ answer:
30
+ 'Oui, chaque cas a un bouton dans la zone de résultat qui copie instantanément le nombre dans le presse-papiers de votre appareil pour que vous puissiez le coller dans une autre application ou document.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: 'Identifiez votre problème mathématique',
37
+ text: 'Lisez les titres des 4 cas et choisissez celui qui correspond à ce que vous voulez savoir (Ex. Quel est 20% de 50? → Cas 1).',
38
+ },
39
+ {
40
+ name: 'Entrez les nombres',
41
+ text: 'Remplissez les champs X et Y. Ne vous inquiétez pas de l\'ordre, le texte de chaque cas vous guide visuellement.',
42
+ },
43
+ {
44
+ name: 'Copiez le résultat instantané',
45
+ text: 'Le nombre apparaîtra en temps réel ci-dessous à mesure que vous tapez. Cliquez sur l\'icône de copie si vous souhaitez l\'utiliser ailleurs.',
46
+ },
47
+ ];
48
+
49
+ const faqSchema: WithContext<FAQPage> = {
50
+ '@context': 'https://schema.org',
51
+ '@type': 'FAQPage',
52
+ mainEntity: faqData.map((item) => ({
53
+ '@type': 'Question',
54
+ name: item.question,
55
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
56
+ })),
57
+ };
58
+
59
+ const howToSchema: WithContext<HowTo> = {
60
+ '@context': 'https://schema.org',
61
+ '@type': 'HowTo',
62
+ name: title,
63
+ description,
64
+ step: howToData.map((step, i) => ({
65
+ '@type': 'HowToStep',
66
+ position: i + 1,
67
+ name: step.name,
68
+ text: step.text,
69
+ })),
70
+ };
71
+
72
+ const appSchema: WithContext<SoftwareApplication> = {
73
+ '@context': 'https://schema.org',
74
+ '@type': 'SoftwareApplication',
75
+ name: title,
76
+ description,
77
+ applicationCategory: 'FinanceApplication',
78
+ operatingSystem: 'All',
79
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
80
+ inLanguage: 'fr',
81
+ };
82
+
83
+ export const content: ToolLocaleContent<PercentageCalculatorUI> = {
84
+ slug,
85
+ title,
86
+ description,
87
+ faq: faqData,
88
+ bibliography,
89
+
90
+ howTo: howToData,
91
+ schemas: [faqSchema, howToSchema, appSchema],
92
+ seo: [
93
+ {
94
+ type: 'title',
95
+ text: 'Calculatrice de Pourcentages 4-en-1: Maîtrisez les Calculs Rapides',
96
+ level: 2,
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: 'Pourquoi Vous Avez Besoin d\'une Calculatrice de Pourcentages Polyvalente',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Calculer des pourcentages est l\'une des opérations mathématiques les plus courantes de notre vie quotidienne. Qu\'il s\'agisse de calculer la réduction lors des soldes, de déterminer le pourboire approprié au restaurant, de déterminer les marges bénéficiaires en affaires ou de comprendre les intérêts des prêts. Malgré le fait que ce sont des opérations de tous les jours, ce n\'est pas toujours facile de les faire mentalement ou de mémoriser la formule exacte.',
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Notre calculatrice de pourcentages 4-en-1 regroupe les scénarios les plus courants que vous rencontrerez. Plus besoin de chercher sur Google "comment calculer 20 pour cent" ou "formule de pourcentage". Vous avez les quatre opérations essentielles au même endroit, interactif et avec des résultats instantanés.',
110
+ },
111
+ {
112
+ type: 'title',
113
+ text: 'Exploration des 4 Cas d\'Utilisation Les Plus Courants',
114
+ level: 3,
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: 'Pour vous faciliter la vie, nous avons séparé l\'outil en quatre blocs visuels clairs qui résolvent les problèmes du monde réel que vous rencontrez quotidiennement:',
119
+ },
120
+ {
121
+ type: 'card',
122
+ icon: 'mdi:percent',
123
+ title: '1. Combien Font X% de Y?',
124
+ html: '<p><strong>Le cas classique.</strong> Parfait pour calculer les réductions ou les pourboires. Si vous voulez savoir ce que représente 15% de 100€, c\'est l\'outil qu\'il vous faut. La formule sous-jacente divise simplement le pourcentage par 100 et le multiplie par la valeur totale.</p>',
125
+ },
126
+ {
127
+ type: 'card',
128
+ icon: 'mdi:division',
129
+ title: '2. Quel Pourcentage Représente X de Y?',
130
+ html: '<p><strong>Idéal pour les proportions.</strong> Si vous avez obtenu 45 points sur 60 à un examen, quel est votre pourcentage? Cette fonction divise la partie par le total et multiplie par 100, vous donnant le poids relatif exact.</p>',
131
+ },
132
+ {
133
+ type: 'card',
134
+ icon: 'mdi:chart-line-variant',
135
+ title: '3. Augmentation ou Diminution Percentuelle',
136
+ html: '<p><strong>Parfait pour la finance et l\'analytique.</strong> De combien votre loyer a-t-il augmenté depuis l\'année dernière? Si vous payiez 800€ avant et 840€ maintenant, cette fonction vous indique une augmentation de 5%. Elle mesure la croissance ou le déclin entre deux chiffres.</p>',
137
+ },
138
+ {
139
+ type: 'card',
140
+ icon: 'mdi:calculator',
141
+ title: '4. Ajouter ou Soustraire un Pourcentage d\'une Valeur',
142
+ html: '<p><strong>Très utile pour la TVA.</strong> Si vous avez un prix de base (par ex. 100€) et devez ajouter 20% de TVA, cette calculatrice vous donne directement les 120€ finaux sans étapes intermédiaires. De la même manière, cela fonctionne pour appliquer des réductions directement (par ex. soustraire 20%).</p>',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Mythes Courants sur les Calculs de Pourcentages',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Nous nous bloquons souvent en voyant de grands pourcentages ou des décimales, mais il y a des "astuces" mathématiques qui peuvent vous faciliter la vie. La plus célèbre est la <strong>réversibilité des pourcentages</strong>.',
152
+ },
153
+ {
154
+ type: 'tip',
155
+ title: 'L\'Astuce de Réversibilité',
156
+ html: '<p>Saviez-vous que X% de Y est exactement égal à Y% de X? Par exemple, si on vous demande de calculer 18% de 50 de tête, cela semble compliqué. Mais inversez-le-50% de 18 est facile: c\'est 9! Cela fonctionne pour absolument tous les nombres et c\'est une astuce incroyable au quotidien.</p>',
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Pourquoi Nous Échouons aux Calculs de Croissance',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'L\'une des erreurs les plus courantes se produit au Cas 3: augmentation ou diminution percentuelle. Imaginez qu\'une action coûte 100€, baisse de 50%, puis augmente de 50% le lendemain. Votre intuition dit qu\'elle revient à 100€, mais c\'est faux.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Si elle baisse de 50% depuis 100€, la nouvelle valeur est 50€. Si elle augmente alors de 50% à partir de ces 50€, le gain est la moitié de 50€ (ce qui est 25€). Donc le prix final est 75€. Cet exemple classique montre pourquoi les augmentations et diminutions de pourcentage ne sont pas symétriques, et pourquoi les calculatrices dynamiques comme celle-ci préviennent les erreurs financières graves.',
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: 'Utilisation Professionnelle et Académique',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'paragraph',
178
+ html: 'Notre interface est sans distraction et conçue pour <strong>travailler rapidement</strong>. Épinglez-la en tant qu\'onglet de navigateur, basculez rapidement entre les champs, et utilisez le bouton de copie à côté des résultats pour transférer les chiffres exacts vers Excel ou Google Sheets sans risque d\'erreur de frappe.',
179
+ },
180
+ {
181
+ type: 'list',
182
+ items: [
183
+ 'Commerce électronique et magasins de détail: Calcul rapide des prix de vente au détail en appliquant les marges bénéficiaires et la TVA.',
184
+ 'Ressources humaines: Détermination des écarts salariaux, retenues fiscales et augmentations de salaire indexées sur l\'inflation.',
185
+ 'Enseignement supérieur: Enseignants courbes de notation ou étudiants STIM analysant la déviation expérimentale.',
186
+ 'Marketing numérique: Mesure du CTR (Taux de Clic), ROAS (Retour sur Dépenses Publicitaires), ou taux de conversion d\'e-commerce.',
187
+ ],
188
+ },
189
+ ],
190
+ ui: {
191
+ labelTitle: 'Calculatrice de Pourcentages',
192
+ labelCase1Title: 'Cas 1',
193
+ labelCase1Question: 'Quel est X% de Y?',
194
+ labelCase1Placeholder1: 'X',
195
+ labelCase1Placeholder2: 'Y',
196
+ labelCase1Formula: 'Formule: (X / 100) × Y',
197
+ labelCase2Title: 'Cas 2',
198
+ labelCase2Question: 'Quel pourcentage est X de Y?',
199
+ labelCase2Placeholder1: 'X',
200
+ labelCase2Placeholder2: 'Y',
201
+ labelCase2Formula: 'Formule: (X / Y) × 100',
202
+ labelCase3Title: 'Cas 3',
203
+ labelCase3Question: 'Différence en pourcentage entre deux valeurs',
204
+ labelCase3Placeholder1: 'Valeur 1',
205
+ labelCase3Placeholder2: 'Valeur 2',
206
+ labelCase3Formula: 'Formule: ((Valeur 2 - Valeur 1) / |Valeur 1|) × 100',
207
+ labelCase4Title: 'Cas 4',
208
+ labelCase4Question: 'Ajouter ou soustraire un pourcentage à une valeur',
209
+ labelCase4Placeholder1: 'Valeur',
210
+ labelCase4Placeholder2: '%',
211
+ labelCase4Formula: 'Formule: Valeur ± (Valeur × (% / 100))',
212
+ labelCase4AddLabel: 'Ajouter (Valeur + %)',
213
+ labelCase4SubtractLabel: 'Soustraire (Valeur - %)',
214
+ labelResult: 'Résultat',
215
+ labelDifference: 'Différence',
216
+ labelCopyTooltip: 'Copier le résultat',
217
+ labelFormula: 'Formule',
218
+ percentSymbol: '%',
219
+ },
220
+ };