@jjlmoya/utils-finance 1.45.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +5 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/mfe_assets_contract.test.ts +48 -0
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/loanAprScenarioCalculator/bibliography.astro +11 -0
- package/src/tool/loanAprScenarioCalculator/bibliography.ts +29 -0
- package/src/tool/loanAprScenarioCalculator/component.astro +62 -0
- package/src/tool/loanAprScenarioCalculator/controller.ts +205 -0
- package/src/tool/loanAprScenarioCalculator/currency-dom.ts +107 -0
- package/src/tool/loanAprScenarioCalculator/currency.test.ts +57 -0
- package/src/tool/loanAprScenarioCalculator/currency.ts +105 -0
- package/src/tool/loanAprScenarioCalculator/dom-views.ts +190 -0
- package/src/tool/loanAprScenarioCalculator/entry.ts +28 -0
- package/src/tool/loanAprScenarioCalculator/evaluator.ts +21 -0
- package/src/tool/loanAprScenarioCalculator/i18n/de.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/en.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/es.ts +195 -0
- package/src/tool/loanAprScenarioCalculator/i18n/fr.ts +195 -0
- package/src/tool/loanAprScenarioCalculator/i18n/id.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/it.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/ja.ts +186 -0
- package/src/tool/loanAprScenarioCalculator/i18n/ko.ts +186 -0
- package/src/tool/loanAprScenarioCalculator/i18n/nl.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/pl.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/pt.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/ru.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/sv.ts +189 -0
- package/src/tool/loanAprScenarioCalculator/i18n/tr.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/zh.ts +181 -0
- package/src/tool/loanAprScenarioCalculator/index.ts +11 -0
- package/src/tool/loanAprScenarioCalculator/loan-apr-scenario-calculator.css +699 -0
- package/src/tool/loanAprScenarioCalculator/logic.test.ts +65 -0
- package/src/tool/loanAprScenarioCalculator/logic.ts +259 -0
- package/src/tool/loanAprScenarioCalculator/presets.ts +51 -0
- package/src/tool/loanAprScenarioCalculator/scenario-dom.ts +101 -0
- package/src/tool/loanAprScenarioCalculator/seo.astro +11 -0
- package/src/tool/loanAprScenarioCalculator/storage.ts +60 -0
- package/src/tool/loanAprScenarioCalculator/ui.ts +55 -0
- package/src/tool/loanAprScenarioCalculator/validation.ts +24 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/bibliography.astro +11 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/bibliography.ts +6 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/component.astro +80 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/controller.ts +102 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/currency.test.ts +17 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/currency.ts +69 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/dom-views.ts +68 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/entry.ts +28 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/evaluator.ts +17 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/de.ts +40 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/en.ts +98 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/es.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/fr.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/id.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/it.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/ja.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/ko.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/nl.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/pl.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/pt.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/ru.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/sv.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/tr.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/i18n/zh.ts +38 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/index.ts +11 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/logic.test.ts +52 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/logic.ts +108 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/renter-insurance-coverage-gap-calculator.css +462 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/seo.astro +11 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/storage.ts +23 -0
- package/src/tool/renterInsuranceCoverageGapCalculator/ui.ts +48 -0
- package/src/tools.ts +3 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
import { bibliography } from "../bibliography";
|
|
3
|
+
import type { LoanAprScenarioCalculatorUI } from "../ui";
|
|
4
|
+
|
|
5
|
+
const ui: LoanAprScenarioCalculatorUI = {
|
|
6
|
+
labelScenarioA: "Penawaran A",
|
|
7
|
+
labelScenarioB: "Penawaran B",
|
|
8
|
+
labelScenarioName: "Nama penawaran",
|
|
9
|
+
labelCurrency: "Mata uang",
|
|
10
|
+
labelApproximateRates:
|
|
11
|
+
"Faktor perkiraan untuk perencanaan, bukan nilai tukar langsung.",
|
|
12
|
+
labelPrincipal: "Jumlah pinjaman",
|
|
13
|
+
labelTerm: "Jangka waktu pembayaran",
|
|
14
|
+
labelMonths: "bulan",
|
|
15
|
+
labelInputBasis: "Data apa yang Anda ketahui?",
|
|
16
|
+
labelAnnualRate: "Suku bunga tahunan nominal",
|
|
17
|
+
labelMonthlyPayment: "Cicilan bulanan yang diketahui",
|
|
18
|
+
labelUpfrontFees: "Biaya awal",
|
|
19
|
+
labelMonthlyFees: "Biaya bulanan",
|
|
20
|
+
labelFinalFees: "Biaya akhir",
|
|
21
|
+
labelOfferNameA: "Penawaran A",
|
|
22
|
+
labelOfferNameB: "Penawaran B",
|
|
23
|
+
labelRateMode: "Saya tahu bunganya",
|
|
24
|
+
labelPaymentMode: "Saya tahu cicilannya",
|
|
25
|
+
labelPreset: "Mulai perbandingan",
|
|
26
|
+
labelPresetBalanced: "Penawaran seimbang",
|
|
27
|
+
labelPresetLowFee: "Bunga rendah dengan biaya",
|
|
28
|
+
labelPresetLongTerm: "Jangka waktu lebih panjang",
|
|
29
|
+
labelReset: "Atur ulang nilai",
|
|
30
|
+
labelCopy: "Salin perbandingan",
|
|
31
|
+
labelCopied: "Perbandingan disalin",
|
|
32
|
+
labelEffectiveApr: "Biaya tahunan efektif",
|
|
33
|
+
labelNominalRate: "Suku bunga nominal",
|
|
34
|
+
labelMonthlyPaymentResult: "Cicilan bulanan",
|
|
35
|
+
labelTotalPaid: "Total dibayar",
|
|
36
|
+
labelTotalFees: "Biaya dalam skenario",
|
|
37
|
+
labelFinanceCost: "Biaya di atas pokok",
|
|
38
|
+
labelNetCashReceived: "Dana diterima setelah biaya awal",
|
|
39
|
+
labelWinner: "Penawaran mana yang lebih murah?",
|
|
40
|
+
labelLowerCost: "Biaya efektif lebih rendah",
|
|
41
|
+
labelHigherCost: "Biaya efektif lebih tinggi",
|
|
42
|
+
labelTie: "Hampir sama",
|
|
43
|
+
labelNeedValidInputs: "Perlu data yang valid",
|
|
44
|
+
labelInvalidPrincipal:
|
|
45
|
+
"Jumlah pinjaman harus lebih dari nol dan lebih besar daripada biaya awal.",
|
|
46
|
+
labelInvalidTerm: "Gunakan jangka waktu bulat dari 1 sampai 600 bulan.",
|
|
47
|
+
labelInvalidFees: "Biaya tidak boleh negatif.",
|
|
48
|
+
labelInvalidPayment:
|
|
49
|
+
"Masukkan cicilan bulanan positif yang dapat melunasi dana bersih yang diterima.",
|
|
50
|
+
labelInvalidRate: "Gunakan suku bunga tahunan nominal dari 0% sampai 100%.",
|
|
51
|
+
labelNoComparison: "Lengkapi kedua penawaran untuk membandingkannya.",
|
|
52
|
+
labelTimeline: "Jadwal pembayaran",
|
|
53
|
+
labelStart: "Mulai",
|
|
54
|
+
labelMonthly: "Setiap bulan",
|
|
55
|
+
labelEnd: "Bulan terakhir",
|
|
56
|
+
labelFormula: "Cara kerja perbandingan",
|
|
57
|
+
labelFormulaText:
|
|
58
|
+
"Biaya tahunan efektif adalah suku bunga bulanan yang disetahunkan dan menyamakan dana diterima dengan pembayaran serta biaya yang didiskontokan.",
|
|
59
|
+
labelApproximation:
|
|
60
|
+
"Perkiraan mengasumsikan cicilan bulanan sama, tanpa masa tenggang, dan hanya biaya yang Anda masukkan. Ini bukan pengganti APR resmi pemberi pinjaman.",
|
|
61
|
+
labelScenarioSummary: "Ringkasan skenario",
|
|
62
|
+
currencyCode: "IDR",
|
|
63
|
+
currencyLocale: "id-ID",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const faq = [
|
|
67
|
+
{
|
|
68
|
+
question: "Apa perbedaan suku bunga dan biaya tahunan efektif?",
|
|
69
|
+
answer:
|
|
70
|
+
"Suku bunga nominal menjelaskan bunga atas saldo. Biaya tahunan efektif juga memperhitungkan jumlah dan waktu biaya awal, bulanan, serta biaya akhir yang Anda masukkan.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
question: "Bisakah saya memasukkan cicilan bulanan, bukan suku bunga?",
|
|
74
|
+
answer:
|
|
75
|
+
"Bisa. Pilih cicilan bulanan yang diketahui untuk penawaran tersebut. Kalkulator memperkirakan suku bunga bulanan yang sesuai dengan dana diterima, arus pembayaran, dan biaya skenario.",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
question: "Penawaran mana yang lebih murah?",
|
|
79
|
+
answer:
|
|
80
|
+
"Bandingkan biaya tahunan efektif terlebih dahulu, lalu periksa total pembayaran dan dana bersih yang diterima. Persentase lebih rendah tetap dapat menghasilkan total biaya lebih tinggi jika jangka waktu atau jumlahnya berbeda.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
question: "Apakah ini APR resmi dari pemberi pinjaman?",
|
|
84
|
+
answer:
|
|
85
|
+
"Bukan. Ini adalah perkiraan transparan berdasarkan masukan Anda. Pemberi pinjaman dan aturan setempat dapat memperlakukan pajak, asuransi, tanggal pembayaran, dan biaya lain secara berbeda.",
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const howTo = [
|
|
90
|
+
{
|
|
91
|
+
name: "Masukkan jumlah dan jangka waktu",
|
|
92
|
+
text: "Tambahkan dana yang akan diterima dan jumlah cicilan bulanan untuk setiap penawaran.",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "Pilih data yang diketahui",
|
|
96
|
+
text: "Masukkan suku bunga tahunan nominal atau cicilan bulanan sesuai informasi penawaran.",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "Tambahkan semua biaya",
|
|
100
|
+
text: "Masukkan biaya awal, bulanan, dan akhir agar arus kas yang diuji lengkap.",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "Baca perbandingan",
|
|
104
|
+
text: "Gunakan biaya tahunan efektif, lalu periksa total pembayaran dan dana bersih sebelum memutuskan.",
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
const schemas = [
|
|
109
|
+
{
|
|
110
|
+
"@context": "https://schema.org",
|
|
111
|
+
"@type": "SoftwareApplication",
|
|
112
|
+
name: "Kalkulator skenario APR pinjaman",
|
|
113
|
+
description:
|
|
114
|
+
"Bandingkan dua skenario pinjaman dengan bunga, cicilan, dan biaya.",
|
|
115
|
+
applicationCategory: "FinanceApplication",
|
|
116
|
+
operatingSystem: "All",
|
|
117
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "IDR" },
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"@context": "https://schema.org",
|
|
121
|
+
"@type": "FAQPage",
|
|
122
|
+
mainEntity: faq.map((item) => ({
|
|
123
|
+
"@type": "Question",
|
|
124
|
+
name: item.question,
|
|
125
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"@context": "https://schema.org",
|
|
130
|
+
"@type": "HowTo",
|
|
131
|
+
name: "Membandingkan dua penawaran pinjaman",
|
|
132
|
+
description:
|
|
133
|
+
"Modelkan arus kas dua pinjaman dan bandingkan biaya tahunan efektifnya.",
|
|
134
|
+
step: howTo.map((step, index) => ({
|
|
135
|
+
"@type": "HowToStep",
|
|
136
|
+
position: index + 1,
|
|
137
|
+
name: step.name,
|
|
138
|
+
text: step.text,
|
|
139
|
+
})),
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
export const content: ToolLocaleContent<LoanAprScenarioCalculatorUI> = {
|
|
144
|
+
slug: "kalkulator-skenario-apr-pinjaman",
|
|
145
|
+
title: "Kalkulator skenario APR pinjaman",
|
|
146
|
+
description:
|
|
147
|
+
"Bandingkan dua penawaran pinjaman dengan bunga, jadwal pembayaran, dan biaya untuk memperkirakan biaya tahunan efektif.",
|
|
148
|
+
ui,
|
|
149
|
+
faq,
|
|
150
|
+
bibliography,
|
|
151
|
+
howTo,
|
|
152
|
+
schemas,
|
|
153
|
+
seo: [
|
|
154
|
+
{
|
|
155
|
+
type: "title",
|
|
156
|
+
text: "Bandingkan pinjaman berdasarkan biaya tahunan efektif",
|
|
157
|
+
level: 2,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: "paragraph",
|
|
161
|
+
html: "<p>Suku bunga iklan yang rendah dapat menyembunyikan biaya administrasi, biaya layanan bulanan, atau biaya akhir. Kalkulator ini mengubah detail dua penawaran menjadi skenario arus kas yang sebanding agar Anda dapat melihat biaya dana yang benar-benar diterima.</p>",
|
|
162
|
+
},
|
|
163
|
+
{ type: "title", text: "Isi perkiraan", level: 3 },
|
|
164
|
+
{
|
|
165
|
+
type: "paragraph",
|
|
166
|
+
html: "<p>Untuk setiap penawaran, masukkan jumlah pinjaman, jangka waktu, suku bunga nominal atau cicilan bulanan, serta biaya pada waktu yang berbeda. Kalkulator mencari suku bunga bulanan yang menyeimbangkan dana bersih dengan pembayaran dan biaya yang didiskontokan, lalu menyetahunkannya.</p>",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: "paragraph",
|
|
170
|
+
html: "<p>Dengan begitu, harga kredit tidak hanya dilihat dari bunganya. Hasilnya tetap merupakan perkiraan karena APR resmi dapat mengikuti aturan wilayah dan memasukkan asumsi yang tidak ada dalam skenario Anda.</p>",
|
|
171
|
+
},
|
|
172
|
+
{ type: "title", text: "Cara membaca hasil", level: 3 },
|
|
173
|
+
{
|
|
174
|
+
type: "list",
|
|
175
|
+
items: [
|
|
176
|
+
"Bandingkan biaya tahunan efektif saat jumlah dan jangka waktu serupa.",
|
|
177
|
+
"Periksa total pembayaran untuk memahami dampak uang sebenarnya.",
|
|
178
|
+
"Perhatikan dana yang diterima setelah biaya awal.",
|
|
179
|
+
"Gunakan jadwal untuk melihat kapan setiap biaya masuk.",
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: "tip",
|
|
184
|
+
title: "Gunakan dokumen pemberi pinjaman sebagai acuan akhir",
|
|
185
|
+
html: "<p>Untuk kontrak nyata, cocokkan APR resmi dengan asumsi yang sama. Tanyakan tentang asuransi, pajak, bunga variabel, biaya pelunasan lebih awal, dan biaya yang tidak tercakup.</p>",
|
|
186
|
+
},
|
|
187
|
+
{ type: "title", text: "Batasan perkiraan skenario", level: 3 },
|
|
188
|
+
{
|
|
189
|
+
type: "paragraph",
|
|
190
|
+
html: "<p>Tool ini mengasumsikan cicilan bulanan sama, tanpa masa tenggang, dan biaya pada awal, selama jangka waktu, atau bulan terakhir. Tool ini tidak memastikan kemampuan membayar, persetujuan, legalitas, atau APR resmi.</p>",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
import { bibliography } from "../bibliography";
|
|
3
|
+
import type { LoanAprScenarioCalculatorUI } from "../ui";
|
|
4
|
+
|
|
5
|
+
const ui: LoanAprScenarioCalculatorUI = {
|
|
6
|
+
labelScenarioA: "Offerta A",
|
|
7
|
+
labelScenarioB: "Offerta B",
|
|
8
|
+
labelScenarioName: "Nome dell'offerta",
|
|
9
|
+
labelCurrency: "Valuta",
|
|
10
|
+
labelApproximateRates:
|
|
11
|
+
"Fattori indicativi per la pianificazione, non tassi di cambio in tempo reale.",
|
|
12
|
+
labelPrincipal: "Importo preso in prestito",
|
|
13
|
+
labelTerm: "Durata del rimborso",
|
|
14
|
+
labelMonths: "mesi",
|
|
15
|
+
labelInputBasis: "Quale dato conosci?",
|
|
16
|
+
labelAnnualRate: "Tasso nominale annuo",
|
|
17
|
+
labelMonthlyPayment: "Rata mensile conosciuta",
|
|
18
|
+
labelUpfrontFees: "Costi iniziali",
|
|
19
|
+
labelMonthlyFees: "Costi mensili",
|
|
20
|
+
labelFinalFees: "Costo finale",
|
|
21
|
+
labelOfferNameA: "Offerta A",
|
|
22
|
+
labelOfferNameB: "Offerta B",
|
|
23
|
+
labelRateMode: "Conosco il tasso",
|
|
24
|
+
labelPaymentMode: "Conosco la rata",
|
|
25
|
+
labelPreset: "Inizia un confronto",
|
|
26
|
+
labelPresetBalanced: "Offerte equilibrate",
|
|
27
|
+
labelPresetLowFee: "Tasso basso con costi",
|
|
28
|
+
labelPresetLongTerm: "Durata più lunga",
|
|
29
|
+
labelReset: "Reimposta valori",
|
|
30
|
+
labelCopy: "Copia confronto",
|
|
31
|
+
labelCopied: "Confronto copiato",
|
|
32
|
+
labelEffectiveApr: "Costo annuo effettivo",
|
|
33
|
+
labelNominalRate: "Tasso nominale",
|
|
34
|
+
labelMonthlyPaymentResult: "Rata mensile",
|
|
35
|
+
labelTotalPaid: "Totale pagato",
|
|
36
|
+
labelTotalFees: "Costi dello scenario",
|
|
37
|
+
labelFinanceCost: "Costo oltre il capitale",
|
|
38
|
+
labelNetCashReceived: "Somma ricevuta dopo i costi iniziali",
|
|
39
|
+
labelWinner: "Quale offerta costa meno?",
|
|
40
|
+
labelLowerCost: "Costo effettivo più basso",
|
|
41
|
+
labelHigherCost: "Costo effettivo più alto",
|
|
42
|
+
labelTie: "Quasi uguali",
|
|
43
|
+
labelNeedValidInputs: "Servono dati validi",
|
|
44
|
+
labelInvalidPrincipal:
|
|
45
|
+
"L'importo deve essere positivo e superiore ai costi iniziali.",
|
|
46
|
+
labelInvalidTerm: "Usa una durata intera da 1 a 600 mesi.",
|
|
47
|
+
labelInvalidFees: "I costi non possono essere negativi.",
|
|
48
|
+
labelInvalidPayment:
|
|
49
|
+
"Inserisci una rata mensile positiva che possa rimborsare la somma ricevuta.",
|
|
50
|
+
labelInvalidRate: "Usa un tasso nominale annuo tra 0% e 100%.",
|
|
51
|
+
labelNoComparison: "Completa entrambe le offerte per confrontarle.",
|
|
52
|
+
labelTimeline: "Calendario dei pagamenti",
|
|
53
|
+
labelStart: "Inizio",
|
|
54
|
+
labelMonthly: "Ogni mese",
|
|
55
|
+
labelEnd: "Ultimo mese",
|
|
56
|
+
labelFormula: "Come funziona il confronto",
|
|
57
|
+
labelFormulaText:
|
|
58
|
+
"Il costo annuo effettivo è il tasso mensile annualizzato che rende uguali la somma ricevuta e i pagamenti e costi attualizzati.",
|
|
59
|
+
labelApproximation:
|
|
60
|
+
"La stima presume rate mensili uguali, nessun periodo di sospensione e solo i costi inseriti. Non sostituisce il TAEG ufficiale del finanziatore.",
|
|
61
|
+
labelScenarioSummary: "Riepilogo scenario",
|
|
62
|
+
currencyCode: "EUR",
|
|
63
|
+
currencyLocale: "it-IT",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const faq = [
|
|
67
|
+
{
|
|
68
|
+
question:
|
|
69
|
+
"Qual è la differenza tra tasso di interesse e costo annuo effettivo?",
|
|
70
|
+
answer:
|
|
71
|
+
"Il tasso nominale descrive gli interessi sul saldo. Il costo annuo effettivo considera anche importo e momento dei costi iniziali, mensili e finali inseriti.",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
question: "Posso inserire una rata mensile invece del tasso?",
|
|
75
|
+
answer:
|
|
76
|
+
"Sì. Scegli la rata mensile conosciuta per l'offerta. Il calcolatore ricava il tasso mensile coerente con somma ricevuta, pagamenti e costi dello scenario.",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
question: "Quale offerta è più economica?",
|
|
80
|
+
answer:
|
|
81
|
+
"Confronta prima il costo annuo effettivo, poi il totale pagato e la somma ricevuta. Una percentuale più bassa può comunque avere un costo totale maggiore se cambiano durata o importo.",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
question: "È il TAEG ufficiale del finanziatore?",
|
|
85
|
+
answer:
|
|
86
|
+
"No. È una stima trasparente basata sui tuoi dati. Finanziatori e Paesi possono trattare diversamente date di pagamento, tasse, assicurazioni e altri costi.",
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
|
|
90
|
+
const howTo = [
|
|
91
|
+
{
|
|
92
|
+
name: "Inserisci importo e durata",
|
|
93
|
+
text: "Aggiungi la somma che riceveresti e il numero di rate mensili per ogni offerta.",
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
name: "Scegli il dato noto",
|
|
97
|
+
text: "Inserisci il tasso nominale annuo o la rata mensile, in base a ciò che riporta l'offerta.",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: "Aggiungi tutti i costi",
|
|
101
|
+
text: "Indica i costi iniziali, mensili e finali per rappresentare il flusso completo.",
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "Leggi il confronto",
|
|
105
|
+
text: "Usa il costo annuo effettivo e controlla totale pagato e somma ricevuta prima di decidere.",
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
|
|
109
|
+
const schemas = [
|
|
110
|
+
{
|
|
111
|
+
"@context": "https://schema.org",
|
|
112
|
+
"@type": "SoftwareApplication",
|
|
113
|
+
name: "Calcolatore scenari TAEG prestito",
|
|
114
|
+
description: "Confronta due scenari di prestito con tassi, rate e costi.",
|
|
115
|
+
applicationCategory: "FinanceApplication",
|
|
116
|
+
operatingSystem: "All",
|
|
117
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "EUR" },
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"@context": "https://schema.org",
|
|
121
|
+
"@type": "FAQPage",
|
|
122
|
+
mainEntity: faq.map((item) => ({
|
|
123
|
+
"@type": "Question",
|
|
124
|
+
name: item.question,
|
|
125
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"@context": "https://schema.org",
|
|
130
|
+
"@type": "HowTo",
|
|
131
|
+
name: "Confrontare due offerte di prestito",
|
|
132
|
+
description:
|
|
133
|
+
"Modella i flussi di due prestiti e confronta il costo annuo effettivo.",
|
|
134
|
+
step: howTo.map((step, index) => ({
|
|
135
|
+
"@type": "HowToStep",
|
|
136
|
+
position: index + 1,
|
|
137
|
+
name: step.name,
|
|
138
|
+
text: step.text,
|
|
139
|
+
})),
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
export const content: ToolLocaleContent<LoanAprScenarioCalculatorUI> = {
|
|
144
|
+
slug: "calcolatore-scenari-taeg-prestito",
|
|
145
|
+
title: "Calcolatore scenari TAEG prestito",
|
|
146
|
+
description:
|
|
147
|
+
"Confronta due offerte di prestito con interessi, piano di rimborso e costi per stimare il costo annuo effettivo.",
|
|
148
|
+
ui,
|
|
149
|
+
faq,
|
|
150
|
+
bibliography,
|
|
151
|
+
howTo,
|
|
152
|
+
schemas,
|
|
153
|
+
seo: [
|
|
154
|
+
{
|
|
155
|
+
type: "title",
|
|
156
|
+
text: "Confronta i prestiti per costo annuo effettivo",
|
|
157
|
+
level: 2,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: "paragraph",
|
|
161
|
+
html: "<p>Un tasso pubblicizzato basso può nascondere un costo di apertura, un addebito mensile o un costo finale. Questo calcolatore trasforma i dati di due offerte in flussi di cassa comparabili per mostrare il costo del denaro che ricevi davvero.</p>",
|
|
162
|
+
},
|
|
163
|
+
{ type: "title", text: "Cosa comprende la stima", level: 3 },
|
|
164
|
+
{
|
|
165
|
+
type: "paragraph",
|
|
166
|
+
html: "<p>Per ogni offerta inserisci importo, durata, tasso nominale o rata mensile conosciuta e costi applicati nei diversi momenti. Il calcolatore trova il tasso mensile che bilancia la somma ricevuta con pagamenti e costi attualizzati, poi lo annualizza.</p>",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: "paragraph",
|
|
170
|
+
html: "<p>Il prezzo del credito è quindi più ampio del solo tasso di interesse. Il risultato è una stima perché il TAEG ufficiale può seguire regole nazionali e includere ipotesi non presenti nello scenario.</p>",
|
|
171
|
+
},
|
|
172
|
+
{ type: "title", text: "Come leggere il risultato", level: 3 },
|
|
173
|
+
{
|
|
174
|
+
type: "list",
|
|
175
|
+
items: [
|
|
176
|
+
"Confronta il costo annuo effettivo quando importo e durata sono simili.",
|
|
177
|
+
"Controlla il totale pagato per capire l'impatto assoluto.",
|
|
178
|
+
"Verifica la somma ricevuta dopo i costi iniziali.",
|
|
179
|
+
"Usa il calendario per vedere quando entra ogni costo.",
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: "tip",
|
|
184
|
+
title: "Il documento del finanziatore resta il riferimento",
|
|
185
|
+
html: "<p>Per un contratto reale confronta il TAEG ufficiale con le stesse ipotesi. Chiedi di assicurazioni, tasse, tassi variabili, costi di estinzione anticipata e addebiti non inseriti.</p>",
|
|
186
|
+
},
|
|
187
|
+
{ type: "title", text: "Limiti di uno scenario", level: 3 },
|
|
188
|
+
{
|
|
189
|
+
type: "paragraph",
|
|
190
|
+
html: "<p>Lo strumento presume rate mensili uguali, nessun periodo di sospensione e costi all'inizio, durante la durata o nell'ultimo mese. Non certifica sostenibilità, approvazione, legalità o TAEG ufficiale.</p>",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
import { bibliography } from "../bibliography";
|
|
3
|
+
import type { LoanAprScenarioCalculatorUI } from "../ui";
|
|
4
|
+
|
|
5
|
+
const ui: LoanAprScenarioCalculatorUI = {
|
|
6
|
+
labelScenarioA: "オファーA",
|
|
7
|
+
labelScenarioB: "オファーB",
|
|
8
|
+
labelScenarioName: "オファー名",
|
|
9
|
+
labelCurrency: "通貨",
|
|
10
|
+
labelApproximateRates:
|
|
11
|
+
"計画用の概算係数です。リアルタイムの為替レートではありません。",
|
|
12
|
+
labelPrincipal: "借入額",
|
|
13
|
+
labelTerm: "返済期間",
|
|
14
|
+
labelMonths: "か月",
|
|
15
|
+
labelInputBasis: "何が分かっていますか?",
|
|
16
|
+
labelAnnualRate: "名目年利",
|
|
17
|
+
labelMonthlyPayment: "分かっている月々の支払額",
|
|
18
|
+
labelUpfrontFees: "初期手数料",
|
|
19
|
+
labelMonthlyFees: "月額手数料",
|
|
20
|
+
labelFinalFees: "最終手数料",
|
|
21
|
+
labelOfferNameA: "オファーA",
|
|
22
|
+
labelOfferNameB: "オファーB",
|
|
23
|
+
labelRateMode: "金利が分かる",
|
|
24
|
+
labelPaymentMode: "支払額が分かる",
|
|
25
|
+
labelPreset: "比較を始める",
|
|
26
|
+
labelPresetBalanced: "バランス型",
|
|
27
|
+
labelPresetLowFee: "低金利と手数料",
|
|
28
|
+
labelPresetLongTerm: "長期返済",
|
|
29
|
+
labelReset: "値をリセット",
|
|
30
|
+
labelCopy: "比較をコピー",
|
|
31
|
+
labelCopied: "比較をコピーしました",
|
|
32
|
+
labelEffectiveApr: "実質年コスト",
|
|
33
|
+
labelNominalRate: "名目金利",
|
|
34
|
+
labelMonthlyPaymentResult: "月々の支払額",
|
|
35
|
+
labelTotalPaid: "支払総額",
|
|
36
|
+
labelTotalFees: "シナリオの手数料",
|
|
37
|
+
labelFinanceCost: "元金を超えるコスト",
|
|
38
|
+
labelNetCashReceived: "初期手数料後の受取額",
|
|
39
|
+
labelWinner: "どちらのオファーが安いですか?",
|
|
40
|
+
labelLowerCost: "実質コストが低い",
|
|
41
|
+
labelHigherCost: "実質コストが高い",
|
|
42
|
+
labelTie: "ほぼ同じ",
|
|
43
|
+
labelNeedValidInputs: "有効な値が必要です",
|
|
44
|
+
labelInvalidPrincipal:
|
|
45
|
+
"借入額は0より大きく、初期手数料を上回る必要があります。",
|
|
46
|
+
labelInvalidTerm: "1か月から600か月までの整数を入力してください。",
|
|
47
|
+
labelInvalidFees: "手数料に負の値は使えません。",
|
|
48
|
+
labelInvalidPayment: "受取額を返済できる正の月々の支払額を入力してください。",
|
|
49
|
+
labelInvalidRate: "名目年利は0%から100%の範囲で入力してください。",
|
|
50
|
+
labelNoComparison: "比較するには両方のオファーを入力してください。",
|
|
51
|
+
labelTimeline: "支払いの流れ",
|
|
52
|
+
labelStart: "開始時",
|
|
53
|
+
labelMonthly: "毎月",
|
|
54
|
+
labelEnd: "最終月",
|
|
55
|
+
labelFormula: "比較の仕組み",
|
|
56
|
+
labelFormulaText:
|
|
57
|
+
"実質年コストは、受取額と割引後の支払いおよび手数料を一致させる月利を年率に換算したものです。",
|
|
58
|
+
labelApproximation:
|
|
59
|
+
"同じ月額支払い、据置期間なし、入力した手数料だけを前提にした概算です。貸し手の公式APRや実質年率の代わりにはなりません。",
|
|
60
|
+
labelScenarioSummary: "シナリオの概要",
|
|
61
|
+
currencyCode: "JPY",
|
|
62
|
+
currencyLocale: "ja-JP",
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
const faq = [
|
|
66
|
+
{
|
|
67
|
+
question: "金利と実質年コストの違いは何ですか?",
|
|
68
|
+
answer:
|
|
69
|
+
"名目金利は残高にかかる利息を表します。実質年コストは、入力した初期、月額、最終手数料の金額と発生時期も反映します。",
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
question: "金利の代わりに月々の支払額を入力できますか?",
|
|
73
|
+
answer:
|
|
74
|
+
"はい。そのオファーで分かっている月々の支払額を選択してください。受取額、支払いの流れ、手数料に合う月利を推定します。",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
question: "どちらのオファーが安いですか?",
|
|
78
|
+
answer:
|
|
79
|
+
"まず実質年コストを比べ、その後に支払総額と受取額を確認してください。期間や金額が違う場合、割合が低くても総額が高くなることがあります。",
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
question: "これは貸し手の公式APRですか?",
|
|
83
|
+
answer:
|
|
84
|
+
"いいえ。入力内容に基づく透明なシナリオ推定です。税金、保険、支払日、その他の費用は貸し手や地域によって扱いが異なります。",
|
|
85
|
+
},
|
|
86
|
+
];
|
|
87
|
+
|
|
88
|
+
const howTo = [
|
|
89
|
+
{
|
|
90
|
+
name: "金額と期間を入力",
|
|
91
|
+
text: "各オファーについて受け取る金額と月々の返済回数を入力します。",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "分かっている項目を選択",
|
|
95
|
+
text: "オファーに記載された名目年利または月々の支払額を入力します。",
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: "すべての手数料を追加",
|
|
99
|
+
text: "開始時、毎月、終了時に発生する手数料を入力して資金の流れを整えます。",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
name: "比較結果を読む",
|
|
103
|
+
text: "実質年コストを使い、決める前に支払総額と受取額も確認します。",
|
|
104
|
+
},
|
|
105
|
+
];
|
|
106
|
+
|
|
107
|
+
const schemas = [
|
|
108
|
+
{
|
|
109
|
+
"@context": "https://schema.org",
|
|
110
|
+
"@type": "SoftwareApplication",
|
|
111
|
+
name: "ローンAPRシナリオ計算機",
|
|
112
|
+
description: "金利、支払額、手数料を含む2つのローンシナリオを比較します。",
|
|
113
|
+
applicationCategory: "FinanceApplication",
|
|
114
|
+
operatingSystem: "All",
|
|
115
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "JPY" },
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"@context": "https://schema.org",
|
|
119
|
+
"@type": "FAQPage",
|
|
120
|
+
mainEntity: faq.map((item) => ({
|
|
121
|
+
"@type": "Question",
|
|
122
|
+
name: item.question,
|
|
123
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
124
|
+
})),
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"@context": "https://schema.org",
|
|
128
|
+
"@type": "HowTo",
|
|
129
|
+
name: "2つのローンオファーを比較する",
|
|
130
|
+
description: "2つの資金の流れをモデル化して実質年コストを比較します。",
|
|
131
|
+
step: howTo.map((step, index) => ({
|
|
132
|
+
"@type": "HowToStep",
|
|
133
|
+
position: index + 1,
|
|
134
|
+
name: step.name,
|
|
135
|
+
text: step.text,
|
|
136
|
+
})),
|
|
137
|
+
},
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
export const content: ToolLocaleContent<LoanAprScenarioCalculatorUI> = {
|
|
141
|
+
slug: "loan-apr-scenario-calculator",
|
|
142
|
+
title: "ローンAPRシナリオ計算機",
|
|
143
|
+
description:
|
|
144
|
+
"2つのローンオファーについて金利、返済予定、手数料を比較し、決める前に実質年コストを推定します。",
|
|
145
|
+
ui,
|
|
146
|
+
faq,
|
|
147
|
+
bibliography,
|
|
148
|
+
howTo,
|
|
149
|
+
schemas,
|
|
150
|
+
seo: [
|
|
151
|
+
{ type: "title", text: "実質年コストでローンを比較する", level: 2 },
|
|
152
|
+
{
|
|
153
|
+
type: "paragraph",
|
|
154
|
+
html: "<p>広告された金利が低くても、事務手数料、月額サービス料、最後の費用が含まれていないことがあります。この計算機は2つのオファーを比較できる資金の流れに変換し、実際に受け取るお金のコストを見えるようにします。</p>",
|
|
155
|
+
},
|
|
156
|
+
{ type: "title", text: "推定に含まれるもの", level: 3 },
|
|
157
|
+
{
|
|
158
|
+
type: "paragraph",
|
|
159
|
+
html: "<p>各オファーの借入額、期間、名目年利または月々の支払額、各時点の手数料を入力します。受取額と割引後の支払いおよび手数料が釣り合う月利を求め、年率に換算します。</p>",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
type: "paragraph",
|
|
163
|
+
html: "<p>そのため、信用の価格を金利だけで判断しません。公式のAPRには地域ごとの規則や、ここで入力していない条件が含まれる可能性があるため、結果は推定値です。</p>",
|
|
164
|
+
},
|
|
165
|
+
{ type: "title", text: "結果の読み方", level: 3 },
|
|
166
|
+
{
|
|
167
|
+
type: "list",
|
|
168
|
+
items: [
|
|
169
|
+
"金額と期間が近い場合は実質年コストを比べる。",
|
|
170
|
+
"支払総額で実際の負担額を確認する。",
|
|
171
|
+
"初期手数料後の受取額を確認する。",
|
|
172
|
+
"支払いの流れで各費用の発生時期を見る。",
|
|
173
|
+
],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
type: "tip",
|
|
177
|
+
title: "最後は貸し手の説明書類を確認する",
|
|
178
|
+
html: "<p>実際の契約では、同じ条件で貸し手のAPRまたは実質年率と比較してください。保険、税金、変動金利、繰上返済手数料、未入力の費用を確認しましょう。</p>",
|
|
179
|
+
},
|
|
180
|
+
{ type: "title", text: "シナリオ推定の限界", level: 3 },
|
|
181
|
+
{
|
|
182
|
+
type: "paragraph",
|
|
183
|
+
html: "<p>同じ月々の支払い、据置期間なし、開始時または期間中または最終月の手数料を前提にします。返済能力、審査、適法性、商品の公式APRを保証するものではありません。</p>",
|
|
184
|
+
},
|
|
185
|
+
],
|
|
186
|
+
};
|