@jjlmoya/utils-tools 1.11.0 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/pages/[locale]/[slug].astro +30 -13
- package/src/tests/locale_completeness.test.ts +3 -20
- package/src/tests/shared-test-helpers.ts +56 -0
- package/src/tests/tool_exports.test.ts +34 -0
- package/src/tool/date-diff-calculator/bibliography.astro +2 -10
- package/src/tool/date-diff-calculator/bibliography.ts +7 -0
- package/src/tool/date-diff-calculator/date-difference-calculator.css +1 -1
- package/src/tool/date-diff-calculator/i18n/de.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/en.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/es.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/fr.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/id.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/it.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/ja.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/ko.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/nl.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/pl.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/pt.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/ru.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/sv.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/tr.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/zh.ts +4 -7
- package/src/tool/date-diff-calculator/seo.astro +2 -1
- package/src/tool/drive-direct-link/bibliography.astro +2 -10
- package/src/tool/drive-direct-link/bibliography.ts +6 -0
- package/src/tool/drive-direct-link/google-drive-direct-download-link.css +1 -1
- package/src/tool/drive-direct-link/i18n/de.ts +4 -6
- package/src/tool/drive-direct-link/i18n/en.ts +4 -6
- package/src/tool/drive-direct-link/i18n/es.ts +4 -6
- package/src/tool/drive-direct-link/i18n/fr.ts +4 -6
- package/src/tool/drive-direct-link/i18n/id.ts +4 -6
- package/src/tool/drive-direct-link/i18n/it.ts +4 -6
- package/src/tool/drive-direct-link/i18n/ja.ts +4 -6
- package/src/tool/drive-direct-link/i18n/ko.ts +4 -6
- package/src/tool/drive-direct-link/i18n/nl.ts +4 -6
- package/src/tool/drive-direct-link/i18n/pl.ts +4 -6
- package/src/tool/drive-direct-link/i18n/pt.ts +4 -6
- package/src/tool/drive-direct-link/i18n/ru.ts +4 -6
- package/src/tool/drive-direct-link/i18n/sv.ts +4 -6
- package/src/tool/drive-direct-link/i18n/tr.ts +4 -6
- package/src/tool/drive-direct-link/i18n/zh.ts +4 -6
- package/src/tool/drive-direct-link/seo.astro +2 -1
- package/src/tool/email-list-cleaner/bibliography.astro +2 -10
- package/src/tool/email-list-cleaner/bibliography.ts +7 -0
- package/src/tool/email-list-cleaner/email-list-cleaner.css +1 -1
- package/src/tool/email-list-cleaner/i18n/de.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/en.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/es.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/fr.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/id.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/it.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/ja.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/ko.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/nl.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/pl.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/pt.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/ru.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/sv.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/tr.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/zh.ts +4 -7
- package/src/tool/email-list-cleaner/seo.astro +2 -1
- package/src/tool/env-badge-spain/bibliography.astro +2 -10
- package/src/tool/env-badge-spain/bibliography.ts +6 -0
- package/src/tool/env-badge-spain/environmental-badge-simulator-spain.css +17 -17
- package/src/tool/env-badge-spain/i18n/de.ts +4 -6
- package/src/tool/env-badge-spain/i18n/en.ts +4 -6
- package/src/tool/env-badge-spain/i18n/es.ts +4 -6
- package/src/tool/env-badge-spain/i18n/fr.ts +4 -6
- package/src/tool/env-badge-spain/i18n/id.ts +4 -6
- package/src/tool/env-badge-spain/i18n/it.ts +4 -6
- package/src/tool/env-badge-spain/i18n/ja.ts +4 -6
- package/src/tool/env-badge-spain/i18n/ko.ts +4 -6
- package/src/tool/env-badge-spain/i18n/nl.ts +4 -6
- package/src/tool/env-badge-spain/i18n/pl.ts +4 -6
- package/src/tool/env-badge-spain/i18n/pt.ts +4 -6
- package/src/tool/env-badge-spain/i18n/ru.ts +4 -6
- package/src/tool/env-badge-spain/i18n/sv.ts +4 -6
- package/src/tool/env-badge-spain/i18n/tr.ts +4 -6
- package/src/tool/env-badge-spain/i18n/zh.ts +4 -6
- package/src/tool/env-badge-spain/seo.astro +2 -1
- package/src/tool/morse-beacon/bibliography.astro +2 -10
- package/src/tool/morse-beacon/bibliography.ts +7 -0
- package/src/tool/morse-beacon/i18n/de.ts +4 -7
- package/src/tool/morse-beacon/i18n/en.ts +4 -7
- package/src/tool/morse-beacon/i18n/es.ts +4 -7
- package/src/tool/morse-beacon/i18n/fr.ts +4 -7
- package/src/tool/morse-beacon/i18n/id.ts +4 -7
- package/src/tool/morse-beacon/i18n/it.ts +4 -7
- package/src/tool/morse-beacon/i18n/ja.ts +4 -7
- package/src/tool/morse-beacon/i18n/ko.ts +4 -7
- package/src/tool/morse-beacon/i18n/nl.ts +4 -7
- package/src/tool/morse-beacon/i18n/pl.ts +4 -7
- package/src/tool/morse-beacon/i18n/pt.ts +4 -7
- package/src/tool/morse-beacon/i18n/ru.ts +4 -7
- package/src/tool/morse-beacon/i18n/sv.ts +4 -7
- package/src/tool/morse-beacon/i18n/tr.ts +4 -7
- package/src/tool/morse-beacon/i18n/zh.ts +4 -7
- package/src/tool/morse-beacon/morse-beacon.css +1 -1
- package/src/tool/morse-beacon/seo.astro +2 -1
- package/src/tool/password-generator/bibliography.astro +2 -10
- package/src/tool/password-generator/bibliography.ts +8 -0
- package/src/tool/password-generator/i18n/de.ts +4 -8
- package/src/tool/password-generator/i18n/en.ts +4 -8
- package/src/tool/password-generator/i18n/es.ts +4 -8
- package/src/tool/password-generator/i18n/fr.ts +4 -8
- package/src/tool/password-generator/i18n/id.ts +4 -8
- package/src/tool/password-generator/i18n/it.ts +4 -8
- package/src/tool/password-generator/i18n/ja.ts +4 -8
- package/src/tool/password-generator/i18n/ko.ts +4 -8
- package/src/tool/password-generator/i18n/nl.ts +4 -8
- package/src/tool/password-generator/i18n/pl.ts +4 -8
- package/src/tool/password-generator/i18n/pt.ts +4 -8
- package/src/tool/password-generator/i18n/ru.ts +4 -8
- package/src/tool/password-generator/i18n/sv.ts +4 -8
- package/src/tool/password-generator/i18n/tr.ts +4 -8
- package/src/tool/password-generator/i18n/zh.ts +4 -8
- package/src/tool/password-generator/password-generator.css +4 -4
- package/src/tool/password-generator/seo.astro +2 -1
- package/src/tool/routes/bibliography.astro +2 -10
- package/src/tool/routes/bibliography.ts +9 -0
- package/src/tool/routes/i18n/de.ts +4 -9
- package/src/tool/routes/i18n/en.ts +4 -9
- package/src/tool/routes/i18n/es.ts +4 -9
- package/src/tool/routes/i18n/fr.ts +4 -9
- package/src/tool/routes/i18n/id.ts +4 -9
- package/src/tool/routes/i18n/it.ts +4 -9
- package/src/tool/routes/i18n/ja.ts +4 -9
- package/src/tool/routes/i18n/ko.ts +4 -9
- package/src/tool/routes/i18n/nl.ts +4 -9
- package/src/tool/routes/i18n/pl.ts +4 -9
- package/src/tool/routes/i18n/pt.ts +4 -9
- package/src/tool/routes/i18n/ru.ts +4 -9
- package/src/tool/routes/i18n/sv.ts +4 -9
- package/src/tool/routes/i18n/tr.ts +4 -9
- package/src/tool/routes/i18n/zh.ts +4 -9
- package/src/tool/routes/optimal-routes.css +2 -2
- package/src/tool/routes/seo.astro +2 -1
- package/src/tool/rule-of-three/bibliography.astro +2 -10
- package/src/tool/rule-of-three/bibliography.ts +6 -0
- package/src/tool/rule-of-three/i18n/de.ts +4 -6
- package/src/tool/rule-of-three/i18n/en.ts +4 -6
- package/src/tool/rule-of-three/i18n/es.ts +4 -6
- package/src/tool/rule-of-three/i18n/fr.ts +4 -6
- package/src/tool/rule-of-three/i18n/id.ts +4 -6
- package/src/tool/rule-of-three/i18n/it.ts +4 -6
- package/src/tool/rule-of-three/i18n/ja.ts +4 -6
- package/src/tool/rule-of-three/i18n/ko.ts +4 -6
- package/src/tool/rule-of-three/i18n/nl.ts +4 -6
- package/src/tool/rule-of-three/i18n/pl.ts +4 -6
- package/src/tool/rule-of-three/i18n/pt.ts +4 -6
- package/src/tool/rule-of-three/i18n/ru.ts +4 -6
- package/src/tool/rule-of-three/i18n/sv.ts +4 -6
- package/src/tool/rule-of-three/i18n/tr.ts +4 -6
- package/src/tool/rule-of-three/i18n/zh.ts +4 -6
- package/src/tool/rule-of-three/rule-of-three.css +2 -2
- package/src/tool/rule-of-three/seo.astro +2 -1
- package/src/tool/seo-content-optimizer/bibliography.astro +2 -10
- package/src/tool/seo-content-optimizer/bibliography.ts +6 -0
- package/src/tool/seo-content-optimizer/i18n/de.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/en.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/es.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/fr.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/id.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/it.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/ja.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/ko.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/nl.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/pl.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/pt.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/ru.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/sv.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/tr.ts +4 -6
- package/src/tool/seo-content-optimizer/i18n/zh.ts +4 -6
- package/src/tool/seo-content-optimizer/seo-content-optimizer.css +10 -10
- package/src/tool/seo-content-optimizer/seo.astro +2 -1
- package/src/tool/speed-reader/bibliography.astro +2 -10
- package/src/tool/speed-reader/bibliography.ts +10 -0
- package/src/tool/speed-reader/i18n/de.ts +4 -10
- package/src/tool/speed-reader/i18n/en.ts +4 -10
- package/src/tool/speed-reader/i18n/es.ts +4 -10
- package/src/tool/speed-reader/i18n/fr.ts +4 -10
- package/src/tool/speed-reader/i18n/id.ts +4 -10
- package/src/tool/speed-reader/i18n/it.ts +4 -10
- package/src/tool/speed-reader/i18n/ja.ts +4 -10
- package/src/tool/speed-reader/i18n/ko.ts +4 -10
- package/src/tool/speed-reader/i18n/nl.ts +4 -10
- package/src/tool/speed-reader/i18n/pl.ts +4 -10
- package/src/tool/speed-reader/i18n/pt.ts +4 -10
- package/src/tool/speed-reader/i18n/ru.ts +4 -10
- package/src/tool/speed-reader/i18n/sv.ts +4 -10
- package/src/tool/speed-reader/i18n/tr.ts +4 -10
- package/src/tool/speed-reader/i18n/zh.ts +4 -10
- package/src/tool/speed-reader/seo.astro +2 -1
- package/src/tool/speed-reader/speed-reader.css +5 -5
- package/src/tool/text-pixel-calculator/bibliography.astro +2 -10
- package/src/tool/text-pixel-calculator/bibliography.ts +6 -0
- package/src/tool/text-pixel-calculator/i18n/de.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/en.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/es.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/fr.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/id.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/it.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/ja.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/ko.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/nl.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/pl.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/pt.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/ru.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/sv.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/tr.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/zh.ts +4 -6
- package/src/tool/text-pixel-calculator/seo.astro +2 -1
- package/src/tool/text-pixel-calculator/text-pixel-width-calculator.css +1 -1
- package/src/tool/whatsapp-link/bibliography.astro +2 -10
- package/src/tool/whatsapp-link/bibliography.ts +6 -0
- package/src/tool/whatsapp-link/i18n/de.ts +4 -6
- package/src/tool/whatsapp-link/i18n/en.ts +4 -6
- package/src/tool/whatsapp-link/i18n/es.ts +4 -6
- package/src/tool/whatsapp-link/i18n/fr.ts +4 -6
- package/src/tool/whatsapp-link/i18n/id.ts +4 -6
- package/src/tool/whatsapp-link/i18n/it.ts +4 -6
- package/src/tool/whatsapp-link/i18n/ja.ts +4 -6
- package/src/tool/whatsapp-link/i18n/ko.ts +4 -6
- package/src/tool/whatsapp-link/i18n/nl.ts +4 -6
- package/src/tool/whatsapp-link/i18n/pl.ts +4 -6
- package/src/tool/whatsapp-link/i18n/pt.ts +4 -6
- package/src/tool/whatsapp-link/i18n/ru.ts +4 -6
- package/src/tool/whatsapp-link/i18n/sv.ts +4 -6
- package/src/tool/whatsapp-link/i18n/tr.ts +4 -6
- package/src/tool/whatsapp-link/i18n/zh.ts +4 -6
- package/src/tool/whatsapp-link/seo.astro +2 -1
- package/src/tool/whatsapp-link/whatsapp-link-generator.css +2 -2
- package/src/types.ts +0 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RoutesUI } from '../ui';
|
|
@@ -89,17 +90,11 @@ export const content: ToolLocaleContent<RoutesUI> = {
|
|
|
89
90
|
title: 'Calculadora de Rotas Ideais Gratuita',
|
|
90
91
|
description: 'Otimize as suas rotas de entrega ou de viagem gratuitamente. A nossa ferramenta reordena automaticamente as suas paragens para encontrar o caminho mais curto e eficiente.',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: 'Leaflet — Biblioteca de mapas interativos de código aberto', url: 'https://leafletjs.com/' },
|
|
98
|
-
{ name: 'OpenStreetMap — Dados cartográficos abertos', url: 'https://www.openstreetmap.org/' },
|
|
99
|
-
{ name: 'CARTO — Mosaicos de mapas Voyager', url: 'https://carto.com/basemaps/' },
|
|
100
|
-
{ name: 'Nominatim — Serviço de geocodificação reversa (OpenStreetMap)', url: 'https://nominatim.org/' },
|
|
101
|
-
{ name: 'OSRM — Open Source Routing Machine (otimização de rotas)', url: 'http://project-osrm.org/' },
|
|
102
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
103
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
99
|
seo: [
|
|
105
100
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RoutesUI } from '../ui';
|
|
@@ -89,17 +90,11 @@ export const content: ToolLocaleContent<RoutesUI> = {
|
|
|
89
90
|
title: 'Бесплатный калькулятор оптимального маршрута',
|
|
90
91
|
description: 'Бесплатно оптимизируйте маршруты доставки или путешествий. Наш инструмент автоматически переставляет ваши остановки, чтобы найти кратчайший и самый эффективный путь.',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: 'Leaflet — открытая библиотека интерактивных карт', url: 'https://leafletjs.com/' },
|
|
98
|
-
{ name: 'OpenStreetMap — открытые картографические данные', url: 'https://www.openstreetmap.org/' },
|
|
99
|
-
{ name: 'CARTO — тайлы карт Voyager', url: 'https://carto.com/basemaps/' },
|
|
100
|
-
{ name: 'Nominatim — сервис обратного геокодирования (OpenStreetMap)', url: 'https://nominatim.org/' },
|
|
101
|
-
{ name: 'OSRM — Open Source Routing Machine (оптимизация маршрутов)', url: 'http://project-osrm.org/' },
|
|
102
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
103
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
99
|
seo: [
|
|
105
100
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RoutesUI } from '../ui';
|
|
@@ -89,17 +90,11 @@ export const content: ToolLocaleContent<RoutesUI> = {
|
|
|
89
90
|
title: 'Gratis optimal ruttberäknare',
|
|
90
91
|
description: 'Optimera dina leverans- eller resrutter gratis. Vårt verktyg sorterar om dina stopp automatiskt för att hitta den kortaste och mest effektiva vägen.',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: 'Leaflet — Interaktivt kartbibliotek med öppen källkod', url: 'https://leafletjs.com/' },
|
|
98
|
-
{ name: 'OpenStreetMap — Öppna kartografiska data', url: 'https://www.openstreetmap.org/' },
|
|
99
|
-
{ name: 'CARTO — Voyager-kartplattor', url: 'https://carto.com/basemaps/' },
|
|
100
|
-
{ name: 'Nominatim — Omvänd geokodningstjänst (OpenStreetMap)', url: 'https://nominatim.org/' },
|
|
101
|
-
{ name: 'OSRM — Open Source Routing Machine (ruttoptimering)', url: 'http://project-osrm.org/' },
|
|
102
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
103
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
99
|
seo: [
|
|
105
100
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RoutesUI } from '../ui';
|
|
@@ -89,17 +90,11 @@ export const content: ToolLocaleContent<RoutesUI> = {
|
|
|
89
90
|
title: 'Ücretsiz En Uygun Rota Hesaplayıcı',
|
|
90
91
|
description: 'Teslimat veya seyahat rotalarınızı ücretsiz olarak optimize edin. Aracımız, en kısa ve en verimli yolu bulmak için duraklarınızı otomatik olarak yeniden sıralar.',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: 'Leaflet — Açık kaynaklı etkileşimli harita kütüphanesi', url: 'https://leafletjs.com/' },
|
|
98
|
-
{ name: 'OpenStreetMap — Açık kartografik veriler', url: 'https://www.openstreetmap.org/' },
|
|
99
|
-
{ name: 'CARTO — Voyager harita kutucukları', url: 'https://carto.com/basemaps/' },
|
|
100
|
-
{ name: 'Nominatim — Ters coğrafi kodlama servisi (OpenStreetMap)', url: 'https://nominatim.org/' },
|
|
101
|
-
{ name: 'OSRM — Açık Kaynak Rota Makinesi (rota optimizasyonu)', url: 'http://project-osrm.org/' },
|
|
102
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
103
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
99
|
seo: [
|
|
105
100
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RoutesUI } from '../ui';
|
|
@@ -89,17 +90,11 @@ export const content: ToolLocaleContent<RoutesUI> = {
|
|
|
89
90
|
title: '免费最佳路线计算器',
|
|
90
91
|
description: '免费优化您的送货或旅行路线。我们的工具会自动重新排列您的停靠点,以找到最短、最高效的路径。',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: 'Leaflet — 开源交互式地图库', url: 'https://leafletjs.com/' },
|
|
98
|
-
{ name: 'OpenStreetMap — 开源地图数据', url: 'https://www.openstreetmap.org/' },
|
|
99
|
-
{ name: 'CARTO — Voyager 地图图块', url: 'https://carto.com/basemaps/' },
|
|
100
|
-
{ name: 'Nominatim — 逆地理编码服务 (OpenStreetMap)', url: 'https://nominatim.org/' },
|
|
101
|
-
{ name: 'OSRM — 开源路由引擎 (路线优化)', url: 'http://project-osrm.org/' },
|
|
102
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
103
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
104
99
|
seo: [
|
|
105
100
|
{
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
--rut-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
.theme-dark .rut-root {
|
|
26
26
|
--rut-sidebar-bg: rgba(15, 23, 42, 0.5);
|
|
27
27
|
--rut-sidebar-border: #1e293b;
|
|
28
28
|
--rut-map-bg: #1e293b;
|
|
@@ -247,6 +247,6 @@
|
|
|
247
247
|
background: var(--rut-map-bg);
|
|
248
248
|
}
|
|
249
249
|
|
|
250
|
-
|
|
250
|
+
.rut-hidden {
|
|
251
251
|
display: none;
|
|
252
252
|
}
|
|
@@ -9,6 +9,7 @@ interface Props {
|
|
|
9
9
|
|
|
10
10
|
const { locale = 'es' } = Astro.props;
|
|
11
11
|
const content = await routes.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
12
13
|
---
|
|
13
14
|
|
|
14
|
-
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
-
import {
|
|
4
|
-
import type { KnownLocale } from '../../types';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
locale?: KnownLocale;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { locale = 'es' } = Astro.props;
|
|
11
|
-
const content = await ruleOfThree.i18n[locale]?.();
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
|
|
6
|
+
<SharedBibliography links={bibliography} />
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{ name: 'Proportionality (mathematics) — Wikipedia', url: 'https://en.wikipedia.org/wiki/Proportionality_(mathematics)' },
|
|
5
|
+
{ name: 'Ratios and proportions — Khan Academy', url: 'https://www.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
|
|
6
|
+
];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Einfacher Dreisatz Rechner',
|
|
87
88
|
description: 'Lösen Sie mathematische Proportionen sofort. Das ultimative Tool zur Berechnung von Mengen, Rezepten, Rabatten und Umrechnungen.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proportionalität (Mathematik) — Wikipedia', url: 'https://de.wikipedia.org/wiki/Proportionalit%C3%A4t' },
|
|
95
|
-
{ name: 'Verhältnisse und Proportionen — Khan Academy', url: 'https://de.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Simple Rule of Three Calculator',
|
|
87
88
|
description: 'Solve mathematical proportions instantly. The definitive tool for calculating quantities, recipes, discounts and conversions.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proportionality (mathematics) — Wikipedia', url: 'https://en.wikipedia.org/wiki/Proportionality_(mathematics)' },
|
|
95
|
-
{ name: 'Ratios and proportions — Khan Academy', url: 'https://www.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Calculadora de Regla de Tres Simple',
|
|
87
88
|
description: 'Resuelve proporciones matemáticas al instante. La herramienta definitiva para calcular cantidades, recetas, descuentos y conversiones.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proporción (matemáticas) — Wikipedia', url: 'https://es.wikipedia.org/wiki/Proporci%C3%B3n_(matem%C3%A1ticas)' },
|
|
95
|
-
{ name: 'Regla de tres — Khan Academy', url: 'https://es.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates/pre-algebra-ratios-intro/a/ratio-review' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Calculatrice de règle de trois simple',
|
|
87
88
|
description: "Résolvez des proportions mathématiques instantanément. L'outil définitif pour calculer des quantités, des recettes, des remises et des conversions.",
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proportionnalité (mathématiques) — Wikipédia', url: 'https://fr.wikipedia.org/wiki/Proportionnalit%C3%A9' },
|
|
95
|
-
{ name: 'Ratios et proportions — Khan Academy', url: 'https://fr.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Kalkulator Aturan Tiga Sederhana',
|
|
87
88
|
description: 'Selesaikan proporsi matematika secara instan. Alat definitif untuk menghitung jumlah, resep, diskon, dan konversi.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proporsionalitas (matematika) — Wikipedia', url: 'https://id.wikipedia.org/wiki/Proporsionalitas' },
|
|
95
|
-
{ name: 'Rasio dan proporsi — Khan Academy', url: 'https://id.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Calcolatore Regola del Tre Semplice',
|
|
87
88
|
description: 'Risolvi proporzioni matematiche all\'istante. Lo strumento definitivo per calcolare quantità, ricette, sconti e conversioni.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proporzionalità (matematica) — Wikipedia', url: 'https://it.wikipedia.org/wiki/Proporzionalit%C3%A0_(matematica)' },
|
|
95
|
-
{ name: 'Rapporti e proporzioni — Khan Academy', url: 'https://it.khanacademy.org/math/arithmetic-home/arith-review-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: '比例計算機(三数法)',
|
|
87
88
|
description: '数学的な比例計算を瞬時に解決します。数量、レシピ、割引、換算を計算するための決定版ツール。',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: '比例 — Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
|
|
95
|
-
{ name: '比と比例 — Khan Academy', url: 'https://ja.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: '단순 비례 계산기(삼수법)',
|
|
87
88
|
description: '수학적 비례를 즉시 해결하세요. 수량, 레시피, 할인 및 변환을 계산하기 위한 결정적인 도구입니다.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: '비례 — 위키백과', url: 'https://ko.wikipedia.org/wiki/%EB%B9%84%EB%A1%80' },
|
|
95
|
-
{ name: '비와 비율 — Khan Academy', url: 'https://ko.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Eenvoudige regel van drie calculator',
|
|
87
88
|
description: 'Los wiskundige verhoudingen direct op. De definitieve tool voor het berekenen van hoeveelheden, recepten, kortingen en conversies.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Evenredigheid (wiskunde) — Wikipedia', url: 'https://nl.wikipedia.org/wiki/Evenredigheid' },
|
|
95
|
-
{ name: 'Verhoudingen en proporties — Khan Academy', url: 'https://nl.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Kalkulator Prostej Reguły Trzech',
|
|
87
88
|
description: 'Błyskawicznie rozwiązuj proporcje matematyczne. Ostateczne narzędzie do obliczania ilości, przepisów, rabatów i konwersji.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proporcjonalność (matematyka) — Wikipedia', url: 'https://pl.wikipedia.org/wiki/Proporcjonalno%C5%9B%C4%87' },
|
|
95
|
-
{ name: 'Proporcje — Khan Academy', url: 'https://pl.khanacademy.org/math/algebra/x2f8bb11595b61c86:solve-equations-inequalities/x2f8bb11595b61c86:ratio-proportions/v/introduction-to-proportions' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Calculadora de Regra de Três Simples',
|
|
87
88
|
description: 'Resolva proporções matemáticas instantaneamente. A ferramenta definitiva para calcular quantidades, receitas, descontos e conversões.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proporcionalidade (matemática) — Wikipédia', url: 'https://pt.wikipedia.org/wiki/Proporcionalidade_(matem%C3%A1tica)' },
|
|
95
|
-
{ name: 'Razões e proporções — Khan Academy', url: 'https://pt.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Калькулятор простой пропорции (правила трех)',
|
|
87
88
|
description: 'Мгновенно решайте математические пропорции. Окончательный инструмент для расчета количеств, рецептов, скидок и конверсий.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Пропорциональность (математика) — Википедия', url: 'https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%BF%D0%BE%D1%80%D1%86%D0%B8%D0%BE%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D1%8C' },
|
|
95
|
-
{ name: 'Отношения и пропорции — Khan Academy', url: 'https://ru.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Enkel tre regeln kalkylator',
|
|
87
88
|
description: 'Lös matematiska proportioner omedelbart. Det definitiva verktyget för att beräkna mängder, recept, rabatter och konverteringar.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Proportionalitet (matematik) — Wikipedia', url: 'https://sv.wikipedia.org/wiki/Proportionalitet' },
|
|
95
|
-
{ name: 'Förhållanden och proportioner — Khan Academy', url: 'https://sv.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: 'Basit Orantı (Dreisatz) Hesaplayıcı',
|
|
87
88
|
description: 'Matematiksel orantıları anında çözün. Miktarları, tarifleri, indirimleri ve dönüşümleri hesaplamak için kesin çözüm.',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: 'Orantı (matematik) — Vikipedi', url: 'https://tr.wikipedia.org/wiki/Orant%C4%B1' },
|
|
95
|
-
{ name: 'Oran ve orantı — Khan Academy', url: 'https://tr.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { RuleOfThreeUI } from '../ui';
|
|
@@ -86,14 +87,11 @@ export const content: ToolLocaleContent<RuleOfThreeUI> = {
|
|
|
86
87
|
title: '简单三数法比例计算器',
|
|
87
88
|
description: '即时解决数学比例问题。用于计算数量、配方、折扣和转换的权威工具。',
|
|
88
89
|
ui,
|
|
89
|
-
|
|
90
|
+
|
|
90
91
|
faq: faqData,
|
|
91
92
|
howTo: howToData,
|
|
92
|
-
|
|
93
|
-
bibliography
|
|
94
|
-
{ name: '比例(数学) — 维基百科', url: 'https://zh.wikipedia.org/wiki/%E6%AF%94%E4%BE%8B' },
|
|
95
|
-
{ name: '比和比例 — 可汗学院', url: 'https://zh.khanacademy.org/math/pre-algebra/pre-algebra-ratios-rates' },
|
|
96
|
-
],
|
|
93
|
+
|
|
94
|
+
bibliography,
|
|
97
95
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
98
96
|
seo: [
|
|
99
97
|
{
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
--rot-sep-color: #cbd5e1;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
.theme-dark .rot-root {
|
|
24
24
|
--rot-result-bg: rgba(37, 99, 235, 0.2);
|
|
25
25
|
--rot-result-border: rgba(37, 99, 235, 0.3);
|
|
26
26
|
--rot-result-label: #60a5fa;
|
|
@@ -244,4 +244,4 @@
|
|
|
244
244
|
100% { transform: scale(1); }
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
|
|
247
|
+
.rot-pop { animation: rot-pop 0.2s ease; }
|
|
@@ -9,6 +9,7 @@ interface Props {
|
|
|
9
9
|
|
|
10
10
|
const { locale = 'es' } = Astro.props;
|
|
11
11
|
const content = await ruleOfThree.i18n[locale]?.();
|
|
12
|
+
if (!content) return null;
|
|
12
13
|
---
|
|
13
14
|
|
|
14
|
-
{content && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
15
|
+
{content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
|
|
3
|
-
import {
|
|
4
|
-
import type { KnownLocale } from '../../types';
|
|
5
|
-
|
|
6
|
-
interface Props {
|
|
7
|
-
locale?: KnownLocale;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
const { locale = 'es' } = Astro.props;
|
|
11
|
-
const content = await seoContentOptimizer.i18n[locale]?.();
|
|
3
|
+
import { bibliography } from './bibliography';
|
|
12
4
|
---
|
|
13
5
|
|
|
14
|
-
|
|
6
|
+
<SharedBibliography links={bibliography} />
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BibliographyEntry } from '../../types';
|
|
2
|
+
|
|
3
|
+
export const bibliography: BibliographyEntry[] = [
|
|
4
|
+
{ name: "Google's SEO Starter Guide", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
|
|
5
|
+
{ name: 'Yoast SEO readability criteria', url: 'https://yoast.com/what-is-readability/' },
|
|
6
|
+
];
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { SeoContentOptimizerUI } from '../ui';
|
|
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
|
|
|
89
90
|
title: 'SEO Content Optimizer',
|
|
90
91
|
description: 'Analysieren Sie Keyword-Dichte, Lesbarkeit und technische HTML-Struktur Ihrer Texte in Echtzeit. Kostenloses und privates SEO-Tool.',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: "Googles Startleitfaden zur Suchmaschinenoptimierung (SEO)", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide?hl=de' },
|
|
98
|
-
{ name: 'Yoast SEO Lesbarkeitskriterien', url: 'https://yoast.com/what-is-readability/' },
|
|
99
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
100
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
101
99
|
seo: [
|
|
102
100
|
{ type: 'title', level: 2, text: 'SEO Content Optimizer: Keywords, Lesbarkeit und Struktur' },
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
1
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
2
3
|
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
3
4
|
import type { SeoContentOptimizerUI } from '../ui';
|
|
@@ -89,14 +90,11 @@ export const content: ToolLocaleContent<SeoContentOptimizerUI> = {
|
|
|
89
90
|
title: 'SEO Content Optimizer',
|
|
90
91
|
description: 'Analyze keyword density, readability, and technical HTML structure of your texts in real time. Free and private SEO tool.',
|
|
91
92
|
ui,
|
|
92
|
-
|
|
93
|
+
|
|
93
94
|
faq: faqData,
|
|
94
95
|
howTo: howToData,
|
|
95
|
-
|
|
96
|
-
bibliography
|
|
97
|
-
{ name: "Google's SEO Starter Guide", url: 'https://developers.google.com/search/docs/fundamentals/seo-starter-guide' },
|
|
98
|
-
{ name: 'Yoast SEO readability criteria', url: 'https://yoast.com/what-is-readability/' },
|
|
99
|
-
],
|
|
96
|
+
|
|
97
|
+
bibliography,
|
|
100
98
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
101
99
|
seo: [
|
|
102
100
|
{ type: 'title', level: 2, text: 'SEO Content Optimizer: Keywords, Readability and Structure' },
|