@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
@@ -63,7 +63,7 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
63
63
  },
64
64
  {
65
65
  type: 'paragraph',
66
- html: '<strong>ROI</strong> visar den totala procentuella vinsten men ignorerar tiden. <strong>CAGR</strong> är bättre för långsiktig analys.',
66
+ html: '<strong>ROI</strong> visar den totala procentuella vinsten men ignorerar tiden. <strong>CAGR</strong> är bättre för långsiktig analys eftersom måttet omvandlar utvecklingen till en genomsnittlig årlig tillväxttakt och gör investeringar med olika löptid lättare att jämföra. Kontrollera att startvärde, slutvärde, period och avgifter bygger på samma antaganden.',
67
67
  },
68
68
 
69
69
  { type: 'paragraph', html: "Använd resultatet för planering och scenariejämförelser; det ersätter inte en officiell beräkning eller professionell rådgivning." },
@@ -70,7 +70,7 @@ export const content: ToolLocaleContent<ProfitabilityUI> = {
70
70
  { type: 'paragraph', html: "Kullanmadan önce sonucu hesaplayıcının gösterdiği varsayımlarla birlikte yorumlayın." },
71
71
  { type: 'paragraph', html: "Girdileri, birimleri, yuvarlamayı, tarihi ve yargı alanını kontrol edin; her biri tahmini değiştirebilir." },
72
72
  { type: 'paragraph', html: "Sonucu planlama ve senaryo karşılaştırması için kullanın; resmî hesabın veya uzman görüşünün yerine geçmez." },
73
- { type: 'paragraph', html: "Kullanmadan önce sonucu hesaplayıcının gösterdiği varsayımlarla birlikte yorumlayın." },],
73
+ { type: 'paragraph', html: "Kullanmadan önce sonucu hesaplayıcının gösterdiği varsayımlarla birlikte yorumlayın. CAGR teorik bir ortalamadır ve fiyat dalgalanmasını göstermez; yatırım dönemini, ücretleri, para girişlerini ve çekimleri kontrol edin. ROI toplam sonucu, CAGR ise farklı süreleri karşılaştırmayı kolaylaştırır." },],
74
74
  faq,
