@jjlmoya/utils-creative 1.7.0 → 1.9.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.
Files changed (101) hide show
  1. package/package.json +2 -1
  2. package/src/category/i18n/de.ts +9 -0
  3. package/src/category/i18n/id.ts +9 -0
  4. package/src/category/i18n/it.ts +9 -0
  5. package/src/category/i18n/ja.ts +9 -0
  6. package/src/category/i18n/ko.ts +9 -0
  7. package/src/category/i18n/nl.ts +9 -0
  8. package/src/category/i18n/pl.ts +9 -0
  9. package/src/category/i18n/pt.ts +9 -0
  10. package/src/category/i18n/ru.ts +9 -0
  11. package/src/category/i18n/sv.ts +9 -0
  12. package/src/category/i18n/tr.ts +9 -0
  13. package/src/category/i18n/zh.ts +9 -0
  14. package/src/category/index.ts +12 -0
  15. package/src/tests/faq_count.test.ts +1 -1
  16. package/src/tests/i18n_coverage.test.ts +36 -0
  17. package/src/tests/locale_completeness.test.ts +2 -2
  18. package/src/tests/slug_uniqueness.test.ts +81 -0
  19. package/src/tests/title_quality.test.ts +3 -3
  20. package/src/tool/bead-pattern-generator/i18n/de.ts +115 -0
  21. package/src/tool/bead-pattern-generator/i18n/en.ts +1 -1
  22. package/src/tool/bead-pattern-generator/i18n/es.ts +1 -1
  23. package/src/tool/bead-pattern-generator/i18n/fr.ts +1 -1
  24. package/src/tool/bead-pattern-generator/i18n/id.ts +115 -0
  25. package/src/tool/bead-pattern-generator/i18n/it.ts +115 -0
  26. package/src/tool/bead-pattern-generator/i18n/ja.ts +115 -0
  27. package/src/tool/bead-pattern-generator/i18n/ko.ts +115 -0
  28. package/src/tool/bead-pattern-generator/i18n/nl.ts +115 -0
  29. package/src/tool/bead-pattern-generator/i18n/pl.ts +115 -0
  30. package/src/tool/bead-pattern-generator/i18n/pt.ts +115 -0
  31. package/src/tool/bead-pattern-generator/i18n/ru.ts +115 -0
  32. package/src/tool/bead-pattern-generator/i18n/sv.ts +115 -0
  33. package/src/tool/bead-pattern-generator/i18n/tr.ts +115 -0
  34. package/src/tool/bead-pattern-generator/i18n/zh.ts +115 -0
  35. package/src/tool/bead-pattern-generator/index.ts +12 -0
  36. package/src/tool/dice-roller/i18n/de.ts +138 -0
  37. package/src/tool/dice-roller/i18n/id.ts +138 -0
  38. package/src/tool/dice-roller/i18n/it.ts +138 -0
  39. package/src/tool/dice-roller/i18n/ja.ts +138 -0
  40. package/src/tool/dice-roller/i18n/ko.ts +138 -0
  41. package/src/tool/dice-roller/i18n/nl.ts +138 -0
  42. package/src/tool/dice-roller/i18n/pl.ts +138 -0
  43. package/src/tool/dice-roller/i18n/pt.ts +138 -0
  44. package/src/tool/dice-roller/i18n/ru.ts +138 -0
  45. package/src/tool/dice-roller/i18n/sv.ts +138 -0
  46. package/src/tool/dice-roller/i18n/tr.ts +138 -0
  47. package/src/tool/dice-roller/i18n/zh.ts +138 -0
  48. package/src/tool/dice-roller/index.ts +12 -0
  49. package/src/tool/excuse-generator/i18n/de.ts +122 -0
  50. package/src/tool/excuse-generator/i18n/id.ts +122 -0
  51. package/src/tool/excuse-generator/i18n/it.ts +122 -0
  52. package/src/tool/excuse-generator/i18n/ja.ts +122 -0
  53. package/src/tool/excuse-generator/i18n/ko.ts +122 -0
  54. package/src/tool/excuse-generator/i18n/nl.ts +122 -0
  55. package/src/tool/excuse-generator/i18n/pl.ts +122 -0
  56. package/src/tool/excuse-generator/i18n/pt.ts +122 -0
  57. package/src/tool/excuse-generator/i18n/ru.ts +122 -0
  58. package/src/tool/excuse-generator/i18n/sv.ts +122 -0
  59. package/src/tool/excuse-generator/i18n/tr.ts +122 -0
  60. package/src/tool/excuse-generator/i18n/zh.ts +122 -0
  61. package/src/tool/excuse-generator/index.ts +12 -0
  62. package/src/tool/fortune-cookie/i18n/de.ts +127 -0
  63. package/src/tool/fortune-cookie/i18n/id.ts +127 -0
  64. package/src/tool/fortune-cookie/i18n/it.ts +127 -0
  65. package/src/tool/fortune-cookie/i18n/ja.ts +127 -0
  66. package/src/tool/fortune-cookie/i18n/ko.ts +127 -0
  67. package/src/tool/fortune-cookie/i18n/nl.ts +127 -0
  68. package/src/tool/fortune-cookie/i18n/pl.ts +127 -0
  69. package/src/tool/fortune-cookie/i18n/pt.ts +127 -0
  70. package/src/tool/fortune-cookie/i18n/ru.ts +127 -0
  71. package/src/tool/fortune-cookie/i18n/sv.ts +127 -0
  72. package/src/tool/fortune-cookie/i18n/tr.ts +127 -0
  73. package/src/tool/fortune-cookie/i18n/zh.ts +127 -0
  74. package/src/tool/fortune-cookie/index.ts +12 -0
  75. package/src/tool/synesthesia-painter/i18n/de.ts +122 -0
  76. package/src/tool/synesthesia-painter/i18n/fr.ts +2 -2
  77. package/src/tool/synesthesia-painter/i18n/id.ts +122 -0
  78. package/src/tool/synesthesia-painter/i18n/it.ts +122 -0
  79. package/src/tool/synesthesia-painter/i18n/ja.ts +122 -0
  80. package/src/tool/synesthesia-painter/i18n/ko.ts +122 -0
  81. package/src/tool/synesthesia-painter/i18n/nl.ts +122 -0
  82. package/src/tool/synesthesia-painter/i18n/pl.ts +122 -0
  83. package/src/tool/synesthesia-painter/i18n/pt.ts +122 -0
  84. package/src/tool/synesthesia-painter/i18n/ru.ts +122 -0
  85. package/src/tool/synesthesia-painter/i18n/sv.ts +122 -0
  86. package/src/tool/synesthesia-painter/i18n/tr.ts +122 -0
  87. package/src/tool/synesthesia-painter/i18n/zh.ts +122 -0
  88. package/src/tool/synesthesia-painter/index.ts +12 -0
  89. package/src/tool/zalgo-generator/i18n/de.ts +113 -0
  90. package/src/tool/zalgo-generator/i18n/id.ts +113 -0
  91. package/src/tool/zalgo-generator/i18n/it.ts +113 -0
  92. package/src/tool/zalgo-generator/i18n/ja.ts +113 -0
  93. package/src/tool/zalgo-generator/i18n/ko.ts +113 -0
  94. package/src/tool/zalgo-generator/i18n/nl.ts +113 -0
  95. package/src/tool/zalgo-generator/i18n/pl.ts +113 -0
  96. package/src/tool/zalgo-generator/i18n/pt.ts +113 -0
  97. package/src/tool/zalgo-generator/i18n/ru.ts +113 -0
  98. package/src/tool/zalgo-generator/i18n/sv.ts +113 -0
  99. package/src/tool/zalgo-generator/i18n/tr.ts +113 -0
  100. package/src/tool/zalgo-generator/i18n/zh.ts +113 -0
  101. package/src/tool/zalgo-generator/index.ts +12 -0
