@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 = 'calcolatore-percentuali';
7
- const title = 'Calcolatore di Percentuali 4 in 1: Sconti, Aumenti e Ribassi';
8
- const description =
9
- 'Calcola facilmente le percentuali online gratuitamente. 4 strumenti in 1 per estrarre l\'X% di Y, differenza percentuale, aggiungere o sottrarre l\'IVA, sconti e mance automatiche.';
10
-
11
- const faqData = [
12
- {
13
- question: 'Come funziona il calcolatore?',
14
- answer:
15
- 'Basta inserire i valori nelle caselle del caso d\'uso corrispondente al tuo problema e il nostro calcolatore elaborerà la formula senza dover premere alcun pulsante di calcolo.',
16
- },
17
- {
18
- question: 'È valido per calcolare l\'IVA o le tasse?',
19
- answer:
20
- 'Sì, il blocco 4 ("Aggiungere o sottrarre percentuale") è progettato proprio per casi come l\'applicazione di un\'IVA al 22% su un prezzo base o il calcolo di una ritenuta d\'acconto.',
21
- },
22
- {
23
- question: 'Gestisce numeri decimali e negativi?',
24
- answer:
25
- 'Certamente. Puoi inserire numeri decimali (usando il punto) e funzionerà anche con valori negativi se devi analizzare bilanci contabili in perdita.',
26
- },
27
- {
28
- question: 'Posso copiare i risultati?',
29
- answer:
30
- 'Sì, ogni blocco ha un pulsante nel riquadro del risultato che copia istantaneamente la cifra negli appunti del tuo dispositivo per poterla incollare in un\'altra app o documento.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: 'Identifica il tuo problema matematico',
37
- text: 'Leggi i titoli dei 4 blocchi e scegli quello che coincide con ciò che vuoi sapere (Es. Quanto è il 20% di 50? -> Blocco 1).',
38
- },
39
- {
40
- name: 'Inserisci le cifre',
41
- text: 'Compila i campi "X" e "Y". Non preoccuparti dell\'ordine, la frase di ogni blocco ti guida visivamente.',
42
- },
43
- {
44
- name: 'Copia il risultato istantaneo',
45
- text: 'La cifra apparirà in tempo real in basso mentre scrivi. Premi l\'icona di copia se desideri portarla altrove.',
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: 'it',
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: 'Calcolatore di Percentuali 4 in 1: Domina i Calcoli Rapidi',
96
- level: 2,
97
- },
98
- {
99
- type: 'title',
100
- text: 'A cosa serve un calcolatore di percentuali multiplo?',
101
- level: 3,
102
- },
103
- {
104
- type: 'paragraph',
105
- html: 'Calcolare le percentuali è una delle operazioni matematiche più comuni nella nostra vita quotidiana. Dal calcolo dello sconto durante i saldi, alla conoscenza della mancia adeguata in un ristorante, fino alla determinazione del margine di profitto in un\'azienda o dell\'interesse di un prestito. Pur essendo operazioni quotidiane, non è sempre facile eseguirle a mente o ricordare la formula esatta.',
106
- },
107
- {
108
- type: 'paragraph',
109
- html: 'Il nostro calcolatore di percentuali 4 in 1 raggruppa gli scenari più richiesti. Non hai più bisogno di cercare su Google "come calcolare il 20 per cento" o "formula per il calcolo della percentuale". Hai le quattro operazioni essenziali in un unico posto, in modo interattivo e con risultati istantanei.',
110
- },
111
- {
112
- type: 'title',
113
- text: 'Analisi dei 4 casi d\'uso più comuni',
114
- level: 3,
115
- },
116
- {
117
- type: 'paragraph',
118
- html: 'Per semplificarti la vita, abbiamo separato lo strumento in quattro chiari blocchi visivi che risolvono i problemi reali che affrontiamo ogni giorno:',
119
- },
120
- {
121
- type: 'card',
122
- icon: 'mdi:percent',
123
- title: '1. Quanto è l\'X% di Y?',
124
- html: '<p><strong>Il caso classico.</strong> Utile per calcolare sconti o mance. Se vuoi sapere quanto è il 15% di 120€, questo è lo strumento che fa per te. La formula sottostante divide semplicemente la percentuale per 100 e la moltiplica per il valore totale.</p>',
125
- },
126
- {
127
- type: 'card',
128
- icon: 'mdi:division',
129
- title: '2. Che percentuale è X di Y?',
130
- html: '<p><strong>Ideale per le proporzioni.</strong> Se hai preso 45 punti in un esame da 60, che voto hai su 100? Questa funzione divide la parte per il totale e la moltiplica per cento, dandoti l\'esatto peso relativo.</p>',
131
- },
132
- {
133
- type: 'card',
134
- icon: 'mdi:chart-line-variant',
135
- title: '3. Aumento o Diminuzione Percentuale',
136
- html: '<p><strong>Perfetto per finanza e analisi.</strong> Di quanto è aumentato l\'affitto rispetto all\'anno scorso? Se prima pagavi 800€ e ora 840€, questa funzione ti dirà che hai subito un aumento del 5%. Misura la crescita o la decrescita tra due cifre.</p>',
137
- },
138
- {
139
- type: 'card',
140
- icon: 'mdi:calculator',
141
- title: '4. Aggiungere o Sottrarre percentuale a un valore',
142
- html: '<p><strong>Utilissimo per l\'IVA.</strong> Se hai un prezzo base (es. 100€) e devi aggiungere il 22% di IVA, questo calcolatore ti darà direttamente i 122€ finali senza dover fare operazioni intermedie. Allo stesso modo, serve per applicare uno sconto diretto (es. sottrarre il 20%).</p>',
143
- },
144
- {
145
- type: 'title',
146
- text: 'Miti comuni sul calcolo delle percentuali',
147
- level: 3,
148
- },
149
- {
150
- type: 'paragraph',
151
- html: 'Spesso ci blocchiamo di fronte a percentuali grandi o decimali, ma ci sono alcuni "trucchi" matematici che possono semplificarti la vita. Il più famoso è la <strong>reversibilità delle percentuali</strong>.',
152
- },
153
- {
154
- type: 'tip',
155
- title: 'Il trucco della reversibilità',
156
- html: '<p>Sapevi che l\'X% di Y è esattamente uguale all\'Y% di X? Per esempio, se ti chiedono di calcolare il 18% di 50 a mente, può sembrare complicato. Ma se lo inverti, il 50% di 18 è molto facile: è 9! Questo vale per assolutamente qualsiasi numero ed è un incredibile salvavita nel quotidiano.</p>',
157
- },
158
- {
159
- type: 'title',
160
- text: 'Perché sbagliamo a calcolare le crescite',
161
- level: 3,
162
- },
163
- {
164
- type: 'paragraph',
165
- html: 'Uno degli errori più comuni si verifica nel caso 3: l\'aumento o la diminuzione percentuale. Immaginiamo che un\'azione in borsa costi 100€, scenda del 50% e il giorno dopo salga del 50%. L\'intuizione ci dice che torna a valere 100€, ma è sbagliato.',
166
- },
167
- {
168
- type: 'paragraph',
169
- html: 'Se scende del 50% da 100€, il suo nuovo valore è 50€. Se da quei 50€ sale del 50%, l\'incremento è la metà di 50 (25€). Pertanto, il prezzo finale sarebbe 75€. Questo è un esempio classico del perché i rialzi e i ribassi percentuali non sono asimmetrici e perché i calcolatori dinamici come questo prevengono gravi errori finanziari.',
170
- },
171
- {
172
- type: 'title',
173
- text: 'Uso professionale e accademico',
174
- level: 3,
175
- },
176
- {
177
- type: 'paragraph',
178
- html: 'La nostra interfaccia è priva di distrazioni e progettata per <strong>lavorare velocemente</strong>. Puoi tenerla in una scheda fissata del browser, passare rapidamente tra i vari campi e, grazie al pulsante di copia accanto al risultato, trasferire il dato esatto nel tuo Excel o Google Sheets senza rischio di errori di battitura.',
179
- },
180
- {
181
- type: 'list',
182
- items: [
183
- 'Commercio web e negozi fisici: calcolo rapido del prezzo di vendita applicando margini commerciali e aggiungendo l\'IVA.',
184
- 'Gestione delle risorse umane: determinazione del divario salariale, ritenute fiscali e aumenti di stipendio basati sull\'inflazione.',
185
- 'Istruzione universitaria: professori che livellano i voti o studenti di rami scientifici che analizzano la deviazione dei loro esperimenti.',
186
- 'Marketing digitale: misurazione del CTR (Click Through Rate), ROAS (Return on Ad Spend) o Conversion Rate nell\'eCommerce.',
187
- ],
188
- },
189
- ],
190
- ui: {
191
- labelTitle: 'Calcolatore di Percentuali',
192
- labelCase1Title: 'Caso 1',
193
- labelCase1Question: 'Quanto è l\'X% di Y?',
194
- labelCase1Placeholder1: 'X',
195
- labelCase1Placeholder2: 'Y',
196
- labelCase1Formula: 'Formula: (X / 100) × Y',
197
- labelCase2Title: 'Caso 2',
198
- labelCase2Question: 'Che percentuale è X di Y?',
199
- labelCase2Placeholder1: 'X',
200
- labelCase2Placeholder2: 'Y',
201
- labelCase2Formula: 'Formula: (X / Y) × 100',
202
- labelCase3Title: 'Caso 3',
203
- labelCase3Question: 'Differenza percentuale tra due valori',
204
- labelCase3Placeholder1: 'Valore 1',
205
- labelCase3Placeholder2: 'Valore 2',
206
- labelCase3Formula: 'Formula: ((Valore 2 - Valore 1) / |Valore 1|) × 100',
207
- labelCase4Title: 'Caso 4',
208
- labelCase4Question: 'Aggiungere o sottrarre percentuale a un valore',
209
- labelCase4Placeholder1: 'Valore',
210
- labelCase4Placeholder2: '%',
211
- labelCase4Formula: 'Formula: Valore ± (Valore × (% / 100))',
212
- labelCase4AddLabel: 'Somma (Valore + %)',
213
- labelCase4SubtractLabel: 'Sottrazione (Valore - %)',
214
- labelResult: 'Risultato',
215
- labelDifference: 'Differenza',
216
- labelCopyTooltip: 'Copia risultato',
217
- labelFormula: 'Formula',
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 = 'calcolatore-percentuali';
7
+ const title = 'Calcolatore di Percentuali 4 in 1: Sconti, Aumenti e Ribassi';
8
+ const description =
9
+ 'Calcola facilmente le percentuali online gratuitamente. 4 strumenti in 1 per estrarre l\'X% di Y, differenza percentuale, aggiungere o sottrarre l\'IVA, sconti e mance automatiche.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: 'Come funziona il calcolatore?',
14
+ answer:
15
+ 'Basta inserire i valori nelle caselle del caso d\'uso corrispondente al tuo problema e il nostro calcolatore elaborerà la formula senza dover premere alcun pulsante di calcolo.',
16
+ },
17
+ {
18
+ question: 'È valido per calcolare l\'IVA o le tasse?',
19
+ answer:
20
+ 'Sì, il blocco 4 ("Aggiungere o sottrarre percentuale") è progettato proprio per casi come l\'applicazione di un\'IVA al 22% su un prezzo base o il calcolo di una ritenuta d\'acconto.',
21
+ },
22
+ {
23
+ question: 'Gestisce numeri decimali e negativi?',
24
+ answer:
25
+ 'Certamente. Puoi inserire numeri decimali (usando il punto) e funzionerà anche con valori negativi se devi analizzare bilanci contabili in perdita.',
26
+ },
27
+ {
28
+ question: 'Posso copiare i risultati?',
29
+ answer:
30
+ 'Sì, ogni blocco ha un pulsante nel riquadro del risultato che copia istantaneamente la cifra negli appunti del tuo dispositivo per poterla incollare in un\'altra app o documento.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: 'Identifica il tuo problema matematico',
37
+ text: 'Leggi i titoli dei 4 blocchi e scegli quello che coincide con ciò che vuoi sapere (Es. Quanto è il 20% di 50? -> Blocco 1).',
38
+ },
39
+ {
40
+ name: 'Inserisci le cifre',
41
+ text: 'Compila i campi "X" e "Y". Non preoccuparti dell\'ordine, la frase di ogni blocco ti guida visivamente.',
42
+ },
43
+ {
44
+ name: 'Copia il risultato istantaneo',
45
+ text: 'La cifra apparirà in tempo real in basso mentre scrivi. Premi l\'icona di copia se desideri portarla altrove.',
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: 'it',
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: 'Calcolatore di Percentuali 4 in 1: Domina i Calcoli Rapidi',
96
+ level: 2,
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: 'A cosa serve un calcolatore di percentuali multiplo?',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Calcolare le percentuali è una delle operazioni matematiche più comuni nella nostra vita quotidiana. Dal calcolo dello sconto durante i saldi, alla conoscenza della mancia adeguata in un ristorante, fino alla determinazione del margine di profitto in un\'azienda o dell\'interesse di un prestito. Pur essendo operazioni quotidiane, non è sempre facile eseguirle a mente o ricordare la formula esatta.',
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Il nostro calcolatore di percentuali 4 in 1 raggruppa gli scenari più richiesti. Non hai più bisogno di cercare su Google "come calcolare il 20 per cento" o "formula per il calcolo della percentuale". Hai le quattro operazioni essenziali in un unico posto, in modo interattivo e con risultati istantanei.',
110
+ },
111
+ {
112
+ type: 'title',
113
+ text: 'Analisi dei 4 casi d\'uso più comuni',
114
+ level: 3,
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: 'Per semplificarti la vita, abbiamo separato lo strumento in quattro chiari blocchi visivi che risolvono i problemi reali che affrontiamo ogni giorno:',
119
+ },
120
+ {
121
+ type: 'card',
122
+ icon: 'mdi:percent',
123
+ title: '1. Quanto è l\'X% di Y?',
124
+ html: '<p><strong>Il caso classico.</strong> Utile per calcolare sconti o mance. Se vuoi sapere quanto è il 15% di 120€, questo è lo strumento che fa per te. La formula sottostante divide semplicemente la percentuale per 100 e la moltiplica per il valore totale.</p>',
125
+ },
126
+ {
127
+ type: 'card',
128
+ icon: 'mdi:division',
129
+ title: '2. Che percentuale è X di Y?',
130
+ html: '<p><strong>Ideale per le proporzioni.</strong> Se hai preso 45 punti in un esame da 60, che voto hai su 100? Questa funzione divide la parte per il totale e la moltiplica per cento, dandoti l\'esatto peso relativo.</p>',
131
+ },
132
+ {
133
+ type: 'card',
134
+ icon: 'mdi:chart-line-variant',
135
+ title: '3. Aumento o Diminuzione Percentuale',
136
+ html: '<p><strong>Perfetto per finanza e analisi.</strong> Di quanto è aumentato l\'affitto rispetto all\'anno scorso? Se prima pagavi 800€ e ora 840€, questa funzione ti dirà che hai subito un aumento del 5%. Misura la crescita o la decrescita tra due cifre.</p>',
137
+ },
138
+ {
139
+ type: 'card',
140
+ icon: 'mdi:calculator',
141
+ title: '4. Aggiungere o Sottrarre percentuale a un valore',
142
+ html: '<p><strong>Utilissimo per l\'IVA.</strong> Se hai un prezzo base (es. 100€) e devi aggiungere il 22% di IVA, questo calcolatore ti darà direttamente i 122€ finali senza dover fare operazioni intermedie. Allo stesso modo, serve per applicare uno sconto diretto (es. sottrarre il 20%).</p>',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Miti comuni sul calcolo delle percentuali',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Spesso ci blocchiamo di fronte a percentuali grandi o decimali, ma ci sono alcuni "trucchi" matematici che possono semplificarti la vita. Il più famoso è la <strong>reversibilità delle percentuali</strong>.',
152
+ },
153
+ {
154
+ type: 'tip',
155
+ title: 'Il trucco della reversibilità',
156
+ html: '<p>Sapevi che l\'X% di Y è esattamente uguale all\'Y% di X? Per esempio, se ti chiedono di calcolare il 18% di 50 a mente, può sembrare complicato. Ma se lo inverti, il 50% di 18 è molto facile: è 9! Questo vale per assolutamente qualsiasi numero ed è un incredibile salvavita nel quotidiano.</p>',
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Perché sbagliamo a calcolare le crescite',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'Uno degli errori più comuni si verifica nel caso 3: l\'aumento o la diminuzione percentuale. Immaginiamo che un\'azione in borsa costi 100€, scenda del 50% e il giorno dopo salga del 50%. L\'intuizione ci dice che torna a valere 100€, ma è sbagliato.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Se scende del 50% da 100€, il suo nuovo valore è 50€. Se da quei 50€ sale del 50%, l\'incremento è la metà di 50 (25€). Pertanto, il prezzo finale sarebbe 75€. Questo è un esempio classico del perché i rialzi e i ribassi percentuali non sono asimmetrici e perché i calcolatori dinamici come questo prevengono gravi errori finanziari.',
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: 'Uso professionale e accademico',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'paragraph',
178
+ html: 'La nostra interfaccia è priva di distrazioni e progettata per <strong>lavorare velocemente</strong>. Puoi tenerla in una scheda fissata del browser, passare rapidamente tra i vari campi e, grazie al pulsante di copia accanto al risultato, trasferire il dato esatto nel tuo Excel o Google Sheets senza rischio di errori di battitura.',
179
+ },
180
+ {
181
+ type: 'list',
182
+ items: [
183
+ 'Commercio web e negozi fisici: calcolo rapido del prezzo di vendita applicando margini commerciali e aggiungendo l\'IVA.',
184
+ 'Gestione delle risorse umane: determinazione del divario salariale, ritenute fiscali e aumenti di stipendio basati sull\'inflazione.',
185
+ 'Istruzione universitaria: professori che livellano i voti o studenti di rami scientifici che analizzano la deviazione dei loro esperimenti.',
186
+ 'Marketing digitale: misurazione del CTR (Click Through Rate), ROAS (Return on Ad Spend) o Conversion Rate nell\'eCommerce.',
187
+ ],
188
+ },
189
+ ],
190
+ ui: {
191
+ labelTitle: 'Calcolatore di Percentuali',
192
+ labelCase1Title: 'Caso 1',
193
+ labelCase1Question: 'Quanto è l\'X% di Y?',
194
+ labelCase1Placeholder1: 'X',
195
+ labelCase1Placeholder2: 'Y',
196
+ labelCase1Formula: 'Formula: (X / 100) × Y',
197
+ labelCase2Title: 'Caso 2',
198
+ labelCase2Question: 'Che percentuale è X di Y?',
199
+ labelCase2Placeholder1: 'X',
200
+ labelCase2Placeholder2: 'Y',
201
+ labelCase2Formula: 'Formula: (X / Y) × 100',
202
+ labelCase3Title: 'Caso 3',
203
+ labelCase3Question: 'Differenza percentuale tra due valori',
204
+ labelCase3Placeholder1: 'Valore 1',
205
+ labelCase3Placeholder2: 'Valore 2',
206
+ labelCase3Formula: 'Formula: ((Valore 2 - Valore 1) / |Valore 1|) × 100',
207
+ labelCase4Title: 'Caso 4',
208
+ labelCase4Question: 'Aggiungere o sottrarre percentuale a un valore',
209
+ labelCase4Placeholder1: 'Valore',
210
+ labelCase4Placeholder2: '%',
211
+ labelCase4Formula: 'Formula: Valore ± (Valore × (% / 100))',
212
+ labelCase4AddLabel: 'Somma (Valore + %)',
213
+ labelCase4SubtractLabel: 'Sottrazione (Valore - %)',
214
+ labelResult: 'Risultato',
215
+ labelDifference: 'Differenza',
216
+ labelCopyTooltip: 'Copia risultato',
217
+ labelFormula: 'Formula',
218
+ percentSymbol: '%',
219
+ },
220
+ };