@jjlmoya/utils-finance 1.30.0 → 1.32.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/i18n/en.ts +1 -1
- package/src/category/i18n/es.ts +4 -4
- package/src/category/i18n/fr.ts +159 -159
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/ru.ts +158 -158
- package/src/category/index.ts +39 -38
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +4 -1
- package/src/env.d.ts +1 -1
- package/src/index.ts +1 -0
- package/src/layouts/PreviewLayout.astro +113 -113
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +76 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/script_density.test.ts +94 -94
- package/src/tests/seo_length.test.ts +23 -23
- package/src/tests/seo_translation_completeness.test.ts +69 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/tool_validation.test.ts +17 -17
- package/src/tool/compoundInterest/compound-interest-calculator.css +236 -236
- package/src/tool/compoundInterest/entry.ts +32 -32
- package/src/tool/compoundInterest/i18n/de.ts +195 -195
- package/src/tool/compoundInterest/i18n/fr.ts +195 -195
- package/src/tool/compoundInterest/i18n/it.ts +195 -195
- package/src/tool/compoundInterest/i18n/pl.ts +194 -194
- package/src/tool/compoundInterest/i18n/ru.ts +195 -195
- package/src/tool/compoundInterest/i18n/tr.ts +195 -195
- package/src/tool/compoundInterest/i18n/zh.ts +189 -189
- package/src/tool/compoundInterest/seo.astro +15 -15
- package/src/tool/courtFeeCalculator/i18n/it.ts +158 -158
- package/src/tool/courtFeeCalculator/i18n/ru.ts +158 -158
- package/src/tool/courtFeeCalculator/i18n/tr.ts +158 -158
- package/src/tool/courtFeeCalculator/seo.astro +15 -15
- package/src/tool/courtFeeCalculator/spanish-court-fees-calculator.css +197 -197
- package/src/tool/debtSnowball/bibliography.ts +12 -12
- package/src/tool/debtSnowball/i18n/de.ts +16 -16
- package/src/tool/debtSnowball/i18n/id.ts +16 -16
- package/src/tool/debtSnowball/i18n/it.ts +168 -168
- package/src/tool/debtSnowball/i18n/nl.ts +16 -16
- package/src/tool/debtSnowball/i18n/pl.ts +168 -168
- package/src/tool/debtSnowball/i18n/pt.ts +1 -1
- package/src/tool/debtSnowball/i18n/ru.ts +1 -1
- package/src/tool/debtSnowball/i18n/sv.ts +22 -29
- package/src/tool/debtSnowball/i18n/tr.ts +168 -168
- package/src/tool/debtSnowball/i18n/zh.ts +168 -168
- package/src/tool/debtSnowball/seo.astro +15 -15
- package/src/tool/dividendYield/bibliography.astro +14 -0
- package/src/tool/dividendYield/bibliography.ts +12 -0
- package/src/tool/dividendYield/component.astro +83 -0
- package/src/tool/dividendYield/controller.ts +85 -0
- package/src/tool/dividendYield/dividend-yield-calculator.css +352 -0
- package/src/tool/dividendYield/dom-views.ts +58 -0
- package/src/tool/dividendYield/entry.ts +29 -0
- package/src/tool/dividendYield/evaluator.ts +16 -0
- package/src/tool/dividendYield/i18n/de.ts +53 -0
- package/src/tool/dividendYield/i18n/en.ts +138 -0
- package/src/tool/dividendYield/i18n/es.ts +49 -0
- package/src/tool/dividendYield/i18n/fr.ts +49 -0
- package/src/tool/dividendYield/i18n/id.ts +49 -0
- package/src/tool/dividendYield/i18n/it.ts +49 -0
- package/src/tool/dividendYield/i18n/ja.ts +49 -0
- package/src/tool/dividendYield/i18n/ko.ts +25 -0
- package/src/tool/dividendYield/i18n/nl.ts +25 -0
- package/src/tool/dividendYield/i18n/pl.ts +25 -0
- package/src/tool/dividendYield/i18n/pt.ts +25 -0
- package/src/tool/dividendYield/i18n/ru.ts +25 -0
- package/src/tool/dividendYield/i18n/sv.ts +25 -0
- package/src/tool/dividendYield/i18n/tr.ts +25 -0
- package/src/tool/dividendYield/i18n/zh.ts +25 -0
- package/src/tool/dividendYield/index.ts +11 -0
- package/src/tool/dividendYield/logic.test.ts +73 -0
- package/src/tool/dividendYield/logic.ts +55 -0
- package/src/tool/dividendYield/seo.astro +14 -0
- package/src/tool/dividendYield/storage.ts +24 -0
- package/src/tool/dividendYield/ui.ts +33 -0
- package/src/tool/financialFreedom/financial-freedom-calculator.css +311 -311
- package/src/tool/financialFreedom/i18n/en.ts +182 -182
- package/src/tool/financialFreedom/i18n/fr.ts +128 -128
- package/src/tool/financialFreedom/i18n/id.ts +24 -7
- package/src/tool/financialFreedom/i18n/it.ts +24 -7
- package/src/tool/financialFreedom/i18n/ja.ts +1 -1
- package/src/tool/financialFreedom/i18n/nl.ts +24 -7
- package/src/tool/financialFreedom/i18n/pl.ts +24 -7
- package/src/tool/financialFreedom/i18n/pt.ts +24 -7
- package/src/tool/financialFreedom/i18n/ru.ts +128 -128
- package/src/tool/financialFreedom/i18n/sv.ts +1 -1
- package/src/tool/financialFreedom/i18n/tr.ts +2 -2
- package/src/tool/financialFreedom/i18n/zh.ts +128 -128
- package/src/tool/fireCalculator/i18n/it.ts +241 -241
- package/src/tool/fireCalculator/i18n/ru.ts +241 -241
- package/src/tool/fireCalculator/i18n/tr.ts +241 -241
- package/src/tool/fireCalculator/i18n/zh.ts +241 -241
- package/src/tool/fireCalculator/seo.astro +15 -15
- package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +151 -151
- package/src/tool/ibanBicSwiftConverter/i18n/it.ts +118 -118
- package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +118 -118
- package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +118 -118
- package/src/tool/ibanBicSwiftConverter/iban-to-bic-swift-converter.css +366 -366
- package/src/tool/ibanBicSwiftConverter/seo.astro +15 -15
- package/src/tool/inflation/bibliography.ts +20 -20
- package/src/tool/inflation/entry.ts +32 -32
- package/src/tool/inflation/i18n/de.ts +284 -284
- package/src/tool/inflation/i18n/fr.ts +284 -284
- package/src/tool/inflation/i18n/it.ts +284 -284
- package/src/tool/inflation/i18n/nl.ts +284 -284
- package/src/tool/inflation/i18n/pl.ts +284 -284
- package/src/tool/inflation/i18n/pt.ts +284 -284
- package/src/tool/inflation/i18n/ru.ts +284 -284
- package/src/tool/inflation/i18n/sv.ts +284 -284
- package/src/tool/inflation/i18n/tr.ts +284 -284
- package/src/tool/inflation/i18n/zh.ts +284 -284
- package/src/tool/inflation/seo.astro +15 -15
- package/src/tool/lateInterest/bibliography.ts +16 -16
- package/src/tool/lateInterest/entry.ts +32 -32
- package/src/tool/lateInterest/i18n/de.ts +213 -213
- package/src/tool/lateInterest/i18n/es.ts +213 -213
- package/src/tool/lateInterest/i18n/it.ts +213 -213
- package/src/tool/lateInterest/i18n/nl.ts +213 -213
- package/src/tool/lateInterest/i18n/pl.ts +213 -213
- package/src/tool/lateInterest/i18n/pt.ts +213 -213
- package/src/tool/lateInterest/i18n/ru.ts +213 -213
- package/src/tool/lateInterest/i18n/sv.ts +213 -213
- package/src/tool/lateInterest/i18n/tr.ts +213 -213
- package/src/tool/lateInterest/i18n/zh.ts +213 -213
- package/src/tool/lateInterest/seo.astro +15 -15
- package/src/tool/legalInterestRate/i18n/it.ts +129 -129
- package/src/tool/legalInterestRate/i18n/ru.ts +129 -129
- package/src/tool/legalInterestRate/i18n/tr.ts +128 -121
- package/src/tool/legalInterestRate/i18n/zh.ts +11 -4
- package/src/tool/legalInterestRate/seo.astro +15 -15
- package/src/tool/lotteryOptimizer/i18n/it.ts +163 -163
- package/src/tool/lotteryOptimizer/i18n/pl.ts +163 -163
- package/src/tool/lotteryOptimizer/i18n/ru.ts +163 -163
- package/src/tool/lotteryOptimizer/i18n/tr.ts +163 -163
- package/src/tool/lotteryOptimizer/i18n/zh.ts +162 -155
- package/src/tool/lotteryOptimizer/seo.astro +15 -15
- package/src/tool/mortgage/bibliography.ts +20 -20
- package/src/tool/mortgage/entry.ts +32 -32
- package/src/tool/mortgage/i18n/de.ts +210 -210
- package/src/tool/mortgage/i18n/es.ts +210 -210
- package/src/tool/mortgage/i18n/fr.ts +210 -210
- package/src/tool/mortgage/i18n/id.ts +210 -210
- package/src/tool/mortgage/i18n/it.ts +210 -210
- package/src/tool/mortgage/i18n/nl.ts +210 -210
- package/src/tool/mortgage/i18n/pl.ts +210 -210
- package/src/tool/mortgage/i18n/ru.ts +210 -210
- package/src/tool/mortgage/i18n/tr.ts +210 -210
- package/src/tool/mortgage/i18n/zh.ts +210 -210
- package/src/tool/mortgage/mortgage-calculator.css +595 -595
- package/src/tool/mortgage/seo.astro +15 -15
- package/src/tool/percentageCalculator/bibliography.ts +16 -16
- package/src/tool/percentageCalculator/entry.ts +32 -32
- package/src/tool/percentageCalculator/i18n/de.ts +220 -220
- package/src/tool/percentageCalculator/i18n/en.ts +220 -220
- package/src/tool/percentageCalculator/i18n/es.ts +220 -220
- package/src/tool/percentageCalculator/i18n/fr.ts +220 -220
- package/src/tool/percentageCalculator/i18n/it.ts +220 -220
- package/src/tool/percentageCalculator/i18n/pl.ts +220 -220
- package/src/tool/percentageCalculator/i18n/ru.ts +220 -220
- package/src/tool/percentageCalculator/i18n/tr.ts +220 -220
- package/src/tool/percentageCalculator/i18n/zh.ts +220 -220
- package/src/tool/percentageCalculator/seo.astro +15 -15
- package/src/tool/profitability/i18n/de.ts +24 -7
- package/src/tool/profitability/i18n/fr.ts +121 -104
- package/src/tool/profitability/i18n/id.ts +2 -2
- package/src/tool/profitability/i18n/it.ts +24 -7
- package/src/tool/profitability/i18n/ja.ts +1 -1
- package/src/tool/profitability/i18n/nl.ts +24 -7
- package/src/tool/profitability/i18n/pl.ts +1 -1
- package/src/tool/profitability/i18n/pt.ts +24 -7
- package/src/tool/profitability/i18n/ru.ts +118 -118
- package/src/tool/profitability/i18n/sv.ts +1 -1
- package/src/tool/profitability/i18n/tr.ts +1 -1
- package/src/tool/profitability/i18n/zh.ts +118 -118
- package/src/tool/profitability/profitability-calculator.css +229 -229
- package/src/tool/rentIncreaseCalculator/i18n/it.ts +125 -125
- package/src/tool/rentIncreaseCalculator/i18n/tr.ts +125 -125
- package/src/tool/rentIncreaseCalculator/rent-increase-calculator.css +326 -326
- package/src/tool/rentIncreaseCalculator/seo.astro +15 -15
- package/src/tool/revolvingCardCalculator/i18n/de.ts +38 -20
- package/src/tool/revolvingCardCalculator/i18n/es.ts +19 -18
- package/src/tool/revolvingCardCalculator/i18n/fr.ts +32 -28
- package/src/tool/revolvingCardCalculator/i18n/id.ts +18 -18
- package/src/tool/revolvingCardCalculator/i18n/it.ts +18 -18
- package/src/tool/revolvingCardCalculator/i18n/ja.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/ko.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/nl.ts +22 -19
- package/src/tool/revolvingCardCalculator/i18n/pl.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/pt.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/ru.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/sv.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/tr.ts +2 -2
- package/src/tool/revolvingCardCalculator/i18n/zh.ts +6 -6
- package/src/tool/salaryEmployerCost/i18n/de.ts +10 -10
- package/src/tool/salaryEmployerCost/i18n/fr.ts +9 -9
- package/src/tool/salaryEmployerCost/i18n/id.ts +9 -9
- package/src/tool/salaryEmployerCost/i18n/it.ts +9 -9
- package/src/tool/salaryEmployerCost/i18n/ja.ts +1 -1
- package/src/tool/salaryEmployerCost/i18n/ko.ts +1 -1
- package/src/tool/salaryEmployerCost/i18n/nl.ts +2 -2
- package/src/tool/salaryEmployerCost/i18n/pl.ts +2 -2
- package/src/tool/salaryEmployerCost/i18n/pt.ts +2 -2
- package/src/tool/salaryEmployerCost/i18n/ru.ts +2 -2
- package/src/tool/salaryEmployerCost/i18n/sv.ts +2 -2
- package/src/tool/salaryEmployerCost/i18n/tr.ts +2 -2
- package/src/tool/salaryEmployerCost/i18n/zh.ts +2 -2
- package/src/tools.ts +2 -1
|
@@ -1,210 +1,210 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography'
|
|
2
|
-
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
-
import type { MortgageUI } from '../ui';
|
|
5
|
-
|
|
6
|
-
const slug = 'ipotechniy-kalkulyator';
|
|
7
|
-
const title = 'Ипотечный калькулятор и французская таблица амортизации';
|
|
8
|
-
const description =
|
|
9
|
-
'Рассчитайте ежемесячный платеж по ипотеке, узнайте сумму переплаты по процентам и мгновенно визуализируйте график погашения.';
|
|
10
|
-
|
|
11
|
-
const faqData = [
|
|
12
|
-
{
|
|
13
|
-
question: 'Что такое французская (аннуитетная) система погашения?',
|
|
14
|
-
answer:
|
|
15
|
-
'Это самая распространенная система. Ежемесячный платеж остается неизменным, но вначале вы платите почти исключительно проценты и очень мало в счет основного долга. К концу срока ситуация меняется на противоположную. Поэтому досрочное погашение наиболее выгодно в первые годы.',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
question: 'Фиксированная или переменная ставка в 2026 году?',
|
|
19
|
-
answer:
|
|
20
|
-
'Фиксированная ставка: вы платите больше сейчас, но спите спокойно 30 лет. Переменная ставка: сегодня может быть дешевле, но если рыночные ставки вырастут, ваш платеж может резко подскочить. Это зависит от вашего отношения к риску.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'Сколько я сэкономлю, если погашу 100 000 рублей досрочно?',
|
|
24
|
-
answer:
|
|
25
|
-
'Это зависит от времени. Если вы внесете платеж в 1-й год ипотеки на 5 млн рублей под 10%, вы можете сэкономить значительную сумму на процентах. Если вы сделаете это на 15-й год, экономия будет минимальной. Время имеет решающее значение.',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
question: 'Какой процент дохода должен уходить на ипотеку?',
|
|
29
|
-
answer:
|
|
30
|
-
'Общая рекомендация - не превышать 30-35% от вашего чистого ежемесячного дохода (включая другие долги). Превышение этого порога значительно повышает риск неплатежеспособности при непредвиденных обстоятельствах.',
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const howToData = [
|
|
35
|
-
{
|
|
36
|
-
name: 'Введите сумму кредита',
|
|
37
|
-
text: 'Укажите общую сумму, которую вы планируете занять в банке (за вычетом вашего первоначального взноса).',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: 'Настройте процентную ставку',
|
|
41
|
-
text: 'Введите годовую процентную ставку, предлагаемую банком. Вы можете сравнить расчеты для фиксированной и переменной ставок.',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'Выберите срок кредитования',
|
|
45
|
-
text: 'Определите, на сколько лет вы берете кредит. Чем больше срок, тем меньше ежемесячный платеж, но выше общая переплата по процентам.',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: 'Проанализируйте график платежей',
|
|
49
|
-
text: 'Просмотрите помесячно, как уменьшается ваш долг и какая часть платежа идет на проценты, а какая - на погашение основного долга.',
|
|
50
|
-
},
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
-
'@context': 'https://schema.org',
|
|
55
|
-
'@type': 'FAQPage',
|
|
56
|
-
mainEntity: faqData.map((item) => ({
|
|
57
|
-
'@type': 'Question',
|
|
58
|
-
name: item.question,
|
|
59
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
-
})),
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const howToSchema: WithContext<HowTo> = {
|
|
64
|
-
'@context': 'https://schema.org',
|
|
65
|
-
'@type': 'HowTo',
|
|
66
|
-
name: title,
|
|
67
|
-
description,
|
|
68
|
-
step: howToData.map((step, i) => ({
|
|
69
|
-
'@type': 'HowToStep',
|
|
70
|
-
position: i + 1,
|
|
71
|
-
name: step.name,
|
|
72
|
-
text: step.text,
|
|
73
|
-
})),
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
-
'@context': 'https://schema.org',
|
|
78
|
-
'@type': 'SoftwareApplication',
|
|
79
|
-
name: title,
|
|
80
|
-
description,
|
|
81
|
-
applicationCategory: 'FinanceApplication',
|
|
82
|
-
operatingSystem: 'All',
|
|
83
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'RUB' },
|
|
84
|
-
inLanguage: 'ru',
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export const content: ToolLocaleContent<MortgageUI> = {
|
|
88
|
-
slug,
|
|
89
|
-
title,
|
|
90
|
-
description,
|
|
91
|
-
faq: faqData,
|
|
92
|
-
bibliography,
|
|
93
|
-
|
|
94
|
-
howTo: howToData,
|
|
95
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
-
seo: [
|
|
97
|
-
{
|
|
98
|
-
type: 'title',
|
|
99
|
-
text: 'Полное руководство по ипотеке: аннуитетная система и погашение',
|
|
100
|
-
level: 2,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
type: 'paragraph',
|
|
104
|
-
html: 'Ипотека - это, вероятно, самый большой долг, который вы возьмете в своей жизни. Понимание того, как работает аннуитетная система погашения, крайне важно для принятия разумных решений, которые могут сэкономить вам сотни тысяч рублей.',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'title',
|
|
108
|
-
text: '"Ловушка" аннуитетной системы: состав вашего платежа',
|
|
109
|
-
level: 3,
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
type: 'paragraph',
|
|
113
|
-
html: 'Большинство ипотечных кредитов используют <strong>Аннуитетную систему погашения</strong>. Ее главная особенность заключается в том, что ежемесячный платеж всегда одинаков (при фиксированной ставке), но его состав радикально меняется со временем.',
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'tip',
|
|
117
|
-
title: 'Как меняется ваш платеж',
|
|
118
|
-
html: '<p><strong>В начале (1-10 годы):</strong> Вы платите почти одни ПРОЦЕНТЫ и очень мало возвращаете из суммы долга. При кредите на 5 млн под 10% ваш первый платеж может на 85% состоять из процентов.</p><p><strong>В середине (11-20 годы):</strong> Пропорция постепенно выравнивается.</p><p><strong>В конце (21-30 годы):</strong> Вы платите почти весь ОСНОВНОЙ ДОЛГ и очень мало процентов.</p>',
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
type: 'paragraph',
|
|
122
|
-
html: 'Поэтому, если вы собираетесь делать <strong>досрочное погашение</strong>, гораздо выгоднее делать это в первые годы кредита. Внесение 100 000 рублей в 1-й год может сэкономить вам в разы больше на будущих процентах, чем та же сумма, внесенная на 20-й год.',
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
type: 'title',
|
|
126
|
-
text: 'Какую долю дохода должна занимать ипотека?',
|
|
127
|
-
level: 3,
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: 'paragraph',
|
|
131
|
-
html: 'Финансовые эксперты рекомендуют, чтобы ваш ипотечный платеж <strong>не превышал 30-35% от вашего чистого ежемесячного дохода</strong>. Если вы превышаете этот порог, вы значительно увеличиваете риск дефолта при непредвиденных обстоятельствах (потеря работы, болезнь и т. д.).',
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
type: 'title',
|
|
135
|
-
text: 'Контекст 2026: Фиксированная против переменной ставки',
|
|
136
|
-
level: 3,
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
type: 'paragraph',
|
|
140
|
-
html: 'В условиях волатильности выбор между <strong>Фиксированной ставкой</strong> или <strong>Переменной ставкой</strong> - это стратегическое решение, которое может стоить сотни тысяч рублей в год.',
|
|
141
|
-
},
|
|
142
|
-
{
|
|
143
|
-
type: 'comparative',
|
|
144
|
-
columns: 2,
|
|
145
|
-
items: [
|
|
146
|
-
{
|
|
147
|
-
title: 'Фиксированная ставка',
|
|
148
|
-
description: 'Вы платите чуть больше сейчас, но спите спокойно, зная, что ваш платеж никогда не вырастет.',
|
|
149
|
-
points: [
|
|
150
|
-
'Предсказуемый платеж на все 30 лет',
|
|
151
|
-
'Защита от повышения ставок ЦБ',
|
|
152
|
-
'Спокойствие в нестабильной экономике',
|
|
153
|
-
'Идеально для фиксированного бюджета',
|
|
154
|
-
],
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
title: 'Переменная ставка',
|
|
158
|
-
description: 'Может быть дешевле сегодня, но подвергает ваш бюджет риску волатильности.',
|
|
159
|
-
highlight: true,
|
|
160
|
-
points: [
|
|
161
|
-
'Более низкий начальный платеж',
|
|
162
|
-
'Риск повышения рыночных ставок',
|
|
163
|
-
'Возможное тяжелое влияние на бюджет',
|
|
164
|
-
'Только для тех, кто готов к риску',
|
|
165
|
-
],
|
|
166
|
-
},
|
|
167
|
-
],
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
type: 'tip',
|
|
171
|
-
title: 'Выбор зависит от вашего профиля',
|
|
172
|
-
html: '<p><strong>Выбирайте Фиксированную ставку, если:</strong> Ваш бюджет ограничен, вы ищете определенности и не любите неприятных сюрпризов каждый месяц.</p><p><strong>Выбирайте Переменную ставку, если:</strong> У вас есть финансовая подушка безопасности, вы верите в снижение ставок в будущем или ваш кредит небольшой.</p>',
|
|
173
|
-
},
|
|
174
|
-
],
|
|
175
|
-
ui: {
|
|
176
|
-
labelTitle: 'Ипотечный калькулятор',
|
|
177
|
-
labelLoanAmount: 'Сумма кредита',
|
|
178
|
-
labelInterestRate: 'Процент (год)',
|
|
179
|
-
labelYears: 'Срок (лет)',
|
|
180
|
-
labelMonthlyExtra: 'Доп. ежемесячный взнос',
|
|
181
|
-
labelMonthlyPayment: 'Ежемесячный платеж',
|
|
182
|
-
labelMonthCount: 'мес.',
|
|
183
|
-
labelSavingsCard: 'Ваша возможная экономия',
|
|
184
|
-
labelSavingsInterest: 'Проценты',
|
|
185
|
-
labelSavingsTime: 'Время',
|
|
186
|
-
labelTimelineComparison: 'Сравнение сроков',
|
|
187
|
-
labelTimelineOriginal: 'Исходный срок',
|
|
188
|
-
labelTimelineOptimized: 'Срок с ускорением',
|
|
189
|
-
labelCostBreakdown: 'Распределение общих затрат',
|
|
190
|
-
labelBorrowed: 'Занято',
|
|
191
|
-
labelTotalBorrowed: 'Тело кредита',
|
|
192
|
-
labelTotalInterest: 'Итого проценты',
|
|
193
|
-
labelAmortizationTable: 'График платежей',
|
|
194
|
-
labelTableHeader: 'Посмотреть полную таблицу',
|
|
195
|
-
labelViewAll: 'Смотреть всё',
|
|
196
|
-
labelPaid: 'Ипотека выплачена',
|
|
197
|
-
labelTableMonth: 'Месяц',
|
|
198
|
-
labelTableInterest: 'Проценты',
|
|
199
|
-
labelTablePrincipal: 'Долг',
|
|
200
|
-
labelTableExtra: 'Доп.',
|
|
201
|
-
labelTableBalance: 'Остаток',
|
|
202
|
-
labelMoreMonths: 'еще мес.',
|
|
203
|
-
labelMonth: 'Месяц',
|
|
204
|
-
currencySymbol: '₽',
|
|
205
|
-
currencyCode: 'RUB',
|
|
206
|
-
currencyLocale: 'ru-RU',
|
|
207
|
-
monthPlural: 'мес.',
|
|
208
|
-
yearPlural: 'лет',
|
|
209
|
-
},
|
|
210
|
-
};
|
|
1
|
+
import { bibliography } from '../bibliography'
|
|
2
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
4
|
+
import type { MortgageUI } from '../ui';
|
|
5
|
+
|
|
6
|
+
const slug = 'ipotechniy-kalkulyator';
|
|
7
|
+
const title = 'Ипотечный калькулятор и французская таблица амортизации';
|
|
8
|
+
const description =
|
|
9
|
+
'Рассчитайте ежемесячный платеж по ипотеке, узнайте сумму переплаты по процентам и мгновенно визуализируйте график погашения.';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Что такое французская (аннуитетная) система погашения?',
|
|
14
|
+
answer:
|
|
15
|
+
'Это самая распространенная система. Ежемесячный платеж остается неизменным, но вначале вы платите почти исключительно проценты и очень мало в счет основного долга. К концу срока ситуация меняется на противоположную. Поэтому досрочное погашение наиболее выгодно в первые годы.',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Фиксированная или переменная ставка в 2026 году?',
|
|
19
|
+
answer:
|
|
20
|
+
'Фиксированная ставка: вы платите больше сейчас, но спите спокойно 30 лет. Переменная ставка: сегодня может быть дешевле, но если рыночные ставки вырастут, ваш платеж может резко подскочить. Это зависит от вашего отношения к риску.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Сколько я сэкономлю, если погашу 100 000 рублей досрочно?',
|
|
24
|
+
answer:
|
|
25
|
+
'Это зависит от времени. Если вы внесете платеж в 1-й год ипотеки на 5 млн рублей под 10%, вы можете сэкономить значительную сумму на процентах. Если вы сделаете это на 15-й год, экономия будет минимальной. Время имеет решающее значение.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: 'Какой процент дохода должен уходить на ипотеку?',
|
|
29
|
+
answer:
|
|
30
|
+
'Общая рекомендация - не превышать 30-35% от вашего чистого ежемесячного дохода (включая другие долги). Превышение этого порога значительно повышает риск неплатежеспособности при непредвиденных обстоятельствах.',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: 'Введите сумму кредита',
|
|
37
|
+
text: 'Укажите общую сумму, которую вы планируете занять в банке (за вычетом вашего первоначального взноса).',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'Настройте процентную ставку',
|
|
41
|
+
text: 'Введите годовую процентную ставку, предлагаемую банком. Вы можете сравнить расчеты для фиксированной и переменной ставок.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Выберите срок кредитования',
|
|
45
|
+
text: 'Определите, на сколько лет вы берете кредит. Чем больше срок, тем меньше ежемесячный платеж, но выше общая переплата по процентам.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Проанализируйте график платежей',
|
|
49
|
+
text: 'Просмотрите помесячно, как уменьшается ваш долг и какая часть платежа идет на проценты, а какая - на погашение основного долга.',
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'FAQPage',
|
|
56
|
+
mainEntity: faqData.map((item) => ({
|
|
57
|
+
'@type': 'Question',
|
|
58
|
+
name: item.question,
|
|
59
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
|
+
'@context': 'https://schema.org',
|
|
65
|
+
'@type': 'HowTo',
|
|
66
|
+
name: title,
|
|
67
|
+
description,
|
|
68
|
+
step: howToData.map((step, i) => ({
|
|
69
|
+
'@type': 'HowToStep',
|
|
70
|
+
position: i + 1,
|
|
71
|
+
name: step.name,
|
|
72
|
+
text: step.text,
|
|
73
|
+
})),
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
+
'@context': 'https://schema.org',
|
|
78
|
+
'@type': 'SoftwareApplication',
|
|
79
|
+
name: title,
|
|
80
|
+
description,
|
|
81
|
+
applicationCategory: 'FinanceApplication',
|
|
82
|
+
operatingSystem: 'All',
|
|
83
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'RUB' },
|
|
84
|
+
inLanguage: 'ru',
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const content: ToolLocaleContent<MortgageUI> = {
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description,
|
|
91
|
+
faq: faqData,
|
|
92
|
+
bibliography,
|
|
93
|
+
|
|
94
|
+
howTo: howToData,
|
|
95
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Полное руководство по ипотеке: аннуитетная система и погашение',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'paragraph',
|
|
104
|
+
html: 'Ипотека - это, вероятно, самый большой долг, который вы возьмете в своей жизни. Понимание того, как работает аннуитетная система погашения, крайне важно для принятия разумных решений, которые могут сэкономить вам сотни тысяч рублей.',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'title',
|
|
108
|
+
text: '"Ловушка" аннуитетной системы: состав вашего платежа',
|
|
109
|
+
level: 3,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'paragraph',
|
|
113
|
+
html: 'Большинство ипотечных кредитов используют <strong>Аннуитетную систему погашения</strong>. Ее главная особенность заключается в том, что ежемесячный платеж всегда одинаков (при фиксированной ставке), но его состав радикально меняется со временем.',
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'tip',
|
|
117
|
+
title: 'Как меняется ваш платеж',
|
|
118
|
+
html: '<p><strong>В начале (1-10 годы):</strong> Вы платите почти одни ПРОЦЕНТЫ и очень мало возвращаете из суммы долга. При кредите на 5 млн под 10% ваш первый платеж может на 85% состоять из процентов.</p><p><strong>В середине (11-20 годы):</strong> Пропорция постепенно выравнивается.</p><p><strong>В конце (21-30 годы):</strong> Вы платите почти весь ОСНОВНОЙ ДОЛГ и очень мало процентов.</p>',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
type: 'paragraph',
|
|
122
|
+
html: 'Поэтому, если вы собираетесь делать <strong>досрочное погашение</strong>, гораздо выгоднее делать это в первые годы кредита. Внесение 100 000 рублей в 1-й год может сэкономить вам в разы больше на будущих процентах, чем та же сумма, внесенная на 20-й год.',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'title',
|
|
126
|
+
text: 'Какую долю дохода должна занимать ипотека?',
|
|
127
|
+
level: 3,
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
type: 'paragraph',
|
|
131
|
+
html: 'Финансовые эксперты рекомендуют, чтобы ваш ипотечный платеж <strong>не превышал 30-35% от вашего чистого ежемесячного дохода</strong>. Если вы превышаете этот порог, вы значительно увеличиваете риск дефолта при непредвиденных обстоятельствах (потеря работы, болезнь и т. д.).',
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'title',
|
|
135
|
+
text: 'Контекст 2026: Фиксированная против переменной ставки',
|
|
136
|
+
level: 3,
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'paragraph',
|
|
140
|
+
html: 'В условиях волатильности выбор между <strong>Фиксированной ставкой</strong> или <strong>Переменной ставкой</strong> - это стратегическое решение, которое может стоить сотни тысяч рублей в год.',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'comparative',
|
|
144
|
+
columns: 2,
|
|
145
|
+
items: [
|
|
146
|
+
{
|
|
147
|
+
title: 'Фиксированная ставка',
|
|
148
|
+
description: 'Вы платите чуть больше сейчас, но спите спокойно, зная, что ваш платеж никогда не вырастет.',
|
|
149
|
+
points: [
|
|
150
|
+
'Предсказуемый платеж на все 30 лет',
|
|
151
|
+
'Защита от повышения ставок ЦБ',
|
|
152
|
+
'Спокойствие в нестабильной экономике',
|
|
153
|
+
'Идеально для фиксированного бюджета',
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
title: 'Переменная ставка',
|
|
158
|
+
description: 'Может быть дешевле сегодня, но подвергает ваш бюджет риску волатильности.',
|
|
159
|
+
highlight: true,
|
|
160
|
+
points: [
|
|
161
|
+
'Более низкий начальный платеж',
|
|
162
|
+
'Риск повышения рыночных ставок',
|
|
163
|
+
'Возможное тяжелое влияние на бюджет',
|
|
164
|
+
'Только для тех, кто готов к риску',
|
|
165
|
+
],
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
type: 'tip',
|
|
171
|
+
title: 'Выбор зависит от вашего профиля',
|
|
172
|
+
html: '<p><strong>Выбирайте Фиксированную ставку, если:</strong> Ваш бюджет ограничен, вы ищете определенности и не любите неприятных сюрпризов каждый месяц.</p><p><strong>Выбирайте Переменную ставку, если:</strong> У вас есть финансовая подушка безопасности, вы верите в снижение ставок в будущем или ваш кредит небольшой.</p>',
|
|
173
|
+
},
|
|
174
|
+
],
|
|
175
|
+
ui: {
|
|
176
|
+
labelTitle: 'Ипотечный калькулятор',
|
|
177
|
+
labelLoanAmount: 'Сумма кредита',
|
|
178
|
+
labelInterestRate: 'Процент (год)',
|
|
179
|
+
labelYears: 'Срок (лет)',
|
|
180
|
+
labelMonthlyExtra: 'Доп. ежемесячный взнос',
|
|
181
|
+
labelMonthlyPayment: 'Ежемесячный платеж',
|
|
182
|
+
labelMonthCount: 'мес.',
|
|
183
|
+
labelSavingsCard: 'Ваша возможная экономия',
|
|
184
|
+
labelSavingsInterest: 'Проценты',
|
|
185
|
+
labelSavingsTime: 'Время',
|
|
186
|
+
labelTimelineComparison: 'Сравнение сроков',
|
|
187
|
+
labelTimelineOriginal: 'Исходный срок',
|
|
188
|
+
labelTimelineOptimized: 'Срок с ускорением',
|
|
189
|
+
labelCostBreakdown: 'Распределение общих затрат',
|
|
190
|
+
labelBorrowed: 'Занято',
|
|
191
|
+
labelTotalBorrowed: 'Тело кредита',
|
|
192
|
+
labelTotalInterest: 'Итого проценты',
|
|
193
|
+
labelAmortizationTable: 'График платежей',
|
|
194
|
+
labelTableHeader: 'Посмотреть полную таблицу',
|
|
195
|
+
labelViewAll: 'Смотреть всё',
|
|
196
|
+
labelPaid: 'Ипотека выплачена',
|
|
197
|
+
labelTableMonth: 'Месяц',
|
|
198
|
+
labelTableInterest: 'Проценты',
|
|
199
|
+
labelTablePrincipal: 'Долг',
|
|
200
|
+
labelTableExtra: 'Доп.',
|
|
201
|
+
labelTableBalance: 'Остаток',
|
|
202
|
+
labelMoreMonths: 'еще мес.',
|
|
203
|
+
labelMonth: 'Месяц',
|
|
204
|
+
currencySymbol: '₽',
|
|
205
|
+
currencyCode: 'RUB',
|
|
206
|
+
currencyLocale: 'ru-RU',
|
|
207
|
+
monthPlural: 'мес.',
|
|
208
|
+
yearPlural: 'лет',
|
|
209
|
+
},
|
|
210
|
+
};
|