@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.
Files changed (215) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/en.ts +1 -1
  3. package/src/category/i18n/es.ts +4 -4
  4. package/src/category/i18n/fr.ts +159 -159
  5. package/src/category/i18n/pl.ts +1 -1
  6. package/src/category/i18n/ru.ts +158 -158
  7. package/src/category/index.ts +39 -38
  8. package/src/category/seo.astro +1 -1
  9. package/src/components/PreviewNavSidebar.astro +1 -1
  10. package/src/components/PreviewToolbar.astro +1 -1
  11. package/src/data.ts +1 -1
  12. package/src/entries.ts +4 -1
  13. package/src/env.d.ts +1 -1
  14. package/src/index.ts +1 -0
  15. package/src/layouts/PreviewLayout.astro +113 -113
  16. package/src/pages/index.astro +1 -1
  17. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  18. package/src/tests/category_seo_quality.test.ts +76 -0
  19. package/src/tests/faq_count.test.ts +1 -1
  20. package/src/tests/locale_completeness.test.ts +2 -2
  21. package/src/tests/mocks/astro_mock.js +1 -1
  22. package/src/tests/no_h1_in_components.test.ts +1 -1
  23. package/src/tests/script_density.test.ts +94 -94
  24. package/src/tests/seo_length.test.ts +23 -23
  25. package/src/tests/seo_translation_completeness.test.ts +69 -0
  26. package/src/tests/seo_wellformed_export.test.ts +65 -0
  27. package/src/tests/tool_validation.test.ts +17 -17
  28. package/src/tool/compoundInterest/compound-interest-calculator.css +236 -236
  29. package/src/tool/compoundInterest/entry.ts +32 -32
  30. package/src/tool/compoundInterest/i18n/de.ts +195 -195
  31. package/src/tool/compoundInterest/i18n/fr.ts +195 -195
  32. package/src/tool/compoundInterest/i18n/it.ts +195 -195
  33. package/src/tool/compoundInterest/i18n/pl.ts +194 -194
  34. package/src/tool/compoundInterest/i18n/ru.ts +195 -195
  35. package/src/tool/compoundInterest/i18n/tr.ts +195 -195
  36. package/src/tool/compoundInterest/i18n/zh.ts +189 -189
  37. package/src/tool/compoundInterest/seo.astro +15 -15
  38. package/src/tool/courtFeeCalculator/i18n/it.ts +158 -158
  39. package/src/tool/courtFeeCalculator/i18n/ru.ts +158 -158
  40. package/src/tool/courtFeeCalculator/i18n/tr.ts +158 -158
  41. package/src/tool/courtFeeCalculator/seo.astro +15 -15
  42. package/src/tool/courtFeeCalculator/spanish-court-fees-calculator.css +197 -197
  43. package/src/tool/debtSnowball/bibliography.ts +12 -12
  44. package/src/tool/debtSnowball/i18n/de.ts +16 -16
  45. package/src/tool/debtSnowball/i18n/id.ts +16 -16
  46. package/src/tool/debtSnowball/i18n/it.ts +168 -168
  47. package/src/tool/debtSnowball/i18n/nl.ts +16 -16
  48. package/src/tool/debtSnowball/i18n/pl.ts +168 -168
  49. package/src/tool/debtSnowball/i18n/pt.ts +1 -1
  50. package/src/tool/debtSnowball/i18n/ru.ts +1 -1
  51. package/src/tool/debtSnowball/i18n/sv.ts +22 -29
  52. package/src/tool/debtSnowball/i18n/tr.ts +168 -168
  53. package/src/tool/debtSnowball/i18n/zh.ts +168 -168
  54. package/src/tool/debtSnowball/seo.astro +15 -15
  55. package/src/tool/dividendYield/bibliography.astro +14 -0
  56. package/src/tool/dividendYield/bibliography.ts +12 -0
  57. package/src/tool/dividendYield/component.astro +83 -0
  58. package/src/tool/dividendYield/controller.ts +85 -0
  59. package/src/tool/dividendYield/dividend-yield-calculator.css +352 -0
  60. package/src/tool/dividendYield/dom-views.ts +58 -0
  61. package/src/tool/dividendYield/entry.ts +29 -0
  62. package/src/tool/dividendYield/evaluator.ts +16 -0
  63. package/src/tool/dividendYield/i18n/de.ts +53 -0
  64. package/src/tool/dividendYield/i18n/en.ts +138 -0
  65. package/src/tool/dividendYield/i18n/es.ts +49 -0
  66. package/src/tool/dividendYield/i18n/fr.ts +49 -0
  67. package/src/tool/dividendYield/i18n/id.ts +49 -0
  68. package/src/tool/dividendYield/i18n/it.ts +49 -0
  69. package/src/tool/dividendYield/i18n/ja.ts +49 -0
  70. package/src/tool/dividendYield/i18n/ko.ts +25 -0
  71. package/src/tool/dividendYield/i18n/nl.ts +25 -0
  72. package/src/tool/dividendYield/i18n/pl.ts +25 -0
  73. package/src/tool/dividendYield/i18n/pt.ts +25 -0
  74. package/src/tool/dividendYield/i18n/ru.ts +25 -0
  75. package/src/tool/dividendYield/i18n/sv.ts +25 -0
  76. package/src/tool/dividendYield/i18n/tr.ts +25 -0
  77. package/src/tool/dividendYield/i18n/zh.ts +25 -0
  78. package/src/tool/dividendYield/index.ts +11 -0
  79. package/src/tool/dividendYield/logic.test.ts +73 -0
  80. package/src/tool/dividendYield/logic.ts +55 -0
  81. package/src/tool/dividendYield/seo.astro +14 -0
  82. package/src/tool/dividendYield/storage.ts +24 -0
  83. package/src/tool/dividendYield/ui.ts +33 -0
  84. package/src/tool/financialFreedom/financial-freedom-calculator.css +311 -311
  85. package/src/tool/financialFreedom/i18n/en.ts +182 -182
  86. package/src/tool/financialFreedom/i18n/fr.ts +128 -128
  87. package/src/tool/financialFreedom/i18n/id.ts +24 -7
  88. package/src/tool/financialFreedom/i18n/it.ts +24 -7
  89. package/src/tool/financialFreedom/i18n/ja.ts +1 -1
  90. package/src/tool/financialFreedom/i18n/nl.ts +24 -7
  91. package/src/tool/financialFreedom/i18n/pl.ts +24 -7
  92. package/src/tool/financialFreedom/i18n/pt.ts +24 -7
  93. package/src/tool/financialFreedom/i18n/ru.ts +128 -128
  94. package/src/tool/financialFreedom/i18n/sv.ts +1 -1
  95. package/src/tool/financialFreedom/i18n/tr.ts +2 -2
  96. package/src/tool/financialFreedom/i18n/zh.ts +128 -128
  97. package/src/tool/fireCalculator/i18n/it.ts +241 -241
  98. package/src/tool/fireCalculator/i18n/ru.ts +241 -241
  99. package/src/tool/fireCalculator/i18n/tr.ts +241 -241
  100. package/src/tool/fireCalculator/i18n/zh.ts +241 -241
  101. package/src/tool/fireCalculator/seo.astro +15 -15
  102. package/src/tool/ibanBicSwiftConverter/i18n/fr.ts +151 -151
  103. package/src/tool/ibanBicSwiftConverter/i18n/it.ts +118 -118
  104. package/src/tool/ibanBicSwiftConverter/i18n/ru.ts +118 -118
  105. package/src/tool/ibanBicSwiftConverter/i18n/tr.ts +118 -118
  106. package/src/tool/ibanBicSwiftConverter/iban-to-bic-swift-converter.css +366 -366
  107. package/src/tool/ibanBicSwiftConverter/seo.astro +15 -15
  108. package/src/tool/inflation/bibliography.ts +20 -20
  109. package/src/tool/inflation/entry.ts +32 -32
  110. package/src/tool/inflation/i18n/de.ts +284 -284
  111. package/src/tool/inflation/i18n/fr.ts +284 -284
  112. package/src/tool/inflation/i18n/it.ts +284 -284
  113. package/src/tool/inflation/i18n/nl.ts +284 -284
  114. package/src/tool/inflation/i18n/pl.ts +284 -284
  115. package/src/tool/inflation/i18n/pt.ts +284 -284
  116. package/src/tool/inflation/i18n/ru.ts +284 -284
  117. package/src/tool/inflation/i18n/sv.ts +284 -284
  118. package/src/tool/inflation/i18n/tr.ts +284 -284
  119. package/src/tool/inflation/i18n/zh.ts +284 -284
  120. package/src/tool/inflation/seo.astro +15 -15
  121. package/src/tool/lateInterest/bibliography.ts +16 -16
  122. package/src/tool/lateInterest/entry.ts +32 -32
  123. package/src/tool/lateInterest/i18n/de.ts +213 -213
  124. package/src/tool/lateInterest/i18n/es.ts +213 -213
  125. package/src/tool/lateInterest/i18n/it.ts +213 -213
  126. package/src/tool/lateInterest/i18n/nl.ts +213 -213
  127. package/src/tool/lateInterest/i18n/pl.ts +213 -213
  128. package/src/tool/lateInterest/i18n/pt.ts +213 -213
  129. package/src/tool/lateInterest/i18n/ru.ts +213 -213
  130. package/src/tool/lateInterest/i18n/sv.ts +213 -213
  131. package/src/tool/lateInterest/i18n/tr.ts +213 -213
  132. package/src/tool/lateInterest/i18n/zh.ts +213 -213
  133. package/src/tool/lateInterest/seo.astro +15 -15
  134. package/src/tool/legalInterestRate/i18n/it.ts +129 -129
  135. package/src/tool/legalInterestRate/i18n/ru.ts +129 -129
  136. package/src/tool/legalInterestRate/i18n/tr.ts +128 -121
  137. package/src/tool/legalInterestRate/i18n/zh.ts +11 -4
  138. package/src/tool/legalInterestRate/seo.astro +15 -15
  139. package/src/tool/lotteryOptimizer/i18n/it.ts +163 -163
  140. package/src/tool/lotteryOptimizer/i18n/pl.ts +163 -163
  141. package/src/tool/lotteryOptimizer/i18n/ru.ts +163 -163
  142. package/src/tool/lotteryOptimizer/i18n/tr.ts +163 -163
  143. package/src/tool/lotteryOptimizer/i18n/zh.ts +162 -155
  144. package/src/tool/lotteryOptimizer/seo.astro +15 -15
  145. package/src/tool/mortgage/bibliography.ts +20 -20
  146. package/src/tool/mortgage/entry.ts +32 -32
  147. package/src/tool/mortgage/i18n/de.ts +210 -210
  148. package/src/tool/mortgage/i18n/es.ts +210 -210
  149. package/src/tool/mortgage/i18n/fr.ts +210 -210
  150. package/src/tool/mortgage/i18n/id.ts +210 -210
  151. package/src/tool/mortgage/i18n/it.ts +210 -210
  152. package/src/tool/mortgage/i18n/nl.ts +210 -210
  153. package/src/tool/mortgage/i18n/pl.ts +210 -210
  154. package/src/tool/mortgage/i18n/ru.ts +210 -210
  155. package/src/tool/mortgage/i18n/tr.ts +210 -210
  156. package/src/tool/mortgage/i18n/zh.ts +210 -210
  157. package/src/tool/mortgage/mortgage-calculator.css +595 -595
  158. package/src/tool/mortgage/seo.astro +15 -15
  159. package/src/tool/percentageCalculator/bibliography.ts +16 -16
  160. package/src/tool/percentageCalculator/entry.ts +32 -32
  161. package/src/tool/percentageCalculator/i18n/de.ts +220 -220
  162. package/src/tool/percentageCalculator/i18n/en.ts +220 -220
  163. package/src/tool/percentageCalculator/i18n/es.ts +220 -220
  164. package/src/tool/percentageCalculator/i18n/fr.ts +220 -220
  165. package/src/tool/percentageCalculator/i18n/it.ts +220 -220
  166. package/src/tool/percentageCalculator/i18n/pl.ts +220 -220
  167. package/src/tool/percentageCalculator/i18n/ru.ts +220 -220
  168. package/src/tool/percentageCalculator/i18n/tr.ts +220 -220
  169. package/src/tool/percentageCalculator/i18n/zh.ts +220 -220
  170. package/src/tool/percentageCalculator/seo.astro +15 -15
  171. package/src/tool/profitability/i18n/de.ts +24 -7
  172. package/src/tool/profitability/i18n/fr.ts +121 -104
  173. package/src/tool/profitability/i18n/id.ts +2 -2
  174. package/src/tool/profitability/i18n/it.ts +24 -7
  175. package/src/tool/profitability/i18n/ja.ts +1 -1
  176. package/src/tool/profitability/i18n/nl.ts +24 -7
  177. package/src/tool/profitability/i18n/pl.ts +1 -1
  178. package/src/tool/profitability/i18n/pt.ts +24 -7
  179. package/src/tool/profitability/i18n/ru.ts +118 -118
  180. package/src/tool/profitability/i18n/sv.ts +1 -1
  181. package/src/tool/profitability/i18n/tr.ts +1 -1
  182. package/src/tool/profitability/i18n/zh.ts +118 -118
  183. package/src/tool/profitability/profitability-calculator.css +229 -229
  184. package/src/tool/rentIncreaseCalculator/i18n/it.ts +125 -125
  185. package/src/tool/rentIncreaseCalculator/i18n/tr.ts +125 -125
  186. package/src/tool/rentIncreaseCalculator/rent-increase-calculator.css +326 -326
  187. package/src/tool/rentIncreaseCalculator/seo.astro +15 -15
  188. package/src/tool/revolvingCardCalculator/i18n/de.ts +38 -20
  189. package/src/tool/revolvingCardCalculator/i18n/es.ts +19 -18
  190. package/src/tool/revolvingCardCalculator/i18n/fr.ts +32 -28
  191. package/src/tool/revolvingCardCalculator/i18n/id.ts +18 -18
  192. package/src/tool/revolvingCardCalculator/i18n/it.ts +18 -18
  193. package/src/tool/revolvingCardCalculator/i18n/ja.ts +2 -2
  194. package/src/tool/revolvingCardCalculator/i18n/ko.ts +2 -2
  195. package/src/tool/revolvingCardCalculator/i18n/nl.ts +22 -19
  196. package/src/tool/revolvingCardCalculator/i18n/pl.ts +2 -2
  197. package/src/tool/revolvingCardCalculator/i18n/pt.ts +2 -2
  198. package/src/tool/revolvingCardCalculator/i18n/ru.ts +2 -2
  199. package/src/tool/revolvingCardCalculator/i18n/sv.ts +2 -2
  200. package/src/tool/revolvingCardCalculator/i18n/tr.ts +2 -2
  201. package/src/tool/revolvingCardCalculator/i18n/zh.ts +6 -6
  202. package/src/tool/salaryEmployerCost/i18n/de.ts +10 -10
  203. package/src/tool/salaryEmployerCost/i18n/fr.ts +9 -9
  204. package/src/tool/salaryEmployerCost/i18n/id.ts +9 -9
  205. package/src/tool/salaryEmployerCost/i18n/it.ts +9 -9
  206. package/src/tool/salaryEmployerCost/i18n/ja.ts +1 -1
  207. package/src/tool/salaryEmployerCost/i18n/ko.ts +1 -1
  208. package/src/tool/salaryEmployerCost/i18n/nl.ts +2 -2
  209. package/src/tool/salaryEmployerCost/i18n/pl.ts +2 -2
  210. package/src/tool/salaryEmployerCost/i18n/pt.ts +2 -2
  211. package/src/tool/salaryEmployerCost/i18n/ru.ts +2 -2
  212. package/src/tool/salaryEmployerCost/i18n/sv.ts +2 -2
  213. package/src/tool/salaryEmployerCost/i18n/tr.ts +2 -2
  214. package/src/tool/salaryEmployerCost/i18n/zh.ts +2 -2
  215. 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 = 'yuzde-hesaplama';
