@jjlmoya/utils-developer 1.5.0 → 1.7.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/category/i18n/ja.ts +2 -2
- package/src/category/i18n/ko.ts +1 -1
- package/src/category/i18n/ru.ts +1 -1
- package/src/category/i18n/zh.ts +2 -2
- package/src/tests/category_validation.test.ts +73 -0
- package/src/tests/slug_language_code_format.test.ts +25 -0
- package/src/tests/slug_uniqueness.test.ts +6 -0
- package/src/tool/aspectRatio/i18n/nl.ts +1 -1
- package/src/tool/calculadoraTiempoDatos/i18n/ru.ts +1 -1
- package/src/tool/cronGenerator/i18n/de.ts +1 -1
- package/src/tool/cronGenerator/i18n/es.ts +1 -1
- package/src/tool/cronGenerator/i18n/fr.ts +1 -1
- package/src/tool/cronGenerator/i18n/id.ts +1 -1
- package/src/tool/cronGenerator/i18n/it.ts +1 -1
- package/src/tool/cronGenerator/i18n/nl.ts +1 -1
- package/src/tool/cronGenerator/i18n/pl.ts +1 -1
- package/src/tool/cronGenerator/i18n/pt.ts +1 -1
- package/src/tool/cronGenerator/i18n/ru.ts +1 -1
- package/src/tool/cronGenerator/i18n/sv.ts +1 -1
- package/src/tool/cronGenerator/i18n/tr.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/de.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/id.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/it.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/nl.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/pl.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/pt.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/ru.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/sv.ts +1 -1
- package/src/tool/generadorSecurityTxt/i18n/tr.ts +1 -1
- package/src/tool/hashGenerator/i18n/de.ts +1 -1
- package/src/tool/hashGenerator/i18n/id.ts +1 -1
- package/src/tool/hashGenerator/i18n/nl.ts +1 -1
- package/src/tool/hashGenerator/i18n/ru.ts +1 -1
- package/src/tool/hashGenerator/i18n/sv.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/id.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/nl.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/pl.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/ru.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/sv.ts +1 -1
- package/src/tool/inspectorCertificadosSsl/i18n/tr.ts +1 -1
- package/src/tool/jsonFormatter/i18n/de.ts +1 -1
- package/src/tool/jsonFormatter/i18n/es.ts +1 -1
- package/src/tool/jsonFormatter/i18n/fr.ts +1 -1
- package/src/tool/jsonFormatter/i18n/id.ts +1 -1
- package/src/tool/jsonFormatter/i18n/nl.ts +1 -1
- package/src/tool/jsonFormatter/i18n/ru.ts +1 -1
- package/src/tool/jsonFormatter/i18n/sv.ts +1 -1
- package/src/tool/jsonFormatter/i18n/tr.ts +1 -1
- package/src/tool/keycode/i18n/de.ts +1 -1
- package/src/tool/keycode/i18n/es.ts +1 -1
- package/src/tool/keycode/i18n/fr.ts +1 -1
- package/src/tool/keycode/i18n/id.ts +1 -1
- package/src/tool/keycode/i18n/it.ts +1 -1
- package/src/tool/keycode/i18n/nl.ts +1 -1
- package/src/tool/keycode/i18n/pl.ts +1 -1
- package/src/tool/llmCostCalculator/i18n/de.ts +1 -1
- package/src/tool/llmCostCalculator/i18n/fr.ts +1 -1
- package/src/tool/llmCostCalculator/i18n/id.ts +1 -1
- package/src/tool/llmCostCalculator/i18n/it.ts +1 -1
- package/src/tool/llmCostCalculator/i18n/nl.ts +1 -1
- package/src/tool/promptLibrary/i18n/it.ts +1 -1
- package/src/tool/svgSanitizer/i18n/ru.ts +1 -1
- package/src/tool/svgSanitizer/i18n/sv.ts +1 -1
- package/src/tool/svgSanitizer/i18n/tr.ts +1 -1
- package/src/tool/urlEncoderDecoder/i18n/de.ts +1 -1
- package/src/tool/urlEncoderDecoder/i18n/id.ts +1 -1
- package/src/tool/urlEncoderDecoder/i18n/it.ts +1 -1
- package/src/tool/urlEncoderDecoder/i18n/nl.ts +1 -1
- package/src/tool/urlEncoderDecoder/i18n/ru.ts +1 -1
- package/src/tool/urlEncoderDecoder/i18n/sv.ts +1 -1
- package/src/tool/utmGenerator/i18n/de.ts +1 -1
- package/src/tool/utmGenerator/i18n/id.ts +1 -1
- package/src/tool/utmGenerator/i18n/it.ts +1 -1
- package/src/tool/utmGenerator/i18n/nl.ts +1 -1
- package/src/tool/utmGenerator/i18n/pt.ts +1 -1
- package/src/tool/utmGenerator/i18n/ru.ts +1 -1
- package/src/tool/utmGenerator/i18n/sv.ts +1 -1
package/package.json
CHANGED
package/src/category/i18n/ja.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { CategoryLocaleContent } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const content: CategoryLocaleContent = {
|
|
4
|
-
slug: '
|
|
5
|
-
title: '
|
|
4
|
+
slug: 'uebu-kaihatsu-tools',
|
|
5
|
+
title: 'ウェブ開発',
|
|
6
6
|
description:
|
|
7
7
|
'フロントエンドおよびバックエンド開発者向けの無料Web開発ツール:フォーマッタ、CSS計算機、ジェネレーター、ユーティリティ。',
|
|
8
8
|
seo: [
|
package/src/category/i18n/ko.ts
CHANGED
package/src/category/i18n/ru.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { CategoryLocaleContent } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const content: CategoryLocaleContent = {
|
|
4
|
-
slug: '
|
|
4
|
+
slug: 'veb-razrabotka-util',
|
|
5
5
|
title: 'Веб разработка',
|
|
6
6
|
description:
|
|
7
7
|
'Бесплатные инструменты для веб-разработки: форматировщики, калькуляторы CSS, генераторы и утилиты для фронтенд- и бэкенд-разработчиков.',
|
package/src/category/i18n/zh.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { CategoryLocaleContent } from '../../types';
|
|
2
2
|
|
|
3
3
|
export const content: CategoryLocaleContent = {
|
|
4
|
-
slug: '
|
|
5
|
-
title: '
|
|
4
|
+
slug: 'wang-ye-kaifa',
|
|
5
|
+
title: '网页开发',
|
|
6
6
|
description:
|
|
7
7
|
'免费Web开发工具:面向前后端开发者的代码格式化、CSS计算器、生成器及实用工具。',
|
|
8
8
|
seo: [
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { developerCategory as toolsCategory } from '../category/index';
|
|
3
|
+
import type { CategoryLocaleContent } from '../types';
|
|
4
|
+
|
|
5
|
+
const EXPECTED_LOCALES = [
|
|
6
|
+
'de', 'en', 'es', 'fr', 'id', 'it', 'ja', 'ko', 'nl', 'pl', 'pt', 'ru', 'sv', 'tr', 'zh'
|
|
7
|
+
];
|
|
8
|
+
|
|
9
|
+
const sharingLocales: string[] = [];
|
|
10
|
+
|
|
11
|
+
describe('Category Validation', () => {
|
|
12
|
+
it('should have all 15 required locales', () => {
|
|
13
|
+
const registeredLocales = Object.keys(toolsCategory.i18n);
|
|
14
|
+
EXPECTED_LOCALES.forEach((locale) => {
|
|
15
|
+
expect(
|
|
16
|
+
registeredLocales,
|
|
17
|
+
`Category is missing locale "${locale}"`,
|
|
18
|
+
).toContain(locale);
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
describe('Category Slug Validation', () => {
|
|
23
|
+
it('every locale should have a unique, translated slug and follow format rules', async () => {
|
|
24
|
+
const slugs = new Map<string, string>();
|
|
25
|
+
const locales = Object.keys(toolsCategory.i18n);
|
|
26
|
+
|
|
27
|
+
let enSlug = '';
|
|
28
|
+
if (locales.includes('en')) {
|
|
29
|
+
const enLoader = toolsCategory.i18n['en' as keyof typeof toolsCategory.i18n];
|
|
30
|
+
const enContent = (await enLoader?.()) as CategoryLocaleContent;
|
|
31
|
+
enSlug = enContent.slug;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
for (const locale of locales) {
|
|
35
|
+
const loader = toolsCategory.i18n[locale as keyof typeof toolsCategory.i18n];
|
|
36
|
+
const content = (await loader?.()) as CategoryLocaleContent;
|
|
37
|
+
|
|
38
|
+
expect(
|
|
39
|
+
content.slug,
|
|
40
|
+
`Category locale "${locale}" has an invalid slug ("${content.slug}"). Slugs must be transliterated (only a-z, 0-9, and -).`,
|
|
41
|
+
).toMatch(/^[a-z0-9-]+$/);
|
|
42
|
+
|
|
43
|
+
expect(
|
|
44
|
+
content.slug,
|
|
45
|
+
`Category locale "${locale}" slug ("${content.slug}") cannot end with a 2-letter language code (e.g., -ja, -ru, -ko).`,
|
|
46
|
+
).not.toMatch(/-[a-z]{2}$/);
|
|
47
|
+
|
|
48
|
+
if (locale !== 'en') {
|
|
49
|
+
if (sharingLocales.includes(locale)) {
|
|
50
|
+
expect(
|
|
51
|
+
content.slug,
|
|
52
|
+
`Category locale "${locale}" must use the same slug as "en" ("${enSlug}").`,
|
|
53
|
+
).toBe(enSlug);
|
|
54
|
+
} else {
|
|
55
|
+
expect(
|
|
56
|
+
content.slug,
|
|
57
|
+
`Category locale "${locale}" has the same slug as "en" ("${enSlug}"). Cada slug tiene que estar en su propio idioma`,
|
|
58
|
+
).not.toBe(enSlug);
|
|
59
|
+
|
|
60
|
+
if (slugs.has(content.slug)) {
|
|
61
|
+
const previousLocale = slugs.get(content.slug);
|
|
62
|
+
expect(
|
|
63
|
+
false,
|
|
64
|
+
`Category locales "${locale}" and "${previousLocale}" share the same slug ("${content.slug}"). Cada slug tiene que estar en su propia idioma`,
|
|
65
|
+
).toBe(true);
|
|
66
|
+
}
|
|
67
|
+
slugs.set(content.slug, locale);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { ALL_TOOLS } from '../tools';
|
|
3
|
+
import type { ToolLocaleContent } from '../types';
|
|
4
|
+
|
|
5
|
+
describe('Slug Language Code Format Validation', () => {
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
ALL_TOOLS.forEach((tool) => {
|
|
9
|
+
describe(`Tool: ${tool.entry.id}`, () => {
|
|
10
|
+
it('slug should not end with 2-letter language codes like -ja, -ru, -ko', async () => {
|
|
11
|
+
const locales = Object.keys(tool.entry.i18n);
|
|
12
|
+
|
|
13
|
+
for (const locale of locales) {
|
|
14
|
+
const loader = tool.entry.i18n[locale as keyof typeof tool.entry.i18n];
|
|
15
|
+
const content = (await loader?.()) as ToolLocaleContent;
|
|
16
|
+
|
|
17
|
+
expect(
|
|
18
|
+
content.slug,
|
|
19
|
+
`Tool "${tool.entry.id}" locale "${locale}" slug ("${content.slug}") cannot end with a 2-letter language code (e.g., -ja, -ru, -ko).`,
|
|
20
|
+
).not.toMatch(/-[a-z]{2}$/);
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -3,6 +3,7 @@ import { ALL_TOOLS } from '../tools';
|
|
|
3
3
|
import type { ToolLocaleContent } from '../types';
|
|
4
4
|
|
|
5
5
|
const sharingLocales = ['ja', 'ko', 'zh'];
|
|
6
|
+
const toolsWithSharedSpanishSlug = ['cron-generator', 'json-formatter', 'keycode'];
|
|
6
7
|
|
|
7
8
|
interface ValidateParams {
|
|
8
9
|
toolId: string;
|
|
@@ -33,6 +34,11 @@ const validateLocaleSlug = ({
|
|
|
33
34
|
content.slug,
|
|
34
35
|
`Tool "${toolId}" locale "${locale}" must use the same slug as "en" ("${enSlug}").`,
|
|
35
36
|
).toBe(enSlug);
|
|
37
|
+
} else if (locale === 'es' && toolsWithSharedSpanishSlug.includes(toolId)) {
|
|
38
|
+
expect(
|
|
39
|
+
content.slug,
|
|
40
|
+
`Tool "${toolId}" locale "${locale}" must use the same slug as "en" ("${enSlug}").`,
|
|
41
|
+
).toBe(enSlug);
|
|
36
42
|
} else {
|
|
37
43
|
expect(
|
|
38
44
|
content.slug,
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { AspectRatioUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'aspect-ratio-
|
|
5
|
+
const slug = 'aspect-ratio-rekenmachine';
|
|
6
6
|
const title = 'Aspect Ratio Calculator in Pixels. Online Verhoudingen';
|
|
7
7
|
const description =
|
|
8
8
|
'Bereken nieuwe resoluties voor afbeeldingen, video en webdesign met behoud van de exacte verhoudingen om vervorming van afbeeldingen te voorkomen. Ondersteunt 16:9, 4:3, 21:9 en aangepaste formaten.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CalculadoraTiempoDatosUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'kalkulyator-vremeni-dannyh';
|
|
6
6
|
const title = 'Калькулятор времени данных: Влияние скорости интернета';
|
|
7
7
|
const description = 'Узнайте, сколько времени жизни теряют ваши пользователи, ожидая загрузки вашего сайта на 3G, 4G и 5G соединениях. Рассчитайте реальное влияние веса вашего сайта.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron-
|
|
5
|
+
const slug = 'cron-ausdrucksgenerator';
|
|
6
6
|
const title = 'Online Cron Ausdrucksgenerator. Übersetzer und Visualisierer';
|
|
7
7
|
const description =
|
|
8
8
|
'Kostenloses visuelles Tool zum Generieren von Linux-Cron-Ausdrücken. Übersetzt * * * * * in menschliche Sprache und zeigt die nächsten 5 Ausführungen in Echtzeit an.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'cron';
|
|
6
6
|
const title = 'Generador de Expresiones Cron Online. Traductor y Visualizador';
|
|
7
7
|
const description =
|
|
8
8
|
'Herramienta visual gratuita para generar expresiones Cron de Linux. Traduce * * * * * a lenguaje humano y visualiza las próximas 5 ejecuciones en tiempo real.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'generateur-expressions-cron';
|
|
6
6
|
const title = 'Générateur d\'expressions Cron en ligne. Traducteur et visualiseur';
|
|
7
7
|
const description =
|
|
8
8
|
'Outil visuel gratuit pour générer des expressions Cron Linux. Traduit * * * * * en langage humain et affiche les 5 prochaines exécutions en temps réel.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'generator-ekspresi-cron';
|
|
6
6
|
const title = 'Generator Ekspresi Cron Online. Penerjemah dan Visualisator';
|
|
7
7
|
const description =
|
|
8
8
|
'Alat visual gratis untuk menghasilkan ekspresi Linux Cron. Menerjemahkan * * * * * ke dalam bahasa manusia dan menampilkan 5 eksekusi berikutnya secara real time.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'generatore-espressioni-cron';
|
|
6
6
|
const title = 'Generatore di espressioni Cron online. Traduttore e visualizzatore';
|
|
7
7
|
const description =
|
|
8
8
|
'Strumento visivo gratuito per generare espressioni Linux Cron. Traduce * * * * * in linguaggio umano e mostra le prossime 5 esecuzioni in tempo reale.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron-
|
|
5
|
+
const slug = 'cron-expressie-generator';
|
|
6
6
|
const title = 'Online Cron Expressie Generator. Vertaler en Visualizer';
|
|
7
7
|
const description =
|
|
8
8
|
'Gratis visuele tool om Linux Cron expressies te genereren. Vertaalt * * * * * naar menselijke taal en toont de volgende 5 uitvoeringen in real-time.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'generator-wyrazenia-cron';
|
|
6
6
|
const title = 'Internetowy generator wyrażeń Cron. Tłumacz i wizualizator';
|
|
7
7
|
const description =
|
|
8
8
|
'Darmowe narzędzie wizualne do generowania wyrażeń Linux Cron. Tłumaczy * * * * * na język ludzki i pokazuje 5 następnych wykonań w czasie rzeczywistym.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'gerador-expressoes-cron';
|
|
6
6
|
const title = 'Gerador de Expressões Cron Online. Tradutor e Visualizador';
|
|
7
7
|
const description =
|
|
8
8
|
'Ferramenta visual gratuita para gerar expressões Linux Cron. Traduz * * * * * para linguagem humana e mostra as próximas 5 execuções em tempo real.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron
|
|
5
|
+
const slug = 'generator-vyrazhenij-cron';
|
|
6
6
|
const title = 'Онлайн генератор Cron выражений. Переводчик и визуализатор';
|
|
7
7
|
const description =
|
|
8
8
|
'Бесплатный визуальный инструмент для генерации выражений Linux Cron. Переводит * * * * * на понятный человеку язык и показывает следующие 5 запусков в реальном времени.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron-
|
|
5
|
+
const slug = 'cron-uttrycksgenerator';
|
|
6
6
|
const title = 'Online Cron Expression Generator. Översättare och visualisera';
|
|
7
7
|
const description =
|
|
8
8
|
'Gratis visuellt verktyg för att generera Linux Cron-uttryck. Översätter * * * * * till mänskligt språk och visar de nästa 5 körningarna i realtid.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { CronGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'cron-
|
|
5
|
+
const slug = 'cron-ifadesi-olusturucu';
|
|
6
6
|
const title = 'Online Cron İfadesi Oluşturucu. Çevirmen ve Görselleştirici';
|
|
7
7
|
const description =
|
|
8
8
|
'Linux Cron ifadeleri oluşturmak için ücretsiz görsel araç. * * * * * ifadesini insan diline çevirir ve sonraki 5 çalışmayı gerçek zamanlı olarak gösterir.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt-
|
|
5
|
+
const slug = 'security-txt-erzeuger';
|
|
6
6
|
const title = 'Security.txt Generator RFC 9116';
|
|
7
7
|
const description = 'Erstellen Sie Ihre professionelle security.txt-Datei, um die Meldung von Sicherheitslücken zu erleichtern und internationale Webstandards zu erfüllen.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt
|
|
5
|
+
const slug = 'pembuat-security-txt';
|
|
6
6
|
const title = 'Generator Security.txt RFC 9116';
|
|
7
7
|
const description = 'Buat file security.txt profesional Anda untuk memudahkan pelaporan kerentanan dan memenuhi standar keamanan web internasional.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt
|
|
5
|
+
const slug = 'generatore-security-txt';
|
|
6
6
|
const title = 'Generatore Security.txt RFC 9116';
|
|
7
7
|
const description = 'Crea il tuo file security.txt professionale per agevolare la segnalazione delle vulnerabilità e rispettare gli standard internazionali di sicurezza web.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt-
|
|
5
|
+
const slug = 'security-txt-maker';
|
|
6
6
|
const title = 'Security.txt Generator RFC 9116';
|
|
7
7
|
const description = 'Maak uw professionele security.txt-bestand om kwetsbaarheidsrapportage te vergemakkelijken en internationale webveiligheidsnormen na te leven.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt
|
|
5
|
+
const slug = 'tworca-security-txt';
|
|
6
6
|
const title = 'Generator Security.txt RFC 9116';
|
|
7
7
|
const description = 'Utwórz profesjonalny plik security.txt, aby ułatwić raportowanie luk w zabezpieczeniach i zgodzić się z międzynarodowymi standardami bezpieczeństwa sieci Web.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt
|
|
5
|
+
const slug = 'gerador-security-txt';
|
|
6
6
|
const title = 'Gerador Security.txt RFC 9116';
|
|
7
7
|
const description = 'Crie seu arquivo security.txt profissional para facilitar a divulgação de vulnerabilidades e cumprir padrões internacionais de segurança da web.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt
|
|
5
|
+
const slug = 'generator-security-txt';
|
|
6
6
|
const title = 'Генератор Security.txt RFC 9116';
|
|
7
7
|
const description = 'Создайте профессиональный файл security.txt, чтобы облегчить отчётность об уязвимостях и соответствовать международным стандартам безопасности веб.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt-
|
|
5
|
+
const slug = 'security-txt-skapare';
|
|
6
6
|
const title = 'Security.txt Generator RFC 9116';
|
|
7
7
|
const description = 'Skapa din professionella security.txt-fil för att underlätta rapportering av säkerhetsproblem och följa internationella webbs äkerhetsstandarder.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { GeneradorSecurityTxtUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'security-txt-
|
|
5
|
+
const slug = 'security-txt-olusturucu';
|
|
6
6
|
const title = 'Security.txt Oluşturucu RFC 9116';
|
|
7
7
|
const description = 'Güvenlik açığı raporlamayı kolaylaştırmak ve uluslararası web güvenliği standartlarına uyum sağlamak için profesyonel security.txt dosyası oluşturun.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { HashGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'hash-
|
|
5
|
+
const slug = 'hash-berechner-online';
|
|
6
6
|
const title = 'Online Sicherheits Hash Generator';
|
|
7
7
|
const description = 'Berechnen Sie sofort MD5, SHA-1, SHA-256 und SHA-512-Hashes. Kostenloses, privates und ultraschnelles Sicherheitstool für Entwickler. 100 % Client-Side.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { HashGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'hash-
|
|
5
|
+
const slug = 'generator-hash-keamanan';
|
|
6
6
|
const title = 'Generator Hash Keamanan Online';
|
|
7
7
|
const description = 'Hitung hash MD5, SHA-1, SHA-256, dan SHA-512 secara instan. Alat keamanan gratis, pribadi, dan sangat cepat untuk pengembang. 100% Sisi Klien.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { HashGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'hash-generator-
|
|
5
|
+
const slug = 'hash-generator-beveiliging';
|
|
6
6
|
const title = 'Online Beveiligings Hash Generator';
|
|
7
7
|
const description = 'Bereken direct MD5, SHA-1, SHA-256 en SHA-512 hashes. Gratis, privé en ultrasnelle beveiligingstool voor ontwikkelaars. 100% Client-Side.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { HashGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'generator-heshej';
|
|
6
6
|
const title = 'Онлайн генератор хешей безопасности';
|
|
7
7
|
const description = 'Мгновенно вычисляйте хеши MD5, SHA-1, SHA-256 и SHA-512. Бесплатный, конфиденциальный и сверхбыстрый инструмент безопасности для разработчиков. 100% на стороне клиента.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { HashGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'hashgenerator-sakekerhet';
|
|
6
6
|
const title = 'Online Säkerhetshashgenerator';
|
|
7
7
|
const description = 'Beräkna MD5, SHA-1, SHA-256 och SHA-512 hashar direkt. Gratis, privat och supersnabbt säkerhetsverktyg för utvecklare. 100 % Client-Side.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'inspektur-sertifikat-ssl';
|
|
6
6
|
const title = 'Inspektur Sertifikat SSL/TLS Online Lihat File PEM dan CRT';
|
|
7
7
|
const description = 'Analisis file sertifikat SSL (.pem, .crt, .der) secara lokal. Periksa tanggal kedaluwarsa, penerbit, subjek, dan sidik jari SHA-256 tanpa data Anda meninggalkan browser.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'ssl-
|
|
5
|
+
const slug = 'ssl-certificaatinspector';
|
|
6
6
|
const title = 'Online SSL TLS certificaatinspecteur Bekijk PEM en CRT bestanden';
|
|
7
7
|
const description = 'Analyseer SSL-certificaatbestanden (.pem, .crt, .der) lokaal. Controleer vervaldatums, certificaatautoriteiten, onderwerpen en SHA-256-vingerafdrukken zonder dat uw gegevens uw browser verlaten.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'inspektor-certyfikatow-ssl';
|
|
6
6
|
const title = 'Online Inspektor Certyfikatów SSL/TLS Wyświetl Pliki PEM i CRT';
|
|
7
7
|
const description = 'Analizuj pliki certyfikatów SSL (.pem, .crt, .der) lokalnie. Sprawdzaj daty wygaśnięcia, wystawców, tematy i odciski palców SHA-256 bez opuszczania Twojej przeglądarki.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'inspektor-sertifikatov-ssl';
|
|
6
6
|
const title = 'Онлайн Инспектор Сертификатов SSL/TLS Просмотр PEM и CRT файлов';
|
|
7
7
|
const description = 'Анализируйте файлы SSL-сертификатов (.pem, .crt, .der) локально. Проверяйте сроки действия, издателей, субъекты и отпечатки SHA-256, не передавая данные на сервер.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'ssl-tls
|
|
5
|
+
const slug = 'certifikatgranskare-ssl-tls';
|
|
6
6
|
const title = 'Online SSL/TLS certifikatgranskare Visa PEM och CRT filer';
|
|
7
7
|
const description = 'Analysera SSL-certifikatfiler (.pem, .crt, .der) lokalt. Kontrollera utgångsdatum, utfärdare, ämnen och SHA-256-fingeravtryck utan att din data lämnar webbläsaren.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { InspectorCertificadosSslUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'ssl-
|
|
5
|
+
const slug = 'ssl-sertifika-inceleme';
|
|
6
6
|
const title = 'Çevrimiçi SSL/TLS Sertifika İnceleme PEM ve CRT Dosyalarını Görüntüle';
|
|
7
7
|
const description = 'SSL sertifika dosyalarını (.pem, .crt, .der) yerel olarak analiz edin. Sona erme tarihlerini, yayımcıları, konuları ve SHA-256 parmak izlerini kontrol edin ve verileriniz tarayıcınızdan çıkmaz.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json-
|
|
5
|
+
const slug = 'json-formatierer';
|
|
6
6
|
const title = 'Kostenloser Online JSON Formatter und Validator';
|
|
7
7
|
const description =
|
|
8
8
|
'Kostenloses Online-Tool zum Formatieren, Validieren und Reparieren von JSON-Code. JSON verschönern und formatieren. Erkennt Syntaxfehler und verbessert die Lesbarkeit des Codes.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json-formatter
|
|
5
|
+
const slug = 'json-formatter';
|
|
6
6
|
const title = 'Formateador y Validador JSON Online Gratuito';
|
|
7
7
|
const description =
|
|
8
8
|
'Herramienta online gratuita para formatear, validar y reparar código JSON. Formatea y embellece JSON. Detecta errores de sintaxis y mejora la lectura del código';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json-
|
|
5
|
+
const slug = 'formateur-json-validateur';
|
|
6
6
|
const title = 'Formateur et Validateur JSON Gratuit en Ligne';
|
|
7
7
|
const description =
|
|
8
8
|
'Outil en ligne gratuit pour formater, valider et réparer du code JSON. Embellissez et formatez du JSON. Détecte les erreurs de syntaxe et améliore la lisibilité du code.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'format-validasi-json';
|
|
6
6
|
const title = 'Format dan Validasi JSON Online Gratis';
|
|
7
7
|
const description =
|
|
8
8
|
'Alat online gratis untuk memformat, memvalidasi, dan memperbaiki kode JSON. Mempercantik dan memformat JSON. Mendeteksi kesalahan sintaksis dan meningkatkan keterbacaan kode.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json-formatter-
|
|
5
|
+
const slug = 'json-formatter-validator';
|
|
6
6
|
const title = 'Gratis Online JSON Formatter en Validator';
|
|
7
7
|
const description =
|
|
8
8
|
'Gratis online tool om JSON-code te formatteren, valideren en repareren. Verfraai en formatteer JSON. Detecteert syntaxfouten en verbetert de leesbaarheid van de code.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json
|
|
5
|
+
const slug = 'formatirovalshik-json';
|
|
6
6
|
const title = 'Бесплатный онлайн форматировщик и валидатор JSON';
|
|
7
7
|
const description =
|
|
8
8
|
'Бесплатный онлайн-инструмент для форматирования, валидации и исправления кода JSON. Сделайте JSON красивым и структурированным. Обнаружение синтаксических ошибок и улучшение читаемости кода.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json-
|
|
5
|
+
const slug = 'json-formaterare-validator';
|
|
6
6
|
const title = 'Gratis Online JSON formaterare och Validator';
|
|
7
7
|
const description =
|
|
8
8
|
'Gratis onlineverktyg för att formatera, validera och reparera JSON-kod. Snygga till och formatera JSON. Upptäcker syntaxfel och förbättrar kodens läsbarhet.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { JsonFormatterUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'json-
|
|
5
|
+
const slug = 'json-formatlayici-dogrulayici';
|
|
6
6
|
const title = 'Ücretsiz Çevrimiçi JSON Formatlayıcı ve Doğrulayıcı';
|
|
7
7
|
const description =
|
|
8
8
|
'JSON kodunu formatlamak, doğrulamak ve onarmak için ücretsiz çevrimiçi araç. JSON\'u güzelleştirin ve düzenleyin. Sözdizimi hatalarını algılar ve kodun okunabilirliğini artırır.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'tastaturcode';
|
|
6
6
|
const title = 'Tastaturcode Visualizer Online. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Kostenloses Online-Tool, um event.key, event.code, event.which und die Position jeder Taste in Echtzeit zu sehen. Erzeugt sofort verwendbare JavaScript-Codeausschnitte.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'keycode
|
|
5
|
+
const slug = 'keycode';
|
|
6
6
|
const title = 'Visualizador de Códigos de Teclado Online. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Herramienta online gratuita para ver en tiempo real el event.key, event.code, event.which y location de cualquier tecla de tu teclado. Genera snippets de código JavaScript listos para usar.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'visualiseur-codes-clavier';
|
|
6
6
|
const title = 'Visualiseur de codes clavier en ligne. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Outil en ligne gratuit pour voir en temps réel le event.key, event.code, event.which et la location de n\'importe quelle touche de clavier. Génère des extraits de code JavaScript prêts à l\'emploi.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'penampil-kode-keyboard';
|
|
6
6
|
const title = 'Visualizer Kode Tombol Keyboard Online. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Alat online gratis untuk melihat event.key, event.code, event.which, dan lokasi setiap tombol keyboard secara real time. Menghasilkan cuplikan kode JavaScript siap pakai.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'visualizzatore-codici-tasto';
|
|
6
6
|
const title = 'Visualizzatore di Codici Tasto Online. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Strumento online gratuito per vedere in tempo reale event.key, event.code, event.which e la posizione di qualsiasi tasto della tastiera. Genera snippet di codice JavaScript pronti all\'uso.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'keycode-
|
|
5
|
+
const slug = 'toetsenbord-keycode-visualizer';
|
|
6
6
|
const title = 'Toetsenbord Keycode Visualizer Online. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Gratis online tool om event.key, event.code, event.which en de locatie van elke toets in realtime te bekijken. Genereert direct bruikbare JavaScript-codefragmenten.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { KeycodeUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'wizualizator-kodu-klawisza';
|
|
6
6
|
const title = 'Wizualizator Kodu Klawisza Klawiatury Online. KeyCode Inspector';
|
|
7
7
|
const description =
|
|
8
8
|
'Darmowe narzędzie online do podglądu event.key, event.code, event.which i położenia dowolnego klawisza klawiatury w czasie rzeczywistym. Generuje gotowe do użycia fragmenty kodu JavaScript.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { LlmCostCalculatorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'llm-
|
|
5
|
+
const slug = 'llm-kostenrechner';
|
|
6
6
|
const title = 'LLM Kostenrechner. KI Modell Preisschätzer';
|
|
7
7
|
const description =
|
|
8
8
|
'Kostenloses Online-Tool zur Schätzung der Kosten von LLM-API-Aufrufen. Vergleiche GPT-4o, Claude, Gemini, Llama und mehr mit realen Token-Preisen pro Million Tokens.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { LlmCostCalculatorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'calculateur-couts-llm';
|
|
6
6
|
const title = 'Calculateur de Coûts LLM. Estimateur de Prix des APIs IA';
|
|
7
7
|
const description =
|
|
8
8
|
'Outil en ligne gratuit pour estimer le coût des appels aux APIs de modèles de langage. Comparez GPT-4o, Claude, Gemini, Llama et plus avec les vrais prix par million de tokens.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { LlmCostCalculatorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'kalkulator-biaya-llm';
|
|
6
6
|
const title = 'Kalkulator Biaya LLM. Estimator Harga Model AI';
|
|
7
7
|
const description =
|
|
8
8
|
'Alat online gratis untuk memperkirakan biaya pemanggilan API model bahasa besar. Bandingkan GPT-4o, Claude, Gemini, Llama, dan lainnya dengan harga token nyata per satu juta token.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { LlmCostCalculatorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'calcolatore-costi-llm';
|
|
6
6
|
const title = 'Calcolatore Costi LLM. Stimatore Prezzi API per Modelli AI';
|
|
7
7
|
const description =
|
|
8
8
|
'Strumento online gratuito per stimare il costo delle chiamate alle API dei modelli linguistici. Confronta GPT-4o, Claude, Gemini, Llama e altri con i prezzi reali per milione di token.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { LlmCostCalculatorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'llm-
|
|
5
|
+
const slug = 'llm-kostencalculator';
|
|
6
6
|
const title = 'LLM Kostencalculator. Prijsschatter voor AI Model APIs';
|
|
7
7
|
const description =
|
|
8
8
|
'Gratis online tool om de kosten van LLM API-aanroepen te schatten. Vergelijk GPT-4o, Claude, Gemini, Llama en meer met echte tokenprijzen per miljoen tokens.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { PromptLibraryUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'libreria-
|
|
5
|
+
const slug = 'libreria-prompts';
|
|
6
6
|
const title = 'Libreria Prompt IA Privata';
|
|
7
7
|
const description = 'Organizza, etichetta e salva i tuoi prompt di ChatGPT, Midjourney e Claude in modo privato. La tua raccolta personale di prompt nel localStorage.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { SvgSanitizerUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'svg-
|
|
5
|
+
const slug = 'svg-ochishchatel';
|
|
6
6
|
const title = 'Онлайн SVG Очиститель';
|
|
7
7
|
const description = 'Оптимизируйте и очищайте SVG, экспортированные из Figma, Adobe Illustrator или Inkscape. Удаляйте метаданные, ненужные атрибуты и пустые группы, чтобы получить готовый к продакшену SVG.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { SvgSanitizerUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'svg-
|
|
5
|
+
const slug = 'svg-sanering-online';
|
|
6
6
|
const title = 'Online SVG Sanering';
|
|
7
7
|
const description = 'Optimera och rensa SVG exporterade från Figma, Adobe Illustrator eller Inkscape. Ta bort metadata, onödiga attribut och tomma grupper för att få en produktionsklar SVG.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { SvgSanitizerUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'svg-
|
|
5
|
+
const slug = 'svg-temizleyici';
|
|
6
6
|
const title = 'Online SVG Temizleyici';
|
|
7
7
|
const description = 'Figma, Adobe Illustrator veya Inkscape\'ten dışa aktarılan SVG dosyalarını optimize edin ve temizleyin. Meta verileri, gereksiz öznitelikleri ve boş grupları kaldırarak üretim ortamına hazır bir SVG elde edin.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'url-
|
|
5
|
+
const slug = 'url-kodierer-dekodierer';
|
|
6
6
|
const title = 'URL Encoder und Decoder Online';
|
|
7
7
|
const description =
|
|
8
8
|
'Konvertieren Sie Sonderzeichen aus jedem Link in ein sicheres Format (Percent-Encoding) oder stellen Sie sie sofort und lokal in ihren ursprünglichen lesbaren Zustand zurück.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'pengode-pendekode-url';
|
|
6
6
|
const title = 'Pengode dan Pendekode URL Online';
|
|
7
7
|
const description =
|
|
8
8
|
'Konversikan karakter khusus dari tautan apa pun ke dalam format aman (Percent-Encoding) atau kembalikan ke keadaan aslinya yang dapat dibaca secara instan dan lokal.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'codificatore-decodificatore-url';
|
|
6
6
|
const title = 'Codificatore e Decodificatore URL Online';
|
|
7
7
|
const description =
|
|
8
8
|
'Converti i caratteri speciali da qualsiasi link in un formato sicuro (Percent-Encoding) o riportali istantaneamente e localmente allo stato originale leggibile.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'url-
|
|
5
|
+
const slug = 'url-codeertool';
|
|
6
6
|
const title = 'URL Encoder and Decoder Online';
|
|
7
7
|
const description =
|
|
8
8
|
'Converteer speciale tekens van elke link naar een veilig formaat (Percent-Encoding) of herstel ze direct en lokaal naar hun oorspronkelijke leesbare staat.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'enkoder-dekoder-url';
|
|
6
6
|
const title = 'Онлайн URL энкодер и декодер';
|
|
7
7
|
const description =
|
|
8
8
|
'Преобразуйте специальные символы любой ссылки в безопасный формат (Percent-Encoding) или мгновенно возвращайте их в исходное читаемое состояние локально.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UrlEncoderDecoderUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'url-
|
|
5
|
+
const slug = 'url-kodare-avkodare';
|
|
6
6
|
const title = 'URL Encoder och Decoder Online';
|
|
7
7
|
const description =
|
|
8
8
|
'Konvertera specialtecken från valfri länk till ett säkert format (Percent-Encoding) eller återställ dem omedelbart och lokalt till deras ursprungliga läsbara tillstånd.';
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'utm-
|
|
5
|
+
const slug = 'utm-parameter-erzeuger';
|
|
6
6
|
const title = 'UTM Parameter Generator für Google Analytics';
|
|
7
7
|
const description = 'Erstellen Sie präzise Tracking-Links für Ihre digitalen Marketingkampagnen. Optimiert für Google Analytics und andere Analysetools.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'pembuat-parameter-utm';
|
|
6
6
|
const title = 'Generator Parameter UTM untuk Google Analytics';
|
|
7
7
|
const description = 'Buat tautan pelacakan yang presisi untuk kampanye pemasaran digital Anda. Dioptimalkan untuk Google Analytics dan alat analisis lainnya.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'generatore-parametri-utm';
|
|
6
6
|
const title = 'Generatore di Parametri UTM per Google Analytics';
|
|
7
7
|
const description = 'Crea link di tracciamento precisi per le tue campagne di marketing digitale. Ottimizzato per Google Analytics e altri strumenti di analisi.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'utm-generator
|
|
5
|
+
const slug = 'utm-parameter-generator';
|
|
6
6
|
const title = 'UTM Parameter Generator voor Google Analytics';
|
|
7
7
|
const description = 'Maak nauwkeurige tracking-links voor uw digitale marketingcampagnes. Geoptimaliseerd voor Google Analytics en andere analysetools.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'gerador-parametros-utm';
|
|
6
6
|
const title = 'Gerador de Parâmetros UTM para o Google Analytics';
|
|
7
7
|
const description = 'Crie links de rastreamento precisos para as suas campanhas de marketing digital. Otimizado para o Google Analytics e outras ferramentas de análise.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = '
|
|
5
|
+
const slug = 'generator-parametrov-utm';
|
|
6
6
|
const title = 'Генератор параметров UTM для Google Analytics';
|
|
7
7
|
const description = 'Создавайте точные ссылки для отслеживания ваших цифровых маркетинговых кампаний. Оптимизировано для Google Analytics и других инструментов аналитики.';
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@ import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'sche
|
|
|
2
2
|
import type { ToolLocaleContent } from '../../../types';
|
|
3
3
|
import type { UtmGeneratorUI } from '../ui';
|
|
4
4
|
|
|
5
|
-
const slug = 'utm-
|
|
5
|
+
const slug = 'utm-parametergenerator';
|
|
6
6
|
const title = 'UTM parametergenerator för Google Analytics';
|
|
7
7
|
const description = 'Skapa exakta spårningslänkar för dina digitala marknadsföringskampanjer. Optimerad för Google Analytics och andra analysverktyg.';
|
|
8
8
|
|