@jjlmoya/utils-developer 1.4.0 → 1.5.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 -1
- package/src/category/i18n/de.ts +34 -0
- package/src/category/i18n/id.ts +34 -0
- package/src/category/i18n/it.ts +34 -0
- package/src/category/i18n/ja.ts +34 -0
- package/src/category/i18n/ko.ts +34 -0
- package/src/category/i18n/nl.ts +34 -0
- package/src/category/i18n/pl.ts +34 -0
- package/src/category/i18n/pt.ts +34 -0
- package/src/category/i18n/ru.ts +34 -0
- package/src/category/i18n/sv.ts +34 -0
- package/src/category/i18n/tr.ts +34 -0
- package/src/category/i18n/zh.ts +34 -0
- package/src/category/index.ts +13 -1
- package/src/tests/faq_count.test.ts +1 -1
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/locale_completeness.test.ts +2 -2
- package/src/tests/slug_uniqueness.test.ts +81 -0
- package/src/tool/aspectRatio/i18n/de.ts +177 -0
- package/src/tool/aspectRatio/i18n/id.ts +177 -0
- package/src/tool/aspectRatio/i18n/it.ts +177 -0
- package/src/tool/aspectRatio/i18n/ja.ts +178 -0
- package/src/tool/aspectRatio/i18n/ko.ts +178 -0
- package/src/tool/aspectRatio/i18n/nl.ts +178 -0
- package/src/tool/aspectRatio/i18n/pl.ts +177 -0
- package/src/tool/aspectRatio/i18n/pt.ts +177 -0
- package/src/tool/aspectRatio/i18n/ru.ts +177 -0
- package/src/tool/aspectRatio/i18n/sv.ts +177 -0
- package/src/tool/aspectRatio/i18n/tr.ts +177 -0
- package/src/tool/aspectRatio/i18n/zh.ts +178 -0
- package/src/tool/aspectRatio/index.ts +15 -7
- package/src/tool/calculadoraTiempoDatos/i18n/de.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/id.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/it.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ja.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ko.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/nl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pl.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/pt.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/i18n/sv.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/tr.ts +150 -0
- package/src/tool/calculadoraTiempoDatos/i18n/zh.ts +151 -0
- package/src/tool/calculadoraTiempoDatos/index.ts +15 -7
- package/src/tool/colorConverter/i18n/de.ts +126 -0
- package/src/tool/colorConverter/i18n/id.ts +126 -0
- package/src/tool/colorConverter/i18n/it.ts +126 -0
- package/src/tool/colorConverter/i18n/ja.ts +127 -0
- package/src/tool/colorConverter/i18n/ko.ts +127 -0
- package/src/tool/colorConverter/i18n/nl.ts +126 -0
- package/src/tool/colorConverter/i18n/pl.ts +126 -0
- package/src/tool/colorConverter/i18n/pt.ts +126 -0
- package/src/tool/colorConverter/i18n/ru.ts +126 -0
- package/src/tool/colorConverter/i18n/sv.ts +126 -0
- package/src/tool/colorConverter/i18n/tr.ts +126 -0
- package/src/tool/colorConverter/i18n/zh.ts +127 -0
- package/src/tool/colorConverter/index.ts +15 -7
- package/src/tool/conversorExcelCsvHtml/i18n/de.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/id.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/it.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ja.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ko.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/i18n/nl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pl.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/pt.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/ru.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/sv.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/tr.ts +129 -0
- package/src/tool/conversorExcelCsvHtml/i18n/zh.ts +130 -0
- package/src/tool/conversorExcelCsvHtml/index.ts +15 -7
- package/src/tool/cronGenerator/i18n/de.ts +192 -0
- package/src/tool/cronGenerator/i18n/es.ts +2 -1
- package/src/tool/cronGenerator/i18n/fr.ts +2 -1
- package/src/tool/cronGenerator/i18n/id.ts +192 -0
- package/src/tool/cronGenerator/i18n/it.ts +192 -0
- package/src/tool/cronGenerator/i18n/ja.ts +192 -0
- package/src/tool/cronGenerator/i18n/ko.ts +192 -0
- package/src/tool/cronGenerator/i18n/nl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pl.ts +192 -0
- package/src/tool/cronGenerator/i18n/pt.ts +192 -0
- package/src/tool/cronGenerator/i18n/ru.ts +192 -0
- package/src/tool/cronGenerator/i18n/sv.ts +192 -0
- package/src/tool/cronGenerator/i18n/tr.ts +192 -0
- package/src/tool/cronGenerator/i18n/zh.ts +192 -0
- package/src/tool/cronGenerator/index.ts +15 -7
- package/src/tool/cssSpecificityCalculator/i18n/de.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/id.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/it.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ja.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/ko.ts +169 -0
- package/src/tool/cssSpecificityCalculator/i18n/nl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pl.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/pt.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/ru.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/sv.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/tr.ts +168 -0
- package/src/tool/cssSpecificityCalculator/i18n/zh.ts +169 -0
- package/src/tool/cssSpecificityCalculator/index.ts +15 -7
- package/src/tool/cssToInlineConverter/i18n/de.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/id.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/it.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ja.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/ko.ts +161 -0
- package/src/tool/cssToInlineConverter/i18n/nl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pl.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/pt.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/ru.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/sv.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/tr.ts +160 -0
- package/src/tool/cssToInlineConverter/i18n/zh.ts +161 -0
- package/src/tool/cssToInlineConverter/index.ts +15 -7
- package/src/tool/duplicateCssRemover/i18n/de.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/id.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/it.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ja.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/ko.ts +168 -0
- package/src/tool/duplicateCssRemover/i18n/nl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pl.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/pt.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/ru.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/sv.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/tr.ts +167 -0
- package/src/tool/duplicateCssRemover/i18n/zh.ts +168 -0
- package/src/tool/duplicateCssRemover/index.ts +15 -7
- package/src/tool/generadorSecurityTxt/i18n/de.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/id.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/it.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ja.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ko.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/nl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pl.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/pt.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/ru.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/sv.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/tr.ts +174 -0
- package/src/tool/generadorSecurityTxt/i18n/zh.ts +174 -0
- package/src/tool/generadorSecurityTxt/index.ts +15 -7
- package/src/tool/hashGenerator/i18n/de.ts +119 -0
- package/src/tool/hashGenerator/i18n/id.ts +119 -0
- package/src/tool/hashGenerator/i18n/it.ts +118 -0
- package/src/tool/hashGenerator/i18n/ja.ts +119 -0
- package/src/tool/hashGenerator/i18n/ko.ts +119 -0
- package/src/tool/hashGenerator/i18n/nl.ts +119 -0
- package/src/tool/hashGenerator/i18n/pl.ts +118 -0
- package/src/tool/hashGenerator/i18n/pt.ts +118 -0
- package/src/tool/hashGenerator/i18n/ru.ts +119 -0
- package/src/tool/hashGenerator/i18n/sv.ts +119 -0
- package/src/tool/hashGenerator/i18n/tr.ts +118 -0
- package/src/tool/hashGenerator/i18n/zh.ts +119 -0
- package/src/tool/hashGenerator/index.ts +15 -7
- package/src/tool/inspectorCertificadosSsl/i18n/de.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/id.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/it.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ja.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ko.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/pt.ts +214 -0
- package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/i18n/zh.ts +215 -0
- package/src/tool/inspectorCertificadosSsl/index.ts +24 -0
- package/src/tool/jsonFormatter/i18n/de.ts +157 -0
- package/src/tool/jsonFormatter/i18n/es.ts +2 -1
- package/src/tool/jsonFormatter/i18n/fr.ts +2 -1
- package/src/tool/jsonFormatter/i18n/id.ts +157 -0
- package/src/tool/jsonFormatter/i18n/it.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ja.ts +157 -0
- package/src/tool/jsonFormatter/i18n/ko.ts +157 -0
- package/src/tool/jsonFormatter/i18n/nl.ts +157 -0
- package/src/tool/jsonFormatter/i18n/pl.ts +156 -0
- package/src/tool/jsonFormatter/i18n/pt.ts +156 -0
- package/src/tool/jsonFormatter/i18n/ru.ts +157 -0
- package/src/tool/jsonFormatter/i18n/sv.ts +157 -0
- package/src/tool/jsonFormatter/i18n/tr.ts +157 -0
- package/src/tool/jsonFormatter/i18n/zh.ts +157 -0
- package/src/tool/jsonFormatter/index.ts +15 -7
- package/src/tool/keycode/i18n/de.ts +161 -0
- package/src/tool/keycode/i18n/es.ts +2 -1
- package/src/tool/keycode/i18n/fr.ts +2 -1
- package/src/tool/keycode/i18n/id.ts +161 -0
- package/src/tool/keycode/i18n/it.ts +161 -0
- package/src/tool/keycode/i18n/ja.ts +161 -0
- package/src/tool/keycode/i18n/ko.ts +161 -0
- package/src/tool/keycode/i18n/nl.ts +161 -0
- package/src/tool/keycode/i18n/pl.ts +161 -0
- package/src/tool/keycode/i18n/pt.ts +160 -0
- package/src/tool/keycode/i18n/ru.ts +160 -0
- package/src/tool/keycode/i18n/sv.ts +160 -0
- package/src/tool/keycode/i18n/tr.ts +160 -0
- package/src/tool/keycode/i18n/zh.ts +161 -0
- package/src/tool/keycode/index.ts +15 -7
- package/src/tool/llmCostCalculator/i18n/de.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/fr.ts +2 -1
- package/src/tool/llmCostCalculator/i18n/id.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/it.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ja.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/ko.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/nl.ts +166 -0
- package/src/tool/llmCostCalculator/i18n/pl.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/pt.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/ru.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/sv.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/tr.ts +165 -0
- package/src/tool/llmCostCalculator/i18n/zh.ts +166 -0
- package/src/tool/llmCostCalculator/index.ts +24 -0
- package/src/tool/mobileMockupGenerator/i18n/de.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/id.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/it.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ja.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/ko.ts +122 -0
- package/src/tool/mobileMockupGenerator/i18n/nl.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/pl.ts +31 -0
- package/src/tool/mobileMockupGenerator/i18n/pt.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/ru.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/sv.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/tr.ts +121 -0
- package/src/tool/mobileMockupGenerator/i18n/zh.ts +122 -0
- package/src/tool/mobileMockupGenerator/index.ts +24 -0
- package/src/tool/musicalTypography/i18n/de.ts +179 -0
- package/src/tool/musicalTypography/i18n/id.ts +179 -0
- package/src/tool/musicalTypography/i18n/it.ts +179 -0
- package/src/tool/musicalTypography/i18n/ja.ts +180 -0
- package/src/tool/musicalTypography/i18n/ko.ts +180 -0
- package/src/tool/musicalTypography/i18n/nl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pl.ts +179 -0
- package/src/tool/musicalTypography/i18n/pt.ts +101 -0
- package/src/tool/musicalTypography/i18n/ru.ts +47 -0
- package/src/tool/musicalTypography/i18n/sv.ts +29 -0
- package/src/tool/musicalTypography/i18n/tr.ts +29 -0
- package/src/tool/musicalTypography/i18n/zh.ts +30 -0
- package/src/tool/musicalTypography/index.ts +15 -7
- package/src/tool/placeholderGenerator/i18n/de.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/id.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/it.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ja.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/ko.ts +177 -0
- package/src/tool/placeholderGenerator/i18n/nl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pl.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/pt.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/ru.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/sv.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/tr.ts +176 -0
- package/src/tool/placeholderGenerator/i18n/zh.ts +177 -0
- package/src/tool/placeholderGenerator/index.ts +24 -0
- package/src/tool/promptLibrary/i18n/de.ts +131 -0
- package/src/tool/promptLibrary/i18n/id.ts +131 -0
- package/src/tool/promptLibrary/i18n/it.ts +131 -0
- package/src/tool/promptLibrary/i18n/ja.ts +132 -0
- package/src/tool/promptLibrary/i18n/ko.ts +132 -0
- package/src/tool/promptLibrary/i18n/nl.ts +131 -0
- package/src/tool/promptLibrary/i18n/pl.ts +28 -0
- package/src/tool/promptLibrary/i18n/pt.ts +101 -0
- package/src/tool/promptLibrary/i18n/ru.ts +101 -0
- package/src/tool/promptLibrary/i18n/sv.ts +93 -0
- package/src/tool/promptLibrary/i18n/tr.ts +93 -0
- package/src/tool/promptLibrary/i18n/zh.ts +94 -0
- package/src/tool/promptLibrary/index.ts +24 -0
- package/src/tool/readabilityCalculator/i18n/de.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/id.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/it.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/ja.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/ko.ts +134 -0
- package/src/tool/readabilityCalculator/i18n/nl.ts +133 -0
- package/src/tool/readabilityCalculator/i18n/pl.ts +29 -0
- package/src/tool/readabilityCalculator/i18n/pt.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/ru.ts +91 -0
- package/src/tool/readabilityCalculator/i18n/sv.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/tr.ts +43 -0
- package/src/tool/readabilityCalculator/i18n/zh.ts +44 -0
- package/src/tool/readabilityCalculator/index.ts +24 -0
- package/src/tool/svgSanitizer/i18n/de.ts +125 -0
- package/src/tool/svgSanitizer/i18n/id.ts +125 -0
- package/src/tool/svgSanitizer/i18n/it.ts +125 -0
- package/src/tool/svgSanitizer/i18n/ja.ts +126 -0
- package/src/tool/svgSanitizer/i18n/ko.ts +126 -0
- package/src/tool/svgSanitizer/i18n/nl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pl.ts +125 -0
- package/src/tool/svgSanitizer/i18n/pt.ts +30 -0
- package/src/tool/svgSanitizer/i18n/ru.ts +126 -0
- package/src/tool/svgSanitizer/i18n/sv.ts +126 -0
- package/src/tool/svgSanitizer/i18n/tr.ts +126 -0
- package/src/tool/svgSanitizer/i18n/zh.ts +126 -0
- package/src/tool/svgSanitizer/index.ts +24 -0
- package/src/tool/svgToCss/i18n/de.ts +174 -0
- package/src/tool/svgToCss/i18n/id.ts +174 -0
- package/src/tool/svgToCss/i18n/it.ts +174 -0
- package/src/tool/svgToCss/i18n/ja.ts +175 -0
- package/src/tool/svgToCss/i18n/ko.ts +175 -0
- package/src/tool/svgToCss/i18n/nl.ts +174 -0
- package/src/tool/svgToCss/i18n/pl.ts +174 -0
- package/src/tool/svgToCss/i18n/pt.ts +174 -0
- package/src/tool/svgToCss/i18n/ru.ts +174 -0
- package/src/tool/svgToCss/i18n/sv.ts +174 -0
- package/src/tool/svgToCss/i18n/tr.ts +174 -0
- package/src/tool/svgToCss/i18n/zh.ts +175 -0
- package/src/tool/svgToCss/index.ts +15 -7
- package/src/tool/urlCleaner/i18n/de.ts +116 -0
- package/src/tool/urlCleaner/i18n/id.ts +116 -0
- package/src/tool/urlCleaner/i18n/it.ts +116 -0
- package/src/tool/urlCleaner/i18n/ja.ts +117 -0
- package/src/tool/urlCleaner/i18n/ko.ts +117 -0
- package/src/tool/urlCleaner/i18n/nl.ts +116 -0
- package/src/tool/urlCleaner/i18n/pl.ts +29 -0
- package/src/tool/urlCleaner/i18n/pt.ts +43 -0
- package/src/tool/urlCleaner/i18n/ru.ts +43 -0
- package/src/tool/urlCleaner/i18n/sv.ts +43 -0
- package/src/tool/urlCleaner/i18n/tr.ts +43 -0
- package/src/tool/urlCleaner/i18n/zh.ts +44 -0
- package/src/tool/urlCleaner/index.ts +24 -0
- package/src/tool/urlEncoderDecoder/i18n/de.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/id.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/it.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ja.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/ko.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/nl.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/pl.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/pt.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/ru.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/sv.ts +163 -0
- package/src/tool/urlEncoderDecoder/i18n/tr.ts +162 -0
- package/src/tool/urlEncoderDecoder/i18n/zh.ts +163 -0
- package/src/tool/urlEncoderDecoder/index.ts +15 -7
- package/src/tool/utmGenerator/i18n/de.ts +118 -0
- package/src/tool/utmGenerator/i18n/id.ts +118 -0
- package/src/tool/utmGenerator/i18n/it.ts +118 -0
- package/src/tool/utmGenerator/i18n/ja.ts +118 -0
- package/src/tool/utmGenerator/i18n/ko.ts +118 -0
- package/src/tool/utmGenerator/i18n/nl.ts +118 -0
- package/src/tool/utmGenerator/i18n/pl.ts +117 -0
- package/src/tool/utmGenerator/i18n/pt.ts +118 -0
- package/src/tool/utmGenerator/i18n/ru.ts +118 -0
- package/src/tool/utmGenerator/i18n/sv.ts +118 -0
- package/src/tool/utmGenerator/i18n/tr.ts +117 -0
- package/src/tool/utmGenerator/i18n/zh.ts +118 -0
- package/src/tool/utmGenerator/index.ts +15 -7
- package/src/types.ts +1 -2
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { MusicalTypographyUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'tipografia-musicale';
|
|
6
|
+
const title = 'Scala Tipografica Musicale. Calcolatore di Scala Modulare';
|
|
7
|
+
const description =
|
|
8
|
+
'Strumento online gratuito per creare gerarchie visive armoniose con scale modulari basate su proporzioni musicali. Genera variabili CSS pronte per il tuo design web.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: "Cos'è una scala modulare tipografica?",
|
|
13
|
+
answer:
|
|
14
|
+
"È un metodo per determinare le dimensioni dei caratteri basato su un rapporto matematico costante. Come in musica, dove le note hanno relazioni armoniche, la scala modulare crea una gerarchia visiva equilibrata e prevedibile.",
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'Perché usare gli intervalli musicali nel design?',
|
|
18
|
+
answer:
|
|
19
|
+
"Gli intervalli musicali sono proporzioni che il cervello umano percepisce come armoniose. Applicarle alle dimensioni del testo crea una struttura visiva che risulta corretta e professionale, invece di scegliere le dimensioni a caso.",
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: "Cos'è la Sezione Aurea in tipografia?",
|
|
23
|
+
answer:
|
|
24
|
+
"È la proporzione 1,618, nota come Sezione Aurea. Crea scale molto drammatiche ed eleganti in cui ogni gradino della gerarchia cresce in modo esponenziale. Perfetta per portfolio o siti a vocazione artistica.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'Come implemento la scala nel mio file CSS?',
|
|
28
|
+
answer:
|
|
29
|
+
"Lo strumento genera variabili CSS (token) nel formato :root { --step-N: Xrem; }. Copiale nel tuo file CSS principale e usale con var(--step-N) per mantenere la coerenza tipografica su tutto il sito.",
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'Imposta la dimensione base',
|
|
36
|
+
text: 'Inserisci la dimensione del carattere per il corpo del testo (di solito 16px), che sarà la nota fondamentale della tua scala.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: "Scegli l'intervallo",
|
|
40
|
+
text: 'Seleziona una proporzione musicale per determinare quanto spazio c\'è tra i diversi livelli di intestazione.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: 'Anteprima della gerarchia',
|
|
44
|
+
text: 'Osserva in tempo reale come si comportano i livelli tipografici e verifica che l\'armonia visiva si adatti al tuo progetto.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'Esporta il codice',
|
|
48
|
+
text: 'Clicca su Copia variabili CSS per ottenere il blocco pronto da incollare direttamente nel tuo flusso di lavoro.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'DesignApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'it',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const ui: MusicalTypographyUI = {
|
|
87
|
+
labelConfig: 'Configurazione',
|
|
88
|
+
labelBaseSize: 'Dimensione base (px)',
|
|
89
|
+
hintBaseSize: 'La dimensione del tuo testo di paragrafo (di solito 16px).',
|
|
90
|
+
labelRatio: 'Scala musicale (Rapporto)',
|
|
91
|
+
hintRatio: 'Determina quanto cresce la dimensione ad ogni gradino.',
|
|
92
|
+
labelCalculated: 'Valori calcolati',
|
|
93
|
+
labelPreview: 'Anteprima',
|
|
94
|
+
btnCopyCss: 'Copia variabili CSS',
|
|
95
|
+
feedbackCopied: 'Variabili copiate negli appunti!',
|
|
96
|
+
previewText: 'Tipografia Musicale',
|
|
97
|
+
previewSubtext: 'Una scala armonica perfetta per il tuo design.',
|
|
98
|
+
ratioSecundaMenor: 'Seconda minore',
|
|
99
|
+
ratioSegundaMayor: 'Seconda maggiore',
|
|
100
|
+
ratioTerceraMenor: 'Terza minore',
|
|
101
|
+
ratioTerceraMayor: 'Terza maggiore',
|
|
102
|
+
ratioCuartaPerfecta: 'Quarta giusta',
|
|
103
|
+
ratioCuartaAumentada: 'Quarta aumentata',
|
|
104
|
+
ratioQuintaPerfecta: 'Quinta giusta',
|
|
105
|
+
ratioProporcionAurea: 'Sezione Aurea',
|
|
106
|
+
ratioSextaMayor: 'Sesta maggiore',
|
|
107
|
+
ratioSeptimaMenor: 'Settima minore',
|
|
108
|
+
ratioSeptimaMayor: 'Settima maggiore',
|
|
109
|
+
ratioOctava: 'Ottava',
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export const content: ToolLocaleContent<MusicalTypographyUI> = {
|
|
113
|
+
slug,
|
|
114
|
+
title,
|
|
115
|
+
description,
|
|
116
|
+
ui,
|
|
117
|
+
faqTitle: 'Domande frequenti',
|
|
118
|
+
faq: faqData,
|
|
119
|
+
bibliographyTitle: 'Riferimenti',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{
|
|
122
|
+
name: 'Bringhurst, R. The Elements of Typographic Style',
|
|
123
|
+
url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'Brown, T. More Meaningful Typography. A List Apart',
|
|
127
|
+
url: 'https://alistapart.com/article/more-meaningful-typography/',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'Physics of Music. Musical Intervals and Scales',
|
|
131
|
+
url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
howTo: howToData,
|
|
135
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
136
|
+
seo: [
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: "L'armonia invisibile del web design",
|
|
140
|
+
level: 2,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: "La <strong>Scala Tipografica Musicale</strong> applica la matematica degli intervalli musicali al design tipografico. Proprio come una composizione musicale è governata da proporzioni precise, un design visivo solido beneficia di una struttura matematica che mette in relazione tutte le dimensioni tra loro.",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'Come funziona la scala modulare',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'grid',
|
|
153
|
+
columns: 2,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'card',
|
|
157
|
+
title: 'La formula',
|
|
158
|
+
html: '<p>La progressione è semplice: <code>Dimensione = Base × Rapporto<sup>n</sup></code>. Il gradino 0 è il tuo testo base. Il gradino 1 è un piccolo sottotitolo. Il gradino 4 o 5 potrebbe essere il tuo H1 principale. La stessa costante moltiplicativa garantisce che tutte le relazioni siano coerenti.</p>',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'card',
|
|
162
|
+
title: 'Perché "Musicale"',
|
|
163
|
+
html: "<p>I pitagorici scoprirono che dividere una corda in proporzioni semplici (1:2, 2:3, 3:4) produceva suoni consonanti. Questi intervalli — ottava, quinta giusta e quarta giusta — sono esattamente i rapporti tipografici. Stai componendo musica visiva.</p>",
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'title',
|
|
167
|
+
text: 'Scegliere il rapporto giusto',
|
|
168
|
+
level: 3,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
html: 'Per interfacce dense (dashboard, tabelle) usa rapporti piccoli come <code>1,125</code> o <code>1,2</code>. Per siti editoriali o portfolio, usa rapporti più espressivi come <code>1,5</code> o <code>1,618</code>.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'Non limitare la scala al solo <code>font-size</code>. Le stesse variabili CSS funzionano per <code>margin</code>, <code>padding</code> e <code>gap</code>. Quando lo spazio bianco segue la stessa progressione matematica del testo, il design raggiunge un livello di coesione che tutti avvertono ma in pochi sanno spiegare.',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { MusicalTypographyUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'musical-typography';
|
|
6
|
+
const title = '音楽的タイポグラフィスケール。モジュラースケール計算機';
|
|
7
|
+
const description =
|
|
8
|
+
'音楽的比率に基づくモジュラースケールで、調和のとれた視覚的階層を作成できる無料オンラインツール。Webデザインにすぐ使えるCSS変数を生成します。';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: 'タイポグラフィのモジュラースケールとは何ですか?',
|
|
13
|
+
answer:
|
|
14
|
+
'一定の数学的比率に基づいてフォントサイズを決定する手法です。音楽における音符が和声的な関係を持つように、モジュラースケールはバランスが取れた予測可能な視覚的階層を生み出します。',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: 'なぜデザインに音楽的インターバルを使うのですか?',
|
|
18
|
+
answer:
|
|
19
|
+
'音楽的インターバルは人間の脳が調和的と感じる比率です。テキストサイズに適用すると、無作為にサイズを選ぶのではなく、正しくプロフェッショナルに感じられる視覚的構造が生まれます。',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: 'タイポグラフィにおける黄金比とは何ですか?',
|
|
23
|
+
answer:
|
|
24
|
+
'1.618という比率で、黄金分割とも呼ばれます。階層の各ステップが指数関数的に拡大する、非常にドラマチックで洗練されたスケールを生み出します。ポートフォリオやアート系サイトに最適です。',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'CSSファイルにスケールを実装するにはどうすればいいですか?',
|
|
28
|
+
answer:
|
|
29
|
+
'このツールは :root { --step-N: Xrem; } 形式のCSS変数(トークン)を生成します。メインのCSSファイルにコピーし、var(--step-N) で使用することで、サイト全体のタイポグラフィの一貫性を保てます。',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: 'ベースサイズを設定する',
|
|
36
|
+
text: '本文テキストのフォントサイズ(通常16px)を入力します。これがスケールの基音になります。',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'インターバルを選ぶ',
|
|
40
|
+
text: '異なる見出しレベル間のサイズの広がりを決める音楽的比率を選択します。',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '階層をプレビューする',
|
|
44
|
+
text: 'タイポグラフィのレベルがリアルタイムでどのように見えるかを確認し、視覚的な調和がプロジェクトに合うかを検証します。',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'コードをエクスポートする',
|
|
48
|
+
text: '「CSS変数をコピー」をクリックして、ワークフローに直接貼り付けられるブロックを取得します。',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'DesignApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'ja',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const ui: MusicalTypographyUI = {
|
|
87
|
+
labelConfig: '設定',
|
|
88
|
+
labelBaseSize: 'ベースサイズ (px)',
|
|
89
|
+
hintBaseSize: '本文テキストのサイズ(通常16px)。',
|
|
90
|
+
labelRatio: '音楽的スケール(比率)',
|
|
91
|
+
hintRatio: '各ステップでサイズがどれだけ大きくなるかを決定します。',
|
|
92
|
+
labelCalculated: '計算値',
|
|
93
|
+
labelPreview: 'プレビュー',
|
|
94
|
+
btnCopyCss: 'CSS変数をコピー',
|
|
95
|
+
feedbackCopied: '変数をクリップボードにコピーしました!',
|
|
96
|
+
previewText: '音楽的タイポグラフィ',
|
|
97
|
+
previewSubtext: 'デザインのための完璧な調和スケール。',
|
|
98
|
+
ratioSecundaMenor: '短2度',
|
|
99
|
+
ratioSegundaMayor: '長2度',
|
|
100
|
+
ratioTerceraMenor: '短3度',
|
|
101
|
+
ratioTerceraMayor: '長3度',
|
|
102
|
+
ratioCuartaPerfecta: '完全4度',
|
|
103
|
+
ratioCuartaAumentada: '増4度',
|
|
104
|
+
ratioQuintaPerfecta: '完全5度',
|
|
105
|
+
ratioProporcionAurea: '黄金比',
|
|
106
|
+
ratioSextaMayor: '長6度',
|
|
107
|
+
ratioSeptimaMenor: '短7度',
|
|
108
|
+
ratioSeptimaMayor: '長7度',
|
|
109
|
+
ratioOctava: 'オクターブ',
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export const content: ToolLocaleContent<MusicalTypographyUI> = {
|
|
113
|
+
slug,
|
|
114
|
+
title,
|
|
115
|
+
description,
|
|
116
|
+
ui,
|
|
117
|
+
faqTitle: 'よくある質問',
|
|
118
|
+
faq: faqData,
|
|
119
|
+
bibliographyTitle: '参考文献',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{
|
|
122
|
+
name: 'Bringhurst, R. The Elements of Typographic Style',
|
|
123
|
+
url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'Brown, T. More Meaningful Typography. A List Apart',
|
|
127
|
+
url: 'https://alistapart.com/article/more-meaningful-typography/',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'Physics of Music. Musical Intervals and Scales',
|
|
131
|
+
url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
howTo: howToData,
|
|
135
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
136
|
+
seo: [
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: 'Webデザインに宿る見えない調和',
|
|
140
|
+
level: 2,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: '<strong>音楽的タイポグラフィスケール</strong>は、音楽的インターバルの数学をタイポグラフィデザインに応用します。音楽の作曲が精密な比率によって支配されているように、優れたビジュアルデザインも、すべてのサイズを互いに関連付ける数学的構造から恩恵を受けます。',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: 'モジュラースケールの仕組み',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'grid',
|
|
153
|
+
columns: 2,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'card',
|
|
157
|
+
title: '計算式',
|
|
158
|
+
html: '<p>計算の仕組みはシンプルです:<code>サイズ = ベース × 比率<sup>n</sup></code>。ステップ0が基本テキスト、ステップ1が小さなサブタイトル、ステップ4か5がメインのH1になります。同じ乗数定数(比率)がすべての関係に一貫性をもたらします。</p>',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'card',
|
|
162
|
+
title: 'なぜ「音楽的」なのか',
|
|
163
|
+
html: '<p>ピタゴラス学派は、弦を単純な比率(1:2、2:3、3:4)で分割すると協和音が生まれることを発見しました。オクターブ、完全5度、完全4度というこれらのインターバルは、まさにタイポグラフィの比率と同じです。視覚的な音楽を作曲しているのです。</p>',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'title',
|
|
167
|
+
text: '適切な比率の選び方',
|
|
168
|
+
level: 3,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
html: '密度の高いインターフェース(ダッシュボード、テーブル)には<code>1.125</code>や<code>1.2</code>のような小さい比率を使いましょう。エディトリアルやポートフォリオサイトには、<code>1.5</code>や<code>1.618</code>のような表現豊かな比率が効果的です。',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: 'スケールを<code>font-size</code>だけに限定しないでください。同じCSS変数は<code>margin</code>、<code>padding</code>、<code>gap</code>にも使えます。余白がテキストと同じ数学的な進行に従うとき、デザインは誰もが感じるけれど説明できないレベルの一体感を達成します。',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
};
|
|
180
|
+
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { MusicalTypographyUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'musical-typography';
|
|
6
|
+
const title = '음악적 타이포그래피 스케일. 모듈러 스케일 계산기';
|
|
7
|
+
const description =
|
|
8
|
+
'음악적 비율에 기반한 모듈러 스케일로 조화로운 시각적 계층 구조를 만드는 무료 온라인 도구입니다. 웹 디자인에 바로 사용할 수 있는 CSS 변수를 생성합니다.';
|
|
9
|
+
|
|
10
|
+
const faqData = [
|
|
11
|
+
{
|
|
12
|
+
question: '타이포그래피 모듈러 스케일이란 무엇인가요?',
|
|
13
|
+
answer:
|
|
14
|
+
'일정한 수학적 비율을 기반으로 폰트 크기를 결정하는 방법입니다. 음악에서 음표들이 화성적 관계를 가지듯, 모듈러 스케일은 균형 잡히고 예측 가능한 시각적 계층 구조를 만들어냅니다.',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
question: '디자인에 음악적 음정을 사용하는 이유가 무엇인가요?',
|
|
18
|
+
answer:
|
|
19
|
+
'음악적 음정은 인간의 뇌가 조화롭다고 인식하는 비율입니다. 이를 텍스트 크기에 적용하면 크기를 임의로 선택하는 대신, 올바르고 전문적으로 느껴지는 시각적 구조가 탄생합니다.',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
question: '타이포그래피에서 황금비란 무엇인가요?',
|
|
23
|
+
answer:
|
|
24
|
+
'황금 분할이라고도 불리는 1.618 비율입니다. 계층의 각 단계가 기하급수적으로 커지는 매우 극적이고 우아한 스케일을 만들어냅니다. 포트폴리오나 예술 중심 웹사이트에 적합합니다.',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: 'CSS 파일에 스케일을 어떻게 적용하나요?',
|
|
28
|
+
answer:
|
|
29
|
+
'이 도구는 :root { --step-N: Xrem; } 형식의 CSS 변수(토큰)를 생성합니다. 메인 CSS 파일에 복사한 후 var(--step-N)으로 사용하면 사이트 전체에서 일관된 타이포그래피를 유지할 수 있습니다.',
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
|
|
33
|
+
const howToData = [
|
|
34
|
+
{
|
|
35
|
+
name: '기본 크기 설정',
|
|
36
|
+
text: '스케일의 기본음이 될 본문 텍스트의 폰트 크기(보통 16px)를 입력합니다.',
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: '음정 선택',
|
|
40
|
+
text: '각 제목 레벨 간의 크기 차이를 결정할 음악적 비율을 선택합니다.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: '계층 구조 미리보기',
|
|
44
|
+
text: '타이포그래피 레벨이 실시간으로 어떻게 보이는지 확인하고, 시각적 조화가 프로젝트에 맞는지 검토합니다.',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: '코드 내보내기',
|
|
48
|
+
text: 'CSS 변수 복사를 클릭하면 워크플로에 바로 붙여넣을 수 있는 코드 블록을 얻을 수 있습니다.',
|
|
49
|
+
},
|
|
50
|
+
];
|
|
51
|
+
|
|
52
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
53
|
+
'@context': 'https://schema.org',
|
|
54
|
+
'@type': 'FAQPage',
|
|
55
|
+
mainEntity: faqData.map((item) => ({
|
|
56
|
+
'@type': 'Question',
|
|
57
|
+
name: item.question,
|
|
58
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
63
|
+
'@context': 'https://schema.org',
|
|
64
|
+
'@type': 'HowTo',
|
|
65
|
+
name: title,
|
|
66
|
+
description,
|
|
67
|
+
step: howToData.map((step, i) => ({
|
|
68
|
+
'@type': 'HowToStep',
|
|
69
|
+
position: i + 1,
|
|
70
|
+
name: step.name,
|
|
71
|
+
text: step.text,
|
|
72
|
+
})),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
76
|
+
'@context': 'https://schema.org',
|
|
77
|
+
'@type': 'SoftwareApplication',
|
|
78
|
+
name: title,
|
|
79
|
+
description,
|
|
80
|
+
applicationCategory: 'DesignApplication',
|
|
81
|
+
operatingSystem: 'All',
|
|
82
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
83
|
+
inLanguage: 'ko',
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const ui: MusicalTypographyUI = {
|
|
87
|
+
labelConfig: '설정',
|
|
88
|
+
labelBaseSize: '기본 크기 (px)',
|
|
89
|
+
hintBaseSize: '본문 텍스트의 크기 (보통 16px).',
|
|
90
|
+
labelRatio: '음악적 스케일 (비율)',
|
|
91
|
+
hintRatio: '각 단계에서 크기가 얼마나 커지는지 결정합니다.',
|
|
92
|
+
labelCalculated: '계산된 값',
|
|
93
|
+
labelPreview: '미리보기',
|
|
94
|
+
btnCopyCss: 'CSS 변수 복사',
|
|
95
|
+
feedbackCopied: '변수가 클립보드에 복사되었습니다!',
|
|
96
|
+
previewText: '음악적 타이포그래피',
|
|
97
|
+
previewSubtext: '디자인을 위한 완벽한 조화 스케일.',
|
|
98
|
+
ratioSecundaMenor: '단2도',
|
|
99
|
+
ratioSegundaMayor: '장2도',
|
|
100
|
+
ratioTerceraMenor: '단3도',
|
|
101
|
+
ratioTerceraMayor: '장3도',
|
|
102
|
+
ratioCuartaPerfecta: '완전4도',
|
|
103
|
+
ratioCuartaAumentada: '증4도',
|
|
104
|
+
ratioQuintaPerfecta: '완전5도',
|
|
105
|
+
ratioProporcionAurea: '황금비',
|
|
106
|
+
ratioSextaMayor: '장6도',
|
|
107
|
+
ratioSeptimaMenor: '단7도',
|
|
108
|
+
ratioSeptimaMayor: '장7도',
|
|
109
|
+
ratioOctava: '옥타브',
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export const content: ToolLocaleContent<MusicalTypographyUI> = {
|
|
113
|
+
slug,
|
|
114
|
+
title,
|
|
115
|
+
description,
|
|
116
|
+
ui,
|
|
117
|
+
faqTitle: '자주 묻는 질문',
|
|
118
|
+
faq: faqData,
|
|
119
|
+
bibliographyTitle: '참고 자료',
|
|
120
|
+
bibliography: [
|
|
121
|
+
{
|
|
122
|
+
name: 'Bringhurst, R. The Elements of Typographic Style',
|
|
123
|
+
url: 'https://en.wikipedia.org/wiki/The_Elements_of_Typographic_Style',
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
name: 'Brown, T. More Meaningful Typography. A List Apart',
|
|
127
|
+
url: 'https://alistapart.com/article/more-meaningful-typography/',
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
name: 'Physics of Music. Musical Intervals and Scales',
|
|
131
|
+
url: 'https://es.scribd.com/document/199729396/Physics-of-Music-Notes',
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
howTo: howToData,
|
|
135
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
136
|
+
seo: [
|
|
137
|
+
{
|
|
138
|
+
type: 'title',
|
|
139
|
+
text: '웹 디자인 속 보이지 않는 조화',
|
|
140
|
+
level: 2,
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
type: 'paragraph',
|
|
144
|
+
html: '<strong>음악적 타이포그래피 스케일</strong>은 음악적 음정의 수학을 타이포그래피 디자인에 적용합니다. 음악 작품이 정밀한 비율로 구성되듯, 탄탄한 시각 디자인도 모든 크기를 서로 연결하는 수학적 구조로부터 힘을 얻습니다.',
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
type: 'title',
|
|
148
|
+
text: '모듈러 스케일의 작동 원리',
|
|
149
|
+
level: 3,
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
type: 'grid',
|
|
153
|
+
columns: 2,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
type: 'card',
|
|
157
|
+
title: '공식',
|
|
158
|
+
html: '<p>진행 방식은 간단합니다: <code>크기 = 기본값 × 비율<sup>n</sup></code>. 0단계가 기본 텍스트, 1단계가 작은 소제목, 4~5단계가 주요 H1이 됩니다. 동일한 배수 상수(비율)가 모든 관계를 일관성 있게 유지합니다.</p>',
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
type: 'card',
|
|
162
|
+
title: '왜 "음악적"인가',
|
|
163
|
+
html: '<p>피타고라스학파는 현을 단순한 비율(1:2, 2:3, 3:4)로 나누면 협화음이 생긴다는 것을 발견했습니다. 옥타브, 완전5도, 완전4도 — 이 음정들이 바로 타이포그래피 비율과 정확히 일치합니다. 당신은 시각적 음악을 작곡하고 있는 것입니다.</p>',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: 'title',
|
|
167
|
+
text: '올바른 비율 선택하기',
|
|
168
|
+
level: 3,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
type: 'tip',
|
|
172
|
+
html: '정보가 밀집한 인터페이스(대시보드, 표)에는 <code>1.125</code>나 <code>1.2</code>와 같은 작은 비율을 사용하세요. 에디토리얼이나 포트폴리오 사이트에는 <code>1.5</code>나 <code>1.618</code>처럼 표현력이 강한 비율이 효과적입니다.',
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
type: 'paragraph',
|
|
176
|
+
html: '스케일을 <code>font-size</code>에만 국한하지 마세요. 동일한 CSS 변수를 <code>margin</code>, <code>padding</code>, <code>gap</code>에도 활용할 수 있습니다. 여백이 텍스트와 같은 수학적 진행을 따를 때, 디자인은 모두가 느끼지만 쉽게 설명하기 어려운 수준의 완성도에 도달합니다.',
|
|
177
|
+
},
|
|
178
|
+
],
|
|
179
|
+
};
|
|
180
|
+
|