@jjlmoya/utils-finance 1.46.0 → 1.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/category/index.ts +2 -1
- package/src/entries.ts +4 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tool/loanAprScenarioCalculator/bibliography.astro +11 -0
- package/src/tool/loanAprScenarioCalculator/bibliography.ts +29 -0
- package/src/tool/loanAprScenarioCalculator/component.astro +62 -0
- package/src/tool/loanAprScenarioCalculator/controller.ts +205 -0
- package/src/tool/loanAprScenarioCalculator/currency-dom.ts +107 -0
- package/src/tool/loanAprScenarioCalculator/currency.test.ts +57 -0
- package/src/tool/loanAprScenarioCalculator/currency.ts +105 -0
- package/src/tool/loanAprScenarioCalculator/dom-views.ts +190 -0
- package/src/tool/loanAprScenarioCalculator/entry.ts +28 -0
- package/src/tool/loanAprScenarioCalculator/evaluator.ts +21 -0
- package/src/tool/loanAprScenarioCalculator/i18n/de.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/en.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/es.ts +195 -0
- package/src/tool/loanAprScenarioCalculator/i18n/fr.ts +195 -0
- package/src/tool/loanAprScenarioCalculator/i18n/id.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/it.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/ja.ts +186 -0
- package/src/tool/loanAprScenarioCalculator/i18n/ko.ts +186 -0
- package/src/tool/loanAprScenarioCalculator/i18n/nl.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/pl.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/pt.ts +194 -0
- package/src/tool/loanAprScenarioCalculator/i18n/ru.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/sv.ts +189 -0
- package/src/tool/loanAprScenarioCalculator/i18n/tr.ts +193 -0
- package/src/tool/loanAprScenarioCalculator/i18n/zh.ts +181 -0
- package/src/tool/loanAprScenarioCalculator/index.ts +11 -0
- package/src/tool/loanAprScenarioCalculator/loan-apr-scenario-calculator.css +699 -0
- package/src/tool/loanAprScenarioCalculator/logic.test.ts +65 -0
- package/src/tool/loanAprScenarioCalculator/logic.ts +259 -0
- package/src/tool/loanAprScenarioCalculator/presets.ts +51 -0
- package/src/tool/loanAprScenarioCalculator/scenario-dom.ts +101 -0
- package/src/tool/loanAprScenarioCalculator/seo.astro +11 -0
- package/src/tool/loanAprScenarioCalculator/storage.ts +60 -0
- package/src/tool/loanAprScenarioCalculator/ui.ts +55 -0
- package/src/tool/loanAprScenarioCalculator/validation.ts +24 -0
- package/src/tools.ts +2 -1
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
import { bibliography } from "../bibliography";
|
|
3
|
+
import type { LoanAprScenarioCalculatorUI } from "../ui";
|
|
4
|
+
|
|
5
|
+
const ui: LoanAprScenarioCalculatorUI = {
|
|
6
|
+
labelScenarioA: "Предложение A",
|
|
7
|
+
labelScenarioB: "Предложение B",
|
|
8
|
+
labelScenarioName: "Название предложения",
|
|
9
|
+
labelCurrency: "Валюта",
|
|
10
|
+
labelApproximateRates:
|
|
11
|
+
"Приблизительные коэффициенты для планирования, не текущие курсы обмена.",
|
|
12
|
+
labelPrincipal: "Сумма займа",
|
|
13
|
+
labelTerm: "Срок погашения",
|
|
14
|
+
labelMonths: "месяцев",
|
|
15
|
+
labelInputBasis: "Что вам известно?",
|
|
16
|
+
labelAnnualRate: "Номинальная годовая ставка",
|
|
17
|
+
labelMonthlyPayment: "Известный ежемесячный платёж",
|
|
18
|
+
labelUpfrontFees: "Первоначальные комиссии",
|
|
19
|
+
labelMonthlyFees: "Ежемесячные комиссии",
|
|
20
|
+
labelFinalFees: "Итоговая комиссия",
|
|
21
|
+
labelOfferNameA: "Предложение A",
|
|
22
|
+
labelOfferNameB: "Предложение B",
|
|
23
|
+
labelRateMode: "Я знаю ставку",
|
|
24
|
+
labelPaymentMode: "Я знаю платёж",
|
|
25
|
+
labelPreset: "Начать сравнение",
|
|
26
|
+
labelPresetBalanced: "Сбалансированные предложения",
|
|
27
|
+
labelPresetLowFee: "Низкая ставка с комиссиями",
|
|
28
|
+
labelPresetLongTerm: "Больший срок",
|
|
29
|
+
labelReset: "Сбросить значения",
|
|
30
|
+
labelCopy: "Скопировать сравнение",
|
|
31
|
+
labelCopied: "Сравнение скопировано",
|
|
32
|
+
labelEffectiveApr: "Эффективные годовые затраты",
|
|
33
|
+
labelNominalRate: "Номинальная ставка",
|
|
34
|
+
labelMonthlyPaymentResult: "Ежемесячный платёж",
|
|
35
|
+
labelTotalPaid: "Всего выплачено",
|
|
36
|
+
labelTotalFees: "Комиссии сценария",
|
|
37
|
+
labelFinanceCost: "Стоимость сверх основного долга",
|
|
38
|
+
labelNetCashReceived: "Получено после первоначальных комиссий",
|
|
39
|
+
labelWinner: "Какое предложение дешевле?",
|
|
40
|
+
labelLowerCost: "Ниже эффективная стоимость",
|
|
41
|
+
labelHigherCost: "Выше эффективная стоимость",
|
|
42
|
+
labelTie: "Почти одинаково",
|
|
43
|
+
labelNeedValidInputs: "Нужны корректные данные",
|
|
44
|
+
labelInvalidPrincipal:
|
|
45
|
+
"Сумма займа должна быть больше нуля и превышать первоначальные комиссии.",
|
|
46
|
+
labelInvalidTerm: "Укажите целый срок от 1 до 600 месяцев.",
|
|
47
|
+
labelInvalidFees: "Комиссии не могут быть отрицательными.",
|
|
48
|
+
labelInvalidPayment:
|
|
49
|
+
"Введите положительный платёж, который погасит полученную чистую сумму.",
|
|
50
|
+
labelInvalidRate: "Укажите номинальную годовую ставку от 0% до 100%.",
|
|
51
|
+
labelNoComparison: "Заполните оба предложения для сравнения.",
|
|
52
|
+
labelTimeline: "График платежей",
|
|
53
|
+
labelStart: "Начало",
|
|
54
|
+
labelMonthly: "Каждый месяц",
|
|
55
|
+
labelEnd: "Последний месяц",
|
|
56
|
+
labelFormula: "Как работает сравнение",
|
|
57
|
+
labelFormulaText:
|
|
58
|
+
"Эффективные годовые затраты - это приведённая к году месячная ставка, при которой полученная сумма равна дисконтированным платежам и комиссиям.",
|
|
59
|
+
labelApproximation:
|
|
60
|
+
"Оценка предполагает одинаковые ежемесячные платежи, отсутствие льготного периода и только введённые комиссии. Она не заменяет официальный APR кредитора.",
|
|
61
|
+
labelScenarioSummary: "Сводка сценария",
|
|
62
|
+
currencyCode: "RUB",
|
|
63
|
+
currencyLocale: "ru-RU",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const faq = [
|
|
67
|
+
{
|
|
68
|
+
question: "Чем процентная ставка отличается от эффективных годовых затрат?",
|
|
69
|
+
answer:
|
|
70
|
+
"Номинальная ставка описывает проценты на остаток долга. Эффективные годовые затраты также учитывают сумму и время первоначальных, ежемесячных и итоговых комиссий.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
question: "Можно ли ввести ежемесячный платёж вместо ставки?",
|
|
74
|
+
answer:
|
|
75
|
+
"Да. Выберите известный ежемесячный платёж для предложения. Калькулятор определит месячную ставку, соответствующую полученной сумме, платежам и комиссиям.",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
question: "Какое предложение дешевле?",
|
|
79
|
+
answer:
|
|
80
|
+
"Сначала сравните эффективные годовые затраты, затем проверьте общую выплату и полученную сумму. При разном сроке или размере займа меньший процент всё равно может дать большую общую стоимость.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
question: "Это официальный APR кредитора?",
|
|
84
|
+
answer:
|
|
85
|
+
"Нет. Это прозрачная оценка по вашим данным. Кредиторы и правила разных стран могут по-разному учитывать налоги, страховку, даты платежей и другие расходы.",
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const howTo = [
|
|
90
|
+
{
|
|
91
|
+
name: "Введите сумму и срок",
|
|
92
|
+
text: "Укажите сумму, которую вы получите, и количество ежемесячных платежей для каждого предложения.",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "Выберите известные данные",
|
|
96
|
+
text: "Введите номинальную годовую ставку или ежемесячный платёж согласно предложению.",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "Добавьте все комиссии",
|
|
100
|
+
text: "Укажите первоначальные, ежемесячные и итоговые комиссии, чтобы отразить полный денежный поток.",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "Прочитайте сравнение",
|
|
104
|
+
text: "Используйте эффективные годовые затраты и перед решением проверьте общую выплату и полученную сумму.",
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
const schemas = [
|
|
109
|
+
{
|
|
110
|
+
"@context": "https://schema.org",
|
|
111
|
+
"@type": "SoftwareApplication",
|
|
112
|
+
name: "Калькулятор сценариев APR кредита",
|
|
113
|
+
description:
|
|
114
|
+
"Сравнивает два кредитных сценария со ставками, платежами и комиссиями.",
|
|
115
|
+
applicationCategory: "FinanceApplication",
|
|
116
|
+
operatingSystem: "All",
|
|
117
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "RUB" },
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"@context": "https://schema.org",
|
|
121
|
+
"@type": "FAQPage",
|
|
122
|
+
mainEntity: faq.map((item) => ({
|
|
123
|
+
"@type": "Question",
|
|
124
|
+
name: item.question,
|
|
125
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"@context": "https://schema.org",
|
|
130
|
+
"@type": "HowTo",
|
|
131
|
+
name: "Сравнить два кредитных предложения",
|
|
132
|
+
description:
|
|
133
|
+
"Смоделируйте денежные потоки двух кредитов и сравните их эффективные годовые затраты.",
|
|
134
|
+
step: howTo.map((step, index) => ({
|
|
135
|
+
"@type": "HowToStep",
|
|
136
|
+
position: index + 1,
|
|
137
|
+
name: step.name,
|
|
138
|
+
text: step.text,
|
|
139
|
+
})),
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
export const content: ToolLocaleContent<LoanAprScenarioCalculatorUI> = {
|
|
144
|
+
slug: "kalkulyator-scenariev-apr-kredita",
|
|
145
|
+
title: "Калькулятор сценариев APR кредита",
|
|
146
|
+
description:
|
|
147
|
+
"Сравните два кредитных предложения с процентами, графиком платежей и комиссиями, чтобы оценить эффективные годовые затраты.",
|
|
148
|
+
ui,
|
|
149
|
+
faq,
|
|
150
|
+
bibliography,
|
|
151
|
+
howTo,
|
|
152
|
+
schemas,
|
|
153
|
+
seo: [
|
|
154
|
+
{
|
|
155
|
+
type: "title",
|
|
156
|
+
text: "Сравнивайте кредиты по эффективным годовым затратам",
|
|
157
|
+
level: 2,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: "paragraph",
|
|
161
|
+
html: "<p>Низкая рекламная ставка может скрывать комиссию за оформление, ежемесячный сбор или итоговую плату. Этот калькулятор превращает данные двух предложений в сопоставимые денежные потоки и показывает стоимость фактически полученных средств.</p>",
|
|
162
|
+
},
|
|
163
|
+
{ type: "title", text: "Что входит в оценку", level: 3 },
|
|
164
|
+
{
|
|
165
|
+
type: "paragraph",
|
|
166
|
+
html: "<p>Для каждого предложения введите сумму, срок, номинальную ставку или известный ежемесячный платёж и комиссии в разные моменты. Калькулятор находит месячную ставку, уравнивающую чистую полученную сумму с дисконтированными платежами и комиссиями, а затем переводит её в годовую.</p>",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: "paragraph",
|
|
170
|
+
html: "<p>Так стоимость кредита рассматривается шире, чем одна процентная ставка. Результат является оценкой, поскольку официальный APR может зависеть от местных правил и дополнительных условий.</p>",
|
|
171
|
+
},
|
|
172
|
+
{ type: "title", text: "Как читать результат", level: 3 },
|
|
173
|
+
{
|
|
174
|
+
type: "list",
|
|
175
|
+
items: [
|
|
176
|
+
"Сравнивайте эффективные годовые затраты при похожих сумме и сроке.",
|
|
177
|
+
"Проверяйте общую выплату, чтобы понять денежную нагрузку.",
|
|
178
|
+
"Смотрите полученную сумму после первоначальных комиссий.",
|
|
179
|
+
"Используйте график, чтобы увидеть момент каждого расхода.",
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: "tip",
|
|
184
|
+
title: "Окончательным источником остаются документы кредитора",
|
|
185
|
+
html: "<p>Для реального договора сопоставьте официальный APR с теми же предположениями. Уточните страховку, налоги, плавающую ставку, досрочное погашение и неучтённые комиссии.</p>",
|
|
186
|
+
},
|
|
187
|
+
{ type: "title", text: "Ограничения сценарной оценки", level: 3 },
|
|
188
|
+
{
|
|
189
|
+
type: "paragraph",
|
|
190
|
+
html: "<p>Инструмент предполагает одинаковые ежемесячные платежи, отсутствие льготного периода и комиссии в начале, во время срока или в последний месяц. Он не подтверждает платёжеспособность, одобрение, законность или официальный APR.</p>",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
import { bibliography } from "../bibliography";
|
|
3
|
+
import type { LoanAprScenarioCalculatorUI } from "../ui";
|
|
4
|
+
|
|
5
|
+
const ui: LoanAprScenarioCalculatorUI = {
|
|
6
|
+
labelScenarioA: "Erbjudande A",
|
|
7
|
+
labelScenarioB: "Erbjudande B",
|
|
8
|
+
labelScenarioName: "Erbjudandets namn",
|
|
9
|
+
labelCurrency: "Valuta",
|
|
10
|
+
labelApproximateRates:
|
|
11
|
+
"Ungefärliga planeringsfaktorer, inte aktuella växelkurser.",
|
|
12
|
+
labelPrincipal: "Lånebelopp",
|
|
13
|
+
labelTerm: "Återbetalningstid",
|
|
14
|
+
labelMonths: "månader",
|
|
15
|
+
labelInputBasis: "Vilken uppgift känner du till?",
|
|
16
|
+
labelAnnualRate: "Nominell årsränta",
|
|
17
|
+
labelMonthlyPayment: "Känd månadsbetalning",
|
|
18
|
+
labelUpfrontFees: "Startavgifter",
|
|
19
|
+
labelMonthlyFees: "Månadsavgifter",
|
|
20
|
+
labelFinalFees: "Slutavgift",
|
|
21
|
+
labelOfferNameA: "Erbjudande A",
|
|
22
|
+
labelOfferNameB: "Erbjudande B",
|
|
23
|
+
labelRateMode: "Jag känner till räntan",
|
|
24
|
+
labelPaymentMode: "Jag känner till betalningen",
|
|
25
|
+
labelPreset: "Börja jämföra",
|
|
26
|
+
labelPresetBalanced: "Balanserade erbjudanden",
|
|
27
|
+
labelPresetLowFee: "Låg ränta med avgifter",
|
|
28
|
+
labelPresetLongTerm: "Längre löptid",
|
|
29
|
+
labelReset: "Återställ värden",
|
|
30
|
+
labelCopy: "Kopiera jämförelse",
|
|
31
|
+
labelCopied: "Jämförelsen kopierades",
|
|
32
|
+
labelEffectiveApr: "Effektiv årskostnad",
|
|
33
|
+
labelNominalRate: "Nominell ränta",
|
|
34
|
+
labelMonthlyPaymentResult: "Månadsbetalning",
|
|
35
|
+
labelTotalPaid: "Totalt betalt",
|
|
36
|
+
labelTotalFees: "Avgifter i scenariot",
|
|
37
|
+
labelFinanceCost: "Kostnad över kapitalet",
|
|
38
|
+
labelNetCashReceived: "Mottaget efter startavgifter",
|
|
39
|
+
labelWinner: "Vilket erbjudande kostar minst?",
|
|
40
|
+
labelLowerCost: "Lägre effektiv kostnad",
|
|
41
|
+
labelHigherCost: "Högre effektiv kostnad",
|
|
42
|
+
labelTie: "Nästan lika",
|
|
43
|
+
labelNeedValidInputs: "Giltiga uppgifter krävs",
|
|
44
|
+
labelInvalidPrincipal:
|
|
45
|
+
"Lånebeloppet måste vara större än noll och högre än startavgifterna.",
|
|
46
|
+
labelInvalidTerm: "Använd en hel löptid från 1 till 600 månader.",
|
|
47
|
+
labelInvalidFees: "Avgifter får inte vara negativa.",
|
|
48
|
+
labelInvalidPayment:
|
|
49
|
+
"Ange en positiv månadsbetalning som kan återbetala det mottagna nettobeloppet.",
|
|
50
|
+
labelInvalidRate: "Använd en nominell årsränta från 0% till 100%.",
|
|
51
|
+
labelNoComparison: "Fyll i båda erbjudandena för att jämföra dem.",
|
|
52
|
+
labelTimeline: "Betalningsplan",
|
|
53
|
+
labelStart: "Start",
|
|
54
|
+
labelMonthly: "Varje månad",
|
|
55
|
+
labelEnd: "Sista månaden",
|
|
56
|
+
labelFormula: "Så fungerar jämförelsen",
|
|
57
|
+
labelFormulaText:
|
|
58
|
+
"Den effektiva årskostnaden är den annualiserade månadsränta som gör mottaget belopp lika med diskonterade betalningar och avgifter.",
|
|
59
|
+
labelApproximation:
|
|
60
|
+
"Uppskattningen antar lika månadsbetalningar, ingen amorteringsfri period och endast de avgifter du anger. Den ersätter inte långivarens officiella APR.",
|
|
61
|
+
labelScenarioSummary: "Scenariesammanfattning",
|
|
62
|
+
currencyCode: "SEK",
|
|
63
|
+
currencyLocale: "sv-SE",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const faq = [
|
|
67
|
+
{
|
|
68
|
+
question: "Vad är skillnaden mellan räntan och den effektiva årskostnaden?",
|
|
69
|
+
answer:
|
|
70
|
+
"Den nominella räntan beskriver räntan på skulden. Den effektiva årskostnaden tar också hänsyn till belopp och tidpunkt för start-, månads- och slutavgifter.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
question: "Kan jag ange månadsbetalningen i stället för räntan?",
|
|
74
|
+
answer:
|
|
75
|
+
"Ja. Välj känd månadsbetalning för erbjudandet. Kalkylatorn räknar fram den månadsränta som stämmer med mottaget belopp, betalningar och avgifter.",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
question: "Vilket erbjudande är billigast?",
|
|
79
|
+
answer:
|
|
80
|
+
"Jämför först den effektiva årskostnaden och kontrollera sedan totalt betalt och mottaget belopp. En lägre procentsats kan ändå ge högre total kostnad om belopp eller löptid skiljer sig.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
question: "Är detta långivarens officiella APR?",
|
|
84
|
+
answer:
|
|
85
|
+
"Nej. Det är en transparent scenarieuppskattning utifrån dina uppgifter. Långivare och länder kan hantera skatt, försäkring, betalningsdatum och andra kostnader på olika sätt.",
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const howTo = [
|
|
90
|
+
{
|
|
91
|
+
name: "Ange belopp och löptid",
|
|
92
|
+
text: "Skriv in beloppet du skulle få och antalet månadsbetalningar för varje erbjudande.",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "Välj känd uppgift",
|
|
96
|
+
text: "Ange nominell årsränta eller månadsbetalning beroende på erbjudandets information.",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "Lägg till alla avgifter",
|
|
100
|
+
text: "Ta med start-, månads- och slutavgifter så att hela kassaflödet visas.",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "Läs jämförelsen",
|
|
104
|
+
text: "Använd effektiv årskostnad och kontrollera totalt betalt och mottaget belopp innan du bestämmer dig.",
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
const schemas = [
|
|
109
|
+
{
|
|
110
|
+
"@context": "https://schema.org",
|
|
111
|
+
"@type": "SoftwareApplication",
|
|
112
|
+
name: "Kalkylator för låne-APR-scenarier",
|
|
113
|
+
description:
|
|
114
|
+
"Jämför två lånescenarier med räntor, betalningar och avgifter.",
|
|
115
|
+
applicationCategory: "FinanceApplication",
|
|
116
|
+
operatingSystem: "All",
|
|
117
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "SEK" },
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"@context": "https://schema.org",
|
|
121
|
+
"@type": "FAQPage",
|
|
122
|
+
mainEntity: faq.map((item) => ({
|
|
123
|
+
"@type": "Question",
|
|
124
|
+
name: item.question,
|
|
125
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"@context": "https://schema.org",
|
|
130
|
+
"@type": "HowTo",
|
|
131
|
+
name: "Jämför två låneerbjudanden",
|
|
132
|
+
description:
|
|
133
|
+
"Modellera två låneflöden och jämför deras effektiva årskostnad.",
|
|
134
|
+
step: howTo.map((step, index) => ({
|
|
135
|
+
"@type": "HowToStep",
|
|
136
|
+
position: index + 1,
|
|
137
|
+
name: step.name,
|
|
138
|
+
text: step.text,
|
|
139
|
+
})),
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
export const content: ToolLocaleContent<LoanAprScenarioCalculatorUI> = {
|
|
144
|
+
slug: "lan-apr-scenariokalkylator",
|
|
145
|
+
title: "Kalkylator för scenarier med låne APR",
|
|
146
|
+
description:
|
|
147
|
+
"Jämför två låneerbjudanden med ränta, betalningsplan och avgifter för att uppskatta den effektiva årskostnaden.",
|
|
148
|
+
ui,
|
|
149
|
+
faq,
|
|
150
|
+
bibliography,
|
|
151
|
+
howTo,
|
|
152
|
+
schemas,
|
|
153
|
+
seo: [
|
|
154
|
+
{ type: "title", text: "Jämför lån efter effektiv årskostnad", level: 2 },
|
|
155
|
+
{
|
|
156
|
+
type: "paragraph",
|
|
157
|
+
html: "<p>En låg annonserad ränta kan dölja uppläggningsavgift, månadsavgift eller en slutkostnad. Den här kalkylatorn gör två erbjudanden till jämförbara kassaflöden så att kostnaden för pengarna du faktiskt får blir tydlig.</p>",
|
|
158
|
+
},
|
|
159
|
+
{ type: "title", text: "Vad uppskattningen innehåller", level: 3 },
|
|
160
|
+
{
|
|
161
|
+
type: "paragraph",
|
|
162
|
+
html: "<p>För varje erbjudande anger du belopp, löptid, nominell ränta eller känd månadsbetalning samt avgifter vid olika tidpunkter. Kalkylatorn hittar månadsräntan som balanserar mottaget belopp mot diskonterade betalningar och avgifter och räknar om den till årsränta.</p>",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
type: "paragraph",
|
|
166
|
+
html: "<p>Kreditkostnaden blir därmed bredare än bara räntan. Resultatet är en uppskattning eftersom officiell APR kan följa nationella regler och innehålla andra antaganden.</p>",
|
|
167
|
+
},
|
|
168
|
+
{ type: "title", text: "Så läser du resultatet", level: 3 },
|
|
169
|
+
{
|
|
170
|
+
type: "list",
|
|
171
|
+
items: [
|
|
172
|
+
"Jämför effektiv årskostnad när belopp och löptid liknar varandra.",
|
|
173
|
+
"Kontrollera totalt betalt för den faktiska pengapåverkan.",
|
|
174
|
+
"Kontrollera mottaget belopp efter startavgifter.",
|
|
175
|
+
"Använd betalningsplanen för att se när varje kostnad uppstår.",
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
type: "tip",
|
|
180
|
+
title: "Långivarens dokument är den slutliga referensen",
|
|
181
|
+
html: "<p>Vid ett riktigt avtal ska du jämföra långivarens officiella APR med samma antaganden. Fråga om försäkring, skatt, rörlig ränta, kostnad för förtida återbetalning och avgifter som saknas.</p>",
|
|
182
|
+
},
|
|
183
|
+
{ type: "title", text: "Begränsningar för ett scenario", level: 3 },
|
|
184
|
+
{
|
|
185
|
+
type: "paragraph",
|
|
186
|
+
html: "<p>Verktyget antar lika månadsbetalningar, ingen amorteringsfri period och avgifter i början, under löptiden eller den sista månaden. Det intygar inte betalningsförmåga, godkännande, laglighet eller officiell APR.</p>",
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
};
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { ToolLocaleContent } from "../../../types";
|
|
2
|
+
import { bibliography } from "../bibliography";
|
|
3
|
+
import type { LoanAprScenarioCalculatorUI } from "../ui";
|
|
4
|
+
|
|
5
|
+
const ui: LoanAprScenarioCalculatorUI = {
|
|
6
|
+
labelScenarioA: "Teklif A",
|
|
7
|
+
labelScenarioB: "Teklif B",
|
|
8
|
+
labelScenarioName: "Teklif adı",
|
|
9
|
+
labelCurrency: "Para birimi",
|
|
10
|
+
labelApproximateRates:
|
|
11
|
+
"Planlama için yaklaşık katsayılar; canlı döviz kurları değildir.",
|
|
12
|
+
labelPrincipal: "Borç alınan tutar",
|
|
13
|
+
labelTerm: "Geri ödeme süresi",
|
|
14
|
+
labelMonths: "ay",
|
|
15
|
+
labelInputBasis: "Hangi bilgiyi biliyorsunuz?",
|
|
16
|
+
labelAnnualRate: "Nominal yıllık faiz",
|
|
17
|
+
labelMonthlyPayment: "Bilinen aylık ödeme",
|
|
18
|
+
labelUpfrontFees: "Başlangıç ücretleri",
|
|
19
|
+
labelMonthlyFees: "Aylık ücretler",
|
|
20
|
+
labelFinalFees: "Son ücret",
|
|
21
|
+
labelOfferNameA: "Teklif A",
|
|
22
|
+
labelOfferNameB: "Teklif B",
|
|
23
|
+
labelRateMode: "Faizi biliyorum",
|
|
24
|
+
labelPaymentMode: "Ödemeyi biliyorum",
|
|
25
|
+
labelPreset: "Karşılaştırmayı başlat",
|
|
26
|
+
labelPresetBalanced: "Dengeli teklifler",
|
|
27
|
+
labelPresetLowFee: "Düşük faiz ve ücretler",
|
|
28
|
+
labelPresetLongTerm: "Daha uzun vade",
|
|
29
|
+
labelReset: "Değerleri sıfırla",
|
|
30
|
+
labelCopy: "Karşılaştırmayı kopyala",
|
|
31
|
+
labelCopied: "Karşılaştırma kopyalandı",
|
|
32
|
+
labelEffectiveApr: "Efektif yıllık maliyet",
|
|
33
|
+
labelNominalRate: "Nominal faiz",
|
|
34
|
+
labelMonthlyPaymentResult: "Aylık ödeme",
|
|
35
|
+
labelTotalPaid: "Toplam ödenen",
|
|
36
|
+
labelTotalFees: "Senaryodaki ücretler",
|
|
37
|
+
labelFinanceCost: "Anaparayı aşan maliyet",
|
|
38
|
+
labelNetCashReceived: "Başlangıç ücretlerinden sonra alınan",
|
|
39
|
+
labelWinner: "Hangi teklif daha ucuz?",
|
|
40
|
+
labelLowerCost: "Daha düşük efektif maliyet",
|
|
41
|
+
labelHigherCost: "Daha yüksek efektif maliyet",
|
|
42
|
+
labelTie: "Neredeyse eşit",
|
|
43
|
+
labelNeedValidInputs: "Geçerli bilgiler gerekli",
|
|
44
|
+
labelInvalidPrincipal:
|
|
45
|
+
"Borç alınan tutar sıfırdan ve başlangıç ücretlerinden büyük olmalıdır.",
|
|
46
|
+
labelInvalidTerm: "1 ile 600 ay arasında tam sayı bir vade kullanın.",
|
|
47
|
+
labelInvalidFees: "Ücretler negatif olamaz.",
|
|
48
|
+
labelInvalidPayment:
|
|
49
|
+
"Alınan net tutarı geri ödeyebilecek pozitif bir aylık ödeme girin.",
|
|
50
|
+
labelInvalidRate: "%0 ile %100 arasında nominal yıllık faiz kullanın.",
|
|
51
|
+
labelNoComparison: "Karşılaştırmak için iki teklifi de tamamlayın.",
|
|
52
|
+
labelTimeline: "Ödeme zaman çizelgesi",
|
|
53
|
+
labelStart: "Başlangıç",
|
|
54
|
+
labelMonthly: "Her ay",
|
|
55
|
+
labelEnd: "Son ay",
|
|
56
|
+
labelFormula: "Karşılaştırma nasıl çalışır",
|
|
57
|
+
labelFormulaText:
|
|
58
|
+
"Efektif yıllık maliyet, alınan tutarı iskonto edilmiş ödemeler ve ücretlerle eşitleyen aylık oranın yıllıklaştırılmış değeridir.",
|
|
59
|
+
labelApproximation:
|
|
60
|
+
"Tahmin eşit aylık ödemeleri, erteleme dönemi olmamasını ve yalnızca girdiğiniz ücretleri varsayar. Kredi verenin resmi APR değerinin yerine geçmez.",
|
|
61
|
+
labelScenarioSummary: "Senaryo özeti",
|
|
62
|
+
currencyCode: "TRY",
|
|
63
|
+
currencyLocale: "tr-TR",
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const faq = [
|
|
67
|
+
{
|
|
68
|
+
question: "Faiz oranı ile efektif yıllık maliyet arasındaki fark nedir?",
|
|
69
|
+
answer:
|
|
70
|
+
"Nominal faiz, bakiye üzerinden alınan faizi gösterir. Efektif yıllık maliyet ayrıca girdiğiniz başlangıç, aylık ve son ücretlerin tutarını ve zamanını da dikkate alır.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
question: "Faiz yerine aylık ödeme girebilir miyim?",
|
|
74
|
+
answer:
|
|
75
|
+
"Evet. Teklif için bilinen aylık ödemeyi seçin. Hesaplayıcı alınan tutara, ödeme akışına ve ücretlere uyan aylık oranı tahmin eder.",
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
question: "Hangi teklif daha ucuz?",
|
|
79
|
+
answer:
|
|
80
|
+
"Önce efektif yıllık maliyeti karşılaştırın, sonra toplam ödenen ve alınan tutarı kontrol edin. Vade veya tutar farklıysa daha düşük yüzde yine de daha yüksek toplam maliyete yol açabilir.",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
question: "Bu, kredi verenin resmi APR değeri mi?",
|
|
84
|
+
answer:
|
|
85
|
+
"Hayır. Girdilerinize dayanan şeffaf bir senaryo tahminidir. Vergiler, sigorta, ödeme tarihleri ve diğer maliyetler kredi verene ve yargı alanına göre farklı hesaplanabilir.",
|
|
86
|
+
},
|
|
87
|
+
];
|
|
88
|
+
|
|
89
|
+
const howTo = [
|
|
90
|
+
{
|
|
91
|
+
name: "Tutarı ve vadeyi girin",
|
|
92
|
+
text: "Her teklif için alacağınız tutarı ve aylık ödeme sayısını ekleyin.",
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
name: "Bildiğiniz bilgiyi seçin",
|
|
96
|
+
text: "Teklifte bulunan nominal yıllık faizi veya aylık ödemeyi girin.",
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
name: "Tüm ücretleri ekleyin",
|
|
100
|
+
text: "Tam nakit akışını görmek için başlangıç, aylık ve son ücretleri girin.",
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: "Karşılaştırmayı okuyun",
|
|
104
|
+
text: "Efektif yıllık maliyeti kullanın, karar vermeden önce toplam ödenen ve alınan tutarı kontrol edin.",
|
|
105
|
+
},
|
|
106
|
+
];
|
|
107
|
+
|
|
108
|
+
const schemas = [
|
|
109
|
+
{
|
|
110
|
+
"@context": "https://schema.org",
|
|
111
|
+
"@type": "SoftwareApplication",
|
|
112
|
+
name: "Kredi APR senaryo hesaplayıcısı",
|
|
113
|
+
description:
|
|
114
|
+
"Faiz, ödeme ve ücret içeren iki kredi senaryosunu karşılaştırır.",
|
|
115
|
+
applicationCategory: "FinanceApplication",
|
|
116
|
+
operatingSystem: "All",
|
|
117
|
+
offers: { "@type": "Offer", price: "0", priceCurrency: "TRY" },
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"@context": "https://schema.org",
|
|
121
|
+
"@type": "FAQPage",
|
|
122
|
+
mainEntity: faq.map((item) => ({
|
|
123
|
+
"@type": "Question",
|
|
124
|
+
name: item.question,
|
|
125
|
+
acceptedAnswer: { "@type": "Answer", text: item.answer },
|
|
126
|
+
})),
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"@context": "https://schema.org",
|
|
130
|
+
"@type": "HowTo",
|
|
131
|
+
name: "İki kredi teklifini karşılaştırma",
|
|
132
|
+
description:
|
|
133
|
+
"İki kredinin nakit akışını modelleyip efektif yıllık maliyetlerini karşılaştırın.",
|
|
134
|
+
step: howTo.map((step, index) => ({
|
|
135
|
+
"@type": "HowToStep",
|
|
136
|
+
position: index + 1,
|
|
137
|
+
name: step.name,
|
|
138
|
+
text: step.text,
|
|
139
|
+
})),
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
|
|
143
|
+
export const content: ToolLocaleContent<LoanAprScenarioCalculatorUI> = {
|
|
144
|
+
slug: "kredi-apr-senaryo-hesaplayici",
|
|
145
|
+
title: "Kredi APR senaryo hesaplayıcısı",
|
|
146
|
+
description:
|
|
147
|
+
"Karar vermeden önce efektif yıllık maliyeti tahmin etmek için iki kredi teklifinin faizini, ödeme planını ve ücretlerini karşılaştırın.",
|
|
148
|
+
ui,
|
|
149
|
+
faq,
|
|
150
|
+
bibliography,
|
|
151
|
+
howTo,
|
|
152
|
+
schemas,
|
|
153
|
+
seo: [
|
|
154
|
+
{
|
|
155
|
+
type: "title",
|
|
156
|
+
text: "Kredileri efektif yıllık maliyete göre karşılaştırın",
|
|
157
|
+
level: 2,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
type: "paragraph",
|
|
161
|
+
html: "<p>Düşük görünen bir faiz oranı dosya ücretini, aylık hizmet ücretini veya son maliyeti gizleyebilir. Bu hesaplayıcı iki teklifin ayrıntılarını karşılaştırılabilir nakit akışlarına çevirerek gerçekten aldığınız paranın maliyetini gösterir.</p>",
|
|
162
|
+
},
|
|
163
|
+
{ type: "title", text: "Tahmin neleri içerir", level: 3 },
|
|
164
|
+
{
|
|
165
|
+
type: "paragraph",
|
|
166
|
+
html: "<p>Her teklif için tutarı, vadeyi, nominal yıllık faizi veya bilinen aylık ödemeyi ve farklı zamanlardaki ücretleri girin. Hesaplayıcı alınan net tutarı iskonto edilmiş ödemeler ve ücretlerle dengeleyen aylık oranı bulur ve yıllıklaştırır.</p>",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
type: "paragraph",
|
|
170
|
+
html: "<p>Böylece kredi fiyatı yalnızca faiz oranıyla sınırlı kalmaz. Resmi APR yerel kurallara ve senaryoda bulunmayan varsayımlara bağlı olabileceği için sonuç bir tahmindir.</p>",
|
|
171
|
+
},
|
|
172
|
+
{ type: "title", text: "Sonuç nasıl okunur", level: 3 },
|
|
173
|
+
{
|
|
174
|
+
type: "list",
|
|
175
|
+
items: [
|
|
176
|
+
"Tutar ve vade benzer olduğunda efektif yıllık maliyeti karşılaştırın.",
|
|
177
|
+
"Gerçek nakit etkisini anlamak için toplam ödemeyi kontrol edin.",
|
|
178
|
+
"Başlangıç ücretlerinden sonra alınan tutara bakın.",
|
|
179
|
+
"Her maliyetin ne zaman oluştuğunu zaman çizelgesinde görün.",
|
|
180
|
+
],
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
type: "tip",
|
|
184
|
+
title: "Son referans kredi verenin belgesidir",
|
|
185
|
+
html: "<p>Gerçek bir sözleşmede kredi verenin resmi APR değerini aynı varsayımlarla karşılaştırın. Sigorta, vergi, değişken faiz, erken ödeme ücretleri ve girmediğiniz masrafları sorun.</p>",
|
|
186
|
+
},
|
|
187
|
+
{ type: "title", text: "Senaryo tahmininin sınırları", level: 3 },
|
|
188
|
+
{
|
|
189
|
+
type: "paragraph",
|
|
190
|
+
html: "<p>Araç eşit aylık ödemeleri, erteleme dönemi olmamasını ve başlangıçta, vade sırasında veya son ayda oluşan ücretleri varsayar. Ödeme gücünü, onayı, yasallığı veya ürünün resmi APR değerini doğrulamaz.</p>",
|
|
191
|
+
},
|
|
192
|
+
],
|
|
193
|
+
};
|