7
- const title = '4\'ü 1 Arada Yüzde Hesaplama: İndirimler, Artışlar ve Azalışlar';
8
- const description =
9
- 'Yüzdeleri çevrimiçi ve ücretsiz olarak kolayca hesaplayın. Y\'nin %X\'ini bulma, yüzdelik fark, KDV ekleme veya çıkarma, indirimler ve otomatik bahşişler için 4 araç 1 arada.';
10
-
11
- const faqData = [
12
- {
13
- question: 'Hesaplayıcı nasıl çalışır?',
14
- answer:
15
- 'Değerleri sorununuzla ilgili kullanım durumunun kutularına yazmanız yeterlidir; hesaplayıcımız herhangi bir hesapla düğmesine basmanıza gerek kalmadan formülü işler.',
16
- },
17
- {
18
- question: 'KDV veya vergi hesaplamak için uygun mu?',
19
- answer:
20
- 'Evet, 4. blok ("Yüzde ekle veya çıkar") tam olarak bir taban fiyata %18 veya %20 KDV uygulamak veya stopaj hesaplamak gibi durumlar için tasarlanmıştır.',
21
- },
22
- {
23
- question: 'Ondalık ve negatif sayılarla çalışır mı?',
24
- answer:
25
- 'Kesinlikle. Ondalık sayıları (nokta kullanarak) girebilirsiniz; ayrıca zarar durumundaki muhasebe bakiyelerini analiz etmeniz gerekiyorsa negatif değerlerle de çalışacaktır.',
26
- },
27
- {
28
- question: 'Sonuçları kopyalayabilir miyim?',
29
- answer:
30
- 'Evet, her bloğun sonuç kutusunda, rakamı anında cihazınızın panosuna kopyalayan bir düğme bulunur, böylece başka bir uygulamaya veya belgeye yapıştırabilirsiniz.',
31
- },
32
- ];
33
-
34
- const howToData = [
35
- {
36
- name: 'Matematiksel Probleminizi Belirleyin',
37
- text: '4 bloğun başlıklarını okuyun ve neyi bilmek istediğinizle eşleşeni seçin (Örn: 50\'nin %20\'si kaçtır? -> Blok 1).',
38
- },
39
- {
40
- name: 'Rakamları Girin',
41
- text: '"X" ve "Y" alanlarını doldurun. Sıralama konusunda endişelenmeyin, her bloğun cümlesi sizi görsel olarak yönlendirir.',
42
- },
43
- {
44
- name: 'Anlık Sonucu Kopyalayın',
45
- text: 'Rakam, siz yazdıkça gerçek zamanlı olarak aşağıda görünecektir. Başka bir yere götürmek isterseniz kopyala simgesine basın.',
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: 'TRY' },
80
- inLanguage: 'tr',
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: '4\'ü 1 Arada Yüzde Hesaplama: Hızlı Hesaplamalarda Ustalaşın',
96
- level: 2,
97
- },
98
- {
99
- type: 'title',
100
- text: 'Çoklu yüzde hesaplayıcı ne işe yarar?',
101
- level: 3,
102
- },
103
- {
104
- type: 'paragraph',
105
- html: 'Yüzde hesaplamak, günlük hayatımızdaki en yaygın matematiksel işlemlerden biridir. İndirimli satışlarda indirimi hesaplamaktan, bir restoranda uygun bahşişi bilmeye; bir işletmedeki kâr marjını belirlemekten bir kredinin faizini bulmaya kadar. Günlük işlemler olmalarına rağmen, bunları zihinden yapmak veya tam formülü hatırlamak her zaman kolay değildir.',
106
- },
107
- {
108
- type: 'paragraph',
109
- html: '4\'ü 1 arada yüzde hesaplayıcımız en çok talep edilen senaryoları gruplandırır. Artık Google\'da "yüzde 20 nasıl hesaplanır" veya "yüzde hesaplama formülü" diye aramanıza gerek yok. Dört temel işlem tek bir yerde, etkileşimli ve anlık sonuçlarla elinizin altında.',
110
- },
111
- {
112
- type: 'title',
113
- text: 'En Yaygın 4 Kullanım Durumunun İncelenmesi',
114
- level: 3,
115
- },
116
- {
117
- type: 'paragraph',
118
- html: 'Hayatınızı kolaylaştırmak için aracı, her gün karşılaştığımız gerçek sorunları çözen dört açık görsel bloğa ayırdık:',
119
- },
120
- {
121
- type: 'card',
122
- icon: 'mdi:percent',
123
- title: '1. Y\'nin %X\'i kaçtır?',
124
- html: '<p><strong>Klasik durum.</strong> İndirim veya bahşiş hesaplamak için kullanışlıdır. 120 TL\'nin %15\'inin ne kadar olduğunu bilmek istiyorsanız bu araç size göredir. Temeldeki formül sadece yüzdeyi 100\'e böler ve toplam değerle çarpar.</p>',
125
- },
126
- {
127
- type: 'card',
128
- icon: 'mdi:division',
129
- title: '2. X, Y\'nin yüzde kaçıdır?',
130
- html: '<p><strong>Oranlar için idealdir.</strong> 60 puanlık bir sınavdan 45 puan aldıysanız, 100 üzerinden notunuz kaçtır? Bu işlev, parçayı bütüne böler ve yüzle çarparak size tam göreceli ağırlığı verir.</p>',
131
- },
132
- {
133
- type: 'card',
134
- icon: 'mdi:chart-line-variant',
135
- title: '3. Yüzdelik Artış veya Azalış',
136
- html: '<p><strong>Finans ve analitik için mükemmeldir.</strong> Kira geçen yıldan beri ne kadar arttı? Eskiden 8000 TL ödüyorken şimdi 8400 TL ödüyorsanız, bu işlev size %5\'lik bir artış yaşadığınızı söyleyecektir. İki rakam arasındaki büyümeyi veya küçülmeyi ölçer.</p>',
137
- },
138
- {
139
- type: 'card',
140
- icon: 'mdi:calculator',
141
- title: '4. Bir değere yüzde ekle veya çıkar',
142
- html: '<p><strong>KDV için süper kullanışlıdır.</strong> Bir taban fiyatınız varsa (örn. 100 TL) ve %20 KDV eklemeniz gerekiyorsa, bu hesaplayıcı ara işlemlerle uğraşmadan size doğrudan 120 TL sonucunu verecektir. Aynı şekilde, doğrudan bir indirim uygulamak için de kullanılır (örn. %20 çıkarmak).</p>',
143
- },
144
- {
145
- type: 'title',
146
- text: 'Yüzde hesaplama hakkında yaygın efsaneler',
147
- level: 3,
148
- },
149
- {
150
- type: 'paragraph',
151
- html: 'Büyük yüzdeler veya ondalık sayılar gördüğümüzde genellikle tıkanırız ama hayatınızı kolaylaştırabilecek bazı matematiksel "numaralar" vardır. Bunların en ünlüsü <strong>yüzdelerin tersine çevrilebilirliğidir</strong>.',
152
- },
153
- {
154
- type: 'tip',
155
- title: 'Tersine çevrilebilirlik numarası',
156
- html: '<p>Y\'nin %X\'inin, X\'in %Y\'sine tam olarak eşit olduğunu biliyor muydunuz? Örneğin, sizden zihinden 50\'nin %18\'ini hesaplamanız istenirse bu karmaşık gelebilir. Ama tersine çevirirseniz, 18\'in %50\'si çok kolaydır: bu 9\'dur! Bu, mutlak her sayı için geçerlidir ve günlük hayatta inanılmaz bir can kurtarıcıdır.</p>',
157
- },
158
- {
159
- type: 'title',
160
- text: 'Büyüme hesaplarken neden yanılıyoruz?',
161
- level: 3,
162
- },
163
- {
164
- type: 'paragraph',
165
- html: 'En yaygın hatalardan biri 3. vakada gerçekleşir: yüzdelik artış veya azalış. Bir hisse senedinin borsada 100 TL olduğunu, %50 düştüğünü ve ertesi gün %50 arttığını hayal edelim. Sezgilerimiz onun tekrar 100 TL değerine döneceğini söyler ama bu yanlıştır.',
166
- },
167
- {
168
- type: 'paragraph',
169
- html: '100 TL\'den %50 düşerse yeni değeri 50 TL olur. Bu 50 TL\'den %50 artarsa artış 50\'nin yarısı (25 TL) kadardır. Bu nedenle nihai fiyat 75 TL olacaktır. Bu, yüzdelik artış ve azalışların neden simetrik olmadığının ve bu gibi dinamik hesaplayıcıların ciddi finansal hataları neden önlediğinin klasik bir örneğidir.',
170
- },
171
- {
172
- type: 'title',
173
- text: 'Profesyonel ve akademik kullanım',
174
- level: 3,
175
- },
176
- {
177
- type: 'paragraph',
178
- html: 'Arayüzümüz dikkat dağıtıcı unsurlardan arındırılmıştır ve <strong>hızlı çalışmak</strong> için tasarlanmıştır. Tarayıcınızda sabitlenmiş bir sekmede tutabilir, alanlar arasında çevikçe geçiş yapabilir ve sonucun yanındaki kopyala düğmesi sayesinde tam veriyi yazım hatası riski olmadan Excel veya Google Sheets\'inize aktarabilirsiniz.',
179
- },
180
- {
181
- type: 'list',
182
- items: [
183
- 'Web ticaret ve fiziksel mağazalar: Ticari marjlar uygulayarak ve KDV ekleyerek satış fiyatının hızlı hesaplanması.',
184
- 'İnsan kaynakları yönetimi: Ücret farkının, vergi kesintilerinin ve TÜFE\'ye endeksli maaş artışlarının belirlenmesi.',
185
- 'Üniversite eğitimi: Notları dengeleyen profesörler veya deneylerinin sapmasını analiz eden bilim dalları öğrencileri.',
186
- 'Dijital pazarlama: E-ticarette CTR (Tıklanma Oranı), ROAS (Reklam Harcaması Getirisi) veya Dönüşüm Oranı ölçümü.',
187
- ],
188
- },
189
- ],
190
- ui: {
191
- labelTitle: 'Yüzde Hesaplama',
192
- labelCase1Title: 'Durum 1',
193
- labelCase1Question: 'Y\'nin %X\'i kaçtır?',
194
- labelCase1Placeholder1: 'X',
195
- labelCase1Placeholder2: 'Y',
196
- labelCase1Formula: 'Formül: (X / 100) × Y',
197
- labelCase2Title: 'Durum 2',
198
- labelCase2Question: 'X, Y\'nin yüzde kaçıdır?',
199
- labelCase2Placeholder1: 'X',
200
- labelCase2Placeholder2: 'Y',
201
- labelCase2Formula: 'Formül: (X / Y) × 100',
202
- labelCase3Title: 'Durum 3',
203
- labelCase3Question: 'İki değer arasındaki yüzdelik fark',
204
- labelCase3Placeholder1: 'Değer 1',
205
- labelCase3Placeholder2: 'Değer 2',
206
- labelCase3Formula: 'Formül: ((Değer 2 - Değer 1) / |Değer 1|) × 100',
207
- labelCase4Title: 'Durum 4',
208
- labelCase4Question: 'Bir değere yüzde ekle veya çıkar',
209
- labelCase4Placeholder1: 'Değer',
210
- labelCase4Placeholder2: '%',
211
- labelCase4Formula: 'Formül: Değer ± (Değer × (% / 100))',
212
- labelCase4AddLabel: 'Toplam (Değer + %)',
213
- labelCase4SubtractLabel: 'Fark (Değer - %)',
214
- labelResult: 'Sonuç',
215
- labelDifference: 'Fark',
216
- labelCopyTooltip: 'Sonucu kopyala',
217
- labelFormula: 'Formül',
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 = 'yuzde-hesaplama';
7
+ const title = '4\'ü 1 Arada Yüzde Hesaplama: İndirimler, Artışlar ve Azalışlar';
8
+ const description =
9
+ 'Yüzdeleri çevrimiçi ve ücretsiz olarak kolayca hesaplayın. Y\'nin %X\'ini bulma, yüzdelik fark, KDV ekleme veya çıkarma, indirimler ve otomatik bahşişler için 4 araç 1 arada.';
10
+
11
+ const faqData = [
12
+ {
13
+ question: 'Hesaplayıcı nasıl çalışır?',
14
+ answer:
15
+ 'Değerleri sorununuzla ilgili kullanım durumunun kutularına yazmanız yeterlidir; hesaplayıcımız herhangi bir hesapla düğmesine basmanıza gerek kalmadan formülü işler.',
16
+ },
17
+ {
18
+ question: 'KDV veya vergi hesaplamak için uygun mu?',
19
+ answer:
20
+ 'Evet, 4. blok ("Yüzde ekle veya çıkar") tam olarak bir taban fiyata %18 veya %20 KDV uygulamak veya stopaj hesaplamak gibi durumlar için tasarlanmıştır.',
21
+ },
22
+ {
23
+ question: 'Ondalık ve negatif sayılarla çalışır mı?',
24
+ answer:
25
+ 'Kesinlikle. Ondalık sayıları (nokta kullanarak) girebilirsiniz; ayrıca zarar durumundaki muhasebe bakiyelerini analiz etmeniz gerekiyorsa negatif değerlerle de çalışacaktır.',
26
+ },
27
+ {
28
+ question: 'Sonuçları kopyalayabilir miyim?',
29
+ answer:
30
+ 'Evet, her bloğun sonuç kutusunda, rakamı anında cihazınızın panosuna kopyalayan bir düğme bulunur, böylece başka bir uygulamaya veya belgeye yapıştırabilirsiniz.',
31
+ },
32
+ ];
33
+
34
+ const howToData = [
35
+ {
36
+ name: 'Matematiksel Probleminizi Belirleyin',
37
+ text: '4 bloğun başlıklarını okuyun ve neyi bilmek istediğinizle eşleşeni seçin (Örn: 50\'nin %20\'si kaçtır? -> Blok 1).',
38
+ },
39
+ {
40
+ name: 'Rakamları Girin',
41
+ text: '"X" ve "Y" alanlarını doldurun. Sıralama konusunda endişelenmeyin, her bloğun cümlesi sizi görsel olarak yönlendirir.',
42
+ },
43
+ {
44
+ name: 'Anlık Sonucu Kopyalayın',
45
+ text: 'Rakam, siz yazdıkça gerçek zamanlı olarak aşağıda görünecektir. Başka bir yere götürmek isterseniz kopyala simgesine basın.',
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: 'TRY' },
80
+ inLanguage: 'tr',
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: '4\'ü 1 Arada Yüzde Hesaplama: Hızlı Hesaplamalarda Ustalaşın',
96
+ level: 2,
97
+ },
98
+ {
99
+ type: 'title',
100
+ text: 'Çoklu yüzde hesaplayıcı ne işe yarar?',
101
+ level: 3,
102
+ },
103
+ {
104
+ type: 'paragraph',
105
+ html: 'Yüzde hesaplamak, günlük hayatımızdaki en yaygın matematiksel işlemlerden biridir. İndirimli satışlarda indirimi hesaplamaktan, bir restoranda uygun bahşişi bilmeye; bir işletmedeki kâr marjını belirlemekten bir kredinin faizini bulmaya kadar. Günlük işlemler olmalarına rağmen, bunları zihinden yapmak veya tam formülü hatırlamak her zaman kolay değildir.',
106
+ },
107
+ {
108
+ type: 'paragraph',
109
+ html: '4\'ü 1 arada yüzde hesaplayıcımız en çok talep edilen senaryoları gruplandırır. Artık Google\'da "yüzde 20 nasıl hesaplanır" veya "yüzde hesaplama formülü" diye aramanıza gerek yok. Dört temel işlem tek bir yerde, etkileşimli ve anlık sonuçlarla elinizin altında.',
110
+ },
111
+ {
112
+ type: 'title',
113
+ text: 'En Yaygın 4 Kullanım Durumunun İncelenmesi',
114
+ level: 3,
115
+ },
116
+ {
117
+ type: 'paragraph',
118
+ html: 'Hayatınızı kolaylaştırmak için aracı, her gün karşılaştığımız gerçek sorunları çözen dört açık görsel bloğa ayırdık:',
119
+ },
120
+ {
121
+ type: 'card',
122
+ icon: 'mdi:percent',
123
+ title: '1. Y\'nin %X\'i kaçtır?',
124
+ html: '<p><strong>Klasik durum.</strong> İndirim veya bahşiş hesaplamak için kullanışlıdır. 120 TL\'nin %15\'inin ne kadar olduğunu bilmek istiyorsanız bu araç size göredir. Temeldeki formül sadece yüzdeyi 100\'e böler ve toplam değerle çarpar.</p>',
125
+ },
126
+ {
127
+ type: 'card',
128
+ icon: 'mdi:division',
129
+ title: '2. X, Y\'nin yüzde kaçıdır?',
130
+ html: '<p><strong>Oranlar için idealdir.</strong> 60 puanlık bir sınavdan 45 puan aldıysanız, 100 üzerinden notunuz kaçtır? Bu işlev, parçayı bütüne böler ve yüzle çarparak size tam göreceli ağırlığı verir.</p>',
131
+ },
132
+ {
133
+ type: 'card',
134
+ icon: 'mdi:chart-line-variant',
135
+ title: '3. Yüzdelik Artış veya Azalış',
136
+ html: '<p><strong>Finans ve analitik için mükemmeldir.</strong> Kira geçen yıldan beri ne kadar arttı? Eskiden 8000 TL ödüyorken şimdi 8400 TL ödüyorsanız, bu işlev size %5\'lik bir artış yaşadığınızı söyleyecektir. İki rakam arasındaki büyümeyi veya küçülmeyi ölçer.</p>',
137
+ },
138
+ {
139
+ type: 'card',
140
+ icon: 'mdi:calculator',
141
+ title: '4. Bir değere yüzde ekle veya çıkar',
142
+ html: '<p><strong>KDV için süper kullanışlıdır.</strong> Bir taban fiyatınız varsa (örn. 100 TL) ve %20 KDV eklemeniz gerekiyorsa, bu hesaplayıcı ara işlemlerle uğraşmadan size doğrudan 120 TL sonucunu verecektir. Aynı şekilde, doğrudan bir indirim uygulamak için de kullanılır (örn. %20 çıkarmak).</p>',
143
+ },
144
+ {
145
+ type: 'title',
146
+ text: 'Yüzde hesaplama hakkında yaygın efsaneler',
147
+ level: 3,
148
+ },
149
+ {
150
+ type: 'paragraph',
151
+ html: 'Büyük yüzdeler veya ondalık sayılar gördüğümüzde genellikle tıkanırız ama hayatınızı kolaylaştırabilecek bazı matematiksel "numaralar" vardır. Bunların en ünlüsü <strong>yüzdelerin tersine çevrilebilirliğidir</strong>.',
152
+ },
153
+ {
154
+ type: 'tip',
155
+ title: 'Tersine çevrilebilirlik numarası',
156
+ html: '<p>Y\'nin %X\'inin, X\'in %Y\'sine tam olarak eşit olduğunu biliyor muydunuz? Örneğin, sizden zihinden 50\'nin %18\'ini hesaplamanız istenirse bu karmaşık gelebilir. Ama tersine çevirirseniz, 18\'in %50\'si çok kolaydır: bu 9\'dur! Bu, mutlak her sayı için geçerlidir ve günlük hayatta inanılmaz bir can kurtarıcıdır.</p>',
157
+ },
158
+ {
159
+ type: 'title',
160
+ text: 'Büyüme hesaplarken neden yanılıyoruz?',
161
+ level: 3,
162
+ },
163
+ {
164
+ type: 'paragraph',
165
+ html: 'En yaygın hatalardan biri 3. vakada gerçekleşir: yüzdelik artış veya azalış. Bir hisse senedinin borsada 100 TL olduğunu, %50 düştüğünü ve ertesi gün %50 arttığını hayal edelim. Sezgilerimiz onun tekrar 100 TL değerine döneceğini söyler ama bu yanlıştır.',
166
+ },
167
+ {
168
+ type: 'paragraph',
169
+ html: '100 TL\'den %50 düşerse yeni değeri 50 TL olur. Bu 50 TL\'den %50 artarsa artış 50\'nin yarısı (25 TL) kadardır. Bu nedenle nihai fiyat 75 TL olacaktır. Bu, yüzdelik artış ve azalışların neden simetrik olmadığının ve bu gibi dinamik hesaplayıcıların ciddi finansal hataları neden önlediğinin klasik bir örneğidir.',
170
+ },
171
+ {
172
+ type: 'title',
173
+ text: 'Profesyonel ve akademik kullanım',
174
+ level: 3,
175
+ },
176
+ {
177
+ type: 'paragraph',
178
+ html: 'Arayüzümüz dikkat dağıtıcı unsurlardan arındırılmıştır ve <strong>hızlı çalışmak</strong> için tasarlanmıştır. Tarayıcınızda sabitlenmiş bir sekmede tutabilir, alanlar arasında çevikçe geçiş yapabilir ve sonucun yanındaki kopyala düğmesi sayesinde tam veriyi yazım hatası riski olmadan Excel veya Google Sheets\'inize aktarabilirsiniz.',
179
+ },
180
+ {
181
+ type: 'list',
182
+ items: [
183
+ 'Web ticaret ve fiziksel mağazalar: Ticari marjlar uygulayarak ve KDV ekleyerek satış fiyatının hızlı hesaplanması.',
184
+ 'İnsan kaynakları yönetimi: Ücret farkının, vergi kesintilerinin ve TÜFE\'ye endeksli maaş artışlarının belirlenmesi.',
185
+ 'Üniversite eğitimi: Notları dengeleyen profesörler veya deneylerinin sapmasını analiz eden bilim dalları öğrencileri.',
186
+ 'Dijital pazarlama: E-ticarette CTR (Tıklanma Oranı), ROAS (Reklam Harcaması Getirisi) veya Dönüşüm Oranı ölçümü.',
187
+ ],
188
+ },
189
+ ],
190
+ ui: {
191
+ labelTitle: 'Yüzde Hesaplama',
192
+ labelCase1Title: 'Durum 1',
193
+ labelCase1Question: 'Y\'nin %X\'i kaçtır?',
194
+ labelCase1Placeholder1: 'X',
195
+ labelCase1Placeholder2: 'Y',
196
+ labelCase1Formula: 'Formül: (X / 100) × Y',
197
+ labelCase2Title: 'Durum 2',
198
+ labelCase2Question: 'X, Y\'nin yüzde kaçıdır?',
199
+ labelCase2Placeholder1: 'X',
200
+ labelCase2Placeholder2: 'Y',
201
+ labelCase2Formula: 'Formül: (X / Y) × 100',
202
+ labelCase3Title: 'Durum 3',
203
+ labelCase3Question: 'İki değer arasındaki yüzdelik fark',
204
+ labelCase3Placeholder1: 'Değer 1',
205
+ labelCase3Placeholder2: 'Değer 2',
206
+ labelCase3Formula: 'Formül: ((Değer 2 - Değer 1) / |Değer 1|) × 100',
207
+ labelCase4Title: 'Durum 4',
208
+ labelCase4Question: 'Bir değere yüzde ekle veya çıkar',
209
+ labelCase4Placeholder1: 'Değer',
210
+ labelCase4Placeholder2: '%',
211
+ labelCase4Formula: 'Formül: Değer ± (Değer × (% / 100))',
212
+ labelCase4AddLabel: 'Toplam (Değer + %)',
213
+ labelCase4SubtractLabel: 'Fark (Değer - %)',
214
+ labelResult: 'Sonuç',
215
+ labelDifference: 'Fark',
216
+ labelCopyTooltip: 'Sonucu kopyala',
217
+ labelFormula: 'Formül',
218
+ percentSymbol: '%',
219
+ },
220
+ };