@jjlmoya/utils-finance 1.34.0 → 1.36.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/index.ts +1 -0
- package/src/pages/[locale]/[slug].astro +1 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/inflationPurchasingPower/bibliography.astro +14 -0
- package/src/tool/inflationPurchasingPower/bibliography.ts +12 -0
- package/src/tool/inflationPurchasingPower/component.astro +79 -0
- package/src/tool/inflationPurchasingPower/controller.ts +82 -0
- package/src/tool/inflationPurchasingPower/dom-views.ts +99 -0
- package/src/tool/inflationPurchasingPower/entry.ts +31 -0
- package/src/tool/inflationPurchasingPower/evaluator.ts +18 -0
- package/src/tool/inflationPurchasingPower/i18n/de.ts +56 -0
- package/src/tool/inflationPurchasingPower/i18n/en.ts +131 -0
- package/src/tool/inflationPurchasingPower/i18n/es.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/fr.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/id.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/it.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/ja.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/ko.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/nl.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/pl.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/pt.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/ru.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/sv.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/tr.ts +44 -0
- package/src/tool/inflationPurchasingPower/i18n/zh.ts +44 -0
- package/src/tool/inflationPurchasingPower/index.ts +11 -0
- package/src/tool/inflationPurchasingPower/inflation-purchasing-power-timeline.css +402 -0
- package/src/tool/inflationPurchasingPower/logic.test.ts +35 -0
- package/src/tool/inflationPurchasingPower/logic.ts +92 -0
- package/src/tool/inflationPurchasingPower/seo.astro +14 -0
- package/src/tool/inflationPurchasingPower/storage.ts +29 -0
- package/src/tool/inflationPurchasingPower/ui.ts +42 -0
- package/src/tool/mortgageExtraPaymentPlanner/bibliography.astro +14 -0
- package/src/tool/mortgageExtraPaymentPlanner/bibliography.ts +12 -0
- package/src/tool/mortgageExtraPaymentPlanner/component.astro +138 -0
- package/src/tool/mortgageExtraPaymentPlanner/controller.ts +150 -0
- package/src/tool/mortgageExtraPaymentPlanner/currency-defaults.ts +25 -0
- package/src/tool/mortgageExtraPaymentPlanner/dom-views.ts +161 -0
- package/src/tool/mortgageExtraPaymentPlanner/entry.ts +31 -0
- package/src/tool/mortgageExtraPaymentPlanner/evaluator.ts +24 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/de.ts +74 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/en.ts +185 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/es.ts +49 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/fr.ts +25 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/id.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/it.ts +20 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/ja.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/ko.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/nl.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/pl.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/pt.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/ru.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/sv.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/tr.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/i18n/zh.ts +18 -0
- package/src/tool/mortgageExtraPaymentPlanner/index.ts +11 -0
- package/src/tool/mortgageExtraPaymentPlanner/logic.test.ts +67 -0
- package/src/tool/mortgageExtraPaymentPlanner/logic.ts +263 -0
- package/src/tool/mortgageExtraPaymentPlanner/mortgage-amortization-extra-payment-planner.css +551 -0
- package/src/tool/mortgageExtraPaymentPlanner/seo.astro +14 -0
- package/src/tool/mortgageExtraPaymentPlanner/storage.ts +65 -0
- package/src/tool/mortgageExtraPaymentPlanner/ui.ts +48 -0
- package/src/tools.ts +3 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'kalkulator-amortisasi-hipotek-pembayaran-ekstra';
|
|
7
|
+
const title = 'Kalkulator amortisasi hipotek dengan pembayaran ekstra';
|
|
8
|
+
const description = 'Rencanakan hipotek berbunga tetap dengan pembayaran pokok ekstra berkala atau sekali bayar, bandingkan bunga yang dihemat, dan tampilkan semua jumlah dalam satu mata uang.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: 'Mata uang', currencyHelp: 'Pilih sekali. Semua jumlah dalam rencana akan memakai mata uang ini.', principalLabel: 'Pokok awal tersisa', principalHelp: 'Jumlah yang masih harus dibayar saat rencana dimulai', annualRateLabel: 'Suku bunga tahunan', annualRateHelp: 'Suku bunga nominal tetap untuk setiap periode pembayaran', termLabel: 'Sisa tenor dalam tahun', termHelp: 'Durasi rencana sebelum pembayaran ekstra', frequencyLabel: 'Frekuensi pembayaran', recurringExtraLabel: 'Pembayaran pokok ekstra berkala', recurringExtraHelp: 'Pokok tambahan yang dibayar setiap periode', oneOffExtraLabel: 'Pembayaran pokok ekstra sekali', oneOffExtraHelp: 'Satu pembayaran pokok pada periode di bawah', oneOffPeriodLabel: 'Periode pembayaran sekali', oneOffPeriodHelp: '1 berarti periode pembayaran pertama', startDateLabel: 'Tanggal pembayaran pertama', startDateHelp: 'Digunakan untuk memperkirakan tanggal lunas', extraSectionTitle: 'Rencana pembayaran ekstra', outputTitle: 'Perjalanan saldo', regularPaymentLabel: 'Pembayaran biasa sebelum ekstra', interestSavedLabel: 'Bunga yang dihemat', periodsSavedLabel: 'periode lebih cepat', payoffDateLabel: 'Perkiraan pelunasan', totalInterestLabel: 'Bunga yang dibayar dengan rencana ini', totalExtraLabel: 'Pokok ekstra yang dibayar', baselineLabel: 'Jadwal awal', planLabel: 'Dengan pembayaran ekstra Anda', balanceSceneLabel: 'Saldo hipotek awal dibandingkan dengan saldo setelah pembayaran ekstra', balanceSceneHelp: 'Garis putus-putus menunjukkan jadwal awal. Garis tembaga menunjukkan rencana Anda. Tanda hijau menunjukkan pokok ekstra.', annualScheduleTitle: 'Jadwal pembayaran tahunan', yearLabel: 'Tahun', paymentLabel: 'Total dibayar', interestLabel: 'Bunga', principalPaidLabel: 'Pokok terjadwal', extraPaidLabel: 'Pokok ekstra', endingBalanceLabel: 'Saldo akhir', formulaTitle: 'Model dan batasan', formulaText: 'Kalkulator memakai model amortisasi berbunga tetap. Setiap periode menghitung bunga dari saldo awal, menerapkan pembayaran biasa ke bunga dan pokok, lalu menerapkan pokok ekstra berkala dan sekali bayar. Suku bunga tahunan dibagi dengan jumlah periode. Pembayaran terakhir dikurangi jika saldo tersisa lebih kecil dari pembayaran yang direncanakan. Saat mata uang diganti, jumlah uang dikonversi secara internal dengan rasio perencanaan lalu skenario yang sama dihitung ulang.', riskNote: 'Ini adalah perkiraan, bukan laporan pemberi pinjaman. Pemilih mata uang memakai rasio perencanaan internal, bukan kurs pasar langsung. Model tidak mencakup bunga variabel, biaya, asuransi, pajak, bunga harian, penalti, atau aturan kontrak.', emptyMessage: 'Masukkan pokok, suku bunga, tenor, dan tanggal yang valid untuk melihat rencana.', invalidInputMessage: 'Periksa input untuk melihat rencana', currencyOptions: { AUD: 'A$ AUD · dolar Australia', BRL: 'R$ BRL · real Brasil', CAD: 'C$ CAD · dolar Kanada', CHF: 'CHF · franc Swiss', CNY: '¥ CNY · yuan Tiongkok', CZK: 'Kč CZK · koruna Ceko', DKK: 'kr DKK · krone Denmark', EUR: '€ EUR · euro', GBP: '£ GBP · pound sterling', IDR: 'Rp IDR · rupiah Indonesia', INR: '₹ INR · rupee India', JPY: '¥ JPY · yen Jepang', KRW: '₩ KRW · won Korea Selatan', MXN: 'MX$ MXN · peso Meksiko', NOK: 'kr NOK · krone Norwegia', PLN: 'zł PLN · zloty Polandia', RUB: '₽ RUB · rubel Rusia', SEK: 'kr SEK · krona Swedia', TRY: '₺ TRY · lira Turki', USD: '$ USD · dolar Amerika Serikat' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: 'Bulanan', biweekly: 'Setiap dua minggu', weekly: 'Mingguan' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: 'Bagaimana pembayaran ekstra mengubah jadwal hipotek?', answer: 'Kalkulator mempertahankan pembayaran biasa dan menerapkan pokok ekstra setelah setiap pembayaran terjadwal. Saldo dapat menjadi nol lebih cepat dan total bunga dapat turun. Pemberi pinjaman mungkin menerapkan pelunasan berbeda, jadi bandingkan hasilnya dengan kontrak.' }, { question: 'Apa yang terjadi saat mata uang diganti?', answer: 'Jumlah uang dikonversi ke mata uang baru memakai rasio perencanaan internal, lalu skenario yang sama dihitung ulang. Ini bukan kuotasi pasar langsung, jadi gunakan untuk perencanaan.' }, { question: 'Mengapa hanya ada satu pemilih mata uang?', answer: 'Mata uang yang dipilih berlaku untuk pokok, pembayaran ekstra, pembayaran biasa, bunga, saldo, dan tabel tahunan. Satu satuan bersama membuat formulir jelas dan mencegah pencampuran mata uang.' }, { question: 'Apakah kalkulator menghitung pembayaran nyata dari bank?', answer: 'Kalkulator memperkirakan jadwal berbunga tetap. Ia tidak mengetahui aturan kontrak, perhitungan hari, biaya, asuransi, pajak, perubahan suku bunga, penalti, atau perlakuan pelunasan dipercepat. Gunakan laporan dan kontrak untuk angka resmi.' }];
|
|
13
|
+
const howTo = [{ name: 'Atur mata uang', text: 'Pilih satu mata uang yang akan digunakan pada semua jumlah dan hasil.' }, { name: 'Jelaskan pinjaman', text: 'Masukkan pokok, suku bunga nominal tahunan, tenor tersisa, tanggal pembayaran pertama, dan frekuensi.' }, { name: 'Tambahkan pembayaran ekstra', text: 'Masukkan jumlah berkala, lalu tambahkan pembayaran sekali dan periodenya jika perlu.' }, { name: 'Baca perbandingan', text: 'Bandingkan saldo awal dengan rencana Anda, lalu lihat bunga, periode, tanggal lunas, dan tabel tahunan.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'IDR' }, inLanguage: 'id' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: 'Rencanakan dampak pembayaran hipotek ekstra', level: 2 }, { type: 'paragraph', html: '<p>Jadwal amortisasi memisahkan setiap pembayaran menjadi bunga dan pokok. Jika Anda membayar pokok tambahan dan mempertahankan pembayaran biasa, saldo dapat lunas lebih cepat. Alat ini membandingkan jalur saldo awal dengan pembayaran ekstra berkala dan sekali bayar.</p>' }, { type: 'paragraph', html: '<p>Hasilnya adalah perkiraan untuk pinjaman berbunga tetap. Model menggunakan pokok, suku bunga nominal tahunan, jumlah periode, dan saldo yang berubah setelah setiap pembayaran. Kontrak dapat memakai perhitungan hari, pembulatan, biaya, atau aturan pembayaran ekstra yang berbeda.</p>' }, { type: 'title', text: 'Cara kerja perhitungan amortisasi', level: 3 }, { type: 'paragraph', html: '<p>Setiap periode menghitung bunga dari saldo awal. Suku bunga tahunan dibagi dengan jumlah periode per tahun. Pembayaran biasa kemudian dibagi antara bunga dan pokok, lalu pembayaran ekstra mengurangi saldo lebih jauh.</p>' }, { type: 'table', headers: ['Angka', 'Perhitungan', 'Makna'], rows: [['Suku bunga periode', 'Bunga tahunan / periode per tahun', 'Bunga yang diterapkan tiap periode'], ['Pembayaran biasa', 'Rumus pembayaran tetap', 'Pembayaran sebelum pokok ekstra'], ['Bunga periode', 'Saldo awal x suku bunga periode', 'Bunga menurut model'], ['Saldo setelah bayar', 'Saldo - pokok - ekstra', 'Jumlah yang masih terutang']] }, { type: 'title', text: 'Apa yang benar-benar berubah', level: 3 }, { type: 'paragraph', html: '<p>Pembayaran ekstra mengurangi pokok secara langsung dalam model ini, sehingga bunga berikutnya dihitung dari saldo yang lebih kecil. Perhatikan bunga yang dihemat dan periode yang dihemat: satu menunjukkan biaya pembiayaan yang berkurang, yang lain menunjukkan pelunasan lebih awal.</p>' }, { type: 'paragraph', html: '<p>Pemberi pinjaman dapat menurunkan pembayaran, mempertahankan tenor, atau meminta permohonan resmi. Periksa batas tahunan, jumlah minimum, dan kompensasi sebelum membayar.</p>' }, { type: 'title', text: 'Gunakan mata uang tanpa mencampur perhitungan', level: 3 }, { type: 'paragraph', html: '<p>Pilih satu mata uang sebelum memasukkan nilai. Pemilih berlaku untuk pokok, ekstra, pembayaran, bunga, dan saldo. Saat diganti, nilai dikonversi secara internal dan struktur skenario tetap sama.</p>' }, { type: 'list', items: ['Pilih mata uang anggaran atau laporan pinjaman.', 'Masukkan pokok dan pembayaran ekstra dalam satuan tersebut.', 'Anggap pergantian sebagai perubahan satuan perencanaan, bukan perubahan kontrak.', 'Periksa frekuensi pembayaran dan aturan pelunasan dipercepat.', 'Gunakan tabel tahunan untuk melihat dampak pembayaran sekali.'] }, { type: 'title', text: 'Contoh sederhana membaca hasil', level: 3 }, { type: 'paragraph', html: '<p>Dengan pokok 250.000 EUR, bunga tetap 3,5%, dan tenor 25 tahun, tambahan 150 EUR tiap periode serta 5.000 EUR pada periode 12 tidak mengubah pembayaran biasa awal dalam model. Keduanya menurunkan saldo dan bunga berikutnya.</p>' }, { type: 'paragraph', html: '<p>Jika berpindah ke USD, alat ini mengonversi nilai dengan rasio internal dan menghitung ulang skenario yang sama. Ini berguna untuk anggaran internasional, bukan nilai pasar atau kurs terkini.</p>' }, { type: 'title', text: 'Periksa sebelum mengambil tindakan', level: 3 }, { type: 'list', items: ['Tanyakan apakah ekstra mengurangi tenor atau pembayaran.', 'Periksa batas, minimum, dan kompensasi.', 'Pastikan suku bunga nominal, efektif, tetap, atau variabel.', 'Bandingkan saldo dengan laporan terbaru.', 'Catat kurs dan tanggal untuk anggaran internasional.'] }, { type: 'tip', title: 'Grafik adalah perbandingan, bukan janji', html: '<p>Garis putus-putus menunjukkan jadwal awal tanpa ekstra; garis tembaga mengikuti input Anda. Keduanya tidak mencakup biaya, asuransi, pajak, bunga harian, perubahan kurs, atau aturan khusus pemberi pinjaman.</p>' }, { type: 'title', text: 'Batasan kalkulator hipotek ini', level: 3 }, { type: 'paragraph', html: '<p>Alat ini memodelkan pinjaman berbunga tetap dengan pembayaran teratur dan pokok ekstra opsional. Gunakan untuk mengeksplorasi skenario dan menyiapkan pertanyaan; alat ini bukan penilaian kemampuan bayar, nasihat pajak atau hukum, prakiraan kurs, atau pengganti laporan bank.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { bibliography } from "../bibliography";
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from "schema-dts";
|
|
3
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from "../ui";
|
|
5
|
+
|
|
6
|
+
const slug = "calcolatore-ammortamento-mutuo-pagamenti-extra";
|
|
7
|
+
const title = "Calcolatore di ammortamento del mutuo con pagamenti extra";
|
|
8
|
+
const description = "Pianifica un mutuo a tasso fisso con pagamenti extra ricorrenti o una tantum, confronta gli interessi risparmiati e visualizza ogni importo in un'unica valuta.";
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: "Valuta", currencyHelp: "Scegline una. Tutti gli importi del piano useranno questa valuta.", principalLabel: "Capitale iniziale residuo", principalHelp: "Importo ancora dovuto all'inizio del piano", annualRateLabel: "Tasso annuo", annualRateHelp: "Tasso nominale fisso applicato a ogni periodo", termLabel: "Durata residua in anni", termHelp: "Durata prevista prima dei pagamenti extra", frequencyLabel: "Frequenza dei pagamenti", recurringExtraLabel: "Pagamento extra ricorrente", recurringExtraHelp: "Capitale aggiuntivo pagato in ogni periodo", oneOffExtraLabel: "Pagamento extra una tantum", oneOffExtraHelp: "Un solo pagamento di capitale nel periodo indicato", oneOffPeriodLabel: "Periodo del pagamento una tantum", oneOffPeriodHelp: "1 indica il primo periodo", startDateLabel: "Data del primo pagamento", startDateHelp: "Serve a stimare la data di estinzione", extraSectionTitle: "Piano dei pagamenti extra", outputTitle: "Andamento del saldo", regularPaymentLabel: "Rata normale prima degli extra", interestSavedLabel: "Interessi risparmiati", periodsSavedLabel: "periodi risparmiati", payoffDateLabel: "Estinzione stimata", totalInterestLabel: "Interessi pagati con questo piano", totalExtraLabel: "Capitale extra pagato", baselineLabel: "Piano originale", planLabel: "Con i tuoi pagamenti extra", balanceSceneLabel: "Saldo originale del mutuo rispetto al saldo dopo i pagamenti extra", balanceSceneHelp: "La linea tratteggiata mostra il piano originale. La linea color rame mostra il tuo piano. I segni verdi indicano capitale extra.", annualScheduleTitle: "Piano annuale dei pagamenti", yearLabel: "Anno", paymentLabel: "Totale pagato", interestLabel: "Interessi", principalPaidLabel: "Capitale previsto", extraPaidLabel: "Capitale extra", endingBalanceLabel: "Saldo finale", formulaTitle: "Modello e limiti", formulaText: "Il calcolatore usa un modello di ammortamento a tasso fisso. Ogni periodo calcola gli interessi sul saldo iniziale, applica la rata normale a interessi e capitale, poi applica gli extra ricorrenti e una tantum. Il tasso annuo viene diviso per il numero di periodi. Se il saldo è inferiore alla rata prevista, l'ultima rata viene ridotta. Cambiando valuta, gli importi vengono convertiti con un rapporto interno di pianificazione e lo stesso scenario viene ricalcolato.", riskNote: "È una stima, non un estratto del finanziatore. Il selettore usa rapporti interni di pianificazione, non cambi di mercato in tempo reale. Non include tassi variabili, spese, assicurazioni, imposte, interessi giornalieri, penali o regole contrattuali.", emptyMessage: "Inserisci capitale, tasso, durata e data validi per vedere il piano.", invalidInputMessage: "Controlla i dati per vedere il piano", currencyOptions: { AUD: "A$ AUD · dollaro australiano", BRL: "R$ BRL · real brasiliano", CAD: "C$ CAD · dollaro canadese", CHF: "CHF · franco svizzero", CNY: "¥ CNY · yuan cinese", CZK: "Kč CZK · corona ceca", DKK: "kr DKK · corona danese", EUR: "€ EUR · euro", GBP: "£ GBP · sterlina britannica", IDR: "Rp IDR · rupia indonesiana", INR: "₹ INR · rupia indiana", JPY: "¥ JPY · yen giapponese", KRW: "₩ KRW · won sudcoreano", MXN: "MX$ MXN · peso messicano", NOK: "kr NOK · corona norvegese", PLN: "zł PLN · zloty polacco", RUB: "₽ RUB · rublo russo", SEK: "kr SEK · corona svedese", TRY: "₺ TRY · lira turca", USD: "$ USD · dollaro statunitense" }, currencySymbols: { AUD: "A$", BRL: "R$", CAD: "C$", CHF: "CHF", CNY: "¥", CZK: "Kč", DKK: "kr", EUR: "€", GBP: "£", IDR: "Rp", INR: "₹", JPY: "¥", KRW: "₩", MXN: "MX$", NOK: "kr", PLN: "zł", RUB: "₽", SEK: "kr", TRY: "₺", USD: "$" }, frequencyOptions: { monthly: "Mensile", biweekly: "Ogni due settimane", weekly: "Settimanale" },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: "Come cambiano il piano i pagamenti extra?", answer: "Il calcolatore mantiene la rata normale e applica il capitale extra dopo ogni pagamento previsto. Il saldo può arrivare a zero prima e gli interessi totali possono diminuire. Il finanziatore può applicare un rimborso anticipato in modo diverso: confronta il risultato con il contratto." }, { question: "Cosa succede cambiando valuta?", answer: "Gli importi vengono convertiti nella nuova valuta con un rapporto interno di pianificazione, poi lo stesso scenario viene ricalcolato. Non è un cambio in tempo reale: usa il risultato per pianificare, non come quotazione corrente." }, { question: "Perché c'è un solo selettore di valuta?", answer: "La valuta scelta vale per capitale, extra, rate, interessi, saldi e tabella annuale. Un'unica unità mantiene il modulo leggibile e impedisce di mescolare valute." }, { question: "Calcola la rata reale del mio finanziatore?", answer: "Stima un piano a tasso fisso. Non conosce convenzioni sui giorni, spese, assicurazioni, imposte, revisioni, penali o regole per il rimborso anticipato. Per il dato contrattuale usa estratto e contratto." }];
|
|
13
|
+
const howTo = [{ name: "Imposta la valuta", text: "Scegli la valuta unica da applicare a ogni importo e risultato." }, { name: "Descrivi il mutuo", text: "Inserisci capitale, tasso nominale annuo, durata residua, prima data e frequenza." }, { name: "Aggiungi pagamenti extra", text: "Inserisci un extra ricorrente e, se vuoi, una somma una tantum con il relativo periodo." }, { name: "Leggi il confronto", text: "Confronta il saldo originale con il tuo piano e controlla interessi, periodi, data stimata e tabella annuale." }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { "@context": "https://schema.org", "@type": "FAQPage", mainEntity: faq.map((item) => ({ "@type": "Question", name: item.question, acceptedAnswer: { "@type": "Answer", text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { "@context": "https://schema.org", "@type": "HowTo", name: title, description, step: howTo.map((step, index) => ({ "@type": "HowToStep", position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { "@context": "https://schema.org", "@type": "SoftwareApplication", name: title, description, applicationCategory: "FinanceApplication", operatingSystem: "All", offers: { "@type": "Offer", price: "0", priceCurrency: "EUR" }, inLanguage: "it" };
|
|
17
|
+
const seo: ToolLocaleContent["seo"] = [
|
|
18
|
+
{ type: "title", text: "Pianifica cosa cambiano i pagamenti extra", level: 2 }, { type: "paragraph", html: "<p>Un piano di ammortamento separa ogni rata tra interessi e capitale. Pagando capitale aggiuntivo e lasciando invariata la rata normale, il saldo può arrivare a zero prima. Questo strumento confronta il percorso originale con quello creato dai tuoi pagamenti extra ricorrenti e una tantum.</p>" }, { type: "paragraph", html: "<p>Il risultato è una stima per un mutuo a tasso fisso. Usa capitale, tasso nominale annuo, numero di periodi e un saldo che cambia dopo ogni rata. Giorni di calcolo, arrotondamenti, spese e istruzioni del contratto possono essere diversi.</p>" }, { type: "title", text: "Come funziona il calcolo di ammortamento", level: 3 }, { type: "paragraph", html: "<p>Ogni periodo calcola gli interessi sul saldo iniziale. Il tasso annuo viene diviso per i periodi dell'anno. La rata normale viene ripartita tra interessi e capitale, quindi gli extra riducono ulteriormente il saldo.</p>" }, { type: "table", headers: ["Voce", "Calcolo", "Interpretazione"], rows: [["Tasso periodico", "Tasso annuo / periodi annui", "Tasso di ogni periodo"], ["Rata normale", "Formula della rata fissa", "Pagamento prima degli extra"], ["Interessi", "Saldo iniziale x tasso periodico", "Interessi previsti dal modello"], ["Saldo dopo il pagamento", "Saldo - capitale - extra", "Importo ancora dovuto"]] }, { type: "title", text: "Cosa cambiano davvero i pagamenti extra", level: 3 }, { type: "paragraph", html: "<p>Nel modello, un pagamento extra riduce direttamente il capitale, quindi gli interessi futuri si calcolano su un saldo minore. Guarda sia gli interessi risparmiati sia i periodi risparmiati: il primo misura il costo evitato, il secondo l'anticipo dell'estinzione.</p>" }, { type: "paragraph", html: "<p>Il finanziatore può ridurre la rata, mantenere la durata o richiedere una domanda formale. Controlla limiti annuali, importi minimi e possibili indennizzi prima di pagare.</p>" }, { type: "title", text: "Usare le valute senza confondere la matematica", level: 3 }, { type: "paragraph", html: "<p>Scegli una valuta prima di inserire gli importi. Il selettore si applica a capitale, extra, rate, interessi e saldi. Cambiandola, gli importi vengono convertiti internamente e la struttura dello scenario rimane uguale.</p>" }, { type: "list", items: ["Scegli la valuta del budget o dell'estratto.", "Inserisci capitale ed extra nella valuta selezionata.", "Considera il cambio come una nuova unità di pianificazione, non come una modifica del contratto.", "Verifica la frequenza ammessa e le regole del rimborso anticipato.", "Controlla la tabella annuale per capire l'effetto della somma una tantum."] }, { type: "title", text: "Un esempio semplice per leggere l'uscita", level: 3 }, { type: "paragraph", html: "<p>Con 250.000 EUR, tasso fisso del 3,5% e 25 anni, un extra di 150 EUR per periodo e 5.000 EUR al periodo 12 non cambiano la rata normale iniziale del modello. Riducono però saldo e interessi futuri.</p>" }, { type: "paragraph", html: "<p>Passando a USD, lo strumento converte gli importi con il rapporto interno e ricalcola lo stesso scenario. È utile per il budget internazionale, non è una valutazione di mercato o una quotazione attuale.</p>" }, { type: "title", text: "Controlli prima di agire", level: 3 }, { type: "list", items: ["Chiedi se l'extra riduce durata o rata.", "Controlla limiti, minimi e indennizzi.", "Conferma se il tasso è nominale, effettivo, fisso o variabile.", "Confronta il saldo con un estratto recente.", "Annota cambio e data per un budget internazionale."] }, { type: "tip", title: "Il grafico confronta, non garantisce", html: "<p>La linea tratteggiata rappresenta il piano originale senza extra; quella color rame segue i dati inseriti. Nessuna include spese, assicurazioni, imposte, interessi giornalieri, movimenti valutari o regole specifiche del finanziatore.</p>" }, { type: "title", text: "Limiti del calcolatore di mutuo", level: 3 }, { type: "paragraph", html: "<p>Lo strumento modella un mutuo ammortizzabile a tasso fisso con pagamenti regolari e capitale extra opzionale. Aiuta a esplorare scenari e preparare domande, ma non valuta la solvibilità, non offre consulenza fiscale o legale e non sostituisce il prospetto del finanziatore.</p>" },
|
|
19
|
+
];
|
|
20
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'mortgage-amortization-extra-payment-planner';
|
|
7
|
+
const title = '繰り上げ返済対応の住宅ローン返済計画';
|
|
8
|
+
const description = '固定金利の住宅ローンに定期的または一度きりの繰り上げ返済を追加し、節約できる利息を比較して、すべての金額を1つの通貨で確認します。';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: '通貨', currencyHelp: '1つだけ選択します。計画内のすべての金額にこの通貨を使います。', principalLabel: '開始時の元金残高', principalHelp: '計画開始時点で残っている借入額', annualRateLabel: '年利', annualRateHelp: '各支払期間に使う名目固定金利', termLabel: '残りの期間(年)', termHelp: '繰り上げ返済を行わない場合の予定期間', frequencyLabel: '支払頻度', recurringExtraLabel: '定期的な繰り上げ返済', recurringExtraHelp: '毎回の支払期間に追加する元金', oneOffExtraLabel: '一度きりの繰り上げ返済', oneOffExtraHelp: '指定した期間に行う1回の元金返済', oneOffPeriodLabel: '一度きりの返済期間', oneOffPeriodHelp: '1は最初の支払期間を表します', startDateLabel: '初回支払日', startDateHelp: '完済予定日の推定に使います', extraSectionTitle: '繰り上げ返済プラン', outputTitle: '残高の推移', regularPaymentLabel: '繰り上げ前の通常返済額', interestSavedLabel: '節約できる利息', periodsSavedLabel: '短縮される期間', payoffDateLabel: '完済予定日', totalInterestLabel: 'このプランで支払う利息', totalExtraLabel: '追加返済する元金', baselineLabel: '元の返済計画', planLabel: '繰り上げ返済あり', balanceSceneLabel: '元の住宅ローン残高と繰り上げ返済後の残高', balanceSceneHelp: '破線は元の計画、銅色の線は入力した計画です。緑の印は追加元金のある期間を示します。', annualScheduleTitle: '年別支払予定表', yearLabel: '年', paymentLabel: '支払総額', interestLabel: '利息', principalPaidLabel: '予定元金', extraPaidLabel: '追加元金', endingBalanceLabel: '年末残高', formulaTitle: 'モデルと制限', formulaText: '固定金利の返済モデルを使います。各期間の開始残高から利息を計算し、通常返済を利息と元金に配分した後、定期および一度きりの繰り上げ返済を適用します。年利は年間の支払回数で割ります。残高が予定返済額より小さい場合、最後の返済額は減額されます。通貨を変更すると内部の計画比率で金額を換算し、同じシナリオを再計算します。', riskNote: 'これは目安であり、金融機関の明細ではありません。通貨選択ではリアルタイムの市場レートではなく内部の計画比率を使います。変動金利、手数料、保険、税金、日割り利息、違約金、契約上の繰り上げ返済規則は含みません。', emptyMessage: '有効な元金、金利、期間、日付を入力すると計画を表示できます。', invalidInputMessage: '計画を表示するには入力を確認してください', currencyOptions: { AUD: 'A$ AUD · オーストラリアドル', BRL: 'R$ BRL · ブラジルレアル', CAD: 'C$ CAD · カナダドル', CHF: 'CHF · スイスフラン', CNY: '¥ CNY · 中国人民元', CZK: 'Kč CZK · チェココルナ', DKK: 'kr DKK · デンマーククローネ', EUR: '€ EUR · ユーロ', GBP: '£ GBP · 英ポンド', IDR: 'Rp IDR · インドネシアルピア', INR: '₹ INR · インドルピー', JPY: '¥ JPY · 日本円', KRW: '₩ KRW · 韓国ウォン', MXN: 'MX$ MXN · メキシコペソ', NOK: 'kr NOK · ノルウェークローネ', PLN: 'zł PLN · ポーランドズロチ', RUB: '₽ RUB · ロシアルーブル', SEK: 'kr SEK · スウェーデンクローナ', TRY: '₺ TRY · トルコリラ', USD: '$ USD · 米ドル' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: '毎月', biweekly: '2週間ごと', weekly: '毎週' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: '繰り上げ返済で返済計画はどう変わりますか?', answer: '通常の返済額を変えず、予定返済の後に追加元金を適用します。そのため残高が早くゼロになり、利息総額が減る場合があります。金融機関の扱いは契約によって異なるため、結果を契約と照合してください。' }, { question: '通貨を変更するとどうなりますか?', answer: '内部の計画比率で金額を新しい通貨に換算し、同じシナリオを再計算します。リアルタイムの為替レートではないため、計画用の目安として使ってください。' }, { question: 'なぜ通貨セレクターは1つだけですか?', answer: '選択した通貨を元金、繰り上げ返済、通常返済、利息、残高、年別表のすべてに適用します。単一の単位にすることで入力を読みやすくし、通貨の混在を防ぎます。' }, { question: '実際の金融機関の返済額を計算できますか?', answer: '固定金利の返済計画を推定しますが、日数計算、手数料、保険、税金、金利変更、違約金、繰り上げ返済の契約条件は把握できません。契約上の金額は明細と契約書で確認してください。' }];
|
|
13
|
+
const howTo = [{ name: '通貨を設定', text: 'すべての金額と結果に使う1つの通貨を選びます。' }, { name: 'ローンを入力', text: '元金、年利、残りの期間、初回支払日、支払頻度を入力します。' }, { name: '繰り上げ返済を追加', text: '定期額を入力し、必要なら一度きりの金額と期間を追加します。' }, { name: '比較を読む', text: '元の残高と計画を比較し、利息、短縮期間、完済日、年別表を確認します。' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'JPY' }, inLanguage: 'ja' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: '繰り上げ返済の効果を計画する', level: 2 }, { type: 'paragraph', html: '<p>返済予定表は各回の支払いを利息と元金に分けます。追加の元金を払い、通常返済額を変えない場合、残高を早くゼロにできます。このツールは元の残高と、定期・一時的な繰り上げ返済を入れた残高を比較します。</p>' }, { type: 'paragraph', html: '<p>結果は固定金利ローンの計画用推定です。元金、名目年利、支払回数、各回の後に変わる残高を使います。契約の手数料、丸め、日数計算、繰り上げ返済の扱いは異なることがあります。</p>' }, { type: 'title', text: '返済計算の仕組み', level: 3 }, { type: 'paragraph', html: '<p>各期間の開始残高に対して利息を計算します。年利を年間の支払回数で割り、通常返済を利息と元金に分け、さらに追加元金を残高から差し引きます。</p>' }, { type: 'table', headers: ['項目', '計算', '意味'], rows: [['期間利率', '年利 / 年間支払回数', '各期間に適用する利率'], ['通常返済', '固定返済の式', '追加返済前の支払額'], ['期間利息', '開始残高 x 期間利率', 'モデルが想定する利息'], ['支払後残高', '開始残高 - 元金 - 追加分', 'まだ残っている金額']] }, { type: 'title', text: '繰り上げ返済で変わるもの', level: 3 }, { type: 'paragraph', html: '<p>このモデルでは追加支払いが元金を直接減らすため、後の利息は小さくなった残高にかかります。節約できる利息と短縮される期間の両方を見ると、費用と完済時期を分けて理解できます。</p>' }, { type: 'paragraph', html: '<p>金融機関は返済額を下げたり期間を維持したり、正式な申請を求めたりすることがあります。年ごとの上限、最低額、手数料を確認してください。</p>' }, { type: 'title', text: '通貨を混ぜずに計画する', level: 3 }, { type: 'paragraph', html: '<p>金額を入力する前に1つの通貨を選びます。元金、追加返済、通常返済、利息、残高に同じ単位を使い、変更時は内部で換算して同じシナリオを計算します。</p>' }, { type: 'list', items: ['家計や金融機関の明細に合わせた通貨を選ぶ。', '元金と追加返済を選択した通貨で入力する。', '通貨変更は計画単位の変更であり、契約変更ではないと考える。', '支払頻度と繰り上げ返済の規則を確認する。', '年別表で一時的な返済の影響を確認する。'] }, { type: 'title', text: '結果を読む簡単な例', level: 3 }, { type: 'paragraph', html: '<p>250,000 EUR、固定年利3.5%、25年の場合、各期間150 EURと12期間目の5,000 EURを追加しても、このモデルの通常返済額は変わりません。ただし残高と後の利息は減ります。</p>' }, { type: 'paragraph', html: '<p>USDに切り替えると、内部の計画比率で金額を換算し、同じシナリオを再計算します。国際的な予算には便利ですが、現在の市場価格や為替の提示ではありません。</p>' }, { type: 'title', text: '実行前に確認すること', level: 3 }, { type: 'list', items: ['追加返済で期間が短くなるか、返済額が下がるかを聞く。', '上限、最低額、手数料を確認する。', '金利が名目・実効・固定・変動のどれかを確認する。', '計算した残高を最新の明細と比べる。', '国際予算では使った為替と日付を記録する。'] }, { type: 'tip', title: 'グラフは比較であり、約束ではありません', html: '<p>破線は追加返済なしの元の計画、銅色の線は入力した計画です。手数料、保険、税金、日割り利息、為替変動、金融機関の契約規則は含まれません。</p>' }, { type: 'title', text: 'この住宅ローン計画の制限', level: 3 }, { type: 'paragraph', html: '<p>固定金利で定期返済し、任意の追加元金を払うローンをモデル化します。シナリオ検討や金融機関への質問には役立ちますが、返済能力の判定、税務・法律助言、為替予測、公式明細の代替にはなりません。</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'mortgage-amortization-extra-payment-planner';
|
|
7
|
+
const title = '추가 상환을 포함한 주택담보대출 상환 계획';
|
|
8
|
+
const description = '고정금리 주택담보대출에 정기 또는 일회성 추가 상환을 적용하고, 절약되는 이자와 상환 기간을 비교하며 모든 금액을 하나의 통화로 확인하세요.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: '통화', currencyHelp: '하나만 선택하세요. 계획의 모든 금액에 이 통화를 사용합니다.', principalLabel: '시작 원금', principalHelp: '계획 시작 시 아직 갚지 않은 금액', annualRateLabel: '연 이자율', annualRateHelp: '각 납부 기간에 적용하는 명목 고정금리', termLabel: '남은 기간(년)', termHelp: '추가 상환 전의 계획 기간', frequencyLabel: '납부 주기', recurringExtraLabel: '정기 추가 상환', recurringExtraHelp: '매 기간 추가로 갚는 원금', oneOffExtraLabel: '일회성 추가 상환', oneOffExtraHelp: '아래 기간에 한 번 납부하는 원금', oneOffPeriodLabel: '일회성 상환 기간', oneOffPeriodHelp: '1은 첫 번째 납부 기간입니다', startDateLabel: '첫 납부일', startDateHelp: '예상 완납일을 계산하는 데 사용합니다', extraSectionTitle: '추가 상환 계획', outputTitle: '잔액 변화', regularPaymentLabel: '추가 상환 전 정기 납부액', interestSavedLabel: '절약되는 이자', periodsSavedLabel: '단축되는 기간', payoffDateLabel: '예상 완납일', totalInterestLabel: '이 계획에서 납부하는 이자', totalExtraLabel: '추가 상환 원금', baselineLabel: '기존 일정', planLabel: '추가 상환 적용', balanceSceneLabel: '기존 대출 잔액과 추가 상환 후 잔액 비교', balanceSceneHelp: '점선은 기존 일정을, 구리색 선은 입력한 계획을 보여줍니다. 녹색 표시는 추가 원금이 납부되는 기간입니다.', annualScheduleTitle: '연간 납부 일정', yearLabel: '연도', paymentLabel: '총 납부액', interestLabel: '이자', principalPaidLabel: '예정 원금', extraPaidLabel: '추가 원금', endingBalanceLabel: '기말 잔액', formulaTitle: '모델과 한계', formulaText: '고정금리 상환 모델을 사용합니다. 각 기간의 시작 잔액에서 이자를 계산하고, 정기 납부액을 이자와 원금으로 나눈 뒤 정기 및 일회성 추가 원금을 적용합니다. 연 이자율은 연간 기간 수로 나눕니다. 남은 잔액이 계획 납부액보다 작으면 마지막 납부액을 줄입니다. 통화를 바꾸면 내부 계획 비율로 금액을 환산한 뒤 같은 시나리오를 다시 계산합니다.', riskNote: '이 결과는 금융기관 명세서가 아닌 추정치입니다. 통화 선택은 실시간 시장 환율이 아니라 내부 계획 비율을 사용합니다. 변동금리, 수수료, 보험, 세금, 일할 이자, 위약금 및 계약상 추가 상환 규칙은 포함하지 않습니다.', emptyMessage: '유효한 원금, 금리, 기간, 날짜를 입력하면 계획을 볼 수 있습니다.', invalidInputMessage: '계획을 보려면 입력값을 확인하세요', currencyOptions: { AUD: 'A$ AUD · 호주 달러', BRL: 'R$ BRL · 브라질 헤알', CAD: 'C$ CAD · 캐나다 달러', CHF: 'CHF · 스위스 프랑', CNY: '¥ CNY · 중국 위안', CZK: 'Kč CZK · 체코 코루나', DKK: 'kr DKK · 덴마크 크로네', EUR: '€ EUR · 유로', GBP: '£ GBP · 영국 파운드', IDR: 'Rp IDR · 인도네시아 루피아', INR: '₹ INR · 인도 루피', JPY: '¥ JPY · 일본 엔', KRW: '₩ KRW · 대한민국 원', MXN: 'MX$ MXN · 멕시코 페소', NOK: 'kr NOK · 노르웨이 크로네', PLN: 'zł PLN · 폴란드 즈워티', RUB: '₽ RUB · 러시아 루블', SEK: 'kr SEK · 스웨덴 크로나', TRY: '₺ TRY · 튀르키예 리라', USD: '$ USD · 미국 달러' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: '매월', biweekly: '2주마다', weekly: '매주' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: '추가 상환은 상환 일정을 어떻게 바꾸나요?', answer: '계산기는 정기 납부액을 그대로 두고 예정 납부 후 추가 원금을 적용합니다. 잔액이 더 빨리 0이 되고 총 이자가 줄어들 수 있습니다. 금융기관의 처리 방식은 계약에 따라 다르므로 계약서와 비교하세요.' }, { question: '통화를 바꾸면 어떻게 되나요?', answer: '금액을 내부 계획 비율로 새 통화에 환산한 다음 같은 시나리오를 다시 계산합니다. 실시간 환율이 아니므로 계획용 결과로 사용하세요.' }, { question: '통화 선택기가 하나뿐인 이유는 무엇인가요?', answer: '선택한 통화를 원금, 추가 상환, 정기 납부, 이자, 잔액, 연간 표 전체에 적용합니다. 하나의 단위를 사용하면 입력이 명확하고 통화가 섞이지 않습니다.' }, { question: '실제 금융기관 납부액을 계산하나요?', answer: '고정금리 상환 일정을 추정하지만 일수 계산, 비용, 보험, 세금, 금리 변경, 위약금, 조기 상환 조건은 알 수 없습니다. 공식 금액은 명세서와 계약서를 확인하세요.' }];
|
|
13
|
+
const howTo = [{ name: '통화 설정', text: '모든 금액과 결과에 사용할 하나의 통화를 선택합니다.' }, { name: '대출 입력', text: '원금, 명목 연이율, 남은 기간, 첫 납부일과 납부 주기를 입력합니다.' }, { name: '추가 상환 입력', text: '정기 추가 금액을 입력하고 필요하면 일회성 금액과 기간도 추가합니다.' }, { name: '비교 확인', text: '기존 잔액과 계획을 비교하고 이자, 기간, 완납일, 연간 일정을 확인합니다.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'KRW' }, inLanguage: 'ko' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: '추가 상환이 바꾸는 것을 계획하세요', level: 2 }, { type: 'paragraph', html: '<p>상환 일정은 각 납부액을 이자와 원금으로 나눕니다. 추가 원금을 납부하고 정기 납부액을 유지하면 잔액을 더 일찍 0으로 만들 수 있습니다. 이 도구는 기존 잔액과 정기·일회성 추가 상환을 적용한 잔액을 비교합니다.</p>' }, { type: 'paragraph', html: '<p>결과는 고정금리 대출에 대한 계획용 추정치입니다. 원금, 명목 연이율, 납부 기간 수와 매 납부 후 변하는 잔액을 사용합니다. 계약의 일수 계산, 반올림, 비용 및 추가 상환 방식은 다를 수 있습니다.</p>' }, { type: 'title', text: '상환 계산 방식', level: 3 }, { type: 'paragraph', html: '<p>각 기간의 시작 잔액을 기준으로 이자를 계산합니다. 연 이자율을 연간 납부 횟수로 나누고, 정기 납부액을 이자와 원금으로 분리한 뒤 추가 원금을 잔액에서 차감합니다.</p>' }, { type: 'table', headers: ['항목', '계산', '의미'], rows: [['기간 이율', '연 이율 / 연간 기간 수', '각 기간에 적용하는 이율'], ['정기 납부액', '고정 납부 공식', '추가 원금 전 납부액'], ['기간 이자', '시작 잔액 x 기간 이율', '모델이 가정한 이자'], ['납부 후 잔액', '잔액 - 원금 - 추가분', '남은 채무']] }, { type: 'title', text: '추가 상환이 실제로 바꾸는 것', level: 3 }, { type: 'paragraph', html: '<p>이 모델에서 추가 상환은 원금을 직접 줄이므로 이후 이자는 더 작은 잔액에 적용됩니다. 절약되는 이자와 단축되는 기간을 함께 확인하면 비용 절감과 완납 시점을 나누어 이해할 수 있습니다.</p>' }, { type: 'paragraph', html: '<p>금융기관은 납부액을 낮추거나 기간을 유지하거나 공식 신청을 요구할 수 있습니다. 연간 한도, 최소 금액, 수수료를 확인하세요.</p>' }, { type: 'title', text: '통화를 섞지 않고 사용하기', level: 3 }, { type: 'paragraph', html: '<p>금액을 입력하기 전에 하나의 통화를 선택합니다. 원금, 추가 상환, 납부액, 이자, 잔액에 같은 단위를 사용하며, 통화를 바꾸면 내부에서 환산해 같은 시나리오를 계산합니다.</p>' }, { type: 'list', items: ['가계 예산이나 금융기관 명세서의 통화를 선택하세요.', '원금과 추가 상환을 선택한 통화로 입력하세요.', '통화 변경은 계획 단위 변경이지 계약 변경이 아닙니다.', '납부 주기와 조기 상환 조건을 확인하세요.', '연간 표에서 일회성 상환의 효과를 확인하세요.'] }, { type: 'title', text: '결과를 읽는 간단한 예', level: 3 }, { type: 'paragraph', html: '<p>250,000 EUR, 고정금리 3.5%, 25년의 경우 매 기간 150 EUR와 12번째 기간 5,000 EUR를 추가해도 모델의 기존 정기 납부액은 바뀌지 않습니다. 하지만 잔액과 이후 이자는 줄어듭니다.</p>' }, { type: 'paragraph', html: '<p>USD로 바꾸면 내부 계획 비율로 금액을 환산하고 같은 시나리오를 다시 계산합니다. 국제 예산에는 유용하지만 현재 시장 가치나 실시간 환율은 아닙니다.</p>' }, { type: 'title', text: '실행 전에 확인할 사항', level: 3 }, { type: 'list', items: ['추가 상환이 기간을 줄이는지 납부액을 줄이는지 물어보세요.', '한도, 최소 금액, 수수료를 확인하세요.', '금리가 명목·실효·고정·변동 중 무엇인지 확인하세요.', '계산 잔액을 최신 명세서와 비교하세요.', '국제 예산이라면 사용한 환율과 날짜를 기록하세요.'] }, { type: 'tip', title: '그래프는 비교이지 약속이 아닙니다', html: '<p>점선은 추가 상환이 없는 기존 고정 계획을, 구리색 선은 입력한 계획을 보여줍니다. 비용, 보험, 세금, 일할 이자, 환율 변동과 금융기관의 계약 규칙은 포함하지 않습니다.</p>' }, { type: 'title', text: '이 주택담보대출 계획의 한계', level: 3 }, { type: 'paragraph', html: '<p>고정금리와 정기 납부, 선택적 추가 원금이 있는 대출을 모델링합니다. 시나리오를 살펴보고 금융기관에 질문을 준비하는 데 유용하지만 상환 가능성, 세무·법률 조언, 환율 예측 또는 공식 명세서를 대신하지 않습니다.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from "../bibliography";
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from "schema-dts";
|
|
3
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from "../ui";
|
|
5
|
+
|
|
6
|
+
const slug = "hypotheek-aflossingscalculator-extra-betalingen";
|
|
7
|
+
const title = "Hypotheekaflossingscalculator met extra betalingen";
|
|
8
|
+
const description = "Plan een hypotheek met vaste rente en terugkerende of eenmalige extra aflossingen, vergelijk bespaarde rente en toon elk bedrag in één valuta.";
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: "Valuta", currencyHelp: "Kies één keer. Elk bedrag in het plan gebruikt deze valuta.", principalLabel: "Openstaande hoofdsom", principalHelp: "Bedrag dat aan het begin van dit plan nog verschuldigd is", annualRateLabel: "Jaarlijkse rente", annualRateHelp: "Nominale vaste rente per betaalperiode", termLabel: "Resterende looptijd in jaren", termHelp: "Geplande duur vóór extra aflossingen", frequencyLabel: "Betaalfrequentie", recurringExtraLabel: "Terugkerende extra aflossing", recurringExtraHelp: "Extra hoofdsom die elke periode wordt betaald", oneOffExtraLabel: "Eenmalige extra aflossing", oneOffExtraHelp: "Een enkele aflossing in de gekozen periode", oneOffPeriodLabel: "Periode van eenmalige betaling", oneOffPeriodHelp: "1 betekent de eerste betaalperiode", startDateLabel: "Datum eerste betaling", startDateHelp: "Wordt gebruikt om de aflossingsdatum te schatten", extraSectionTitle: "Plan voor extra aflossingen", outputTitle: "Verloop van het saldo", regularPaymentLabel: "Normale betaling vóór extra's", interestSavedLabel: "Bespaarde rente", periodsSavedLabel: "perioden bespaard", payoffDateLabel: "Geschatte aflossing", totalInterestLabel: "Betaalde rente met dit plan", totalExtraLabel: "Extra afgeloste hoofdsom", baselineLabel: "Oorspronkelijk schema", planLabel: "Met jouw extra betalingen", balanceSceneLabel: "Oorspronkelijk hypotheeksaldo tegenover het saldo na extra aflossingen", balanceSceneHelp: "De stippellijn is het oorspronkelijke schema. De koperkleurige lijn is jouw plan. Groene markeringen tonen extra hoofdsom.", annualScheduleTitle: "Jaarlijks betalingssysteem", yearLabel: "Jaar", paymentLabel: "Totaal betaald", interestLabel: "Rente", principalPaidLabel: "Geplande hoofdsom", extraPaidLabel: "Extra hoofdsom", endingBalanceLabel: "Eindsaldo", formulaTitle: "Model en grenzen", formulaText: "De calculator gebruikt een aflossingsmodel met vaste rente. Elke periode wordt rente over het beginsaldo berekend, de normale betaling wordt verdeeld over rente en hoofdsom en daarna worden terugkerende en eenmalige extra aflossingen toegepast. De jaarlijkse rente wordt gedeeld door het aantal perioden. De laatste betaling wordt kleiner wanneer het resterende saldo kleiner is dan de geplande betaling. Bij een valutawissel worden bedragen intern omgerekend met een planningsratio en wordt hetzelfde scenario opnieuw berekend.", riskNote: "Dit is een schatting, geen overzicht van de geldverstrekker. De valutakeuze gebruikt interne planningsratio's, geen actuele marktkoersen. Variabele rente, kosten, verzekering, belastingen, dagrente, boetes en contractregels zijn niet inbegrepen.", emptyMessage: "Vul een geldig bedrag, rente, looptijd en datum in om het plan te zien.", invalidInputMessage: "Controleer de invoer om het plan te zien", currencyOptions: { AUD: "A$ AUD · Australische dollar", BRL: "R$ BRL · Braziliaanse real", CAD: "C$ CAD · Canadese dollar", CHF: "CHF · Zwitserse frank", CNY: "¥ CNY · Chinese yuan", CZK: "Kč CZK · Tsjechische kroon", DKK: "kr DKK · Deense kroon", EUR: "€ EUR · euro", GBP: "£ GBP · pond sterling", IDR: "Rp IDR · Indonesische roepia", INR: "₹ INR · Indiase roepie", JPY: "¥ JPY · Japanse yen", KRW: "₩ KRW · Zuid-Koreaanse won", MXN: "MX$ MXN · Mexicaanse peso", NOK: "kr NOK · Noorse kroon", PLN: "zł PLN · Poolse zloty", RUB: "₽ RUB · Russische roebel", SEK: "kr SEK · Zweedse kroon", TRY: "₺ TRY · Turkse lira", USD: "$ USD · Amerikaanse dollar" }, currencySymbols: { AUD: "A$", BRL: "R$", CAD: "C$", CHF: "CHF", CNY: "¥", CZK: "Kč", DKK: "kr", EUR: "€", GBP: "£", IDR: "Rp", INR: "₹", JPY: "¥", KRW: "₩", MXN: "MX$", NOK: "kr", PLN: "zł", RUB: "₽", SEK: "kr", TRY: "₺", USD: "$" }, frequencyOptions: { monthly: "Maandelijks", biweekly: "Elke twee weken", weekly: "Wekelijks" },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: "Hoe veranderen extra hypotheekbetalingen het schema?", answer: "De calculator houdt de normale betaling gelijk en past extra hoofdsom toe na elke geplande betaling. Het saldo kan eerder nul worden en de totale rente kan dalen. De geldverstrekker kan extra aflossingen anders verwerken; vergelijk de uitkomst met je contract." }, { question: "Wat gebeurt er als ik van valuta wissel?", answer: "De bedragen worden met een interne planningsratio naar de nieuwe valuta omgerekend en hetzelfde scenario wordt opnieuw berekend. Het is geen actuele marktkoers, dus gebruik het resultaat om te plannen." }, { question: "Waarom is er maar één valutakeuze?", answer: "De gekozen valuta geldt voor hoofdsom, extra aflossingen, betalingen, rente, saldi en het jaarschema. Eén gedeelde eenheid houdt het formulier duidelijk en voorkomt gemengde valuta." }, { question: "Berekent de calculator mijn echte betaling?", answer: "Hij schat een schema met vaste rente. Contractuele dagtelling, kosten, verzekering, belastingen, renteherzieningen, boetes en de behandeling van vervroegd aflossen zijn niet bekend. Gebruik je overzicht en contract voor het echte bedrag." }];
|
|
13
|
+
const howTo = [{ name: "Kies de valuta", text: "Selecteer de ene valuta die voor alle bedragen en resultaten moet gelden." }, { name: "Beschrijf de hypotheek", text: "Voer hoofdsom, nominale jaarrente, resterende looptijd, eerste betaaldatum en frequentie in." }, { name: "Voeg extra betalingen toe", text: "Voer een terugkerend bedrag in en voeg eventueel een eenmalig bedrag met periode toe." }, { name: "Lees de vergelijking", text: "Vergelijk het oorspronkelijke saldo met je plan en bekijk rente, perioden, datum en jaarschema." }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { "@context": "https://schema.org", "@type": "FAQPage", mainEntity: faq.map((item) => ({ "@type": "Question", name: item.question, acceptedAnswer: { "@type": "Answer", text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { "@context": "https://schema.org", "@type": "HowTo", name: title, description, step: howTo.map((step, index) => ({ "@type": "HowToStep", position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { "@context": "https://schema.org", "@type": "SoftwareApplication", name: title, description, applicationCategory: "FinanceApplication", operatingSystem: "All", offers: { "@type": "Offer", price: "0", priceCurrency: "EUR" }, inLanguage: "nl" };
|
|
17
|
+
const seo: ToolLocaleContent["seo"] = [{ type: "title", text: "Plan wat extra hypotheekbetalingen veranderen", level: 2 }, { type: "paragraph", html: "<p>Een aflossingsschema splitst elke betaling in rente en hoofdsom. Wanneer je extra hoofdsom betaalt en de normale betaling gelijk blijft, kan het saldo eerder nul worden. Deze calculator vergelijkt het oorspronkelijke verloop met je terugkerende en eenmalige extra betalingen.</p>" }, { type: "paragraph", html: "<p>De uitkomst is een planningsschatting voor een lening met vaste rente. Het model gebruikt hoofdsom, nominale jaarrente, betaalperioden en een saldo dat na elke betaling verandert. Contracten kunnen andere dagtelling, afronding, kosten of voorwaarden gebruiken.</p>" }, { type: "title", text: "Zo werkt de aflossingsberekening", level: 3 }, { type: "paragraph", html: "<p>Elke periode wordt rente berekend over het beginsaldo. De jaarlijkse rente wordt gedeeld door het aantal betaalperioden. Daarna wordt de normale betaling verdeeld over rente en hoofdsom; extra betalingen verlagen het saldo verder.</p>" }, { type: "table", headers: ["Gegeven", "Berekening", "Betekenis"], rows: [["Perioderente", "Jaarrente / perioden per jaar", "Rente in elke betaalperiode"], ["Normale betaling", "Vaste betalingsformule", "Betaling vóór extra hoofdsom"], ["Rente per periode", "Beginsaldo x perioderente", "Rente volgens het model"], ["Saldo na betaling", "Saldo - hoofdsom - extra", "Bedrag dat nog openstaat"]] }, { type: "title", text: "Wat extra betalingen werkelijk veranderen", level: 3 }, { type: "paragraph", html: "<p>In dit model verlaagt een extra betaling rechtstreeks de hoofdsom. Toekomstige rente wordt dan over een kleiner saldo berekend. Bekijk zowel bespaarde rente als bespaarde perioden: de eerste toont vermeden financieringskosten, de tweede de eerdere aflossingsdatum.</p>" }, { type: "paragraph", html: "<p>De geldverstrekker kan de betaling verlagen, de looptijd behouden of een formeel verzoek vragen. Controleer jaarlijkse grenzen, minimumbedragen en eventuele vergoedingen.</p>" }, { type: "title", text: "Valuta gebruiken zonder de berekening te mengen", level: 3 }, { type: "paragraph", html: "<p>Kies één valuta voordat je bedragen invoert. De keuze geldt voor hoofdsom, extra's, betalingen, rente en saldi. Bij wisselen worden de bedragen intern omgerekend en blijft de scenario-opzet gelijk.</p>" }, { type: "list", items: ["Kies de valuta van je budget of overzicht.", "Gebruik die valuta voor hoofdsom en extra betalingen.", "Zie een wissel als andere planningseenheid, niet als contractwijziging.", "Controleer de toegestane frequentie en regels voor vervroegd aflossen.", "Bekijk het jaarschema om het effect van een eenmalige betaling te zien."] }, { type: "title", text: "Een eenvoudig voorbeeld", level: 3 }, { type: "paragraph", html: "<p>Bij 250.000 EUR, 3,5% vaste rente en 25 jaar veranderen 150 EUR extra per periode en 5.000 EUR in periode 12 de oorspronkelijke normale betaling niet. Ze verlagen wel het saldo en de latere rente.</p>" }, { type: "paragraph", html: "<p>Wanneer je naar USD wisselt, rekent de tool de bedragen om met de interne ratio en berekent hetzelfde scenario opnieuw. Dat helpt bij internationale budgetten, maar is geen actuele marktwaarde.</p>" }, { type: "title", text: "Controleer dit vóór je handelt", level: 3 }, { type: "list", items: ["Vraag of extra aflossen de looptijd of betaling verlaagt.", "Controleer limieten, minimums en vergoedingen.", "Bevestig of de rente nominaal, effectief, vast of variabel is.", "Vergelijk het berekende saldo met een recent overzicht.", "Noteer koers en datum voor een internationaal budget."] }, { type: "tip", title: "De grafiek vergelijkt, maar belooft niets", html: "<p>De stippellijn toont het oorspronkelijke vaste schema zonder extra's; de koperkleurige lijn volgt je invoer. Kosten, verzekering, belastingen, dagrente, valutabewegingen en contractregels ontbreken.</p>" }, { type: "title", text: "Grenzen van deze hypotheekcalculator", level: 3 }, { type: "paragraph", html: "<p>De tool modelleert een volledig aflossende lening met vaste rente, normale betalingen en optionele extra hoofdsom. Hij helpt scenario's verkennen en vragen voorbereiden, maar bepaalt geen betaalbaarheid, geeft geen fiscaal of juridisch advies en vervangt geen overzicht van de geldverstrekker.</p>" }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'kalkulator-amortyzacji-hipoteki-nadplaty';
|
|
7
|
+
const title = 'Kalkulator amortyzacji kredytu hipotecznego z nadpłatami';
|
|
8
|
+
const description = 'Zaplanuj kredyt hipoteczny ze stałym oprocentowaniem i regularnymi lub jednorazowymi nadpłatami, porównaj zaoszczędzone odsetki i pokazuj kwoty w jednej walucie.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: 'Waluta', currencyHelp: 'Wybierz raz. Wszystkie kwoty w planie będą używać tej waluty.', principalLabel: 'Początkowy kapitał', principalHelp: 'Kwota pozostała do spłaty na początku planu', annualRateLabel: 'Roczne oprocentowanie', annualRateHelp: 'Nominalna stała stopa dla każdego okresu płatności', termLabel: 'Pozostały okres w latach', termHelp: 'Planowany czas przed nadpłatami', frequencyLabel: 'Częstotliwość płatności', recurringExtraLabel: 'Regularna nadpłata', recurringExtraHelp: 'Dodatkowy kapitał spłacany w każdym okresie', oneOffExtraLabel: 'Jednorazowa nadpłata', oneOffExtraHelp: 'Pojedyncza spłata kapitału w podanym okresie', oneOffPeriodLabel: 'Okres jednorazowej wpłaty', oneOffPeriodHelp: '1 oznacza pierwszy okres płatności', startDateLabel: 'Data pierwszej płatności', startDateHelp: 'Służy do oszacowania daty spłaty', extraSectionTitle: 'Plan nadpłat', outputTitle: 'Przebieg salda', regularPaymentLabel: 'Rata regularna przed nadpłatami', interestSavedLabel: 'Zaoszczędzone odsetki', periodsSavedLabel: 'zaoszczędzonych okresów', payoffDateLabel: 'Szacowana spłata', totalInterestLabel: 'Odsetki zapłacone w tym planie', totalExtraLabel: 'Dodatkowo spłacony kapitał', baselineLabel: 'Pierwotny harmonogram', planLabel: 'Z Twoimi nadpłatami', balanceSceneLabel: 'Pierwotne saldo kredytu a saldo po nadpłatach', balanceSceneHelp: 'Linia przerywana pokazuje pierwotny harmonogram. Miedziana linia pokazuje Twój plan. Zielone znaczniki oznaczają dodatkowy kapitał.', annualScheduleTitle: 'Roczny harmonogram płatności', yearLabel: 'Rok', paymentLabel: 'Suma zapłacona', interestLabel: 'Odsetki', principalPaidLabel: 'Planowany kapitał', extraPaidLabel: 'Dodatkowy kapitał', endingBalanceLabel: 'Saldo końcowe', formulaTitle: 'Model i ograniczenia', formulaText: 'Kalkulator korzysta ze stałoprocentowego modelu amortyzacji. W każdym okresie oblicza odsetki od salda początkowego, rozdziela ratę na odsetki i kapitał, a następnie stosuje regularne i jednorazowe nadpłaty. Roczna stopa jest dzielona przez liczbę okresów. Ostatnia rata jest zmniejszana, gdy pozostałe saldo jest niższe od planowanej raty. Zmiana waluty wewnętrznie przelicza kwoty według współczynnika planistycznego i ponownie oblicza ten sam scenariusz.', riskNote: 'To szacunek, a nie zestawienie kredytodawcy. Selektor waluty używa wewnętrznych współczynników planistycznych, nie bieżących kursów rynkowych. Model nie obejmuje zmiennego oprocentowania, opłat, ubezpieczenia, podatków, odsetek dziennych, kar ani zasad umowy.', emptyMessage: 'Wpisz prawidłowy kapitał, stopę, okres i datę, aby zobaczyć plan.', invalidInputMessage: 'Sprawdź dane, aby zobaczyć plan', currencyOptions: { AUD: 'A$ AUD · dolar australijski', BRL: 'R$ BRL · real brazylijski', CAD: 'C$ CAD · dolar kanadyjski', CHF: 'CHF · frank szwajcarski', CNY: '¥ CNY · juan chiński', CZK: 'Kč CZK · korona czeska', DKK: 'kr DKK · korona duńska', EUR: '€ EUR · euro', GBP: '£ GBP · funt szterling', IDR: 'Rp IDR · rupia indonezyjska', INR: '₹ INR · rupia indyjska', JPY: '¥ JPY · jen japoński', KRW: '₩ KRW · won południowokoreański', MXN: 'MX$ MXN · peso meksykańskie', NOK: 'kr NOK · korona norweska', PLN: 'zł PLN · złoty polski', RUB: '₽ RUB · rubel rosyjski', SEK: 'kr SEK · korona szwedzka', TRY: '₺ TRY · lira turecka', USD: '$ USD · dolar amerykański' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: 'Miesięcznie', biweekly: 'Co dwa tygodnie', weekly: 'Tygodniowo' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: 'Jak nadpłaty zmieniają harmonogram kredytu?', answer: 'Kalkulator pozostawia zwykłą ratę bez zmian i stosuje dodatkowy kapitał po każdej planowej płatności. Saldo może spaść do zera wcześniej, a suma odsetek może się zmniejszyć. Bank może rozliczać nadpłatę inaczej, dlatego porównaj wynik z umową.' }, { question: 'Co dzieje się po zmianie waluty?', answer: 'Kwoty są wewnętrznie przeliczane na nową walutę według współczynnika planistycznego, a ten sam scenariusz jest obliczany ponownie. To nie jest bieżący kurs rynkowy, lecz pomoc do planowania.' }, { question: 'Dlaczego jest tylko jeden selektor waluty?', answer: 'Wybrana waluta dotyczy kapitału, nadpłat, rat, odsetek, sald i tabeli rocznej. Jedna wspólna jednostka ułatwia czytanie i zapobiega mieszaniu walut.' }, { question: 'Czy kalkulator podaje moją rzeczywistą ratę?', answer: 'Szacuje harmonogram przy stałym oprocentowaniu. Nie zna zasad umowy, sposobu liczenia dni, opłat, ubezpieczenia, podatków, zmian stopy, kar ani dokładnego rozliczenia wcześniejszej spłaty. Rzeczywistą kwotę sprawdź w umowie i zestawieniu.' }];
|
|
13
|
+
const howTo = [{ name: 'Ustaw walutę', text: 'Wybierz jedną walutę dla wszystkich kwot i wyników.' }, { name: 'Opisz kredyt', text: 'Wpisz kapitał, nominalną stopę roczną, pozostały okres, pierwszą datę płatności i częstotliwość.' }, { name: 'Dodaj nadpłaty', text: 'Wpisz kwotę regularną i opcjonalnie jednorazową wraz z okresem jej wykonania.' }, { name: 'Odczytaj porównanie', text: 'Porównaj pierwotne saldo z planem i sprawdź odsetki, okresy, datę spłaty oraz tabelę roczną.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'PLN' }, inLanguage: 'pl' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: 'Zaplanuj wpływ nadpłat kredytu', level: 2 }, { type: 'paragraph', html: '<p>Harmonogram amortyzacji rozdziela każdą ratę na odsetki i kapitał. Gdy spłacasz dodatkowy kapitał i pozostawiasz ratę bez zmian, saldo może osiągnąć zero wcześniej. Narzędzie porównuje pierwotny przebieg z planem regularnych i jednorazowych nadpłat.</p>' }, { type: 'paragraph', html: '<p>Wynik jest szacunkiem dla kredytu ze stałą stopą. Uwzględnia kapitał, nominalne oprocentowanie roczne, liczbę okresów i saldo zmieniające się po każdej racie. Umowa może mieć inne zasady dni, zaokrągleń, opłat i nadpłat.</p>' }, { type: 'title', text: 'Jak działa obliczanie amortyzacji', level: 3 }, { type: 'paragraph', html: '<p>W każdym okresie odsetki są liczone od salda początkowego. Roczna stopa jest dzielona przez liczbę okresów w roku. Zwykła rata jest dzielona na odsetki i kapitał, a następnie nadpłaty dodatkowo zmniejszają saldo.</p>' }, { type: 'table', headers: ['Wartość', 'Obliczenie', 'Znaczenie'], rows: [['Stopa okresowa', 'Stopa roczna / okresy w roku', 'Stopa w jednym okresie'], ['Zwykła rata', 'Wzór stałej raty', 'Płatność przed nadpłatą'], ['Odsetki okresu', 'Saldo początkowe x stopa okresowa', 'Odsetki według modelu'], ['Saldo po racie', 'Saldo - kapitał - nadpłata', 'Kwota pozostała do spłaty']] }, { type: 'title', text: 'Co naprawdę zmieniają nadpłaty', level: 3 }, { type: 'paragraph', html: '<p>Nadpłata w tym modelu bezpośrednio zmniejsza kapitał, więc przyszłe odsetki są liczone od mniejszego salda. Sprawdź zarówno oszczędność odsetek, jak i liczbę zaoszczędzonych okresów: pierwsza pokazuje koszt finansowania, druga wcześniejszą spłatę.</p>' }, { type: 'paragraph', html: '<p>Bank może zamiast tego obniżyć ratę, pozostawić okres albo wymagać formalnego wniosku. Przed płatnością sprawdź limity roczne, kwoty minimalne i ewentualne rekompensaty.</p>' }, { type: 'title', text: 'Waluty bez mieszania obliczeń', level: 3 }, { type: 'paragraph', html: '<p>Wybierz walutę przed wpisaniem kwot. Dotyczy ona kapitału, nadpłat, rat, odsetek i sald. Po zmianie wartości są przeliczane wewnętrznie, a struktura scenariusza pozostaje taka sama.</p>' }, { type: 'list', items: ['Wybierz walutę budżetu lub zestawienia.', 'Wpisuj kapitał i nadpłaty w wybranej jednostce.', 'Traktuj zmianę jako zmianę jednostki planowania, nie umowy.', 'Sprawdź dozwoloną częstotliwość i zasady wcześniejszej spłaty.', 'Przejrzyj tabelę roczną, aby znaleźć wpływ jednorazowej nadpłaty.'] }, { type: 'title', text: 'Prosty przykład interpretacji wyniku', level: 3 }, { type: 'paragraph', html: '<p>Dla 250 000 EUR, stałej stopy 3,5% i 25 lat, dodatkowe 150 EUR w każdym okresie oraz 5 000 EUR w okresie 12 nie zmieniają zwykłej raty początkowej modelu. Zmniejszają jednak saldo i późniejsze odsetki.</p>' }, { type: 'paragraph', html: '<p>Po przełączeniu na USD narzędzie przelicza kwoty wewnętrznym współczynnikiem i ponownie oblicza ten sam scenariusz. To pomoc dla międzynarodowego budżetu, nie bieżąca wycena rynkowa.</p>' }, { type: 'title', text: 'Sprawdź przed podjęciem decyzji', level: 3 }, { type: 'list', items: ['Zapytaj, czy nadpłata skraca okres, czy obniża ratę.', 'Sprawdź limity, minima i rekompensaty.', 'Potwierdź, czy stopa jest nominalna, efektywna, stała czy zmienna.', 'Porównaj saldo z aktualnym zestawieniem banku.', 'Zapisz kurs i datę przy międzynarodowym budżecie.'] }, { type: 'tip', title: 'Wykres porównuje, ale niczego nie obiecuje', html: '<p>Linia przerywana przedstawia pierwotny plan bez nadpłat, a miedziana podąża za wpisanymi danymi. Żadna nie uwzględnia opłat, ubezpieczenia, podatków, odsetek dziennych, zmian walut ani zasad konkretnego banku.</p>' }, { type: 'title', text: 'Ograniczenia kalkulatora hipotecznego', level: 3 }, { type: 'paragraph', html: '<p>Narzędzie modeluje w pełni amortyzowany kredyt ze stałą stopą, regularnymi ratami i opcjonalnym dodatkowym kapitałem. Pomaga badać scenariusze i przygotować pytania, ale nie ocenia zdolności kredytowej, nie udziela porad podatkowych ani prawnych i nie zastępuje zestawienia banku.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'calculadora-amortizacao-hipoteca-pagamentos-extra';
|
|
7
|
+
const title = 'Calculadora de amortização de hipoteca com pagamentos extra';
|
|
8
|
+
const description = 'Planeie uma hipoteca de taxa fixa com pagamentos extra recorrentes ou pontuais, compare os juros poupados e veja todos os valores numa única moeda.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: 'Moeda', currencyHelp: 'Escolha uma vez. Todos os valores do plano usarão esta moeda.', principalLabel: 'Capital inicial em dívida', principalHelp: 'Valor ainda em dívida no início deste plano', annualRateLabel: 'Taxa de juro anual', annualRateHelp: 'Taxa nominal fixa usada em cada período de pagamento', termLabel: 'Prazo restante em anos', termHelp: 'Duração prevista antes dos pagamentos extra', frequencyLabel: 'Frequência de pagamento', recurringExtraLabel: 'Pagamento extra recorrente', recurringExtraHelp: 'Capital adicional pago em cada período', oneOffExtraLabel: 'Pagamento extra pontual', oneOffExtraHelp: 'Um pagamento único de capital no período indicado', oneOffPeriodLabel: 'Período do pagamento pontual', oneOffPeriodHelp: '1 corresponde ao primeiro período', startDateLabel: 'Data do primeiro pagamento', startDateHelp: 'Usada para estimar a data de liquidação', extraSectionTitle: 'Plano de pagamentos extra', outputTitle: 'Evolução do saldo', regularPaymentLabel: 'Prestação normal antes dos extras', interestSavedLabel: 'Juros poupados', periodsSavedLabel: 'períodos poupados', payoffDateLabel: 'Liquidação estimada', totalInterestLabel: 'Juros pagos com este plano', totalExtraLabel: 'Capital extra pago', baselineLabel: 'Plano original', planLabel: 'Com os seus pagamentos extra', balanceSceneLabel: 'Saldo original da hipoteca comparado com o saldo após pagamentos extra', balanceSceneHelp: 'A linha tracejada mostra o plano original. A linha cobre mostra o seu plano. As marcas verdes indicam capital extra.', annualScheduleTitle: 'Plano anual de pagamentos', yearLabel: 'Ano', paymentLabel: 'Total pago', interestLabel: 'Juros', principalPaidLabel: 'Capital programado', extraPaidLabel: 'Capital extra', endingBalanceLabel: 'Saldo final', formulaTitle: 'Modelo e limites', formulaText: 'A calculadora usa um modelo de amortização a taxa fixa. Em cada período calcula juros sobre o saldo inicial, aplica a prestação normal a juros e capital e depois aplica pagamentos extra recorrentes e pontuais. A taxa anual é dividida pelo número de períodos. A última prestação é reduzida quando o saldo restante é menor do que o pagamento previsto. Ao mudar de moeda, converte internamente os valores com um rácio de planeamento e recalcula o mesmo cenário.', riskNote: 'É uma estimativa, não um extrato do credor. O seletor usa rácios internos de planeamento, não taxas de mercado em tempo real. Não inclui taxas variáveis, comissões, seguros, impostos, juros diários, penalizações nem regras contratuais.', emptyMessage: 'Introduza capital, taxa, prazo e data válidos para ver o plano.', invalidInputMessage: 'Verifique os dados para ver o plano', currencyOptions: { AUD: 'A$ AUD · dólar australiano', BRL: 'R$ BRL · real brasileiro', CAD: 'C$ CAD · dólar canadiano', CHF: 'CHF · franco suíço', CNY: '¥ CNY · yuan chinês', CZK: 'Kč CZK · coroa checa', DKK: 'kr DKK · coroa dinamarquesa', EUR: '€ EUR · euro', GBP: '£ GBP · libra esterlina', IDR: 'Rp IDR · rupia indonésia', INR: '₹ INR · rupia indiana', JPY: '¥ JPY · iene japonês', KRW: '₩ KRW · won sul-coreano', MXN: 'MX$ MXN · peso mexicano', NOK: 'kr NOK · coroa norueguesa', PLN: 'zł PLN · zloty polaco', RUB: '₽ RUB · rublo russo', SEK: 'kr SEK · coroa sueca', TRY: '₺ TRY · lira turca', USD: '$ USD · dólar americano' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: 'Mensal', biweekly: 'A cada duas semanas', weekly: 'Semanal' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: 'Como é que os pagamentos extra alteram o plano?', answer: 'A calculadora mantém a prestação normal e aplica o capital extra depois de cada pagamento previsto. O saldo pode chegar a zero mais cedo e os juros totais podem diminuir. O credor pode aplicar um pagamento antecipado de outra forma, por isso compare o resultado com o contrato.' }, { question: 'O que acontece quando mudo de moeda?', answer: 'Os valores monetários são convertidos internamente para a nova moeda com um rácio de planeamento e o mesmo cenário é recalculado. Não é uma cotação em tempo real: use-o para planear, não como taxa atual.' }, { question: 'Por que existe apenas um seletor de moeda?', answer: 'A moeda escolhida aplica-se ao capital, pagamentos extra, prestações, juros, saldos e plano anual. Uma unidade única mantém o formulário legível e evita misturas.' }, { question: 'A calculadora dá a prestação real do banco?', answer: 'Estima um plano de taxa fixa. Não conhece a convenção de dias, comissões, seguros, impostos, revisões, penalizações ou as regras do credor. Para o valor contratual, consulte o extrato e o contrato.' }];
|
|
13
|
+
const howTo = [{ name: 'Definir a moeda', text: 'Escolha a moeda única para todos os valores e resultados.' }, { name: 'Descrever o empréstimo', text: 'Indique capital, taxa nominal anual, prazo restante, primeira data de pagamento e frequência.' }, { name: 'Adicionar pagamentos extra', text: 'Indique um valor recorrente e, opcionalmente, um pagamento pontual e o seu período.' }, { name: 'Ler a comparação', text: 'Compare o saldo original com o seu plano e reveja juros, períodos, data estimada e plano anual.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pt' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: 'Planeie o efeito dos pagamentos extra', level: 2 }, { type: 'paragraph', html: '<p>Um plano de amortização separa cada prestação entre juros e capital. Ao pagar capital adicional e manter a prestação normal, o saldo pode chegar a zero mais cedo. Esta ferramenta compara o percurso original com o criado pelos seus pagamentos extra recorrentes e pontuais.</p>' }, { type: 'paragraph', html: '<p>O resultado é uma estimativa para um empréstimo de taxa fixa. Usa capital, taxa nominal anual, número de períodos e um saldo que muda após cada pagamento. Convenções de dias, arredondamentos, comissões e regras do contrato podem ser diferentes.</p>' }, { type: 'title', text: 'Como funciona o cálculo de amortização', level: 3 }, { type: 'paragraph', html: '<p>Em cada período, os juros são calculados sobre o saldo inicial. A taxa anual é dividida pelo número de períodos do ano. A prestação normal é repartida entre juros e capital e, depois, os pagamentos extra reduzem ainda mais o saldo.</p>' }, { type: 'table', headers: ['Valor', 'Cálculo', 'Interpretação'], rows: [['Taxa periódica', 'Taxa anual / períodos por ano', 'Taxa aplicada em cada período'], ['Prestação normal', 'Fórmula de prestação fixa', 'Pagamento antes do capital extra'], ['Juros do período', 'Saldo inicial x taxa periódica', 'Juros indicados pelo modelo'], ['Saldo após pagamento', 'Saldo - capital - extras', 'Valor ainda em dívida']] }, { type: 'title', text: 'O que os pagamentos extra mudam', level: 3 }, { type: 'paragraph', html: '<p>Neste modelo, o pagamento extra reduz diretamente o capital, pelo que os juros seguintes incidem sobre um saldo menor. Veja juros poupados e períodos poupados: um mede o custo evitado e o outro antecipa a data de liquidação.</p>' }, { type: 'paragraph', html: '<p>O credor pode reduzir a prestação, manter o prazo ou exigir um pedido formal. Confirme limites anuais, valores mínimos e eventuais compensações antes de pagar.</p>' }, { type: 'title', text: 'Usar moedas sem misturar a conta', level: 3 }, { type: 'paragraph', html: '<p>Escolha uma moeda antes de inserir os valores. O seletor aplica-se ao capital, extras, prestações, juros e saldos. Ao mudar, os valores são convertidos internamente e a estrutura do cenário mantém-se.</p>' }, { type: 'list', items: ['Escolha a moeda do seu orçamento ou extrato.', 'Mantenha capital e pagamentos extra na moeda escolhida.', 'Veja a mudança como uma unidade de planeamento, não como alteração do contrato.', 'Confirme a frequência permitida e as regras de amortização antecipada.', 'Consulte o plano anual para perceber o efeito do pagamento pontual.'] }, { type: 'title', text: 'Exemplo simples para interpretar o resultado', level: 3 }, { type: 'paragraph', html: '<p>Com 250.000 EUR, taxa fixa de 3,5% e 25 anos, um extra de 150 EUR por período e 5.000 EUR no período 12 não alteram a prestação normal inicial deste modelo. Reduzem o saldo e os juros seguintes.</p>' }, { type: 'paragraph', html: '<p>Ao mudar para USD, a ferramenta converte os valores com o rácio interno e recalcula o mesmo cenário. É uma ajuda para orçamentos internacionais, não uma avaliação de mercado nem uma cotação atual.</p>' }, { type: 'title', text: 'Verificações antes de agir', level: 3 }, { type: 'list', items: ['Pergunte se o extra reduz o prazo ou a prestação.', 'Confirme limites, mínimos e compensações.', 'Verifique se a taxa é nominal, efetiva, fixa ou variável.', 'Compare o saldo calculado com um extrato recente.', 'Registe a taxa e a data em qualquer orçamento internacional.'] }, { type: 'tip', title: 'O gráfico compara, não garante', html: '<p>A linha tracejada mostra o plano original sem extras e a linha cobre segue os seus dados. Nenhuma inclui comissões, seguros, impostos, juros diários, movimentos cambiais ou regras específicas do credor.</p>' }, { type: 'title', text: 'Limites desta calculadora hipotecária', level: 3 }, { type: 'paragraph', html: '<p>A ferramenta modela um empréstimo amortizável de taxa fixa com pagamentos regulares e capital extra opcional. Ajuda a explorar cenários e preparar perguntas, mas não avalia capacidade financeira, não dá aconselhamento fiscal ou jurídico e não substitui o extrato do credor.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'kalkulyator-amortizatsii-ipoteki-dopolnitelnye-platezhi';
|
|
7
|
+
const title = 'Калькулятор амортизации ипотеки с досрочными платежами';
|
|
8
|
+
const description = 'Планируйте ипотеку с фиксированной ставкой и регулярными или разовыми досрочными платежами, сравнивайте экономию на процентах и выводите все суммы в одной валюте.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: 'Валюта', currencyHelp: 'Выберите один раз. Все суммы плана будут в этой валюте.', principalLabel: 'Начальный остаток долга', principalHelp: 'Сумма, которую нужно погасить в начале плана', annualRateLabel: 'Годовая процентная ставка', annualRateHelp: 'Номинальная фиксированная ставка для каждого периода', termLabel: 'Оставшийся срок в годах', termHelp: 'Плановый срок до досрочных платежей', frequencyLabel: 'Периодичность платежей', recurringExtraLabel: 'Регулярный досрочный платёж', recurringExtraHelp: 'Дополнительная сумма основного долга в каждом периоде', oneOffExtraLabel: 'Разовый досрочный платёж', oneOffExtraHelp: 'Один дополнительный платёж в указанном периоде', oneOffPeriodLabel: 'Период разового платежа', oneOffPeriodHelp: '1 означает первый период платежей', startDateLabel: 'Дата первого платежа', startDateHelp: 'Используется для оценки даты погашения', extraSectionTitle: 'План досрочных платежей', outputTitle: 'Динамика остатка', regularPaymentLabel: 'Обычный платёж до досрочных сумм', interestSavedLabel: 'Сэкономленные проценты', periodsSavedLabel: 'сэкономленных периодов', payoffDateLabel: 'Расчётная дата погашения', totalInterestLabel: 'Проценты по этому плану', totalExtraLabel: 'Дополнительно погашенный долг', baselineLabel: 'Исходный график', planLabel: 'С вашими досрочными платежами', balanceSceneLabel: 'Исходный остаток ипотеки и остаток после досрочных платежей', balanceSceneHelp: 'Пунктир показывает исходный график. Медная линия показывает ваш план. Зелёные отметки обозначают дополнительные платежи.', annualScheduleTitle: 'Годовой график платежей', yearLabel: 'Год', paymentLabel: 'Всего выплачено', interestLabel: 'Проценты', principalPaidLabel: 'Плановое погашение долга', extraPaidLabel: 'Дополнительное погашение', endingBalanceLabel: 'Остаток на конец года', formulaTitle: 'Модель и ограничения', formulaText: 'Калькулятор использует модель амортизации с фиксированной ставкой. В каждом периоде он считает проценты от начального остатка, распределяет обычный платёж между процентами и долгом, затем применяет регулярные и разовые досрочные суммы. Годовая ставка делится на число периодов. Последний платёж уменьшается, если остаток меньше запланированной суммы. При смене валюты суммы внутренне пересчитываются по плановому коэффициенту и тот же сценарий рассчитывается заново.', riskNote: 'Это оценка, а не выписка кредитора. Переключатель валюты использует внутренние плановые коэффициенты, а не текущие рыночные курсы. Модель не учитывает плавающие ставки, комиссии, страховку, налоги, дневные проценты, штрафы и условия договора.', emptyMessage: 'Введите корректные долг, ставку, срок и дату, чтобы увидеть план.', invalidInputMessage: 'Проверьте данные, чтобы увидеть план', currencyOptions: { AUD: 'A$ AUD · австралийский доллар', BRL: 'R$ BRL · бразильский реал', CAD: 'C$ CAD · канадский доллар', CHF: 'CHF · швейцарский франк', CNY: '¥ CNY · китайский юань', CZK: 'Kč CZK · чешская крона', DKK: 'kr DKK · датская крона', EUR: '€ EUR · евро', GBP: '£ GBP · фунт стерлингов', IDR: 'Rp IDR · индонезийская рупия', INR: '₹ INR · индийская рупия', JPY: '¥ JPY · японская иена', KRW: '₩ KRW · южнокорейская вона', MXN: 'MX$ MXN · мексиканское песо', NOK: 'kr NOK · норвежская крона', PLN: 'zł PLN · польский злотый', RUB: '₽ RUB · российский рубль', SEK: 'kr SEK · шведская крона', TRY: '₺ TRY · турецкая лира', USD: '$ USD · доллар США' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: 'Ежемесячно', biweekly: 'Раз в две недели', weekly: 'Еженедельно' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: 'Как досрочные платежи меняют график ипотеки?', answer: 'Калькулятор оставляет обычный платёж без изменений и применяет дополнительный долг после каждого планового платежа. Остаток может обнулиться раньше, а общая сумма процентов уменьшиться. Кредитор может учитывать досрочную выплату иначе, поэтому сравните результат с договором.' }, { question: 'Что происходит при смене валюты?', answer: 'Суммы переводятся в новую валюту по внутреннему плановому коэффициенту, после чего тот же сценарий пересчитывается. Это не текущая рыночная котировка, а инструмент планирования.' }, { question: 'Почему выбран только один селектор валюты?', answer: 'Выбранная валюта применяется к долгу, досрочным платежам, обычным платежам, процентам, остаткам и годовой таблице. Единая единица предотвращает смешение валют.' }, { question: 'Рассчитывает ли калькулятор реальный платёж банку?', answer: 'Он оценивает график с фиксированной ставкой, но не знает правила договора, расчёт дней, комиссии, страховку, налоги, изменения ставки, штрафы и порядок досрочного погашения. Официальную сумму проверяйте по договору и выписке.' }];
|
|
13
|
+
const howTo = [{ name: 'Выберите валюту', text: 'Укажите одну валюту для всех сумм и результатов.' }, { name: 'Опишите кредит', text: 'Введите долг, номинальную годовую ставку, оставшийся срок, дату первого платежа и периодичность.' }, { name: 'Добавьте досрочные платежи', text: 'Введите регулярную сумму и при необходимости разовую сумму с её периодом.' }, { name: 'Прочитайте сравнение', text: 'Сравните исходный остаток с вашим планом и проверьте проценты, периоды, дату и годовую таблицу.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'RUB' }, inLanguage: 'ru' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: 'Планируйте эффект досрочных платежей', level: 2 }, { type: 'paragraph', html: '<p>График амортизации разделяет каждый платёж на проценты и основной долг. Если вносить дополнительный долг и сохранять обычный платёж, остаток может обнулиться раньше. Инструмент сравнивает исходный путь с регулярными и разовыми досрочными платежами.</p>' }, { type: 'paragraph', html: '<p>Результат является оценкой для кредита с фиксированной ставкой. Он использует сумму долга, номинальную годовую ставку, число периодов и остаток после каждого платежа. Условия договора могут использовать другие правила расчёта дней, округления, комиссии и досрочного погашения.</p>' }, { type: 'title', text: 'Как работает расчёт амортизации', level: 3 }, { type: 'paragraph', html: '<p>В каждом периоде проценты рассчитываются от начального остатка. Годовая ставка делится на число платежей в году, обычный платёж распределяется между процентами и долгом, затем дополнительные суммы уменьшают остаток.</p>' }, { type: 'table', headers: ['Показатель', 'Расчёт', 'Значение'], rows: [['Периодическая ставка', 'Годовая ставка / периоды в году', 'Ставка одного периода'], ['Обычный платёж', 'Формула фиксированного платежа', 'Платёж до досрочной суммы'], ['Проценты периода', 'Начальный остаток x периодическая ставка', 'Проценты по модели'], ['Остаток после платежа', 'Остаток - долг - дополнительные суммы', 'Сумма, оставшаяся к погашению']] }, { type: 'title', text: 'Что именно меняют досрочные платежи', level: 3 }, { type: 'paragraph', html: '<p>В этой модели досрочная сумма напрямую уменьшает основной долг, поэтому будущие проценты начисляются на меньший остаток. Смотрите и сэкономленные проценты, и сокращённые периоды: один показатель показывает экономию, другой - более раннее погашение.</p>' }, { type: 'paragraph', html: '<p>Кредитор может уменьшить платёж, сохранить срок или потребовать отдельное заявление. До оплаты проверьте годовые лимиты, минимальные суммы и возможные компенсации.</p>' }, { type: 'title', text: 'Используйте валюты без смешения расчёта', level: 3 }, { type: 'paragraph', html: '<p>Выберите одну валюту до ввода сумм. Она применяется к долгу, дополнительным платежам, обычным платежам, процентам и остаткам. При смене суммы переводятся внутри инструмента, а сценарий остаётся тем же.</p>' }, { type: 'list', items: ['Выберите валюту бюджета или выписки.', 'Вводите долг и досрочные суммы в выбранной валюте.', 'Считайте смену единицей планирования, а не изменением договора.', 'Проверьте разрешённую периодичность и правила досрочного погашения.', 'Посмотрите годовую таблицу, чтобы понять эффект разовой суммы.'] }, { type: 'title', text: 'Простой пример чтения результата', level: 3 }, { type: 'paragraph', html: '<p>При долге 250 000 EUR, фиксированной ставке 3,5% и сроке 25 лет дополнительные 150 EUR за период и 5 000 EUR в периоде 12 не меняют обычный первоначальный платёж модели. Они уменьшают остаток и будущие проценты.</p>' }, { type: 'paragraph', html: '<p>При переключении на USD инструмент переводит суммы внутренним коэффициентом и пересчитывает тот же сценарий. Это полезно для международного бюджета, но не является текущей рыночной оценкой.</p>' }, { type: 'title', text: 'Проверьте перед действием', level: 3 }, { type: 'list', items: ['Уточните, уменьшает ли досрочная сумма срок или платёж.', 'Проверьте лимиты, минимумы и компенсации.', 'Убедитесь, что ставка номинальная, эффективная, фиксированная или плавающая.', 'Сравните рассчитанный остаток с последней выпиской.', 'Запишите курс и дату для международного бюджета.'] }, { type: 'tip', title: 'График сравнивает, но ничего не обещает', html: '<p>Пунктир показывает исходный план без досрочных платежей, а медная линия следует введённым данным. Комиссии, страховка, налоги, дневные проценты, движение валют и правила конкретного кредитора не включены.</p>' }, { type: 'title', text: 'Ограничения ипотечного калькулятора', level: 3 }, { type: 'paragraph', html: '<p>Инструмент моделирует кредит с фиксированной ставкой, регулярными платежами и дополнительным долгом. Он помогает исследовать сценарии и подготовить вопросы, но не оценивает платёжеспособность, не заменяет налоговую или юридическую консультацию и не является выпиской банка.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'bolanekalkylator-amortering-extra-inbetalningar';
|
|
7
|
+
const title = 'Amorteringskalkylator för bolån med extra inbetalningar';
|
|
8
|
+
const description = 'Planera ett bolån med fast ränta och återkommande eller engångsvisa extra amorteringar, jämför sparad ränta och visa alla belopp i en valuta.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: 'Valuta', currencyHelp: 'Välj en gång. Alla belopp i planen använder denna valuta.', principalLabel: 'Ursprunglig kvarvarande skuld', principalHelp: 'Beloppet som återstår när planen börjar', annualRateLabel: 'Årlig ränta', annualRateHelp: 'Nominell fast ränta för varje betalningsperiod', termLabel: 'Återstående löptid i år', termHelp: 'Planerad löptid före extra amorteringar', frequencyLabel: 'Betalningsintervall', recurringExtraLabel: 'Återkommande extra amortering', recurringExtraHelp: 'Extra kapital som betalas varje period', oneOffExtraLabel: 'Engångsbetalning', oneOffExtraHelp: 'En extra amortering under perioden nedan', oneOffPeriodLabel: 'Period för engångsbetalning', oneOffPeriodHelp: '1 betyder den första betalningsperioden', startDateLabel: 'Första betalningsdatum', startDateHelp: 'Används för att uppskatta slutdatumet', extraSectionTitle: 'Plan för extra amorteringar', outputTitle: 'Skuldens utveckling', regularPaymentLabel: 'Ordinarie betalning före extra', interestSavedLabel: 'Sparad ränta', periodsSavedLabel: 'sparade perioder', payoffDateLabel: 'Beräknat slutdatum', totalInterestLabel: 'Ränta som betalas med planen', totalExtraLabel: 'Extra amorterat kapital', baselineLabel: 'Ursprunglig plan', planLabel: 'Med dina extra betalningar', balanceSceneLabel: 'Ursprunglig bolåneskuld jämfört med skulden efter extra amorteringar', balanceSceneHelp: 'Den streckade linjen visar den ursprungliga planen. Den kopparfärgade linjen visar din plan. Gröna markeringar visar perioder med extra kapital.', annualScheduleTitle: 'Årlig betalningsplan', yearLabel: 'År', paymentLabel: 'Totalt betalt', interestLabel: 'Ränta', principalPaidLabel: 'Planerad amortering', extraPaidLabel: 'Extra amortering', endingBalanceLabel: 'Slutskuld', formulaTitle: 'Modell och begränsningar', formulaText: 'Kalkylatorn använder en amorteringsmodell med fast ränta. Varje period beräknas ränta på ingående skuld, den ordinarie betalningen fördelas på ränta och kapital och därefter tillämpas återkommande och engångsvisa extra amorteringar. Årsräntan delas med antalet perioder per år. Den sista betalningen minskas när den kvarvarande skulden är mindre än den planerade betalningen. Vid valutabyte omvandlas beloppen internt med en planeringskvot och samma scenario räknas om.', riskNote: 'Detta är en uppskattning, inte långivarens besked. Valväljaren använder interna planeringskvoter, inte aktuella marknadskurser. Modellen omfattar inte rörlig ränta, avgifter, försäkring, skatt, daglig ränta, straffavgifter eller avtalsregler.', emptyMessage: 'Ange en giltig skuld, ränta, löptid och datum för att se planen.', invalidInputMessage: 'Kontrollera uppgifterna för att se planen', currencyOptions: { AUD: 'A$ AUD · australisk dollar', BRL: 'R$ BRL · brasiliansk real', CAD: 'C$ CAD · kanadensisk dollar', CHF: 'CHF · schweizisk franc', CNY: '¥ CNY · kinesisk yuan', CZK: 'Kč CZK · tjeckisk koruna', DKK: 'kr DKK · dansk krona', EUR: '€ EUR · euro', GBP: '£ GBP · brittiskt pund', IDR: 'Rp IDR · indonesisk rupiah', INR: '₹ INR · indisk rupie', JPY: '¥ JPY · japansk yen', KRW: '₩ KRW · sydkoreansk won', MXN: 'MX$ MXN · mexikansk peso', NOK: 'kr NOK · norsk krona', PLN: 'zł PLN · polsk zloty', RUB: '₽ RUB · rysk rubel', SEK: 'kr SEK · svensk krona', TRY: '₺ TRY · turkisk lira', USD: '$ USD · amerikansk dollar' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: 'Månadsvis', biweekly: 'Varannan vecka', weekly: 'Veckovis' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: 'Hur ändrar extra bolånebetalningar planen?', answer: 'Kalkylatorn behåller den ordinarie betalningen och lägger till extra kapital efter varje planerad betalning. Skulden kan nå noll tidigare och den totala räntan kan minska. Långivaren kan hantera extra amortering annorlunda, så jämför med avtalet.' }, { question: 'Vad händer när jag byter valuta?', answer: 'Beloppen omvandlas internt till den nya valutan med en planeringskvot och samma scenario beräknas igen. Det är inte en aktuell marknadskurs, utan ett planeringsunderlag.' }, { question: 'Varför finns bara en valutaväljare?', answer: 'Den valda valutan gäller kapital, extra betalningar, ordinarie betalningar, ränta, saldon och årstabellen. En gemensam enhet gör formuläret tydligt och förhindrar blandade valutor.' }, { question: 'Beräknar kalkylatorn min verkliga betalning?', answer: 'Den uppskattar en amorteringsplan med fast ränta. Den känner inte till avtalets dagberäkning, avgifter, försäkring, skatt, ränteändringar, straffavgifter eller regler för förtida återbetalning. Använd besked och avtal för det faktiska beloppet.' }];
|
|
13
|
+
const howTo = [{ name: 'Välj valuta', text: 'Välj den enda valuta som ska användas för alla belopp och resultat.' }, { name: 'Beskriv lånet', text: 'Ange skuld, nominell årsränta, återstående löptid, första betalningsdatum och intervall.' }, { name: 'Lägg till extra', text: 'Ange ett återkommande belopp och lägg vid behov till en engångsbetalning med period.' }, { name: 'Läs jämförelsen', text: 'Jämför ursprungligt saldo med planen och kontrollera ränta, perioder, datum och årsplan.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'SEK' }, inLanguage: 'sv' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: 'Planera vad extra amorteringar kan förändra', level: 2 }, { type: 'paragraph', html: '<p>En amorteringsplan delar varje betalning i ränta och kapital. När du betalar extra kapital och låter den ordinarie betalningen vara oförändrad kan skulden bli noll tidigare. Verktyget jämför den ursprungliga skuldens utveckling med dina återkommande och engångsvisa extra betalningar.</p>' }, { type: 'paragraph', html: '<p>Resultatet är en uppskattning för ett lån med fast ränta. Det använder skuld, nominell årsränta, antal betalningsperioder och ett saldo som förändras efter varje betalning. Avtalet kan ha andra regler för dagar, avrundning, avgifter och extra amortering.</p>' }, { type: 'title', text: 'Så fungerar amorteringsberäkningen', level: 3 }, { type: 'paragraph', html: '<p>Varje period beräknas ränta på ingående saldo. Årsräntan delas med antalet perioder per år. Den ordinarie betalningen fördelas sedan på ränta och kapital, varefter extra betalningar minskar saldot ytterligare.</p>' }, { type: 'table', headers: ['Värde', 'Beräkning', 'Tolkning'], rows: [['Periodränta', 'Årsränta / perioder per år', 'Räntan i varje period'], ['Ordinarie betalning', 'Formel för fast betalning', 'Betalning före extra kapital'], ['Periodens ränta', 'Ingående saldo x periodränta', 'Ränta enligt modellen'], ['Saldo efter betalning', 'Saldo - kapital - extra', 'Belopp som återstår']] }, { type: 'title', text: 'Vad extra betalningar faktiskt ändrar', level: 3 }, { type: 'paragraph', html: '<p>I modellen minskar en extra betalning kapitalet direkt, så framtida ränta beräknas på ett mindre saldo. Titta på både sparad ränta och sparade perioder: den ena visar minskad finansieringskostnad och den andra ett tidigare slutdatum.</p>' }, { type: 'paragraph', html: '<p>Långivaren kan sänka betalningen, behålla löptiden eller kräva en formell begäran. Kontrollera årsgränser, minimibelopp och eventuell ersättning.</p>' }, { type: 'title', text: 'Använd valuta utan att blanda beräkningen', level: 3 }, { type: 'paragraph', html: '<p>Välj en valuta innan du anger belopp. Den gäller kapital, extra betalningar, ordinarie betalningar, ränta och saldon. Vid byte omvandlas beloppen internt och scenariots struktur är oförändrad.</p>' }, { type: 'list', items: ['Välj valutan i din budget eller ditt besked.', 'Ange skuld och extra betalningar i den valda valutan.', 'Se bytet som en planeringsenhet, inte som en avtalsändring.', 'Kontrollera tillåtet betalningsintervall och regler för förtida betalning.', 'Använd årstabellen för att se effekten av engångsbetalningen.'] }, { type: 'title', text: 'Ett enkelt exempel', level: 3 }, { type: 'paragraph', html: '<p>Med 250 000 EUR, fast ränta på 3,5% och 25 år ändrar 150 EUR extra per period samt 5 000 EUR i period 12 inte den ursprungliga ordinarie betalningen i modellen. De minskar däremot saldot och den framtida räntan.</p>' }, { type: 'paragraph', html: '<p>Om du byter till USD omvandlar verktyget beloppen med sin interna kvot och räknar om samma scenario. Det hjälper vid internationell budgetering men är inte ett aktuellt marknadsvärde.</p>' }, { type: 'title', text: 'Kontrollera före beslut', level: 3 }, { type: 'list', items: ['Fråga om extra betalning minskar löptid eller betalning.', 'Kontrollera gränser, minimum och ersättningar.', 'Bekräfta om räntan är nominell, effektiv, fast eller rörlig.', 'Jämför det beräknade saldot med ett nytt besked.', 'Skriv ned kurs och datum för en internationell budget.'] }, { type: 'tip', title: 'Diagrammet jämför, men lovar inget', html: '<p>Den streckade linjen visar den ursprungliga planen utan extra, medan den kopparfärgade följer dina uppgifter. Avgifter, försäkring, skatt, daglig ränta, valutaförändringar och långivarens avtalsregler ingår inte.</p>' }, { type: 'title', text: 'Begränsningar för denna bolånekalkylator', level: 3 }, { type: 'paragraph', html: '<p>Verktyget modellerar ett lån med fast ränta, regelbundna betalningar och valfri extra amortering. Det hjälper dig att utforska scenarier och förbereda frågor, men bedömer inte betalningsförmåga, ger inte skatte- eller juridisk rådgivning och ersätter inte långivarens besked.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'konut-kredisi-amortisman-ekstra-odemeler-hesaplama';
|
|
7
|
+
const title = 'Ek ödemeli konut kredisi amortisman hesaplayıcısı';
|
|
8
|
+
const description = 'Sabit faizli konut kredisini düzenli veya tek seferlik ekstra ödemelerle planlayın, tasarruf edilen faizi karşılaştırın ve tüm tutarları tek bir para biriminde görün.';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: 'Para birimi', currencyHelp: 'Bir kez seçin. Plandaki tüm tutarlar bu para birimini kullanır.', principalLabel: 'Başlangıç anapara bakiyesi', principalHelp: 'Planın başında hâlâ ödenmesi gereken tutar', annualRateLabel: 'Yıllık faiz oranı', annualRateHelp: 'Her ödeme döneminde kullanılan nominal sabit oran', termLabel: 'Kalan vade (yıl)', termHelp: 'Ek ödemelerden önceki planlanan süre', frequencyLabel: 'Ödeme sıklığı', recurringExtraLabel: 'Düzenli ekstra ödeme', recurringExtraHelp: 'Her dönemde ödenen ek anapara', oneOffExtraLabel: 'Tek seferlik ekstra ödeme', oneOffExtraHelp: 'Aşağıdaki dönemde yapılan tek anapara ödemesi', oneOffPeriodLabel: 'Tek seferlik ödeme dönemi', oneOffPeriodHelp: '1, ilk ödeme dönemini belirtir', startDateLabel: 'İlk ödeme tarihi', startDateHelp: 'Tahmini kapanış tarihini hesaplamak için kullanılır', extraSectionTitle: 'Ek ödeme planı', outputTitle: 'Bakiye değişimi', regularPaymentLabel: 'Ek ödemelerden önceki normal ödeme', interestSavedLabel: 'Tasarruf edilen faiz', periodsSavedLabel: 'kısalan dönem', payoffDateLabel: 'Tahmini kapanış', totalInterestLabel: 'Bu planla ödenen faiz', totalExtraLabel: 'Ek ödenen anapara', baselineLabel: 'İlk ödeme planı', planLabel: 'Ek ödemelerinizle', balanceSceneLabel: 'İlk konut kredisi bakiyesi ile ek ödemeler sonrası bakiyenin karşılaştırması', balanceSceneHelp: 'Kesikli çizgi ilk planı, bakır çizgi sizin planınızı gösterir. Yeşil işaretler ek anapara ödenen dönemleri belirtir.', annualScheduleTitle: 'Yıllık ödeme planı', yearLabel: 'Yıl', paymentLabel: 'Toplam ödeme', interestLabel: 'Faiz', principalPaidLabel: 'Planlanan anapara', extraPaidLabel: 'Ek anapara', endingBalanceLabel: 'Dönem sonu bakiyesi', formulaTitle: 'Model ve sınırlar', formulaText: 'Hesaplayıcı sabit faizli bir amortisman modeli kullanır. Her dönem açılış bakiyesi üzerinden faizi hesaplar, normal ödemeyi faiz ve anaparaya ayırır, ardından düzenli ve tek seferlik ek anaparayı uygular. Yıllık oran dönem sayısına bölünür. Kalan bakiye planlanan ödemeden küçükse son ödeme azaltılır. Para birimi değiştiğinde tutarlar dahili planlama oranıyla çevrilir ve aynı senaryo yeniden hesaplanır.', riskNote: 'Bu bir tahmindir, kredi verenin ekstresi değildir. Para birimi seçici canlı piyasa kurları yerine dahili planlama oranları kullanır. Değişken faiz, ücretler, sigorta, vergiler, günlük faiz, cezalar ve sözleşme kuralları dahil değildir.', emptyMessage: 'Planı görmek için geçerli anapara, oran, vade ve tarih girin.', invalidInputMessage: 'Planı görmek için girişleri kontrol edin', currencyOptions: { AUD: 'A$ AUD · Avustralya doları', BRL: 'R$ BRL · Brezilya reali', CAD: 'C$ CAD · Kanada doları', CHF: 'CHF · İsviçre frangı', CNY: '¥ CNY · Çin yuanı', CZK: 'Kč CZK · Çek korunası', DKK: 'kr DKK · Danimarka kronu', EUR: '€ EUR · euro', GBP: '£ GBP · İngiliz sterlini', IDR: 'Rp IDR · Endonezya rupisi', INR: '₹ INR · Hindistan rupisi', JPY: '¥ JPY · Japon yeni', KRW: '₩ KRW · Güney Kore wonu', MXN: 'MX$ MXN · Meksika pesosu', NOK: 'kr NOK · Norveç kronu', PLN: 'zł PLN · Polonya zlotisi', RUB: '₽ RUB · Rus rublesi', SEK: 'kr SEK · İsveç kronu', TRY: '₺ TRY · Türk lirası', USD: '$ USD · ABD doları' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: 'Aylık', biweekly: 'İki haftada bir', weekly: 'Haftalık' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: 'Ek konut kredisi ödemeleri planı nasıl değiştirir?', answer: 'Hesaplayıcı normal ödemeyi sabit tutar ve her planlı ödemeden sonra ek anaparayı uygular. Bakiye daha erken sıfırlanabilir ve toplam faiz azalabilir. Kredi veren ek ödemeyi farklı uygulayabileceğinden sonucu sözleşmenizle karşılaştırın.' }, { question: 'Para birimini değiştirince ne olur?', answer: 'Parasal tutarlar dahili planlama oranıyla yeni para birimine çevrilir ve aynı senaryo yeniden hesaplanır. Bu canlı piyasa kuru değildir; sonucu planlama amacıyla kullanın.' }, { question: 'Neden yalnızca bir para birimi seçici var?', answer: 'Seçilen para birimi anapara, ek ödemeler, normal ödemeler, faiz, bakiyeler ve yıllık tabloya uygulanır. Tek birim kullanmak formu anlaşılır tutar ve para birimlerini karıştırmayı önler.' }, { question: 'Hesaplayıcı bankadaki gerçek ödememi hesaplar mı?', answer: 'Sabit faizli bir planı tahmin eder. Sözleşmedeki gün hesabını, ücretleri, sigortayı, vergileri, oran değişikliklerini, cezaları veya erken ödeme uygulamasını bilemez. Resmî tutar için ekstre ve sözleşmeyi kullanın.' }];
|
|
13
|
+
const howTo = [{ name: 'Para birimini ayarlayın', text: 'Tüm tutar ve sonuçlarda kullanılacak tek para birimini seçin.' }, { name: 'Krediyi tanımlayın', text: 'Anapara, nominal yıllık oran, kalan vade, ilk ödeme tarihi ve sıklığı girin.' }, { name: 'Ek ödemeleri ekleyin', text: 'Düzenli tutarı girin; isterseniz tek seferlik tutar ve dönemini ekleyin.' }, { name: 'Karşılaştırmayı okuyun', text: 'İlk bakiye ile planınızı karşılaştırın; faiz, dönem, tarih ve yıllık tabloyu inceleyin.' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'TRY' }, inLanguage: 'tr' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: 'Ek ödemelerin değiştirebileceği şeyleri planlayın', level: 2 }, { type: 'paragraph', html: '<p>Amortisman planı her ödemeyi faiz ve anaparaya ayırır. Ek anapara ödeyip normal ödemeyi koruduğunuzda bakiye daha erken sıfırlanabilir. Bu araç ilk bakiye yolunu düzenli ve tek seferlik ek ödemelerinizle oluşan yol ile karşılaştırır.</p>' }, { type: 'paragraph', html: '<p>Sonuç sabit faizli bir kredi için planlama tahminidir. Anapara, nominal yıllık faiz, ödeme dönemleri ve her ödeme sonrası değişen bakiyeyi kullanır. Sözleşmenizde gün hesabı, yuvarlama, ücret ve erken ödeme kuralları farklı olabilir.</p>' }, { type: 'title', text: 'Amortisman hesabı nasıl çalışır?', level: 3 }, { type: 'paragraph', html: '<p>Her dönemde faiz başlangıç bakiyesi üzerinden hesaplanır. Yıllık oran yıl içindeki dönem sayısına bölünür. Normal ödeme faiz ve anaparaya ayrılır, ardından ek ödemeler bakiyeyi daha da azaltır.</p>' }, { type: 'table', headers: ['Değer', 'Hesaplama', 'Yorum'], rows: [['Dönem oranı', 'Yıllık oran / yıllık dönem sayısı', 'Her dönemde uygulanan oran'], ['Normal ödeme', 'Sabit ödeme formülü', 'Ek anapara öncesi ödeme'], ['Dönem faizi', 'Başlangıç bakiyesi x dönem oranı', 'Modelin öngördüğü faiz'], ['Ödeme sonrası bakiye', 'Bakiye - anapara - ek', 'Kalan borç']] }, { type: 'title', text: 'Ek ödemeler gerçekte neyi değiştirir?', level: 3 }, { type: 'paragraph', html: '<p>Bu modelde ek ödeme doğrudan anaparayı azaltır; sonraki faiz daha küçük bakiye üzerinden hesaplanır. Hem tasarruf edilen faize hem kısalan döneme bakın: biri finansman maliyetini, diğeri daha erken kapanışı gösterir.</p>' }, { type: 'paragraph', html: '<p>Kredi veren ödemeyi azaltabilir, vadeyi koruyabilir veya resmî başvuru isteyebilir. Ödeme öncesi yıllık limitleri, minimum tutarı ve olası tazminatı kontrol edin.</p>' }, { type: 'title', text: 'Hesabı karıştırmadan para birimi kullanın', level: 3 }, { type: 'paragraph', html: '<p>Tutarları girmeden önce tek bir para birimi seçin. Anapara, ek ödemeler, taksitler, faiz ve bakiyeler aynı birimi kullanır. Değiştirdiğinizde tutarlar dahili olarak çevrilir ve senaryo yapısı korunur.</p>' }, { type: 'list', items: ['Bütçenizin veya kredi ekstrenizin para birimini seçin.', 'Anaparayı ve tüm ek ödemeleri seçilen birimde girin.', 'Değişimi sözleşme değişikliği değil, planlama birimi değişimi olarak görün.', 'İzin verilen ödeme sıklığını ve erken ödeme kurallarını kontrol edin.', 'Tek seferlik ödemenin etkisini görmek için yıllık tabloya bakın.'] }, { type: 'title', text: 'Sonucu okumak için basit örnek', level: 3 }, { type: 'paragraph', html: '<p>250.000 EUR, %3,5 sabit faiz ve 25 yıl için her dönemde 150 EUR ve 12. dönemde 5.000 EUR eklemek, bu modelde ilk normal ödemeyi değiştirmez. Ancak bakiye ve sonraki faiz azalır.</p>' }, { type: 'paragraph', html: "<p>USD'ye geçtiğinizde araç tutarları dahili oranla çevirir ve aynı senaryoyu yeniden hesaplar. Uluslararası bütçe için yararlıdır, ancak güncel piyasa değeri değildir.</p>" }, { type: 'title', text: 'Karar vermeden önce kontrol edin', level: 3 }, { type: 'list', items: ['Ek ödemenin vadeyi mi taksiti mi azalttığını sorun.', 'Limitleri, minimumları ve tazminatları kontrol edin.', 'Oranın nominal, efektif, sabit veya değişken olduğunu doğrulayın.', 'Hesaplanan bakiyeyi güncel ekstreyle karşılaştırın.', 'Uluslararası bütçede kuru ve tarihi not edin.'] }, { type: 'tip', title: 'Grafik karşılaştırır, garanti vermez', html: '<p>Kesikli çizgi ek ödeme olmayan ilk sabit planı, bakır çizgi girdiğiniz planı gösterir. Ücretler, sigorta, vergiler, günlük faiz, kur hareketleri ve kredi verenin sözleşme kuralları dahil değildir.</p>' }, { type: 'title', text: 'Bu konut kredisi hesaplayıcısının sınırları', level: 3 }, { type: 'paragraph', html: '<p>Araç sabit faizli, düzenli ödemeli ve isteğe bağlı ek anaparalı bir krediyi modeller. Senaryo incelemeye ve soru hazırlamaya yardımcı olur; ödeme gücünü değerlendirmez, vergi veya hukuk danışmanlığı vermez ve banka ekstresinin yerini tutmaz.</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageExtraPaymentPlannerUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'mortgage-amortization-extra-payment-planner';
|
|
7
|
+
const title = '含额外还款的房贷摊销计划';
|
|
8
|
+
const description = '为固定利率房贷加入定期或一次性额外还款,比较节省的利息,并用一种货币查看所有金额。';
|
|
9
|
+
const ui: MortgageExtraPaymentPlannerUI = {
|
|
10
|
+
currencyLabel: '货币', currencyHelp: '只需选择一次。计划中的所有金额都会使用此货币。', principalLabel: '初始剩余本金', principalHelp: '计划开始时仍需偿还的金额', annualRateLabel: '年利率', annualRateHelp: '每个还款周期使用的名义固定利率', termLabel: '剩余期限(年)', termHelp: '未进行额外还款前的计划期限', frequencyLabel: '还款频率', recurringExtraLabel: '定期额外还款', recurringExtraHelp: '每个周期额外偿还的本金', oneOffExtraLabel: '一次性额外还款', oneOffExtraHelp: '在下方周期进行的一次本金还款', oneOffPeriodLabel: '一次性还款周期', oneOffPeriodHelp: '1表示第一个还款周期', startDateLabel: '首次还款日期', startDateHelp: '用于估算还清日期', extraSectionTitle: '额外还款计划', outputTitle: '余额变化', regularPaymentLabel: '额外还款前的常规还款', interestSavedLabel: '节省的利息', periodsSavedLabel: '缩短的周期', payoffDateLabel: '预计还清日期', totalInterestLabel: '按此计划支付的利息', totalExtraLabel: '额外偿还的本金', baselineLabel: '原始计划', planLabel: '加入额外还款后', balanceSceneLabel: '原始房贷余额与额外还款后的余额对比', balanceSceneHelp: '虚线表示原始计划,铜色线表示你的计划,绿色标记表示有额外本金的周期。', annualScheduleTitle: '年度还款计划', yearLabel: '年份', paymentLabel: '支付总额', interestLabel: '利息', principalPaidLabel: '计划本金', extraPaidLabel: '额外本金', endingBalanceLabel: '期末余额', formulaTitle: '模型与限制', formulaText: '计算器使用固定利率摊销模型。每个周期根据期初余额计算利息,将常规还款分配给利息和本金,然后应用定期及一次性额外本金。年利率除以每年的周期数。如果剩余余额小于计划还款额,最后一笔还款会相应减少。切换货币时,金额会用内部计划比例换算,并重新计算同一场景。', riskNote: '这是估算结果,不是贷款机构的账单。货币选择使用内部计划比例,而不是实时市场汇率。模型不包括浮动利率、费用、保险、税费、按日计息、罚金或合同中的提前还款规则。', emptyMessage: '输入有效的本金、利率、期限和日期即可查看计划。', invalidInputMessage: '请检查输入后查看计划', currencyOptions: { AUD: 'A$ AUD · 澳大利亚元', BRL: 'R$ BRL · 巴西雷亚尔', CAD: 'C$ CAD · 加拿大元', CHF: 'CHF · 瑞士法郎', CNY: '¥ CNY · 人民币', CZK: 'Kč CZK · 捷克克朗', DKK: 'kr DKK · 丹麦克朗', EUR: '€ EUR · 欧元', GBP: '£ GBP · 英镑', IDR: 'Rp IDR · 印度尼西亚卢比', INR: '₹ INR · 印度卢比', JPY: '¥ JPY · 日元', KRW: '₩ KRW · 韩元', MXN: 'MX$ MXN · 墨西哥比索', NOK: 'kr NOK · 挪威克朗', PLN: 'zł PLN · 波兰兹罗提', RUB: '₽ RUB · 俄罗斯卢布', SEK: 'kr SEK · 瑞典克朗', TRY: '₺ TRY · 土耳其里拉', USD: '$ USD · 美元' }, currencySymbols: { AUD: 'A$', BRL: 'R$', CAD: 'C$', CHF: 'CHF', CNY: '¥', CZK: 'Kč', DKK: 'kr', EUR: '€', GBP: '£', IDR: 'Rp', INR: '₹', JPY: '¥', KRW: '₩', MXN: 'MX$', NOK: 'kr', PLN: 'zł', RUB: '₽', SEK: 'kr', TRY: '₺', USD: '$' }, frequencyOptions: { monthly: '每月', biweekly: '每两周', weekly: '每周' },
|
|
11
|
+
};
|
|
12
|
+
const faq = [{ question: '额外还款会如何改变房贷计划?', answer: '计算器保持常规还款不变,并在每次计划还款后应用额外本金。余额可能更早归零,总利息也可能减少。贷款机构的处理方式可能不同,请将结果与合同核对。' }, { question: '切换货币后会发生什么?', answer: '金额会按内部计划比例换算为新货币,然后重新计算同一场景。这不是实时市场报价,应将结果用于规划。' }, { question: '为什么只有一个货币选择器?', answer: '所选货币会应用于本金、额外还款、常规还款、利息、余额和年度表格。统一单位让表单更清楚,也避免在一次计算中混用货币。' }, { question: '能计算贷款机构的真实还款额吗?', answer: '它只能估算固定利率摊销计划,不知道合同中的计息天数、费用、保险、税费、利率调整、罚金或提前还款处理方式。正式金额应以账单和合同为准。' }];
|
|
13
|
+
const howTo = [{ name: '设置货币', text: '选择用于所有金额和结果的一种货币。' }, { name: '填写贷款信息', text: '输入本金、名义年利率、剩余期限、首次还款日期和频率。' }, { name: '加入额外还款', text: '输入定期额外金额,并可添加一次性金额及其周期。' }, { name: '阅读对比', text: '比较原始余额与计划余额,并查看利息、周期、日期和年度计划。' }];
|
|
14
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
15
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howTo.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
16
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'FinanceApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'CNY' }, inLanguage: 'zh' };
|
|
17
|
+
const seo: ToolLocaleContent['seo'] = [{ type: 'title', text: '规划额外还款会带来的变化', level: 2 }, { type: 'paragraph', html: '<p>摊销计划会把每次还款分成利息和本金。支付额外本金并保持常规还款不变,可以让余额更早归零。本工具将原始余额路径与定期、一次性额外还款后的路径放在一起比较。</p>' }, { type: 'paragraph', html: '<p>结果是固定利率贷款的规划估算,使用本金、名义年利率、还款周期数量以及每次还款后变化的余额。合同可能采用不同的计息天数、四舍五入、费用或提前还款规则。</p>' }, { type: 'title', text: '摊销计算如何工作', level: 3 }, { type: 'paragraph', html: '<p>每个周期根据期初余额计算利息,将年利率除以每年的还款周期数,再把常规还款分配给利息和本金,最后扣除额外本金。</p>' }, { type: 'table', headers: ['项目', '计算', '含义'], rows: [['周期利率', '年利率 / 每年周期数', '每个周期使用的利率'], ['常规还款', '固定还款公式', '额外本金之前的还款'], ['周期利息', '期初余额 x 周期利率', '模型估算的利息'], ['还款后余额', '余额 - 本金 - 额外本金', '仍需偿还的金额']] }, { type: 'title', text: '额外还款真正改变什么', level: 3 }, { type: 'paragraph', html: '<p>在此模型中,额外还款会直接减少本金,因此之后的利息按更小的余额计算。请同时查看节省的利息和缩短的周期:前者表示减少的融资成本,后者表示更早还清的时间。</p>' }, { type: 'paragraph', html: '<p>贷款机构可能降低还款额、保持期限,或要求正式申请。还款前请确认年度上限、最低金额和可能的补偿费用。</p>' }, { type: 'title', text: '不混用货币进行计划', level: 3 }, { type: 'paragraph', html: '<p>输入金额前先选择一种货币。本金、额外还款、常规还款、利息和余额都使用同一单位。切换货币时金额在内部换算,场景结构保持不变。</p>' }, { type: 'list', items: ['选择家庭预算或贷款账单使用的货币。', '用所选货币输入本金和所有额外还款。', '把切换看作规划单位变化,而不是合同变化。', '确认允许的还款频率和提前还款规则。', '查看年度表格,了解一次性还款的影响。'] }, { type: 'title', text: '阅读结果的简单示例', level: 3 }, { type: 'paragraph', html: '<p>假设本金为250,000 EUR、固定年利率3.5%、期限25年,每周期额外支付150 EUR,并在第12周期支付5,000 EUR。在此模型中,原始常规还款额不变,但余额和之后的利息会下降。</p>' }, { type: 'paragraph', html: '<p>切换到USD后,工具用内部计划比例换算金额,并重新计算同一场景。这适合国际预算,但不是当前市场估值或实时汇率。</p>' }, { type: 'title', text: '行动前需要检查的事项', level: 3 }, { type: 'list', items: ['询问额外还款会缩短期限还是降低还款额。', '确认上限、最低金额和补偿费用。', '确认利率是名义、实际、固定还是浮动。', '将计算余额与最新账单比较。', '国际预算中记录使用的汇率和日期。'] }, { type: 'tip', title: '图表用于比较,不是承诺', html: '<p>虚线表示没有额外还款的原始固定计划,铜色线表示输入的计划。两者都不包含费用、保险、税费、按日计息、汇率变化或贷款机构的合同规则。</p>' }, { type: 'title', text: '本房贷计划的限制', level: 3 }, { type: 'paragraph', html: '<p>本工具模拟固定利率、定期还款和可选额外本金的贷款。它适合探索方案和准备问题,但不能评估还款能力,不能提供税务或法律建议,不能预测汇率,也不能替代贷款机构账单。</p>' }];
|
|
18
|
+
export const content: ToolLocaleContent<MortgageExtraPaymentPlannerUI> = { slug, title, description, ui, faq, bibliography, howTo, schemas: [appSchema, faqSchema, howToSchema], seo };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../../types';
|
|
2
|
+
import { mortgageExtraPaymentPlanner } from './entry';
|
|
3
|
+
|
|
4
|
+
export * from './entry';
|
|
5
|
+
|
|
6
|
+
export const MORTGAGE_EXTRA_PAYMENT_PLANNER_TOOL: ToolDefinition = {
|
|
7
|
+
entry: mortgageExtraPaymentPlanner,
|
|
8
|
+
Component: () => import('./component.astro'),
|
|
9
|
+
SEOComponent: () => import('./seo.astro'),
|
|
10
|
+
BibliographyComponent: () => import('./bibliography.astro'),
|
|
11
|
+
};
|