@jjlmoya/utils-hardware 1.3.0 → 1.6.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 (113) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +106 -0
  3. package/src/category/i18n/id.ts +106 -0
  4. package/src/category/i18n/it.ts +106 -0
  5. package/src/category/i18n/ja.ts +106 -0
  6. package/src/category/i18n/ko.ts +106 -0
  7. package/src/category/i18n/nl.ts +106 -0
  8. package/src/category/i18n/pl.ts +106 -0
  9. package/src/category/i18n/pt.ts +106 -0
  10. package/src/category/i18n/ru.ts +106 -0
  11. package/src/category/i18n/sv.ts +106 -0
  12. package/src/category/i18n/tr.ts +106 -0
  13. package/src/category/i18n/zh.ts +106 -0
  14. package/src/category/index.ts +13 -1
  15. package/src/tests/category_validation.test.ts +73 -0
  16. package/src/tests/faq_count.test.ts +1 -1
  17. package/src/tests/i18n_coverage.test.ts +36 -0
  18. package/src/tests/locale_completeness.test.ts +1 -1
  19. package/src/tests/slug_language_code_format.test.ts +23 -0
  20. package/src/tests/slug_uniqueness.test.ts +81 -0
  21. package/src/tests/title_quality.test.ts +1 -1
  22. package/src/tool/batteryHealthEstimator/i18n/de.ts +158 -0
  23. package/src/tool/batteryHealthEstimator/i18n/id.ts +158 -0
  24. package/src/tool/batteryHealthEstimator/i18n/it.ts +158 -0
  25. package/src/tool/batteryHealthEstimator/i18n/ja.ts +158 -0
  26. package/src/tool/batteryHealthEstimator/i18n/ko.ts +158 -0
  27. package/src/tool/batteryHealthEstimator/i18n/nl.ts +158 -0
  28. package/src/tool/batteryHealthEstimator/i18n/pl.ts +158 -0
  29. package/src/tool/batteryHealthEstimator/i18n/pt.ts +158 -0
  30. package/src/tool/batteryHealthEstimator/i18n/ru.ts +158 -0
  31. package/src/tool/batteryHealthEstimator/i18n/sv.ts +158 -0
  32. package/src/tool/batteryHealthEstimator/i18n/tr.ts +158 -0
  33. package/src/tool/batteryHealthEstimator/i18n/zh.ts +158 -0
  34. package/src/tool/batteryHealthEstimator/index.ts +15 -7
  35. package/src/tool/deadPixelTest/i18n/de.ts +218 -0
  36. package/src/tool/deadPixelTest/i18n/id.ts +218 -0
  37. package/src/tool/deadPixelTest/i18n/it.ts +218 -0
  38. package/src/tool/deadPixelTest/i18n/ja.ts +218 -0
  39. package/src/tool/deadPixelTest/i18n/ko.ts +218 -0
  40. package/src/tool/deadPixelTest/i18n/nl.ts +218 -0
  41. package/src/tool/deadPixelTest/i18n/pl.ts +218 -0
  42. package/src/tool/deadPixelTest/i18n/pt.ts +218 -0
  43. package/src/tool/deadPixelTest/i18n/ru.ts +218 -0
  44. package/src/tool/deadPixelTest/i18n/sv.ts +218 -0
  45. package/src/tool/deadPixelTest/i18n/tr.ts +218 -0
  46. package/src/tool/deadPixelTest/i18n/zh.ts +217 -0
  47. package/src/tool/deadPixelTest/index.ts +15 -7
  48. package/src/tool/gamepadTest/i18n/de.ts +186 -0
  49. package/src/tool/gamepadTest/i18n/id.ts +186 -0
  50. package/src/tool/gamepadTest/i18n/it.ts +186 -0
  51. package/src/tool/gamepadTest/i18n/ja.ts +186 -0
  52. package/src/tool/gamepadTest/i18n/ko.ts +186 -0
  53. package/src/tool/gamepadTest/i18n/nl.ts +186 -0
  54. package/src/tool/gamepadTest/i18n/pl.ts +186 -0
  55. package/src/tool/gamepadTest/i18n/pt.ts +186 -0
  56. package/src/tool/gamepadTest/i18n/ru.ts +186 -0
  57. package/src/tool/gamepadTest/i18n/sv.ts +186 -0
  58. package/src/tool/gamepadTest/i18n/tr.ts +186 -0
  59. package/src/tool/gamepadTest/i18n/zh.ts +186 -0
  60. package/src/tool/gamepadTest/index.ts +15 -7
  61. package/src/tool/gamepadVibrationTester/i18n/de.ts +155 -0
  62. package/src/tool/gamepadVibrationTester/i18n/id.ts +155 -0
  63. package/src/tool/gamepadVibrationTester/i18n/it.ts +155 -0
  64. package/src/tool/gamepadVibrationTester/i18n/ja.ts +155 -0
  65. package/src/tool/gamepadVibrationTester/i18n/ko.ts +155 -0
  66. package/src/tool/gamepadVibrationTester/i18n/nl.ts +155 -0
  67. package/src/tool/gamepadVibrationTester/i18n/pl.ts +155 -0
  68. package/src/tool/gamepadVibrationTester/i18n/pt.ts +155 -0
  69. package/src/tool/gamepadVibrationTester/i18n/ru.ts +155 -0
  70. package/src/tool/gamepadVibrationTester/i18n/sv.ts +155 -0
  71. package/src/tool/gamepadVibrationTester/i18n/tr.ts +155 -0
  72. package/src/tool/gamepadVibrationTester/i18n/zh.ts +155 -0
  73. package/src/tool/gamepadVibrationTester/index.ts +15 -7
  74. package/src/tool/keyboardTest/i18n/de.ts +146 -0
  75. package/src/tool/keyboardTest/i18n/id.ts +146 -0
  76. package/src/tool/keyboardTest/i18n/it.ts +146 -0
  77. package/src/tool/keyboardTest/i18n/ja.ts +146 -0
  78. package/src/tool/keyboardTest/i18n/ko.ts +146 -0
  79. package/src/tool/keyboardTest/i18n/nl.ts +146 -0
  80. package/src/tool/keyboardTest/i18n/pl.ts +146 -0
  81. package/src/tool/keyboardTest/i18n/pt.ts +146 -0
  82. package/src/tool/keyboardTest/i18n/ru.ts +146 -0
  83. package/src/tool/keyboardTest/i18n/sv.ts +146 -0
  84. package/src/tool/keyboardTest/i18n/tr.ts +146 -0
  85. package/src/tool/keyboardTest/i18n/zh.ts +146 -0
  86. package/src/tool/keyboardTest/index.ts +15 -7
  87. package/src/tool/mousePollingTest/i18n/de.ts +135 -0
  88. package/src/tool/mousePollingTest/i18n/id.ts +135 -0
  89. package/src/tool/mousePollingTest/i18n/it.ts +135 -0
  90. package/src/tool/mousePollingTest/i18n/ja.ts +135 -0
  91. package/src/tool/mousePollingTest/i18n/ko.ts +135 -0
  92. package/src/tool/mousePollingTest/i18n/nl.ts +135 -0
  93. package/src/tool/mousePollingTest/i18n/pl.ts +135 -0
  94. package/src/tool/mousePollingTest/i18n/pt.ts +135 -0
  95. package/src/tool/mousePollingTest/i18n/ru.ts +135 -0
  96. package/src/tool/mousePollingTest/i18n/sv.ts +135 -0
  97. package/src/tool/mousePollingTest/i18n/tr.ts +135 -0
  98. package/src/tool/mousePollingTest/i18n/zh.ts +135 -0
  99. package/src/tool/mousePollingTest/index.ts +15 -7
  100. package/src/tool/toneGenerator/i18n/de.ts +146 -0
  101. package/src/tool/toneGenerator/i18n/id.ts +146 -0
  102. package/src/tool/toneGenerator/i18n/it.ts +146 -0
  103. package/src/tool/toneGenerator/i18n/ja.ts +146 -0
  104. package/src/tool/toneGenerator/i18n/ko.ts +146 -0
  105. package/src/tool/toneGenerator/i18n/nl.ts +146 -0
  106. package/src/tool/toneGenerator/i18n/pl.ts +146 -0
  107. package/src/tool/toneGenerator/i18n/pt.ts +146 -0
  108. package/src/tool/toneGenerator/i18n/ru.ts +146 -0
  109. package/src/tool/toneGenerator/i18n/sv.ts +146 -0
  110. package/src/tool/toneGenerator/i18n/tr.ts +146 -0
  111. package/src/tool/toneGenerator/i18n/zh.ts +146 -0
  112. package/src/tool/toneGenerator/index.ts +15 -7
  113. package/src/types.ts +1 -1
