@jjlmoya/utils-finance 1.4.0 → 1.7.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 (179) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +158 -0
  3. package/src/category/i18n/id.ts +158 -0
  4. package/src/category/i18n/it.ts +158 -0
  5. package/src/category/i18n/ja.ts +158 -0
  6. package/src/category/i18n/ko.ts +158 -0
  7. package/src/category/i18n/nl.ts +158 -0
  8. package/src/category/i18n/pl.ts +158 -0
  9. package/src/category/i18n/pt.ts +158 -0
  10. package/src/category/i18n/ru.ts +158 -0
  11. package/src/category/i18n/sv.ts +158 -0
  12. package/src/category/i18n/tr.ts +158 -0
  13. package/src/category/i18n/zh.ts +158 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/tests/category_validation.test.ts +73 -0
  16. package/src/tests/faq_count.test.ts +1 -1
  17. package/src/tests/i18n_coverage.test.ts +36 -0
  18. package/src/tests/locale_completeness.test.ts +3 -0
  19. package/src/tests/slug_language_code_format.test.ts +23 -0
  20. package/src/tests/slug_uniqueness.test.ts +81 -0
  21. package/src/tests/title_quality.test.ts +1 -1
  22. package/src/tool/compoundInterest/i18n/de.ts +208 -0
  23. package/src/tool/compoundInterest/i18n/id.ts +208 -0
  24. package/src/tool/compoundInterest/i18n/it.ts +208 -0
  25. package/src/tool/compoundInterest/i18n/ja.ts +207 -0
  26. package/src/tool/compoundInterest/i18n/ko.ts +207 -0
  27. package/src/tool/compoundInterest/i18n/nl.ts +208 -0
  28. package/src/tool/compoundInterest/i18n/pl.ts +208 -0
  29. package/src/tool/compoundInterest/i18n/pt.ts +208 -0
  30. package/src/tool/compoundInterest/i18n/ru.ts +208 -0
  31. package/src/tool/compoundInterest/i18n/sv.ts +208 -0
  32. package/src/tool/compoundInterest/i18n/tr.ts +208 -0
  33. package/src/tool/compoundInterest/i18n/zh.ts +202 -0
  34. package/src/tool/compoundInterest/index.ts +15 -7
  35. package/src/tool/courtFeeCalculator/i18n/de.ts +152 -0
  36. package/src/tool/courtFeeCalculator/i18n/fr.ts +1 -1
  37. package/src/tool/courtFeeCalculator/i18n/id.ts +152 -0
  38. package/src/tool/courtFeeCalculator/i18n/it.ts +152 -0
  39. package/src/tool/courtFeeCalculator/i18n/ja.ts +152 -0
  40. package/src/tool/courtFeeCalculator/i18n/ko.ts +152 -0
  41. package/src/tool/courtFeeCalculator/i18n/nl.ts +152 -0
  42. package/src/tool/courtFeeCalculator/i18n/pl.ts +152 -0
  43. package/src/tool/courtFeeCalculator/i18n/pt.ts +152 -0
  44. package/src/tool/courtFeeCalculator/i18n/ru.ts +152 -0
  45. package/src/tool/courtFeeCalculator/i18n/sv.ts +152 -0
  46. package/src/tool/courtFeeCalculator/i18n/tr.ts +152 -0
  47. package/src/tool/courtFeeCalculator/i18n/zh.ts +152 -0
  48. package/src/tool/courtFeeCalculator/index.ts +16 -8
  49. package/src/tool/debtSnowball/i18n/de.ts +160 -0
  50. package/src/tool/debtSnowball/i18n/id.ts +160 -0
  51. package/src/tool/debtSnowball/i18n/it.ts +160 -0
  52. package/src/tool/debtSnowball/i18n/ja.ts +157 -0
  53. package/src/tool/debtSnowball/i18n/ko.ts +160 -0
  54. package/src/tool/debtSnowball/i18n/nl.ts +160 -0
  55. package/src/tool/debtSnowball/i18n/pl.ts +160 -0
  56. package/src/tool/debtSnowball/i18n/pt.ts +160 -0
  57. package/src/tool/debtSnowball/i18n/ru.ts +160 -0
  58. package/src/tool/debtSnowball/i18n/sv.ts +160 -0
  59. package/src/tool/debtSnowball/i18n/tr.ts +160 -0
  60. package/src/tool/debtSnowball/i18n/zh.ts +160 -0
  61. package/src/tool/debtSnowball/index.ts +17 -9
  62. package/src/tool/fireCalculator/i18n/de.ts +261 -0
  63. package/src/tool/fireCalculator/i18n/id.ts +261 -0
  64. package/src/tool/fireCalculator/i18n/it.ts +261 -0
  65. package/src/tool/fireCalculator/i18n/ja.ts +261 -0
  66. package/src/tool/fireCalculator/i18n/ko.ts +261 -0
  67. package/src/tool/fireCalculator/i18n/nl.ts +261 -0
  68. package/src/tool/fireCalculator/i18n/pl.ts +261 -0
  69. package/src/tool/fireCalculator/i18n/pt.ts +261 -0
  70. package/src/tool/fireCalculator/i18n/ru.ts +261 -0
  71. package/src/tool/fireCalculator/i18n/sv.ts +261 -0
  72. package/src/tool/fireCalculator/i18n/tr.ts +261 -0
  73. package/src/tool/fireCalculator/i18n/zh.ts +261 -0
  74. package/src/tool/fireCalculator/index.ts +15 -7
  75. package/src/tool/ibanBicSwiftConverter/i18n/de.ts +128 -0
  76. package/src/tool/ibanBicSwiftConverter/i18n/id.ts +128 -0
  77. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +128 -0
  78. package/src/tool/ibanBicSwiftConverter/i18n/ja.ts +128 -0
  79. package/src/tool/ibanBicSwiftConverter/i18n/ko.ts +128 -0
  80. package/src/tool/ibanBicSwiftConverter/i18n/nl.ts +128 -0
  81. package/src/tool/ibanBicSwiftConverter/i18n/pl.ts +128 -0
  82. package/src/tool/ibanBicSwiftConverter/i18n/pt.ts +128 -0
  83. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +128 -0
  84. package/src/tool/ibanBicSwiftConverter/i18n/sv.ts +128 -0
  85. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +128 -0
  86. package/src/tool/ibanBicSwiftConverter/i18n/zh.ts +128 -0
  87. package/src/tool/ibanBicSwiftConverter/index.ts +15 -7
  88. package/src/tool/inflation/i18n/de.ts +297 -0
  89. package/src/tool/inflation/i18n/id.ts +297 -0
  90. package/src/tool/inflation/i18n/it.ts +297 -0
  91. package/src/tool/inflation/i18n/ja.ts +297 -0
  92. package/src/tool/inflation/i18n/ko.ts +297 -0
  93. package/src/tool/inflation/i18n/nl.ts +297 -0
  94. package/src/tool/inflation/i18n/pl.ts +297 -0
  95. package/src/tool/inflation/i18n/pt.ts +297 -0
  96. package/src/tool/inflation/i18n/ru.ts +297 -0
  97. package/src/tool/inflation/i18n/sv.ts +297 -0
  98. package/src/tool/inflation/i18n/tr.ts +297 -0
  99. package/src/tool/inflation/i18n/zh.ts +297 -0
  100. package/src/tool/inflation/index.ts +17 -9
  101. package/src/tool/lateInterest/i18n/de.ts +224 -0
  102. package/src/tool/lateInterest/i18n/id.ts +224 -0
  103. package/src/tool/lateInterest/i18n/it.ts +224 -0
  104. package/src/tool/lateInterest/i18n/ja.ts +224 -0
  105. package/src/tool/lateInterest/i18n/ko.ts +224 -0
  106. package/src/tool/lateInterest/i18n/nl.ts +224 -0
  107. package/src/tool/lateInterest/i18n/pl.ts +224 -0
  108. package/src/tool/lateInterest/i18n/pt.ts +224 -0
  109. package/src/tool/lateInterest/i18n/ru.ts +224 -0
  110. package/src/tool/lateInterest/i18n/sv.ts +224 -0
  111. package/src/tool/lateInterest/i18n/tr.ts +224 -0
  112. package/src/tool/lateInterest/i18n/zh.ts +224 -0
  113. package/src/tool/lateInterest/index.ts +17 -9
  114. package/src/tool/legalInterestRate/i18n/de.ts +143 -0
  115. package/src/tool/legalInterestRate/i18n/id.ts +143 -0
  116. package/src/tool/legalInterestRate/i18n/it.ts +143 -0
  117. package/src/tool/legalInterestRate/i18n/ja.ts +143 -0
  118. package/src/tool/legalInterestRate/i18n/ko.ts +143 -0
  119. package/src/tool/legalInterestRate/i18n/nl.ts +143 -0
  120. package/src/tool/legalInterestRate/i18n/pl.ts +143 -0
  121. package/src/tool/legalInterestRate/i18n/pt.ts +143 -0
  122. package/src/tool/legalInterestRate/i18n/ru.ts +143 -0
  123. package/src/tool/legalInterestRate/i18n/sv.ts +143 -0
  124. package/src/tool/legalInterestRate/i18n/tr.ts +143 -0
  125. package/src/tool/legalInterestRate/i18n/zh.ts +143 -0
  126. package/src/tool/legalInterestRate/index.ts +17 -9
  127. package/src/tool/lotteryOptimizer/i18n/de.ts +177 -0
  128. package/src/tool/lotteryOptimizer/i18n/id.ts +177 -0
  129. package/src/tool/lotteryOptimizer/i18n/it.ts +177 -0
  130. package/src/tool/lotteryOptimizer/i18n/ja.ts +177 -0
  131. package/src/tool/lotteryOptimizer/i18n/ko.ts +177 -0
  132. package/src/tool/lotteryOptimizer/i18n/nl.ts +177 -0
  133. package/src/tool/lotteryOptimizer/i18n/pl.ts +177 -0
  134. package/src/tool/lotteryOptimizer/i18n/pt.ts +177 -0
  135. package/src/tool/lotteryOptimizer/i18n/ru.ts +177 -0
  136. package/src/tool/lotteryOptimizer/i18n/sv.ts +177 -0
  137. package/src/tool/lotteryOptimizer/i18n/tr.ts +177 -0
  138. package/src/tool/lotteryOptimizer/i18n/zh.ts +177 -0
  139. package/src/tool/lotteryOptimizer/index.ts +17 -9
  140. package/src/tool/mortgage/i18n/de.ts +223 -0
  141. package/src/tool/mortgage/i18n/id.ts +219 -0
  142. package/src/tool/mortgage/i18n/it.ts +223 -0
  143. package/src/tool/mortgage/i18n/ja.ts +219 -0
  144. package/src/tool/mortgage/i18n/ko.ts +219 -0
  145. package/src/tool/mortgage/i18n/nl.ts +219 -0
  146. package/src/tool/mortgage/i18n/pl.ts +219 -0
  147. package/src/tool/mortgage/i18n/pt.ts +219 -0
  148. package/src/tool/mortgage/i18n/ru.ts +219 -0
  149. package/src/tool/mortgage/i18n/sv.ts +219 -0
  150. package/src/tool/mortgage/i18n/tr.ts +219 -0
  151. package/src/tool/mortgage/i18n/zh.ts +219 -0
  152. package/src/tool/mortgage/index.ts +15 -7
  153. package/src/tool/percentageCalculator/i18n/de.ts +229 -0
  154. package/src/tool/percentageCalculator/i18n/id.ts +229 -0
  155. package/src/tool/percentageCalculator/i18n/it.ts +229 -0
  156. package/src/tool/percentageCalculator/i18n/ja.ts +229 -0
  157. package/src/tool/percentageCalculator/i18n/ko.ts +229 -0
  158. package/src/tool/percentageCalculator/i18n/nl.ts +229 -0
  159. package/src/tool/percentageCalculator/i18n/pl.ts +229 -0
  160. package/src/tool/percentageCalculator/i18n/pt.ts +229 -0
  161. package/src/tool/percentageCalculator/i18n/ru.ts +229 -0
  162. package/src/tool/percentageCalculator/i18n/sv.ts +229 -0
  163. package/src/tool/percentageCalculator/i18n/tr.ts +229 -0
  164. package/src/tool/percentageCalculator/i18n/zh.ts +229 -0
  165. package/src/tool/percentageCalculator/index.ts +15 -7
  166. package/src/tool/rentIncreaseCalculator/i18n/de.ts +136 -0
  167. package/src/tool/rentIncreaseCalculator/i18n/id.ts +136 -0
  168. package/src/tool/rentIncreaseCalculator/i18n/it.ts +136 -0
  169. package/src/tool/rentIncreaseCalculator/i18n/ja.ts +136 -0
  170. package/src/tool/rentIncreaseCalculator/i18n/ko.ts +136 -0
  171. package/src/tool/rentIncreaseCalculator/i18n/nl.ts +136 -0
  172. package/src/tool/rentIncreaseCalculator/i18n/pl.ts +136 -0
  173. package/src/tool/rentIncreaseCalculator/i18n/pt.ts +136 -0
  174. package/src/tool/rentIncreaseCalculator/i18n/ru.ts +136 -0
  175. package/src/tool/rentIncreaseCalculator/i18n/sv.ts +136 -0
  176. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +136 -0
  177. package/src/tool/rentIncreaseCalculator/i18n/zh.ts +136 -0
  178. package/src/tool/rentIncreaseCalculator/index.ts +17 -9
  179. package/src/types.ts +1 -1
