@jjlmoya/utils-diy 1.28.0 → 1.30.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 +2 -2
- package/src/category/i18n/de.ts +12 -12
- package/src/category/i18n/en.ts +110 -110
- package/src/category/i18n/es.ts +110 -110
- package/src/category/i18n/fr.ts +101 -101
- package/src/category/i18n/id.ts +12 -12
- package/src/category/i18n/it.ts +12 -12
- package/src/category/i18n/ja.ts +12 -12
- package/src/category/i18n/ko.ts +12 -12
- package/src/category/i18n/nl.ts +12 -12
- package/src/category/i18n/pl.ts +12 -12
- package/src/category/i18n/pt.ts +12 -12
- package/src/category/i18n/ru.ts +12 -12
- package/src/category/i18n/sv.ts +12 -12
- package/src/category/i18n/tr.ts +12 -12
- package/src/category/i18n/zh.ts +12 -12
- package/src/category/index.ts +36 -36
- package/src/category/seo.astro +1 -1
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/entries.ts +37 -37
- package/src/env.d.ts +1 -1
- package/src/index.ts +50 -50
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/category_seo_quality.test.ts +74 -0
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/seo_length.test.ts +1 -1
- package/src/tests/seo_parity.test.ts +2 -2
- package/src/tests/seo_translation_completeness.test.ts +18 -12
- package/src/tests/tool_validation.test.ts +15 -15
- package/src/tool/balusterCalculator/bibliography.ts +16 -16
- package/src/tool/balusterCalculator/i18n/de.ts +251 -251
- package/src/tool/balusterCalculator/i18n/en.ts +251 -251
- package/src/tool/balusterCalculator/i18n/es.ts +251 -251
- package/src/tool/balusterCalculator/i18n/fr.ts +251 -251
- package/src/tool/balusterCalculator/i18n/id.ts +251 -251
- package/src/tool/balusterCalculator/i18n/it.ts +251 -251
- package/src/tool/balusterCalculator/i18n/ja.ts +251 -251
- package/src/tool/balusterCalculator/i18n/ko.ts +251 -251
- package/src/tool/balusterCalculator/i18n/nl.ts +251 -251
- package/src/tool/balusterCalculator/i18n/pl.ts +251 -251
- package/src/tool/balusterCalculator/i18n/pt.ts +251 -251
- package/src/tool/balusterCalculator/i18n/ru.ts +251 -251
- package/src/tool/balusterCalculator/i18n/sv.ts +251 -251
- package/src/tool/balusterCalculator/i18n/tr.ts +251 -251
- package/src/tool/balusterCalculator/i18n/zh.ts +251 -251
- package/src/tool/balusterCalculator/seo.astro +15 -15
- package/src/tool/clayCalculator/bibliography.ts +12 -12
- package/src/tool/clayCalculator/i18n/de.ts +174 -174
- package/src/tool/clayCalculator/i18n/en.ts +174 -174
- package/src/tool/clayCalculator/i18n/es.ts +174 -174
- package/src/tool/clayCalculator/i18n/fr.ts +174 -174
- package/src/tool/clayCalculator/i18n/id.ts +174 -174
- package/src/tool/clayCalculator/i18n/it.ts +174 -174
- package/src/tool/clayCalculator/i18n/ja.ts +173 -173
- package/src/tool/clayCalculator/i18n/ko.ts +174 -174
- package/src/tool/clayCalculator/i18n/nl.ts +174 -174
- package/src/tool/clayCalculator/i18n/pl.ts +174 -174
- package/src/tool/clayCalculator/i18n/pt.ts +174 -174
- package/src/tool/clayCalculator/i18n/ru.ts +174 -174
- package/src/tool/clayCalculator/i18n/sv.ts +174 -174
- package/src/tool/clayCalculator/i18n/tr.ts +174 -174
- package/src/tool/clayCalculator/i18n/zh.ts +174 -174
- package/src/tool/clayCalculator/seo.astro +15 -15
- package/src/tool/concreteCalculator/bibliography.ts +7 -7
- package/src/tool/concreteCalculator/i18n/de.ts +188 -188
- package/src/tool/concreteCalculator/i18n/en.ts +188 -188
- package/src/tool/concreteCalculator/i18n/es.ts +188 -188
- package/src/tool/concreteCalculator/i18n/fr.ts +188 -188
- package/src/tool/concreteCalculator/i18n/id.ts +188 -188
- package/src/tool/concreteCalculator/i18n/it.ts +188 -188
- package/src/tool/concreteCalculator/i18n/ja.ts +188 -188
- package/src/tool/concreteCalculator/i18n/ko.ts +188 -188
- package/src/tool/concreteCalculator/i18n/nl.ts +188 -188
- package/src/tool/concreteCalculator/i18n/pl.ts +188 -188
- package/src/tool/concreteCalculator/i18n/pt.ts +188 -188
- package/src/tool/concreteCalculator/i18n/ru.ts +188 -188
- package/src/tool/concreteCalculator/i18n/sv.ts +188 -188
- package/src/tool/concreteCalculator/i18n/tr.ts +188 -188
- package/src/tool/concreteCalculator/i18n/zh.ts +188 -188
- package/src/tool/concreteCalculator/seo.astro +15 -15
- package/src/tool/cutOptimizer/bibliography.ts +12 -12
- package/src/tool/cutOptimizer/i18n/de.ts +169 -169
- package/src/tool/cutOptimizer/i18n/en.ts +169 -169
- package/src/tool/cutOptimizer/i18n/es.ts +169 -169
- package/src/tool/cutOptimizer/i18n/fr.ts +169 -169
- package/src/tool/cutOptimizer/i18n/id.ts +169 -169
- package/src/tool/cutOptimizer/i18n/it.ts +169 -169
- package/src/tool/cutOptimizer/i18n/ja.ts +169 -169
- package/src/tool/cutOptimizer/i18n/ko.ts +169 -169
- package/src/tool/cutOptimizer/i18n/nl.ts +169 -169
- package/src/tool/cutOptimizer/i18n/pl.ts +169 -169
- package/src/tool/cutOptimizer/i18n/pt.ts +169 -169
- package/src/tool/cutOptimizer/i18n/ru.ts +169 -169
- package/src/tool/cutOptimizer/i18n/sv.ts +169 -169
- package/src/tool/cutOptimizer/i18n/tr.ts +169 -169
- package/src/tool/cutOptimizer/i18n/zh.ts +169 -169
- package/src/tool/cutOptimizer/seo.astro +15 -15
- package/src/tool/drillCalculator/bibliography.ts +12 -12
- package/src/tool/drillCalculator/i18n/de.ts +134 -134
- package/src/tool/drillCalculator/i18n/en.ts +134 -134
- package/src/tool/drillCalculator/i18n/es.ts +134 -134
- package/src/tool/drillCalculator/i18n/fr.ts +134 -134
- package/src/tool/drillCalculator/i18n/id.ts +134 -134
- package/src/tool/drillCalculator/i18n/it.ts +134 -134
- package/src/tool/drillCalculator/i18n/ja.ts +134 -134
- package/src/tool/drillCalculator/i18n/ko.ts +134 -134
- package/src/tool/drillCalculator/i18n/nl.ts +134 -134
- package/src/tool/drillCalculator/i18n/pl.ts +134 -134
- package/src/tool/drillCalculator/i18n/pt.ts +134 -134
- package/src/tool/drillCalculator/i18n/ru.ts +134 -134
- package/src/tool/drillCalculator/i18n/sv.ts +134 -134
- package/src/tool/drillCalculator/i18n/tr.ts +134 -134
- package/src/tool/drillCalculator/i18n/zh.ts +134 -134
- package/src/tool/drillCalculator/seo.astro +15 -15
- package/src/tool/drillSharpener/bibliography.ts +16 -16
- package/src/tool/drillSharpener/i18n/de.ts +117 -117
- package/src/tool/drillSharpener/i18n/en.ts +117 -117
- package/src/tool/drillSharpener/i18n/es.ts +117 -117
- package/src/tool/drillSharpener/i18n/fr.ts +117 -117
- package/src/tool/drillSharpener/i18n/id.ts +117 -117
- package/src/tool/drillSharpener/i18n/it.ts +117 -117
- package/src/tool/drillSharpener/i18n/ja.ts +117 -117
- package/src/tool/drillSharpener/i18n/ko.ts +117 -117
- package/src/tool/drillSharpener/i18n/nl.ts +117 -117
- package/src/tool/drillSharpener/i18n/pl.ts +117 -117
- package/src/tool/drillSharpener/i18n/pt.ts +117 -117
- package/src/tool/drillSharpener/i18n/ru.ts +117 -117
- package/src/tool/drillSharpener/i18n/sv.ts +117 -117
- package/src/tool/drillSharpener/i18n/tr.ts +117 -117
- package/src/tool/drillSharpener/i18n/zh.ts +117 -117
- package/src/tool/drillSharpener/seo.astro +15 -15
- package/src/tool/epoxyCalculator/bibliography.ts +20 -20
- package/src/tool/epoxyCalculator/i18n/de.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/en.ts +178 -178
- package/src/tool/epoxyCalculator/i18n/es.ts +178 -178
- package/src/tool/epoxyCalculator/i18n/fr.ts +178 -178
- package/src/tool/epoxyCalculator/i18n/id.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/it.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/ja.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/ko.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/nl.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/pl.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/pt.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/ru.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/sv.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/tr.ts +116 -116
- package/src/tool/epoxyCalculator/i18n/zh.ts +116 -116
- package/src/tool/epoxyCalculator/seo.astro +15 -15
- package/src/tool/furnitureFit/bibliography.ts +12 -12
- package/src/tool/furnitureFit/i18n/de.ts +111 -111
- package/src/tool/furnitureFit/i18n/en.ts +149 -149
- package/src/tool/furnitureFit/i18n/es.ts +149 -149
- package/src/tool/furnitureFit/i18n/fr.ts +149 -149
- package/src/tool/furnitureFit/i18n/id.ts +111 -111
- package/src/tool/furnitureFit/i18n/it.ts +111 -111
- package/src/tool/furnitureFit/i18n/ja.ts +111 -111
- package/src/tool/furnitureFit/i18n/ko.ts +111 -111
- package/src/tool/furnitureFit/i18n/nl.ts +111 -111
- package/src/tool/furnitureFit/i18n/pl.ts +111 -111
- package/src/tool/furnitureFit/i18n/pt.ts +111 -111
- package/src/tool/furnitureFit/i18n/ru.ts +111 -111
- package/src/tool/furnitureFit/i18n/sv.ts +111 -111
- package/src/tool/furnitureFit/i18n/tr.ts +111 -111
- package/src/tool/furnitureFit/i18n/zh.ts +111 -111
- package/src/tool/furnitureFit/seo.astro +15 -15
- package/src/tool/mortarCalculator/bibliography.ts +20 -20
- package/src/tool/mortarCalculator/i18n/de.ts +130 -130
- package/src/tool/mortarCalculator/i18n/en.ts +202 -202
- package/src/tool/mortarCalculator/i18n/es.ts +179 -179
- package/src/tool/mortarCalculator/i18n/fr.ts +203 -203
- package/src/tool/mortarCalculator/i18n/id.ts +130 -130
- package/src/tool/mortarCalculator/i18n/it.ts +130 -130
- package/src/tool/mortarCalculator/i18n/ja.ts +130 -130
- package/src/tool/mortarCalculator/i18n/ko.ts +130 -130
- package/src/tool/mortarCalculator/i18n/nl.ts +130 -130
- package/src/tool/mortarCalculator/i18n/pl.ts +130 -130
- package/src/tool/mortarCalculator/i18n/pt.ts +130 -130
- package/src/tool/mortarCalculator/i18n/ru.ts +130 -130
- package/src/tool/mortarCalculator/i18n/sv.ts +130 -130
- package/src/tool/mortarCalculator/i18n/tr.ts +130 -130
- package/src/tool/mortarCalculator/i18n/zh.ts +130 -130
- package/src/tool/mortarCalculator/seo.astro +15 -15
- package/src/tool/passepartoutCalculator/bibliography.ts +16 -16
- package/src/tool/passepartoutCalculator/i18n/de.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/en.ts +165 -165
- package/src/tool/passepartoutCalculator/i18n/es.ts +165 -165
- package/src/tool/passepartoutCalculator/i18n/fr.ts +165 -165
- package/src/tool/passepartoutCalculator/i18n/id.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/it.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/ja.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/ko.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/nl.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/pl.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/pt.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/ru.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/sv.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/tr.ts +108 -108
- package/src/tool/passepartoutCalculator/i18n/zh.ts +108 -108
- package/src/tool/passepartoutCalculator/seo.astro +15 -15
- package/src/tool/pythagoreanRightAngleCalculator/bibliography.ts +12 -12
- package/src/tool/pythagoreanRightAngleCalculator/i18n/de.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/en.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/es.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/fr.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/id.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/it.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ja.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ko.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/nl.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/pl.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/pt.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/ru.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/sv.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/tr.ts +129 -129
- package/src/tool/pythagoreanRightAngleCalculator/i18n/zh.ts +129 -129
- package/src/tool/stairCalculator/bibliography.ts +16 -16
- package/src/tool/stairCalculator/i18n/de.ts +143 -143
- package/src/tool/stairCalculator/i18n/en.ts +145 -145
- package/src/tool/stairCalculator/i18n/es.ts +145 -145
- package/src/tool/stairCalculator/i18n/fr.ts +145 -145
- package/src/tool/stairCalculator/i18n/id.ts +143 -143
- package/src/tool/stairCalculator/i18n/it.ts +143 -143
- package/src/tool/stairCalculator/i18n/ja.ts +143 -143
- package/src/tool/stairCalculator/i18n/ko.ts +143 -143
- package/src/tool/stairCalculator/i18n/nl.ts +143 -143
- package/src/tool/stairCalculator/i18n/pl.ts +143 -143
- package/src/tool/stairCalculator/i18n/pt.ts +143 -143
- package/src/tool/stairCalculator/i18n/ru.ts +143 -143
- package/src/tool/stairCalculator/i18n/sv.ts +143 -143
- package/src/tool/stairCalculator/i18n/tr.ts +143 -143
- package/src/tool/stairCalculator/i18n/zh.ts +143 -143
- package/src/tool/stairCalculator/seo.astro +15 -15
- package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -16
- package/src/tool/thermalExpansionCalculator/i18n/de.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/en.ts +170 -170
- package/src/tool/thermalExpansionCalculator/i18n/es.ts +170 -170
- package/src/tool/thermalExpansionCalculator/i18n/fr.ts +170 -170
- package/src/tool/thermalExpansionCalculator/i18n/id.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/it.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/ja.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/ko.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/nl.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/pl.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/pt.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/ru.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/sv.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/tr.ts +132 -132
- package/src/tool/thermalExpansionCalculator/i18n/zh.ts +132 -132
- package/src/tool/thermalExpansionCalculator/seo.astro +15 -15
- package/src/tool/twoStrokeMixtureCalculator/bibliography.ts +12 -12
- package/src/tool/twoStrokeMixtureCalculator/i18n/de.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/en.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/es.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/fr.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/id.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/it.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/ja.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/ko.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/nl.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/pl.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/pt.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/ru.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/sv.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/tr.ts +194 -194
- package/src/tool/twoStrokeMixtureCalculator/i18n/zh.ts +194 -194
- package/src/tool/voltageDropCalculator/bibliography.ts +16 -16
- package/src/tool/voltageDropCalculator/i18n/de.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/en.ts +151 -151
- package/src/tool/voltageDropCalculator/i18n/es.ts +151 -151
- package/src/tool/voltageDropCalculator/i18n/fr.ts +145 -145
- package/src/tool/voltageDropCalculator/i18n/id.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/it.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/ja.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/ko.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/nl.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/pl.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/pt.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/ru.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/sv.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/tr.ts +113 -113
- package/src/tool/voltageDropCalculator/i18n/zh.ts +113 -113
- package/src/tool/voltageDropCalculator/seo.astro +15 -15
- package/src/tool/workshopFractionConverter/bibliography.ts +12 -12
- package/src/tool/workshopFractionConverter/i18n/de.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/en.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/es.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/fr.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/id.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/it.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/ja.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/ko.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/nl.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/pl.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/pt.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/ru.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/sv.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/tr.ts +147 -147
- package/src/tool/workshopFractionConverter/i18n/zh.ts +147 -147
- package/src/tools.ts +20 -20
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import type { EpoxyCalculatorUI } from '../ui';
|
|
4
|
-
import { bibliography } from '../bibliography';
|
|
5
|
-
|
|
6
|
-
const slug = 'calculateur-resine-epoxy';
|
|
7
|
-
const title = 'Calculateur de Résine Époxy: Mélange et Volume Exact';
|
|
8
|
-
const description =
|
|
9
|
-
"Calculez la quantité exacte de résine époxy et de durcisseur nécessaire pour vos projets. Évitez les gaspillages pour les tables rivières, bijoux et moules.";
|
|
10
|
-
|
|
11
|
-
const faqData = [
|
|
12
|
-
{
|
|
13
|
-
question: 'Pourquoi la proportion exacte est-elle si importante avec la résine ?',
|
|
14
|
-
answer:
|
|
15
|
-
"Contrairement à d'autres mélanges, la résine époxy ne sèche pas par évaporation mais par une réaction chimique (polymérisation). S'il y a un excès de résine ou de durcisseur, la réaction sera incomplète, laissant la pièce collante, molle ou avec des bulles permanentes.",
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
question: 'Quelle est la différence entre le ratio en poids et en volume ?',
|
|
19
|
-
answer:
|
|
20
|
-
"Beaucoup de résines se mélangent 2:1 en volume mais 100:45 en poids car le durcisseur est généralement plus dense. Utilisez toujours l'échelle indiquée par le fabricant et, si possible, une balance numérique pour une précision maximale.",
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: 'Comment éviter les bulles lors du mélange ?',
|
|
24
|
-
answer:
|
|
25
|
-
"Mélangez lentement avec des mouvements circulaires constants pendant au moins 3 minutes, en raclant bien les parois du récipient. Laissez reposer le mélange quelques minutes avant de verser pour que les bulles remontent à la surface.",
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
question: "Qu'est-ce que le Pot Life (durée de vie) ?",
|
|
29
|
-
answer:
|
|
30
|
-
"C'est le temps dont vous disposez pour travailler avec le mélange avant qu'il commence à durcir (gélifier). En été ou avec de grands volumes, ce temps est considérablement réduit en raison de la réaction exothermique (génère de la chaleur).",
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const howToData = [
|
|
35
|
-
{
|
|
36
|
-
name: 'Mesurer les dimensions du moule',
|
|
37
|
-
text: 'Mesurez la longueur, la largeur et la profondeur (épaisseur) de la zone que vous souhaitez remplir de résine.',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: 'Entrer le ratio de mélange',
|
|
41
|
-
text: "Vérifiez sur l'étiquette de votre produit si le mélange est 1:1, 2:1 ou 3:1 et s'il est basé sur le poids ou le volume.",
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'Peser les composants',
|
|
45
|
-
text: "Versez d'abord le composant A (résine) puis le B (durcisseur) dans un récipient propre sur une balance numérique.",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: 'Mélange technique',
|
|
49
|
-
text: "Remuez doucement jusqu'à ce que le mélange soit totalement transparent et qu'il n'y ait plus de 'fils' de densité différente visibles.",
|
|
50
|
-
},
|
|
51
|
-
];
|
|
52
|
-
|
|
53
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
-
'@context': 'https://schema.org',
|
|
55
|
-
'@type': 'FAQPage',
|
|
56
|
-
mainEntity: faqData.map((item) => ({
|
|
57
|
-
'@type': 'Question',
|
|
58
|
-
name: item.question,
|
|
59
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
-
})),
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const howToSchema: WithContext<HowToThing> = {
|
|
64
|
-
'@context': 'https://schema.org',
|
|
65
|
-
'@type': 'HowTo',
|
|
66
|
-
name: title,
|
|
67
|
-
description,
|
|
68
|
-
step: howToData.map((step, i) => ({
|
|
69
|
-
'@type': 'HowToStep',
|
|
70
|
-
position: i + 1,
|
|
71
|
-
name: step.name,
|
|
72
|
-
text: step.text,
|
|
73
|
-
})),
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
-
'@context': 'https://schema.org',
|
|
78
|
-
'@type': 'SoftwareApplication',
|
|
79
|
-
name: title,
|
|
80
|
-
description,
|
|
81
|
-
applicationCategory: 'UtilityApplication',
|
|
82
|
-
operatingSystem: 'All',
|
|
83
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
84
|
-
inLanguage: 'fr',
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
|
|
88
|
-
slug,
|
|
89
|
-
title,
|
|
90
|
-
description,
|
|
91
|
-
faqTitle: 'Questions Fréquentes',
|
|
92
|
-
faq: faqData,
|
|
93
|
-
bibliography,
|
|
94
|
-
howTo: howToData,
|
|
95
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
-
seo: [
|
|
97
|
-
{
|
|
98
|
-
type: 'title',
|
|
99
|
-
text: 'Guide de Calcul et de Mélange de Résine Époxyde',
|
|
100
|
-
level: 2,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
type: 'paragraph',
|
|
104
|
-
html: "La résine époxyde n'est pas une peinture qui sèche par évaporation ; c'est une <strong>réaction chimique exothermique</strong> complexe. La magie opère lorsque les molécules d'époxyde se lient aux molécules de polyamine pour former un polymère thermodurcissable solide et cristallin.",
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'paragraph',
|
|
108
|
-
html: "La différence entre une pièce artistique durable et un désastre collant réside dans la <strong>stœchiométrie exacte</strong>. Une erreur de seulement 5% dans le ratio de mélange peut inhiber définitivement la polymérisation. Cet outil élimine les approximations mathématiques pour vous permettre de vous concentrer sur la création.",
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
type: 'grid',
|
|
112
|
-
columns: [
|
|
113
|
-
{
|
|
114
|
-
type: 'card',
|
|
115
|
-
icon: 'mdi:scale-balance',
|
|
116
|
-
title: 'Volume ou Poids ?',
|
|
117
|
-
html: "<p>L'erreur n°1 des débutants est de supposer que 100ml pèsent 100g. <strong>La résine est plus dense que le durcisseur.</strong></p><p>Si la fiche technique de votre produit indique \"100:50 en poids\", ce n'est PAS équivalent à \"2:1 en volume\". Ce calculateur fonctionne avec le <strong>Volume</strong> (V = L × l × H), la norme pour remplir les moules.</p>",
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'card',
|
|
121
|
-
icon: 'mdi:water-percent',
|
|
122
|
-
title: 'Proportions Courantes',
|
|
123
|
-
html: "<ul><li><strong>1:1</strong> - Revêtements, vernis et adhésifs rapides.</li><li><strong>2:1</strong> - Standard. Tables rivières, bijoux et moules moyens.</li><li><strong>3:1</strong> - Sols industriels et stratifiés structurels haute résistance.</li></ul>",
|
|
124
|
-
},
|
|
125
|
-
],
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
type: 'title',
|
|
129
|
-
text: 'Protocole de Sécurité et Meilleures Pratiques',
|
|
130
|
-
level: 2,
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'grid',
|
|
134
|
-
columns: [
|
|
135
|
-
{
|
|
136
|
-
type: 'card',
|
|
137
|
-
icon: 'mdi:thermometer',
|
|
138
|
-
title: 'Température Critique',
|
|
139
|
-
html: '<p>Travaillez toujours entre <strong>21°C et 25°C</strong>. Le froid peut stopper la réaction, laissant la pièce trouble. La chaleur excessive accélère dangereusement la réaction exothermique ("flash cure").</p>',
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
type: 'card',
|
|
143
|
-
icon: 'mdi:cup-outline',
|
|
144
|
-
title: 'Technique du Double Récipient',
|
|
145
|
-
html: '<p>Ne faites pas confiance à un seul mélange. Raclez bien les côtés et le fond, versez le mélange dans un <strong>second récipient propre</strong> et remélangez. Cela garantit qu\'aucun matériau non catalysé ne reste.</p>',
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
type: 'card',
|
|
151
|
-
icon: 'mdi:weather-windy',
|
|
152
|
-
title: 'Ventilation',
|
|
153
|
-
html: "<p>Même si de nombreuses résines modernes sont à faible odeur, les vapeurs d'isocyanates et d'amines nécessitent une ventilation croisée ou un masque à charbon actif. Portez toujours des gants en nitrile.</p>",
|
|
154
|
-
},
|
|
155
|
-
],
|
|
156
|
-
ui: {
|
|
157
|
-
shapeRect: 'Rectangulaire',
|
|
158
|
-
shapeCylinder: 'Cylindrique',
|
|
159
|
-
shapeSphere: 'Sphérique',
|
|
160
|
-
labelLength: 'Longueur (cm)',
|
|
161
|
-
labelWidth: 'Largeur (cm)',
|
|
162
|
-
labelDiameter: 'Diamètre (cm)',
|
|
163
|
-
labelDepth: 'Profondeur (cm)',
|
|
164
|
-
labelRatio: 'Ratio de Mélange (Poids/Volume)',
|
|
165
|
-
labelCustomRatio: 'Utiliser un ratio personnalisé (A:B)',
|
|
166
|
-
labelResinA: 'Résine (A)',
|
|
167
|
-
labelHardenerB: 'Durcisseur (B)',
|
|
168
|
-
labelWasteTitle: 'Marge de Sécurité',
|
|
169
|
-
labelWasteDesc: "Ajoute 5% supplémentaire pour les pertes",
|
|
170
|
-
labelTotalVolume: 'Volume Total',
|
|
171
|
-
labelPartA: 'Partie A (Résine)',
|
|
172
|
-
labelPartB: 'Partie B (Durcisseur)',
|
|
173
|
-
labelVisualization: 'Visualisation',
|
|
174
|
-
shapeRectLabel: 'Bloc Rectangulaire',
|
|
175
|
-
shapeCylinderLabel: 'Cylindre / Moule Rond',
|
|
176
|
-
shapeSphereLabel: 'Sphère Complète',
|
|
177
|
-
},
|
|
178
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { EpoxyCalculatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'calculateur-resine-epoxy';
|
|
7
|
+
const title = 'Calculateur de Résine Époxy: Mélange et Volume Exact';
|
|
8
|
+
const description =
|
|
9
|
+
"Calculez la quantité exacte de résine époxy et de durcisseur nécessaire pour vos projets. Évitez les gaspillages pour les tables rivières, bijoux et moules.";
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: 'Pourquoi la proportion exacte est-elle si importante avec la résine ?',
|
|
14
|
+
answer:
|
|
15
|
+
"Contrairement à d'autres mélanges, la résine époxy ne sèche pas par évaporation mais par une réaction chimique (polymérisation). S'il y a un excès de résine ou de durcisseur, la réaction sera incomplète, laissant la pièce collante, molle ou avec des bulles permanentes.",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: 'Quelle est la différence entre le ratio en poids et en volume ?',
|
|
19
|
+
answer:
|
|
20
|
+
"Beaucoup de résines se mélangent 2:1 en volume mais 100:45 en poids car le durcisseur est généralement plus dense. Utilisez toujours l'échelle indiquée par le fabricant et, si possible, une balance numérique pour une précision maximale.",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Comment éviter les bulles lors du mélange ?',
|
|
24
|
+
answer:
|
|
25
|
+
"Mélangez lentement avec des mouvements circulaires constants pendant au moins 3 minutes, en raclant bien les parois du récipient. Laissez reposer le mélange quelques minutes avant de verser pour que les bulles remontent à la surface.",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: "Qu'est-ce que le Pot Life (durée de vie) ?",
|
|
29
|
+
answer:
|
|
30
|
+
"C'est le temps dont vous disposez pour travailler avec le mélange avant qu'il commence à durcir (gélifier). En été ou avec de grands volumes, ce temps est considérablement réduit en raison de la réaction exothermique (génère de la chaleur).",
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: 'Mesurer les dimensions du moule',
|
|
37
|
+
text: 'Mesurez la longueur, la largeur et la profondeur (épaisseur) de la zone que vous souhaitez remplir de résine.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'Entrer le ratio de mélange',
|
|
41
|
+
text: "Vérifiez sur l'étiquette de votre produit si le mélange est 1:1, 2:1 ou 3:1 et s'il est basé sur le poids ou le volume.",
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Peser les composants',
|
|
45
|
+
text: "Versez d'abord le composant A (résine) puis le B (durcisseur) dans un récipient propre sur une balance numérique.",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Mélange technique',
|
|
49
|
+
text: "Remuez doucement jusqu'à ce que le mélange soit totalement transparent et qu'il n'y ait plus de 'fils' de densité différente visibles.",
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
|
|
53
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'FAQPage',
|
|
56
|
+
mainEntity: faqData.map((item) => ({
|
|
57
|
+
'@type': 'Question',
|
|
58
|
+
name: item.question,
|
|
59
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
60
|
+
})),
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
64
|
+
'@context': 'https://schema.org',
|
|
65
|
+
'@type': 'HowTo',
|
|
66
|
+
name: title,
|
|
67
|
+
description,
|
|
68
|
+
step: howToData.map((step, i) => ({
|
|
69
|
+
'@type': 'HowToStep',
|
|
70
|
+
position: i + 1,
|
|
71
|
+
name: step.name,
|
|
72
|
+
text: step.text,
|
|
73
|
+
})),
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
77
|
+
'@context': 'https://schema.org',
|
|
78
|
+
'@type': 'SoftwareApplication',
|
|
79
|
+
name: title,
|
|
80
|
+
description,
|
|
81
|
+
applicationCategory: 'UtilityApplication',
|
|
82
|
+
operatingSystem: 'All',
|
|
83
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
84
|
+
inLanguage: 'fr',
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description,
|
|
91
|
+
faqTitle: 'Questions Fréquentes',
|
|
92
|
+
faq: faqData,
|
|
93
|
+
bibliography,
|
|
94
|
+
howTo: howToData,
|
|
95
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'Guide de Calcul et de Mélange de Résine Époxyde',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'paragraph',
|
|
104
|
+
html: "La résine époxyde n'est pas une peinture qui sèche par évaporation ; c'est une <strong>réaction chimique exothermique</strong> complexe. La magie opère lorsque les molécules d'époxyde se lient aux molécules de polyamine pour former un polymère thermodurcissable solide et cristallin.",
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'paragraph',
|
|
108
|
+
html: "La différence entre une pièce artistique durable et un désastre collant réside dans la <strong>stœchiométrie exacte</strong>. Une erreur de seulement 5% dans le ratio de mélange peut inhiber définitivement la polymérisation. Cet outil élimine les approximations mathématiques pour vous permettre de vous concentrer sur la création.",
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
type: 'grid',
|
|
112
|
+
columns: [
|
|
113
|
+
{
|
|
114
|
+
type: 'card',
|
|
115
|
+
icon: 'mdi:scale-balance',
|
|
116
|
+
title: 'Volume ou Poids ?',
|
|
117
|
+
html: "<p>L'erreur n°1 des débutants est de supposer que 100ml pèsent 100g. <strong>La résine est plus dense que le durcisseur.</strong></p><p>Si la fiche technique de votre produit indique \"100:50 en poids\", ce n'est PAS équivalent à \"2:1 en volume\". Ce calculateur fonctionne avec le <strong>Volume</strong> (V = L × l × H), la norme pour remplir les moules.</p>",
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'card',
|
|
121
|
+
icon: 'mdi:water-percent',
|
|
122
|
+
title: 'Proportions Courantes',
|
|
123
|
+
html: "<ul><li><strong>1:1</strong> - Revêtements, vernis et adhésifs rapides.</li><li><strong>2:1</strong> - Standard. Tables rivières, bijoux et moules moyens.</li><li><strong>3:1</strong> - Sols industriels et stratifiés structurels haute résistance.</li></ul>",
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'title',
|
|
129
|
+
text: 'Protocole de Sécurité et Meilleures Pratiques',
|
|
130
|
+
level: 2,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'grid',
|
|
134
|
+
columns: [
|
|
135
|
+
{
|
|
136
|
+
type: 'card',
|
|
137
|
+
icon: 'mdi:thermometer',
|
|
138
|
+
title: 'Température Critique',
|
|
139
|
+
html: '<p>Travaillez toujours entre <strong>21°C et 25°C</strong>. Le froid peut stopper la réaction, laissant la pièce trouble. La chaleur excessive accélère dangereusement la réaction exothermique ("flash cure").</p>',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'card',
|
|
143
|
+
icon: 'mdi:cup-outline',
|
|
144
|
+
title: 'Technique du Double Récipient',
|
|
145
|
+
html: '<p>Ne faites pas confiance à un seul mélange. Raclez bien les côtés et le fond, versez le mélange dans un <strong>second récipient propre</strong> et remélangez. Cela garantit qu\'aucun matériau non catalysé ne reste.</p>',
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
type: 'card',
|
|
151
|
+
icon: 'mdi:weather-windy',
|
|
152
|
+
title: 'Ventilation',
|
|
153
|
+
html: "<p>Même si de nombreuses résines modernes sont à faible odeur, les vapeurs d'isocyanates et d'amines nécessitent une ventilation croisée ou un masque à charbon actif. Portez toujours des gants en nitrile.</p>",
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
ui: {
|
|
157
|
+
shapeRect: 'Rectangulaire',
|
|
158
|
+
shapeCylinder: 'Cylindrique',
|
|
159
|
+
shapeSphere: 'Sphérique',
|
|
160
|
+
labelLength: 'Longueur (cm)',
|
|
161
|
+
labelWidth: 'Largeur (cm)',
|
|
162
|
+
labelDiameter: 'Diamètre (cm)',
|
|
163
|
+
labelDepth: 'Profondeur (cm)',
|
|
164
|
+
labelRatio: 'Ratio de Mélange (Poids/Volume)',
|
|
165
|
+
labelCustomRatio: 'Utiliser un ratio personnalisé (A:B)',
|
|
166
|
+
labelResinA: 'Résine (A)',
|
|
167
|
+
labelHardenerB: 'Durcisseur (B)',
|
|
168
|
+
labelWasteTitle: 'Marge de Sécurité',
|
|
169
|
+
labelWasteDesc: "Ajoute 5% supplémentaire pour les pertes",
|
|
170
|
+
labelTotalVolume: 'Volume Total',
|
|
171
|
+
labelPartA: 'Partie A (Résine)',
|
|
172
|
+
labelPartB: 'Partie B (Durcisseur)',
|
|
173
|
+
labelVisualization: 'Visualisation',
|
|
174
|
+
shapeRectLabel: 'Bloc Rectangulaire',
|
|
175
|
+
shapeCylinderLabel: 'Cylindre / Moule Rond',
|
|
176
|
+
shapeSphereLabel: 'Sphère Complète',
|
|
177
|
+
},
|
|
178
|
+
};
|
|
@@ -1,116 +1,116 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import type { EpoxyCalculatorUI } from '../ui';
|
|
4
|
-
import { bibliography } from '../bibliography';
|
|
5
|
-
|
|
6
|
-
const slug = 'kalkulator-resin-epoksi';
|
|
7
|
-
const title = 'Kalkulator Resin Epoksi: Campuran dan Volume Tepat';
|
|
8
|
-
const description = 'Hitung jumlah tepat resin epoksi dan katalis yang dibutuhkan untuk proyek Anda. Hindari pemborosan pada meja river, perhiasan, dan cetakan.';
|
|
9
|
-
|
|
10
|
-
const faqData = [
|
|
11
|
-
{
|
|
12
|
-
question: 'Mengapa proporsi yang tepat sangat penting dalam resin?',
|
|
13
|
-
answer: 'Berbeda dengan campuran lain, resin epoksi tidak kering melalui penguapan, melainkan melalui reaksi kimia (polimerisasi). Jika ada kelebihan resin atau katalis, reaksi tidak akan sempurna, meninggalkan bagian yang lengket, lunak, atau dengan gelembung permanen.',
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
question: 'Apa itu perbandingan berat vs volume?',
|
|
17
|
-
answer: 'Banyak resin dicampur 2:1 dalam volume tetapi 100:45 dalam berat karena katalis biasanya lebih padat. Gunakan selalu skala yang ditentukan pabrikan dan, jika mungkin, gunakan timbangan digital demi presisi maksimal.',
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
question: 'Bagaimana cara menghindari gelembung saat mengaduk?',
|
|
21
|
-
answer: 'Aduk perlahan dengan gerakan memutar konstan selama setidaknya 3 menit, bersihkan dinding wadah dengan baik. Diamkan campuran selama beberapa menit sebelum dituang agar gelembung naik ke permukaan.',
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
question: 'Apa itu masa pakai (Pot Life)?',
|
|
25
|
-
answer: 'Adalah waktu yang Anda miliki untuk mengerjakan campuran sebelum mulai mengeras (mengental). Di musim panas atau dalam volume besar, waktu ini berkurang drastis karena reaksi eksotermik (menghasilkan panas).',
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
const howToData = [
|
|
30
|
-
{ name: 'Ukur dimensi cetakan', text: 'Ukur panjang, lebar, dan kedalaman (tebal) area yang ingin Anda isi dengan resin.' },
|
|
31
|
-
{ name: 'Masukkan rasio campuran', text: 'Periksa label produk Anda apakah campurannya 1:1, 2:1, atau 3:1 dan apakah berdasarkan berat atau volume.' },
|
|
32
|
-
{ name: 'Timbang komponen', text: 'Tuang komponen A (resin) terlebih dahulu lalu B (katalis) ke dalam wadah bersih di atas timbangan digital.' },
|
|
33
|
-
{ name: 'Pengadukan teknis', text: 'Aduk perlahan hingga campuran benar-benar transparan dan tidak terlihat "alur" dari kepadatan yang berbeda.' },
|
|
34
|
-
];
|
|
35
|
-
|
|
36
|
-
const faqSchema: WithContext<FAQPage> = {
|
|
37
|
-
'@context': 'https://schema.org',
|
|
38
|
-
'@type': 'FAQPage',
|
|
39
|
-
mainEntity: faqData.map((item) => ({
|
|
40
|
-
'@type': 'Question',
|
|
41
|
-
name: item.question,
|
|
42
|
-
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
43
|
-
})),
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
const howToSchema: WithContext<HowToThing> = {
|
|
47
|
-
'@context': 'https://schema.org',
|
|
48
|
-
'@type': 'HowTo',
|
|
49
|
-
name: title,
|
|
50
|
-
description,
|
|
51
|
-
step: howToData.map((step, i) => ({
|
|
52
|
-
'@type': 'HowToStep',
|
|
53
|
-
position: i + 1,
|
|
54
|
-
name: step.name,
|
|
55
|
-
text: step.text,
|
|
56
|
-
})),
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const appSchema: WithContext<SoftwareApplication> = {
|
|
60
|
-
'@context': 'https://schema.org',
|
|
61
|
-
'@type': 'SoftwareApplication',
|
|
62
|
-
name: title,
|
|
63
|
-
description,
|
|
64
|
-
applicationCategory: 'UtilityApplication',
|
|
65
|
-
operatingSystem: 'All',
|
|
66
|
-
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
-
inLanguage: 'id',
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
|
|
71
|
-
slug,
|
|
72
|
-
title,
|
|
73
|
-
description,
|
|
74
|
-
faqTitle: 'Pertanyaan Umum',
|
|
75
|
-
faq: faqData,
|
|
76
|
-
bibliography,
|
|
77
|
-
howTo: howToData,
|
|
78
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
79
|
-
seo: [
|
|
80
|
-
{ type: 'title', text: 'Panduan Perhitungan dan Pengadukan Resin Epoksi', level: 2 },
|
|
81
|
-
{ type: 'paragraph', html: 'Resin epoksi bukan cat yang kering karena penguapan; ini adalah <strong>reaksi kimia eksotermik</strong> yang kompleks. Keajaiban terjadi ketika molekul epoksida berikatan dengan molekul poliamina untuk membentuk polimer termoset padat kristalin.' },
|
|
82
|
-
{ type: 'paragraph', html: 'Perbedaan antara karya seni yang tahan lama dan kegagalan yang lengket terletak pada <strong>stoikiometri yang tepat</strong>. Kesalahan bahkan hanya 5% dalam rasio campuran dapat menghambat pengerasan secara permanen. Alat ini menghilangkan tebakan matematis, memungkinkan Anda fokus pada kreasi.' },
|
|
83
|
-
{ type: 'grid', columns: [
|
|
84
|
-
{ type: 'card', icon: 'mdi:scale-balance', title: 'Volume atau Berat?', html: '<p>Kesalahan #1 pemula adalah menganggap bahwa 100ml beratnya 100g. <strong>Resin lebih padat daripada pengeras.</strong></p><p>Jika data teknis produk Anda menyebutkan "100:50 berdasarkan berat", itu TIDAK sama dengan "2:1 berdasarkan volume". Kalkulator ini bekerja dengan <strong>Volume</strong> (V = L × W × H), yang merupakan standar untuk mengisi cetakan.</p>' },
|
|
85
|
-
{ type: 'card', icon: 'mdi:water-percent', title: 'Rasio Umum', html: '<ul><li><strong>1:1</strong> - Pelapis, vernis, dan pelekat cepat.</li><li><strong>2:1</strong> - Standar. Meja river, perhiasan, dan cetakan sedang.</li><li><strong>3:1</strong> - Lantai industri dan laminasi struktural kekerasan tinggi.</li></ul>' },
|
|
86
|
-
]},
|
|
87
|
-
{ type: 'title', text: 'Protokol Keamanan dan Praktik Terbaik', level: 2 },
|
|
88
|
-
{ type: 'grid', columns: [
|
|
89
|
-
{ type: 'card', icon: 'mdi:thermometer', title: 'Suhu Vital', html: '<p>Bekerjalah selalu antara <strong>21°C hingga 25°C</strong>. Suhu dingin dapat menghentikan reaksi, membuat benda menjadi keruh. Panas berlebih mempercepat reaksi eksotermik secara berbahaya ("flash cure").</p>' },
|
|
90
|
-
{ type: 'card', icon: 'mdi:cup-outline', title: 'Teknik Dua Wadah', html: '<p>Jangan mengandalkan satu pengadukan. Bersihkan sisi dan dasar wadah dengan baik, tuang campuran ke <strong>wadah bersih kedua</strong> dan aduk kembali. Ini memastikan tidak ada bahan yang tidak terkatalis tertinggal.</p>' },
|
|
91
|
-
]},
|
|
92
|
-
|
|
93
|
-
{ type: 'paragraph', html: "Tafsirkan hasil bersama asumsi yang ditampilkan kalkulator sebelum menggunakannya." },],
|
|
94
|
-
ui: {
|
|
95
|
-
shapeRect: 'Persegi Panjang',
|
|
96
|
-
shapeCylinder: 'Silinder',
|
|
97
|
-
shapeSphere: 'Bola',
|
|
98
|
-
labelLength: 'Panjang (cm)',
|
|
99
|
-
labelWidth: 'Lebar (cm)',
|
|
100
|
-
labelDiameter: 'Diameter (cm)',
|
|
101
|
-
labelDepth: 'Kedalaman (cm)',
|
|
102
|
-
labelRatio: 'Rasio Campuran (Berat/Volume)',
|
|
103
|
-
labelCustomRatio: 'Gunakan rasio kustom (A:B)',
|
|
104
|
-
labelResinA: 'Resin (A)',
|
|
105
|
-
labelHardenerB: 'Pengeras (B)',
|
|
106
|
-
labelWasteTitle: 'Margin Keamanan',
|
|
107
|
-
labelWasteDesc: 'Tambah 5% ekstra untuk kehilangan',
|
|
108
|
-
labelTotalVolume: 'Volume Total',
|
|
109
|
-
labelPartA: 'Bagian A (Resin)',
|
|
110
|
-
labelPartB: 'Bagian B (Katalis)',
|
|
111
|
-
labelVisualization: 'Visualisasi',
|
|
112
|
-
shapeRectLabel: 'Blok Persegi Panjang',
|
|
113
|
-
shapeCylinderLabel: 'Silinder / Cetakan Bulat',
|
|
114
|
-
shapeSphereLabel: 'Bola Penuh',
|
|
115
|
-
},
|
|
116
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { EpoxyCalculatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'kalkulator-resin-epoksi';
|
|
7
|
+
const title = 'Kalkulator Resin Epoksi: Campuran dan Volume Tepat';
|
|
8
|
+
const description = 'Hitung jumlah tepat resin epoksi dan katalis yang dibutuhkan untuk proyek Anda. Hindari pemborosan pada meja river, perhiasan, dan cetakan.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'Mengapa proporsi yang tepat sangat penting dalam resin?',
|
|
13
|
+
answer: 'Berbeda dengan campuran lain, resin epoksi tidak kering melalui penguapan, melainkan melalui reaksi kimia (polimerisasi). Jika ada kelebihan resin atau katalis, reaksi tidak akan sempurna, meninggalkan bagian yang lengket, lunak, atau dengan gelembung permanen.',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
question: 'Apa itu perbandingan berat vs volume?',
|
|
17
|
+
answer: 'Banyak resin dicampur 2:1 dalam volume tetapi 100:45 dalam berat karena katalis biasanya lebih padat. Gunakan selalu skala yang ditentukan pabrikan dan, jika mungkin, gunakan timbangan digital demi presisi maksimal.',
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
question: 'Bagaimana cara menghindari gelembung saat mengaduk?',
|
|
21
|
+
answer: 'Aduk perlahan dengan gerakan memutar konstan selama setidaknya 3 menit, bersihkan dinding wadah dengan baik. Diamkan campuran selama beberapa menit sebelum dituang agar gelembung naik ke permukaan.',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
question: 'Apa itu masa pakai (Pot Life)?',
|
|
25
|
+
answer: 'Adalah waktu yang Anda miliki untuk mengerjakan campuran sebelum mulai mengeras (mengental). Di musim panas atau dalam volume besar, waktu ini berkurang drastis karena reaksi eksotermik (menghasilkan panas).',
|
|
26
|
+
},
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
const howToData = [
|
|
30
|
+
{ name: 'Ukur dimensi cetakan', text: 'Ukur panjang, lebar, dan kedalaman (tebal) area yang ingin Anda isi dengan resin.' },
|
|
31
|
+
{ name: 'Masukkan rasio campuran', text: 'Periksa label produk Anda apakah campurannya 1:1, 2:1, atau 3:1 dan apakah berdasarkan berat atau volume.' },
|
|
32
|
+
{ name: 'Timbang komponen', text: 'Tuang komponen A (resin) terlebih dahulu lalu B (katalis) ke dalam wadah bersih di atas timbangan digital.' },
|
|
33
|
+
{ name: 'Pengadukan teknis', text: 'Aduk perlahan hingga campuran benar-benar transparan dan tidak terlihat "alur" dari kepadatan yang berbeda.' },
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
37
|
+
'@context': 'https://schema.org',
|
|
38
|
+
'@type': 'FAQPage',
|
|
39
|
+
mainEntity: faqData.map((item) => ({
|
|
40
|
+
'@type': 'Question',
|
|
41
|
+
name: item.question,
|
|
42
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
43
|
+
})),
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
47
|
+
'@context': 'https://schema.org',
|
|
48
|
+
'@type': 'HowTo',
|
|
49
|
+
name: title,
|
|
50
|
+
description,
|
|
51
|
+
step: howToData.map((step, i) => ({
|
|
52
|
+
'@type': 'HowToStep',
|
|
53
|
+
position: i + 1,
|
|
54
|
+
name: step.name,
|
|
55
|
+
text: step.text,
|
|
56
|
+
})),
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
60
|
+
'@context': 'https://schema.org',
|
|
61
|
+
'@type': 'SoftwareApplication',
|
|
62
|
+
name: title,
|
|
63
|
+
description,
|
|
64
|
+
applicationCategory: 'UtilityApplication',
|
|
65
|
+
operatingSystem: 'All',
|
|
66
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
67
|
+
inLanguage: 'id',
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
|
|
71
|
+
slug,
|
|
72
|
+
title,
|
|
73
|
+
description,
|
|
74
|
+
faqTitle: 'Pertanyaan Umum',
|
|
75
|
+
faq: faqData,
|
|
76
|
+
bibliography,
|
|
77
|
+
howTo: howToData,
|
|
78
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
79
|
+
seo: [
|
|
80
|
+
{ type: 'title', text: 'Panduan Perhitungan dan Pengadukan Resin Epoksi', level: 2 },
|
|
81
|
+
{ type: 'paragraph', html: 'Resin epoksi bukan cat yang kering karena penguapan; ini adalah <strong>reaksi kimia eksotermik</strong> yang kompleks. Keajaiban terjadi ketika molekul epoksida berikatan dengan molekul poliamina untuk membentuk polimer termoset padat kristalin.' },
|
|
82
|
+
{ type: 'paragraph', html: 'Perbedaan antara karya seni yang tahan lama dan kegagalan yang lengket terletak pada <strong>stoikiometri yang tepat</strong>. Kesalahan bahkan hanya 5% dalam rasio campuran dapat menghambat pengerasan secara permanen. Alat ini menghilangkan tebakan matematis, memungkinkan Anda fokus pada kreasi.' },
|
|
83
|
+
{ type: 'grid', columns: [
|
|
84
|
+
{ type: 'card', icon: 'mdi:scale-balance', title: 'Volume atau Berat?', html: '<p>Kesalahan #1 pemula adalah menganggap bahwa 100ml beratnya 100g. <strong>Resin lebih padat daripada pengeras.</strong></p><p>Jika data teknis produk Anda menyebutkan "100:50 berdasarkan berat", itu TIDAK sama dengan "2:1 berdasarkan volume". Kalkulator ini bekerja dengan <strong>Volume</strong> (V = L × W × H), yang merupakan standar untuk mengisi cetakan.</p>' },
|
|
85
|
+
{ type: 'card', icon: 'mdi:water-percent', title: 'Rasio Umum', html: '<ul><li><strong>1:1</strong> - Pelapis, vernis, dan pelekat cepat.</li><li><strong>2:1</strong> - Standar. Meja river, perhiasan, dan cetakan sedang.</li><li><strong>3:1</strong> - Lantai industri dan laminasi struktural kekerasan tinggi.</li></ul>' },
|
|
86
|
+
]},
|
|
87
|
+
{ type: 'title', text: 'Protokol Keamanan dan Praktik Terbaik', level: 2 },
|
|
88
|
+
{ type: 'grid', columns: [
|
|
89
|
+
{ type: 'card', icon: 'mdi:thermometer', title: 'Suhu Vital', html: '<p>Bekerjalah selalu antara <strong>21°C hingga 25°C</strong>. Suhu dingin dapat menghentikan reaksi, membuat benda menjadi keruh. Panas berlebih mempercepat reaksi eksotermik secara berbahaya ("flash cure").</p>' },
|
|
90
|
+
{ type: 'card', icon: 'mdi:cup-outline', title: 'Teknik Dua Wadah', html: '<p>Jangan mengandalkan satu pengadukan. Bersihkan sisi dan dasar wadah dengan baik, tuang campuran ke <strong>wadah bersih kedua</strong> dan aduk kembali. Ini memastikan tidak ada bahan yang tidak terkatalis tertinggal.</p>' },
|
|
91
|
+
]},
|
|
92
|
+
|
|
93
|
+
{ type: 'paragraph', html: "Tafsirkan hasil bersama asumsi yang ditampilkan kalkulator sebelum menggunakannya." },],
|
|
94
|
+
ui: {
|
|
95
|
+
shapeRect: 'Persegi Panjang',
|
|
96
|
+
shapeCylinder: 'Silinder',
|
|
97
|
+
shapeSphere: 'Bola',
|
|
98
|
+
labelLength: 'Panjang (cm)',
|
|
99
|
+
labelWidth: 'Lebar (cm)',
|
|
100
|
+
labelDiameter: 'Diameter (cm)',
|
|
101
|
+
labelDepth: 'Kedalaman (cm)',
|
|
102
|
+
labelRatio: 'Rasio Campuran (Berat/Volume)',
|
|
103
|
+
labelCustomRatio: 'Gunakan rasio kustom (A:B)',
|
|
104
|
+
labelResinA: 'Resin (A)',
|
|
105
|
+
labelHardenerB: 'Pengeras (B)',
|
|
106
|
+
labelWasteTitle: 'Margin Keamanan',
|
|
107
|
+
labelWasteDesc: 'Tambah 5% ekstra untuk kehilangan',
|
|
108
|
+
labelTotalVolume: 'Volume Total',
|
|
109
|
+
labelPartA: 'Bagian A (Resin)',
|
|
110
|
+
labelPartB: 'Bagian B (Katalis)',
|
|
111
|
+
labelVisualization: 'Visualisasi',
|
|
112
|
+
shapeRectLabel: 'Blok Persegi Panjang',
|
|
113
|
+
shapeCylinderLabel: 'Silinder / Cetakan Bulat',
|
|
114
|
+
shapeSphereLabel: 'Bola Penuh',
|
|
115
|
+
},
|
|
116
|
+
};
|