@jjlmoya/utils-finance 1.30.0 → 1.31.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 (211) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/fr.ts +159 -159
  3. package/src/category/i18n/ru.ts +158 -158
  4. package/src/category/index.ts +39 -38
  5. package/src/category/seo.astro +1 -1
  6. package/src/components/PreviewNavSidebar.astro +1 -1
  7. package/src/components/PreviewToolbar.astro +1 -1
  8. package/src/data.ts +1 -1
  9. package/src/entries.ts +4 -1
  10. package/src/env.d.ts +1 -1
  11. package/src/index.ts +1 -0
  12. package/src/layouts/PreviewLayout.astro +113 -113
  13. package/src/pages/index.astro +1 -1
  14. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  15. package/src/tests/faq_count.test.ts +1 -1
  16. package/src/tests/locale_completeness.test.ts +2 -2
  17. package/src/tests/mocks/astro_mock.js +1 -1
  18. package/src/tests/no_h1_in_components.test.ts +1 -1
  19. package/src/tests/script_density.test.ts +94 -94
  20. package/src/tests/seo_length.test.ts +23 -23
  21. package/src/tests/seo_translation_completeness.test.ts +69 -0
  22. package/src/tests/seo_wellformed_export.test.ts +65 -0
  23. package/src/tests/tool_validation.test.ts +17 -17
  24. package/src/tool/compoundInterest/compound-interest-calculator.css +236 -236
  25. package/src/tool/compoundInterest/entry.ts +32 -32
  26. package/src/tool/compoundInterest/i18n/de.ts +195 -195
  27. package/src/tool/compoundInterest/i18n/fr.ts +195 -195
  28. package/src/tool/compoundInterest/i18n/it.ts +195 -195
  29. package/src/tool/compoundInterest/i18n/pl.ts +194 -194
  30. package/src/tool/compoundInterest/i18n/ru.ts +195 -195
  31. package/src/tool/compoundInterest/i18n/tr.ts +195 -195
  32. package/src/tool/compoundInterest/i18n/zh.ts +189 -189
  33. package/src/tool/compoundInterest/seo.astro +15 -15
  34. package/src/tool/courtFeeCalculator/i18n/it.ts +158 -158
  35. package/src/tool/courtFeeCalculator/i18n/ru.ts +158 -158
  36. package/src/tool/courtFeeCalculator/i18n/tr.ts +158 -158
  37. package/src/tool/courtFeeCalculator/seo.astro +15 -15
  38. package/src/tool/courtFeeCalculator/spanish-court-fees-calculator.css +197 -197
  39. package/src/tool/debtSnowball/bibliography.ts +12 -12
  40. package/src/tool/debtSnowball/i18n/de.ts +16 -16
  41. package/src/tool/debtSnowball/i18n/id.ts +16 -16
  42. package/src/tool/debtSnowball/i18n/it.ts +168 -168
  43. package/src/tool/debtSnowball/i18n/nl.ts +16 -16
  44. package/src/tool/debtSnowball/i18n/pl.ts +168 -168
  45. package/src/tool/debtSnowball/i18n/pt.ts +1 -1
  46. package/src/tool/debtSnowball/i18n/ru.ts +1 -1
  47. package/src/tool/debtSnowball/i18n/sv.ts +22 -29
  48. package/src/tool/debtSnowball/i18n/tr.ts +168 -168
  49. package/src/tool/debtSnowball/i18n/zh.ts +168 -168
  50. package/src/tool/debtSnowball/seo.astro +15 -15
  51. package/src/tool/dividendYield/bibliography.astro +14 -0
  52. package/src/tool/dividendYield/bibliography.ts +12 -0
  53. package/src/tool/dividendYield/component.astro +83 -0
  54. package/src/tool/dividendYield/controller.ts +85 -0
  55. package/src/tool/dividendYield/dividend-yield-calculator.css +352 -0
  56. package/src/tool/dividendYield/dom-views.ts +58 -0
  57. package/src/tool/dividendYield/entry.ts +29 -0
  58. package/src/tool/dividendYield/evaluator.ts +16 -0
  59. package/src/tool/dividendYield/i18n/de.ts +53 -0
  60. package/src/tool/dividendYield/i18n/en.ts +138 -0
  61. package/src/tool/dividendYield/i18n/es.ts +49 -0
  62. package/src/tool/dividendYield/i18n/fr.ts +49 -0
  63. package/src/tool/dividendYield/i18n/id.ts +49 -0
  64. package/src/tool/dividendYield/i18n/it.ts +49 -0
  65. package/src/tool/dividendYield/i18n/ja.ts +49 -0
  66. package/src/tool/dividendYield/i18n/ko.ts +25 -0
  67. package/src/tool/dividendYield/i18n/nl.ts +25 -0
  68. package/src/tool/dividendYield/i18n/pl.ts +25 -0
  69. package/src/tool/dividendYield/i18n/pt.ts +25 -0
  70. package/src/tool/dividendYield/i18n/ru.ts +25 -0
  71. package/src/tool/dividendYield/i18n/sv.ts +25 -0
  72. package/src/tool/dividendYield/i18n/tr.ts +25 -0
  73. package/src/tool/dividendYield/i18n/zh.ts +25 -0
  74. package/src/tool/dividendYield/index.ts +11 -0
  75. package/src/tool/dividendYield/logic.test.ts +73 -0
  76. package/src/tool/dividendYield/logic.ts +55 -0
  77. package/src/tool/dividendYield/seo.astro +14 -0
  78. package/src/tool/dividendYield/storage.ts +24 -0
  79. package/src/tool/dividendYield/ui.ts +33 -0
  80. package/src/tool/financialFreedom/financial-freedom-calculator.css +311 -311
  81. package/src/tool/financialFreedom/i18n/en.ts +182 -182
  82. package/src/tool/financialFreedom/i18n/fr.ts +128 -128
  83. package/src/tool/financialFreedom/i18n/id.ts +24 -7
  84. package/src/tool/financialFreedom/i18n/it.ts +24 -7
  85. package/src/tool/financialFreedom/i18n/ja.ts +1 -1
  86. package/src/tool/financialFreedom/i18n/nl.ts +24 -7
  87. package/src/tool/financialFreedom/i18n/pl.ts +24 -7
  88. package/src/tool/financialFreedom/i18n/pt.ts +24 -7
  89. package/src/tool/financialFreedom/i18n/ru.ts +128 -128
  90. package/src/tool/financialFreedom/i18n/sv.ts +1 -1
  91. package/src/tool/financialFreedom/i18n/tr.ts +2 -2
  92. package/src/tool/financialFreedom/i18n/zh.ts +128 -128
  93. package/src/tool/fireCalculator/i18n/it.ts +241 -241
  94. package/src/tool/fireCalculator/i18n/ru.ts +241 -241
  95. package/src/tool/fireCalculator/i18n/tr.ts +241 -241
  96. package/src/tool/fireCalculator/i18n/zh.ts +241 -241
  97. package/src/tool/fireCalculator/seo.astro +15 -15
  98. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +151 -151
  99. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +118 -118
  100. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +118 -118
  101. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +118 -118
  102. package/src/tool/ibanBicSwiftConverter/iban-to-bic-swift-converter.css +366 -366
  103. package/src/tool/ibanBicSwiftConverter/seo.astro +15 -15
  104. package/src/tool/inflation/bibliography.ts +20 -20
  105. package/src/tool/inflation/entry.ts +32 -32
  106. package/src/tool/inflation/i18n/de.ts +284 -284
  107. package/src/tool/inflation/i18n/fr.ts +284 -284
  108. package/src/tool/inflation/i18n/it.ts +284 -284
  109. package/src/tool/inflation/i18n/nl.ts +284 -284
  110. package/src/tool/inflation/i18n/pl.ts +284 -284
  111. package/src/tool/inflation/i18n/pt.ts +284 -284
  112. package/src/tool/inflation/i18n/ru.ts +284 -284
  113. package/src/tool/inflation/i18n/sv.ts +284 -284
  114. package/src/tool/inflation/i18n/tr.ts +284 -284
  115. package/src/tool/inflation/i18n/zh.ts +284 -284
  116. package/src/tool/inflation/seo.astro +15 -15
  117. package/src/tool/lateInterest/bibliography.ts +16 -16
  118. package/src/tool/lateInterest/entry.ts +32 -32
  119. package/src/tool/lateInterest/i18n/de.ts +213 -213
  120. package/src/tool/lateInterest/i18n/es.ts +213 -213
  121. package/src/tool/lateInterest/i18n/it.ts +213 -213
  122. package/src/tool/lateInterest/i18n/nl.ts +213 -213
  123. package/src/tool/lateInterest/i18n/pl.ts +213 -213
  124. package/src/tool/lateInterest/i18n/pt.ts +213 -213
  125. package/src/tool/lateInterest/i18n/ru.ts +213 -213
  126. package/src/tool/lateInterest/i18n/sv.ts +213 -213
  127. package/src/tool/lateInterest/i18n/tr.ts +213 -213
  128. package/src/tool/lateInterest/i18n/zh.ts +213 -213
  129. package/src/tool/lateInterest/seo.astro +15 -15
  130. package/src/tool/legalInterestRate/i18n/it.ts +129 -129
  131. package/src/tool/legalInterestRate/i18n/ru.ts +129 -129
  132. package/src/tool/legalInterestRate/i18n/tr.ts +128 -121
  133. package/src/tool/legalInterestRate/i18n/zh.ts +11 -4
  134. package/src/tool/legalInterestRate/seo.astro +15 -15
  135. package/src/tool/lotteryOptimizer/i18n/it.ts +163 -163
  136. package/src/tool/lotteryOptimizer/i18n/pl.ts +163 -163
  137. package/src/tool/lotteryOptimizer/i18n/ru.ts +163 -163
  138. package/src/tool/lotteryOptimizer/i18n/tr.ts +163 -163
  139. package/src/tool/lotteryOptimizer/i18n/zh.ts +162 -155
  140. package/src/tool/lotteryOptimizer/seo.astro +15 -15
  141. package/src/tool/mortgage/bibliography.ts +20 -20
  142. package/src/tool/mortgage/entry.ts +32 -32
  143. package/src/tool/mortgage/i18n/de.ts +210 -210
  144. package/src/tool/mortgage/i18n/es.ts +210 -210
  145. package/src/tool/mortgage/i18n/fr.ts +210 -210
  146. package/src/tool/mortgage/i18n/id.ts +210 -210
  147. package/src/tool/mortgage/i18n/it.ts +210 -210
  148. package/src/tool/mortgage/i18n/nl.ts +210 -210
  149. package/src/tool/mortgage/i18n/pl.ts +210 -210
  150. package/src/tool/mortgage/i18n/ru.ts +210 -210
  151. package/src/tool/mortgage/i18n/tr.ts +210 -210
  152. package/src/tool/mortgage/i18n/zh.ts +210 -210
  153. package/src/tool/mortgage/mortgage-calculator.css +595 -595
  154. package/src/tool/mortgage/seo.astro +15 -15
  155. package/src/tool/percentageCalculator/bibliography.ts +16 -16
  156. package/src/tool/percentageCalculator/entry.ts +32 -32
  157. package/src/tool/percentageCalculator/i18n/de.ts +220 -220
  158. package/src/tool/percentageCalculator/i18n/en.ts +220 -220
  159. package/src/tool/percentageCalculator/i18n/es.ts +220 -220
  160. package/src/tool/percentageCalculator/i18n/fr.ts +220 -220
  161. package/src/tool/percentageCalculator/i18n/it.ts +220 -220
  162. package/src/tool/percentageCalculator/i18n/pl.ts +220 -220
  163. package/src/tool/percentageCalculator/i18n/ru.ts +220 -220
  164. package/src/tool/percentageCalculator/i18n/tr.ts +220 -220
  165. package/src/tool/percentageCalculator/i18n/zh.ts +220 -220
  166. package/src/tool/percentageCalculator/seo.astro +15 -15
  167. package/src/tool/profitability/i18n/de.ts +24 -7
  168. package/src/tool/profitability/i18n/fr.ts +121 -104
  169. package/src/tool/profitability/i18n/id.ts +2 -2
  170. package/src/tool/profitability/i18n/it.ts +24 -7
  171. package/src/tool/profitability/i18n/ja.ts +1 -1
  172. package/src/tool/profitability/i18n/nl.ts +24 -7
  173. package/src/tool/profitability/i18n/pl.ts +1 -1
  174. package/src/tool/profitability/i18n/pt.ts +24 -7
  175. package/src/tool/profitability/i18n/ru.ts +118 -118
  176. package/src/tool/profitability/i18n/sv.ts +1 -1
  177. package/src/tool/profitability/i18n/tr.ts +1 -1
  178. package/src/tool/profitability/i18n/zh.ts +118 -118
  179. package/src/tool/profitability/profitability-calculator.css +229 -229
  180. package/src/tool/rentIncreaseCalculator/i18n/it.ts +125 -125
  181. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +125 -125
  182. package/src/tool/rentIncreaseCalculator/rent-increase-calculator.css +326 -326
  183. package/src/tool/rentIncreaseCalculator/seo.astro +15 -15
  184. package/src/tool/revolvingCardCalculator/i18n/de.ts +38 -20
  185. package/src/tool/revolvingCardCalculator/i18n/es.ts +19 -18
  186. package/src/tool/revolvingCardCalculator/i18n/fr.ts +32 -28
  187. package/src/tool/revolvingCardCalculator/i18n/id.ts +18 -18
  188. package/src/tool/revolvingCardCalculator/i18n/it.ts +18 -18
  189. package/src/tool/revolvingCardCalculator/i18n/ja.ts +2 -2
  190. package/src/tool/revolvingCardCalculator/i18n/ko.ts +2 -2
  191. package/src/tool/revolvingCardCalculator/i18n/nl.ts +22 -19
  192. package/src/tool/revolvingCardCalculator/i18n/pl.ts +2 -2
  193. package/src/tool/revolvingCardCalculator/i18n/pt.ts +2 -2
  194. package/src/tool/revolvingCardCalculator/i18n/ru.ts +2 -2
  195. package/src/tool/revolvingCardCalculator/i18n/sv.ts +2 -2
  196. package/src/tool/revolvingCardCalculator/i18n/tr.ts +2 -2
  197. package/src/tool/revolvingCardCalculator/i18n/zh.ts +6 -6
  198. package/src/tool/salaryEmployerCost/i18n/de.ts +10 -10
  199. package/src/tool/salaryEmployerCost/i18n/fr.ts +9 -9
  200. package/src/tool/salaryEmployerCost/i18n/id.ts +9 -9
  201. package/src/tool/salaryEmployerCost/i18n/it.ts +9 -9
  202. package/src/tool/salaryEmployerCost/i18n/ja.ts +1 -1
  203. package/src/tool/salaryEmployerCost/i18n/ko.ts +1 -1
  204. package/src/tool/salaryEmployerCost/i18n/nl.ts +2 -2
  205. package/src/tool/salaryEmployerCost/i18n/pl.ts +2 -2
  206. package/src/tool/salaryEmployerCost/i18n/pt.ts +2 -2
  207. package/src/tool/salaryEmployerCost/i18n/ru.ts +2 -2
  208. package/src/tool/salaryEmployerCost/i18n/sv.ts +2 -2
  209. package/src/tool/salaryEmployerCost/i18n/tr.ts +2 -2
  210. package/src/tool/salaryEmployerCost/i18n/zh.ts +2 -2
  211. package/src/tools.ts +2 -1