@@ -0,0 +1,158 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { EstimadorSaludBateriaUI } from '../ui';
4
+
5
+ const slug = 'litiumbatteri-halsokalkylator';
6
+ const title = 'Kalkylator för Litiumbatteriers Hälsa';
7
+ const description =
8
+ 'Beräkna hälsotillståndet (SoH) för ditt litiumbatteri baserat på cykler, spänning och temperatur. Vetenskaplig guide för att maximera energins livslängd.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Vad är kemisk nedbrytning av batterier?',
13
+ answer:
14
+ 'Vid varje laddnings- och urladdningscykel drabbas litiumceller av mikrosprickor och ansamling av kemiska sediment (S.E.I.) som minskar deras energilagringskapacitet. Det är en oundviklig process men en som kan bromsas med goda vanor.',
15
+ },
16
+ {
17
+ question: 'Varför rekommenderas det att ladda upp till 80 %?',
18
+ answer:
19
+ 'Litiumbatterier drabbas av mer stress vid extrema spänningar (0 % och 100 %). Genom att hålla laddningen mellan 20 % och 80 % kan man tredubbla cellens livslängd genom att minska värme och internt tryck.',
20
+ },
21
+ {
22
+ question: 'Hur påverkar värme batteriets livslängd?',
23
+ answer:
24
+ 'Värme är fiende nummer ett. För varje ökning med 10 grader över den optimala omgivningstemperaturen (25 grader), fördubblas ungefär takten för den kemiska nedbrytningen.',
25
+ },
26
+ {
27
+ question: 'Vad är en full laddningscykel?',
28
+ answer:
29
+ 'En cykel är användningen av 100 % av batteriets kapacitet, men det behöver inte vara allt på en gång. Om du använder 50 % idag, laddar det och använder 50 % imorgon har du slutfört 1 full cykel.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Identifiera den ursprungliga kapaciteten',
36
+ text: 'Titta på förpackningen till din enhet eller på tillverkarens webbplats efter det mAh-värde ditt batteri hade som nytt.',
37
+ },
38
+ {
39
+ name: 'Kontrollera aktuella cykler',
40
+ text: 'Många system (som iOS eller Android 14) låter dig se hur många laddningscykler ditt batteri har samlat på sig.',
41
+ },
42
+ {
43
+ name: 'Ange tekniska data',
44
+ text: 'Justera aktuell spänning, cykler och temperatur så att vår beräkningsmodell kan uppskatta SoH-värdet.',
45
+ },
46
+ {
47
+ name: 'Analysera diagnosen',
48
+ text: 'Kontrollera hälsoprocenten. Om du ligger under 80 % kan du börja märka prestandaförlust eller oväntade avstängningar.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'sv',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<EstimadorSaludBateriaUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Vanliga Frågor',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referenser',
93
+ bibliography: [
94
+ {
95
+ name: 'Journal of Power Sources',
96
+ url: 'https://www.sciencedirect.com/journal/journal-of-power-sources',
97
+ },
98
+ {
99
+ name: 'IEEE Xplore — Lithium-Ion Battery Life Prediction',
100
+ url: 'https://ieeexplore.ieee.org/abstract/document/11090151',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: 'Tidens kemi: varför litiumbatterier dör', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Ett litiumjonbatteri är inte en statisk energibox utan ett dynamiskt kemiskt ekosystem i ständig nedbrytning sedan tillverkningsögonblicket. Varje laddnings- och urladdningscykel, varje temperaturvariation och varje minut vid extrema spänningar bidrar till biprodukter som hindrar jonflödet.',
110
+ },
111
+ { type: 'title', text: 'Huvudsakliga nedbrytningsmekanismer', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: '<strong>SEI-skikt:</strong> det fasta elektrolytgränssnittet växer över tid, förbrukar aktivt litium och ökar det interna motståndet. <strong>Elektrolytoxidation:</strong> spänningar över 4,1 V påskyndar oxidationen och kan få batteriet att svälla. <strong>Lithium Plating:</strong> laddning vid låga temperaturer avsätter litium i metallisk form, vilket skapar dendriter som kan punktera separatorn.',
115
+ },
116
+ { type: 'title', text: '100 %-myten: varför laddning över natten är ett misstag', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'För en litiumjon är 100 % laddning (4,2 V) ett tillstånd av hög stress. Forskning visar att livslängden i cykler fördubblas eller tredubblas när man håller enheten mellan <strong>20 % och 80 %</strong>. Dessutom fördubblas ungefär takten på den kemiska nedbrytningen för varje 10°C över 25°C.',
120
+ },
121
+ { type: 'title', text: 'Protokoll för energiöverlevnad', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Ladda aldrig ett batteri under 0°C: litium avsätts på anoden och orsakar permanent skada. Snabbladdning genererar lokal värme och mekanisk stress; använd det endast när det är absolut nödvändigt. För långtidsförvaring, förvara batteriet vid 50 % på en sval plats.',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: 'Li-Ion Batteri',
129
+ title: 'Batterihälsokalkylator',
130
+ description: 'Teknisk nedbrytningsdiagnos för litiumjonceller.',
131
+ paramsTitle: 'Cellparametrar',
132
+ voltageLabel: 'Aktuell Spänning',
133
+ cyclesLabel: 'Laddningscykler',
134
+ tempLabel: 'Temperatur',
135
+ voltageHint: 'Nominellt intervall: 3,0 V (tomt) till 4,2 V (fullt).',
136
+ labelUsefulLife: 'Livslängd',
137
+ yearsPrefix: 'Uppsk.',
138
+ yearsSuffix: 'år',
139
+ metricThermalStress: 'Termisk Stress',
140
+ metricVoltageStress: 'Spänningsstress',
141
+ metricLithiumPlating: 'Litiumplätering',
142
+ statusExcelente: 'Utmärkt Status',
143
+ statusBueno: 'God Status',
144
+ statusRegular: 'Hyfsad Status',
145
+ statusCritico: 'Kritisk Status',
146
+ indicatorTempNormal: 'Normal',
147
+ indicatorTempCritical: 'Kritisk',
148
+ indicatorVoltageHigh: 'Hög',
149
+ indicatorVoltageLow: 'Låg',
150
+ indicatorPlatingRisk: 'Hög Risk',
151
+ indicatorPlatingOk: 'Ingen Risk',
152
+ recTemp: 'Sänk omgivningstemperaturen eller förbättra ventilationen för att undvika elektrolytoxidation.',
153
+ recVoltageHigh: 'Undvik att hålla batteriet vid 100 % laddning (4,2 V) under längre perioder.',
154
+ recVoltageLow: 'Undvik djupa urladdningar; cykler mellan 20 % och 80 % fördubblar batteriets livslängd.',
155
+ recSohLow: 'Kapaciteten har sjunkit under den optimala nivån. Överväg ett byte om batteritiden är otillräcklig.',
156
+ recDefault: 'Behåll dina nuvarande vanor — ditt batteri är i ett idealiskt driftintervall.',
157
+ },
158
+ };
@@ -0,0 +1,158 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { EstimadorSaludBateriaUI } from '../ui';
4
+
5
+ const slug = 'lityum-pil-sagligi-hesaplayici';
6
+ const title = 'Lityum Pil Sağlığı Hesaplayıcı';
7
+ const description =
8
+ 'Döngü sayısı, voltaj ve sıcaklığa göre lityum pilinizin Sağlık Durumunu (SoH) hesaplayın. Enerji ömrünü maksimize etmek için bilimsel rehber.';
9
+
10
+ const faqData = [
11
+ {
12
+ question: 'Pil kimyasal bozulması nedir?',
13
+ answer:
14
+ 'Her şarj ve deşarj döngüsünde, lityum hücreleri enerji depolama kapasitelerini azaltan mikro çatlaklar ve kimyasal tortu birikimi (S.E.I.) yaşarlar. Bu kaçınılmaz bir süreçtir ancak iyi alışkanlıklarla yavaşlatılabilir.',
15
+ },
16
+ {
17
+ question: 'Neden %80\'e kadar şarj edilmesi önerilir?',
18
+ answer:
19
+ 'Lityum piller ekstrem voltajlarda (%0 ve %100) daha fazla strese maruz kalırlar. Şarjı %20 ile %80 arasında tutmak, ısıyı ve iç basıncı azaltarak hücre ömrünü üç katına çıkarabilir.',
20
+ },
21
+ {
22
+ question: 'Isı pil ömrünü nasıl etkiler?',
23
+ answer:
24
+ 'Isı, bir numaralı düşmandır. Optimal ortam sıcaklığının (25 derece) üzerindeki her 10 derecelik artış için, kimyasal bozulma hızı kabaca iki katına çıkar.',
25
+ },
26
+ {
27
+ question: 'Tam bir şarj döngüsü nedir?',
28
+ answer:
29
+ 'Bir döngü, pil kapasitesinin %100\'ünün kullanılmasıdır ancak bunun bir kerede olması gerekmez. Bugün %50 kullanır, şarj eder ve yarın %50 kullanırsanız, 1 tam döngüyü tamamlamış olursunuz.',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: 'Orijinal kapasiteyi belirleyin',
36
+ text: 'Cihazınızın kutusuna veya üreticinin web sitesine bakarak pilinizin yeniyken sahip olduğu mAh değerini bulun.',
37
+ },
38
+ {
39
+ name: 'Mevcut döngü sayısını kontrol edin',
40
+ text: 'Birçok sistem (iOS veya Android 14 gibi), pilinizin kaç şarj döngüsü biriktirdiğini görmenize olanak tanır.',
41
+ },
42
+ {
43
+ name: 'Teknik verileri girin',
44
+ text: 'Hesaplama motorumuzun SoH değerini tahmin edebilmesi için mevcut voltaj, döngü sayısı ve sıcaklığı ayarlayın.',
45
+ },
46
+ {
47
+ name: 'Teşhisi analiz edin',
48
+ text: 'Sağlık yüzdesini kontrol edin. %80\'in altındaysanız, performans düşüşleri veya beklenmedik kapanmalar fark etmeye başlayabilirsiniz.',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'tr',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<EstimadorSaludBateriaUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: 'Sıkça Sorulan Sorular',
91
+ faq: faqData,
92
+ bibliographyTitle: 'Referanslar',
93
+ bibliography: [
94
+ {
95
+ name: 'Journal of Power Sources',
96
+ url: 'https://www.sciencedirect.com/journal/journal-of-power-sources',
97
+ },
98
+ {
99
+ name: 'IEEE Xplore — Lithium-Ion Battery Life Prediction',
100
+ url: 'https://ieeexplore.ieee.org/abstract/document/11090151',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: 'Zamanın kimyası: lityum piller neden ölür', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: 'Bir lityum-iyon pil statik bir enerji kutusu değil, üretildiği andan itibaren sürekli bozulma halinde olan dinamik bir kimyasal ekosistemdir. Her şarj ve deşarj döngüsü, her sıcaklık değişimi ve ekstrem voltajlardaki her dakika, iyon akışını engelleyen yan ürünlere katkıda bulunur.',
110
+ },
111
+ { type: 'title', text: 'Temel bozulma mekanizmaları', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: '<strong>SEI katmanı:</strong> katı elektrolit arayüzü zamanla büyür, aktif lityumu tüketir ve iç direnci artırır. <strong>Elektrolit oksidasyonu:</strong> 4.1V üzerindeki voltajlar oksidasyonu hızlandırır ve pilin şişmesine neden olabilir. <strong>Lityum Kaplama:</strong> düşük sıcaklıklarda şarj etmek, lityumu metalik formda biriktirerek separatörü delebilecek dendritler oluşturur.',
115
+ },
116
+ { type: 'title', text: '%100 miti: gece boyu şarj etmek neden bir hatadır', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: 'Bir lityum iyonu için %100 şarjda (4.2V) olmak yüksek stresli bir durumdur. Araştırmalar, cihazı <strong>%20 ile %80</strong> arasında tutmanın döngü ömrünü ikiye veya üçe katladığını göstermektedir. Ayrıca, 25°C üzerindeki her 10°C için kimyasal bozulma hızı kabaca iki katına çıkar.',
120
+ },
121
+ { type: 'title', text: 'Enerji hayatta kalma protokolü', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: 'Bir pili asla 0°C\'nin altında şarj etmeyin: lityum anot üzerinde birikerek kalıcı hasara neden olur. Hızlı şarj, lokalize ısı ve mekanik stres oluşturur; sadece kesinlikle gerekli olduğunda kullanın. Uzun süreli depolama için pili serin bir yerde %50 dolulukta tutun.',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: 'Li-Ion Pil',
129
+ title: 'Pil Sağlığı Hesaplayıcı',
130
+ description: 'Lityum-İyon hücreleri için teknik bozulma teşhisi.',
131
+ paramsTitle: 'Hücre Parametreleri',
132
+ voltageLabel: 'Mevcut Voltaj',
133
+ cyclesLabel: 'Şarj Döngüleri',
134
+ tempLabel: 'Sıcaklık',
135
+ voltageHint: 'Nominal aralık: 3.0V (boş) ile 4.2V (dolu).',
136
+ labelUsefulLife: 'Kullanım Ömrü',
137
+ yearsPrefix: 'Tah.',
138
+ yearsSuffix: 'yıl',
139
+ metricThermalStress: 'Termal Stres',
140
+ metricVoltageStress: 'Voltaj Stresi',
141
+ metricLithiumPlating: 'Lityum Kaplama',
142
+ statusExcelente: 'Mükemmel Durum',
143
+ statusBueno: 'İyi Durum',
144
+ statusRegular: 'Orta Durum',
145
+ statusCritico: 'Kritik Durum',
146
+ indicatorTempNormal: 'Normal',
147
+ indicatorTempCritical: 'Kritik',
148
+ indicatorVoltageHigh: 'Yüksek',
149
+ indicatorVoltageLow: 'Düşük',
150
+ indicatorPlatingRisk: 'Yüksek Risk',
151
+ indicatorPlatingOk: 'Risk Yok',
152
+ recTemp: 'Elektrolit oksidasyonunu önlemek için ortam sıcaklığını düşürün veya havalandırmayı iyileştirin.',
153
+ recVoltageHigh: 'Pili uzun süre %100 şarjda (4.2V) tutmaktan kaçının.',
154
+ recVoltageLow: 'Derin deşarjlardan kaçının; %20 ile %80 arasındaki döngüler pil ömrünü iki katına çıkarır.',
155
+ recSohLow: 'Kapasite optimal standardın altına düştü. Otonomi yetersizse değişim yapmayı düşünün.',
156
+ recDefault: 'Mevcut alışkanlıklarınızı koruyun — piliniz ideal çalışma aralığında.',
157
+ },
158
+ };
@@ -0,0 +1,158 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { EstimadorSaludBateriaUI } from '../ui';
4
+
5
+ const slug = 'lithium-battery-health-calculator';
6
+ const title = '锂电池寿命健康度在线计算器';
7
+ const description =
8
+ '根据循环次数、电压和温度计算锂电池的健康状态 (SoH)。提供最大化能源寿命的科学指南。';
9
+
10
+ const faqData = [
11
+ {
12
+ question: '什么是电池的化学衰减?',
13
+ answer:
14
+ '在每次充放电循环中,锂电芯都会产生微小的裂纹和化学沉积物 (S.E.I.) 的积累,从而降低其储能能力。这是一个不可逆的过程,但可以通过良好的使用习惯来减缓。',
15
+ },
16
+ {
17
+ question: '为什么建议只充到 80%?',
18
+ answer:
19
+ '锂电池在极端电压(0% 和 100%)下会承受更大的压力。将电量保持在 20% 到 80% 之间,可以通过减少发热和内部压力,使电芯寿命延长三倍。',
20
+ },
21
+ {
22
+ question: '热量如何影响电池寿命?',
23
+ answer:
24
+ '热量是头号敌人。环境温度每超过最佳温度(25 度)10 度,化学衰减的速度大约会翻倍。',
25
+ },
26
+ {
27
+ question: '什么是完整的充电循环?',
28
+ answer:
29
+ '一个循环是指使用了 100% 的电池容量,但不一定是一次性用完。如果你今天用了 50%,充满电后明天再用 50%,就完成了一个完整的循环。',
30
+ },
31
+ ];
32
+
33
+ const howToData = [
34
+ {
35
+ name: '确认原始容量',
36
+ text: '在设备包装盒或制造商官网上查找电池出厂时的 mAh(毫安时)容量。',
37
+ },
38
+ {
39
+ name: '查看当前循环次数',
40
+ text: '许多系统(如 iOS 或 Android 14)允许你查看电池已累积的充电循环次数。',
41
+ },
42
+ {
43
+ name: '输入技术数据',
44
+ text: '调整当前电压、循环次数和温度,以便我们的计算引擎估算 SoH。',
45
+ },
46
+ {
47
+ name: '分析诊断结果',
48
+ text: '查看健康百分比。如果低于 80%,你可能会开始注意到电池性能下降或意外关机。',
49
+ },
50
+ ];
51
+
52
+ const faqSchema: WithContext<FAQPage> = {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqData.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ };
61
+
62
+ const howToSchema: WithContext<HowTo> = {
63
+ '@context': 'https://schema.org',
64
+ '@type': 'HowTo',
65
+ name: title,
66
+ description,
67
+ step: howToData.map((step, i) => ({
68
+ '@type': 'HowToStep',
69
+ position: i + 1,
70
+ name: step.name,
71
+ text: step.text,
72
+ })),
73
+ };
74
+
75
+ const appSchema: WithContext<SoftwareApplication> = {
76
+ '@context': 'https://schema.org',
77
+ '@type': 'SoftwareApplication',
78
+ name: title,
79
+ description,
80
+ applicationCategory: 'UtilityApplication',
81
+ operatingSystem: 'All',
82
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
83
+ inLanguage: 'zh',
84
+ };
85
+
86
+ export const content: ToolLocaleContent<EstimadorSaludBateriaUI> = {
87
+ slug,
88
+ title,
89
+ description,
90
+ faqTitle: '常见问题',
91
+ faq: faqData,
92
+ bibliographyTitle: '参考资料',
93
+ bibliography: [
94
+ {
95
+ name: 'Journal of Power Sources',
96
+ url: 'https://www.sciencedirect.com/journal/journal-of-power-sources',
97
+ },
98
+ {
99
+ name: 'IEEE Xplore — Lithium-Ion Battery Life Prediction',
100
+ url: 'https://ieeexplore.ieee.org/abstract/document/11090151',
101
+ },
102
+ ],
103
+ howTo: howToData,
104
+ schemas: [faqSchema, howToSchema, appSchema],
105
+ seo: [
106
+ { type: 'title', text: '时间的化学:锂电池为何会老化', level: 2 },
107
+ {
108
+ type: 'paragraph',
109
+ html: '锂离子电池并不是一个静态的能量盒,而是一个自制造之日起就处于不断衰减中的动态化学生态系统。每一次充放电循环、每一次温度波动以及在极端电压下的每一分钟,都会产生阻碍离子流动的副产物。',
110
+ },
111
+ { type: 'title', text: '主要的衰减机制', level: 3 },
112
+ {
113
+ type: 'paragraph',
114
+ html: '<strong>SEI 层:</strong> 固体电解质界面随时间生长,消耗活性锂并增加内阻。 <strong>电解液氧化:</strong> 电压超过 4.1V 会加速氧化,并可能导致电池膨胀。 <strong>析锂现象:</strong> 在低温下充电会使锂以金属形式沉积,产生可能刺穿隔膜的枝晶。',
115
+ },
116
+ { type: 'title', text: '100% 的迷思:为什么通宵充电是个错误', level: 3 },
117
+ {
118
+ type: 'paragraph',
119
+ html: '对于锂离子来说,处于 100% 电量(4.2V)是一种高压状态。研究表明,将设备电量保持在 <strong>20% 到 80%</strong> 之间,循环寿命可延长两到三倍。此外,温度每超过 25°C 达 10°C,化学衰减率大约会翻倍。',
120
+ },
121
+ { type: 'title', text: '能源生存协议', level: 3 },
122
+ {
123
+ type: 'paragraph',
124
+ html: '切勿在 0°C 以下为电池充电:锂会沉积在负极上造成永久损坏。快速充电会产生局部热量和机械应力;仅在绝对必要时使用。长期存放时,请将电池保持在 50% 电量并置于阴凉处。',
125
+ },
126
+ ],
127
+ ui: {
128
+ badge: '锂电池',
129
+ title: '电池健康度估算',
130
+ description: '锂离子电芯的技术衰减诊断。',
131
+ paramsTitle: '电芯参数',
132
+ voltageLabel: '当前电压',
133
+ cyclesLabel: '充电循环',
134
+ tempLabel: '温度',
135
+ voltageHint: '额定范围:3.0V (空) 到 4.2V (满)。',
136
+ labelUsefulLife: '使用寿命',
137
+ yearsPrefix: '预计',
138
+ yearsSuffix: '年',
139
+ metricThermalStress: '热应力',
140
+ metricVoltageStress: '电压应力',
141
+ metricLithiumPlating: '析锂风险',
142
+ statusExcelente: '状态极佳',
143
+ statusBueno: '状态良好',
144
+ statusRegular: '状态一般',
145
+ statusCritico: '状态危急',
146
+ indicatorTempNormal: '正常',
147
+ indicatorTempCritical: '危急',
148
+ indicatorVoltageHigh: '高',
149
+ indicatorVoltageLow: '低',
150
+ indicatorPlatingRisk: '高风险',
151
+ indicatorPlatingOk: '无风险',
152
+ recTemp: '降低环境温度或改善通风以避免电解液氧化。',
153
+ recVoltageHigh: '避免让电池长时间保持 100% 电量 (4.2V)。',
154
+ recVoltageLow: '避免深度放电;将电量保持在 20% 到 80% 之间可使电池寿命翻倍。',
155
+ recSohLow: '容量已降至最佳标准以下。如果续航不足,请考虑更换电池。',
156
+ recDefault: '保持当前习惯 — 你的电池处于理想的工作范围内。',
157
+ },
158
+ };
@@ -7,10 +7,6 @@ import EstimadorSaludBateriaBibliography from './bibliography.astro';
7
7
  import type { EstimadorSaludBateriaUI } from './ui';
8
8
  export type EstimadorSaludBateriaLocaleContent = ToolLocaleContent<EstimadorSaludBateriaUI>;
9
9
 
10
- import { content as es } from './i18n/es';
11
- import { content as en } from './i18n/en';
12
- import { content as fr } from './i18n/fr';
13
-
14
10
  export const estimadorSaludBateria: HardwareToolEntry<EstimadorSaludBateriaUI> = {
15
11
  id: 'estimador-salud-bateria',
16
12
  icons: {
@@ -18,9 +14,21 @@ export const estimadorSaludBateria: HardwareToolEntry<EstimadorSaludBateriaUI> =
18
14
  fg: 'mdi:battery-charging-high',
19
15
  },
20
16
  i18n: {
21
- es: async () => es,
22
- en: async () => en,
23
- fr: async () => fr,
17
+ de: () => import('./i18n/de').then((m) => m.content),
18
+ en: () => import('./i18n/en').then((m) => m.content),
19
+ es: () => import('./i18n/es').then((m) => m.content),
20
+ fr: () => import('./i18n/fr').then((m) => m.content),
21
+ id: () => import('./i18n/id').then((m) => m.content),
22
+ it: () => import('./i18n/it').then((m) => m.content),
23
+ ja: () => import('./i18n/ja').then((m) => m.content),
24
+ ko: () => import('./i18n/ko').then((m) => m.content),
25
+ nl: () => import('./i18n/nl').then((m) => m.content),
26
+ pl: () => import('./i18n/pl').then((m) => m.content),
27
+ pt: () => import('./i18n/pt').then((m) => m.content),
28
+ ru: () => import('./i18n/ru').then((m) => m.content),
29
+ sv: () => import('./i18n/sv').then((m) => m.content),
30
+ tr: () => import('./i18n/tr').then((m) => m.content),
31
+ zh: () => import('./i18n/zh').then((m) => m.content),
24
32
  },
25
33
  };
26
34