@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,208 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CompoundInterestUI } from '../ui';
4
+
5
+ const slug = 'bunga-majemuk';
6
+ const title = 'Kalkulator Bunga Majemuk: Visualisasikan Kekayaan Masa Depan Anda';
7
+ const description =
8
+ 'Temukan bagaimana investasi kecil dapat berubah menjadi kekayaan besar. Alat utama untuk merencanakan kebebasan finansial dan masa pensiun Anda.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Apa itu bunga majemuk?',
13
+ answer:
14
+ 'Ini adalah bunga yang dihitung berdasarkan modal awal dan juga akumulasi bunga dari periode sebelumnya. Hal ini menghasilkan pertumbuhan investasi yang eksponensial seiring berjalannya waktu.',
15
+ },
16
+ {
17
+ question: 'Apa perbedaan dengan bunga tunggal?',
18
+ answer:
19
+ 'Pada bunga tunggal, bunga hanya dihitung dari modal awal. Pada bunga majemuk, bunga diinvestasikan kembali, yang berarti "bunga Anda menghasilkan lebih banyak bunga".',
20
+ },
21
+ {
22
+ question: 'Apa itu "Aturan 72"?',
23
+ answer:
24
+ 'Ini adalah rumus cepat untuk memperkirakan berapa lama waktu yang dibutuhkan agar investasi menjadi dua kali lipat: bagi 72 dengan tingkat pengembalian tahunan. Misalnya, pada bunga 8% per tahun, Anda akan melipatgandakan uang Anda dalam 9 tahun.',
25
+ },
26
+ {
27
+ question: 'Mengapa penting untuk mulai berinvestasi sejak muda?',
28
+ answer:
29
+ 'Karena efek eksponensial, faktor yang paling menentukan bukanlah jumlah uang yang ditabung, melainkan waktu. Memulai beberapa tahun lebih awal dapat menghasilkan kekayaan akhir yang jauh lebih besar karena kapitalisasi.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Masukkan modal awal',
36
+ text: 'Tuliskan jumlah uang yang akan Anda gunakan untuk memulai rencana investasi Anda.',
37
+ },
38
+ {
39
+ name: 'Tentukan kontribusi berkala',
40
+ text: 'Tunjukkan berapa banyak uang yang akan Anda tabung dan investasikan setiap bulan atau setiap tahun sebagai tambahan.',
41
+ },
42
+ {
43
+ name: 'Perkirakan imbal hasil tahunan',
44
+ text: 'Masukkan persentase keuntungan tahunan yang Anda harapkan (misal: 7% untuk historis S&P 500).',
45
+ },
46
+ {
47
+ name: 'Sesuaikan cakrawala waktu',
48
+ text: 'Pilih berapa tahun Anda akan mempertahankan investasi untuk memvisualisasikan pertumbuhan eksponensial modal Anda.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'FinanceApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'IDR' },
83
+ inLanguage: 'id',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Pertanyaan Umum',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Sumber dan Referensi',
93
+ bibliography: [
94
+ {
95
+ name: 'Investopedia: Compound Interest Definition',
96
+ url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
+ },
98
+ {
99
+ name: 'Investopedia: Rule of 72',
100
+ url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
+ },
102
+ {
103
+ name: 'Khan Academy: Bunga dan Hutang',
104
+ url: 'https://id.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
+ },
106
+ ],
107
+ howTo: howToData,
108
+ schemas: [faqSchema, howToSchema, appSchema],
109
+ seo: [
110
+ {
111
+ type: 'title',
112
+ text: 'Keajaiban Bunga Majemuk: Bangun Kekayaan Anda Secara Eksponensial',
113
+ level: 2,
114
+ },
115
+ {
116
+ type: 'paragraph',
117
+ html: 'Albert Einstein menyebutnya sebagai "keajaiban dunia kedelapan". <strong>Bunga majemuk</strong> adalah mekanisme paling kuat untuk menghasilkan kekayaan jangka panjang. Anda tidak perlu menjadi ahli keuangan untuk memanfaatkannya: Anda hanya butuh waktu, kesabaran, dan uang yang diinvestasikan.',
118
+ },
119
+ {
120
+ type: 'title',
121
+ text: 'Bunga Tunggal vs Majemuk: Metafora Bola Salju',
122
+ level: 3,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'Bayangkan Anda memiliki bola salju di atas bukit. <strong>Bunga tunggal</strong> seperti mendorong bola itu ke bawah dan harus menambahkan salju secara manual setiap meternya agar besar. <strong>Bunga majemuk</strong> seperti membiarkan bola itu menggelinding sendiri: ia mengumpulkan salju dengan sendirinya, dan semakin besar ia tumbuh, semakin banyak permukaan yang dimilikinya untuk mengumpulkan <em>bahkan lebih banyak</em> salju di setiap putaran.',
127
+ },
128
+ {
129
+ type: 'comparative',
130
+ columns: 2,
131
+ items: [
132
+ {
133
+ title: 'Bunga Tunggal',
134
+ description: 'Bunga selalu dihitung berdasarkan modal awal saja.',
135
+ points: [
136
+ 'Rumus: Modal × Tingkat × Waktu',
137
+ 'Pertumbuhan linier dan terprediksi',
138
+ 'Digunakan dalam pinjaman jangka pendek',
139
+ 'Tanpa reinvestasi keuntungan',
140
+ ],
141
+ },
142
+ {
143
+ title: 'Bunga Majemuk',
144
+ description: 'Bunga ditambahkan ke modal dan menghasilkan bunga baru.',
145
+ highlight: true,
146
+ points: [
147
+ 'Rumus: Modal × (1 + Tingkat)^Waktu',
148
+ 'Pertumbuhan eksponensial yang dipercepat',
149
+ 'Dasar dari semua investasi jangka panjang',
150
+ 'Keuntungan Anda menghasilkan lebih banyak keuntungan',
151
+ ],
152
+ },
153
+ ],
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'Secara matematis, keuntungan Anda menghasilkan keuntungan baru. Di tahun-tahun awal tampaknya lambat, tetapi setelah melewati "titik balik", kurva akan melonjak secara vertikal. Di sinilah kekayaan sejati tercipta.',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Mengapa waktu adalah sekutu terbesar Anda?',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Faktor yang paling menentukan bukanlah jumlah uang yang Anda investasikan, melainkan <strong>berapa tahun Anda membiarkannya tumbuh</strong>. Memulai 10 tahun lebih awal dapat menghasilkan kekayaan akhir 2 atau 3 kali lipat lebih besar, bahkan jika Anda menginvestasikan total uang yang lebih sedikit. Efek eksponensial ini adalah alasan mengapa investor muda memiliki keuntungan yang tidak tertandingi.',
167
+ },
168
+ {
169
+ type: 'tip',
170
+ title: 'Aturan 72',
171
+ html: '<p>Bagi 72 dengan imbal hasil tahunan Anda untuk mengetahui berapa tahun yang dibutuhkan untuk <strong>melipatgandakan uang Anda</strong>.</p><p><em>Contoh: Pada bunga 8%, Anda melipatgandakannya setiap 9 tahun (72/8 = 9).</em></p><p>Rumus ajaib ini berlaku untuk tingkat pengembalian berapa pun dan membantu Anda memperkirakan pertumbuhan investasi Anda dengan cepat.</p>',
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: 'Saran 2026',
176
+ html: '<p>Inflasi tetap menjadi faktor. Pastikan imbal hasil bersih Anda melebihi setidaknya 2-3% per tahun agar tidak kehilangan daya beli. Investasikan pada aset yang tumbuh lebih cepat daripada inflasi.</p>',
177
+ },
178
+ {
179
+ type: 'title',
180
+ text: 'Frekuensi Kapitalisasi: Apakah Berpengaruh?',
181
+ level: 3,
182
+ },
183
+ {
184
+ type: 'paragraph',
185
+ html: 'Bunga dapat dikapitalisasi secara tahunan, semesteran, triwulanan, bulanan, atau bahkan harian. Semakin <strong>sering kapitalisasi dilakukan</strong>, semakin besar efek majemuknya. Modal yang sama dengan tingkat yang sama akan tumbuh lebih besar jika bunga dimajemukkan secara bulanan dibandingkan secara tahunan.',
186
+ },
187
+ ],
188
+ ui: {
189
+ labelTitle: 'Simulator Investasi',
190
+ labelRealtime: 'Waktu nyata',
191
+ labelInitial: 'Kontribusi Awal',
192
+ labelMonthly: 'Kontribusi Bulanan',
193
+ labelRate: 'Hasil Tahunan',
194
+ labelYears: 'Tahun',
195
+ labelMyMoney: 'Uang Anda',
196
+ labelProfit: 'Keuntungan (Bunga)',
197
+ labelTotal: 'Total Terakumulasi',
198
+ labelYear: 'Tahun',
199
+ labelPrincipal: 'Uang Anda (Pokok)',
200
+ labelInterest: 'Bunga yang Dihasilkan',
201
+ insightPrefix: '[TIPS] Di tahun ke-',
202
+ insightSuffix:
203
+ ', bunga tahunan yang Anda hasilkan akan melampaui kontribusi Anda. Uang sudah bekerja lebih keras daripada Anda!',
204
+ currencySymbol: 'Rp',
205
+ currencyCode: 'IDR',
206
+ currencyLocale: 'id-ID',
207
+ },
208
+ };
@@ -0,0 +1,208 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CompoundInterestUI } from '../ui';
4
+
5
+ const slug = 'interesse-composto';
6
+ const title = 'Calcolatore di Interesse Composto: Visualizza la tua ricchezza futura';
7
+ const description =
8
+ 'Scopri come piccoli investimenti si trasformano in grandi fortune. Lo strumento definitivo per pianificare la tua libertà finanziaria e la tua pensione.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Cos’è l’interesse composto?',
13
+ answer:
14
+ 'È l’interesse calcolato sul capitale iniziale e anche sugli interessi accumulati dei periodi precedenti. Ciò genera una crescita esponenziale dell’investimento nel tempo.',
15
+ },
16
+ {
17
+ question: 'Qual è la differenza con l’interesse semplice?',
18
+ answer:
19
+ 'Nell’interesse semplice, gli interessi sono calcolati solo sul capitale iniziale. Nel composto, gli interessi vengono reinvestiti, il che significa che „i tuoi interessi generano altri interessi”.',
20
+ },
21
+ {
22
+ question: 'Cos’è la „Regola del 72”?',
23
+ answer:
24
+ 'È una formula rapida per stimare quanto tempo impiegherà un investimento a raddoppiare: dividi 72 per il tasso di rendimento annuo. Ad esempio, all’8% annuo, raddoppierai i tuoi soldi in 9 anni.',
25
+ },
26
+ {
27
+ question: 'Perché è importante iniziare a investire da giovani?',
28
+ answer:
29
+ 'A causa dell’effetto esponenziale, il fattore più determinante non è la quantità di denaro risparmiata, ma il tempo. Iniziare qualche anno prima può portare a una ricchezza finale molto maggiore grazie alla capitalizzazione.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Inserire il capitale iniziale',
36
+ text: 'Scrivi la quantità di denaro con cui inizierai il tuo piano di investimento.',
37
+ },
38
+ {
39
+ name: 'Definire i contributi periodici',
40
+ text: 'Indica quanto denaro risparmierai e investirai ogni mese o ogni anno in aggiunta.',
41
+ },
42
+ {
43
+ name: 'Stimare il rendimento annuo',
44
+ text: 'Inserisci la percentuale di profitto annuo che prevedi di ottenere (es. 7% per l’S&P 500 storico).',
45
+ },
46
+ {
47
+ name: 'Regolare l’orizzonte temporale',
48
+ text: 'Scegli per quanti anni manterrai l’investimento per visualizzare la crescita esponenziale del tuo capitale.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'FinanceApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'it',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Domande Frequenti',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Fonti e Riferimenti',
93
+ bibliography: [
94
+ {
95
+ name: 'Investopedia: Compound Interest Definition',
96
+ url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
+ },
98
+ {
99
+ name: 'Investopedia: Rule of 72',
100
+ url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
+ },
102
+ {
103
+ name: 'Khan Academy: Interest and Debt',
104
+ url: 'https://it.khanacademy.org/economics-finance-domain/core-finance/interest-tutorial',
105
+ },
106
+ ],
107
+ howTo: howToData,
108
+ schemas: [faqSchema, howToSchema, appSchema],
109
+ seo: [
110
+ {
111
+ type: 'title',
112
+ text: 'La Magia dell’Interesse Composto: Costruisci la tua ricchezza in modo esponenziale',
113
+ level: 2,
114
+ },
115
+ {
116
+ type: 'paragraph',
117
+ html: 'Albert Einstein lo definì l’„ottava meraviglia del mondo”. L’<strong>interesse composto</strong> è il meccanismo più potente per generare ricchezza a lungo termine. Non devi essere un esperto di finanza per approfittarne: serve solo tempo, pazienza e denaro investito.',
118
+ },
119
+ {
120
+ type: 'title',
121
+ text: 'Interesse Semplice vs Composto: La metafora della palla di neve',
122
+ level: 3,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: 'Immagina di avere una palla di neve in cima a una collina. L’<strong>interesse semplice</strong> è come far rotolare quella palla e dover aggiungere neve manualmente ogni metro per farla crescere. L’<strong>interesse composto</strong> è invece come lasciare che la palla rotoli da sola: raccoglie neve autonomamente e, più diventa grande, più superficie ha per raccogliere <em>ancora più</em> neve a ogni giro.',
127
+ },
128
+ {
129
+ type: 'comparative',
130
+ columns: 2,
131
+ items: [
132
+ {
133
+ title: 'Interesse Semplice',
134
+ description: 'Gli interessi sono calcolati sempre sul capitale iniziale.',
135
+ points: [
136
+ 'Formula: Capitale × Tasso × Tempo',
137
+ 'Crescita lineare e prevedibile',
138
+ 'Utilizzato in prestiti a breve termine',
139
+ 'Nessun reinvestimento dei profitti',
140
+ ],
141
+ },
142
+ {
143
+ title: 'Interesse Composto',
144
+ description: 'Gli interessi si sommano al capitale e generano nuovi interessi.',
145
+ highlight: true,
146
+ points: [
147
+ 'Formula: Capitale × (1 + Tasso)^Tempo',
148
+ 'Crescita esponenziale accelerata',
149
+ 'Base di ogni investimento a lungo termine',
150
+ 'I tuoi profitti generano altri profitti',
151
+ ],
152
+ },
153
+ ],
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'Matematicamente, i tuoi profitti generano nuovi profitti. Nei primi anni sembra lento, ma superato il „punto di svolta”, la curva s’impenna verticalmente. È qui che si creano le vere fortune.',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Perché il tempo è il tuo miglior alleato?',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Il fattore più determinante non è la quantità di denaro che investi, ma <strong>per quanti anni lo lasci crescere</strong>. Iniziare 10 anni prima può portare a una ricchezza finale 2 o 3 volte superiore, anche se investi meno denaro totale. Questo effetto esponenziale è il motivo per cui i giovani investitori hanno un vantaggio incomparabile.',
167
+ },
168
+ {
169
+ type: 'tip',
170
+ title: 'La Regola del 72',
171
+ html: '<p>Dividi 72 per il tuo rendimento annuo per sapere quanti anni impiegherai a <strong>raddoppiare i tuoi soldi</strong>.</p><p><em>Esempio: All’8%, raddoppi ogni 9 anni (72/8 = 9).</em></p><p>Questa formula magica funziona per qualsiasi tasso di rendimento e ti aiuta a stimare rapidamente la crescita dei tuoi investimenti.</p>',
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: 'Consiglio 2026',
176
+ html: '<p>L’inflazione rimane un fattore. Assicurati che il tuo rendimento netto superi almeno il 2-3% annuo per non perdere potere d’acquisto. Investi in asset che crescono più velocemente dell’inflazione.</p>',
177
+ },
178
+ {
179
+ type: 'title',
180
+ text: 'Frequenza di Capitalizzazione: È importante?',
181
+ level: 3,
182
+ },
183
+ {
184
+ type: 'paragraph',
185
+ html: 'L’interesse può capitalizzarsi annualmente, semestralmente, trimestralmente, mensilmente o perfino quotidianamente. Più <strong>frequente è la capitalizzazione</strong>, maggiore sarà l’effetto composto. Un medesimo capitale con lo stesso tasso crescerà di più se l’interesse si compone mensilmente rispetto a una composizione annuale.',
186
+ },
187
+ ],
188
+ ui: {
189
+ labelTitle: 'Simulatore di Investimento',
190
+ labelRealtime: 'Tempo reale',
191
+ labelInitial: 'Capitale Iniziale',
192
+ labelMonthly: 'Contributo Mensile',
193
+ labelRate: 'Rend. Annuo',
194
+ labelYears: 'Anni',
195
+ labelMyMoney: 'I tuoi soldi',
196
+ labelProfit: 'Profitto (Interessi)',
197
+ labelTotal: 'Totale Accumulato',
198
+ labelYear: 'Anno',
199
+ labelPrincipal: 'I tuoi soldi (Capitale)',
200
+ labelInterest: 'Interessi Generati',
201
+ insightPrefix: '[TIP] Nell’anno ',
202
+ insightSuffix:
203
+ ', i tuoi interessi annui generati supereranno i tuoi contributi. Il denaro lavora già più di te!',
204
+ currencySymbol: '€',
205
+ currencyCode: 'EUR',
206
+ currencyLocale: 'it-IT',
207
+ },
208
+ };
@@ -0,0 +1,207 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { CompoundInterestUI } from '../ui';
4
+
5
+ const slug = 'compound-interest-calculator';
6
+ const title = '複利計算機:将来の資産を可視化する';
7
+ const description =
8
+ '小さな投資がどのように大きな資産に変わるかを発見しましょう。財務的自由と引退計画を立てるための究極のツールです。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '複利とは何ですか?',
13
+ answer:
14
+ '元本だけでなく、それ以前の期間に発生した利息に対しても計算される利息のことです。これにより、時間の経過とともに投資が指数関数的に成長します。',
15
+ },
16
+ {
17
+ question: '単利との違いは何ですか?',
18
+ answer:
19
+ '単利では、利息は当初の元本に対してのみ計算されます。複利では利息が再投資されるため、「利息がさらなる利息を生む」ことになります。',
20
+ },
21
+ {
22
+ question: '「72の法則」とは何ですか?',
23
+ answer:
24
+ '投資が2倍になるまでにかかる時間を推定するための簡単な公式です。72を年利回りで割ります。例えば年利8%の場合、9年で資金が2倍になります。',
25
+ },
26
+ {
27
+ question: 'なぜ若いうちに投資を始めることが重要なのですか?',
28
+ answer:
29
+ '指数関数的な効果があるため、決定的な要因は貯蓄額ではなく「時間」です。数年早く始めるだけで、複利効果により最終的な資産額が大幅に大きくなる可能性があります。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '初期投資額を入力する',
36
+ text: '投資計画を開始する際の金額を入力します。',
37
+ },
38
+ {
39
+ name: '定期的な積立額を設定する',
40
+ text: '毎月または毎年、追加で貯蓄・投資する金額を指定します。',
41
+ },
42
+ {
43
+ name: '想定年利を入力する',
44
+ text: '期待する年間の収益率を入力します(例:歴史的なS&P 500の場合は7%)。',
45
+ },
46
+ {
47
+ name: '投資期間を調整する',
48
+ text: '指数関数的な資産の成長を可視化するために、投資を維持する年数を選択します。',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'FinanceApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' },
83
+ inLanguage: 'ja',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<CompoundInterestUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'よくある質問',
91
+ faq: faqData,
92
+ bibliographyTitle: '情報源とリファレンス',
93
+ bibliography: [
94
+ {
95
+ name: 'Investopedia: Compound Interest Definition',
96
+ url: 'https://www.investopedia.com/terms/c/compoundinterest.asp',
97
+ },
98
+ {
99
+ name: 'Investopedia: Rule of 72',
100
+ url: 'https://www.investopedia.com/terms/r/ruleof72.asp',
101
+ },
102
+ {
103
+ name: '複利の計算 - Wikipedia',
104
+ url: 'https://ja.wikipedia.org/wiki/複利',
105
+ },
106
+ ],
107
+ howTo: howToData,
108
+ schemas: [faqSchema, howToSchema, appSchema],
109
+ seo: [
110
+ {
111
+ type: 'title',
112
+ text: '複利の魔術:資産を指数関数的に築く',
113
+ level: 2,
114
+ },
115
+ {
116
+ type: 'paragraph',
117
+ html: 'アルベルト・アインシュタインは複利を「世界最高の発明」と呼びました。<strong>複利</strong>は、長期的に富を築くための最も強力なメカニズムです。金融の専門家である必要はありません。必要なのは時間、忍耐、そして投資された資金だけです。',
118
+ },
119
+ {
120
+ type: 'title',
121
+ text: '単利 vs 複利:雪だるまの比喩',
122
+ level: 3,
123
+ },
124
+ {
125
+ type: 'paragraph',
126
+ html: '丘の上で雪だるまを作っていると想像してください。<strong>単利</strong>は、その雪玉を転がしながら、大きくなるように1メートルごとに手作業で雪を追加していくようなものです。<strong>複利</strong>は、雪玉を自分から転がすようなものです。転がるうちに勝手に雪を拾い、大きくなればなるほど、一回転で<em>さらに多くの</em>雪を拾う面積が増えていきます。',
127
+ },
128
+ {
129
+ type: 'comparative',
130
+ columns: 2,
131
+ items: [
132
+ {
133
+ title: '単利',
134
+ description: '利息は常に当初の元本に対してのみ計算されます。',
135
+ points: [
136
+ '公式:元本 × 利率 × 期間',
137
+ '線形で予測可能な成長',
138
+ '短期ローンなどで使用',
139
+ '利益の再投資なし',
140
+ ],
141
+ },
142
+ {
143
+ title: '複利',
144
+ description: '利息が元本に加算され、新しい利息を生みます。',
145
+ highlight: true,
146
+ points: [
147
+ '公式:元本 × (1 + 利率)^期間',
148
+ '加速的な指数関数的成長',
149
+ 'あらゆる長期投資の基礎',
150
+ '利益がさらなる利益を生む',
151
+ ],
152
+ },
153
+ ],
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '数学的に、あなたの利益が新しい利益を生み出します。最初の数年間はゆっくりに見えますが、「ティッピングポイント(転換点)」を過ぎると、曲線は垂直に上昇します。ここで真の資産が形成されます。',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'なぜ時間は最大の味方なのか?',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: '最も決定的な要因は、投資する金額ではなく、<strong>何年間成長させ続けるか</strong>です。10年早く始めるだけで、合計の投資額が少なくても、最終的な資産が2倍、3倍になることがあります。この指数関数的な効果こそが、若い投資家が比類なき優位性を持つ理由です。',
167
+ },
168
+ {
169
+ type: 'tip',
170
+ title: '72の法則',
171
+ html: '<p>72を年利回りで割ると、<strong>資金が2倍になる</strong>までにかかる年数がわかります。</p><p><em>例:年利8%の場合、9年ごとに倍になります(72 / 8 = 9)。</em></p><p>この魔法の公式はどんな収益率にも当てはまり、投資の成長を素早く推定するのに役立ちます。</p>',
172
+ },
173
+ {
174
+ type: 'tip',
175
+ title: '2026年のアドバイス',
176
+ html: '<p>インフレは依然として考慮すべき要因です。購買力を失わないために、実質利回りが少なくとも年間2〜3%を超えるようにしましょう。インフレよりも速く成長する資産に投資してください。</p>',
177
+ },
178
+ {
179
+ type: 'title',
180
+ text: '利息の計算頻度:重要ですか?',
181
+ level: 3,
182
+ },
183
+ {
184
+ type: 'paragraph',
185
+ html: '利息は、年、半年、四半期、月、あるいは毎日といった頻度で再投資(複利計算)されます。<strong>複利計算の頻度が高いほど</strong>、複利効果は大きくなります。同じ元本と同じ利率でも、年複利よりも月複利の方が資産はより大きく成長します。',
186
+ },
187
+ ],
188
+ ui: {
189
+ labelTitle: '投資シミュレーター',
190
+ labelRealtime: 'リアルタイム',
191
+ labelInitial: '初期投資額',
192
+ labelMonthly: '毎月の積立額',
193
+ labelRate: '年利回り',
194
+ labelYears: '投資期間(年)',
195
+ labelMyMoney: '元本合計',
196
+ labelProfit: '投資収益(利息)',
197
+ labelTotal: '資産総額',
198
+ labelYear: '経過年数',
199
+ labelPrincipal: '元本',
200
+ labelInterest: '累積利息',
201
+ insightPrefix: '[TIP] ',
202
+ insightSuffix: '年目に、発生した年間利息が積立額を上回ります。あなたよりもお金が働いている状態です!',
203
+ currencySymbol: '¥',
204
+ currencyCode: 'JPY',
205
+ currencyLocale: 'ja-JP',
206
+ },
207
+ };