@jjlmoya/utils-finance 1.46.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 +4 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- 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/tools.ts +2 -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: "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
|
+
};
|
|
@@ -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
|
+
labelPrincipal: "대출 금액",
|
|
12
|
+
labelTerm: "상환 기간",
|
|
13
|
+
labelMonths: "개월",
|
|
14
|
+
labelInputBasis: "어떤 정보를 알고 있나요?",
|
|
15
|
+
labelAnnualRate: "명목 연이율",
|
|
16
|
+
labelMonthlyPayment: "알고 있는 월 상환액",
|
|
17
|
+
labelUpfrontFees: "초기 수수료",
|
|
18
|
+
labelMonthlyFees: "월 수수료",
|
|
19
|
+
labelFinalFees: "최종 수수료",
|
|
20
|
+
labelOfferNameA: "상품 A",
|
|
21
|
+
labelOfferNameB: "상품 B",
|
|
22
|
+
labelRateMode: "금리를 알고 있어요",
|
|
23
|
+
labelPaymentMode: "상환액을 알고 있어요",
|
|
24
|
+
labelPreset: "비교 시작",
|
|
25
|
+
labelPresetBalanced: "균형 잡힌 상품",
|
|
26
|
+
labelPresetLowFee: "낮은 금리와 수수료",
|
|
27
|
+
labelPresetLongTerm: "긴 상환 기간",
|
|
28
|
+
labelReset: "값 초기화",
|
|
29
|
+
labelCopy: "비교 복사",
|
|
30
|
+
labelCopied: "비교를 복사했습니다",
|
|
31
|
+
labelEffectiveApr: "실질 연간 비용",
|
|
32
|
+
labelNominalRate: "명목 금리",
|
|
33
|
+
labelMonthlyPaymentResult: "월 상환액",
|
|
34
|
+
labelTotalPaid: "총 납부액",
|
|
35
|
+
labelTotalFees: "시나리오 수수료",
|
|
36
|
+
labelFinanceCost: "원금 초과 비용",
|
|
37
|
+
labelNetCashReceived: "초기 수수료 후 수령액",
|
|
38
|
+
labelWinner: "어느 상품이 더 저렴한가요?",
|
|
39
|
+
labelLowerCost: "실질 비용이 낮음",
|
|
40
|
+
labelHigherCost: "실질 비용이 높음",
|
|
41
|
+
labelTie: "거의 같음",
|
|
42
|
+
labelNeedValidInputs: "유효한 값이 필요합니다",
|
|
43
|
+
labelInvalidPrincipal: "대출 금액은 0보다 크고 초기 수수료보다 커야 합니다.",
|
|
44
|
+
labelInvalidTerm: "1개월에서 600개월 사이의 정수를 입력하세요.",
|
|
45
|
+
labelInvalidFees: "수수료는 음수가 될 수 없습니다.",
|
|
46
|
+
labelInvalidPayment:
|
|
47
|
+
"수령한 순액을 상환할 수 있는 양의 월 상환액을 입력하세요.",
|
|
48
|
+
labelInvalidRate: "명목 연이율은 0%에서 100% 사이여야 합니다.",
|
|
49
|
+
labelNoComparison: "두 상품을 모두 입력해야 비교할 수 있습니다.",
|
|
50
|
+
labelTimeline: "상환 일정",
|
|
51
|
+
labelStart: "시작",
|
|
52
|
+
labelMonthly: "매월",
|
|
53
|
+
labelEnd: "마지막 달",
|
|
54
|
+
labelFormula: "비교 방식",
|
|
55
|
+
labelFormulaText:
|
|
56
|
+
"실질 연간 비용은 수령액과 할인된 상환액 및 수수료가 같아지도록 하는 월 이율을 연율로 환산한 값입니다.",
|
|
57
|
+
labelApproximation:
|
|
58
|
+
"동일한 월 상환액, 거치 기간 없음, 입력한 수수료만을 가정한 추정치입니다. 대출기관의 공식 APR을 대신하지 않습니다.",
|
|
59
|
+
labelScenarioSummary: "시나리오 요약",
|
|
60
|
+
currencyCode: "KRW",
|
|
61
|
+
currencyLocale: "ko-KR",
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const faq = [
|
|
65
|
+
{
|
|
66
|
+
question: "이자율과 실질 연간 비용의 차이는 무엇인가요?",
|
|
67
|
+
answer:
|
|
68
|
+
"명목 금리는 잔액에 부과되는 이자를 나타냅니다. 실질 연간 비용은 입력한 초기, 월, 최종 수수료의 금액과 시점도 반영합니다.",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
question: "이자율 대신 월 상환액을 입력할 수 있나요?",
|
|
72
|
+
answer:
|
|
73
|
+
"네. 해당 상품에서 알고 있는 월 상환액을 선택하세요. 수령액, 상환 흐름, 수수료에 맞는 월 이율을 계산합니다.",
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
question: "어느 상품이 더 저렴한가요?",
|
|
77
|
+
answer:
|
|
78
|
+
"먼저 실질 연간 비용을 비교한 뒤 총 납부액과 수령액을 확인하세요. 기간이나 금액이 다르면 비율이 낮아도 총비용은 높을 수 있습니다.",
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
question: "대출기관의 공식 APR인가요?",
|
|
82
|
+
answer:
|
|
83
|
+
"아닙니다. 입력값에 기반한 투명한 시나리오 추정치입니다. 세금, 보험, 납부일과 기타 비용은 대출기관과 지역에 따라 다르게 계산될 수 있습니다.",
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
|
|
87
|
+
const howTo = [
|
|
88
|
+
{
|
|
89
|
+
name: "금액과 기간 입력",
|
|
90
|
+
text: "각 상품에서 받을 금액과 월 상환 횟수를 입력합니다.",
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: "알고 있는 정보 선택",
|
|
94
|
+
text: "상품에 표시된 명목 연이율 또는 월 상환액을 입력합니다.",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
name: "모든 수수료 추가",
|
|
98
|
+
text: "초기, 매월, 최종 수수료를 입력해 전체 현금 흐름을 반영합니다.",
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: "비교 결과 읽기",
|
|
102
|
+
text: "실질 연간 비용을 사용하고 결정하기 전에 총 납부액과 수령액도 확인합니다.",
|
|
103
|
+
},
|
|
104
|
+
];
|
|
105
|
+
|
|
106
|
+
const schemas = [
|
|
107
|
+
{
|
|
108
|
+
"@context": "https://schema.org",
|
|
109
|
+
"@type": "SoftwareApplication",
|
|
110
|
+
name: "대출 APR 시나리오 계산기",
|
|
111
|
+
description: "금리, 상환액, 수수료가 있는 두 대출 시나리오를 비교합니다.",
|
|
112
|
+
applicationCategory: "FinanceApplication",
|
|
113
|
+
operatingSystem: "All",
|
|
114
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "KRW" },
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"@context": "https://schema.org",
|
|
118
|
+
"@type": "FAQPage",
|
|
119
|
+
mainEntity: faq.map((item) => ({
|
|
120
|
+
"@type": "Question",
|
|
121
|
+
name: item.question,
|
|
122
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
123
|
+
})),
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"@context": "https://schema.org",
|
|
127
|
+
"@type": "HowTo",
|
|
128
|
+
name: "두 대출 상품 비교하기",
|
|
129
|
+
description:
|
|
130
|
+
"두 대출의 현금 흐름을 모델링하고 실질 연간 비용을 비교합니다.",
|
|
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
|
+
"두 대출 상품의 금리, 상환 일정, 수수료를 비교해 결정 전에 실질 연간 비용을 추정합니다.",
|
|
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>광고된 금리가 낮아도 취급 수수료, 월 서비스 비용, 최종 비용이 숨어 있을 수 있습니다. 이 계산기는 두 상품의 세부 정보를 비교 가능한 현금 흐름으로 바꿔 실제로 받는 돈의 비용을 보여 줍니다.</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
|
+
};
|