@jjlmoya/utils-developer 1.3.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/index.ts +12 -0
- 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,134 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadabilityCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'visual-readability-calculator-wcag-apca';
|
|
6
|
+
const title = '視覚的可読性チェッカー WCAG と APCA';
|
|
7
|
+
const description = 'APCAとWCAG 3.0であなたのデザインの実際のコントラストを確認しましょう。フォントの太さとサイズが可読性に与える影響を分析できます。単純な比率から知覚的な読みやすさまで対応。';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'APCAとは何ですか?WCAG 2.1とどう違うのですか?',
|
|
12
|
+
answer: 'APCAは、WCAG 3.0向けに開発された「Advanced Perceptual Contrast Algorithm(高度知覚コントラストアルゴリズム)」です。従来の単純な比率とは異なり、APCAは人間の脳がコントラストを知覚する仕組みを数学的にモデル化しており、極性(明るい背景 vs 暗い背景)やフォントのサイズ・ウェイトを考慮しています。',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Lc値はどういう意味ですか?',
|
|
16
|
+
answer: 'Lc(Lightness Contrast)はAPCAが算出するコントラスト値です。100が理想的な最大コントラストを示し、60を下回ると連続する文章テキストには問題があるとされます。これは知覚の絶対スケールです。',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'フォントの太さは可読性にどう影響しますか?',
|
|
20
|
+
answer: '細いフォント(ThinやLight)は読みやすくするためにより高いコントラストが必要です。APCAは低ウェイトのフォントに対してより厳しい基準を設けており、WCAG基準をウェイト100のフォントで通過したデザインでも実際には読みにくい場合があります。',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'このツールはプライバシーに配慮していますか?',
|
|
24
|
+
answer: 'はい。すべての計算はブラウザ上でローカルに実行されます。分析した色や設定がサーバーに送信されることはなく、デザインプロジェクトのプライバシーは完全に守られます。',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: '色を選ぶ', text: 'カラーピッカーを使ってテキストカラーと背景色を設定してください。' },
|
|
30
|
+
{ name: 'タイポグラフィを調整する', text: 'フォントサイズとウェイトのスライダーを動かして、実際のタイポグラフィを再現してください。' },
|
|
31
|
+
{ name: '結果を確認する', text: 'WCAG 2.1比率とAPCAのLc値を確認して、デザインがアクセシブルかどうかを判断してください。' },
|
|
32
|
+
{ name: '推奨事項を見直す', text: 'ボディテキスト、小さなテキスト、UI要素に対するAPCA固有の推奨事項を確認してください。' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'ja',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: ReadabilityCalculatorUI = {
|
|
65
|
+
labelColors: 'ベースカラー',
|
|
66
|
+
labelText: 'テキスト',
|
|
67
|
+
labelBg: '背景',
|
|
68
|
+
labelTypo: 'タイポグラフィ',
|
|
69
|
+
labelFontSize: 'フォントサイズ',
|
|
70
|
+
labelFontWeight: 'フォントウェイト',
|
|
71
|
+
labelCompare: 'コントラスト比較',
|
|
72
|
+
labelPreview: '知覚的プレビュー',
|
|
73
|
+
labelApcaRecs: 'APCA 推奨事項',
|
|
74
|
+
labelBody: '本文テキスト(Body)',
|
|
75
|
+
labelSmall: '小さいテキスト / キャプション',
|
|
76
|
+
labelUi: 'UI / ボタン',
|
|
77
|
+
statusYes: 'はい',
|
|
78
|
+
statusNo: 'いいえ',
|
|
79
|
+
wcagAAA: 'AAA 合格',
|
|
80
|
+
wcagAA: 'AA 合格',
|
|
81
|
+
wcagLarge: '大きいテキストのみ',
|
|
82
|
+
wcagFail: '不合格',
|
|
83
|
+
apcaExcellent: '優秀',
|
|
84
|
+
apcaGood: '良好',
|
|
85
|
+
apcaMinimal: '最低限',
|
|
86
|
+
apcaPoor: '不十分',
|
|
87
|
+
previewText: '視覚的な読みやすさは、数学だけではありません。光と影があなたの目と交わる感覚です。',
|
|
88
|
+
wcagRatioLabel: 'WCAG 2.1 比率',
|
|
89
|
+
apcaLcLabel: 'APCA Lc(WCAG 3)',
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
|
|
93
|
+
slug,
|
|
94
|
+
title,
|
|
95
|
+
description,
|
|
96
|
+
ui,
|
|
97
|
+
faqTitle: 'よくある質問',
|
|
98
|
+
faq: faqData,
|
|
99
|
+
bibliographyTitle: 'コントラストとAPCAに関するリソース',
|
|
100
|
+
bibliography: [
|
|
101
|
+
{ name: 'W3C: WCAG 3.0 ドラフト(Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
|
|
102
|
+
{ name: 'Myndex: APCA リファレンスガイド', url: 'https://apcaw3.myndex.com/' },
|
|
103
|
+
{ name: 'MDN: アクセシビリティとカラーコントラスト', url: 'https://developer.mozilla.org/ja/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
|
|
104
|
+
],
|
|
105
|
+
howTo: howToData,
|
|
106
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
107
|
+
seo: [
|
|
108
|
+
{ type: 'title', text: '視覚的可読性チェッカー(WCAG vs APCA)', level: 2 },
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: '新しい知覚的アクセシビリティ標準を使って、色とタイポグラフィが実際の読みやすさにどう影響するかを理解しましょう。WCAG 2.1は2008年のシンプルな数式を使用しています。<strong>APCA</strong>は人間の知覚を模倣した<strong>WCAG 3.0</strong>向けの新しいモデルです。',
|
|
112
|
+
},
|
|
113
|
+
{ type: 'title', text: 'APCAの主なポイント', level: 3 },
|
|
114
|
+
{
|
|
115
|
+
type: 'list',
|
|
116
|
+
items: [
|
|
117
|
+
'<strong>極性:</strong>ダークモードとライトモードでは知覚が異なることを考慮しています。',
|
|
118
|
+
'<strong>フォントウェイト:</strong>タイポグラフィの太さに応じた具体的なコントラストレベル(Lc)を設定します。',
|
|
119
|
+
'<strong>線形性:</strong>2008年の相対輝度モデルにある数学的な不正確さを修正します。',
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{ type: 'title', text: '推奨されるAPCAレベル', level: 3 },
|
|
123
|
+
{
|
|
124
|
+
type: 'list',
|
|
125
|
+
items: [
|
|
126
|
+
'<strong>Lc 90+:</strong>非常に小さいテキストや細いウェイトのテキストに最適。',
|
|
127
|
+
'<strong>Lc 75:</strong>メインの本文テキストの標準。',
|
|
128
|
+
'<strong>Lc 60:</strong>中程度のサイズのコンテンツを読めるようにするための最低基準。',
|
|
129
|
+
'<strong>Lc 45:</strong>大きな要素や装飾的な要素の最低基準。',
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
};
|
|
134
|
+
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadabilityCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'visual-readability-calculator-wcag-apca';
|
|
6
|
+
const title = '시각적 가독성 계산기 WCAG와 APCA';
|
|
7
|
+
const description = 'APCA(WCAG 3.0)로 디자인의 실제 명암 대비를 확인하세요. 폰트 굵기와 크기가 실제 가독성에 미치는 영향을 분석합니다. 단순 비율부터 지각적 가독성까지 모두 확인할 수 있습니다.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'APCA란 무엇이며 WCAG 2.1과 어떻게 다른가요?',
|
|
12
|
+
answer: 'APCA는 WCAG 3.0을 위해 개발된 고급 지각적 명암 대비 알고리즘(Advanced Perceptual Contrast Algorithm)입니다. 기존의 단순 비율과 달리, APCA는 극성(밝은 배경 대 어두운 배경)과 폰트 크기 및 굵기를 고려하여 인간의 뇌가 명암 대비를 지각하는 방식을 수학적으로 모델링합니다.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Lc 값은 무엇을 의미하나요?',
|
|
16
|
+
answer: 'Lc(Lightness Contrast)는 APCA가 생성하는 명암 대비 값입니다. 100은 이상적인 최대 명암 대비를 나타내며, 60 미만은 연속적인 읽기 텍스트에 문제가 생기기 시작하는 수준입니다. 이는 지각의 절대적 크기 척도입니다.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: '폰트 굵기가 가독성에 어떤 영향을 미치나요?',
|
|
20
|
+
answer: '얇은 폰트(Thin/Light)는 읽기 위해 훨씬 더 높은 명암 대비가 필요합니다. APCA는 낮은 굵기의 폰트에 불이익을 주며, 굵기 100의 폰트로 WCAG를 통과한 디자인이 실제로는 읽기 어려울 수 있음을 보여줍니다.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: '이 계산기는 개인정보를 보호하나요?',
|
|
24
|
+
answer: '네, 모든 계산은 브라우저에서 로컬로 수행됩니다. 분석하는 색상과 설정은 어떤 서버에도 전송되지 않으므로 디자인 프로젝트의 완전한 개인정보 보호가 보장됩니다.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: '색상 선택', text: '색상 선택기를 사용하여 디자인의 텍스트 색상과 배경 색상을 설정하세요.' },
|
|
30
|
+
{ name: '타이포그래피 조정', text: '폰트 크기와 굵기 슬라이더를 조정하여 실제 타이포그래피를 시뮬레이션하세요.' },
|
|
31
|
+
{ name: '결과 확인', text: 'WCAG 2.1 비율과 APCA Lc 값을 확인하여 디자인이 접근성 기준을 충족하는지 파악하세요.' },
|
|
32
|
+
{ name: '권장 사항 검토', text: '본문 텍스트, 작은 텍스트, UI 요소에 대한 APCA 전용 권장 사항을 확인하세요.' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'ko',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: ReadabilityCalculatorUI = {
|
|
65
|
+
labelColors: '기본 색상',
|
|
66
|
+
labelText: '텍스트',
|
|
67
|
+
labelBg: '배경',
|
|
68
|
+
labelTypo: '타이포그래피',
|
|
69
|
+
labelFontSize: '폰트 크기',
|
|
70
|
+
labelFontWeight: '폰트 굵기',
|
|
71
|
+
labelCompare: '명암 대비 비교',
|
|
72
|
+
labelPreview: '지각적 미리보기',
|
|
73
|
+
labelApcaRecs: 'APCA 권장 사항',
|
|
74
|
+
labelBody: '본문 텍스트 (Body)',
|
|
75
|
+
labelSmall: '작은 텍스트 / 캡션',
|
|
76
|
+
labelUi: 'UI / 버튼',
|
|
77
|
+
statusYes: '예',
|
|
78
|
+
statusNo: '아니오',
|
|
79
|
+
wcagAAA: 'AAA 통과',
|
|
80
|
+
wcagAA: 'AA 통과',
|
|
81
|
+
wcagLarge: '큰 텍스트만 해당',
|
|
82
|
+
wcagFail: '미통과',
|
|
83
|
+
apcaExcellent: '우수',
|
|
84
|
+
apcaGood: '양호',
|
|
85
|
+
apcaMinimal: '최소',
|
|
86
|
+
apcaPoor: '미흡',
|
|
87
|
+
previewText: '시각적 가독성은 수학만이 아닙니다. 빛과 그림자가 당신의 눈과 상호작용하는 방식입니다.',
|
|
88
|
+
wcagRatioLabel: 'WCAG 2.1 비율',
|
|
89
|
+
apcaLcLabel: 'APCA Lc (WCAG 3)',
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
|
|
93
|
+
slug,
|
|
94
|
+
title,
|
|
95
|
+
description,
|
|
96
|
+
ui,
|
|
97
|
+
faqTitle: '자주 묻는 질문',
|
|
98
|
+
faq: faqData,
|
|
99
|
+
bibliographyTitle: '명암 대비와 APCA 관련 자료',
|
|
100
|
+
bibliography: [
|
|
101
|
+
{ name: 'W3C: WCAG 3.0 초안 (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
|
|
102
|
+
{ name: 'Myndex: APCA 참조 가이드', url: 'https://apcaw3.myndex.com/' },
|
|
103
|
+
{ name: 'MDN: 접근성과 색상 명암 대비', url: 'https://developer.mozilla.org/ko/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
|
|
104
|
+
],
|
|
105
|
+
howTo: howToData,
|
|
106
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
107
|
+
seo: [
|
|
108
|
+
{ type: 'title', text: '시각적 가독성 계산기 (WCAG vs APCA)', level: 2 },
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: '새로운 지각적 접근성 표준으로 색상과 타이포그래피가 실제 가독성에 미치는 영향을 이해하세요. WCAG 2.1은 2008년의 단순한 수학 공식을 사용합니다. <strong>APCA</strong>는 인간의 지각을 모방한 <strong>WCAG 3.0</strong>의 새로운 모델입니다.',
|
|
112
|
+
},
|
|
113
|
+
{ type: 'title', text: 'APCA의 핵심 포인트', level: 3 },
|
|
114
|
+
{
|
|
115
|
+
type: 'list',
|
|
116
|
+
items: [
|
|
117
|
+
'<strong>극성:</strong> 다크 모드와 라이트 모드가 다르게 인식된다는 점을 반영합니다.',
|
|
118
|
+
'<strong>폰트 굵기:</strong> 타이포그래피 굵기에 따른 구체적인 명암 대비 수준(Lc)을 설정합니다.',
|
|
119
|
+
'<strong>선형성:</strong> 2008년 상대적 밝기 모델의 수학적 부정확성을 수정합니다.',
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{ type: 'title', text: '권장 APCA 수준', level: 3 },
|
|
123
|
+
{
|
|
124
|
+
type: 'list',
|
|
125
|
+
items: [
|
|
126
|
+
'<strong>Lc 90+:</strong> 매우 작거나 가는 텍스트에 이상적입니다.',
|
|
127
|
+
'<strong>Lc 75:</strong> 메인 본문 텍스트의 표준 수준입니다.',
|
|
128
|
+
'<strong>Lc 60:</strong> 중간 크기 콘텐츠의 최소 가독성 기준입니다.',
|
|
129
|
+
'<strong>Lc 45:</strong> 크거나 장식적인 요소의 최소 기준입니다.',
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
};
|
|
134
|
+
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadabilityCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'visuele-leesbaarheidsrekenmachine-wcag-apca';
|
|
6
|
+
const title = 'Visuele Leesbaarheidsrekenmachine WCAG en APCA';
|
|
7
|
+
const description = 'Controleer het werkelijke contrast van uw ontwerpen met APCA (WCAG 3.0). Analyseer hoe lettergewicht en -grootte de echte leesbaarheid beïnvloeden. Van eenvoudige verhoudingen tot perceptuele leesbaarheid.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{
|
|
11
|
+
question: 'Wat is APCA en waarom verschilt het van WCAG 2.1?',
|
|
12
|
+
answer: 'APCA is het Advanced Perceptual Contrast Algorithm, ontwikkeld voor WCAG 3.0. Anders dan de oude eenvoudige verhouding gebruikt APCA wiskundige modellen die nabootsen hoe het menselijk brein contrast waarneemt, rekening houdend met polariteit (lichte vs. donkere achtergrond) en lettergrootte en -gewicht.',
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
question: 'Wat betekent de Lc-waarde?',
|
|
16
|
+
answer: 'Lc (Lightness Contrast) is de contrastwaarde die APCA genereert. Een waarde van 100 staat voor het ideale maximale contrast, terwijl waarden onder de 60 kritisch worden voor doorlopende leesteksten. Het is een absolute schaal voor perceptuele grootte.',
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
question: 'Hoe beïnvloedt het lettergewicht de leesbaarheid?',
|
|
20
|
+
answer: 'Dunne lettertypen (Thin/Light) vereisen een veel hoger contrast om leesbaar te zijn. APCA penaliseert lettertypen met een laag gewicht en laat zien dat een ontwerp dat WCAG haalt met een gewicht-100-lettertype in de praktijk onleesbaar kan zijn.',
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
question: 'Is deze rekenmachine privacyvriendelijk?',
|
|
24
|
+
answer: 'Ja, alle berekeningen worden lokaal in uw browser uitgevoerd. De kleuren en instellingen die u analyseert worden nooit naar een server verzonden, wat volledige privacy voor uw ontwerpprojecten garandeert.',
|
|
25
|
+
},
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
const howToData = [
|
|
29
|
+
{ name: 'Kleuren kiezen', text: 'Gebruik de kleurkiezers om de tekstkleur en achtergrondkleur van uw ontwerp in te stellen.' },
|
|
30
|
+
{ name: 'Typografie aanpassen', text: 'Versleep de schuifregelaars voor lettergrootte en -gewicht om uw werkelijke typografie te simuleren.' },
|
|
31
|
+
{ name: 'Resultaten lezen', text: 'Controleer de WCAG 2.1-verhouding en de APCA Lc-waarde om te weten of uw ontwerp toegankelijk is.' },
|
|
32
|
+
{ name: 'Aanbevelingen bekijken', text: 'Bekijk de APCA-specifieke aanbevelingen voor leestekst, kleine tekst en UI-elementen.' },
|
|
33
|
+
];
|
|
34
|
+
|
|
35
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
36
|
+
'@context': 'https://schema.org',
|
|
37
|
+
'@type': 'FAQPage',
|
|
38
|
+
mainEntity: faqData.map((item) => ({
|
|
39
|
+
'@type': 'Question',
|
|
40
|
+
name: item.question,
|
|
41
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
42
|
+
})),
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
46
|
+
'@context': 'https://schema.org',
|
|
47
|
+
'@type': 'HowTo',
|
|
48
|
+
name: title,
|
|
49
|
+
description,
|
|
50
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
54
|
+
'@context': 'https://schema.org',
|
|
55
|
+
'@type': 'SoftwareApplication',
|
|
56
|
+
name: title,
|
|
57
|
+
description,
|
|
58
|
+
applicationCategory: 'UtilityApplication',
|
|
59
|
+
operatingSystem: 'All',
|
|
60
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
61
|
+
inLanguage: 'nl',
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const ui: ReadabilityCalculatorUI = {
|
|
65
|
+
labelColors: 'Basiskleuren',
|
|
66
|
+
labelText: 'Tekst',
|
|
67
|
+
labelBg: 'Achtergrond',
|
|
68
|
+
labelTypo: 'Typografie',
|
|
69
|
+
labelFontSize: 'Lettergrootte',
|
|
70
|
+
labelFontWeight: 'Lettergewicht',
|
|
71
|
+
labelCompare: 'Contrastvergelijking',
|
|
72
|
+
labelPreview: 'Perceptueel voorbeeld',
|
|
73
|
+
labelApcaRecs: 'APCA-aanbevelingen',
|
|
74
|
+
labelBody: 'Leestekst (Body)',
|
|
75
|
+
labelSmall: 'Kleine tekst / Bijschrift',
|
|
76
|
+
labelUi: 'UI / Knoppen',
|
|
77
|
+
statusYes: 'Ja',
|
|
78
|
+
statusNo: 'Nee',
|
|
79
|
+
wcagAAA: 'Slaagt voor AAA',
|
|
80
|
+
wcagAA: 'Slaagt voor AA',
|
|
81
|
+
wcagLarge: 'Alleen grote tekst',
|
|
82
|
+
wcagFail: 'Slaagt niet',
|
|
83
|
+
apcaExcellent: 'Uitstekend',
|
|
84
|
+
apcaGood: 'Goed',
|
|
85
|
+
apcaMinimal: 'Minimaal',
|
|
86
|
+
apcaPoor: 'Onvoldoende',
|
|
87
|
+
previewText: 'Visuele leesbaarheid is niet alleen wiskunde. Het is de manier waarop licht en schaduw met uw ogen samenwerken.',
|
|
88
|
+
wcagRatioLabel: 'WCAG 2.1-verhouding',
|
|
89
|
+
apcaLcLabel: 'APCA Lc (WCAG 3)',
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
|
|
93
|
+
slug,
|
|
94
|
+
title,
|
|
95
|
+
description,
|
|
96
|
+
ui,
|
|
97
|
+
faqTitle: 'Veelgestelde vragen',
|
|
98
|
+
faq: faqData,
|
|
99
|
+
bibliographyTitle: 'Bronnen over contrast en APCA',
|
|
100
|
+
bibliography: [
|
|
101
|
+
{ name: 'W3C: WCAG 3.0-concept (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
|
|
102
|
+
{ name: 'Myndex: APCA-referentiegids', url: 'https://apcaw3.myndex.com/' },
|
|
103
|
+
{ name: 'MDN: Toegankelijkheid en kleurcontrast', url: 'https://developer.mozilla.org/nl/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
|
|
104
|
+
],
|
|
105
|
+
howTo: howToData,
|
|
106
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
107
|
+
seo: [
|
|
108
|
+
{ type: 'title', text: 'Visuele leesbaarheidsrekenmachine (WCAG vs APCA)', level: 2 },
|
|
109
|
+
{
|
|
110
|
+
type: 'paragraph',
|
|
111
|
+
html: 'Begrijp hoe uw kleuren en typografie de werkelijke leesbaarheid beïnvloeden met de nieuwe perceptuele toegankelijkheidsstandaard. WCAG 2.1 gebruikt een eenvoudige wiskundige formule uit 2008. <strong>APCA</strong> is het nieuwe model voor <strong>WCAG 3.0</strong> dat menselijke waarneming nabootst.',
|
|
112
|
+
},
|
|
113
|
+
{ type: 'title', text: 'Kernpunten van APCA', level: 3 },
|
|
114
|
+
{
|
|
115
|
+
type: 'list',
|
|
116
|
+
items: [
|
|
117
|
+
'<strong>Polariteit:</strong> Begrijpt dat donkere modus anders wordt waargenomen dan lichte modus.',
|
|
118
|
+
'<strong>Lettergewicht:</strong> Kent specifieke contrastniveaus (Lc) toe op basis van het typografisch gewicht.',
|
|
119
|
+
'<strong>Lineariteit:</strong> Corrigeert wiskundige onnauwkeurigheden in het relatieve luminantiemodel uit 2008.',
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
{ type: 'title', text: 'Aanbevolen APCA-niveaus', level: 3 },
|
|
123
|
+
{
|
|
124
|
+
type: 'list',
|
|
125
|
+
items: [
|
|
126
|
+
'<strong>Lc 90+:</strong> Ideaal voor zeer kleine of lichte tekst.',
|
|
127
|
+
'<strong>Lc 75:</strong> De standaard voor gewone leestekst.',
|
|
128
|
+
'<strong>Lc 60:</strong> Minimum voor leesbare content van gemiddelde grootte.',
|
|
129
|
+
'<strong>Lc 45:</strong> Minimum voor grote of decoratieve elementen.',
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadabilityCalculatorUI } from '../ui';
|
|
4
|
+
|
|
5
|
+
const slug = 'kalkulator-czytelnosci-wizualnej-wcag-apca';
|
|
6
|
+
const title = 'Kalkulator Czytelności Wizualnej WCAG i APCA';
|
|
7
|
+
const description = 'Sprawdzaj rzeczywisty kontrast swoich projektów za pomocą APCA (WCAG 3.0). Analizuj, jak waga i rozmiar czcionki wpływają na faktyczną czytelność. Od prostych stosunków do percepcyjnej czytelności.';
|
|
8
|
+
|
|
9
|
+
const faqData = [
|
|
10
|
+
{ question: 'Co to jest APCA i czym się różni od WCAG 2.1?', answer: 'APCA to zaawansowany algorytm kontrastu percepcyjnego opracowany dla WCAG 3.0. W przeciwieństwie do starego prostego stosunku, APCA wykorzystuje modele matematyczne naśladujące sposób, w jaki ludzki mózg postrzega kontrast, biorąc pod uwagę polarność (jasne vs. ciemne tło) i rozmiar/wagę czcionki.' },
|
|
11
|
+
{ question: 'Co oznacza wartość Lc?', answer: 'Lc (Lightness Contrast) to wartość kontrastu wygenerowana przez APCA. Wartość 100 reprezentuje idealny maksymalny kontrast, podczas gdy wartości poniżej 60 zaczynają być krytyczne dla ciągłego czytania tekstu. To absolutna skala wielkości percepcji.' },
|
|
12
|
+
{ question: 'Jak waga czcionki wpływa na czytelność?', answer: 'Cienkie/lekkie czcionki wymagają znacznie wyższego kontrastu, aby być czytelne. APCA karze lekkie czcionki, wskazując, że projekt przechodzący WCAG z wagą 100 może być nieczytelny w praktyce.' },
|
|
13
|
+
{ question: 'Czy ten kalkulator jest prywatny?', answer: 'Tak, wszystkie obliczenia są wykonywane lokalnie w przeglądarce. Kolory i ustawienia, które analizujesz, nigdy nie są wysyłane do żadnego serwera, gwarantując pełną prywatność dla Twoich projektów designu.' },
|
|
14
|
+
];
|
|
15
|
+
|
|
16
|
+
const howToData = [
|
|
17
|
+
{ name: 'Wybierz kolory', text: 'Użyj selektorów kolorów, aby ustawić kolor tekstu i kolor tła Twojego designu.' },
|
|
18
|
+
{ name: 'Dostosuj typografię', text: 'Przesuń suwaki rozmiaru czcionki i wagi, aby symulować swoją rzeczywistą typografię.' },
|
|
19
|
+
{ name: 'Czytaj wyniki', text: 'Sprawdź stosunek WCAG 2.1 i wartość APCA Lc, aby wiedzieć, czy Twój design jest dostępny.' },
|
|
20
|
+
{ name: 'Przejrzyj rekomendacje', text: 'Sprawdź rekomendacje specyficzne dla APCA dla tekstu głównego, małego tekstu i elementów UI.' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
24
|
+
const howToSchema: WithContext<HowToThing> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })) };
|
|
25
|
+
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pl' };
|
|
26
|
+
|
|
27
|
+
const ui: ReadabilityCalculatorUI = { labelColors: 'Kolory Bazowe', labelText: 'Tekst', labelBg: 'Tło', labelTypo: 'Typografia', labelFontSize: 'Rozmiar Czcionki', labelFontWeight: 'Waga', labelCompare: 'Porównanie Kontrastu', labelPreview: 'Percepcyjny Podgląd', labelApcaRecs: 'Rekomendacje APCA', labelBody: 'Tekst Czytania (Treść)', labelSmall: 'Mały Tekst / Podpis', labelUi: 'UI / Przyciski', statusYes: 'Tak', statusNo: 'Nie', wcagAAA: 'Przechodzi AAA', wcagAA: 'Przechodzi AA', wcagLarge: 'Tylko duży tekst', wcagFail: 'Niepowodzenie', apcaExcellent: 'Doskonały', apcaGood: 'Dobry', apcaMinimal: 'Minimalny', apcaPoor: 'Słaby', previewText: 'Czytelność wizualna to nie tylko matematyka. To jak światło i cień oddziałują na twoje oczy.', wcagRatioLabel: 'Stosunek WCAG 2.1', apcaLcLabel: 'APCA Lc (WCAG 3)', };
|
|
28
|
+
|
|
29
|
+
export const content: ToolLocaleContent<ReadabilityCalculatorUI> = { slug, title, description, ui, faqTitle: 'Często Zadawane Pytania', faq: faqData, bibliographyTitle: 'Zasoby na temat Kontrastu i APCA', bibliography: [{ name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' }, { name: 'Myndex: APCA Reference Guide', url: 'https://apcaw3.myndex.com/' }, { name: 'MDN: Accessibility and Color Contrast', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' }], howTo: howToData, schemas: [faqSchema, howToSchema, appSchema], seo: [{ type: 'title', text: 'Kalkulator Czytelności Wizualnej (WCAG vs APCA)', level: 2 }, { type: 'paragraph', html: 'Dowiedz się, jak Twoje kolory i typografia wpływają na rzeczywiste czytanie za pomocą nowego standardu percepcyjnej dostępności. WCAG 2.1 używa prostego wzoru matematycznego z 2008 roku. <strong>APCA</strong> to nowy model proponowany dla <strong>WCAG 3.0</strong>, który naśladuje percepcję człowieka.' }, { type: 'title', text: 'Kluczowe Punkty APCA', level: 3 }, { type: 'list', items: ['<strong>Polarność:</strong> Rozumie, że Tryb Ciemny jest postrzegany inaczej niż Tryb Jasny.', '<strong>Waga Czcionki:</strong> Przydziela określone poziomy kontrastu (Lc) w zależności od wagi typografii.', '<strong>Liniowość:</strong> Naprawia nieścisłości matematyczne w modelu względnej luminancji z 2008 roku.'] }, { type: 'title', text: 'Rekomendowane Poziomy APCA', level: 3 }, { type: 'list', items: ['<strong>Lc 90+:</strong> Idealne dla bardzo małego lub nisko ważonego tekstu.', '<strong>Lc 75:</strong> Standard dla głównego tekstu czytającego.', '<strong>Lc 60:</strong> Minimum dla czytelnej zawartości średniego rozmiaru.', '<strong>Lc 45:</strong> Minimum dla dużych lub dekoracyjnych elementów.'] }] };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadabilityCalculatorUI } from '../ui';
|
|
4
|
+
const slug = 'calculadora-legibilidade-visual';
|
|
5
|
+
const title = 'Calculadora de Legibilidade Visual WCAG e APCA';
|
|
6
|
+
const description = 'Verifique o contraste real de seus designs com APCA (WCAG 3.0). Analise como peso e tamanho da fonte afetam a legibilidade real.';
|
|
7
|
+
const faqData = [
|
|
8
|
+
{ question: 'O que é APCA e por que é diferente de WCAG 2.1?', answer: 'APCA é o Algoritmo Avançado de Contraste Perceptual desenvolvido para WCAG 3.0. Diferentemente da razão simples antiga, APCA usa modelos matemáticos que imitam como o cérebro humano percebe contraste, levando em conta polaridade e peso/tamanho da fonte.' },
|
|
9
|
+
{ question: 'O que significa o valor Lc?', answer: 'Lc (Contraste de Luminosidade) é o valor de contraste gerado por APCA. Um valor de 100 representa contraste máximo ideal, enquanto valores abaixo de 60 começam a ser críticos para leitura contínua.' },
|
|
10
|
+
{ question: 'Como o peso da fonte afeta a legibilidade?', answer: 'Fontes Finas/Claras requerem contraste muito mais alto para serem legíveis. APCA penaliza fontes de baixo peso, indicando que um design passando em WCAG com fonte peso-100 pode ser ilegível na prática.' },
|
|
11
|
+
{ question: 'Esta calculadora é privada?', answer: 'Sim, todos os cálculos são realizados localmente em seu navegador. As cores e configurações que você analisa nunca são enviadas para nenhum servidor, garantindo total privacidade.' },
|
|
12
|
+
];
|
|
13
|
+
const howToData = [
|
|
14
|
+
{ name: 'Escolha Cores', text: 'Use os seletores de cor para definir a cor do texto e cor de fundo do seu design.' },
|
|
15
|
+
{ name: 'Ajuste Tipografia', text: 'Mova os sliders de tamanho e peso de fonte para simular sua tipografia real.' },
|
|
16
|
+
{ name: 'Leia os Resultados', text: 'Verifique a razão WCAG 2.1 e o valor Lc APCA para saber se seu design é acessível.' },
|
|
17
|
+
{ name: 'Revise Recomendações', text: 'Verifique recomendações específicas de APCA para texto corporal, texto pequeno e elementos de UI.' },
|
|
18
|
+
];
|
|
19
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
20
|
+
'@context': 'https://schema.org',
|
|
21
|
+
'@type': 'FAQPage',
|
|
22
|
+
mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
|
|
23
|
+
};
|
|
24
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
25
|
+
'@context': 'https://schema.org',
|
|
26
|
+
'@type': 'HowTo',
|
|
27
|
+
name: title,
|
|
28
|
+
description,
|
|
29
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
30
|
+
};
|
|
31
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
32
|
+
'@context': 'https://schema.org',
|
|
33
|
+
'@type': 'SoftwareApplication',
|
|
34
|
+
name: title,
|
|
35
|
+
description,
|
|
36
|
+
applicationCategory: 'UtilityApplication',
|
|
37
|
+
operatingSystem: 'All',
|
|
38
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
39
|
+
inLanguage: 'pt',
|
|
40
|
+
};
|
|
41
|
+
const ui: ReadabilityCalculatorUI = {
|
|
42
|
+
labelColors: 'Cores Base',
|
|
43
|
+
labelText: 'Texto',
|
|
44
|
+
labelBg: 'Fundo',
|
|
45
|
+
labelTypo: 'Tipografia',
|
|
46
|
+
labelFontSize: 'Tamanho da Fonte',
|
|
47
|
+
labelFontWeight: 'Peso',
|
|
48
|
+
labelCompare: 'Comparação de Contraste',
|
|
49
|
+
labelPreview: 'Visualização Perceptual',
|
|
50
|
+
labelApcaRecs: 'Recomendações APCA',
|
|
51
|
+
labelBody: 'Texto de Leitura (Corpo)',
|
|
52
|
+
labelSmall: 'Texto Pequeno / Legenda',
|
|
53
|
+
labelUi: 'UI / Botões',
|
|
54
|
+
statusYes: 'Sim',
|
|
55
|
+
statusNo: 'Não',
|
|
56
|
+
wcagAAA: 'Aprova AAA',
|
|
57
|
+
wcagAA: 'Aprova AA',
|
|
58
|
+
wcagLarge: 'Apenas Texto Grande',
|
|
59
|
+
wcagFail: 'Falha',
|
|
60
|
+
apcaExcellent: 'Excelente',
|
|
61
|
+
apcaGood: 'Bom',
|
|
62
|
+
apcaMinimal: 'Mínimo',
|
|
63
|
+
apcaPoor: 'Pobre',
|
|
64
|
+
previewText: 'A legibilidade visual não é apenas matemática. É como luz e sombra interagem com seus olhos.',
|
|
65
|
+
wcagRatioLabel: 'Razão WCAG 2.1',
|
|
66
|
+
apcaLcLabel: 'APCA Lc (WCAG 3)',
|
|
67
|
+
};
|
|
68
|
+
export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
|
|
69
|
+
slug,
|
|
70
|
+
title,
|
|
71
|
+
description,
|
|
72
|
+
ui,
|
|
73
|
+
faqTitle: 'Perguntas Frequentes',
|
|
74
|
+
faq: faqData,
|
|
75
|
+
bibliographyTitle: 'Recursos em Contraste e APCA',
|
|
76
|
+
bibliography: [
|
|
77
|
+
{ name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
|
|
78
|
+
{ name: 'Myndex: Guia de Referência APCA', url: 'https://apcaw3.myndex.com/' },
|
|
79
|
+
{ name: 'MDN: Acessibilidade e Contraste de Cor', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
|
|
80
|
+
],
|
|
81
|
+
howTo: howToData,
|
|
82
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
83
|
+
seo: [
|
|
84
|
+
{ type: 'title', text: 'Calculadora de Legibilidade Visual (WCAG vs APCA)', level: 2 },
|
|
85
|
+
{ type: 'paragraph', html: 'Entenda como suas cores e tipografia afetam a leitura real com o novo padrão de acessibilidade perceptual. WCAG 2.1 usa uma fórmula matemática simples de 2008. <strong>APCA</strong> é o novo modelo proposto para <strong>WCAG 3.0</strong> que imita percepção humana.' },
|
|
86
|
+
{ type: 'title', text: 'Pontos-Chave de APCA', level: 3 },
|
|
87
|
+
{ type: 'list', items: [ '<strong>Polaridade:</strong> Entende que Modo Escuro é percebido diferentemente do Modo Claro.', '<strong>Peso da Fonte:</strong> Atribui níveis de contraste específicos (Lc) baseado em peso tipográfico.', '<strong>Linearidade:</strong> Corrige imprecisões matemáticas no modelo de luminância relativa de 2008.' ] },
|
|
88
|
+
{ type: 'title', text: 'Níveis APCA Recomendados', level: 3 },
|
|
89
|
+
{ type: 'list', items: [ '<strong>Lc 90+:</strong> Ideal para texto muito pequeno ou peso baixo.', '<strong>Lc 75:</strong> Padrão para texto corporal principal.', '<strong>Lc 60:</strong> Mínimo para conteúdo médio legível.', '<strong>Lc 45:</strong> Mínimo para elementos grandes ou decorativos.' ] },
|
|
90
|
+
],
|
|
91
|
+
};
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
import type { ReadabilityCalculatorUI } from '../ui';
|
|
4
|
+
const slug = 'kalkulyator-vizualnoj-chitaemosti';
|
|
5
|
+
const title = 'Калькулятор Визуальной Читаемости WCAG и APCA';
|
|
6
|
+
const description = 'Проверьте реальный контраст ваших дизайнов с APCA (WCAG 3.0). Анализируйте, как вес и размер шрифта влияют на фактическую читаемость.';
|
|
7
|
+
const faqData = [
|
|
8
|
+
{ question: 'Что такое APCA и почему она отличается от WCAG 2.1?', answer: 'APCA - это Алгоритм Расширенного Перцептивного Контраста, разработанный для WCAG 3.0. В отличие от старой простой формулы, APCA использует математические модели, которые имитируют, как человеческий мозг воспринимает контраст.' },
|
|
9
|
+
{ question: 'Что означает значение Lc?', answer: 'Lc (Lightness Contrast) - это значение контраста, сгенерированное APCA. Значение 100 представляет идеальный максимальный контраст, а значения ниже 60 начинают быть критическими для непрерывного чтения текста.' },
|
|
10
|
+
{ question: 'Как вес шрифта влияет на читаемость?', answer: 'Тонкие/Светлые шрифты требуют гораздо более высокого контраста для читаемости. APCA штрафует шрифты низкого веса, указывая, что дизайн, прошедший WCAG с шрифтом weight-100, может быть нечитаемым на практике.' },
|
|
11
|
+
{ question: 'Этот калькулятор приватный?', answer: 'Да, все расчеты выполняются локально в вашем браузере. Цвета и настройки, которые вы анализируете, никогда не отправляются на какой-либо сервер, гарантируя полную конфиденциальность.' },
|
|
12
|
+
];
|
|
13
|
+
const howToData = [
|
|
14
|
+
{ name: 'Выберите Цвета', text: 'Используйте средства выбора цвета для установки цвета текста и цвета фона вашего дизайна.' },
|
|
15
|
+
{ name: 'Отрегулируйте Типографику', text: 'Переместите ползунки размера и веса шрифта, чтобы смоделировать вашу реальную типографику.' },
|
|
16
|
+
{ name: 'Прочитайте Результаты', text: 'Проверьте коэффициент WCAG 2.1 и значение Lc APCA, чтобы узнать, доступен ли ваш дизайн.' },
|
|
17
|
+
{ name: 'Просмотрите Рекомендации', text: 'Проверьте рекомендации для основного текста, мелкого текста и элементов UI.' },
|
|
18
|
+
];
|
|
19
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
20
|
+
'@context': 'https://schema.org',
|
|
21
|
+
'@type': 'FAQPage',
|
|
22
|
+
mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
|
|
23
|
+
};
|
|
24
|
+
const howToSchema: WithContext<HowToThing> = {
|
|
25
|
+
'@context': 'https://schema.org',
|
|
26
|
+
'@type': 'HowTo',
|
|
27
|
+
name: title,
|
|
28
|
+
description,
|
|
29
|
+
step: howToData.map((s, i) => ({ '@type': 'HowToStep', position: i + 1, name: s.name, text: s.text })),
|
|
30
|
+
};
|
|
31
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
32
|
+
'@context': 'https://schema.org',
|
|
33
|
+
'@type': 'SoftwareApplication',
|
|
34
|
+
name: title,
|
|
35
|
+
description,
|
|
36
|
+
applicationCategory: 'UtilityApplication',
|
|
37
|
+
operatingSystem: 'All',
|
|
38
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
39
|
+
inLanguage: 'ru',
|
|
40
|
+
};
|
|
41
|
+
const ui: ReadabilityCalculatorUI = {
|
|
42
|
+
labelColors: 'Базовые Цвета',
|
|
43
|
+
labelText: 'Текст',
|
|
44
|
+
labelBg: 'Фон',
|
|
45
|
+
labelTypo: 'Типографика',
|
|
46
|
+
labelFontSize: 'Размер Шрифта',
|
|
47
|
+
labelFontWeight: 'Вес',
|
|
48
|
+
labelCompare: 'Сравнение Контраста',
|
|
49
|
+
labelPreview: 'Перцептивный Предпросмотр',
|
|
50
|
+
labelApcaRecs: 'Рекомендации APCA',
|
|
51
|
+
labelBody: 'Основной Текст',
|
|
52
|
+
labelSmall: 'Мелкий Текст',
|
|
53
|
+
labelUi: 'UI / Кнопки',
|
|
54
|
+
statusYes: 'Да',
|
|
55
|
+
statusNo: 'Нет',
|
|
56
|
+
wcagAAA: 'Проходит AAA',
|
|
57
|
+
wcagAA: 'Проходит AA',
|
|
58
|
+
wcagLarge: 'Только Крупный Текст',
|
|
59
|
+
wcagFail: 'Не Проходит',
|
|
60
|
+
apcaExcellent: 'Отличное',
|
|
61
|
+
apcaGood: 'Хорошее',
|
|
62
|
+
apcaMinimal: 'Минимальное',
|
|
63
|
+
apcaPoor: 'Плохое',
|
|
64
|
+
previewText: 'Визуальная читаемость - это не только математика. Это то, как свет и тень взаимодействуют с вашими глазами.',
|
|
65
|
+
wcagRatioLabel: 'Коэффициент WCAG 2.1',
|
|
66
|
+
apcaLcLabel: 'APCA Lc (WCAG 3)',
|
|
67
|
+
};
|
|
68
|
+
export const content: ToolLocaleContent<ReadabilityCalculatorUI> = {
|
|
69
|
+
slug,
|
|
70
|
+
title,
|
|
71
|
+
description,
|
|
72
|
+
ui,
|
|
73
|
+
faqTitle: 'Часто Задаваемые Вопросы',
|
|
74
|
+
faq: faqData,
|
|
75
|
+
bibliographyTitle: 'Ресурсы о Контрасте и APCA',
|
|
76
|
+
bibliography: [
|
|
77
|
+
{ name: 'W3C: WCAG 3.0 Draft (Silver)', url: 'https://www.w3.org/WAI/standards-guidelines/wcag/wcag3-intro/' },
|
|
78
|
+
{ name: 'Myndex: Справочное Руководство APCA', url: 'https://apcaw3.myndex.com/' },
|
|
79
|
+
{ name: 'MDN: Доступность и Контраст Цвета', url: 'https://developer.mozilla.org/en-US/docs/Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast' },
|
|
80
|
+
],
|
|
81
|
+
howTo: howToData,
|
|
82
|
+
schemas: [faqSchema, howToSchema, appSchema],
|
|
83
|
+
seo: [
|
|
84
|
+
{ type: 'title', text: 'Калькулятор Визуальной Читаемости (WCAG vs APCA)', level: 2 },
|
|
85
|
+
{ type: 'paragraph', html: 'Поймите, как ваши цвета и типографика влияют на реальное чтение с новым стандартом доступности восприятия. WCAG 2.1 использует простую математическую формулу 2008 года. <strong>APCA</strong> - это новая модель, предложенная для <strong>WCAG 3.0</strong>, которая имитирует человеческое восприятие.' },
|
|
86
|
+
{ type: 'title', text: 'Ключевые Моменты APCA', level: 3 },
|
|
87
|
+
{ type: 'list', items: [ '<strong>Полярность:</strong> Понимает, что Темный режим воспринимается иначе, чем Светлый режим.', '<strong>Вес Шрифта:</strong> Назначает определенные уровни контраста (Lc) на основе веса типографики.', '<strong>Линейность:</strong> Исправляет математические неточности в модели относительной яркости 2008 года.' ] },
|
|
88
|
+
{ type: 'title', text: 'Рекомендуемые Уровни APCA', level: 3 },
|
|
89
|
+
{ type: 'list', items: [ '<strong>Lc 90+:</strong> Идеально для очень мелкого текста или низкого веса.', '<strong>Lc 75:</strong> Стандарт для основного текста для чтения.', '<strong>Lc 60:</strong> Минимум для читаемого контента среднего размера.', '<strong>Lc 45:</strong> Минимум для крупных или декоративных элементов.' ] },
|
|
90
|
+
],
|
|
91
|
+
};
|