@jjlmoya/utils-diy 1.16.0 → 1.18.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.
- package/package.json +1 -1
- package/src/category/i18n/fr.ts +5 -5
- package/src/layouts/PreviewLayout.astro +1 -0
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/script_density.test.ts +94 -0
- package/src/tool/balusterCalculator/i18n/de.ts +7 -7
- package/src/tool/balusterCalculator/i18n/en.ts +4 -4
- package/src/tool/balusterCalculator/i18n/es.ts +2 -2
- package/src/tool/balusterCalculator/i18n/fr.ts +3 -3
- package/src/tool/balusterCalculator/i18n/it.ts +16 -16
- package/src/tool/balusterCalculator/i18n/ru.ts +14 -14
- package/src/tool/balusterCalculator/i18n/tr.ts +5 -5
- package/src/tool/clayCalculator/i18n/fr.ts +3 -3
- package/src/tool/clayCalculator/i18n/ru.ts +3 -3
- package/src/tool/concreteCalculator/i18n/en.ts +4 -4
- package/src/tool/concreteCalculator/i18n/fr.ts +2 -2
- package/src/tool/concreteCalculator/i18n/ko.ts +2 -2
- package/src/tool/concreteCalculator/i18n/ru.ts +3 -3
- package/src/tool/cutOptimizer/i18n/en.ts +4 -4
- package/src/tool/cutOptimizer/i18n/fr.ts +2 -2
- package/src/tool/cutOptimizer/i18n/ru.ts +2 -2
- package/src/tool/drillCalculator/bibliography.ts +2 -2
- package/src/tool/drillCalculator/i18n/ru.ts +5 -5
- package/src/tool/drillCalculator/i18n/zh.ts +2 -2
- package/src/tool/drillSharpener/i18n/ru.ts +3 -3
- package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +117 -2
- package/src/tool/epoxyCalculator/i18n/de.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/en.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/es.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/fr.ts +3 -3
- package/src/tool/epoxyCalculator/i18n/id.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/it.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/ja.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/ko.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/nl.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/pl.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/pt.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/ru.ts +5 -5
- package/src/tool/epoxyCalculator/i18n/sv.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/tr.ts +2 -2
- package/src/tool/epoxyCalculator/i18n/zh.ts +4 -4
- package/src/tool/furnitureFit/i18n/de.ts +2 -2
- package/src/tool/furnitureFit/i18n/en.ts +4 -4
- package/src/tool/furnitureFit/i18n/es.ts +2 -2
- package/src/tool/furnitureFit/i18n/fr.ts +3 -3
- package/src/tool/furnitureFit/i18n/id.ts +2 -2
- package/src/tool/furnitureFit/i18n/it.ts +2 -2
- package/src/tool/furnitureFit/i18n/ja.ts +2 -2
- package/src/tool/furnitureFit/i18n/ko.ts +2 -2
- package/src/tool/furnitureFit/i18n/nl.ts +2 -2
- package/src/tool/furnitureFit/i18n/pl.ts +2 -2
- package/src/tool/furnitureFit/i18n/pt.ts +2 -2
- package/src/tool/furnitureFit/i18n/ru.ts +6 -6
- package/src/tool/furnitureFit/i18n/sv.ts +2 -2
- package/src/tool/furnitureFit/i18n/tr.ts +2 -2
- package/src/tool/furnitureFit/i18n/zh.ts +2 -2
- package/src/tool/mortarCalculator/i18n/en.ts +3 -3
- package/src/tool/mortarCalculator/i18n/ru.ts +6 -6
- package/src/tool/mortarCalculator/i18n/zh.ts +3 -3
- package/src/tool/passepartoutCalculator/i18n/en.ts +4 -4
- package/src/tool/passepartoutCalculator/i18n/ru.ts +7 -7
- package/src/tool/passepartoutCalculator/i18n/zh.ts +6 -6
- package/src/tool/passepartoutCalculator/passepartout-calculator.css +113 -3
- package/src/tool/pythagoreanRightAngleCalculator/i18n/fr.ts +3 -3
- package/src/tool/pythagoreanRightAngleCalculator/i18n/pl.ts +2 -2
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ru.ts +5 -5
- package/src/tool/stairCalculator/i18n/ru.ts +6 -6
- package/src/tool/stairCalculator/stair-calculator.css +140 -6
- package/src/tool/thermalExpansionCalculator/bibliography.ts +4 -4
- package/src/tool/thermalExpansionCalculator/i18n/en.ts +2 -2
- package/src/tool/thermalExpansionCalculator/i18n/fr.ts +3 -3
- package/src/tool/thermalExpansionCalculator/i18n/ru.ts +4 -4
- package/src/tool/twoStrokeMixtureCalculator/i18n/de.ts +12 -12
- package/src/tool/twoStrokeMixtureCalculator/i18n/en.ts +13 -13
- package/src/tool/twoStrokeMixtureCalculator/i18n/fr.ts +18 -18
- package/src/tool/twoStrokeMixtureCalculator/i18n/id.ts +12 -12
- package/src/tool/twoStrokeMixtureCalculator/i18n/it.ts +4 -4
- package/src/tool/twoStrokeMixtureCalculator/i18n/nl.ts +6 -6
- package/src/tool/twoStrokeMixtureCalculator/i18n/pl.ts +6 -6
- package/src/tool/twoStrokeMixtureCalculator/i18n/pt.ts +10 -10
- package/src/tool/twoStrokeMixtureCalculator/i18n/ru.ts +9 -9
- package/src/tool/twoStrokeMixtureCalculator/i18n/sv.ts +8 -8
- package/src/tool/twoStrokeMixtureCalculator/i18n/tr.ts +4 -4
- package/src/tool/twoStrokeMixtureCalculator/i18n/zh.ts +7 -7
- package/src/tool/voltageDropCalculator/i18n/en.ts +2 -2
- package/src/tool/voltageDropCalculator/i18n/es.ts +4 -4
- package/src/tool/voltageDropCalculator/i18n/ru.ts +4 -4
- package/src/tool/workshopFractionConverter/bibliography.ts +2 -2
- package/src/tool/workshopFractionConverter/i18n/de.ts +2 -2
- package/src/tool/workshopFractionConverter/i18n/es.ts +2 -2
- package/src/tool/workshopFractionConverter/i18n/fr.ts +2 -2
- package/src/tool/workshopFractionConverter/i18n/ru.ts +9 -9
- package/src/tool/workshopFractionConverter/i18n/zh.ts +6 -6
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { PythagoreanRightAngleCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -10,7 +10,7 @@ const description = 'Проверьте, идеально ли выровнен
|
|
|
10
10
|
const faqData = [
|
|
11
11
|
{
|
|
12
12
|
question: 'Что такое правило 3-4-5?',
|
|
13
|
-
answer: 'Правило 3-4-5
|
|
13
|
+
answer: 'Правило 3-4-5 - это простая пифагорова тройка. Если у прямоугольного треугольника стороны составляют 3, 4 и 5 единиц в любом масштабе, угол между более короткими сторонами равен ровно 90 градусам. Этот проверенный метод веками используется в строительстве.',
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
question: 'Как пользоваться этим калькулятором?',
|
|
@@ -18,7 +18,7 @@ const faqData = [
|
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
question: 'Что если моя диагональ отличается?',
|
|
21
|
-
answer: 'Если измеренная диагональ отличается от идеальной, калькулятор покажет отклонение. Зеленый цвет означает идеал, желтый
|
|
21
|
+
answer: 'Если измеренная диагональ отличается от идеальной, калькулятор покажет отклонение. Зеленый цвет означает идеал, желтый - допустимое отклонение, красный - отсутствие прямого угла. Он также подскажет, нужно ли увеличить или уменьшить угол.',
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
question: 'Достаточно ли это точно для строительства?',
|
|
@@ -83,9 +83,9 @@ export const content: ToolLocaleContent<PythagoreanRightAngleCalculatorUI> = {
|
|
|
83
83
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
84
84
|
seo: [
|
|
85
85
|
{ type: 'title', text: 'Теорема Пифагора на практике', level: 2 },
|
|
86
|
-
{ type: 'paragraph', html: 'Идеальный угол 90 градусов
|
|
86
|
+
{ type: 'paragraph', html: 'Идеальный угол 90 градусов - основа качественного строительства. Стены должны быть перпендикулярны, фундаменты - выровнены, а каркасы - идеально ровны. Теорема Пифагора обеспечивает математически гарантированный метод: a² + b² = c².' },
|
|
87
87
|
{ type: 'title', text: 'Почему правило 3-4-5 работает', level: 3 },
|
|
88
|
-
{ type: 'paragraph', html: 'Правило 3-4-5
|
|
88
|
+
{ type: 'paragraph', html: 'Правило 3-4-5 - это простейшая пифагорова тройка. Независимо от того, измеряете ли вы в дюймах, футах или любых других единицах: стороны в 3, 4 и 5 единиц гарантируют угол 90 градусов. Это доказано математически и проверено в строительстве на протяжении веков.' },
|
|
89
89
|
{ type: 'title', text: 'Точность без специальных инструментов', level: 3 },
|
|
90
90
|
{ type: 'paragraph', html: 'В отличие от уровней или угольников, которые могут сломаться или сбиться, теорема Пифагора неизменна. С помощью одной лишь рулетки вы можете проверить любой угол в любом масштабе. Этот калькулятор избавляет от вычислений в уме и обеспечивает точность.' },
|
|
91
91
|
{ type: 'title', text: 'От теории к практическому руководству', level: 3 },
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { StairCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -14,7 +14,7 @@ const faqData = [
|
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
question: 'Какова максимальная высота ступени?',
|
|
17
|
-
answer: 'В жилых домах рекомендуется не превышать 18
|
|
17
|
+
answer: 'В жилых домах рекомендуется не превышать 18-19 см. Для общественных мест максимум по нормам обычно составляет 17,5 см. Более высокие ступени сильнее утомляют и могут быть опасны.',
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
question: 'Как рассчитать, если мало места?',
|
|
@@ -33,7 +33,7 @@ const faqData = [
|
|
|
33
33
|
const howToData = [
|
|
34
34
|
{ name: 'Измерить перепад высот', text: 'Измерьте общий перепад (H) от чистового пола нижнего уровня до чистового пола верхнего уровня. Это базовый параметр для всех расчетов.' },
|
|
35
35
|
{ name: 'Ввести доступную длину', text: 'Опционально: если у вас есть ограничения по месту, введите доступную горизонтальную длину. Используйте 0 для свободного расчета.' },
|
|
36
|
-
{ name: 'Настроить количество ступеней', text: 'Калькулятор предложит начальное количество, но вы можете его изменить. Следите за индикатором Блонделя: он должен быть зеленым (62
|
|
36
|
+
{ name: 'Настроить количество ступеней', text: 'Калькулятор предложит начальное количество, но вы можете его изменить. Следите за индикатором Блонделя: он должен быть зеленым (62-64 см).' },
|
|
37
37
|
{ name: 'Определить параметры объекта', text: 'Укажите толщину плиты, отделку, марку бетона и ширину лестницы. Эти данные влияют на итоговый расчет материалов.' },
|
|
38
38
|
];
|
|
39
39
|
|
|
@@ -82,17 +82,17 @@ export const content: ToolLocaleContent<StairCalculatorUI> = {
|
|
|
82
82
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
83
83
|
seo: [
|
|
84
84
|
{ type: 'title', text: 'Геометрическое проектирование лестниц: закон Блонделя', level: 2 },
|
|
85
|
-
{ type: 'paragraph', html: 'Комфорт лестницы зависит от длины человеческого шага. При подъеме или спуске тело ожидает предсказуемого ритма. Закон Блонделя гласит, что 2 высоты подступенка + 1 ширина проступи = 62
|
|
85
|
+
{ type: 'paragraph', html: 'Комфорт лестницы зависит от длины человеческого шага. При подъеме или спуске тело ожидает предсказуемого ритма. Закон Блонделя гласит, что 2 высоты подступенка + 1 ширина проступи = 62-64 см - это стандарт, гарантирующий максимальный комфорт и безопасность.' },
|
|
86
86
|
{ type: 'title', text: 'Учет конструкций и материалов', level: 3 },
|
|
87
87
|
{ type: 'paragraph', html: 'Для профессионального исполнения жизненно важно учитывать бетонную плиту основания. Игнорирование этого объема приведет к нехватке материала при заказе. Калькулятор автоматически включает этот расчет.' },
|
|
88
88
|
{ type: 'title', text: 'Разметка и накопленная ошибка', level: 3 },
|
|
89
|
-
{ type: 'paragraph', html: 'В строительстве главный враг
|
|
89
|
+
{ type: 'paragraph', html: 'В строительстве главный враг - миллиметровая ошибка. Если вы измеряете каждую ступень отдельно, сумма маленьких погрешностей может привести к тому, что последняя ступень окажется на 5 см выше или ниже первой.' },
|
|
90
90
|
],
|
|
91
91
|
ui: {
|
|
92
92
|
labelGeometry: 'Геометрия и габариты',
|
|
93
93
|
labelTotalHeight: 'Общая высота (H)',
|
|
94
94
|
labelAvailableLength: 'Доступная длина (L)',
|
|
95
|
-
labelAvailableLengthHint: '0
|
|
95
|
+
labelAvailableLengthHint: '0 - без ограничений.',
|
|
96
96
|
labelNumSteps: 'Кол-во ступеней',
|
|
97
97
|
labelOptimize: 'Оптимизация (18см)',
|
|
98
98
|
labelWork: 'Строительство и отделка',
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
margin: 1.5rem auto;
|
|
28
28
|
padding: 0 1rem;
|
|
29
29
|
color: var(--sc-neutral);
|
|
30
|
+
container-type: inline-size;
|
|
31
|
+
overflow-x: clip;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
.sc-card {
|
|
@@ -34,9 +36,10 @@
|
|
|
34
36
|
border-radius: 2rem;
|
|
35
37
|
overflow: hidden;
|
|
36
38
|
display: grid;
|
|
37
|
-
grid-template-columns: 350px 1fr;
|
|
39
|
+
grid-template-columns: minmax(0, 350px) minmax(0, 1fr);
|
|
38
40
|
box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.1);
|
|
39
41
|
border: 1px solid var(--sc-border);
|
|
42
|
+
min-width: 0;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
45
|
.sc-sidebar {
|
|
@@ -46,6 +49,7 @@
|
|
|
46
49
|
display: flex;
|
|
47
50
|
flex-direction: column;
|
|
48
51
|
gap: 1rem;
|
|
52
|
+
min-width: 0;
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
.sc-section h3 {
|
|
@@ -63,6 +67,7 @@
|
|
|
63
67
|
flex-direction: column;
|
|
64
68
|
gap: 1.5rem;
|
|
65
69
|
background: var(--sc-bg);
|
|
70
|
+
min-width: 0;
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
.sc-results-header {
|
|
@@ -72,6 +77,7 @@
|
|
|
72
77
|
}
|
|
73
78
|
|
|
74
79
|
.sc-stat-box {
|
|
80
|
+
min-width: 0;
|
|
75
81
|
background: rgba(255, 255, 255, 0.5);
|
|
76
82
|
padding: 0.75rem 0.5rem;
|
|
77
83
|
border-radius: 1.25rem;
|
|
@@ -93,9 +99,12 @@
|
|
|
93
99
|
}
|
|
94
100
|
|
|
95
101
|
.sc-stat-value {
|
|
102
|
+
display: inline-block;
|
|
103
|
+
max-width: 100%;
|
|
96
104
|
font-size: 1.5rem;
|
|
97
105
|
font-weight: 800;
|
|
98
106
|
color: var(--sc-neutral);
|
|
107
|
+
overflow-wrap: anywhere;
|
|
99
108
|
}
|
|
100
109
|
|
|
101
110
|
.sc-stat-unit {
|
|
@@ -131,6 +140,7 @@
|
|
|
131
140
|
|
|
132
141
|
.sc-input-group {
|
|
133
142
|
margin-bottom: 0.75rem;
|
|
143
|
+
min-width: 0;
|
|
134
144
|
}
|
|
135
145
|
|
|
136
146
|
.sc-input-group label {
|
|
@@ -207,6 +217,7 @@
|
|
|
207
217
|
|
|
208
218
|
.sc-select {
|
|
209
219
|
width: 100%;
|
|
220
|
+
box-sizing: border-box;
|
|
210
221
|
padding: 0.8rem 2.8rem 0.8rem 1rem;
|
|
211
222
|
border-radius: 1rem;
|
|
212
223
|
border: 2px solid var(--sc-border);
|
|
@@ -241,6 +252,7 @@
|
|
|
241
252
|
|
|
242
253
|
.sc-optimize-btn {
|
|
243
254
|
width: 100%;
|
|
255
|
+
box-sizing: border-box;
|
|
244
256
|
padding: 0.75rem;
|
|
245
257
|
background: var(--sc-primary-dark);
|
|
246
258
|
color: white;
|
|
@@ -317,7 +329,7 @@
|
|
|
317
329
|
|
|
318
330
|
.sc-table-wrapper {
|
|
319
331
|
max-height: 220px;
|
|
320
|
-
overflow
|
|
332
|
+
overflow: auto;
|
|
321
333
|
}
|
|
322
334
|
|
|
323
335
|
.sc-table-wrapper table {
|
|
@@ -370,6 +382,7 @@
|
|
|
370
382
|
|
|
371
383
|
.sc-material-row {
|
|
372
384
|
display: flex;
|
|
385
|
+
gap: 0.75rem;
|
|
373
386
|
justify-content: space-between;
|
|
374
387
|
align-items: baseline;
|
|
375
388
|
padding-bottom: 0.4rem;
|
|
@@ -384,6 +397,7 @@
|
|
|
384
397
|
.sc-material-row strong {
|
|
385
398
|
font-size: 1.15rem;
|
|
386
399
|
color: var(--sc-primary);
|
|
400
|
+
overflow-wrap: anywhere;
|
|
387
401
|
}
|
|
388
402
|
|
|
389
403
|
.sc-actions-row {
|
|
@@ -459,20 +473,140 @@
|
|
|
459
473
|
}
|
|
460
474
|
|
|
461
475
|
@media (max-width: 480px) {
|
|
476
|
+
.sc-root {
|
|
477
|
+
padding: 0 0.5rem;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
.sc-card {
|
|
481
|
+
border-radius: 1rem;
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
.sc-sidebar,
|
|
485
|
+
.sc-main {
|
|
486
|
+
padding: 1rem;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
.sc-input-grid {
|
|
490
|
+
grid-template-columns: 1fr;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.sc-step-btn {
|
|
494
|
+
width: 38px;
|
|
495
|
+
height: 38px;
|
|
496
|
+
font-size: 1.35rem;
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
.sc-stepper input {
|
|
500
|
+
height: 38px;
|
|
501
|
+
font-size: 1rem;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
.sc-select {
|
|
505
|
+
font-size: 0.9rem;
|
|
506
|
+
padding: 0.7rem 2.5rem 0.7rem 0.85rem;
|
|
507
|
+
}
|
|
508
|
+
|
|
462
509
|
.sc-results-header {
|
|
463
|
-
|
|
510
|
+
grid-template-columns: 1fr;
|
|
511
|
+
gap: 0.5rem;
|
|
464
512
|
}
|
|
465
513
|
|
|
466
514
|
.sc-stat-box {
|
|
467
|
-
|
|
468
|
-
|
|
515
|
+
display: grid;
|
|
516
|
+
grid-template-columns: 1fr auto auto;
|
|
517
|
+
gap: 0.35rem;
|
|
518
|
+
align-items: baseline;
|
|
519
|
+
padding: 0.65rem 0.75rem;
|
|
520
|
+
text-align: left;
|
|
521
|
+
border-radius: 0.875rem;
|
|
469
522
|
}
|
|
470
523
|
|
|
471
524
|
.sc-stat-value {
|
|
472
525
|
font-size: 1.1rem;
|
|
473
526
|
}
|
|
474
527
|
|
|
528
|
+
.sc-stat-unit {
|
|
529
|
+
font-size: 0.7rem;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
.sc-visualizer-container {
|
|
533
|
+
min-height: 210px;
|
|
534
|
+
padding: 0.5rem;
|
|
535
|
+
border-radius: 1rem;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
#sc-stair-svg {
|
|
539
|
+
min-width: 0;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
.sc-table-card,
|
|
543
|
+
.sc-materials-card {
|
|
544
|
+
padding: 1rem;
|
|
545
|
+
border-radius: 1rem;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
.sc-material-row {
|
|
549
|
+
align-items: flex-start;
|
|
550
|
+
flex-direction: column;
|
|
551
|
+
gap: 0.25rem;
|
|
552
|
+
}
|
|
553
|
+
|
|
475
554
|
.sc-material-row strong {
|
|
476
555
|
font-size: 1rem;
|
|
477
556
|
}
|
|
478
|
-
}
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
@container (max-width: 720px) {
|
|
560
|
+
.sc-root {
|
|
561
|
+
padding: 0;
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
.sc-card {
|
|
565
|
+
grid-template-columns: minmax(0, 1fr);
|
|
566
|
+
border-radius: 1rem;
|
|
567
|
+
max-width: 100%;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
.sc-sidebar {
|
|
571
|
+
border-right: 0;
|
|
572
|
+
border-bottom: 1px solid var(--sc-border);
|
|
573
|
+
padding: 1rem;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
.sc-main {
|
|
577
|
+
padding: 1rem;
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
.sc-results-header,
|
|
581
|
+
.sc-bottom-grid,
|
|
582
|
+
.sc-input-grid {
|
|
583
|
+
grid-template-columns: minmax(0, 1fr);
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
.sc-stepper,
|
|
587
|
+
.sc-select,
|
|
588
|
+
.sc-optimize-btn {
|
|
589
|
+
max-width: 100%;
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
.sc-step-btn {
|
|
593
|
+
width: 38px;
|
|
594
|
+
height: 38px;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
.sc-stepper input {
|
|
598
|
+
height: 38px;
|
|
599
|
+
font-size: 1rem;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
.sc-visualizer-container {
|
|
603
|
+
min-height: 210px;
|
|
604
|
+
padding: 0.5rem;
|
|
605
|
+
border-radius: 1rem;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
#sc-stair-svg {
|
|
609
|
+
min-width: 0;
|
|
610
|
+
max-width: 100%;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import type { BibliographyEntry } from '../../types';
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const bibliography: BibliographyEntry[] = [
|
|
4
4
|
{
|
|
5
|
-
name: 'Coefficient of Thermal Expansion
|
|
5
|
+
name: 'Coefficient of Thermal Expansion - Engineering Toolbox',
|
|
6
6
|
url: 'https://www.engineeringtoolbox.com/linear-expansion-coefficients-d_95.html',
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
|
-
name: 'Thermal expansion and temperature
|
|
9
|
+
name: 'Thermal expansion and temperature - Britannica',
|
|
10
10
|
url: 'https://www.britannica.com/science/thermal-expansion',
|
|
11
11
|
},
|
|
12
12
|
{
|
|
13
|
-
name: 'Linear Thermal Expansion
|
|
13
|
+
name: 'Linear Thermal Expansion - Physics Hypertextbook',
|
|
14
14
|
url: 'https://physics.info/expansion/',
|
|
15
15
|
},
|
|
16
16
|
];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { ThermalExpansionCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -97,7 +97,7 @@ export const content: ToolLocaleContent<ThermalExpansionCalculatorUI> = {
|
|
|
97
97
|
{ type: 'title', text: 'What is Thermal Expansion and How Does It Affect Structures', level: 2 },
|
|
98
98
|
{
|
|
99
99
|
type: 'paragraph',
|
|
100
|
-
html: '<strong>Thermal expansion</strong> is the physical process by which a material increases its length in response to a rise in temperature. At the microscopic level, particles vibrate with more energy and require a greater average spacing between them. In construction, this phenomenon is not a curiosity
|
|
100
|
+
html: '<strong>Thermal expansion</strong> is the physical process by which a material increases its length in response to a rise in temperature. At the microscopic level, particles vibrate with more energy and require a greater average spacing between them. In construction, this phenomenon is not a curiosity - it is a force that can crack concrete, deform steel beams and buckle railway tracks.',
|
|
101
101
|
},
|
|
102
102
|
{ type: 'title', text: 'The Linear Expansion Formula', level: 3 },
|
|
103
103
|
{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { ThermalExpansionCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -97,14 +97,14 @@ export const content: ToolLocaleContent<ThermalExpansionCalculatorUI> = {
|
|
|
97
97
|
{ type: 'title', text: 'Qu\'est-ce que la Dilatation Thermique et comment affecte-t-elle les Structures', level: 2 },
|
|
98
98
|
{
|
|
99
99
|
type: 'paragraph',
|
|
100
|
-
html: 'La <strong>dilatation thermique</strong> est le processus physique par lequel un matériau augmente sa longueur en réponse à une élévation de température. À l\'échelle microscopique, les particules vibrent avec plus d\'énergie et nécessitent un espacement moyen plus grand entre elles. En construction, ce phénomène n\'est pas une
|
|
100
|
+
html: 'La <strong>dilatation thermique</strong> est le processus physique par lequel un matériau augmente sa longueur en réponse à une élévation de température. À l\'échelle microscopique, les particules vibrent avec plus d\'énergie et nécessitent un espacement moyen plus grand entre elles. En construction, ce phénomène n\'est pas une curiosité: c\'est une force qui peut fissurer le béton, déformer des poutres en acier et faire se tordre les rails d\'un chemin de fer.',
|
|
101
101
|
},
|
|
102
102
|
{ type: 'title', text: 'La Formule de la Dilatation Linéaire', level: 3 },
|
|
103
103
|
{
|
|
104
104
|
type: 'card',
|
|
105
105
|
icon: 'mdi:math-log',
|
|
106
106
|
title: 'Formule de Dilatation Linéaire',
|
|
107
|
-
html: '<p>L\'expansion d\'un élément structurel se calcule avec
|
|
107
|
+
html: '<p>L\'expansion d\'un élément structurel se calcule avec: <code>ΔL = L₀ · α · ΔT</code>. Où <strong>ΔL</strong> est l\'allongement total, <strong>L₀</strong> est la longueur originale, <strong>α</strong> est le coefficient de dilatation du matériau (en °C⁻¹) et <strong>ΔT</strong> est la différence de température. Cette formule est à la base du dimensionnement des joints de dilatation dans les ponts, les toitures et les façades.</p>',
|
|
108
108
|
},
|
|
109
109
|
{ type: 'title', text: 'Coefficients de Dilatation par Matériau', level: 3 },
|
|
110
110
|
{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { ThermalExpansionCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -18,7 +18,7 @@ const faqData = [
|
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
question: 'Расширяется ли дерево одинаково во всех направлениях?',
|
|
21
|
-
answer: 'Нет. Дерево
|
|
21
|
+
answer: 'Нет. Дерево - анизотропный материал. Оно очень мало расширяется вдоль волокон, но значительно в поперечном направлении (в ширину и толщину).',
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
question: 'Какую температуру использовать в качестве начальной?',
|
|
@@ -78,9 +78,9 @@ export const content: ToolLocaleContent<ThermalExpansionCalculatorUI> = {
|
|
|
78
78
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
79
79
|
seo: [
|
|
80
80
|
{ type: 'title', text: 'Что такое тепловое расширение и как оно влияет на конструкции', level: 2 },
|
|
81
|
-
{ type: 'paragraph', html: '<strong>Тепловое расширение</strong>
|
|
81
|
+
{ type: 'paragraph', html: '<strong>Тепловое расширение</strong> - это физический процесс, при котором материал увеличивает свою длину в ответ на повышение температуры. В строительстве это явление - сила, способная разрушить бетон, деформировать стальные балки и искривить железнодорожные рельсы.' },
|
|
82
82
|
{ type: 'title', text: 'Формула линейного расширения', level: 3 },
|
|
83
|
-
{ type: 'card', icon: 'mdi:math-log', title: 'Формула линейного расширения', html: '<p>Расширение структурного элемента рассчитывается по формуле: <code>ΔL = L₀ · α · ΔT</code>. Где <strong>ΔL</strong>
|
|
83
|
+
{ type: 'card', icon: 'mdi:math-log', title: 'Формула линейного расширения', html: '<p>Расширение структурного элемента рассчитывается по формуле: <code>ΔL = L₀ · α · ΔT</code>. Где <strong>ΔL</strong> - общий рост, <strong>L₀</strong> - исходная длина, <strong>α</strong> - коэффициент расширения материала (в °C⁻¹), а <strong>ΔT</strong> - разница температур.</p>' },
|
|
84
84
|
],
|
|
85
85
|
ui: {
|
|
86
86
|
configTitle: 'Настройка',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TwoStrokeMixtureCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -14,7 +14,7 @@ const faqData = [
|
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
question: 'Was sind gängige Kraftstoff-Öl-Mischungsverhältnisse?',
|
|
17
|
-
answer: 'Gängige Verhältnisse sind 1:25 (fett, schützend), 1:33 (ältere Geräte), 1:40 (Standard) und 1:50 (mager, moderne Motoren). Prüfen Sie das Handbuch Ihres Motors
|
|
17
|
+
answer: 'Gängige Verhältnisse sind 1:25 (fett, schützend), 1:33 (ältere Geräte), 1:40 (Standard) und 1:50 (mager, moderne Motoren). Prüfen Sie das Handbuch Ihres Motors - ein falsches Verhältnis kann den Motor beschädigen.',
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
question: 'Was passiert bei falschem Mischungsverhältnis?',
|
|
@@ -22,7 +22,7 @@ const faqData = [
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
question: 'Welches Öl soll ich verwenden?',
|
|
25
|
-
answer: 'Verwenden Sie Zweitaktöl, das für Ihr Gerät zugelassen ist. Hochwertige synthetische Zweitaktöle bieten besseren Schutz und verbrennen sauberer als herkömmliche Öle. Verwenden Sie niemals Viertaktöl
|
|
25
|
+
answer: 'Verwenden Sie Zweitaktöl, das für Ihr Gerät zugelassen ist. Hochwertige synthetische Zweitaktöle bieten besseren Schutz und verbrennen sauberer als herkömmliche Öle. Verwenden Sie niemals Viertaktöl - es führt zu Motorschäden.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
question: 'Wie mische ich Kraftstoff und Öl?',
|
|
@@ -83,10 +83,10 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
83
83
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
84
84
|
seo: [
|
|
85
85
|
{ type: 'title', text: 'Zweitakt-Gemischrechner: Präzise Öl-Kraftstoff-Verhältnisse für Motorsägen und Mofas', level: 2 },
|
|
86
|
-
{ type: 'paragraph', html: 'Zweitaktmotoren benötigen ein präzises Kraftstoff-Öl-Gemisch zum Überleben. Eine falsche Mischung kann Ihren Motor in wenigen Minuten zerstören. Dieser Rechner ermittelt sofort die exakte Ölmenge für Ihre Kraftstoffmenge und Ihren Motortyp
|
|
86
|
+
{ type: 'paragraph', html: 'Zweitaktmotoren benötigen ein präzises Kraftstoff-Öl-Gemisch zum Überleben. Eine falsche Mischung kann Ihren Motor in wenigen Minuten zerstören. Dieser Rechner ermittelt sofort die exakte Ölmenge für Ihre Kraftstoffmenge und Ihren Motortyp - Schluss mit dem Rätselraten in der Werkstatt.' },
|
|
87
87
|
|
|
88
88
|
{ type: 'title', text: 'Warum Zweitaktmotoren Öl im Kraftstoff benötigen', level: 3 },
|
|
89
|
-
{ type: 'card', icon: 'mdi:engine', title: 'Der entscheidende Unterschied', html: 'Im Gegensatz zu Viertaktmotoren mit separaten Öltanks mischen Zweitaktmotoren das Öl direkt in den Kraftstoff. Bei jedem Arbeitstakt verbrennt der Motor das Gemisch sowohl für Energie als auch zur Schmierung. Es gibt keine Ölwanne, keine separate Ölpumpe
|
|
89
|
+
{ type: 'card', icon: 'mdi:engine', title: 'Der entscheidende Unterschied', html: 'Im Gegensatz zu Viertaktmotoren mit separaten Öltanks mischen Zweitaktmotoren das Öl direkt in den Kraftstoff. Bei jedem Arbeitstakt verbrennt der Motor das Gemisch sowohl für Energie als auch zur Schmierung. Es gibt keine Ölwanne, keine separate Ölpumpe - nur das Mischbenzin hält die Kolben am Leben.' },
|
|
90
90
|
|
|
91
91
|
{ type: 'title', text: 'Schnellreferenz für Zweitakt-Verhältnisse', level: 3 },
|
|
92
92
|
{ type: 'table', headers: ['Verhältnis', 'Öl %', 'Einsatzzweck', 'Motortyp', 'Eigenschaften'], rows: [
|
|
@@ -104,8 +104,8 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
104
104
|
] },
|
|
105
105
|
|
|
106
106
|
{ type: 'title', text: 'Gängige Geräte-Verhältnisse', level: 3 },
|
|
107
|
-
{ type: 'card', icon: 'mdi:tree', title: 'Motorsägen', html: '<strong>Stihl, Husqvarna, Echo:</strong> Moderne Modelle benötigen typischerweise 1:40 oder 1:50. Prüfen Sie immer Ihr Handbuch
|
|
108
|
-
{ type: 'card', icon: 'mdi:motorcycle', title: 'Mofas & Motorräder', html: '<strong>Vespa, Honda, Yamaha:</strong> Die meisten benötigen 1:33 bei älteren Modellen, 1:40
|
|
107
|
+
{ type: 'card', icon: 'mdi:tree', title: 'Motorsägen', html: '<strong>Stihl, Husqvarna, Echo:</strong> Moderne Modelle benötigen typischerweise 1:40 oder 1:50. Prüfen Sie immer Ihr Handbuch - 1:25 bei einer modernen Säge riskiert verrußte Kerzen. Ältere Stihl-Maschinen (90er und früher) können 1:25 oder 1:33 vorschreiben.' },
|
|
108
|
+
{ type: 'card', icon: 'mdi:motorcycle', title: 'Mofas & Motorräder', html: '<strong>Vespa, Honda, Yamaha:</strong> Die meisten benötigen 1:33 bei älteren Modellen, 1:40-1:50 bei modernen Versionen. Hochleistungs-Mofas und Straßenmaschinen schreiben oft 1:50 vor. Das Werkstatthandbuch ist die einzige Wahrheit.' },
|
|
109
109
|
{ type: 'card', icon: 'mdi:tools', title: 'Laubbläser & Trimmer', html: '<strong>Stihl, Husqvarna, DeWalt:</strong> Typischerweise 1:50 (modern) oder 1:40 (etwas älter). Diese Geräte sind für kurzen saisonalen Einsatz konzipiert, magere Mischungen sparen Rauch ohne Zuverlässigkeitsverlust.' },
|
|
110
110
|
|
|
111
111
|
{ type: 'title', text: 'Ölsorte ist so wichtig wie das Verhältnis', level: 3 },
|
|
@@ -116,10 +116,10 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
116
116
|
], columns: 3 },
|
|
117
117
|
|
|
118
118
|
{ type: 'title', text: 'Schritt-für-Schritt Mischvorgang', level: 3 },
|
|
119
|
-
{ type: 'card', icon: 'mdi:check-circle', title: 'Der richtige Weg zum Mischen', html: '<ol style="margin: 1rem 0; padding-left: 1.5rem;"><li><strong>Verwenden Sie einen speziellen Behälter</strong> nur für Kraftstoffmischungen. Sauber, trocken, markiert.</li><li><strong>Gießen Sie zuerst die Hälfte des Benzins</strong> ein.</li><li><strong>Geben Sie die berechnete Ölmenge zu</strong> (nutzen Sie diesen Rechner für Präzision).</li><li><strong>Füllen Sie das restliche Benzin auf</strong>, um die Zielmenge zu erreichen.</li><li><strong>Schütteln Sie kräftig für 1
|
|
119
|
+
{ type: 'card', icon: 'mdi:check-circle', title: 'Der richtige Weg zum Mischen', html: '<ol style="margin: 1rem 0; padding-left: 1.5rem;"><li><strong>Verwenden Sie einen speziellen Behälter</strong> nur für Kraftstoffmischungen. Sauber, trocken, markiert.</li><li><strong>Gießen Sie zuerst die Hälfte des Benzins</strong> ein.</li><li><strong>Geben Sie die berechnete Ölmenge zu</strong> (nutzen Sie diesen Rechner für Präzision).</li><li><strong>Füllen Sie das restliche Benzin auf</strong>, um die Zielmenge zu erreichen.</li><li><strong>Schütteln Sie kräftig für 1-2 Minuten</strong>, bis die Farbe gleichmäßig ist. Ein homogenes Gemisch = gleichmäßige Schmierung.</li><li><strong>Beschriften Sie den Behälter</strong> mit Datum, Verhältnis und Kraftstoffart.</li><li><strong>Innerhalb von 30 Tagen verbrauchen</strong> (Synthetiköle halten bis zu 60 Tage).</li></ol>' },
|
|
120
120
|
|
|
121
121
|
{ type: 'title', text: 'Wann Sie das Handbuch infrage stellen sollten', level: 3 },
|
|
122
|
-
{ type: 'tip', html: '<strong>Prüfen Sie immer zuerst das Verhältnis im Gerätehandbuch.</strong> Wenn Sie es nicht finden, besuchen Sie die Website des Herstellers oder kontaktieren Sie den Support. Niemals raten
|
|
122
|
+
{ type: 'tip', html: '<strong>Prüfen Sie immer zuerst das Verhältnis im Gerätehandbuch.</strong> Wenn Sie es nicht finden, besuchen Sie die Website des Herstellers oder kontaktieren Sie den Support. Niemals raten - ein falsches Verhältnis führt zum Erlöschen der Garantie und riskiert einen Motorschaden.' },
|
|
123
123
|
|
|
124
124
|
{ type: 'title', text: 'Glossar: Zweitakt-Begriffe erklärt', level: 3 },
|
|
125
125
|
{ type: 'glossary', items: [
|
|
@@ -142,12 +142,12 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
142
142
|
|
|
143
143
|
{ type: 'title', text: 'Häufige Fehler, die Motoren töten', level: 3 },
|
|
144
144
|
{ type: 'diagnostic', variant: 'error', title: 'Viertaktöl in Zweitaktmotoren verwenden', icon: 'mdi:alert', badge: 'Motortod', html: 'Viertaktöle sind für die Zirkulation im Motorblock gedacht. Im Zweitakter verbrennen sie nicht sauber und zerstören den Motor binnen Stunden.' },
|
|
145
|
-
{ type: 'diagnostic', variant: 'warning', title: 'Gründliches Mischen vergessen', icon: 'mdi:alert', badge: 'Fresser-Risiko', html: 'Wenn sich Öl und Benzin trennen, laufen Teile Ihres Motors ohne Schmierung. Mindestens 1
|
|
145
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Gründliches Mischen vergessen', icon: 'mdi:alert', badge: 'Fresser-Risiko', html: 'Wenn sich Öl und Benzin trennen, laufen Teile Ihres Motors ohne Schmierung. Mindestens 1-2 Minuten lang kräftig schütteln.' },
|
|
146
146
|
{ type: 'diagnostic', variant: 'warning', title: 'Alten Kraftstoff verwenden (über 60 Tage)', icon: 'mdi:alert', badge: 'Verharzungsgefahr', html: 'Ethanol-Benzin zersetzt sich mit der Zeit. Alte Mischung hinterlässt Harzablagerungen im Vergaser. Nur mischen, was in 30 Tagen verbraucht wird.' },
|
|
147
147
|
|
|
148
148
|
{ type: 'title', text: 'FAQ Zusammenfassung', level: 3 },
|
|
149
149
|
{ type: 'summary', title: 'Vor dem Mischen', items: [
|
|
150
|
-
'Prüfen Sie das Handbuch auf das exakte Verhältnis
|
|
150
|
+
'Prüfen Sie das Handbuch auf das exakte Verhältnis - das ist die Vorgabe des Herstellers.',
|
|
151
151
|
'Sicherstellen, dass Sie Zweitaktöl verwenden, kein Viertakt- oder sonstiges Öl.',
|
|
152
152
|
'Verwenden Sie einen sauberen, speziellen Behälter nur zum Mischen.',
|
|
153
153
|
'Frisches Benzin (nicht monatelang gelagert) und passendes Öl verwenden.',
|
|
@@ -182,7 +182,7 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
182
182
|
labelRatioShort: 'Verhältnis',
|
|
183
183
|
labelOilTip: '2% Öl-Mix = 1:50 Verhältnis',
|
|
184
184
|
labelMixingTips: 'Tipps zum Mischen',
|
|
185
|
-
labelMixingTipsDesc: 'In sauberem Behälter mischen
|
|
185
|
+
labelMixingTipsDesc: 'In sauberem Behälter mischen - erst Benzin, dann Öl, dann Restbenzin. 1-2 Minuten kräftig schütteln. Mit Datum und Verhältnis beschriften.',
|
|
186
186
|
recipePrefix: 'Für',
|
|
187
187
|
recipeAt: 'Benzin bei',
|
|
188
188
|
recipeAdd: 'fügen Sie genau',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, SoftwareApplication } from 'schema-dts';
|
|
1
|
+
import type { WithContext, FAQPage, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { TwoStrokeMixtureCalculatorUI } from '../ui';
|
|
4
4
|
import { bibliography } from '../bibliography';
|
|
@@ -14,7 +14,7 @@ const faqData = [
|
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
question: 'What are common fuel oil mix ratios?',
|
|
17
|
-
answer: 'Common ratios are 1:25 (rich, protective), 1:33 (older equipment), 1:40 (standard), and 1:50 (lean, modern engines). Check your engine manual for the exact ratio
|
|
17
|
+
answer: 'Common ratios are 1:25 (rich, protective), 1:33 (older equipment), 1:40 (standard), and 1:50 (lean, modern engines). Check your engine manual for the exact ratio-using the wrong ratio can damage your engine.',
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
20
|
question: 'What happens if I mix wrong?',
|
|
@@ -22,7 +22,7 @@ const faqData = [
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
question: 'What type of oil do I use?',
|
|
25
|
-
answer: 'Use 2-stroke motor oil rated for your equipment. Premium synthetic 2-stroke oils provide better protection and cleaner burning than conventional oils. Never use 4-stroke engine oil
|
|
25
|
+
answer: 'Use 2-stroke motor oil rated for your equipment. Premium synthetic 2-stroke oils provide better protection and cleaner burning than conventional oils. Never use 4-stroke engine oil-it will cause engine damage.',
|
|
26
26
|
},
|
|
27
27
|
{
|
|
28
28
|
question: 'How do I mix fuel and oil?',
|
|
@@ -83,15 +83,15 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
83
83
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
84
84
|
seo: [
|
|
85
85
|
{ type: 'title', text: '2-Stroke Fuel Mixture Calculator: Precise Oil and Fuel Ratios for Chainsaws, Mopeds & Small Engines', level: 2 },
|
|
86
|
-
{ type: 'paragraph', html: 'Two-stroke engines require a precise fuel-oil mixture for survival. Mix wrong and destroy your engine in minutes. This calculator instantly determines the exact amount of oil needed for your fuel volume and engine type
|
|
86
|
+
{ type: 'paragraph', html: 'Two-stroke engines require a precise fuel-oil mixture for survival. Mix wrong and destroy your engine in minutes. This calculator instantly determines the exact amount of oil needed for your fuel volume and engine type-eliminating guesswork from the workshop.' },
|
|
87
87
|
|
|
88
88
|
{ type: 'title', text: 'Why 2-Stroke Engines Require Oil in Fuel', level: 3 },
|
|
89
|
-
{ type: 'card', icon: 'mdi:engine', title: 'The Critical Difference', html: 'Unlike 4-stroke engines with separate oil reservoirs, 2-stroke engines mix oil directly into fuel. On each power stroke, the engine burns the fuel-oil mixture for both energy and lubrication. There is no sump, no separate oil pump
|
|
89
|
+
{ type: 'card', icon: 'mdi:engine', title: 'The Critical Difference', html: 'Unlike 4-stroke engines with separate oil reservoirs, 2-stroke engines mix oil directly into fuel. On each power stroke, the engine burns the fuel-oil mixture for both energy and lubrication. There is no sump, no separate oil pump-only the mixed fuel keeping pistons alive.' },
|
|
90
90
|
|
|
91
91
|
{ type: 'title', text: '2-Stroke Ratio Quick Reference', level: 3 },
|
|
92
92
|
{ type: 'table', headers: ['Ratio', 'Oil %', 'Use Case', 'Engine Type', 'Characteristics'], rows: [
|
|
93
93
|
['1:25', '3.85%', 'Maximum Protection', 'Pre-1980s equipment, high-load use, vintage motorcycles', 'Rich mixture: more smoke, more carbon buildup, maximum protection against seizure'],
|
|
94
|
-
['1:33', '2.94%', 'Classic Equipment', '1980s
|
|
94
|
+
['1:33', '2.94%', 'Classic Equipment', '1980s-1990s small engines, older chainsaws', 'Moderate richness: balanced protection and efficiency'],
|
|
95
95
|
['1:40', '2.44%', 'Industry Standard', 'Most modern chainsaws, mopeds, modern small engines', 'Standard recommendation: designed for today\'s synthetic oils'],
|
|
96
96
|
['1:50', '1.96%', 'Modern Efficiency', 'Latest chainsaws, high-performance mopeds, new motorcycles', 'Lean mixture: less smoke, cleaner burning, designed for premium synthetic oils']
|
|
97
97
|
] },
|
|
@@ -104,8 +104,8 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
104
104
|
] },
|
|
105
105
|
|
|
106
106
|
{ type: 'title', text: 'Common Equipment Ratios', level: 3 },
|
|
107
|
-
{ type: 'card', icon: 'mdi:tree', title: 'Chainsaws', html: '<strong>Stihl, Husqvarna, Echo:</strong> Modern models typically require 1:40 or 1:50. Always check your manual
|
|
108
|
-
{ type: 'card', icon: 'mdi:motorcycle', title: 'Mopeds & Motorcycles', html: '<strong>Vespa, Honda, Yamaha:</strong> Most require 1:33 for older models, 1:40
|
|
107
|
+
{ type: 'card', icon: 'mdi:tree', title: 'Chainsaws', html: '<strong>Stihl, Husqvarna, Echo:</strong> Modern models typically require 1:40 or 1:50. Always check your manual-using 1:25 on a modern chainsaw risks fouled plugs and poor performance. Older Stihl machines (1990s and earlier) may specify 1:25 or 1:33.' },
|
|
108
|
+
{ type: 'card', icon: 'mdi:motorcycle', title: 'Mopeds & Motorcycles', html: '<strong>Vespa, Honda, Yamaha:</strong> Most require 1:33 for older models, 1:40-1:50 for modern versions. High-performance mopeds and street bikes often specify 1:50 ratios. Check your service manual-it\'s the source of truth.' },
|
|
109
109
|
{ type: 'card', icon: 'mdi:tools', title: 'Leaf Blowers & Trimmers', html: '<strong>Stihl, Husqvarna, DeWalt:</strong> Typically 1:50 (modern) or 1:40 (slightly older). These tools are designed for quick seasonal use, so lean ratios save on smoke and cost without sacrificing reliability.' },
|
|
110
110
|
|
|
111
111
|
{ type: 'title', text: 'Oil Type Matters as Much as Ratio', level: 3 },
|
|
@@ -116,10 +116,10 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
116
116
|
], columns: 3 },
|
|
117
117
|
|
|
118
118
|
{ type: 'title', text: 'Step-by-Step Mixing Process', level: 3 },
|
|
119
|
-
{ type: 'card', icon: 'mdi:check-circle', title: 'The Right Way to Mix', html: '<ol style="margin: 1rem 0; padding-left: 1.5rem;"><li><strong>Use a dedicated container</strong> reserved for fuel mixing only. Clean, dry, marked for fuel.</li><li><strong>Pour half your fuel</strong> into the container first.</li><li><strong>Add the calculated oil amount</strong> (use this calculator for precision).</li><li><strong>Add remaining fuel</strong> to reach target volume.</li><li><strong>Shake vigorously for 1
|
|
119
|
+
{ type: 'card', icon: 'mdi:check-circle', title: 'The Right Way to Mix', html: '<ol style="margin: 1rem 0; padding-left: 1.5rem;"><li><strong>Use a dedicated container</strong> reserved for fuel mixing only. Clean, dry, marked for fuel.</li><li><strong>Pour half your fuel</strong> into the container first.</li><li><strong>Add the calculated oil amount</strong> (use this calculator for precision).</li><li><strong>Add remaining fuel</strong> to reach target volume.</li><li><strong>Shake vigorously for 1-2 minutes</strong> until color is uniform. A homogeneous mixture = even lubrication.</li><li><strong>Label the container</strong> with date, ratio, and fuel type.</li><li><strong>Use within 30 days</strong> (synthetic oils extend this to 60 days).</li></ol>' },
|
|
120
120
|
|
|
121
121
|
{ type: 'title', text: 'When to Question Your Equipment Manual', level: 3 },
|
|
122
|
-
{ type: 'tip', html: '<strong>Always verify the ratio in your equipment manual first.</strong> If you can\'t locate it, visit the manufacturer\'s website or contact their support. Never assume
|
|
122
|
+
{ type: 'tip', html: '<strong>Always verify the ratio in your equipment manual first.</strong> If you can\'t locate it, visit the manufacturer\'s website or contact their support. Never assume-a wrong ratio voids warranties and risks engine seizure. If your equipment is vintage and the manual is lost, search online for the model number. The cost of a replacement manual is far less than rebuilding an engine.' },
|
|
123
123
|
|
|
124
124
|
{ type: 'title', text: 'Glossary: 2-Stroke Terms Explained', level: 3 },
|
|
125
125
|
{ type: 'glossary', items: [
|
|
@@ -142,12 +142,12 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
142
142
|
|
|
143
143
|
{ type: 'title', text: 'Common Mistakes That Kill Engines', level: 3 },
|
|
144
144
|
{ type: 'diagnostic', variant: 'error', title: 'Using 4 Stroke Oil in 2 Stroke Engines', icon: 'mdi:alert', badge: 'Engine Death', html: '4-stroke oils are designed for circulation through an engine block. In a 2-stroke fuel tank, they don\'t burn cleanly and will destroy your engine in hours.' },
|
|
145
|
-
{ type: 'diagnostic', variant: 'warning', title: 'Forgetting to Mix Thoroughly', icon: 'mdi:alert', badge: 'Seizure Risk', html: 'If oil and fuel separate due to incomplete mixing, parts of your engine will burn without lubrication. Shake for at least 1
|
|
145
|
+
{ type: 'diagnostic', variant: 'warning', title: 'Forgetting to Mix Thoroughly', icon: 'mdi:alert', badge: 'Seizure Risk', html: 'If oil and fuel separate due to incomplete mixing, parts of your engine will burn without lubrication. Shake for at least 1-2 minutes until the mixture is uniform.' },
|
|
146
146
|
{ type: 'diagnostic', variant: 'warning', title: 'Using Old Fuel (Over 60 Days Old)', icon: 'mdi:alert', badge: 'Gum Buildup', html: 'Ethanol-blend fuel separates over time. Old fuel mixture leaves gum deposits in carburetors and fuel injectors. Mix only what you\'ll use within 30 days.' },
|
|
147
147
|
|
|
148
148
|
{ type: 'title', text: 'FAQ Summary', level: 3 },
|
|
149
149
|
{ type: 'summary', title: 'Before You Mix', items: [
|
|
150
|
-
'Check your equipment manual for the exact ratio
|
|
150
|
+
'Check your equipment manual for the exact ratio-this is the manufacturer\'s tested specification.',
|
|
151
151
|
'Verify you\'re using 2-stroke oil, not 4-stroke or other oils.',
|
|
152
152
|
'Use a clean, dedicated container reserved only for fuel mixing.',
|
|
153
153
|
'Use fresh gasoline (not stored for months) and compatible 2-stroke oil.',
|
|
@@ -182,7 +182,7 @@ export const content: ToolLocaleContent<TwoStrokeMixtureCalculatorUI> = {
|
|
|
182
182
|
labelRatioShort: 'Ratio',
|
|
183
183
|
labelOilTip: '2% oil mix = 1:50 ratio',
|
|
184
184
|
labelMixingTips: 'Mixing Tips',
|
|
185
|
-
labelMixingTipsDesc: 'Mix in a clean container
|
|
185
|
+
labelMixingTipsDesc: 'Mix in a clean container-gasoline first, add measured oil, then remaining fuel. Shake well (1-2 minutes) for homogeneous blend. Label with date and ratio.',
|
|
186
186
|
recipePrefix: 'For',
|
|
187
187
|
recipeAt: 'of fuel at',
|
|
188
188
|
recipeAdd: 'add exactly',
|