@@ -0,0 +1,229 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PercentageCalculatorUI } from '../ui';
4
+
5
+ const slug = 'calcolatore-percentuali';
6
+ const title = 'Calcolatore di Percentuali 4 in 1: Sconti, Aumenti e Ribassi';
7
+ const description =
8
+ '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.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Come funziona il calcolatore?',
13
+ answer:
14
+ '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.',
15
+ },
16
+ {
17
+ question: 'È valido per calcolare l’IVA o le tasse?',
18
+ answer:
19
+ '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.',
20
+ },
21
+ {
22
+ question: 'Gestisce numeri decimali e negativi?',
23
+ answer:
24
+ 'Certamente. Puoi inserire numeri decimali (usando il punto) e funzionerà anche con valori negativi se devi analizzare bilanci contabili in perdita.',
25
+ },
26
+ {
27
+ question: 'Posso copiare i risultati?',
28
+ answer:
29
+ '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.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Identifica il tuo problema matematico',
36
+ 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).',
37
+ },
38
+ {
39
+ name: 'Inserisci le cifre',
40
+ text: 'Compila i campi „X” e „Y”. Non preoccuparti dell’ordine, la frase di ogni blocco ti guida visivamente.',
41
+ },
42
+ {
43
+ name: 'Copia il risultato istantaneo',
44
+ text: 'La cifra apparirà in tempo real in basso mentre scrivi. Premi l’icona di copia se desideri portarla altrove.',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowTo> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'FinanceApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
79
+ inLanguage: 'it',
80
+ };
81
+
82
+ export const content: ToolLocaleContent<PercentageCalculatorUI> = {
83
+ slug,
84
+ title,
85
+ description,
86
+ faqTitle: 'Domande Frequenti',
87
+ faq: faqData,
88
+ bibliographyTitle: 'Fonti e Riferimenti',
89
+ bibliography: [
90
+ {
91
+ name: 'Calcolo di Percentuali - Wikipedia',
92
+ url: 'https://it.wikipedia.org/wiki/Percentuale',
93
+ },
94
+ {
95
+ name: 'Concetti Matematici di Base - Khan Academy',
96
+ url: 'https://it.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-percents/v/describing-the-meaning-of-percent',
97
+ },
98
+ ],
99
+ howTo: howToData,
100
+ schemas: [faqSchema, howToSchema, appSchema],
101
+ seo: [
102
+ {
103
+ type: 'title',
104
+ text: 'Calcolatore di Percentuali 4 in 1: Domina i Calcoli Rapidi',
105
+ level: 2,
106
+ },
107
+ {
108
+ type: 'title',
109
+ text: 'A cosa serve un calcolatore di percentuali multiplo?',
110
+ level: 3,
111
+ },
112
+ {
113
+ type: 'paragraph',
114
+ 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.',
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ 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.',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: 'Analisi dei 4 casi d’uso più comuni',
123
+ level: 3,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: 'Per semplificarti la vita, abbiamo separato lo strumento in quattro chiari blocchi visivi che risolvono i problemi reali che affrontiamo ogni giorno:',
128
+ },
129
+ {
130
+ type: 'card',
131
+ icon: 'mdi:percent',
132
+ title: '1. Quanto è l’X% di Y?',
133
+ 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>',
134
+ },
135
+ {
136
+ type: 'card',
137
+ icon: 'mdi:division',
138
+ title: '2. Che percentuale è X di Y?',
139
+ 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>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ icon: 'mdi:chart-line-variant',
144
+ title: '3. Aumento o Diminuzione Percentuale',
145
+ 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>',
146
+ },
147
+ {
148
+ type: 'card',
149
+ icon: 'mdi:calculator',
150
+ title: '4. Aggiungere o Sottrarre percentuale a un valore',
151
+ 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>',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'Miti comuni sul calcolo delle percentuali',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ 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>.',
161
+ },
162
+ {
163
+ type: 'tip',
164
+ title: 'Il trucco della reversibilità',
165
+ 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>',
166
+ },
167
+ {
168
+ type: 'title',
169
+ text: 'Perché sbagliamo a calcolare le crescite',
170
+ level: 3,
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ 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.',
175
+ },
176
+ {
177
+ type: 'paragraph',
178
+ 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.',
179
+ },
180
+ {
181
+ type: 'title',
182
+ text: 'Uso professionale e accademico',
183
+ level: 3,
184
+ },
185
+ {
186
+ type: 'paragraph',
187
+ 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.',
188
+ },
189
+ {
190
+ type: 'list',
191
+ items: [
192
+ 'Commercio web e negozi fisici: calcolo rapido del prezzo di vendita applicando margini commerciali e aggiungendo l’IVA.',
193
+ 'Gestione delle risorse umane: determinazione del divario salariale, ritenute fiscali e aumenti di stipendio basati sull’inflazione.',
194
+ 'Istruzione universitaria: professori che livellano i voti o studenti di rami scientifici che analizzano la deviazione dei loro esperimenti.',
195
+ 'Marketing digitale: misurazione del CTR (Click Through Rate), ROAS (Return on Ad Spend) o Conversion Rate nell’eCommerce.',
196
+ ],
197
+ },
198
+ ],
199
+ ui: {
200
+ labelTitle: 'Calcolatore di Percentuali',
201
+ labelCase1Title: 'Caso 1',
202
+ labelCase1Question: 'Quanto è l’X% di Y?',
203
+ labelCase1Placeholder1: 'X',
204
+ labelCase1Placeholder2: 'Y',
205
+ labelCase1Formula: 'Formula: (X / 100) × Y',
206
+ labelCase2Title: 'Caso 2',
207
+ labelCase2Question: 'Che percentuale è X di Y?',
208
+ labelCase2Placeholder1: 'X',
209
+ labelCase2Placeholder2: 'Y',
210
+ labelCase2Formula: 'Formula: (X / Y) × 100',
211
+ labelCase3Title: 'Caso 3',
212
+ labelCase3Question: 'Differenza percentuale tra due valori',
213
+ labelCase3Placeholder1: 'Valore 1',
214
+ labelCase3Placeholder2: 'Valore 2',
215
+ labelCase3Formula: 'Formula: ((Valore 2 - Valore 1) / |Valore 1|) × 100',
216
+ labelCase4Title: 'Caso 4',
217
+ labelCase4Question: 'Aggiungere o sottrarre percentuale a un valore',
218
+ labelCase4Placeholder1: 'Valore',
219
+ labelCase4Placeholder2: '%',
220
+ labelCase4Formula: 'Formula: Valore ± (Valore × (% / 100))',
221
+ labelCase4AddLabel: 'Somma (Valore + %)',
222
+ labelCase4SubtractLabel: 'Sottrazione (Valore - %)',
223
+ labelResult: 'Risultato',
224
+ labelDifference: 'Differenza',
225
+ labelCopyTooltip: 'Copia risultato',
226
+ labelFormula: 'Formula',
227
+ percentSymbol: '%',
228
+ },
229
+ };
@@ -0,0 +1,229 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { PercentageCalculatorUI } from '../ui';
4
+
5
+ const slug = 'percentage-calculator';
6
+ const title = '4 in 1 パーセント計算機:割引・値上げ・値下げ';
7
+ const description =
8
+ 'オンラインで簡単にパーセント計算を無料で行えます。XのY%、パーセントの差、消費税の加算・減算、バーゲンセール、チップ計算など、4つのツールが1つに。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'この計算機はどのように使いますか?',
13
+ answer:
14
+ '問題に対応するユースケースの入力欄に数値を入力するだけです。計算ボタンを押す必要はなく、リアルタイムで数式が処理されます。',
15
+ },
16
+ {
17
+ question: '消費税や税金の計算に使えますか?',
18
+ answer:
19
+ 'はい、ブロック4(「値にパーセントを加算または減算する」)は、本体価格に消費税を適用したり、源泉徴収税を計算したりする場合に最適です。',
20
+ },
21
+ {
22
+ question: '小数や負の数は扱えますか?',
23
+ answer:
24
+ 'もちろんです。小数は「 . 」(ピリオド)を使って入力できます。また、損失を含む会計収支を分析する場合など、負の値も入力可能です。',
25
+ },
26
+ {
27
+ question: '結果をコピーできますか?',
28
+ answer:
29
+ 'はい、各ブロックの結果欄にあるボタンを押すと、数値を即座にクリップボードにコピーできます。他のアプリや書類に簡単に貼り付けられます。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '数学的な問題を特定する',
36
+ text: '4つのブロックのタイトルを確認し、知りたいことに一致するものを選択します(例:50の20%はいくら? → ブロック1)。',
37
+ },
38
+ {
39
+ name: '数値を入力する',
40
+ text: '「X」と「Y」の欄を埋めます。順序を気にする必要はありません。各ブロックの説明が視覚的にガイドします。',
41
+ },
42
+ {
43
+ name: '即座に表示される結果をコピーする',
44
+ text: '入力するのと同時に、リアルタイムで結果が表示されます。コピーアイコンを押して、数値を活用しましょう。',
45
+ },
46
+ ];
47
+
48
+ const faqSchema: WithContext<FAQPage> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'FAQPage',
51
+ mainEntity: faqData.map((item) => ({
52
+ '@type': 'Question',
53
+ name: item.question,
54
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
55
+ })),
56
+ };
57
+
58
+ const howToSchema: WithContext<HowTo> = {
59
+ '@context': 'https://schema.org',
60
+ '@type': 'HowTo',
61
+ name: title,
62
+ description,
63
+ step: howToData.map((step, i) => ({
64
+ '@type': 'HowToStep',
65
+ position: i + 1,
66
+ name: step.name,
67
+ text: step.text,
68
+ })),
69
+ };
70
+
71
+ const appSchema: WithContext<SoftwareApplication> = {
72
+ '@context': 'https://schema.org',
73
+ '@type': 'SoftwareApplication',
74
+ name: title,
75
+ description,
76
+ applicationCategory: 'FinanceApplication',
77
+ operatingSystem: 'All',
78
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' },
79
+ inLanguage: 'ja',
80
+ };
81
+
82
+ export const content: ToolLocaleContent<PercentageCalculatorUI> = {
83
+ slug,
84
+ title,
85
+ description,
86
+ faqTitle: 'よくある質問',
87
+ faq: faqData,
88
+ bibliographyTitle: '情報源とリファレンス',
89
+ bibliography: [
90
+ {
91
+ name: 'パーセントの計算 - Wikipedia',
92
+ url: 'https://ja.wikipedia.org/wiki/パーセント',
93
+ },
94
+ {
95
+ name: '基本的な数学の概念 - Khan Academy',
96
+ url: 'https://ja.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-percents/v/describing-the-meaning-of-percent',
97
+ },
98
+ ],
99
+ howTo: howToData,
100
+ schemas: [faqSchema, howToSchema, appSchema],
101
+ seo: [
102
+ {
103
+ type: 'title',
104
+ text: '4 in 1 パーセント計算機:素早い計算をマスターする',
105
+ level: 2,
106
+ },
107
+ {
108
+ type: 'title',
109
+ text: '複合パーセント計算機は何に役立ちますか?',
110
+ level: 3,
111
+ },
112
+ {
113
+ type: 'paragraph',
114
+ html: 'パーセント計算は、私たちの日常生活で最も一般的な数学的操作の1つです。セールの割引額の計算、レストランでの適切なチップの把握から、ビジネスでの利益率やローンの利息の決定まで。日常的な操作であるにもかかわらず、暗算したり正確な数式を思い出したりするのは必ずしも簡単ではありません。',
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: '当社の4-in-1パーセント計算機は、最も需要の高いシナリオをグループ化しています。もはやGoogleで「20パーセントの出し方」や「パーセント計算の公式」を検索する必要はありません。4つの必須操作が1か所にまとまっており、インタラクティブで即座に結果が得られます。',
119
+ },
120
+ {
121
+ type: 'title',
122
+ text: '4つの最も一般的なユースケースの確認',
123
+ level: 3,
124
+ },
125
+ {
126
+ type: 'paragraph',
127
+ html: '利便性を高めるために、ツールを4つの明確な視覚的ブロックに分割し、毎日直面する現実の問題を解決できるようにしました。',
128
+ },
129
+ {
130
+ type: 'card',
131
+ icon: 'mdi:percent',
132
+ title: '1. YのX%はいくらですか?',
133
+ html: '<p><strong>最も標準的なケースです。</strong> 割引やチップの計算に便利です。12,000円の15%を知りたい場合はこのツールを使います。数式は単純にパーセンテージを100で割り、合計値に掛けます。</p>',
134
+ },
135
+ {
136
+ type: 'card',
137
+ icon: 'mdi:division',
138
+ title: '2. XはYの何パーセントですか?',
139
+ html: '<p><strong>割合を知りたい場合に最適です。</strong> 60点満点の試験で45点取った場合、100点満点では何点になりますか?この機能は部分を全体で割り、100を掛けることで正確な相対的比率を算出します。</p>',
140
+ },
141
+ {
142
+ type: 'card',
143
+ icon: 'mdi:chart-line-variant',
144
+ title: '3. パーセンテージの増加または減少',
145
+ html: '<p><strong>財務や分析に最適です。</strong> 昨年から家賃はどれくらい上がりましたか?以前は80,000円で現在は84,000円だった場合、この機能は5%増加したことを教えてくれます。2つの数値間の成長または減少を測定します。</p>',
146
+ },
147
+ {
148
+ type: 'card',
149
+ icon: 'mdi:calculator',
150
+ title: '4. 値にパーセントを加算または減算する',
151
+ html: '<p><strong>消費税計算に非常に便利です。</strong> 本体価格(例:10,000円)に10%の消費税を加える必要がある場合、この計算機は中間的な操作をすることなく直接最終価格の11,000円を表示します。同様に、直接的な割引(例:20%を引く)を適用する際にも使えます。</p>',
152
+ },
153
+ {
154
+ type: 'title',
155
+ text: 'パーセント計算に関する一般的な誤解',
156
+ level: 3,
157
+ },
158
+ {
159
+ type: 'paragraph',
160
+ html: '大きなパーセンテージや小数を見ると戸惑うことがよくありますが、生活を楽にしてくれるいくつかの数学的な「コツ」があります。最も有名なのは、<strong>パーセントの可逆性</strong>です。',
161
+ },
162
+ {
163
+ type: 'tip',
164
+ title: '可逆性のコツ',
165
+ html: '<p>「YのX%」は「XのY%」と全く同じであることを知っていましたか?例えば、50の18%を暗算で出そうとすると難しく感じるかもしれません。しかし、逆にしてみると「18の50%」となり、とても簡単に「9」だとわかります!これは絶対にどんな数字にも当てはまり、日常生活において驚くほど役立つライフハックです。</p>',
166
+ },
167
+ {
168
+ type: 'title',
169
+ text: '成長率の計算で間違いやすい理由',
170
+ level: 3,
171
+ },
172
+ {
173
+ type: 'paragraph',
174
+ html: '最も多い間違いの1つはケース3、つまりパーセンテージの増加または減少で起こります。株価が10,000円で、50%下落し、翌日に50%上昇したと想像してみてください。直感的には10,000円に戻る気がしますが、それは間違いです。',
175
+ },
176
+ {
177
+ type: 'paragraph',
178
+ html: '10,000円から50%下がると、新しい価格は5,000円になります。その5,000円から50%上がると、上昇分は5,000円の半分(2,500円)です。したがって、最終的な価格は7,500円になります。パーセントの上昇と下落は非対称であり、このような動的な計算機が重大な財務的エラーを防ぐ古典的な例です。',
179
+ },
180
+ {
181
+ type: 'title',
182
+ text: '業務および学術用途',
183
+ level: 3,
184
+ },
185
+ {
186
+ type: 'paragraph',
187
+ html: '当社のインターフェースは余計なものを削ぎ落とし、<strong>素早い作業</strong>ができるよう設計されています。ブラウザのタブにピン留めしておけば、各入力欄をスムーズに移動でき、結果の横にあるコピーボタンのおかげで、入力ミスのリスクなくExcelやGoogleスプレッドシートに正確なデータを転送できます。',
188
+ },
189
+ {
190
+ type: 'list',
191
+ items: [
192
+ 'ECサイトや実店舗:販売利益率を適用し、消費税を加算した販売価格の迅速な計算。',
193
+ '人事管理:賃金格差の決定、源泉徴収税、CPI(消費者物価指数)に紐づいた昇給の算出。',
194
+ '大学教育:点数の傾斜配分を行う教員や、実験データの偏差を分析する理系学生。',
195
+ 'デジタルマーケティング:ECサイトにおけるCTR(クリック率)、ROAS(広告費回収率)、またはコンバージョン率の測定。',
196
+ ],
197
+ },
198
+ ],
199
+ ui: {
200
+ labelTitle: 'パーセント計算機',
201
+ labelCase1Title: 'ケース 1',
202
+ labelCase1Question: 'YのX%はいくらですか?',
203
+ labelCase1Placeholder1: 'X',
204
+ labelCase1Placeholder2: 'Y',
205
+ labelCase1Formula: '公式: (X / 100) × Y',
206
+ labelCase2Title: 'ケース 2',
207
+ labelCase2Question: 'XはYの何パーセントですか?',
208
+ labelCase2Placeholder1: 'X',
209
+ labelCase2Placeholder2: 'Y',
210
+ labelCase2Formula: '公式: (X / Y) × 100',
211
+ labelCase3Title: 'ケース 3',
212
+ labelCase3Question: '2つの値のパーセント差',
213
+ labelCase3Placeholder1: '値 1',
214
+ labelCase3Placeholder2: '値 2',
215
+ labelCase3Formula: '公式: ((値 2 - 値 1) / |値 1|) × 100',
216
+ labelCase4Title: 'ケース 4',
217
+ labelCase4Question: '値にパーセントを加算または減算する',
218
+ labelCase4Placeholder1: '値',
219
+ labelCase4Placeholder2: '%',
220
+ labelCase4Formula: '公式: 値 ± (値 × (% / 100))',
221
+ labelCase4AddLabel: '加算 (値 + %)',
222
+ labelCase4SubtractLabel: '減算 (値 - %)',
223
+ labelResult: '結果',
224
+ labelDifference: '差',
225
+ labelCopyTooltip: '結果をコピー',
226
+ labelFormula: '公式',
227
+ percentSymbol: '%',
228
+ },
229
+ };