@jjlmoya/utils-finance 1.22.0 → 1.24.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.
Files changed (37) hide show
  1. package/package.json +2 -2
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +4 -1
  4. package/src/index.ts +1 -0
  5. package/src/tests/locale_completeness.test.ts +2 -2
  6. package/src/tests/tool_validation.test.ts +2 -2
  7. package/src/tool/revolvingCardCalculator/bibliography.astro +14 -0
  8. package/src/tool/revolvingCardCalculator/bibliography.ts +24 -0
  9. package/src/tool/revolvingCardCalculator/component.astro +315 -0
  10. package/src/tool/revolvingCardCalculator/components/AmortizationTable.astro +57 -0
  11. package/src/tool/revolvingCardCalculator/components/CalculatorInputs.astro +117 -0
  12. package/src/tool/revolvingCardCalculator/components/ChartDisplay.astro +35 -0
  13. package/src/tool/revolvingCardCalculator/components/UsuryChecker.astro +32 -0
  14. package/src/tool/revolvingCardCalculator/constants.ts +36 -0
  15. package/src/tool/revolvingCardCalculator/entry.ts +31 -0
  16. package/src/tool/revolvingCardCalculator/i18n/de.ts +84 -0
  17. package/src/tool/revolvingCardCalculator/i18n/en.ts +322 -0
  18. package/src/tool/revolvingCardCalculator/i18n/es.ts +153 -0
  19. package/src/tool/revolvingCardCalculator/i18n/fr.ts +84 -0
  20. package/src/tool/revolvingCardCalculator/i18n/id.ts +84 -0
  21. package/src/tool/revolvingCardCalculator/i18n/it.ts +84 -0
  22. package/src/tool/revolvingCardCalculator/i18n/ja.ts +84 -0
  23. package/src/tool/revolvingCardCalculator/i18n/ko.ts +84 -0
  24. package/src/tool/revolvingCardCalculator/i18n/nl.ts +84 -0
  25. package/src/tool/revolvingCardCalculator/i18n/pl.ts +84 -0
  26. package/src/tool/revolvingCardCalculator/i18n/pt.ts +84 -0
  27. package/src/tool/revolvingCardCalculator/i18n/ru.ts +84 -0
  28. package/src/tool/revolvingCardCalculator/i18n/sv.ts +84 -0
  29. package/src/tool/revolvingCardCalculator/i18n/tr.ts +84 -0
  30. package/src/tool/revolvingCardCalculator/i18n/zh.ts +84 -0
  31. package/src/tool/revolvingCardCalculator/index.ts +10 -0
  32. package/src/tool/revolvingCardCalculator/logic.ts +237 -0
  33. package/src/tool/revolvingCardCalculator/revolving-card-calculator.css +564 -0
  34. package/src/tool/revolvingCardCalculator/seo.astro +15 -0
  35. package/src/tool/revolvingCardCalculator/types.ts +54 -0
  36. package/src/tool/revolvingCardCalculator/ui.ts +58 -0
  37. package/src/tools.ts +2 -1