@@ -1,220 +1,220 @@
1
- import { bibliography } from '../bibliography'
2
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
- import type { ToolLocaleContent } from '../../../types';
4
- import type { PercentageCalculatorUI } from '../ui';
5
-
6
- const slug = 'kalkulator-procentowy';
7
- const title = 'Kalkulator Procentowy 4 w 1: Rabaty, Podwyżki i Obniżki';
8
- const description =
9
- 'Łatwo obliczaj procenty online za darmo. 4 narzędzia w 1: obliczanie X% z Y, różnica procentowa, dodawanie lub odejmowanie VAT, rabaty i automatyczne napiwki.';
10
-
11
- const faqData = [
12
- {
13
- question: 'Jak działa kalkulator?',
14
- answer:
15
- 'Po prostu wpisz wartości w pola odpowiedniego przypadku użycia dla Twojego problemu, a nasz kalkulator przetworzy formułę bez konieczności naciskania jakiegokolwiek przycisku obliczania.',
16
- },
17
- {
18
- question: 'Czy nadaje się do obliczania VAT lub podatków?',
19
- answer:
20
- 'Tak, blok 4 ("Dodaj lub odejmij procent") jest zaprojektowany właśnie dla takich przypadków, jak naliczenie 23% VAT do ceny netto lub obliczenie potrącenia zaliczki na podatek dochodowy.',
21
- },
22
- {
23
- question: 'Czy obsługuje liczby dziesiętne i ujemne?',
24
- answer:
25
- 'Oczywiście. Możesz wpisywać liczby dziesiętne (używając kropki), a kalkulator zadziała również z wartościami ujemnymi, jeśli potrzebujesz przeanalizować bilanse księgowe ze stratą.',
26
- },
27
- {
28
- question: 'Czy mogę kopiować wyniki?',
29
- answer:
30
- 'Tak, każdy blok posiada przycisk w polu wyniku, który natychmiast kopiuje liczbę do schowka Twojego urządzenia, aby móc ją wkleić do innej aplikacji lub dokumentu.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: 'Zidentyfikuj swój problem matematyczny',
37
- text: 'Przeczytaj tytuły 4 bloków i wybierz ten, który odpowiada Twojemu zapytaniu (Np. Ile to jest 20% z 50? -> Blok 1).',
38
- },
39
- {
40
- name: 'Wprowadź liczby',
41
- text: 'Wypełnij pola "X" i "Y". Nie martw się o kolejność, opisy w każdym bloku poprowadzą Cię wizualnie.',
42
- },
43
- {
44
- name: 'Skopiuj natychmiastowy wynik',
45
- text: 'Wynik pojawi się w czasie rzeczywistym na dole w trakcie wpisywania. Kliknij ikonę kopiowania, jeśli chcesz go przenieść gdzie indziej.',
46
- },
47
- ];
48
-
49
- const faqSchema: WithContext<FAQPage> = {
50
- '@context': 'https://schema.org',
51
- '@type': 'FAQPage',
52
- mainEntity: faqData.map((item) => ({
53
- '@type': 'Question',
54
- name: item.question,
55
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
56
- })),
57
- };
58
-
59
- const howToSchema: WithContext<HowTo> = {
60
- '@context': 'https://schema.org',
61
- '@type': 'HowTo',
62
- name: title,
63
- description,
64
- step: howToData.map((step, i) => ({
65
- '@type': 'HowToStep',
66
- position: i + 1,
67
- name: step.name,
68
- text: step.text,
69
- })),
70
- };
71
-
72
- const appSchema: WithContext<SoftwareApplication> = {
73
- '@context': 'https://schema.org',
74
- '@type': 'SoftwareApplication',
75
- name: title,
76
- description,
77
- applicationCategory: 'FinanceApplication',
78
- operatingSystem: 'All',
79
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'PLN' },
80
- inLanguage: 'pl',
81
- };
82
-
83
- export const content: ToolLocaleContent<PercentageCalculatorUI> = {
84
- slug,
85
- title,
86
- description,
87
- faq: faqData,
88
- bibliography,
89
-
90
- howTo: howToData,
91
- schemas: [faqSchema, howToSchema, appSchema],
92
- seo: [
93
- {
94
- type: 'title',
95
- text: 'Kalkulator Procentowy 4 w 1: Opanuj Szybkie Obliczenia',
96
- level: 2,
97
- },
98
- {
99
- type: 'title',
100
- text: 'Do czego służy wielofunkcyjny kalkulator procentowy?',
101
- level: 3,
102
- },
103
- {
104
- type: 'paragraph',
105
- html: 'Obliczanie procentów to jedna z najczęstszych operacji matematycznych w naszym codziennym życiu. Od obliczania rabatu na wyprzedaży, przez ustalanie odpowiedniego napiwku w restauracji, aż po określanie marży zysku w biznesie czy odsetek od kredytu. Mimo że są to codzienne czynności, nie zawsze łatwo jest wykonać je w pamięci lub zapamiętać dokładny wzór.',
106
- },
107
- {
108
- type: 'paragraph',
109
- html: 'Nasz kalkulator procentowy 4 w 1 grupuje najczęściej poszukiwane scenariusze. Nie musisz już szukać w Google "jak obliczyć 20 procent" czy "wzór na obliczanie procentu". Masz cztery kluczowe operacje w jednym miejscu, w interaktywnej formie i z natychmiastowymi wynikami.',
110
- },
111
- {
112
- type: 'title',
113
- text: 'Przegląd 4 najczęstszych przypadków użycia',
114
- level: 3,
115
- },
116
- {
117
- type: 'paragraph',
118
- html: 'Aby ułatwić Ci życie, podzieliliśmy narzędzie na cztery wyraźne bloki wizualne, które rozwiązują realne problemy, z jakimi borykamy się na co dzień:',
119
- },
120
- {
121
- type: 'card',
122
- icon: 'mdi:percent',
123
- title: '1. Ile to jest X% z Y?',
124
- html: '<p><strong>Klasyczny przypadek.</strong> Przydatny do obliczania rabatów lub napiwków. Jeśli chcesz wiedzieć, ile to jest 15% z 120 zł, to narzędzie jest dla Ciebie. Formuła po prostu dzieli procent przez 100 i mnoży go przez całkowitą wartość.</p>',
125
- },
126
- {
127
- type: 'card',
128
- icon: 'mdi:division',
129
- title: '2. Jakim procentem X jest Y?',
130
- html: '<p><strong>Idealny do proporcji.</strong> Jeśli zdobyłeś 45 punktów na 60 w egzaminie, jaką ocenę masz w skali 100? Ta funkcja dzieli część przez całość i mnoży przez sto, dając Ci dokładną wagę względną.</p>',
131
- },
132
- {
133
- type: 'card',
134
- icon: 'mdi:chart-line-variant',
135
- title: '3. Wzrost lub Spadek Procentowy',
136
- html: '<p><strong>Idealny dla finansów i analityki.</strong> O ile wzrósł czynsz w porównaniu z zeszłym rokiem? Jeśli wcześniej płaciłeś 800 zł, a teraz 840 zł, ta funkcja powie Ci, że nastąpił wzrost o 5%. Mierzy wzrost lub spadek między dwiema liczbami.</p>',
137
- },
138
- {
139
- type: 'card',
140
- icon: 'mdi:calculator',
141
- title: '4. Dodaj lub odejmij procent od wartości',
142
- html: '<p><strong>Super przydatny przy VAT.</strong> Jeśli masz cenę netto (np. 100 zł) i musisz dodać 23% VAT, ten kalkulator poda Ci bezpośrednio kwotę brutto 123 zł bez konieczności wykonywania operacji pośrednich. Analogicznie służy do naliczania bezpośredniego rabatu (np. odjęcie 20%).</p>',
143
- },
144
- {
145
- type: 'title',
146
- text: 'Powszechne mity na temat obliczania procentów',
147
- level: 3,
148
- },
149
- {
150
- type: 'paragraph',
151
- html: 'Często blokujemy się widząc duże procenty lub ułamki dziesiętne, ale istnieje kilka matematycznych "sztuczek", które mogą ułatwić życie. Najsłynniejszą z nich jest <strong>odwracalność procentów</strong>.',
152
- },
153
- {
154
- type: 'tip',
155
- title: 'Sztuczka z odwracalnością',
156
- html: '<p>Czy wiedziałeś, że X% z Y to dokładnie to samo, co Y% z X? Na przykład, jeśli ktoś poprosi Cię o obliczenie 18% z 50 w pamięci, może to brzmieć skomplikowanie. Ale jeśli to odwrócisz, to 50% z 18 jest bardzo proste: to 9! Dotyczy to absolutnie każdej liczby i jest niesamowitym ułatwieniem w codziennym życiu.</p>',
157
- },
158
- {
159
- type: 'title',
160
- text: 'Dlaczego mylimy się przy obliczaniu wzrostów',
161
- level: 3,
162
- },
163
- {
164
- type: 'paragraph',
165
- html: 'Jeden z najczęstszych błędów zdarza się w przypadku 3: wzrost lub spadek procentowy. Wyobraźmy sobie, że akcja na giełdzie kosztuje 100 zł, spada o 50%, a następnego dnia rośnie o 50%. Intuicja mówi nam, że wraca do wartości 100 zł, ale to błędne przekonanie.',
166
- },
167
- {
168
- type: 'paragraph',
169
- html: 'Jeśli spadnie o 50% ze 100 zł, jej nowa wartość to 50 zł. Jeśli z poziomu tych 50 zł wzrośnie o 50%, wzrost wynosi połowę z 50 (25 zł). Zatem cena końcowa wyniesie 75 zł. To klasyczny przykład na to, dlaczego wzrosty i spadki procentowe nie są asymetryczne i dlaczego dynamiczne kalkulatory, takie jak ten, zapobiegają poważnym błędom finansowym.',
170
- },
171
- {
172
- type: 'title',
173
- text: 'Zastosowanie profesjonalne i akademickie',
174
- level: 3,
175
- },
176
- {
177
- type: 'paragraph',
178
- html: 'Nasz interfejs jest wolny od rozpraszaczy i zaprojektowany do <strong>szybkiej pracy</strong>. Możesz mieć go w przypiętej karcie przeglądarki, sprawnie przełączać się między polami i, dzięki przyciskowi kopiowania obok wyniku, przenosić dokładne dane do Excela lub Google Sheets bez ryzyka błędów przy wpisywaniu.',
179
- },
180
- {
181
- type: 'list',
182
- items: [
183
- 'E-commerce i sklepy stacjonarne: szybkie obliczanie ceny sprzedaży poprzez stosowanie marż handlowych i doliczanie VAT.',
184
- 'Zarządzanie zasobami ludzkimi: ustalanie luki płacowej, potrąceń podatkowych i podwyżek wynagrodzeń w odniesieniu do wskaźnika inflacji.',
185
- 'Edukacja akademicka: wykładowcy wyrównujący oceny lub studenci kierunków ścisłych analizujący odchylenia w swoich eksperymentach.',
186
- 'Marketing cyfrowy: pomiar CTR (Click Through Rate), ROAS (Return on Ad Spend) lub współczynnika konwersji w eCommerce.',
187
- ],
188
- },
189
- ],
190
- ui: {
191
- labelTitle: 'Kalkulator Procentowy',
192
- labelCase1Title: 'Przypadek 1',
193
- labelCase1Question: 'Ile to jest X% z Y?',
194
- labelCase1Placeholder1: 'X',
195
- labelCase1Placeholder2: 'Y',
196
- labelCase1Formula: 'Wzór: (X / 100) × Y',
197
- labelCase2Title: 'Przypadek 2',
198
- labelCase2Question: 'Jakim procentem X jest Y?',
199
- labelCase2Placeholder1: 'X',
200
- labelCase2Placeholder2: 'Y',
201
- labelCase2Formula: 'Wzór: (X / Y) × 100',
202
- labelCase3Title: 'Przypadek 3',
203
- labelCase3Question: 'Różnica procentowa między dwiema wartościami',
204
- labelCase3Placeholder1: 'Wartość 1',
205
- labelCase3Placeholder2: 'Wartość 2',
206
- labelCase3Formula: 'Wzór: ((Wartość 2 - Wartość 1) / |Wartość 1|) × 100',
207
- labelCase4Title: 'Przypadek 4',
208
- labelCase4Question: 'Dodaj lub odejmij procent od wartości',
209
- labelCase4Placeholder1: 'Wartość',
210
- labelCase4Placeholder2: '%',
211
- labelCase4Formula: 'Wzór: Wartość ± (Wartość × (% / 100))',
212
- labelCase4AddLabel: 'Suma (Wartość + %)',
213
- labelCase4SubtractLabel: 'Różnica (Wartość - %)',
214
- labelResult: 'Wynik',
215
- labelDifference: 'Różnica',
216
- labelCopyTooltip: 'Kopiuj wynik',
217
- labelFormula: 'Wzór',
218
- percentSymbol: '%',
219
- },
220
- };
1
+ import { bibliography } from '../bibliography'
2
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
3
+ import type { ToolLocaleContent } from '../../../types';
4
+ import type { PercentageCalculatorUI } from '../ui';
5
+
6
+ const slug = 'kalkulator-procentowy';
7
+ const title = 'Kalkulator Procentowy 4 w 1: Rabaty, Podwyżki i Obniżki';
8
+ const description =
9
+ 'Łatwo obliczaj procenty online za darmo. 4 narzędzia w 1: obliczanie X% z Y, różnica procentowa, dodawanie lub odejmowanie VAT, rabaty i automatyczne napiwki.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: 'Jak działa kalkulator?',
14
+ answer:
15
+ 'Po prostu wpisz wartości w pola odpowiedniego przypadku użycia dla Twojego problemu, a nasz kalkulator przetworzy formułę bez konieczności naciskania jakiegokolwiek przycisku obliczania.',
16
+ },
17
+ {
18
+ question: 'Czy nadaje się do obliczania VAT lub podatków?',
19
+ answer:
20
+ 'Tak, blok 4 ("Dodaj lub odejmij procent") jest zaprojektowany właśnie dla takich przypadków, jak naliczenie 23% VAT do ceny netto lub obliczenie potrącenia zaliczki na podatek dochodowy.',
21
+ },
22
+ {
23
+ question: 'Czy obsługuje liczby dziesiętne i ujemne?',
24
+ answer:
25
+ 'Oczywiście. Możesz wpisywać liczby dziesiętne (używając kropki), a kalkulator zadziała również z wartościami ujemnymi, jeśli potrzebujesz przeanalizować bilanse księgowe ze stratą.',
26
+ },
27
+ {
28
+ question: 'Czy mogę kopiować wyniki?',
29
+ answer:
30
+ 'Tak, każdy blok posiada przycisk w polu wyniku, który natychmiast kopiuje liczbę do schowka Twojego urządzenia, aby móc ją wkleić do innej aplikacji lub dokumentu.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: 'Zidentyfikuj swój problem matematyczny',
37
+ text: 'Przeczytaj tytuły 4 bloków i wybierz ten, który odpowiada Twojemu zapytaniu (Np. Ile to jest 20% z 50? -> Blok 1).',
38
+ },
39
+ {
40
+ name: 'Wprowadź liczby',
41
+ text: 'Wypełnij pola "X" i "Y". Nie martw się o kolejność, opisy w każdym bloku poprowadzą Cię wizualnie.',
42
+ },
43
+ {
44
+ name: 'Skopiuj natychmiastowy wynik',
45
+ text: 'Wynik pojawi się w czasie rzeczywistym na dole w trakcie wpisywania. Kliknij ikonę kopiowania, jeśli chcesz go przenieść gdzie indziej.',
46
+ },
47
+ ];
48
+
49
+ const faqSchema: WithContext<FAQPage> = {
50
+ '@context': 'https://schema.org',
51
+ '@type': 'FAQPage',
52
+ mainEntity: faqData.map((item) => ({
53
+ '@type': 'Question',
54
+ name: item.question,
55
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
56
+ })),
57
+ };
58
+
59
+ const howToSchema: WithContext<HowTo> = {
60
+ '@context': 'https://schema.org',
61
+ '@type': 'HowTo',
62
+ name: title,
63
+ description,
64
+ step: howToData.map((step, i) => ({
65
+ '@type': 'HowToStep',
66
+ position: i + 1,
67
+ name: step.name,
68
+ text: step.text,
69
+ })),
70
+ };
71
+
72
+ const appSchema: WithContext<SoftwareApplication> = {
73
+ '@context': 'https://schema.org',
74
+ '@type': 'SoftwareApplication',
75
+ name: title,
76
+ description,
77
+ applicationCategory: 'FinanceApplication',
78
+ operatingSystem: 'All',
79
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'PLN' },
80
+ inLanguage: 'pl',
81
+ };
82
+
83
+ export const content: ToolLocaleContent<PercentageCalculatorUI> = {
84
+ slug,
85
+ title,
86
+ description,
87
+ faq: faqData,
88
+ bibliography,
89
+
90
+ howTo: howToData,
91
+ schemas: [faqSchema, howToSchema, appSchema],
92
+ seo: [
93
+ {
94
+ type: 'title',
95
+ text: 'Kalkulator Procentowy 4 w 1: Opanuj Szybkie Obliczenia',
96
+ level: 2,
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: 'Do czego służy wielofunkcyjny kalkulator procentowy?',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Obliczanie procentów to jedna z najczęstszych operacji matematycznych w naszym codziennym życiu. Od obliczania rabatu na wyprzedaży, przez ustalanie odpowiedniego napiwku w restauracji, aż po określanie marży zysku w biznesie czy odsetek od kredytu. Mimo że są to codzienne czynności, nie zawsze łatwo jest wykonać je w pamięci lub zapamiętać dokładny wzór.',
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Nasz kalkulator procentowy 4 w 1 grupuje najczęściej poszukiwane scenariusze. Nie musisz już szukać w Google "jak obliczyć 20 procent" czy "wzór na obliczanie procentu". Masz cztery kluczowe operacje w jednym miejscu, w interaktywnej formie i z natychmiastowymi wynikami.',
110
+ },
111
+ {
112
+ type: 'title',
113
+ text: 'Przegląd 4 najczęstszych przypadków użycia',
114
+ level: 3,
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: 'Aby ułatwić Ci życie, podzieliliśmy narzędzie na cztery wyraźne bloki wizualne, które rozwiązują realne problemy, z jakimi borykamy się na co dzień:',
119
+ },
120
+ {
121
+ type: 'card',
122
+ icon: 'mdi:percent',
123
+ title: '1. Ile to jest X% z Y?',
124
+ html: '<p><strong>Klasyczny przypadek.</strong> Przydatny do obliczania rabatów lub napiwków. Jeśli chcesz wiedzieć, ile to jest 15% z 120 zł, to narzędzie jest dla Ciebie. Formuła po prostu dzieli procent przez 100 i mnoży go przez całkowitą wartość.</p>',
125
+ },
126
+ {
127
+ type: 'card',
128
+ icon: 'mdi:division',
129
+ title: '2. Jakim procentem X jest Y?',
130
+ html: '<p><strong>Idealny do proporcji.</strong> Jeśli zdobyłeś 45 punktów na 60 w egzaminie, jaką ocenę masz w skali 100? Ta funkcja dzieli część przez całość i mnoży przez sto, dając Ci dokładną wagę względną.</p>',
131
+ },
132
+ {
133
+ type: 'card',
134
+ icon: 'mdi:chart-line-variant',
135
+ title: '3. Wzrost lub Spadek Procentowy',
136
+ html: '<p><strong>Idealny dla finansów i analityki.</strong> O ile wzrósł czynsz w porównaniu z zeszłym rokiem? Jeśli wcześniej płaciłeś 800 zł, a teraz 840 zł, ta funkcja powie Ci, że nastąpił wzrost o 5%. Mierzy wzrost lub spadek między dwiema liczbami.</p>',
137
+ },
138
+ {
139
+ type: 'card',
140
+ icon: 'mdi:calculator',
141
+ title: '4. Dodaj lub odejmij procent od wartości',
142
+ html: '<p><strong>Super przydatny przy VAT.</strong> Jeśli masz cenę netto (np. 100 zł) i musisz dodać 23% VAT, ten kalkulator poda Ci bezpośrednio kwotę brutto 123 zł bez konieczności wykonywania operacji pośrednich. Analogicznie służy do naliczania bezpośredniego rabatu (np. odjęcie 20%).</p>',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Powszechne mity na temat obliczania procentów',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Często blokujemy się widząc duże procenty lub ułamki dziesiętne, ale istnieje kilka matematycznych "sztuczek", które mogą ułatwić życie. Najsłynniejszą z nich jest <strong>odwracalność procentów</strong>.',
152
+ },
153
+ {
154
+ type: 'tip',
155
+ title: 'Sztuczka z odwracalnością',
156
+ html: '<p>Czy wiedziałeś, że X% z Y to dokładnie to samo, co Y% z X? Na przykład, jeśli ktoś poprosi Cię o obliczenie 18% z 50 w pamięci, może to brzmieć skomplikowanie. Ale jeśli to odwrócisz, to 50% z 18 jest bardzo proste: to 9! Dotyczy to absolutnie każdej liczby i jest niesamowitym ułatwieniem w codziennym życiu.</p>',
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Dlaczego mylimy się przy obliczaniu wzrostów',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'Jeden z najczęstszych błędów zdarza się w przypadku 3: wzrost lub spadek procentowy. Wyobraźmy sobie, że akcja na giełdzie kosztuje 100 zł, spada o 50%, a następnego dnia rośnie o 50%. Intuicja mówi nam, że wraca do wartości 100 zł, ale to błędne przekonanie.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: 'Jeśli spadnie o 50% ze 100 zł, jej nowa wartość to 50 zł. Jeśli z poziomu tych 50 zł wzrośnie o 50%, wzrost wynosi połowę z 50 (25 zł). Zatem cena końcowa wyniesie 75 zł. To klasyczny przykład na to, dlaczego wzrosty i spadki procentowe nie są asymetryczne i dlaczego dynamiczne kalkulatory, takie jak ten, zapobiegają poważnym błędom finansowym.',
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: 'Zastosowanie profesjonalne i akademickie',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'paragraph',
178
+ html: 'Nasz interfejs jest wolny od rozpraszaczy i zaprojektowany do <strong>szybkiej pracy</strong>. Możesz mieć go w przypiętej karcie przeglądarki, sprawnie przełączać się między polami i, dzięki przyciskowi kopiowania obok wyniku, przenosić dokładne dane do Excela lub Google Sheets bez ryzyka błędów przy wpisywaniu.',
179
+ },
180
+ {
181
+ type: 'list',
182
+ items: [
183
+ 'E-commerce i sklepy stacjonarne: szybkie obliczanie ceny sprzedaży poprzez stosowanie marż handlowych i doliczanie VAT.',
184
+ 'Zarządzanie zasobami ludzkimi: ustalanie luki płacowej, potrąceń podatkowych i podwyżek wynagrodzeń w odniesieniu do wskaźnika inflacji.',
185
+ 'Edukacja akademicka: wykładowcy wyrównujący oceny lub studenci kierunków ścisłych analizujący odchylenia w swoich eksperymentach.',
186
+ 'Marketing cyfrowy: pomiar CTR (Click Through Rate), ROAS (Return on Ad Spend) lub współczynnika konwersji w eCommerce.',
187
+ ],
188
+ },
189
+ ],
190
+ ui: {
191
+ labelTitle: 'Kalkulator Procentowy',
192
+ labelCase1Title: 'Przypadek 1',
193
+ labelCase1Question: 'Ile to jest X% z Y?',
194
+ labelCase1Placeholder1: 'X',
195
+ labelCase1Placeholder2: 'Y',
196
+ labelCase1Formula: 'Wzór: (X / 100) × Y',
197
+ labelCase2Title: 'Przypadek 2',
198
+ labelCase2Question: 'Jakim procentem X jest Y?',
199
+ labelCase2Placeholder1: 'X',
200
+ labelCase2Placeholder2: 'Y',
201
+ labelCase2Formula: 'Wzór: (X / Y) × 100',
202
+ labelCase3Title: 'Przypadek 3',
203
+ labelCase3Question: 'Różnica procentowa między dwiema wartościami',
204
+ labelCase3Placeholder1: 'Wartość 1',
205
+ labelCase3Placeholder2: 'Wartość 2',
206
+ labelCase3Formula: 'Wzór: ((Wartość 2 - Wartość 1) / |Wartość 1|) × 100',
207
+ labelCase4Title: 'Przypadek 4',
208
+ labelCase4Question: 'Dodaj lub odejmij procent od wartości',
209
+ labelCase4Placeholder1: 'Wartość',
210
+ labelCase4Placeholder2: '%',
211
+ labelCase4Formula: 'Wzór: Wartość ± (Wartość × (% / 100))',
212
+ labelCase4AddLabel: 'Suma (Wartość + %)',
213
+ labelCase4SubtractLabel: 'Różnica (Wartość - %)',
214
+ labelResult: 'Wynik',
215
+ labelDifference: 'Różnica',
216
+ labelCopyTooltip: 'Kopiuj wynik',
217
+ labelFormula: 'Wzór',
218
+ percentSymbol: '%',
219
+ },
220
+ };