@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,165 +1,165 @@
|
|
|
1
|
-
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
import type { PassepartoutCalculatorUI } from '../ui';
|
|
4
|
-
import { bibliography } from '../bibliography';
|
|
5
|
-
|
|
6
|
-
const slug = 'calculadora-passepartout';
|
|
7
|
-
const title = 'Calculadora Passepartout: Márgenes con Corrección Óptica para Enmarcado';
|
|
8
|
-
const description =
|
|
9
|
-
'Herramienta para calcular márgenes de passepartout con corrección óptica (bottom weighting). Enmarca tus fotografías y arte con proporciones de galería.';
|
|
10
|
-
|
|
11
|
-
const faqData = [
|
|
12
|
-
{
|
|
13
|
-
question: '¿Qué es la corrección de centro óptico (Bottom Weighting)?',
|
|
14
|
-
answer:
|
|
15
|
-
"Es un principio de diseño gráfico y enmarcado donde el margen inferior se hace ligeramente más ancho que los demás. Esto corrige la ilusión óptica que hace que el centro geométrico parezca estar 'caído' cuando se mira una obra colgada.",
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
question: '¿De qué material debe ser el passepartout?',
|
|
19
|
-
answer:
|
|
20
|
-
'Para conservación artística, debe ser cartón libre de ácido o de pH neutro (alfa-celulosa o algodón). Los cartones baratos amarillean con el tiempo y pueden dañar la obra debido a la lignina.',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
question: '¿Cómo elijo el color del margen?',
|
|
24
|
-
answer:
|
|
25
|
-
'El blanco roto o crema suave son los estándares que no distraen de la obra. Un margen oscuro puede resaltar los blancos de una fotografía, mientras que un margen de color debe usarse con cuidado para no competir con los tonos de la pieza.',
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
question: '¿Cuál es el ancho de margen ideal?',
|
|
29
|
-
answer:
|
|
30
|
-
'Un estándar profesional es entre 5 y 8 cm. Si el margen es demasiado estrecho, la obra parece "asfixiada". Si es muy ancho, puede dar un aire heroico y minimalista a obras pequeñas.',
|
|
31
|
-
},
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const howToData = [
|
|
35
|
-
{
|
|
36
|
-
name: 'Medir la obra de arte',
|
|
37
|
-
text: 'Mide el ancho y alto exacto del papel o lienzo que vas a enmarcar. Descuenta unos milímetros si quieres que el passepartout monte un poco sobre la imagen.',
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: 'Medir el interior del marco',
|
|
41
|
-
text: 'Toma las dimensiones internas del marco o rebaje donde encajará el cartón del passepartout.',
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'Activar corrección óptica',
|
|
45
|
-
text: 'Marca la opción en nuestra calculadora si quieres que el margen inferior sea automáticamente mayor para un acabado profesional.',
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: 'Cortar el cartón',
|
|
49
|
-
text: 'Usa las medidas resultantes para cortar el hueco (ventana) y el exterior del cartón, preferiblemente con un cúter de 45 grados para un bisel limpio.',
|
|
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: 'es',
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
|
|
88
|
-
slug,
|
|
89
|
-
title,
|
|
90
|
-
description,
|
|
91
|
-
faqTitle: 'Preguntas Frecuentes',
|
|
92
|
-
faq: faqData,
|
|
93
|
-
bibliography,
|
|
94
|
-
howTo: howToData,
|
|
95
|
-
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
-
seo: [
|
|
97
|
-
{
|
|
98
|
-
type: 'title',
|
|
99
|
-
text: 'La Ciencia del Enmarcado Perfecto',
|
|
100
|
-
level: 2,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
type: 'paragraph',
|
|
104
|
-
html: 'Un <strong>Passepartout</strong> (o marialuisa) no es solo un cartón decorativo; es el pulmón que permite respirar a tu obra de arte. Esta calculadora te ayuda a determinar las dimensiones exactas para cortar tu cartón, asegurando que la obra quede perfectamente centrada o equilibrada ópticamente dentro del marco.',
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
type: 'title',
|
|
108
|
-
text: '¿Por qué el "Peso Inferior" o Bottom Weighting?',
|
|
109
|
-
level: 3,
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
type: 'card',
|
|
113
|
-
icon: 'mdi:eye-outline',
|
|
114
|
-
title: 'La ilusión óptica del centro geométrico',
|
|
115
|
-
html: '<p>El ojo humano tiende a percibir el centro vertical geométrico como si estuviera ligeramente más bajo de lo que realmente está. Si enmarcas una obra exactamente en el centro, parecerá que se está "cayendo".</p><p>El <strong>Bottom Weighting</strong> (peso inferior) corrige esta ilusión óptica dejando un margen inferior ligeramente mayor, elevando la obra visualmente para que parezca perfectamente centrada.</p>',
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
type: 'title',
|
|
119
|
-
text: 'Materiales de Conservación para Passepartout',
|
|
120
|
-
level: 3,
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
type: 'card',
|
|
124
|
-
icon: 'mdi:palette-swatch-outline',
|
|
125
|
-
title: 'El cartón sin ácido para conservación',
|
|
126
|
-
html: '<p>Al elegir tu cartón, busca siempre términos como <strong>"Acid-Free"</strong> (libre de ácido) o <strong>"Museum Quality"</strong>. Los cartones baratos de pulpa de madera pueden amarillear con el tiempo y liberar ácidos que quemarán tu obra de arte (foxing), arruinándola irreversiblemente.</p>',
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
type: 'title',
|
|
130
|
-
text: 'Consejos de Medición Profesional',
|
|
131
|
-
level: 3,
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
type: 'paragraph',
|
|
135
|
-
html: '<strong>Mide la Ventana, no el Exterior:</strong> Si ya tienes el marco, mide el hueco interior (el "rebajo") por la parte trasera, no por el frente del cristal.',
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
type: 'paragraph',
|
|
139
|
-
html: '<strong>La Solapa de Seguridad:</strong> La ventana del passepartout debe ser un poco más pequeña que la obra (aprox. 5mm por lado) para que la imagen no se "cuele" por el agujero.',
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
type: 'card',
|
|
143
|
-
icon: 'mdi:ruler',
|
|
144
|
-
title: 'Regla de Oro del enmarcado',
|
|
145
|
-
html: '<p>Nunca dejes menos de 5cm de margen si quieres que la obra respire. Los márgenes generosos denotan elegancia y valor. Un margen ancho convierte una pequeña acuarela en una pieza de museo.</p>',
|
|
146
|
-
},
|
|
147
|
-
],
|
|
148
|
-
ui: {
|
|
149
|
-
sectionTitle: 'Dimensiones',
|
|
150
|
-
sectionDesc: 'Introduce las medidas en centímetros.',
|
|
151
|
-
frameSizeTitle: 'Tamaño del Marco',
|
|
152
|
-
artSizeTitle: 'Tamaño de la Obra',
|
|
153
|
-
labelWidth: 'Ancho (cm)',
|
|
154
|
-
labelHeight: 'Alto (cm)',
|
|
155
|
-
labelBottomWeighting: 'Bottom Weighting',
|
|
156
|
-
descBottomWeighting: 'Aplica más margen inferior para equilibrio visual',
|
|
157
|
-
labelOffset: 'Desplazamiento (%)',
|
|
158
|
-
errorMsg: 'El tamaño de la obra debe ser menor que el marco.',
|
|
159
|
-
labelTop: 'Superior',
|
|
160
|
-
labelBottom: 'Inferior',
|
|
161
|
-
labelLeft: 'Izq',
|
|
162
|
-
labelRight: 'Der',
|
|
163
|
-
artPlaceholder: 'Tu Obra',
|
|
164
|
-
},
|
|
165
|
-
};
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { PassepartoutCalculatorUI } from '../ui';
|
|
4
|
+
import { bibliography } from '../bibliography';
|
|
5
|
+
|
|
6
|
+
const slug = 'calculadora-passepartout';
|
|
7
|
+
const title = 'Calculadora Passepartout: Márgenes con Corrección Óptica para Enmarcado';
|
|
8
|
+
const description =
|
|
9
|
+
'Herramienta para calcular márgenes de passepartout con corrección óptica (bottom weighting). Enmarca tus fotografías y arte con proporciones de galería.';
|
|
10
|
+
|
|
11
|
+
const faqData = [
|
|
12
|
+
{
|
|
13
|
+
question: '¿Qué es la corrección de centro óptico (Bottom Weighting)?',
|
|
14
|
+
answer:
|
|
15
|
+
"Es un principio de diseño gráfico y enmarcado donde el margen inferior se hace ligeramente más ancho que los demás. Esto corrige la ilusión óptica que hace que el centro geométrico parezca estar 'caído' cuando se mira una obra colgada.",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
question: '¿De qué material debe ser el passepartout?',
|
|
19
|
+
answer:
|
|
20
|
+
'Para conservación artística, debe ser cartón libre de ácido o de pH neutro (alfa-celulosa o algodón). Los cartones baratos amarillean con el tiempo y pueden dañar la obra debido a la lignina.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '¿Cómo elijo el color del margen?',
|
|
24
|
+
answer:
|
|
25
|
+
'El blanco roto o crema suave son los estándares que no distraen de la obra. Un margen oscuro puede resaltar los blancos de una fotografía, mientras que un margen de color debe usarse con cuidado para no competir con los tonos de la pieza.',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
question: '¿Cuál es el ancho de margen ideal?',
|
|
29
|
+
answer:
|
|
30
|
+
'Un estándar profesional es entre 5 y 8 cm. Si el margen es demasiado estrecho, la obra parece "asfixiada". Si es muy ancho, puede dar un aire heroico y minimalista a obras pequeñas.',
|
|
31
|
+
},
|
|
32
|
+
];
|
|
33
|
+
|
|
34
|
+
const howToData = [
|
|
35
|
+
{
|
|
36
|
+
name: 'Medir la obra de arte',
|
|
37
|
+
text: 'Mide el ancho y alto exacto del papel o lienzo que vas a enmarcar. Descuenta unos milímetros si quieres que el passepartout monte un poco sobre la imagen.',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'Medir el interior del marco',
|
|
41
|
+
text: 'Toma las dimensiones internas del marco o rebaje donde encajará el cartón del passepartout.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'Activar corrección óptica',
|
|
45
|
+
text: 'Marca la opción en nuestra calculadora si quieres que el margen inferior sea automáticamente mayor para un acabado profesional.',
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: 'Cortar el cartón',
|
|
49
|
+
text: 'Usa las medidas resultantes para cortar el hueco (ventana) y el exterior del cartón, preferiblemente con un cúter de 45 grados para un bisel limpio.',
|
|
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: 'es',
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const content: ToolLocaleContent<PassepartoutCalculatorUI> = {
|
|
88
|
+
slug,
|
|
89
|
+
title,
|
|
90
|
+
description,
|
|
91
|
+
faqTitle: 'Preguntas Frecuentes',
|
|
92
|
+
faq: faqData,
|
|
93
|
+
bibliography,
|
|
94
|
+
howTo: howToData,
|
|
95
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
96
|
+
seo: [
|
|
97
|
+
{
|
|
98
|
+
type: 'title',
|
|
99
|
+
text: 'La Ciencia del Enmarcado Perfecto',
|
|
100
|
+
level: 2,
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
type: 'paragraph',
|
|
104
|
+
html: 'Un <strong>Passepartout</strong> (o marialuisa) no es solo un cartón decorativo; es el pulmón que permite respirar a tu obra de arte. Esta calculadora te ayuda a determinar las dimensiones exactas para cortar tu cartón, asegurando que la obra quede perfectamente centrada o equilibrada ópticamente dentro del marco.',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
type: 'title',
|
|
108
|
+
text: '¿Por qué el "Peso Inferior" o Bottom Weighting?',
|
|
109
|
+
level: 3,
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
type: 'card',
|
|
113
|
+
icon: 'mdi:eye-outline',
|
|
114
|
+
title: 'La ilusión óptica del centro geométrico',
|
|
115
|
+
html: '<p>El ojo humano tiende a percibir el centro vertical geométrico como si estuviera ligeramente más bajo de lo que realmente está. Si enmarcas una obra exactamente en el centro, parecerá que se está "cayendo".</p><p>El <strong>Bottom Weighting</strong> (peso inferior) corrige esta ilusión óptica dejando un margen inferior ligeramente mayor, elevando la obra visualmente para que parezca perfectamente centrada.</p>',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
type: 'title',
|
|
119
|
+
text: 'Materiales de Conservación para Passepartout',
|
|
120
|
+
level: 3,
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
type: 'card',
|
|
124
|
+
icon: 'mdi:palette-swatch-outline',
|
|
125
|
+
title: 'El cartón sin ácido para conservación',
|
|
126
|
+
html: '<p>Al elegir tu cartón, busca siempre términos como <strong>"Acid-Free"</strong> (libre de ácido) o <strong>"Museum Quality"</strong>. Los cartones baratos de pulpa de madera pueden amarillear con el tiempo y liberar ácidos que quemarán tu obra de arte (foxing), arruinándola irreversiblemente.</p>',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'title',
|
|
130
|
+
text: 'Consejos de Medición Profesional',
|
|
131
|
+
level: 3,
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
type: 'paragraph',
|
|
135
|
+
html: '<strong>Mide la Ventana, no el Exterior:</strong> Si ya tienes el marco, mide el hueco interior (el "rebajo") por la parte trasera, no por el frente del cristal.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'paragraph',
|
|
139
|
+
html: '<strong>La Solapa de Seguridad:</strong> La ventana del passepartout debe ser un poco más pequeña que la obra (aprox. 5mm por lado) para que la imagen no se "cuele" por el agujero.',
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
type: 'card',
|
|
143
|
+
icon: 'mdi:ruler',
|
|
144
|
+
title: 'Regla de Oro del enmarcado',
|
|
145
|
+
html: '<p>Nunca dejes menos de 5cm de margen si quieres que la obra respire. Los márgenes generosos denotan elegancia y valor. Un margen ancho convierte una pequeña acuarela en una pieza de museo.</p>',
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
ui: {
|
|
149
|
+
sectionTitle: 'Dimensiones',
|
|
150
|
+
sectionDesc: 'Introduce las medidas en centímetros.',
|
|
151
|
+
frameSizeTitle: 'Tamaño del Marco',
|
|
152
|
+
artSizeTitle: 'Tamaño de la Obra',
|
|
153
|
+
labelWidth: 'Ancho (cm)',
|
|
154
|
+
labelHeight: 'Alto (cm)',
|
|
155
|
+
labelBottomWeighting: 'Bottom Weighting',
|
|
156
|
+
descBottomWeighting: 'Aplica más margen inferior para equilibrio visual',
|
|
157
|
+
labelOffset: 'Desplazamiento (%)',
|
|
158
|
+
errorMsg: 'El tamaño de la obra debe ser menor que el marco.',
|
|
159
|
+
labelTop: 'Superior',
|
|
160
|
+
labelBottom: 'Inferior',
|
|
161
|
+
labelLeft: 'Izq',
|
|
162
|
+
labelRight: 'Der',
|
|
163
|
+
artPlaceholder: 'Tu Obra',
|
|
164
|
+
},
|
|
165
|
+
};
|