@@ -0,0 +1,84 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { RevolvingCardCalculatorUI } from '../ui';
5
+
6
+ const slug = 'calculadora-cartao-revolving';
7
+ const title = 'Calculadora de Cartão Revolving e Usura';
8
+ const description = 'Simule o tempo e o custo de amortização do seu cartão revolving e analise o risco de juros usurários.';
9
+
10
+ const faqData = [{ question: 'O que é um cartão revolving?', answer: 'Permite liquidar a dívida em prestações flexíveis.' }];
11
+ const howToData = [{ name: 'Selecionar mercado', text: 'Escolha o país ou limite personalizado.' }];
12
+
13
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [] };
14
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] };
15
+ const softwareSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, applicationCategory: 'FinanceApplication', operatingSystem: 'All' };
16
+
17
+ export const content: ToolLocaleContent<RevolvingCardCalculatorUI> = {
18
+ slug,
19
+ title,
20
+ description,
21
+ faq: faqData,
22
+ howTo: howToData,
23
+ bibliography,
24
+ schemas: [faqSchema, howToSchema, softwareSchema],
25
+ seo: [{ type: 'title', text: 'O perigo do crédito revolving' }, { type: 'paragraph', html: 'O cartão de crédito revolving permite liquidar a dívida em prestações.' }],
26
+ ui: {
27
+ title: 'Simulador de Cartão Revolving e Teste de Usura',
28
+ balanceLabel: 'Saldo Devedor',
29
+ creditLimitLabel: 'Limite de Crédito',
30
+ aprLabel: 'Taxa de Juros (TAEG / APR)',
31
+ paymentTypeLabel: 'Modalidade de Pagamento',
32
+ paymentTypeFixed: 'Prestação Fixa Mensal',
33
+ paymentTypePercentage: 'Percentagem sobre o Saldo',
34
+ paymentValueLabel: 'Valor do Pagamento (Montante ou %)',
35
+ minPaymentValueLabel: 'Pagamento Mínimo Exigido',
36
+ currencyLabel: 'Moeda',
37
+ marketLabel: 'Mercado Regulatório / País',
38
+ marketES: 'Espanha (Banco de España)',
39
+ marketUS: 'Estados Unidos (CFPB)',
40
+ marketUK: 'Reino Unido (FCA)',
41
+ marketEU: 'União Europeia (BCE)',
42
+ marketJP: 'Japão (FSA)',
43
+ marketKR: 'Coreia do Sul (FSC)',
44
+ marketCN: 'China (PBOC)',
45
+ marketBR: 'Brasil (Banco Central)',
46
+ marketMX: 'México (Banco de México)',
47
+ marketPL: 'Polónia (KNF)',
48
+ marketID: 'Indonésia (OJK)',
49
+ marketTR: 'Turquia (BRSA)',
50
+ marketRU: 'Rússia (Banco Central)',
51
+ marketSE: 'Suécia (Finansinspektionen)',
52
+ marketAU: 'Austrália (ASIC)',
53
+ marketCA: 'Canadá (FCAC)',
54
+ marketCustom: 'Limite Personalizado',
55
+ customThresholdLabel: 'Limite de Usura Personalizado (TAEG %)',
56
+
57
+ resultsTitle: 'Resultados da Amortização',
58
+ totalInterestLabel: 'Total de Juros Pagos',
59
+ totalPaidLabel: 'Total Reembolsado',
60
+ monthsToPayLabel: 'Prazo para Liquidar',
61
+ infiniteDebtWarning: 'Dívida perpétua! O pagamento mensal não cobre os juros.',
62
+ payoffYearsLabel: 'Cronograma de Pagamento',
63
+
64
+ usuryTitle: 'Análise de Usura e Conformidade',
65
+ usurySafeStatus: 'Padrão de Mercado (Risco Baixo)',
66
+ usuryWarningStatus: 'Juros Elevados (Risco Médio)',
67
+ usuryUsuriousStatus: 'Potencialmente Usurário (Risco Alto)',
68
+ usuryReferenceLabel: 'TAEG Média do Mercado',
69
+ usuryThresholdLabel: 'Limite Alerta de Usura',
70
+
71
+ tableTitle: 'Tabela de Amortização Mensal',
72
+ tableHeaderMonth: 'Mês',
73
+ tableHeaderInitial: 'Saldo Inicial',
74
+ tableHeaderInterest: 'Juros',
75
+ tableHeaderPrincipal: 'Capital Amortizado',
76
+ tableHeaderPayment: 'Prestação',
77
+ tableHeaderFinal: 'Saldo Final',
78
+
79
+ copyTooltip: 'Copiar Relatório',
80
+ copiedLabel: 'Relatório Copiado!',
81
+ currencySymbol: '€',
82
+ percentSymbol: '%',
83
+ },
84
+ };
@@ -0,0 +1,84 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { RevolvingCardCalculatorUI } from '../ui';
5
+
6
+ const slug = 'kalkulyator-revolvernykh-kart';
7
+ const title = 'Калькулятор Револьверных Карт и Ростовщичества';
8
+ const description = 'Рассчитайте срок и стоимость погашения долга по револьверной карте и проверьте процентные ставки.';
9
+
10
+ const faqData = [{ question: 'Как работают револьверные карты?', answer: 'Револьверная карта позволяет выплачивать долг минимальными платежами.' }];
11
+ const howToData = [{ name: 'Выберите рынок', text: 'Выберите страну или свой порог.' }];
12
+
13
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [] };
14
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] };
15
+ const softwareSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, applicationCategory: 'FinanceApplication', operatingSystem: 'All' };
16
+
17
+ export const content: ToolLocaleContent<RevolvingCardCalculatorUI> = {
18
+ slug,
19
+ title,
20
+ description,
21
+ faq: faqData,
22
+ howTo: howToData,
23
+ bibliography,
24
+ schemas: [faqSchema, howToSchema, softwareSchema],
25
+ seo: [{ type: 'title', text: 'Принцип работы револьверных карт' }, { type: 'paragraph', html: 'Револьверная карта позволяет выплачивать долг минимальными платежами.' }],
26
+ ui: {
27
+ title: 'Калькулятор Револьверных Карт и Анализ Ставок',
28
+ balanceLabel: 'Текущий Долг',
29
+ creditLimitLabel: 'Кредитный Лимит',
30
+ aprLabel: 'Процентная Ставка (ПСК / APR)',
31
+ paymentTypeLabel: 'Способ Оплаты',
32
+ paymentTypeFixed: 'Фиксированный Ежемесячный Платеж',
33
+ paymentTypePercentage: 'Процент от Задолженности',
34
+ paymentValueLabel: 'Размер Платежа (Сумма или %)',
35
+ minPaymentValueLabel: 'Минимальный Минимальный Платеж',
36
+ currencyLabel: 'Валюта',
37
+ marketLabel: 'Регуляторный Рынок / Страна',
38
+ marketES: 'Испания (Banco de España)',
39
+ marketUS: 'США (CFPB)',
40
+ marketUK: 'Великобритания (FCA)',
41
+ marketEU: 'Евросоюз (ЕЦБ)',
42
+ marketJP: 'Япония (FSA)',
43
+ marketKR: 'Южная Корея (FSC)',
44
+ marketCN: 'Китай (НБК)',
45
+ marketBR: 'Бразилия (Центробанк)',
46
+ marketMX: 'Мексика (Банк Мексики)',
47
+ marketPL: 'Польша (KNF)',
48
+ marketID: 'Индонезия (OJK)',
49
+ marketTR: 'Турция (BRSA)',
50
+ marketRU: 'Россия (Банк России / ФЗ-353)',
51
+ marketSE: 'Швеция (Finansinspektionen)',
52
+ marketAU: 'Австралия (ASIC)',
53
+ marketCA: 'Канада (FCAC)',
54
+ marketCustom: 'Свой Порог',
55
+ customThresholdLabel: 'Пользовательский Полог (ПСК %)',
56
+
57
+ resultsTitle: 'Результаты Расчета',
58
+ totalInterestLabel: 'Всего Уплачено Процентов',
59
+ totalPaidLabel: 'Итоговая Сумма Выплат',
60
+ monthsToPayLabel: 'Срок Погашения (Месяцев)',
61
+ infiniteDebtWarning: 'Бесконечный долг! Платеж не покрывает ежемесячные проценты.',
62
+ payoffYearsLabel: 'График Выплат',
63
+
64
+ usuryTitle: 'Анализ Ставок и Рисков',
65
+ usurySafeStatus: 'Стандартная Ставка (Низкий Риск)',
66
+ usuryWarningStatus: 'Высокая Ставка (Средний Риск)',
67
+ usuryUsuriousStatus: 'Потенциальное Завышение (Высокий Риск)',
68
+ usuryReferenceLabel: 'Средняя Рыночная ПСК',
69
+ usuryThresholdLabel: 'Порог Предупреждения',
70
+
71
+ tableTitle: 'Ежемесячный График Погашения',
72
+ tableHeaderMonth: 'Месяц',
73
+ tableHeaderInitial: 'Начальный Долг',
74
+ tableHeaderInterest: 'Проценты',
75
+ tableHeaderPrincipal: 'Основной Долг',
76
+ tableHeaderPayment: 'Платеж',
77
+ tableHeaderFinal: 'Остаток Долга',
78
+
79
+ copyTooltip: 'Скопировать Отчет',
80
+ copiedLabel: 'Отчет Скопирован!',
81
+ currencySymbol: '₽',
82
+ percentSymbol: '%',
83
+ },
84
+ };
@@ -0,0 +1,84 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { RevolvingCardCalculatorUI } from '../ui';
5
+
6
+ const slug = 'revolverkort-kalkylator';
7
+ const title = 'Revolverkort & Ockerränta Kalkylator';
8
+ const description = 'Beräkna återbetalningstid och räntekostnader för ditt revolverkort samt kontrollera ockergränser.';
9
+
10
+ const faqData = [{ question: 'Hur fungerar ett revolverkort?', answer: 'Med ett revolverkort kan du delbetala din skuld.' }];
11
+ const howToData = [{ name: 'Välj marknad', text: 'Välj land eller anpassad gräns.' }];
12
+
13
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [] };
14
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] };
15
+ const softwareSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, applicationCategory: 'FinanceApplication', operatingSystem: 'All' };
16
+
17
+ export const content: ToolLocaleContent<RevolvingCardCalculatorUI> = {
18
+ slug,
19
+ title,
20
+ description,
21
+ faq: faqData,
22
+ howTo: howToData,
23
+ bibliography,
24
+ schemas: [faqSchema, howToSchema, softwareSchema],
25
+ seo: [{ type: 'title', text: 'Hur fungerar ett revolverkort?' }, { type: 'paragraph', html: 'Med ett revolverkort kan du delbetala din skuld.' }],
26
+ ui: {
27
+ title: 'Revolverkort & Ocker Kalkylator',
28
+ balanceLabel: 'Kvarvarande Skuld',
29
+ creditLimitLabel: 'Kreditgräns',
30
+ aprLabel: 'Effektiv Ränta (APR %)',
31
+ paymentTypeLabel: 'Betalningsmetod',
32
+ paymentTypeFixed: 'Fast Månadsbelopp',
33
+ paymentTypePercentage: 'Procent av Saldot',
34
+ paymentValueLabel: 'Betalningsvärde (Belopp eller %)',
35
+ minPaymentValueLabel: 'Lägsta Tillåtna Betalning',
36
+ currencyLabel: 'Valuta',
37
+ marketLabel: 'Tillsynsmarknad / Land',
38
+ marketES: 'Spanien (Banco de España)',
39
+ marketUS: 'USA (CFPB)',
40
+ marketUK: 'Storbritannien (FCA)',
41
+ marketEU: 'Europeiska Unionen (ECB)',
42
+ marketJP: 'Japan (FSA)',
43
+ marketKR: 'Sydkorea (FSC)',
44
+ marketCN: 'Kina (PBOC)',
45
+ marketBR: 'Brasilien (Banco Central)',
46
+ marketMX: 'Mexiko (Banco de México)',
47
+ marketPL: 'Polen (KNF)',
48
+ marketID: 'Indonesien (OJK)',
49
+ marketTR: 'Turkiet (BRSA)',
50
+ marketRU: 'Ryssland (Centralbanken)',
51
+ marketSE: 'Sverige (Finansinspektionen)',
52
+ marketAU: 'Australien (ASIC)',
53
+ marketCA: 'Kanada (FCAC)',
54
+ marketCustom: 'Anpassad Gräns',
55
+ customThresholdLabel: 'Anpassad Ockergräns (APR %)',
56
+
57
+ resultsTitle: 'Återbetalningsresultat',
58
+ totalInterestLabel: 'Total Betald Ränta',
59
+ totalPaidLabel: 'Total Återbetalning',
60
+ monthsToPayLabel: 'Återbetalningstid (Månader)',
61
+ infiniteDebtWarning: 'Oändlig skuld! Månadsbetalningen täcker inte månadens ränta.',
62
+ payoffYearsLabel: 'Återbetalningsplan',
63
+
64
+ usuryTitle: 'Analys av Ockerränta',
65
+ usurySafeStatus: 'Normal Ränta (Låg Risk)',
66
+ usuryWarningStatus: 'Hög Ränta (Medel Risk)',
67
+ usuryUsuriousStatus: 'Möjlig Ockerränta (Hög Risk)',
68
+ usuryReferenceLabel: 'Genomsnittlig Marknadsränta',
69
+ usuryThresholdLabel: 'Varningsgräns för Ocker',
70
+
71
+ tableTitle: 'Månadsvis Amorteringsplan',
72
+ tableHeaderMonth: 'Månad',
73
+ tableHeaderInitial: 'Ingående Skuld',
74
+ tableHeaderInterest: 'Ränta',
75
+ tableHeaderPrincipal: 'Amortering',
76
+ tableHeaderPayment: 'Betalning',
77
+ tableHeaderFinal: 'Utgående Skuld',
78
+
79
+ copyTooltip: 'Kopiera Rapport',
80
+ copiedLabel: 'Rapport Kopierad!',
81
+ currencySymbol: 'kr',
82
+ percentSymbol: '%',
83
+ },
84
+ };
@@ -0,0 +1,84 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { RevolvingCardCalculatorUI } from '../ui';
5
+
6
+ const slug = 'doner-kredi-karti-hesaplayici';
7
+ const title = 'Döner Kredi Kartı ve Fahiş Faiz Hesaplayıcı';
8
+ const description = 'Döner kredi kartı borcunuzun geri ödeme süresini ve faiz maliyetini hesaplayın.';
9
+
10
+ const faqData = [{ question: 'Döner kredi kartı nasıl çalışır?', answer: 'Döner kredi kartları esnek ödeme imkanı sunar.' }];
11
+ const howToData = [{ name: 'Piyasa seçin', text: 'Ülkenizi veya özel limiti seçin.' }];
12
+
13
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [] };
14
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] };
15
+ const softwareSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, applicationCategory: 'FinanceApplication', operatingSystem: 'All' };
16
+
17
+ export const content: ToolLocaleContent<RevolvingCardCalculatorUI> = {
18
+ slug,
19
+ title,
20
+ description,
21
+ faq: faqData,
22
+ howTo: howToData,
23
+ bibliography,
24
+ schemas: [faqSchema, howToSchema, softwareSchema],
25
+ seo: [{ type: 'title', text: 'Döner Kredi Kartı Nasıl Çalışır?' }, { type: 'paragraph', html: 'Döner kredi kartları esnek ödeme imkanı sunar.' }],
26
+ ui: {
27
+ title: 'Döner Kredi Kartı & Faiz Hesaplayıcı',
28
+ balanceLabel: 'Kalan Borç',
29
+ creditLimitLabel: 'Kredi Limiti',
30
+ aprLabel: 'Faiz Oranı (Yıllık % / APR)',
31
+ paymentTypeLabel: 'Ödeme Türü',
32
+ paymentTypeFixed: 'Sabit Aylık Tutar',
33
+ paymentTypePercentage: 'Borç Yüzdesi',
34
+ paymentValueLabel: 'Ödeme Miktarı (Tutar veya %)',
35
+ minPaymentValueLabel: 'Asgari Ödeme Tutarı',
36
+ currencyLabel: 'Para Birimi',
37
+ marketLabel: 'Düzenleyici Piyasa / Ülke',
38
+ marketES: 'İspanya (Banco de España)',
39
+ marketUS: 'ABD (CFPB)',
40
+ marketUK: 'İngiltere (FCA)',
41
+ marketEU: 'Avrupa Birliği (ECB)',
42
+ marketJP: 'Japonya (FSA)',
43
+ marketKR: 'Güney Kore (FSC)',
44
+ marketCN: 'Çin (PBOC)',
45
+ marketBR: 'Brezilya (Banco Central)',
46
+ marketMX: 'Meksika (Banco de México)',
47
+ marketPL: 'Polonya (KNF)',
48
+ marketID: 'Endonezya (OJK)',
49
+ marketTR: 'Türkiye (BDDK / Merkez Bankası)',
50
+ marketRU: 'Rusya (Меркез Банкасы)',
51
+ marketSE: 'İsveç (Finansinspektionen)',
52
+ marketAU: 'Avustralya (ASIC)',
53
+ marketCA: 'Kanada (FCAC)',
54
+ marketCustom: 'Özel Limit',
55
+ customThresholdLabel: 'Özel Faiz Limiti (Yıllık %)',
56
+
57
+ resultsTitle: 'Geri Ödeme Sonuçları',
58
+ totalInterestLabel: 'Ödenen Toplam Faiz',
59
+ totalPaidLabel: 'Toplam Geri Ödeme',
60
+ monthsToPayLabel: 'Ödeme Süresi (Ay)',
61
+ infiniteDebtWarning: 'Sonsuz borç! Aylık ödeme aylık faizi karşılamıyor.',
62
+ payoffYearsLabel: 'Ödeme Zaman Çizelgesi',
63
+
64
+ usuryTitle: 'Faiz & Uyum Analizi',
65
+ usurySafeStatus: 'Piyasa Standartlarında (Düşük Risk)',
66
+ usuryWarningStatus: 'Yüksek Faiz Oranı (Orta Risk)',
67
+ usuryUsuriousStatus: 'Aşırı Faiz Riskli (Yüksek Risk)',
68
+ usuryReferenceLabel: 'Ortalama Piyasa Oranı',
69
+ usuryThresholdLabel: 'Faiz Uyarı Eşiği',
70
+
71
+ tableTitle: 'Aylık Ödeme Planı',
72
+ tableHeaderMonth: 'Ay',
73
+ tableHeaderInitial: 'Başlangıç Borcu',
74
+ tableHeaderInterest: 'Faiz',
75
+ tableHeaderPrincipal: 'Ana Para Ödemesi',
76
+ tableHeaderPayment: 'Ödenen Tutar',
77
+ tableHeaderFinal: 'Kalan Borç',
78
+
79
+ copyTooltip: 'Raporu Kopyala',
80
+ copiedLabel: 'Rapor Kopyalandı!',
81
+ currencySymbol: '₺',
82
+ percentSymbol: '%',
83
+ },
84
+ };
@@ -0,0 +1,84 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { RevolvingCardCalculatorUI } from '../ui';
5
+
6
+ const slug = 'revolving-card-calculator';
7
+ const title = '循环贷信用卡与高利贷计算器';
8
+ const description = '计算信用卡循环贷的还款时间与利息总额,评估利率风险及法律合规界限。';
9
+
10
+ const faqData = [{ question: '什么是信用卡循环贷?', answer: '循环贷允许持卡人选择按最低还款额还款。' }];
11
+ const howToData = [{ name: '选择监管市场', text: '选择国家或自定义红线。' }];
12
+
13
+ const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: [] };
14
+ const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: [] };
15
+ const softwareSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, applicationCategory: 'FinanceApplication', operatingSystem: 'All' };
16
+
17
+ export const content: ToolLocaleContent<RevolvingCardCalculatorUI> = {
18
+ slug,
19
+ title,
20
+ description,
21
+ faq: faqData,
22
+ howTo: howToData,
23
+ bibliography,
24
+ schemas: [faqSchema, howToSchema, softwareSchema],
25
+ seo: [{ type: 'title', text: '信用卡循环贷的工作原理' }, { type: 'paragraph', html: '循环贷允许持卡人选择按最低还款额还款。' }],
26
+ ui: {
27
+ title: '循环贷信用卡与利率合规计算器',
28
+ balanceLabel: '未还欠款',
29
+ creditLimitLabel: '信用额度',
30
+ aprLabel: '年利率 (APR %)',
31
+ paymentTypeLabel: '还款方式',
32
+ paymentTypeFixed: '每月固定金额',
33
+ paymentTypePercentage: '按欠款比例还款',
34
+ paymentValueLabel: '还款数值 (金额或%)',
35
+ minPaymentValueLabel: '最低还款额限制',
36
+ currencyLabel: '货币',
37
+ marketLabel: '监管市场 / 国家',
38
+ marketES: '西班牙 (Banco de España)',
39
+ marketUS: '美国 (CFPB标准)',
40
+ marketUK: '英国 (FCA)',
41
+ marketEU: '欧盟 (ECB)',
42
+ marketJP: '日本 (金融厅)',
43
+ marketKR: '韩国 (金融委员会)',
44
+ marketCN: '中国 (中国人民银行 / 最高法24%红线)',
45
+ marketBR: '巴西 (中央银行)',
46
+ marketMX: '墨西哥 (墨西哥银行)',
47
+ marketPL: '波兰 (KNF)',
48
+ marketID: '印度尼西亚 (OJK)',
49
+ marketTR: '土耳其 (BRSA)',
50
+ marketRU: '俄罗斯 (中央银行)',
51
+ marketSE: '瑞典 (Finansinspektionen)',
52
+ marketAU: '澳大利亚 (ASIC)',
53
+ marketCA: '加拿大 (FCAC)',
54
+ marketCustom: '自定义上限',
55
+ customThresholdLabel: '自定义年利率红线 (APR %)',
56
+
57
+ resultsTitle: '还款模拟结果',
58
+ totalInterestLabel: '累计支付利息',
59
+ totalPaidLabel: '累计还款总额',
60
+ monthsToPayLabel: '还清所需月数',
61
+ infiniteDebtWarning: '无限债务警告!每月还款额不足以支付当月利息,债务将永远无法还清。',
62
+ payoffYearsLabel: '还款时间线',
63
+
64
+ usuryTitle: '利率与合规诊断',
65
+ usurySafeStatus: '标准合理 (低风险)',
66
+ usuryWarningStatus: '偏高利率 (中风险)',
67
+ usuryUsuriousStatus: '可能构成高利贷/畸高 (高风险)',
68
+ usuryReferenceLabel: '市场平均年利率',
69
+ usuryThresholdLabel: '高利率预警红线',
70
+
71
+ tableTitle: '逐月还款明细表',
72
+ tableHeaderMonth: '期数',
73
+ tableHeaderInitial: '期初欠款',
74
+ tableHeaderInterest: '当期利息',
75
+ tableHeaderPrincipal: '偿还本金',
76
+ tableHeaderPayment: '还款金额',
77
+ tableHeaderFinal: '期末欠款',
78
+
79
+ copyTooltip: '复制报告',
80
+ copiedLabel: '报告已复制!',
81
+ currencySymbol: '¥',
82
+ percentSymbol: '%',
83
+ },
84
+ };
@@ -0,0 +1,10 @@
1
+ import { revolvingCardCalculator } from './entry';
2
+ import type { ToolDefinition } from '../../types';
3
+
4
+ export * from './entry';
5
+ export const REVOLVING_CARD_CALCULATOR_TOOL: ToolDefinition = {
6
+ entry: revolvingCardCalculator,
7
+ Component: () => import('./component.astro'),
8
+ SEOComponent: () => import('./seo.astro'),
9
+ BibliographyComponent: () => import('./bibliography.astro'),
10
+ };