@jjlmoya/utils-tools 1.12.0 → 1.14.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/de.ts +3 -3
- package/src/category/i18n/en.ts +1 -1
- package/src/category/i18n/es.ts +1 -1
- package/src/category/i18n/fr.ts +16 -16
- package/src/category/i18n/id.ts +1 -1
- package/src/category/i18n/nl.ts +1 -1
- package/src/category/i18n/pl.ts +1 -1
- package/src/category/i18n/pt.ts +1 -1
- package/src/category/i18n/ru.ts +10 -10
- package/src/category/i18n/sv.ts +1 -1
- package/src/category/i18n/tr.ts +1 -1
- package/src/category/i18n/zh.ts +4 -4
- package/src/layouts/PreviewLayout.astro +7 -2
- package/src/pages/[locale]/[slug].astro +30 -13
- package/src/tests/diacritics_density.test.ts +118 -0
- package/src/tests/inverted_punctuation.test.ts +84 -0
- package/src/tests/locale_completeness.test.ts +3 -20
- package/src/tests/no_en_dash.test.ts +70 -0
- package/src/tests/script_density.test.ts +94 -0
- 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/i18n/de.ts +8 -11
- 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 +5 -8
- package/src/tool/date-diff-calculator/i18n/pt.ts +4 -7
- package/src/tool/date-diff-calculator/i18n/ru.ts +8 -11
- 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 +7 -10
- 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/i18n/de.ts +8 -10
- package/src/tool/drive-direct-link/i18n/en.ts +4 -6
- package/src/tool/drive-direct-link/i18n/es.ts +5 -7
- package/src/tool/drive-direct-link/i18n/fr.ts +5 -7
- 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 +8 -10
- package/src/tool/drive-direct-link/i18n/pt.ts +4 -6
- package/src/tool/drive-direct-link/i18n/ru.ts +12 -14
- 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 +8 -10
- 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/i18n/de.ts +6 -9
- 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 +6 -9
- package/src/tool/email-list-cleaner/i18n/pt.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/ru.ts +11 -14
- package/src/tool/email-list-cleaner/i18n/sv.ts +5 -8
- package/src/tool/email-list-cleaner/i18n/tr.ts +4 -7
- package/src/tool/email-list-cleaner/i18n/zh.ts +7 -10
- 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/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 +14 -16
- 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 +8 -11
- package/src/tool/morse-beacon/i18n/en.ts +6 -9
- package/src/tool/morse-beacon/i18n/es.ts +6 -9
- package/src/tool/morse-beacon/i18n/fr.ts +9 -12
- package/src/tool/morse-beacon/i18n/id.ts +6 -9
- package/src/tool/morse-beacon/i18n/it.ts +6 -9
- package/src/tool/morse-beacon/i18n/ja.ts +6 -9
- package/src/tool/morse-beacon/i18n/ko.ts +6 -9
- package/src/tool/morse-beacon/i18n/nl.ts +6 -9
- package/src/tool/morse-beacon/i18n/pl.ts +7 -10
- package/src/tool/morse-beacon/i18n/pt.ts +6 -9
- package/src/tool/morse-beacon/i18n/ru.ts +7 -10
- package/src/tool/morse-beacon/i18n/sv.ts +6 -9
- package/src/tool/morse-beacon/i18n/tr.ts +6 -9
- package/src/tool/morse-beacon/i18n/zh.ts +7 -10
- 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 +9 -13
- 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 +5 -9
- 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 +7 -11
- package/src/tool/password-generator/i18n/pt.ts +4 -8
- package/src/tool/password-generator/i18n/ru.ts +8 -12
- 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 +7 -11
- 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 +5 -10
- 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 +7 -12
- 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 +7 -12
- 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 +5 -10
- 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 +6 -8
- 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 +11 -13
- 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 +6 -8
- package/src/tool/rule-of-three/i18n/pl.ts +6 -8
- package/src/tool/rule-of-three/i18n/pt.ts +4 -6
- package/src/tool/rule-of-three/i18n/ru.ts +7 -9
- package/src/tool/rule-of-three/i18n/sv.ts +4 -6
- package/src/tool/rule-of-three/i18n/tr.ts +5 -7
- package/src/tool/rule-of-three/i18n/zh.ts +6 -8
- 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 +7 -9
- 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 +5 -7
- 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.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 +7 -13
- package/src/tool/speed-reader/i18n/en.ts +6 -12
- package/src/tool/speed-reader/i18n/es.ts +4 -10
- package/src/tool/speed-reader/i18n/fr.ts +13 -19
- package/src/tool/speed-reader/i18n/id.ts +6 -12
- package/src/tool/speed-reader/i18n/it.ts +6 -12
- 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 +6 -12
- package/src/tool/speed-reader/i18n/pl.ts +7 -13
- package/src/tool/speed-reader/i18n/pt.ts +6 -12
- package/src/tool/speed-reader/i18n/ru.ts +14 -20
- package/src/tool/speed-reader/i18n/sv.ts +6 -12
- package/src/tool/speed-reader/i18n/tr.ts +4 -10
- package/src/tool/speed-reader/i18n/zh.ts +8 -14
- package/src/tool/speed-reader/seo.astro +2 -1
- 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 +6 -8
- 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 +5 -7
- 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 +7 -9
- package/src/tool/text-pixel-calculator/i18n/pt.ts +4 -6
- package/src/tool/text-pixel-calculator/i18n/ru.ts +8 -10
- 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 +7 -9
- package/src/tool/text-pixel-calculator/seo.astro +2 -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 +8 -10
- package/src/tool/whatsapp-link/i18n/en.ts +4 -6
- package/src/tool/whatsapp-link/i18n/es.ts +6 -8
- package/src/tool/whatsapp-link/i18n/fr.ts +6 -8
- 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 +8 -10
- package/src/tool/whatsapp-link/i18n/pt.ts +4 -6
- package/src/tool/whatsapp-link/i18n/ru.ts +9 -11
- 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 +8 -10
- package/src/tool/whatsapp-link/seo.astro +2 -1
- package/src/tool/whatsapp-link/whatsapp-link-generator.css +41 -4
- 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 { WhatsappLinkUI } from '../ui';
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'QRコード付きWhatsAppリンク作成ツール',
|
|
77
78
|
description: '定型メッセージとQRコード付きのWhatsApp直通チャットリンクを作成します。無料ツール、登録不要、100%プライベート。',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: '「クリックしてチャット」機能の使い方 — WhatsAppヘルプセンター', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API クリックしてチャット:パラメータと形式 — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'WhatsApp用の短い直通リンクを生成' },
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'QR 포함 WhatsApp 링크 생성기',
|
|
77
78
|
description: '미리 채워진 메시지와 QR 코드가 포함된 WhatsApp 직통 채팅 링크를 만드세요. 무료 도구, 가입 불필요, 100% 개인 정보 보호.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: '클릭해서 채팅하기 기능 사용 방법 — WhatsApp 고객 센터', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API 클릭해서 채팅하기: 파라미터 및 형식 — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'WhatsApp용 짧은 직통 링크 생성' },
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'WhatsApp Link Generator met QR',
|
|
77
78
|
description: 'Maak directe WhatsApp-chatlinks met vooraf ingevuld bericht en QR-code. Gratis tool, geen registratie, 100% privé.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: 'De functie "Klik om te chatten" gebruiken — WhatsApp Helpcentrum', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API Klik om te chatten: parameters en formaten — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'Genereer korte directe links voor WhatsApp' },
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -13,7 +14,7 @@ const faqData = [
|
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
16
|
question: 'Jak korzystać z wygenerowanego kodu QR?',
|
|
16
|
-
answer: 'Po wygenerowaniu prawidłowego linku pojawi się przycisk
|
|
17
|
+
answer: 'Po wygenerowaniu prawidłowego linku pojawi się przycisk "Pokaż QR". Kod QR zawiera adres URL Twojego linku. Kliknij go prawym przyciskiem myszy i wybierz "Zapisz obraz jako", aby pobrać czysty plik o wysokiej rozdzielczości do wizytówek, plakatów lub mediów społecznościowych.',
|
|
17
18
|
},
|
|
18
19
|
{
|
|
19
20
|
question: 'Gdzie trafiają moje dane?',
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'Generator Linków WhatsApp z QR',
|
|
77
78
|
description: 'Twórz bezpośrednie linki do czatu WhatsApp ze wstępnie wypełnioną wiadomością i kodem QR. Darmowe narzędzie, bez rejestracji, w 100% prywatne.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: 'Jak korzystać z funkcji kliknij i rozmawiaj — Centrum pomocy WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API Click to chat: parametry i formaty — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'Generuj krótkie linki bezpośrednie do WhatsApp' },
|
|
@@ -94,13 +92,13 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
94
92
|
{ type: 'title', level: 3, text: 'Do czego służy skracacz WhatsApp wa.me?' },
|
|
95
93
|
{
|
|
96
94
|
type: 'paragraph',
|
|
97
|
-
html: 'WhatsApp oferuje interfejs API o nazwie
|
|
95
|
+
html: 'WhatsApp oferuje interfejs API o nazwie "Kliknij i rozmawiaj". Za pomocą specjalnego adresu URL każdy użytkownik może otworzyć z Tobą nowy czat bez konieczności dodawania Cię najpierw do kontaktów, zarówno z telefonu komórkowego, jak i przez WhatsApp Web.',
|
|
98
96
|
},
|
|
99
97
|
{
|
|
100
98
|
type: 'list',
|
|
101
99
|
items: [
|
|
102
|
-
'<strong>Większa konwersja:</strong> Przycisk
|
|
103
|
-
'<strong>Wstępnie wypełniona wiadomość:</strong> Użytkownik po prostu naciska
|
|
100
|
+
'<strong>Większa konwersja:</strong> Przycisk "Kontakt przez WhatsApp" w Twoim sklepie zmniejsza opory i zwiększa sprzedaż.',
|
|
101
|
+
'<strong>Wstępnie wypełniona wiadomość:</strong> Użytkownik po prostu naciska "Wyślij". Przykład: "Cześć! Piszę z Instagrama i chcę skorzystać z oferty".',
|
|
104
102
|
'<strong>Automatyczny kod QR:</strong> Pobierz kod QR do wizytówek, plakatów lub postów w mediach społecznościowych.',
|
|
105
103
|
],
|
|
106
104
|
},
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'Gerador de Links do WhatsApp com QR',
|
|
77
78
|
description: 'Crie links diretos de conversa do WhatsApp com mensagem pré-preenchida e código QR. Ferramenta gratuita, sem registo, 100% privada.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: 'Como utilizar o recurso "conversa em um clique" — Centro de Ajuda do WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API de conversa em um clique: parâmetros e formatos — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'Gere links diretos curtos para o WhatsApp' },
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -13,7 +14,7 @@ const faqData = [
|
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
16
|
question: 'Как использовать сгенерированный QR-код?',
|
|
16
|
-
answer: 'Как только будет создана действительная ссылка, появится кнопка
|
|
17
|
+
answer: 'Как только будет создана действительная ссылка, появится кнопка "Показать QR". QR-код содержит URL-адрес вашей ссылки. Нажмите на него правой кнопкой мыши и выберите "Сохранить изображение как", чтобы загрузить чистый файл в высоком разрешении для визиток, плакатов или социальных сетей.',
|
|
17
18
|
},
|
|
18
19
|
{
|
|
19
20
|
question: 'Куда попадают мои данные?',
|
|
@@ -23,7 +24,7 @@ const faqData = [
|
|
|
23
24
|
|
|
24
25
|
const howToData = [
|
|
25
26
|
{ name: 'Выберите префикс', text: 'Выберите код своей страны из выпадающего списка и введите свой номер телефона без префикса.' },
|
|
26
|
-
{ name: 'Добавьте необязательное сообщение', text: 'Напишите предзаполненный текст, который появится, когда кто-то откроет ссылку и нажмет
|
|
27
|
+
{ name: 'Добавьте необязательное сообщение', text: 'Напишите предзаполненный текст, который появится, когда кто-то откроет ссылку и нажмет "Отправить".' },
|
|
27
28
|
{ name: 'Создайте ссылку', text: 'Нажмите зеленую кнопку, чтобы получить прямую ссылку wa.me, готовую к отправке.' },
|
|
28
29
|
{ name: 'Поделитесь или распечатайте QR', text: 'Скопируйте ссылку, проверьте чат или скачайте QR-код для визиток и печати.' },
|
|
29
30
|
];
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'Генератор ссылок WhatsApp с QR',
|
|
77
78
|
description: 'Создавайте прямые ссылки для чата WhatsApp с предзаполненным сообщением и QR-кодом. Бесплатный инструмент, без регистрации, 100% конфиденциально.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: 'Как использовать функцию «Прямая связь» — Справочный центр WhatsApp', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API «Прямая связь»: параметры и форматы — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'Создавайте короткие прямые ссылки для WhatsApp' },
|
|
@@ -94,13 +92,13 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
94
92
|
{ type: 'title', level: 3, text: 'Для чего нужен сокращатель WhatsApp wa.me?' },
|
|
95
93
|
{
|
|
96
94
|
type: 'paragraph',
|
|
97
|
-
html: 'WhatsApp предлагает API под названием
|
|
95
|
+
html: 'WhatsApp предлагает API под названием "Прямая связь". Используя специальный URL-адрес, любой пользователь может начать с вами новый чат, не добавляя вас в контакты, как с мобильного телефона, так и через WhatsApp Web.',
|
|
98
96
|
},
|
|
99
97
|
{
|
|
100
98
|
type: 'list',
|
|
101
99
|
items: [
|
|
102
|
-
'<strong>Больше конверсий:</strong> кнопка
|
|
103
|
-
'<strong>Предзаполненное сообщение:</strong> пользователю достаточно нажать
|
|
100
|
+
'<strong>Больше конверсий:</strong> кнопка "Связаться через WhatsApp" в вашем магазине снижает барьеры и увеличивает продажи.',
|
|
101
|
+
'<strong>Предзаполненное сообщение:</strong> пользователю достаточно нажать "Отправить". Пример: "Здравствуйте! Я с Instagram и хочу воспользоваться предложением".',
|
|
104
102
|
'<strong>Автоматический QR-код:</strong> скачайте QR-код для визиток, плакатов или постов в социальных сетях.',
|
|
105
103
|
],
|
|
106
104
|
},
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'WhatsApp länkgenerator med QR',
|
|
77
78
|
description: 'Skapa direkta WhatsApp-chattlänkar med förifyllt meddelande och QR-kod. Gratis verktyg, ingen registrering, 100 % privat.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: 'Hur du använder funktionen "klicka för att chatta" — WhatsApp hjälpcenter', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API Klicka för att chatta: parametrar och format — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'Skapa korta direktlänkar för WhatsApp' },
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: 'QR Kodlu WhatsApp Bağlantı Oluşturucu',
|
|
77
78
|
description: 'Önceden doldurulmuş mesaj ve QR kodu ile doğrudan WhatsApp sohbet bağlantıları oluşturun. Ücretsiz araç, kayıt yok, %100 özel.',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: 'Tıkla Sohbet Et özelliği nasıl kullanılır — WhatsApp Yardım Merkezi', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API Tıkla Sohbet Et: parametreler ve formatlar — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: 'WhatsApp için kısa doğrudan bağlantılar oluşturun' },
|
|
@@ -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 { WhatsappLinkUI } from '../ui';
|
|
@@ -13,7 +14,7 @@ const faqData = [
|
|
|
13
14
|
},
|
|
14
15
|
{
|
|
15
16
|
question: '如何使用生成的二维码?',
|
|
16
|
-
answer: '
|
|
17
|
+
answer: '生成有效链接后,将出现"显示二维码"按钮。二维码包含您的链接 URL。右键点击二维码并选择"图片另存为",即可下载用于名片、海报或社交媒体的高分辨率图片。',
|
|
17
18
|
},
|
|
18
19
|
{
|
|
19
20
|
question: '我的数据会流向何处?',
|
|
@@ -76,14 +77,11 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
76
77
|
title: '带二维码的 WhatsApp 链接生成器',
|
|
77
78
|
description: '创建带有预填消息和二维码的 WhatsApp 直接聊天链接。免费工具,无需注册,100% 隐私保护。',
|
|
78
79
|
ui,
|
|
79
|
-
|
|
80
|
+
|
|
80
81
|
faq: faqData,
|
|
81
82
|
howTo: howToData,
|
|
82
|
-
|
|
83
|
-
bibliography
|
|
84
|
-
{ name: '如何使用“点击聊天”功能 — WhatsApp 帮助中心', url: 'https://faq.whatsapp.com/591339899867293' },
|
|
85
|
-
{ name: 'API 点击聊天:参数和格式 — WhatsApp', url: 'https://faq.whatsapp.com/425559092497645' },
|
|
86
|
-
],
|
|
83
|
+
|
|
84
|
+
bibliography,
|
|
87
85
|
schemas: [faqSchema, howToSchema, appSchema],
|
|
88
86
|
seo: [
|
|
89
87
|
{ type: 'title', level: 2, text: '为 WhatsApp 生成简短的直接链接' },
|
|
@@ -94,13 +92,13 @@ export const content: ToolLocaleContent<WhatsappLinkUI> = {
|
|
|
94
92
|
{ type: 'title', level: 3, text: 'wa.me WhatsApp 短链接有什么用?' },
|
|
95
93
|
{
|
|
96
94
|
type: 'paragraph',
|
|
97
|
-
html: 'WhatsApp
|
|
95
|
+
html: 'WhatsApp 提供了一个名为"点击聊天"的 API。通过使用特殊的 URL,任何用户都可以与您开启新聊天,而无需先将您添加为联系人,无论是在手机上还是通过 WhatsApp 网页版。',
|
|
98
96
|
},
|
|
99
97
|
{
|
|
100
98
|
type: 'list',
|
|
101
99
|
items: [
|
|
102
|
-
'<strong>提高转化率:</strong
|
|
103
|
-
'<strong>预填消息:</strong
|
|
100
|
+
'<strong>提高转化率:</strong>在您的商店中添加"通过 WhatsApp 联系"按钮可减少摩擦并增加销售额。',
|
|
101
|
+
'<strong>预填消息:</strong>用户只需按"发送"。例如:"您好!我从 Instagram 过来,想领取优惠。"',
|
|
104
102
|
'<strong>自动二维码:</strong>下载二维码用于名片、海报或社交媒体贴子。',
|
|
105
103
|
],
|
|
106
104
|
},
|
|
@@ -9,6 +9,7 @@ interface Props {
|
|
|
9
9
|
|
|
10
10
|
const { locale = 'es' } = Astro.props;
|
|
11
11
|
const content = await whatsappLink.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 }} />}
|
|
@@ -27,6 +27,13 @@
|
|
|
27
27
|
display: flex;
|
|
28
28
|
flex-direction: column;
|
|
29
29
|
gap: 1.25rem;
|
|
30
|
+
box-sizing: border-box;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.wl-root *,
|
|
34
|
+
.wl-root *::before,
|
|
35
|
+
.wl-root *::after {
|
|
36
|
+
box-sizing: border-box;
|
|
30
37
|
}
|
|
31
38
|
|
|
32
39
|
.theme-dark .wl-root {
|
|
@@ -50,7 +57,9 @@
|
|
|
50
57
|
background: var(--wl-panel-bg);
|
|
51
58
|
border: 1px solid var(--wl-panel-border);
|
|
52
59
|
border-radius: 1.25rem;
|
|
53
|
-
|
|
60
|
+
width: 100%;
|
|
61
|
+
min-width: 0;
|
|
62
|
+
padding: clamp(1rem, 4vw, 1.5rem);
|
|
54
63
|
display: flex;
|
|
55
64
|
flex-direction: column;
|
|
56
65
|
gap: 1.25rem;
|
|
@@ -73,11 +82,14 @@
|
|
|
73
82
|
.wl-phone-row {
|
|
74
83
|
display: flex;
|
|
75
84
|
gap: 0.5rem;
|
|
85
|
+
width: 100%;
|
|
86
|
+
min-width: 0;
|
|
76
87
|
}
|
|
77
88
|
|
|
78
89
|
.wl-prefix-select {
|
|
79
90
|
flex-shrink: 0;
|
|
80
|
-
width: 7.5rem;
|
|
91
|
+
width: min(7.5rem, 42%);
|
|
92
|
+
min-width: 6.75rem;
|
|
81
93
|
background: var(--wl-field-bg);
|
|
82
94
|
border: 1px solid var(--wl-field-border);
|
|
83
95
|
border-radius: 0.75rem;
|
|
@@ -96,6 +108,8 @@
|
|
|
96
108
|
|
|
97
109
|
.wl-phone-input {
|
|
98
110
|
flex: 1;
|
|
111
|
+
min-width: 0;
|
|
112
|
+
width: 100%;
|
|
99
113
|
background: var(--wl-field-bg);
|
|
100
114
|
border: 1px solid var(--wl-field-border);
|
|
101
115
|
border-radius: 0.75rem;
|
|
@@ -183,7 +197,9 @@
|
|
|
183
197
|
background: var(--wl-result-bg);
|
|
184
198
|
border: 1px solid var(--wl-result-border);
|
|
185
199
|
border-radius: 1.25rem;
|
|
186
|
-
|
|
200
|
+
width: 100%;
|
|
201
|
+
min-width: 0;
|
|
202
|
+
padding: clamp(1rem, 4vw, 1.5rem);
|
|
187
203
|
display: flex;
|
|
188
204
|
flex-direction: column;
|
|
189
205
|
gap: 0.75rem;
|
|
@@ -205,10 +221,12 @@
|
|
|
205
221
|
display: flex;
|
|
206
222
|
align-items: center;
|
|
207
223
|
gap: 0.625rem;
|
|
224
|
+
min-width: 0;
|
|
208
225
|
}
|
|
209
226
|
|
|
210
227
|
.wl-link-display {
|
|
211
228
|
flex: 1;
|
|
229
|
+
min-width: 0;
|
|
212
230
|
font-size: 0.8rem;
|
|
213
231
|
font-weight: 500;
|
|
214
232
|
color: var(--wl-link-color);
|
|
@@ -257,6 +275,25 @@
|
|
|
257
275
|
}
|
|
258
276
|
|
|
259
277
|
.wl-qr-canvas {
|
|
278
|
+
max-width: 100%;
|
|
279
|
+
height: auto;
|
|
260
280
|
border-radius: 0.75rem;
|
|
261
281
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
|
|
262
|
-
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
@media (max-width: 24rem) {
|
|
285
|
+
.wl-phone-row,
|
|
286
|
+
.wl-result-row {
|
|
287
|
+
flex-direction: column;
|
|
288
|
+
align-items: stretch;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.wl-prefix-select {
|
|
292
|
+
width: 100%;
|
|
293
|
+
min-width: 0;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.wl-result-actions {
|
|
297
|
+
justify-content: flex-end;
|
|
298
|
+
}
|
|
299
|
+
}
|
package/src/types.ts
CHANGED
|
@@ -29,9 +29,7 @@ export interface ToolLocaleContent<TUI extends Record<string, string> = Record<s
|
|
|
29
29
|
description: string;
|
|
30
30
|
ui: TUI;
|
|
31
31
|
seo: SEOSection[];
|
|
32
|
-
faqTitle?: string;
|
|
33
32
|
faq: FAQItem[];
|
|
34
|
-
bibliographyTitle?: string;
|
|
35
33
|
bibliography: BibliographyEntry[];
|
|
36
34
|
howTo: HowToStep[];
|
|
37
35
|
schemas: WithContext<Thing>[];
|