75
75
  bibliography: [
76
76
  {
@@ -1,118 +1,118 @@
1
- import type { ProfitabilityUI } from '../ui';
2
- import type { ToolLocaleContent } from '../../../types';
3
-
4
- export const ui: ProfitabilityUI = {
5
- labelInitialInvestment: '初始投资',
6
- labelFinalValue: '最终价值 / 当前余额',
7
- labelTimeSelection: '投资期限',
8
- labelYears: '年',
9
- labelMonths: '个月',
10
- labelDays: '天',
11
- labelROI: '投资回报率 (ROI)',
12
- labelCAGR: '年化增长率 (CAGR)',
13
- labelNetProfit: '净利润',
14
- labelLinearGrowth: '线性增长(估计)',
15
- labelExponentialGrowth: '复利增长 (CAGR)',
16
- labelPositiveResult: '盈利投资',
17
- labelNegativeResult: '亏损状态',
18
- labelCopyResult: '复制结果',
19
- labelCopied: '已复制!',
20
- };
21
-
22
- const slug = 'profitability-calculator-roi-cagr';
23
- const title = '投资盈利计算器:ROI & CAGR';
24
- const description = '精确分析您的投资绩效。计算 ROI 和 CAGR 以了解您的真实年化收益。';
25
-
26
- const faq = [
27
- {
28
- question: '多少 CAGR 才算好?',
29
- answer: '从历史来看,标普 500 指数的年化回报率约为 7-10%。',
30
- },
31
- {
32
- question: '为什么我的 CAGR 不同于总 ROI?',
33
- answer: 'ROI 是不考虑时间的总收益率。CAGR 是将回报"年化"后的结果。',
34
- },
35
-
36
- { question: "使用结果前应检查什么?", answer: "请检查输入、单位、假设和限制;结果仅供参考,不是正式决定。" },];
37
-
38
- const howTo = [
39
- {
40
- name: '输入初始资本',
41
- text: '输入您最初投资的金额。',
42
- },
43
- {
44
- name: '输入最终价值',
45
- text: '输入当前市场价值。',
46
- },
47
- {
48
- name: '设置投资期限',
49
- text: '指定您持有投资的时间。',
50
- },
51
- ];
52
-
53
- export const content: ToolLocaleContent<ProfitabilityUI> = {
54
- slug,
55
- title,
56
- description,
57
- ui,
58
- seo: [
59
- {
60
- type: 'title',
61
- text: 'ROI 与 CAGR:哪个指标更好?',
62
- level: 2,
63
- },
64
- {
65
- type: 'paragraph',
66
- html: '<strong>ROI</strong> 显示总收益百分比,但忽略了时间。<strong>CAGR</strong> 对于长期分析更具优势,因为它将回报"年化"。',
67
- },
68
-
69
- { type: 'paragraph', html: "结果可用于规划和比较方案,但不能替代官方计算或专业建议。" },
70
- { type: 'paragraph', html: "使用前请结合计算器显示的假设一起解读结果。" },
71
- { type: 'paragraph', html: "请检查输入值、单位、四舍五入方式、日期和司法辖区,因为每项都可能改变估算。" },
72
- { type: 'paragraph', html: "结果可用于规划和比较方案,但不能替代官方计算或专业建议。" },
73
- { type: 'paragraph', html: "使用前请结合计算器显示的假设一起解读结果。" },],
74
- faq,
75
- bibliography: [
76
- {
77
- name: 'ROI 定义 - Investopedia',
78
- url: 'https://www.investopedia.com/terms/r/returnoninvestment.asp',
79
- },
80
- ],
81
- howTo,
82
- schemas: [
83
- {
84
- '@context': 'https://schema.org',
85
- '@type': 'FinancialProduct',
86
- name: title,
87
- description,
88
- },
89
- {
90
- '@context': 'https://schema.org',
91
- '@type': 'FAQPage',
92
- mainEntity: faq.map((f) => ({
93
- '@type': 'Question',
94
- name: f.question,
95
- acceptedAnswer: { '@type': 'Answer', text: f.answer },
96
- })),
97
- },
98
- {
99
- '@context': 'https://schema.org',
100
- '@type': 'HowTo',
101
- name: title,
102
- step: howTo.map((h, i) => ({
103
- '@type': 'HowToStep',
104
- position: i + 1,
105
- name: h.name,
106
- text: h.text,
107
- })),
108
- },
109
- {
110
- '@context': 'https://schema.org',
111
- '@type': 'SoftwareApplication',
112
- name: title,
113
- applicationCategory: 'FinanceApplication',
114
- operatingSystem: 'All',
115
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
116
- },
117
- ],
118
- };
1
+ import type { ProfitabilityUI } from '../ui';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+
4
+ export const ui: ProfitabilityUI = {
5
+ labelInitialInvestment: '初始投资',
6
+ labelFinalValue: '最终价值 / 当前余额',
7
+ labelTimeSelection: '投资期限',
8
+ labelYears: '年',
9
+ labelMonths: '个月',
10
+ labelDays: '天',
11
+ labelROI: '投资回报率 (ROI)',
12
+ labelCAGR: '年化增长率 (CAGR)',
13
+ labelNetProfit: '净利润',
14
+ labelLinearGrowth: '线性增长(估计)',
15
+ labelExponentialGrowth: '复利增长 (CAGR)',
16
+ labelPositiveResult: '盈利投资',
17
+ labelNegativeResult: '亏损状态',
18
+ labelCopyResult: '复制结果',
19
+ labelCopied: '已复制!',
20
+ };
21
+
22
+ const slug = 'profitability-calculator-roi-cagr';
23
+ const title = '投资盈利计算器:ROI & CAGR';
24
+ const description = '精确分析您的投资绩效。计算 ROI 和 CAGR 以了解您的真实年化收益。';
25
+
26
+ const faq = [
27
+ {
28
+ question: '多少 CAGR 才算好?',
29
+ answer: '从历史来看,标普 500 指数的年化回报率约为 7-10%。',
30
+ },
31
+ {
32
+ question: '为什么我的 CAGR 不同于总 ROI?',
33
+ answer: 'ROI 是不考虑时间的总收益率。CAGR 是将回报"年化"后的结果。',
34
+ },
35
+
36
+ { question: "使用结果前应检查什么?", answer: "请检查输入、单位、假设和限制;结果仅供参考,不是正式决定。" },];
37
+
38
+ const howTo = [
39
+ {
40
+ name: '输入初始资本',
41
+ text: '输入您最初投资的金额。',
42
+ },
43
+ {
44
+ name: '输入最终价值',
45
+ text: '输入当前市场价值。',
46
+ },
47
+ {
48
+ name: '设置投资期限',
49
+ text: '指定您持有投资的时间。',
50
+ },
51
+ ];
52
+
53
+ export const content: ToolLocaleContent<ProfitabilityUI> = {
54
+ slug,
55
+ title,
56
+ description,
57
+ ui,
58
+ seo: [
59
+ {
60
+ type: 'title',
61
+ text: 'ROI 与 CAGR:哪个指标更好?',
62
+ level: 2,
63
+ },
64
+ {
65
+ type: 'paragraph',
66
+ html: '<strong>ROI</strong> 显示总收益百分比,但忽略了时间。<strong>CAGR</strong> 对于长期分析更具优势,因为它将回报"年化"。',
67
+ },
68
+
69
+ { type: 'paragraph', html: "结果可用于规划和比较方案,但不能替代官方计算或专业建议。比较不同投资时,请确保初始价值、最终价值、持有期限和费用采用相同口径,并确认增长率没有把一次性收益误当成年化回报。" },
70
+ { type: 'paragraph', html: "使用前请结合计算器显示的假设一起解读结果。ROI适合查看一次投资的总体回报,而CAGR更适合把不同持有期限换算到同一年度尺度;两者应结合现金流时间、费用和风险一起判断。" },
71
+ { type: 'paragraph', html: "请检查输入值、单位、四舍五入方式、日期和司法辖区,因为每项都可能改变估算。" },
72
+ { type: 'paragraph', html: "结果可用于规划和比较方案,但不能替代官方计算或专业建议。" },
73
+ { type: 'paragraph', html: "使用前请结合计算器显示的假设一起解读结果。" },],
74
+ faq,
75
+ bibliography: [
76
+ {
77
+ name: 'ROI 定义 - Investopedia',
78
+ url: 'https://www.investopedia.com/terms/r/returnoninvestment.asp',
79
+ },
80
+ ],
81
+ howTo,
82
+ schemas: [
83
+ {
84
+ '@context': 'https://schema.org',
85
+ '@type': 'FinancialProduct',
86
+ name: title,
87
+ description,
88
+ },
89
+ {
90
+ '@context': 'https://schema.org',
91
+ '@type': 'FAQPage',
92
+ mainEntity: faq.map((f) => ({
93
+ '@type': 'Question',
94
+ name: f.question,
95
+ acceptedAnswer: { '@type': 'Answer', text: f.answer },
96
+ })),
97
+ },
98
+ {
99
+ '@context': 'https://schema.org',
100
+ '@type': 'HowTo',
101
+ name: title,
102
+ step: howTo.map((h, i) => ({
103
+ '@type': 'HowToStep',
104
+ position: i + 1,
105
+ name: h.name,
106
+ text: h.text,
107
+ })),
108
+ },
109
+ {
110
+ '@context': 'https://schema.org',
111
+ '@type': 'SoftwareApplication',
112
+ name: title,
113
+ applicationCategory: 'FinanceApplication',
114
+ operatingSystem: 'All',
115
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'USD' },
116
+ },
117
+ ],
118
+ };