@@ -0,0 +1,113 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ZalgoGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'zalgo-generator-nl';
5
+ const title = 'Zalgo generator';
6
+ const description = 'Corrumpeer je berichten met cascade-achtige overlopende Unicode-karakters. Pas de intensiteit en richting van het glitch-effect aan.';
7
+
8
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
9
+ { question: 'Wat is Zalgo tekst?', answer: 'Het is een soort tekst die overmatig gebruikmaakt van Unicode-combinatiekarakters (diakritische tekens). Wanneer deze verticaal worden gestapeld, "lopen ze over" uit hun oorspronkelijke regel, wat een visueel effect van corruptie, wanorde of horror creëert dat populair is in de internetcultuur.' },
10
+ { question: 'Waarom ziet Zalgo tekst er zo vreemd uit?', answer: 'Het maakt gebruik van een functie van de Unicode-standaard die het toevoegen van markeringen boven, onder of door een basisletter mogelijk maakt. Omdat er geen strikte limiet is aan hoeveel markeringen kunnen worden toegevoegd, kan de tekst regels erboven of eronder "binnendringen".' },
11
+ { question: 'Kan ik deze tekst gebruiken op sociale media?', answer: 'Ja, de meeste moderne platforms (Instagram, Twitter, Discord) ondersteunen Unicode. Sommige netwerken of apparaten kunnen echter overtollige karakters filteren of afkappen bij een zeer hoge intensiteit om de leesbaarheid van de interface te behouden.' },
12
+ { question: 'Hoe kan ik het Zalgo effect uit tekst verwijderen?', answer: 'Om gecorrumpeerde tekst op te schonen, kun je JavaScript-stringnormalisatie gebruiken of het simpelweg in een basis-teksteditor plakken die alleen platte tekst accepteert. Onze tool is puur creatief en beschadigt de originele inhoud niet.' },
13
+ ];
14
+
15
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Schrijf het basisbericht', text: 'Voer de tekst die je wilt "corrumperen" in het hoofdtekstvak in.' },
17
+ { name: 'Pas de chaos-intensiteit aan', text: 'Verschuif de slider om te bepalen hoeveel combinatiekarakters er gestapeld moeten worden. Hogere intensiteit = moeilijker leesbaar.' },
18
+ { name: 'Selecteer de overlooprichting', text: 'Kies of de corruptie naar boven, naar beneden of tegelijkertijd in alle richtingen moet groeien.' },
19
+ { name: 'Kopieer het resultaat', text: 'Klik op de kopieerknop. De resulterende tekst bevat alle onzichtbare bytes die nodig zijn om het glitch-effect te behouden.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faq.map((item) => ({
26
+ '@type': 'Question',
27
+ name: item.question,
28
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
29
+ })),
30
+ };
31
+
32
+ const howToSchema: WithContext<HowTo> = {
33
+ '@context': 'https://schema.org',
34
+ '@type': 'HowTo',
35
+ name: title,
36
+ description,
37
+ step: howTo.map((step) => ({
38
+ '@type': 'HowToStep',
39
+ name: step.name,
40
+ text: step.text,
41
+ })),
42
+ };
43
+
44
+ const appSchema: WithContext<SoftwareApplication> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'SoftwareApplication',
47
+ name: title,
48
+ description,
49
+ applicationCategory: 'UtilitiesApplication',
50
+ operatingSystem: 'Web',
51
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
52
+ inLanguage: 'nl',
53
+ };
54
+
55
+ export const content: ZalgoGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Veelgestelde vragen',
60
+ bibliographyTitle: 'Chaosbibliografie',
61
+ ui: {
62
+ title: 'Zalgo generator',
63
+ description: 'A̷l̸l̶e̸s̶ ̴i̸s̷ ̴g̶e̵c̶o̵r̸r̷u̴m̵p̶e̵e̵r̷d̵',
64
+ inputPlaceholder: 'Typ hier je normale bericht...',
65
+ intensityLabel: 'Corruptieniveau',
66
+ outputLabel: 'Gecorrumpeerd resultaat',
67
+ copyBtn: 'Kopieer chaos',
68
+ copied: 'Gekopieerd!',
69
+ faqTitle: 'FAQ',
70
+ bibliographyTitle: 'Referenties',
71
+ configTitle: 'Configuratie',
72
+ intensity: 'Intensiteit',
73
+ upLabel: 'Bovenste corruptie',
74
+ midLabel: 'Middelste ruis',
75
+ downLabel: 'Onderste corruptie',
76
+ resetBtn: 'Waarden resetten',
77
+ warningText: 'WAARSCHUWING: Zalgo-tekst gebruikt gecombineerde Unicode-karakters die visueel uit hun container kunnen lopen. Gebruik met mate op sociale media.',
78
+ previewLabel: 'Realtime voorvertoning',
79
+ emptyLabel: 'Leeg',
80
+ charLabel: 'KARAKTERS',
81
+ noteText: 'Opmerking: sommige browsers kunnen de weergave van gecombineerde karakters beperken'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Wat is Zalgo tekst en hoe werkt visuele corruptie?', level: 2 },
85
+ { type: 'paragraph', html: 'Zalgo-tekst is een vorm van typografische manipulatie die gebruikmaakt van een specifieke functie van de Unicode-standaard: <strong>combinatiekarakters</strong>. In tegenstelling tot normale karakters nemen deze diakritische tekens geen horizontale ruimte in beslag — ze stapelen zich verticaal op bovenop de basisletter, waardoor die esthetiek van "digitale chaos" of "kosmische horror" ontstaat die zo populair is in de internetcultuur.' },
86
+ { type: 'title', text: 'Anatomie van het proces', level: 3 },
87
+ { type: 'paragraph', html: 'Onze generator verwerkt elk karakter onafhankelijk en injecteert willekeurige Unicode-codepunten in drie verschillende vectoren: <strong>boven</strong> (diakritische tekens die erboven stapelen), <strong>midden</strong> (die door de letter heen prikken) und <strong>onder</strong> (die eronder hangen).' },
88
+ { type: 'tip', title: 'Corruptie algoritme', html: 'Voor elk basiskarakter wordt een <code>aantal = intensiteit × 30</code> berekend. Zoveel willekeurige diakritische tekens worden in elke vector toegevoegd. Bij intensiteit 1,5 kun je tot wel 45 combinatiekarakters per letter krijgen.' },
89
+ { type: 'title', text: 'Etiquette en toepassingen', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>Sociale media:</strong> Trek de aandacht op Instagram of TikTok. Perfect voor bio\'s die willen breken met conventies.',
92
+ '<strong>Horror Storytelling:</strong> Dramatiseer fictieve verhalen, creepypasta\'s of simulaties van gecompromitteerde systemen.',
93
+ '<strong>Toegankelijkheid:</strong> Waarschuwing — Zalgo-tekst is onleesbaar voor schermlezers. Gebruik het alleen als visuele decoratie, nooit voor cruciale inhoud.',
94
+ '<strong>SEO:</strong> Gebruik Zalgo nooit in kern-zoekwoorden (H1, meta-titels). Indexeringsbots kunnen deze karakters mogelijk niet normaliseren.',
95
+ ]},
96
+ { type: 'title', text: 'De oorsprong: Van Something Awful naar Glitch Art', level: 3 },
97
+ { type: 'paragraph', html: 'Zalgo begon niet als een generator, maar als een interventie in klassieke krantenstrips. De gebruiker Shmorky begon halverwege de jaren 2000 karakters als Nancy of Archie te vervormen door vlekken en vervormingen toe te voegen. De zin <strong>"He comes"</strong> bezegelde het lot van deze werken en kondigde de komst aan van een entiteit die de realiteit verslindt.' },
98
+ { type: 'glossary', items: [
99
+ { term: 'Combinatiekarakter', definition: 'Een Unicode-codepunt dat is ontworpen om bovenop, onder of door een basiskarakter te worden geplaatst. Legitiem gebruikt in talen zoals Arabisch, Vietnamees en Hindi.' },
100
+ { term: 'Diakritisch teken', definition: 'Een markering toegevoegd aan een basisletter om de uitspraak of betekenis te wijzigen. Zalgo misbruikt deze om visuele overloop te creëren.' },
101
+ { term: 'Unicode-blok', definition: 'Een aaneengesloten bereik van Unicode-codepunten. Zalgo-karakters komen meestal uit het blok "Combining Diacritical Marks" (U+0300–U+036F).' },
102
+ { term: 'Glitch Art', definition: 'Een esthetiek die opzettelijk fouten, artefacten en corrupties in digitale media opneemt of simuleert als een expressieve techniek.' },
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography: [
107
+ { name: 'Unicode-standaard - Combinatiekarakters (Engels)', url: 'https://www.unicode.org/standard/principles.html#Combining_Characters' },
108
+ { name: 'Het Zalgo-tekstfenomeen (Engels)', url: 'https://knowyourmeme.com/memes/zalgo' },
109
+ { name: 'MDN - Stringnormalisatie', url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize' },
110
+ ],
111
+ howTo,
112
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
113
+ };
@@ -0,0 +1,113 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ZalgoGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'generatory-zalgo';
5
+ const title = 'Generator Zalgo';
6
+ const description = 'Skorumpuj swoje wiadomości kaskadowymi, przelewającymi się znakami Unicode. Dostosuj intensywność i kierunek efektu glitch.';
7
+
8
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
9
+ { question: 'Co to jest tekst Zalgo?', answer: 'Jest to rodzaj tekstu, który w nadmiarze wykorzystuje znaki łączące Unicode (diakrytyki). Gdy są układane pionowo, znaki te „przelewają się” poza swoją oryginalną linię, tworząc wizualny efekt korupcji, nieładu lub horroru, popularny w kulturze internetowej.' },
10
+ { question: 'Dlaczego tekst Zalgo wygląda tak dziwnie?', answer: 'Wykorzystuje on funkcję standardu Unicode, która pozwala na dodawanie znaków nad, pod lub przez literę bazową. Ponieważ nie ma ścisłego limitu liczby znaków, które można dodać, tekst może „najeżdżać” na linie powyżej lub poniżej.' },
11
+ { question: 'Czy mogę używać tego tekstu w mediach społecznościowych?', answer: 'Tak, większość nowoczesnych platform (Instagram, Twitter, Discord) obsługuje Unicode. Jednak niektóre sieci lub urządzenia mogą filtrować lub ucinać nadmiar znaków przy bardzo wysokiej intensywności, aby zachować czytelność interfejsu.' },
12
+ { question: 'Jak mogę usunąć efekt Zalgo z tekstu?', answer: 'Aby wyczyścić skorumpowany tekst, możesz użyć normalizacji ciągów znaków w JavaScript lub po prostu wkleić go do podstawowego edytora tekstu, który akceptuje tylko czysty tekst. Nasze narzędzie ma charakter czysto kreatywny i nie uszkadza oryginalnej zawartości.' },
13
+ ];
14
+
15
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Napisz wiadomość bazową', text: 'Wpisz tekst, który chcesz „skorumpować”, w głównym polu tekstowym.' },
17
+ { name: 'Dostosuj intensywność chaosu', text: 'Przesuń suwak, aby określić, ile znaków łączących ma zostać nałożonych. Wyższa intensywność = trudniejszy odczyt.' },
18
+ { name: 'Wybierz kierunek przelewania', text: 'Wybierz, czy korupcja ma rosnąć w górę, w dół, czy we wszystkich kierunkach jednocześnie.' },
19
+ { name: 'Skopiuj wynik', text: 'Kliknij przycisk kopiowania. Wynikowy tekst zawiera wszystkie niewidoczne bajty potrzebne do utrzymania efektu glitch.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faq.map((item) => ({
26
+ '@type': 'Question',
27
+ name: item.question,
28
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
29
+ })),
30
+ };
31
+
32
+ const howToSchema: WithContext<HowTo> = {
33
+ '@context': 'https://schema.org',
34
+ '@type': 'HowTo',
35
+ name: title,
36
+ description,
37
+ step: howTo.map((step) => ({
38
+ '@type': 'HowToStep',
39
+ name: step.name,
40
+ text: step.text,
41
+ })),
42
+ };
43
+
44
+ const appSchema: WithContext<SoftwareApplication> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'SoftwareApplication',
47
+ name: title,
48
+ description,
49
+ applicationCategory: 'UtilitiesApplication',
50
+ operatingSystem: 'Web',
51
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
52
+ inLanguage: 'pl',
53
+ };
54
+
55
+ export const content: ZalgoGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Najczęściej zadawane pytania',
60
+ bibliographyTitle: 'Bibliografia chaosu',
61
+ ui: {
62
+ title: 'Generator Zalgo',
63
+ description: 'W̵s̸z̷y̷s̵t̶k̵o̷ ̸j̸e̷s̵t̵ ̵s̴k̶o̷r̶u̸m̶p̴o̵w̶a̶n̶e̵',
64
+ inputPlaceholder: 'Wpisz tutaj swoją normalną wiadomość...',
65
+ intensityLabel: 'Poziom korupcji',
66
+ outputLabel: 'Skorumpowany wynik',
67
+ copyBtn: 'Kopiuj chaos',
68
+ copied: 'Skopiowano!',
69
+ faqTitle: 'FAQ',
70
+ bibliographyTitle: 'Źródła',
71
+ configTitle: 'Konfiguracja',
72
+ intensity: 'Intensywność',
73
+ upLabel: 'Górna korupcja',
74
+ midLabel: 'Środkowy szum',
75
+ downLabel: 'Dolna korupcja',
76
+ resetBtn: 'Resetuj wartości',
77
+ warningText: 'OSTRZEŻENIE: Tekst Zalgo używa połączonych znaków Unicode, które mogą wizualnie przelewać się poza swój kontener. Używaj ostrożnie w mediach społecznościowych.',
78
+ previewLabel: 'Podgląd w czasie rzeczywistym',
79
+ emptyLabel: 'Puste',
80
+ charLabel: 'ZNAKI',
81
+ noteText: 'Uwaga: niektóre przeglądarki mogą ograniczać renderowanie połączonych znaków'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Co to jest tekst Zalgo i jak działa wizualna korupcja?', level: 2 },
85
+ { type: 'paragraph', html: 'Tekst Zalgo to forma manipulacji typograficznej wykorzystująca specyficzną funkcję standardu Unicode: <strong>znaki łączące</strong>. W przeciwieństwie do zwykłych znaków, diakrytyki te nie zajmują miejsca w poziomie — układają się pionowo nad literą bazową, tworząc estetykę „cyfrowego chaosu” lub „kosmicznego horroru”, tak popularną w kulturze internetowej.' },
86
+ { type: 'title', text: 'Anatomia procesu', level: 3 },
87
+ { type: 'paragraph', html: 'Nasz generator przetwarza każdy znak niezależnie, wstrzykując losowe serie punktów kodowych Unicode w trzech różnych wektorach: <strong>górnym</strong> (diakrytyki układające się nad literą), <strong>środkowym</strong> (przebijające literę) i <strong>dolnym</strong> (zwisające pod nią).' },
88
+ { type: 'tip', title: 'Algorytm korupcji', html: 'Dla każdego znaku bazowego obliczana jest <code>liczba = intensywność × 30</code>. Tyle losowych diakrytyków dodaje się w każdym wektorze. Przy intensywności 1,5 można uzyskać do 45 znaków łączących na jedną literę.' },
89
+ { type: 'title', text: 'Etykieta i zastosowania', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>Media społecznościowe:</strong> Przyciągnij uwagę na Instagramie czy TikToku. Idealne do opisów profilu chcących zerwać z konwencją.',
92
+ '<strong>Opowieści grozy:</strong> Dramatyzuj narracje fikcyjne, creepypasty lub symulacje przejętych systemów.',
93
+ '<strong>Dostępność:</strong> Ostrzeżenie — tekst Zalgo jest nieczytelny dla czytników ekranu. Używaj go wyłącznie jako dekoracji wizualnej, nigdy dla treści krytycznych.',
94
+ '<strong>SEO:</strong> Nigdy nie używaj Zalgo w kluczowych słowach (H1, metatytuły). Boty indeksujące mogą nie poradzić sobie z normalizacją tych znaków.',
95
+ ]},
96
+ { type: 'title', text: 'Pochodzenie: Od Something Awful do Glitch Artu', level: 3 },
97
+ { type: 'paragraph', html: 'Zalgo nie zaczęło się jako generator, ale jako interwencja w klasyczne paski komiksowe. Użytkownik Shmorky w połowie lat 2000 zaczął deformować postacie takie jak Nancy czy Archie, dodając plamy i zniekształcenia. Fraza <strong>„On nadchodzi”</strong> (He comes) przypieczętowała los tych dzieł, ogłaszając przybycie bytu pożerającego rzeczywistość.' },
98
+ { type: 'glossary', items: [
99
+ { term: 'Znak łączący', definition: 'Punkt kodowy Unicode zaprojektowany do umieszczenia nad, pod lub przez znak bazowy. Używany uprawnienie w językach takich jak arabski, wietnamski i hindi.' },
100
+ { term: 'Diakrytyk', definition: 'Znak dodany do litery bazowej w celu zmiany jej wymowy lub znaczenia. Zalgo nadużywa ich do tworzenia wizualnego przelewania się.' },
101
+ { term: 'Blok Unicode', definition: 'Ciągły zakres punktów kodowych Unicode. Znaki Zalgo pochodzą głównie z bloku „Combining Diacritical Marks” (U+0300–U+036F).' },
102
+ { term: 'Glitch Art', definition: 'Estetyka, która intencjonalnie włącza lub symuluje błędy, artefakty i korupcje w mediach cyfrowych jako technikę ekspresyjną.' },
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography: [
107
+ { name: 'Standard Unicode - Znaki łączące (ang.)', url: 'https://www.unicode.org/standard/principles.html#Combining_Characters' },
108
+ { name: 'Fenomen tekstu Zalgo (ang.)', url: 'https://knowyourmeme.com/memes/zalgo' },
109
+ { name: 'MDN - Normalizacja ciągów znaków', url: 'https://developer.mozilla.org/pl/docs/Web/JavaScript/Reference/Global_Objects/String/normalize' },
110
+ ],
111
+ howTo,
112
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
113
+ };
@@ -0,0 +1,113 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ZalgoGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'gerador-zalgo';
5
+ const title = 'Gerador Zalgo';
6
+ const description = 'Corrompa as suas mensagens com caracteres Unicode em cascata que transbordam. Ajuste a intensidade e a direção do efeito glitch.';
7
+
8
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
9
+ { question: 'O que é o texto Zalgo?', answer: 'É um tipo de texto que utiliza excessivamente caracteres de combinação Unicode (diacríticos). Quando empilhados verticalmente, estes caracteres "transbordam" da sua linha original, criando um efeito visual de corrupção, desordem ou horror popular na cultura da internet.' },
10
+ { question: 'Por que o texto Zalgo parece tão estranho?', answer: 'Ele explora uma funcionalidade do padrão Unicode que permite adicionar marcas acima, abaixo ou através de uma letra base. Como não há um limite estrito para o número de marcas que podem ser adicionadas, o texto pode "invadir" as linhas superiores ou inferiores.' },
11
+ { question: 'Posso usar este texto nas redes sociais?', answer: 'Sim, a maioria das plataformas modernas (Instagram, Twitter, Discord) suporta Unicode. No entanto, algumas redes ou dispositivos podem filtrar ou truncar o excesso de caracteres em intensidades muito altas para manter a legibilidade da interface.' },
12
+ { question: 'Como posso remover o efeito Zalgo do texto?', answer: 'Para limpar texto corrompido, pode usar a normalização de strings do JavaScript ou simplesmente colá-lo num editor de texto básico que aceite apenas texto simples. A nossa ferramenta é puramente criativa e não danifica o conteúdo original.' },
13
+ ];
14
+
15
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Escrever a mensagem base', text: 'Introduza o texto que deseja "corromper" na caixa de texto principal.' },
17
+ { name: 'Ajustar a intensidade do caos', text: 'Mova o seletor para definir quantos caracteres de combinação devem ser empilhados. Maior intensidade = mais difícil de ler.' },
18
+ { name: 'Selecionar a direção do transbordo', text: 'Escolha se a corrupção deve crescer para cima, para baixo ou em todas as direções simultaneamente.' },
19
+ { name: 'Copiar o resultado', text: 'Clique no botão de copiar. O texto resultante inclui todos os bytes invisíveis necessários para manter o efeito glitch.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faq.map((item) => ({
26
+ '@type': 'Question',
27
+ name: item.question,
28
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
29
+ })),
30
+ };
31
+
32
+ const howToSchema: WithContext<HowTo> = {
33
+ '@context': 'https://schema.org',
34
+ '@type': 'HowTo',
35
+ name: title,
36
+ description,
37
+ step: howTo.map((step) => ({
38
+ '@type': 'HowToStep',
39
+ name: step.name,
40
+ text: step.text,
41
+ })),
42
+ };
43
+
44
+ const appSchema: WithContext<SoftwareApplication> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'SoftwareApplication',
47
+ name: title,
48
+ description,
49
+ applicationCategory: 'UtilitiesApplication',
50
+ operatingSystem: 'Web',
51
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
52
+ inLanguage: 'pt',
53
+ };
54
+
55
+ export const content: ZalgoGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Perguntas Frequentes',
60
+ bibliographyTitle: 'Bibliografia do Caos',
61
+ ui: {
62
+ title: 'Gerador Zalgo',
63
+ description: 'T̴u̵d̸o̸ ̵e̷s̶t̸á̶ ̷c̴o̷r̸r̸o̷m̸p̸i̷d̷o̷',
64
+ inputPlaceholder: 'Escreva aqui a sua mensagem normal...',
65
+ intensityLabel: 'Nível de Corrupção',
66
+ outputLabel: 'Resultado Corrompido',
67
+ copyBtn: 'Copiar Caos',
68
+ copied: 'Copiado!',
69
+ faqTitle: 'FAQ',
70
+ bibliographyTitle: 'Referências',
71
+ configTitle: 'Configuração',
72
+ intensity: 'Intensidade',
73
+ upLabel: 'Corrupção Superior',
74
+ midLabel: 'Ruído Central',
75
+ downLabel: 'Corrupção Inferior',
76
+ resetBtn: 'Repor Valores',
77
+ warningText: 'AVISO: O texto Zalgo utiliza caracteres Unicode combinados que podem transbordar visualmente do seu contentor. Use com cautela nas redes sociais.',
78
+ previewLabel: 'Pré-visualização em Tempo Real',
79
+ emptyLabel: 'Vazio',
80
+ charLabel: 'CARACTERES',
81
+ noteText: 'Nota: alguns browsers podem limitar a renderização de caracteres combinados'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'O que é Texto Zalgo e como funciona a corrupção visual?', level: 2 },
85
+ { type: 'paragraph', html: 'O Texto Zalgo é uma forma de manipulação tipográfica que explora uma funcionalidade específica do padrão Unicode: <strong>caracteres de combinação</strong>. Ao contrário dos caracteres normais, estes diacríticos não ocupam espaço horizontal — eles empilham-se verticalmente no topo da letra base, criando aquela estética de "caos digital" ou "horror cósmico" tão popular na cultura da internet.' },
86
+ { type: 'title', text: 'Anatomia do Processo', level: 3 },
87
+ { type: 'paragraph', html: 'O nosso gerador processa cada caractere de forma independente, injetando sequências aleatórias de code points Unicode em três vetores distintos: <strong>superior</strong> (diacríticos que se empilham acima), <strong>médio</strong> (que perfuram a letra) e <strong>inferior</strong> (pendurados abaixo).' },
88
+ { type: 'tip', title: 'Algoritmo de Corrupção', html: 'Para cada caractere base, é calculado um <code>contagem = intensidade × 30</code>. Esse número de diacríticos aleatórios é adicionado em cada vetor. Com intensidade 1.5, pode obter até 45 caracteres de combinação por letra.' },
89
+ { type: 'title', text: 'Etiqueta e Aplicações', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>Redes Sociais:</strong> Capte a atenção no Instagram ou TikTok. Perfeito para biografias que procuram romper com a convenção.',
92
+ '<strong>Narrativa de Horror:</strong> Dramatize narrativas de ficção, creepypastas ou simulações de sistemas comprometidos.',
93
+ '<strong>Acessibilidade:</strong> Aviso — o texto Zalgo é ilegível por leitores de ecrã. Use-o apenas como decoração visual, nunca para conteúdo crítico.',
94
+ '<strong>SEO:</strong> Nunca use Zalgo em palavras-chave principais (H1, meta títulos). Os bots de indexação podem falhar ao normalizar estes caracteres.',
95
+ ]},
96
+ { type: 'title', text: 'A Origem: De Something Awful à Glitch Art', level: 3 },
97
+ { type: 'paragraph', html: 'Zalgo não começou como um gerador, mas sim como uma intervenção em tiras de banda desenhada clássicas. O utilizador Shmorky, em meados dos anos 2000, começou a deformar personagens como Nancy ou Archie, adicionando manchas e distorções. A frase <strong>"Ele vem"</strong> selou o destino destas obras, anunciando a chegada de uma entidade que devorava a realidade.' },
98
+ { type: 'glossary', items: [
99
+ { term: 'Caractere de Combinação', definition: 'Um code point Unicode desenhado para ser colocado acima, abaixo ou através de um caractere base. Usado legitimamente em idiomas como árabe, vietnamita e hindi.' },
100
+ { term: 'Diacrítico', definition: 'Uma marca adicionada a uma letra base para modificar a sua pronúncia ou significado. Zalgo abusa destes para criar um transbordo visual.' },
101
+ { term: 'Bloco Unicode', definition: 'Um intervalo contíguo de code points Unicode. Os caracteres Zalgo vêm principalmente do bloco "Combining Diacritical Marks" (U+0300–U+036F).' },
102
+ { term: 'Glitch Art', definition: 'Uma estética que incorpora ou simula intencionalmente erros, artefactos e corrupções em media digital como uma técnica expressiva.' },
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography: [
107
+ { name: 'Padrão Unicode - Caracteres de Combinação (inglês)', url: 'https://www.unicode.org/standard/principles.html#Combining_Characters' },
108
+ { name: 'O Fenómeno do Texto Zalgo (inglês)', url: 'https://knowyourmeme.com/memes/zalgo' },
109
+ { name: 'MDN - Normalização de strings', url: 'https://developer.mozilla.org/pt-PT/docs/Web/JavaScript/Reference/Global_Objects/String/normalize' },
110
+ ],
111
+ howTo,
112
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
113
+ };
@@ -0,0 +1,113 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ZalgoGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'generator-zalgo';
5
+ const title = 'Генератор Залго';
6
+ const description = 'Искажайте свои сообщения с помощью каскадных переливающихся символов Юникода. Настройте интенсивность и направление эффекта глюка.';
7
+
8
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
9
+ { question: 'Что такое Залго-текст?', answer: 'Это тип текста, в котором чрезмерно используются комбинируемые символы Юникода (диакритические знаки). При вертикальном наложении эти символы «выходят за пределы» своей строки, создавая визуальный эффект искажения, хаоса или ужаса, популярный в интернет-культуре.' },
10
+ { question: 'Почему Залго-текст выглядит так странно?', answer: 'Он использует особенность стандарта Юникод, которая позволяет добавлять знаки над, под или посередине основной буквы. Поскольку нет строгого ограничения на количество знаков, текст может «вторгаться» в строки выше или ниже.' },
11
+ { question: 'Можно ли использовать этот текст в соцсетях?', answer: 'Да, большинство современных платформ (Instagram, Twitter, Discord) поддерживают Юникод. Однако некоторые сети или устройства могут фильтровать или обрезать лишние символы при очень высокой интенсивности для сохранения читаемости интерфейса.' },
12
+ { question: 'Как убрать эффект Залго из текста?', answer: 'Чтобы очистить искаженный текст, можно использовать нормализацию строк в JavaScript или просто вставить его в простой текстовый редактор, который принимает только чистый текст. Наш инструмент носит творческий характер и не повреждает исходный контент.' },
13
+ ];
14
+
15
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Напишите базовое сообщение', text: 'Введите текст, который вы хотите «исказить», в основное текстовое поле.' },
17
+ { name: 'Настройте интенсивность хаоса', text: 'Переместите ползунок, чтобы определить количество накладываемых символов. Чем выше интенсивность, тем сложнее читать.' },
18
+ { name: 'Выберите направление', text: 'Выберите, куда должно расти искажение: вверх, вниз или во всех направлениях сразу.' },
19
+ { name: 'Скопируйте результат', text: 'Нажмите кнопку копирования. Полученный текст содержит все невидимые байты, необходимые для поддержания эффекта глюка.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faq.map((item) => ({
26
+ '@type': 'Question',
27
+ name: item.question,
28
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
29
+ })),
30
+ };
31
+
32
+ const howToSchema: WithContext<HowTo> = {
33
+ '@context': 'https://schema.org',
34
+ '@type': 'HowTo',
35
+ name: title,
36
+ description,
37
+ step: howTo.map((step) => ({
38
+ '@type': 'HowToStep',
39
+ name: step.name,
40
+ text: step.text,
41
+ })),
42
+ };
43
+
44
+ const appSchema: WithContext<SoftwareApplication> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'SoftwareApplication',
47
+ name: title,
48
+ description,
49
+ applicationCategory: 'UtilitiesApplication',
50
+ operatingSystem: 'Web',
51
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
52
+ inLanguage: 'ru',
53
+ };
54
+
55
+ export const content: ZalgoGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Часто задаваемые вопросы',
60
+ bibliographyTitle: 'Библиография хаоса',
61
+ ui: {
62
+ title: 'Генератор Залго',
63
+ description: 'В̵с̷е̵ ̷и̶с̷к̶а̴ж̵е̴н̷о̶',
64
+ inputPlaceholder: 'Введите обычное сообщение здесь...',
65
+ intensityLabel: 'Уровень искажения',
66
+ outputLabel: 'Искаженный результат',
67
+ copyBtn: 'Копировать хаос',
68
+ copied: 'Скопировано!',
69
+ faqTitle: 'FAQ',
70
+ bibliographyTitle: 'Ссылки',
71
+ configTitle: 'Настройки',
72
+ intensity: 'Интенсивность',
73
+ upLabel: 'Верхнее искажение',
74
+ midLabel: 'Шум посередине',
75
+ downLabel: 'Нижнее искажение',
76
+ resetBtn: 'Сбросить значения',
77
+ warningText: 'ПРЕДУПРЕЖДЕНИЕ: Залго-текст использует комбинируемые символы Юникода, которые могут визуально выходить за пределы контейнера. Используйте с осторожностью в социальных сетях.',
78
+ previewLabel: 'Предварительный просмотр',
79
+ emptyLabel: 'Пусто',
80
+ charLabel: 'СИМВОЛОВ',
81
+ noteText: 'Примечание: некоторые браузеры могут ограничивать отрисовку комбинируемых символов'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Что такое Залго-текст и как работает визуальное искажение?', level: 2 },
85
+ { type: 'paragraph', html: 'Залго-текст — это форма типографских манипуляций, использующая специфическую функцию стандарта Юникод: <strong>комбинируемые символы</strong>. В отличие от обычных символов, эти диакритические знаки не занимают места по горизонтали — они накладываются вертикально поверх основной буквы, создавая эстетику «цифрового хаоса» или «космического ужаса», столь популярную в интернет-культуре.' },
86
+ { type: 'title', text: 'Анатомия процесса', level: 3 },
87
+ { type: 'paragraph', html: 'Наш генератор обрабатывает каждый символ независимо, внедряя случайные всплески кодовых точек Юникода по трем различным векторам: <strong>верхний</strong> (знаки над буквой), <strong>средний</strong> (пронзающие букву) и <strong>нижний</strong> (свисающие под ней).' },
88
+ { type: 'tip', title: 'Алгоритм искажения', html: 'Для каждого базового символа рассчитывается <code>количество = интенсивность × 30</code>. Столько случайных диакритических знаков добавляется в каждый вектор. При интенсивности 1.5 вы можете получить до 45 комбинируемых символов на букву.' },
89
+ { type: 'title', text: 'Этикет и применение', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>Социальные сети:</strong> Привлекайте внимание в Instagram или TikTok. Идеально для описаний профиля, стремящихся выделиться.',
92
+ '<strong>Хоррор-сторителлинг:</strong> Драматизируйте художественные повествования, крипипасты или симуляции взломанных систем.',
93
+ '<strong>Доступность:</strong> Предупреждение — Залго-текст не читается экранными дикторами. Используйте его только как визуальное украшение, никогда для важного контента.',
94
+ '<strong>SEO:</strong> Никогда не используйте Залго в основных ключевых словах (H1, мета-заголовки). Индексирующие роботы могут не справиться с нормализацией этих символов.',
95
+ ]},
96
+ { type: 'title', text: 'Происхождение: от Something Awful до глитч-арта', level: 3 },
97
+ { type: 'paragraph', html: 'Залго начался не как генератор, а как вмешательство в классические комиксы. Пользователь Shmorky в середине 2000-х начал деформировать персонажей, таких как Нэнси или Арчи, добавляя пятна и искажения. Фраза <strong>«Он идет» (He comes)</strong> закрепила судьбу этих работ, анонсируя приход сущности, пожирающей реальность.' },
98
+ { type: 'glossary', items: [
99
+ { term: 'Комбинируемый символ', definition: 'Кодовая точка Юникода, предназначенная для размещения над, под или посередине базового символа. Легитимно используется в таких языках, как арабский, вьетнамский и хинди.' },
100
+ { term: 'Диакритический знак', definition: 'Знак, добавляемый к основной букве для изменения её произношения или значения. Залго злоупотребляет ими для создания визуальных искажений.' },
101
+ { term: 'Блок Юникода', definition: 'Непрерывный диапазон кодовых точек Юникода. Символы Залго в основном берутся из блока «Комбинируемые диакритические знаки» (U+0300–U+036F).' },
102
+ { term: 'Глитч-арт', definition: 'Эстетика, которая намеренно включает или имитирует ошибки, артефакты и искажения в цифровых медиа как выразительный прием.' },
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography: [
107
+ { name: 'Стандарт Юникод - Комбинируемые символы (англ.)', url: 'https://www.unicode.org/standard/principles.html#Combining_Characters' },
108
+ { name: 'Феномен Залго-текста (англ.)', url: 'https://knowyourmeme.com/memes/zalgo' },
109
+ { name: 'MDN - Нормализация строк', url: 'https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/String/normalize' },
110
+ ],
111
+ howTo,
112
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
113
+ };
@@ -0,0 +1,113 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { ZalgoGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'zalgo-generator-sv';
5
+ const title = 'Zalgo generator';
6
+ const description = 'Korrumpera dina meddelanden med kaskadliknande överflödiga Unicode-tecken. Justera intensitet och riktning för glitch-effekten.';
7
+
8
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
9
+ { question: 'Vad är Zalgo text?', answer: 'Det är en typ av text som använder Unicode-kombinationstecken (diakritiska tecken) överdrivet. När de staplas vertikalt "flödar dessa tecken över" sin ursprungliga rad, vilket skapar en visuell effekt av korruption, oordning eller horror som är populär i internetkulturen.' },
10
+ { question: 'Varför ser Zalgo-text så konstig ut?', answer: 'Den utnyttjar en funktion i Unicode-standarden som gör det möjligt att lägga till märken ovanför, under eller genom en grundbokstav. Eftersom det inte finns någon strikt gräns för hur många märken som kan läggas till, kan texten "invadera" rader ovanför eller under.' },
11
+ { question: 'Kan jag använda den här texten på sociala medier?', answer: 'Ja, de flesta moderna plattformar (Instagram, Twitter, Discord) stöder Unicode. Vissa nätverk eller enheter kan dock filtrera eller korta av överflödiga tecken vid mycket hög intensitet för att bibehålla gränssnittets läsbarhet.' },
12
+ { question: 'Hur kan jag ta bort Zalgo-effekten från text?', answer: 'För att rensa korrumperad text kan du använda JavaScript-strängnormalisering eller helt enkelt klistra in den i en enkel textredigerare som endast accepterar vanlig text. Vårt verktyg är rent kreativt och skadar inte originalinnehållet.' },
13
+ ];
14
+
15
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Skriv grundmeddelandet', text: 'Ange texten du vill "korrumpera" i huvudtextrutan.' },
17
+ { name: 'Justera kaosintensiteten', text: 'Flytta skjutreglaget för att definiera hur många kombinationstecken som ska staplas. Högre intensitet = svårare att läsa.' },
18
+ { name: 'Välj överflödesriktning', text: 'Välj om korruptionen ska växa uppåt, nedåt eller i alla riktningar samtidigt.' },
19
+ { name: 'Kopiera resultatet', text: 'Klicka på kopieringsknappen. Den resulterande texten innehåller alla osynliga bytes som behövs för att bibehålla glitch-effekten.' },
20
+ ];
21
+
22
+ const faqSchema: WithContext<FAQPage> = {
23
+ '@context': 'https://schema.org',
24
+ '@type': 'FAQPage',
25
+ mainEntity: faq.map((item) => ({
26
+ '@type': 'Question',
27
+ name: item.question,
28
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
29
+ })),
30
+ };
31
+
32
+ const howToSchema: WithContext<HowTo> = {
33
+ '@context': 'https://schema.org',
34
+ '@type': 'HowTo',
35
+ name: title,
36
+ description,
37
+ step: howTo.map((step) => ({
38
+ '@type': 'HowToStep',
39
+ name: step.name,
40
+ text: step.text,
41
+ })),
42
+ };
43
+
44
+ const appSchema: WithContext<SoftwareApplication> = {
45
+ '@context': 'https://schema.org',
46
+ '@type': 'SoftwareApplication',
47
+ name: title,
48
+ description,
49
+ applicationCategory: 'UtilitiesApplication',
50
+ operatingSystem: 'Web',
51
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
52
+ inLanguage: 'sv',
53
+ };
54
+
55
+ export const content: ZalgoGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Vanliga frågor',
60
+ bibliographyTitle: 'Kaosbibliografi',
61
+ ui: {
62
+ title: 'Zalgo generator',
63
+ description: 'A̵l̸l̸t̶ ̶ä̶r̶ ̶k̵o̶r̵r̴u̷m̶p̷e̸r̶a̷t̵',
64
+ inputPlaceholder: 'Skriv ditt vanliga meddelande här...',
65
+ intensityLabel: 'Korruptionsnivå',
66
+ outputLabel: 'Korrumperat resultat',
67
+ copyBtn: 'Kopiera kaos',
68
+ copied: 'Kopierad!',
69
+ faqTitle: 'FAQ',
70
+ bibliographyTitle: 'Referenser',
71
+ configTitle: 'Konfiguration',
72
+ intensity: 'Intensitet',
73
+ upLabel: 'Övre korruption',
74
+ midLabel: 'Mittenbrus',
75
+ downLabel: 'Nedre korruption',
76
+ resetBtn: 'Återställ värden',
77
+ warningText: 'VARNING: Zalgo-text använder kombinerade Unicode-tecken som visuellt kan flöda över sin behållare. Använd med försiktighet på sociala medier.',
78
+ previewLabel: 'Realtidsförhandsvisning',
79
+ emptyLabel: 'Tom',
80
+ charLabel: 'TECKEN',
81
+ noteText: 'Obs: vissa webbläsare kan begränsa renderingen av kombinerade tecken'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Vad är Zalgo text och hur fungerar visuell korruption?', level: 2 },
85
+ { type: 'paragraph', html: 'Zalgo-text är en form av typografisk manipulation som utnyttjar en specifik funktion i Unicode-standarden: <strong>kombinationstecken</strong>. Till skillnad från normala tecken tar dessa diakritiska tecken inte upp något horisontellt utrymme — de staplas vertikalt ovanpå grundbokstaven, vilket skapar den estetik av "digitalt kaos" eller "kosmisk horror" som är så populär i internetkulturen.' },
86
+ { type: 'title', text: 'Processens anatomi', level: 3 },
87
+ { type: 'paragraph', html: 'Vår generator bearbetar varje tecken oberoende och injicerar slumpmässiga skurar av Unicode-kodpunkter i tre distinkta vektorer: <strong>övre</strong> (diakritiska tecken som staplas ovanför), <strong>mitten</strong> (som genomborrar bokstaven) och <strong>nedre</strong> (som hänger under).' },
88
+ { type: 'tip', title: 'Korruptionsalgoritm', html: 'För varje grundtecken beräknas <code>antal = intensitet × 30</code>. Så många slumpmässiga diakritiska tecken läggs till i varje vektor. Vid intensitet 1,5 kan du få upp till 45 kombinationstecken per bokstav.' },
89
+ { type: 'title', text: 'Etikett och applikationer', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>Sociala medier:</strong> Dra till dig uppmärksamhet på Instagram eller TikTok. Perfekt för biografier som vill bryta mot konventioner.',
92
+ '<strong>Skräckberättande:</strong> Dramatisera fiktiva berättelser, creepypastas eller simuleringar av komprometterade system.',
93
+ '<strong>Tillgänglighet:</strong> Varning — Zalgo-text är oläslig för skärmläsare. Använd den endast som visuell dekoration, aldrig för kritiskt innehåll.',
94
+ '<strong>SEO:</strong> Använd aldrig Zalgo i kärnyckelord (H1, metatitlar). Indexeringsbotar kan misslyckas med att normalisera dessa tecken.',
95
+ ]},
96
+ { type: 'title', text: 'Ursprunget: Från Something Awful till Glitch Art', level: 3 },
97
+ { type: 'paragraph', html: 'Zalgo började inte som en generator, utan som en intervention i klassiska tecknade serier. Användaren Shmorky började under mitten av 2000-talet deformera karaktärer som Nancy eller Archie genom att lägga till fläckar och distorsioner. Frasen <strong>"He comes"</strong> beseglade dessa verks öde och tillkännagav ankomsten av en entitet som slukade verkligheten.' },
98
+ { type: 'glossary', items: [
99
+ { term: 'Kombinationstecken', definition: 'En Unicode-kodpunkt designad för att placeras ovanpå, under eller genom ett grundtecken. Används legitimt i språk som arabiska, vietnamesiska och hindi.' },
100
+ { term: 'Diakritiskt tecken', definition: 'Ett märke som läggs till en grundbokstav för att ändra dess uttal eller betydelse. Zalgo missbrukar dessa för att skapa visuellt överflöde.' },
101
+ { term: 'Unicode-block', definition: 'Ett sammanhängande intervall av Unicode-kodpunkter. Zalgo-tecken kommer främst från blocket "Combining Diacritical Marks" (U+0300–U+036F).' },
102
+ { term: 'Glitch Art', definition: 'En estetik som avsiktligt införlivar eller simulerar fel, artefakter och korruptioner i digitala medier som en uttrycksfull teknik.' },
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography: [
107
+ { name: 'Unicode-standard - Kombinationstecken (engelska)', url: 'https://www.unicode.org/standard/principles.html#Combining_Characters' },
108
+ { name: 'Zalgo-textfenomenet (engelska)', url: 'https://knowyourmeme.com/memes/zalgo' },
109
+ { name: 'MDN - Strängnormalisering', url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize' },
110
+ ],
111
+ howTo,
112
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
113
+ };