@jjlmoya/utils-creative 1.26.0 → 1.27.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 (133) hide show
  1. package/package.json +2 -2
  2. package/src/category/i18n/de.ts +2 -2
  3. package/src/category/i18n/en.ts +2 -2
  4. package/src/category/i18n/es.ts +2 -2
  5. package/src/category/i18n/fr.ts +2 -2
  6. package/src/category/i18n/id.ts +2 -2
  7. package/src/category/i18n/it.ts +2 -2
  8. package/src/category/i18n/ja.ts +2 -2
  9. package/src/category/i18n/ko.ts +2 -2
  10. package/src/category/i18n/nl.ts +2 -2
  11. package/src/category/i18n/pl.ts +2 -2
  12. package/src/category/i18n/pt.ts +2 -2
  13. package/src/category/i18n/ru.ts +2 -2
  14. package/src/category/i18n/sv.ts +2 -2
  15. package/src/category/i18n/tr.ts +2 -2
  16. package/src/category/i18n/zh.ts +2 -2
  17. package/src/category/seo.astro +1 -1
  18. package/src/components/PreviewNavSidebar.astro +1 -1
  19. package/src/components/PreviewToolbar.astro +1 -1
  20. package/src/env.d.ts +1 -1
  21. package/src/pages/index.astro +1 -1
  22. package/src/tests/bibliography_wellformed_export.test.ts +46 -0
  23. package/src/tests/category_seo_quality.test.ts +74 -0
  24. package/src/tests/faq_count.test.ts +1 -1
  25. package/src/tests/mocks/astro_mock.js +1 -1
  26. package/src/tests/no_h1_in_components.test.ts +1 -1
  27. package/src/tests/seo_parity.test.ts +2 -2
  28. package/src/tests/seo_translation_completeness.test.ts +69 -0
  29. package/src/tests/seo_wellformed_export.test.ts +65 -0
  30. package/src/tests/tool_validation.test.ts +17 -17
  31. package/src/tool/bead-pattern-generator/bibliography.astro +8 -8
  32. package/src/tool/bead-pattern-generator/i18n/de.ts +111 -111
  33. package/src/tool/bead-pattern-generator/i18n/en.ts +111 -111
  34. package/src/tool/bead-pattern-generator/i18n/es.ts +104 -104
  35. package/src/tool/bead-pattern-generator/i18n/fr.ts +111 -111
  36. package/src/tool/bead-pattern-generator/i18n/id.ts +111 -111
  37. package/src/tool/bead-pattern-generator/i18n/it.ts +111 -111
  38. package/src/tool/bead-pattern-generator/i18n/ja.ts +111 -111
  39. package/src/tool/bead-pattern-generator/i18n/ko.ts +111 -111
  40. package/src/tool/bead-pattern-generator/i18n/nl.ts +111 -111
  41. package/src/tool/bead-pattern-generator/i18n/pl.ts +111 -111
  42. package/src/tool/bead-pattern-generator/i18n/pt.ts +111 -111
  43. package/src/tool/bead-pattern-generator/i18n/ru.ts +111 -111
  44. package/src/tool/bead-pattern-generator/i18n/sv.ts +111 -111
  45. package/src/tool/bead-pattern-generator/i18n/tr.ts +111 -111
  46. package/src/tool/bead-pattern-generator/i18n/zh.ts +111 -111
  47. package/src/tool/bead-pattern-generator/seo.astro +19 -19
  48. package/src/tool/dice-roller/bibliography.astro +8 -8
  49. package/src/tool/dice-roller/i18n/de.ts +134 -134
  50. package/src/tool/dice-roller/i18n/en.ts +134 -134
  51. package/src/tool/dice-roller/i18n/es.ts +125 -125
  52. package/src/tool/dice-roller/i18n/fr.ts +134 -134
  53. package/src/tool/dice-roller/i18n/id.ts +134 -134
  54. package/src/tool/dice-roller/i18n/it.ts +134 -134
  55. package/src/tool/dice-roller/i18n/ja.ts +134 -134
  56. package/src/tool/dice-roller/i18n/ko.ts +134 -134
  57. package/src/tool/dice-roller/i18n/nl.ts +134 -134
  58. package/src/tool/dice-roller/i18n/pl.ts +134 -134
  59. package/src/tool/dice-roller/i18n/pt.ts +134 -134
  60. package/src/tool/dice-roller/i18n/ru.ts +134 -134
  61. package/src/tool/dice-roller/i18n/sv.ts +134 -134
  62. package/src/tool/dice-roller/i18n/tr.ts +134 -134
  63. package/src/tool/dice-roller/i18n/zh.ts +134 -134
  64. package/src/tool/dice-roller/seo.astro +15 -15
  65. package/src/tool/excuse-generator/bibliography.astro +8 -8
  66. package/src/tool/excuse-generator/i18n/de.ts +120 -120
  67. package/src/tool/excuse-generator/i18n/en.ts +120 -120
  68. package/src/tool/excuse-generator/i18n/es.ts +118 -118
  69. package/src/tool/excuse-generator/i18n/fr.ts +120 -120
  70. package/src/tool/excuse-generator/i18n/id.ts +120 -120
  71. package/src/tool/excuse-generator/i18n/it.ts +120 -120
  72. package/src/tool/excuse-generator/i18n/ja.ts +120 -120
  73. package/src/tool/excuse-generator/i18n/ko.ts +120 -120
  74. package/src/tool/excuse-generator/i18n/nl.ts +120 -120
  75. package/src/tool/excuse-generator/i18n/pl.ts +120 -120
  76. package/src/tool/excuse-generator/i18n/pt.ts +120 -120
  77. package/src/tool/excuse-generator/i18n/ru.ts +120 -120
  78. package/src/tool/excuse-generator/i18n/sv.ts +120 -120
  79. package/src/tool/excuse-generator/i18n/tr.ts +120 -120
  80. package/src/tool/excuse-generator/i18n/zh.ts +120 -120
  81. package/src/tool/excuse-generator/seo.astro +15 -15
  82. package/src/tool/fortune-cookie/bibliography.astro +8 -8
  83. package/src/tool/fortune-cookie/i18n/de.ts +124 -124
  84. package/src/tool/fortune-cookie/i18n/en.ts +124 -124
  85. package/src/tool/fortune-cookie/i18n/es.ts +125 -125
  86. package/src/tool/fortune-cookie/i18n/fr.ts +124 -124
  87. package/src/tool/fortune-cookie/i18n/id.ts +124 -124
  88. package/src/tool/fortune-cookie/i18n/it.ts +124 -124
  89. package/src/tool/fortune-cookie/i18n/ja.ts +124 -124
  90. package/src/tool/fortune-cookie/i18n/ko.ts +124 -124
  91. package/src/tool/fortune-cookie/i18n/nl.ts +124 -124
  92. package/src/tool/fortune-cookie/i18n/pl.ts +124 -124
  93. package/src/tool/fortune-cookie/i18n/pt.ts +124 -124
  94. package/src/tool/fortune-cookie/i18n/ru.ts +124 -124
  95. package/src/tool/fortune-cookie/i18n/sv.ts +124 -124
  96. package/src/tool/fortune-cookie/i18n/tr.ts +124 -124
  97. package/src/tool/fortune-cookie/i18n/zh.ts +124 -124
  98. package/src/tool/fortune-cookie/seo.astro +15 -15
  99. package/src/tool/synesthesia-painter/bibliography.astro +8 -8
  100. package/src/tool/synesthesia-painter/i18n/de.ts +118 -118
  101. package/src/tool/synesthesia-painter/i18n/en.ts +118 -118
  102. package/src/tool/synesthesia-painter/i18n/es.ts +110 -110
  103. package/src/tool/synesthesia-painter/i18n/fr.ts +118 -118
  104. package/src/tool/synesthesia-painter/i18n/id.ts +118 -118
  105. package/src/tool/synesthesia-painter/i18n/it.ts +118 -118
  106. package/src/tool/synesthesia-painter/i18n/ja.ts +118 -118
  107. package/src/tool/synesthesia-painter/i18n/ko.ts +118 -118
  108. package/src/tool/synesthesia-painter/i18n/nl.ts +118 -118
  109. package/src/tool/synesthesia-painter/i18n/pl.ts +118 -118
  110. package/src/tool/synesthesia-painter/i18n/pt.ts +118 -118
  111. package/src/tool/synesthesia-painter/i18n/ru.ts +118 -118
  112. package/src/tool/synesthesia-painter/i18n/sv.ts +118 -118
  113. package/src/tool/synesthesia-painter/i18n/tr.ts +118 -118
  114. package/src/tool/synesthesia-painter/i18n/zh.ts +118 -118
  115. package/src/tool/synesthesia-painter/seo.astro +15 -15
  116. package/src/tool/zalgo-generator/bibliography.astro +8 -8
  117. package/src/tool/zalgo-generator/i18n/de.ts +109 -109
  118. package/src/tool/zalgo-generator/i18n/en.ts +109 -109
  119. package/src/tool/zalgo-generator/i18n/es.ts +109 -109
  120. package/src/tool/zalgo-generator/i18n/fr.ts +109 -109
  121. package/src/tool/zalgo-generator/i18n/id.ts +109 -109
  122. package/src/tool/zalgo-generator/i18n/it.ts +109 -109
  123. package/src/tool/zalgo-generator/i18n/ja.ts +109 -109
  124. package/src/tool/zalgo-generator/i18n/ko.ts +109 -109
  125. package/src/tool/zalgo-generator/i18n/nl.ts +109 -109
  126. package/src/tool/zalgo-generator/i18n/pl.ts +109 -109
  127. package/src/tool/zalgo-generator/i18n/pt.ts +109 -109
  128. package/src/tool/zalgo-generator/i18n/ru.ts +109 -109
  129. package/src/tool/zalgo-generator/i18n/sv.ts +109 -109
  130. package/src/tool/zalgo-generator/i18n/tr.ts +109 -109
  131. package/src/tool/zalgo-generator/i18n/zh.ts +109 -109
  132. package/src/tool/zalgo-generator/seo.astro +15 -15
  133. package/src/types.ts +1 -1
@@ -1,109 +1,109 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import { bibliography } from '../bibliography';
3
- import type { ZalgoGeneratorLocaleContent } from '../index';
4
-
5
- const slug = 'generatore-zalgo';
6
- const title = 'Generatore Zalgo';
7
- const description = 'Corrompi i tuoi messaggi con caratteri Unicode a cascata. Regola l\'intensità e la direzione dell\'effetto glitch.';
8
-
9
- const faq: ZalgoGeneratorLocaleContent['faq'] = [
10
- { question: 'Cos\'è il testo Zalgo?', answer: 'È un tipo di testo che utilizza eccessivamente i caratteri di combinazione Unicode (diacritici). Quando impilati verticalmente, questi caratteri "traboccano" dalla loro linea originale, creando un effetto visivo di corruzione, disordine o orrore popolare nella cultura di Internet.' },
11
- { question: 'Perché il testo Zalgo sembra così strano?', answer: 'Sfrutta una funzione dello standard Unicode che consente l\'aggiunta di segni sopra, sotto o attraverso una lettera di base. Poiché non esiste un limite rigoroso al numero di segni che possono essere aggiunti, il testo può "invadere" le righe superiori o inferiori.' },
12
- { question: 'Posso usare questo testo sui social media?', answer: 'Sì, la maggior parte delle piattaforme moderne (Instagram, Twitter, Discord) supporta Unicode. Tuttavia, alcune reti o dispositivi potrebbero filtrare o troncare i caratteri in eccesso ad intensità molto elevate per mantenere la leggibilità dell\'interfaccia.' },
13
- { question: 'Come posso rimuovere l\'effetto Zalgo dal testo?', answer: 'Per pulire il testo corrotto, puoi usare la normalizzazione delle stringhe JavaScript o semplicemente incollarlo in un editor di testo di base che accetti solo testo normale. Il nostro strumento è puramente creativo e non danneggia il contenuto originale.' },
14
- ];
15
-
16
- const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
17
- { name: 'Scrivi il messaggio base', text: 'Inserisci il testo che vuoi "corrompere" nella casella di testo principale.' },
18
- { name: 'Regola l\'intensità del caos', text: 'Sposta il cursore per definire quanti caratteri di combinazione impilare. Maggiore intensità = più difficile da leggere.' },
19
- { name: 'Seleziona la direzione', text: 'Scegli se la corruzione deve crescere verso l\'alto, verso il basso o in tutte le direzioni contemporaneamente.' },
20
- { name: 'Copia il risultato', text: 'Clicca sul pulsante copia. Il testo risultante include tutti i byte invisibili necessari per mantenere l\'effetto glitch.' },
21
- ];
22
-
23
- const faqSchema: WithContext<FAQPage> = {
24
- '@context': 'https://schema.org',
25
- '@type': 'FAQPage',
26
- mainEntity: faq.map((item) => ({
27
- '@type': 'Question',
28
- name: item.question,
29
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
30
- })),
31
- };
32
-
33
- const howToSchema: WithContext<HowTo> = {
34
- '@context': 'https://schema.org',
35
- '@type': 'HowTo',
36
- name: title,
37
- description,
38
- step: howTo.map((step) => ({
39
- '@type': 'HowToStep',
40
- name: step.name,
41
- text: step.text,
42
- })),
43
- };
44
-
45
- const appSchema: WithContext<SoftwareApplication> = {
46
- '@context': 'https://schema.org',
47
- '@type': 'SoftwareApplication',
48
- name: title,
49
- description,
50
- applicationCategory: 'UtilitiesApplication',
51
- operatingSystem: 'Web',
52
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
53
- inLanguage: 'it',
54
- };
55
-
56
- export const content: ZalgoGeneratorLocaleContent = {
57
- slug,
58
- title,
59
- description,
60
- faqTitle: 'Domande Frequenti',
61
- ui: {
62
- title: 'Generatore Zalgo',
63
- description: 'T̴u̶t̸t̶o̸ ̵è̵ ̸c̸o̸r̶r̶o̸t̷t̶o̷',
64
- inputPlaceholder: 'Scrivi qui il tuo messaggio normale...',
65
- intensityLabel: 'Livello di Corruzione',
66
- outputLabel: 'Risultato Corrotto',
67
- copyBtn: 'Copia il Caos',
68
- copied: 'Copiato!',
69
- faqTitle: 'FAQ',
70
- bibliographyTitle: 'Riferimenti',
71
- configTitle: 'Configurazione',
72
- intensity: 'Intensità',
73
- upLabel: 'Corruzione Superiore',
74
- midLabel: 'Rumore Centrale',
75
- downLabel: 'Corruzione Inferiore',
76
- resetBtn: 'Resetta Valori',
77
- warningText: 'ATTENZIONE: Il testo Zalgo utilizza caratteri Unicode combinati che possono traboccare visivamente dai contenitori. Usa con cautela sui social media.',
78
- previewLabel: 'Anteprima in Tempo Reale',
79
- emptyLabel: 'Vuoto',
80
- charLabel: 'CARATTERI',
81
- noteText: 'Nota: alcuni browser potrebbero limitare la visualizzazione dei caratteri combinati'
82
- },
83
- seo: [
84
- { type: 'title', text: 'Cos\'è il testo Zalgo e come funziona la corruzione visiva?', level: 2 },
85
- { type: 'paragraph', html: 'Il testo Zalgo è una forma di manipolazione tipografica che sfrutta una caratteristica specifica dello standard Unicode: i <strong>caratteri di combinazione</strong>. A differenza dei caratteri normali, questi diacritici non occupano spazio orizzontale: si impilano verticalmente sopra la lettera di base, creando quell\'estetica di "caos digitale" o "orrore cosmico" così popolare nella cultura di Internet.' },
86
- { type: 'title', text: 'Anatomia del processo', level: 3 },
87
- { type: 'paragraph', html: 'Il nostro generatore elabora ogni carattere in modo indipendente, iniettando raffiche casuali di code point Unicode in tre vettori distinti: <strong>superiore</strong> (diacritici che si impilano sopra), <strong>centrale</strong> (che attraversano la lettera) e <strong>inferiore</strong> (che pendono sotto).' },
88
- { type: 'tip', title: 'Algoritmo di corruzione', html: 'Per ogni carattere di base, viene calcolato un <code>conteggio = intensità × 30</code>. Vengono aggiunti altrettanti diacritici casuali in ogni vettore. A un\'intensità di 1,5 puoi ottenere fino a 45 caratteri di combinazione per lettera.' },
89
- { type: 'title', text: 'Etichetta e applicazioni', level: 3 },
90
- { type: 'list', items: [
91
- '<strong>Social Media:</strong> attira l\'attenzione su Instagram o TikTok. Perfetto per bio che cercano di rompere con le convenzioni.',
92
- '<strong>Narrativa Horror:</strong> drammatizza narrazioni di finzione, creepypasta o simulazioni di sistemi compromessi.',
93
- '<strong>Accessibilità:</strong> attenzione - il testo Zalgo non è leggibile dagli screen reader. Usalo solo come decorazione visiva, mai per contenuti critici.',
94
- '<strong>SEO:</strong> non usare mai Zalgo nelle parole chiave principali (H1, meta titoli). I bot di indicizzazione potrebbero non riuscire a normalizzare questi caratteri.',
95
- ]},
96
- { type: 'title', text: 'L\'origine: da Something Awful alla Glitch Art', level: 3 },
97
- { type: 'paragraph', html: 'Zalgo non è nato come generatore, ma come intervento su strisce a fumetti classiche. L\'utente Shmorky, a metà degli anni 2000, iniziò a deformare personaggi come Nancy o Archie, aggiungendo macchie e distorsioni. La frase <strong>"He comes"</strong> (Egli arriva) ha segnato il destino di queste opere, annunciando l\'arrivo di un\'entità che divora la realtà.' },
98
- { type: 'glossary', items: [
99
- { term: 'Carattere di combinazione', definition: 'Un code point Unicode progettato per essere posizionato sopra, sotto o attraverso un carattere di base. Usato legittimamente in lingue come l\'arabo, il vietnamita e l\'hindi.' },
100
- { term: 'Diacritico', definition: 'Un segno aggiunto a una lettera base per modificarne la pronuncia o il significato. Zalgo ne abusa per creare un traboccamento visivo.' },
101
- { term: 'Blocco Unicode', definition: 'Un intervallo contiguo di code point Unicode. I caratteri Zalgo provengono principalmente dal blocco "Combining Diacritical Marks" (U+0300-U+036F).' },
102
- { term: 'Glitch Art', definition: 'Un\'estetica che incorpora o simula intenzionalmente errori, artefatti e corruzioni nei media digitali come tecnica espressiva.' },
103
- ]},
104
- ],
105
- faq,
106
- bibliography,
107
- howTo,
108
- schemas: [faqSchema as any, howToSchema as any, appSchema],
109
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { ZalgoGeneratorLocaleContent } from '../index';
4
+
5
+ const slug = 'generatore-zalgo';
6
+ const title = 'Generatore Zalgo';
7
+ const description = 'Corrompi i tuoi messaggi con caratteri Unicode a cascata. Regola l\'intensità e la direzione dell\'effetto glitch.';
8
+
9
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
10
+ { question: 'Cos\'è il testo Zalgo?', answer: 'È un tipo di testo che utilizza eccessivamente i caratteri di combinazione Unicode (diacritici). Quando impilati verticalmente, questi caratteri "traboccano" dalla loro linea originale, creando un effetto visivo di corruzione, disordine o orrore popolare nella cultura di Internet.' },
11
+ { question: 'Perché il testo Zalgo sembra così strano?', answer: 'Sfrutta una funzione dello standard Unicode che consente l\'aggiunta di segni sopra, sotto o attraverso una lettera di base. Poiché non esiste un limite rigoroso al numero di segni che possono essere aggiunti, il testo può "invadere" le righe superiori o inferiori.' },
12
+ { question: 'Posso usare questo testo sui social media?', answer: 'Sì, la maggior parte delle piattaforme moderne (Instagram, Twitter, Discord) supporta Unicode. Tuttavia, alcune reti o dispositivi potrebbero filtrare o troncare i caratteri in eccesso ad intensità molto elevate per mantenere la leggibilità dell\'interfaccia.' },
13
+ { question: 'Come posso rimuovere l\'effetto Zalgo dal testo?', answer: 'Per pulire il testo corrotto, puoi usare la normalizzazione delle stringhe JavaScript o semplicemente incollarlo in un editor di testo di base che accetti solo testo normale. Il nostro strumento è puramente creativo e non danneggia il contenuto originale.' },
14
+ ];
15
+
16
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
17
+ { name: 'Scrivi il messaggio base', text: 'Inserisci il testo che vuoi "corrompere" nella casella di testo principale.' },
18
+ { name: 'Regola l\'intensità del caos', text: 'Sposta il cursore per definire quanti caratteri di combinazione impilare. Maggiore intensità = più difficile da leggere.' },
19
+ { name: 'Seleziona la direzione', text: 'Scegli se la corruzione deve crescere verso l\'alto, verso il basso o in tutte le direzioni contemporaneamente.' },
20
+ { name: 'Copia il risultato', text: 'Clicca sul pulsante copia. Il testo risultante include tutti i byte invisibili necessari per mantenere l\'effetto glitch.' },
21
+ ];
22
+
23
+ const faqSchema: WithContext<FAQPage> = {
24
+ '@context': 'https://schema.org',
25
+ '@type': 'FAQPage',
26
+ mainEntity: faq.map((item) => ({
27
+ '@type': 'Question',
28
+ name: item.question,
29
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
30
+ })),
31
+ };
32
+
33
+ const howToSchema: WithContext<HowTo> = {
34
+ '@context': 'https://schema.org',
35
+ '@type': 'HowTo',
36
+ name: title,
37
+ description,
38
+ step: howTo.map((step) => ({
39
+ '@type': 'HowToStep',
40
+ name: step.name,
41
+ text: step.text,
42
+ })),
43
+ };
44
+
45
+ const appSchema: WithContext<SoftwareApplication> = {
46
+ '@context': 'https://schema.org',
47
+ '@type': 'SoftwareApplication',
48
+ name: title,
49
+ description,
50
+ applicationCategory: 'UtilitiesApplication',
51
+ operatingSystem: 'Web',
52
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
53
+ inLanguage: 'it',
54
+ };
55
+
56
+ export const content: ZalgoGeneratorLocaleContent = {
57
+ slug,
58
+ title,
59
+ description,
60
+ faqTitle: 'Domande Frequenti',
61
+ ui: {
62
+ title: 'Generatore Zalgo',
63
+ description: 'T̴u̶t̸t̶o̸ ̵è̵ ̸c̸o̸r̶r̶o̸t̷t̶o̷',
64
+ inputPlaceholder: 'Scrivi qui il tuo messaggio normale...',
65
+ intensityLabel: 'Livello di Corruzione',
66
+ outputLabel: 'Risultato Corrotto',
67
+ copyBtn: 'Copia il Caos',
68
+ copied: 'Copiato!',
69
+ faqTitle: 'FAQ',
70
+ bibliographyTitle: 'Riferimenti',
71
+ configTitle: 'Configurazione',
72
+ intensity: 'Intensità',
73
+ upLabel: 'Corruzione Superiore',
74
+ midLabel: 'Rumore Centrale',
75
+ downLabel: 'Corruzione Inferiore',
76
+ resetBtn: 'Resetta Valori',
77
+ warningText: 'ATTENZIONE: Il testo Zalgo utilizza caratteri Unicode combinati che possono traboccare visivamente dai contenitori. Usa con cautela sui social media.',
78
+ previewLabel: 'Anteprima in Tempo Reale',
79
+ emptyLabel: 'Vuoto',
80
+ charLabel: 'CARATTERI',
81
+ noteText: 'Nota: alcuni browser potrebbero limitare la visualizzazione dei caratteri combinati'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Cos\'è il testo Zalgo e come funziona la corruzione visiva?', level: 2 },
85
+ { type: 'paragraph', html: 'Il testo Zalgo è una forma di manipolazione tipografica che sfrutta una caratteristica specifica dello standard Unicode: i <strong>caratteri di combinazione</strong>. A differenza dei caratteri normali, questi diacritici non occupano spazio orizzontale: si impilano verticalmente sopra la lettera di base, creando quell\'estetica di "caos digitale" o "orrore cosmico" così popolare nella cultura di Internet.' },
86
+ { type: 'title', text: 'Anatomia del processo', level: 3 },
87
+ { type: 'paragraph', html: 'Il nostro generatore elabora ogni carattere in modo indipendente, iniettando raffiche casuali di code point Unicode in tre vettori distinti: <strong>superiore</strong> (diacritici che si impilano sopra), <strong>centrale</strong> (che attraversano la lettera) e <strong>inferiore</strong> (che pendono sotto).' },
88
+ { type: 'tip', title: 'Algoritmo di corruzione', html: 'Per ogni carattere di base, viene calcolato un <code>conteggio = intensità × 30</code>. Vengono aggiunti altrettanti diacritici casuali in ogni vettore. A un\'intensità di 1,5 puoi ottenere fino a 45 caratteri di combinazione per lettera.' },
89
+ { type: 'title', text: 'Etichetta e applicazioni', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>Social Media:</strong> attira l\'attenzione su Instagram o TikTok. Perfetto per bio che cercano di rompere con le convenzioni.',
92
+ '<strong>Narrativa Horror:</strong> drammatizza narrazioni di finzione, creepypasta o simulazioni di sistemi compromessi.',
93
+ '<strong>Accessibilità:</strong> attenzione - il testo Zalgo non è leggibile dagli screen reader. Usalo solo come decorazione visiva, mai per contenuti critici.',
94
+ '<strong>SEO:</strong> non usare mai Zalgo nelle parole chiave principali (H1, meta titoli). I bot di indicizzazione potrebbero non riuscire a normalizzare questi caratteri.',
95
+ ]},
96
+ { type: 'title', text: 'L\'origine: da Something Awful alla Glitch Art', level: 3 },
97
+ { type: 'paragraph', html: 'Zalgo non è nato come generatore, ma come intervento su strisce a fumetti classiche. L\'utente Shmorky, a metà degli anni 2000, iniziò a deformare personaggi come Nancy o Archie, aggiungendo macchie e distorsioni. La frase <strong>"He comes"</strong> (Egli arriva) ha segnato il destino di queste opere, annunciando l\'arrivo di un\'entità che divora la realtà.' },
98
+ { type: 'glossary', items: [
99
+ { term: 'Carattere di combinazione', definition: 'Un code point Unicode progettato per essere posizionato sopra, sotto o attraverso un carattere di base. Usato legittimamente in lingue come l\'arabo, il vietnamita e l\'hindi.' },
100
+ { term: 'Diacritico', definition: 'Un segno aggiunto a una lettera base per modificarne la pronuncia o il significato. Zalgo ne abusa per creare un traboccamento visivo.' },
101
+ { term: 'Blocco Unicode', definition: 'Un intervallo contiguo di code point Unicode. I caratteri Zalgo provengono principalmente dal blocco "Combining Diacritical Marks" (U+0300-U+036F).' },
102
+ { term: 'Glitch Art', definition: 'Un\'estetica che incorpora o simula intenzionalmente errori, artefatti e corruzioni nei media digitali come tecnica espressiva.' },
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography,
107
+ howTo,
108
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
109
+ };
@@ -1,109 +1,109 @@
1
- import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
- import { bibliography } from '../bibliography';
3
- import type { ZalgoGeneratorLocaleContent } from '../index';
4
-
5
- const slug = 'zalgo-generator';
6
- const title = 'Zalgoテキスト生成器';
7
- const description = 'カスケード状に溢れ出すUnicode文字でメッセージを破壊します。グリッチ効果の強さと方向を調整できます。';
8
-
9
- const faq: ZalgoGeneratorLocaleContent['faq'] = [
10
- { question: 'Zalgo(ザルゴ)テキストとは何ですか?', answer: 'Unicodeの結合文字(ダイアクリティカルマーク)を過剰に使用したテキストの一種です。これらの文字を垂直方向に積み重ねることで、元の行から「溢れ出し」、インターネット文化で人気の「データの破損」「混乱」「ホラー」といった視覚効果を生み出します。' },
11
- { question: 'なぜZalgoテキストはこれほど奇妙に見えるのですか?', answer: 'Unicode標準の、基底文字の上下や中央に記号を追加できる機能を利用しています。追加できる記号の数に厳密な制限がないため、テキストが上下の行に「侵入」することができるのです。' },
12
- { question: 'SNSでこのテキストを使用できますか?', answer: 'はい。Instagram、Twitter、Discordなど、主要なプラットフォームの多くはUnicodeをサポートしています。ただし、あまりに強度が強い場合、インターフェースの読みやすさを維持するために、一部のネットワークやデバイスでは文字がフィルタリングされたり切り捨てられたりすることがあります。' },
13
- { question: 'テキストからZalgo効果を取り除くにはどうすればいいですか?', answer: '破損したテキストをクリーンにするには、JavaScriptの文字列正規化を使用するか、プレーンテキストのみを受け付ける基本的なテキストエディタに貼り付けてください。このツールはあくまでクリエイティブな目的のものであり、元のコンテンツを破壊することはありません。' },
14
- ];
15
-
16
- const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
17
- { name: 'ベースメッセージを書く', text: 'メインのテキストボックスに「破壊」したいテキストを入力します。' },
18
- { name: 'カオスの強度を調整する', text: 'スライダーを動かして、積み重ねる結合文字の数を決定します。強度が高いほど読みづらくなります。' },
19
- { name: '溢れる方向を選択する', text: '破損を上方向、下方向、あるいは全方向に成長させるかを選択します。' },
20
- { name: '結果をコピーする', text: 'コピーボタンをクリックします。生成されたテキストには、グリッチ効果を維持するために必要なすべての不可視バイトが含まれています。' },
21
- ];
22
-
23
- const faqSchema: WithContext<FAQPage> = {
24
- '@context': 'https://schema.org',
25
- '@type': 'FAQPage',
26
- mainEntity: faq.map((item) => ({
27
- '@type': 'Question',
28
- name: item.question,
29
- acceptedAnswer: { '@type': 'Answer', text: item.answer },
30
- })),
31
- };
32
-
33
- const howToSchema: WithContext<HowTo> = {
34
- '@context': 'https://schema.org',
35
- '@type': 'HowTo',
36
- name: title,
37
- description,
38
- step: howTo.map((step) => ({
39
- '@type': 'HowToStep',
40
- name: step.name,
41
- text: step.text,
42
- })),
43
- };
44
-
45
- const appSchema: WithContext<SoftwareApplication> = {
46
- '@context': 'https://schema.org',
47
- '@type': 'SoftwareApplication',
48
- name: title,
49
- description,
50
- applicationCategory: 'UtilitiesApplication',
51
- operatingSystem: 'Web',
52
- offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
53
- inLanguage: 'ja',
54
- };
55
-
56
- export const content: ZalgoGeneratorLocaleContent = {
57
- slug,
58
- title,
59
- description,
60
- faqTitle: 'よくある質問',
61
- ui: {
62
- title: 'Zalgo生成器',
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: '警告: Zalgoテキストは結合Unicode文字を使用しており、表示上コンテナをはみ出す場合があります。SNSで使用する際は注意してください。',
78
- previewLabel: 'リアルタイムプレビュー',
79
- emptyLabel: '空',
80
- charLabel: '文字',
81
- noteText: '注: 一部のブラウザでは結合文字の描画が制限される場合があります'
82
- },
83
- seo: [
84
- { type: 'title', text: 'Zalgoテキストとは?視覚的な破壊の仕組み', level: 2 },
85
- { type: 'paragraph', html: 'Zalgoテキストは、Unicode標準の特定の機能である<strong>結合文字</strong>を利用したタイポグラフィの操作手法です。通常の文字とは異なり、これらのダイアクリティカルマークは水平方向のスペースを占有せず、基底文字の上に垂直に積み重なり、インターネット文化で人気の高い「デジタルカオス」や「宇宙的恐怖(コズミックホラー)」の美学を生み出します。' },
86
- { type: 'title', text: 'プロセスの解剖学', level: 3 },
87
- { type: 'paragraph', html: '当生成器は各文字を独立して処理し、3つの異なるベクトル(<strong>上方向</strong>:上に積もるマーク、<strong>中央方向</strong>:文字を突き刺すマーク、<strong>下方向</strong>:下にぶら下がるマーク)にランダムなUnicodeコードポイントを注入します。' },
88
- { type: 'tip', title: '破壊アルゴリズム', html: '各基底文字に対して、<code>カウント = 強度 × 30</code> が計算されます。各ベクトルにその数だけランダムな記号が追加されます。強度が1.5の場合、1文字あたり最大45個の結合文字が付与されます。' },
89
- { type: 'title', text: 'マナーと用途', level: 3 },
90
- { type: 'list', items: [
91
- '<strong>SNS:</strong> InstagramやTikTokで注目を集めます。既存の慣習を打ち破りたいプロフィールの自己紹介に最適です。',
92
- '<strong>ホラーストーリー:</strong> フィクションの物語、クリーピーパスタ、または侵害されたシステムのシミュレーションを劇的に演出します。',
93
- '<strong>アクセシビリティ:</strong> 警告 - Zalgoテキストはスクリーンリーダーで読み上げることができません。重要なコンテンツには使用せず、あくまで装飾として使用してください。',
94
- '<strong>SEO:</strong> 主要なキーワード(H1、メタタイトル)には決してZalgoを使用しないでください。検索エンジンがこれらの文字を正常に処理できない可能性があります。'
95
- ]},
96
- { type: 'title', text: '起源:Something Awfulからグリッチアートへ', level: 3 },
97
- { type: 'paragraph', html: 'Zalgoは生成器として始まったのではなく、クラシックなコミック・ストリップ(新聞漫画)への介入として始まりました。2000年代半ば、ユーザーのShmorkyが『Nancy』や『Archie』などのキャラクターを歪ませ、シミや歪みを加えたのが始まりです。<strong>「彼が来る(He comes)」</strong>というフレーズがこれらの作品の運命を決定づけ、現実を食い尽くす存在の到来を予感させました。' },
98
- { type: 'glossary', items: [
99
- { term: '結合文字', definition: '基底文字の上下や中央に配置されるように設計されたUnicodeコードポイント。アラビア語、ベトナム語、ヒンディー語などで正当に使用されています。' },
100
- { term: 'ダイアクリティカルマーク', definition: '発音や意味を変更するために基底文字に追加される記号。Zalgoではこれを視覚的に溢れさせるために悪用します。' },
101
- { term: 'Unicodeブロック', definition: '連続したUnicodeコードポイントの範囲。Zalgo文字の多くは「結合用ダイアクリティカルマーク」ブロック(U+0300-U+036F)から来ています。' },
102
- { term: 'グリッチアート', definition: 'デジタルメディアにおけるエラー、アーティファクト、破損を表現手法として意図的に取り入れたりシミュレートしたりする美学。' }
103
- ]},
104
- ],
105
- faq,
106
- bibliography,
107
- howTo,
108
- schemas: [faqSchema as any, howToSchema as any, appSchema],
109
- };
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
3
+ import type { ZalgoGeneratorLocaleContent } from '../index';
4
+
5
+ const slug = 'zalgo-generator';
6
+ const title = 'Zalgoテキスト生成器';
7
+ const description = 'カスケード状に溢れ出すUnicode文字でメッセージを破壊します。グリッチ効果の強さと方向を調整できます。';
8
+
9
+ const faq: ZalgoGeneratorLocaleContent['faq'] = [
10
+ { question: 'Zalgo(ザルゴ)テキストとは何ですか?', answer: 'Unicodeの結合文字(ダイアクリティカルマーク)を過剰に使用したテキストの一種です。これらの文字を垂直方向に積み重ねることで、元の行から「溢れ出し」、インターネット文化で人気の「データの破損」「混乱」「ホラー」といった視覚効果を生み出します。' },
11
+ { question: 'なぜZalgoテキストはこれほど奇妙に見えるのですか?', answer: 'Unicode標準の、基底文字の上下や中央に記号を追加できる機能を利用しています。追加できる記号の数に厳密な制限がないため、テキストが上下の行に「侵入」することができるのです。' },
12
+ { question: 'SNSでこのテキストを使用できますか?', answer: 'はい。Instagram、Twitter、Discordなど、主要なプラットフォームの多くはUnicodeをサポートしています。ただし、あまりに強度が強い場合、インターフェースの読みやすさを維持するために、一部のネットワークやデバイスでは文字がフィルタリングされたり切り捨てられたりすることがあります。' },
13
+ { question: 'テキストからZalgo効果を取り除くにはどうすればいいですか?', answer: '破損したテキストをクリーンにするには、JavaScriptの文字列正規化を使用するか、プレーンテキストのみを受け付ける基本的なテキストエディタに貼り付けてください。このツールはあくまでクリエイティブな目的のものであり、元のコンテンツを破壊することはありません。' },
14
+ ];
15
+
16
+ const howTo: ZalgoGeneratorLocaleContent['howTo'] = [
17
+ { name: 'ベースメッセージを書く', text: 'メインのテキストボックスに「破壊」したいテキストを入力します。' },
18
+ { name: 'カオスの強度を調整する', text: 'スライダーを動かして、積み重ねる結合文字の数を決定します。強度が高いほど読みづらくなります。' },
19
+ { name: '溢れる方向を選択する', text: '破損を上方向、下方向、あるいは全方向に成長させるかを選択します。' },
20
+ { name: '結果をコピーする', text: 'コピーボタンをクリックします。生成されたテキストには、グリッチ効果を維持するために必要なすべての不可視バイトが含まれています。' },
21
+ ];
22
+
23
+ const faqSchema: WithContext<FAQPage> = {
24
+ '@context': 'https://schema.org',
25
+ '@type': 'FAQPage',
26
+ mainEntity: faq.map((item) => ({
27
+ '@type': 'Question',
28
+ name: item.question,
29
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
30
+ })),
31
+ };
32
+
33
+ const howToSchema: WithContext<HowTo> = {
34
+ '@context': 'https://schema.org',
35
+ '@type': 'HowTo',
36
+ name: title,
37
+ description,
38
+ step: howTo.map((step) => ({
39
+ '@type': 'HowToStep',
40
+ name: step.name,
41
+ text: step.text,
42
+ })),
43
+ };
44
+
45
+ const appSchema: WithContext<SoftwareApplication> = {
46
+ '@context': 'https://schema.org',
47
+ '@type': 'SoftwareApplication',
48
+ name: title,
49
+ description,
50
+ applicationCategory: 'UtilitiesApplication',
51
+ operatingSystem: 'Web',
52
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
53
+ inLanguage: 'ja',
54
+ };
55
+
56
+ export const content: ZalgoGeneratorLocaleContent = {
57
+ slug,
58
+ title,
59
+ description,
60
+ faqTitle: 'よくある質問',
61
+ ui: {
62
+ title: 'Zalgo生成器',
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: '警告: Zalgoテキストは結合Unicode文字を使用しており、表示上コンテナをはみ出す場合があります。SNSで使用する際は注意してください。',
78
+ previewLabel: 'リアルタイムプレビュー',
79
+ emptyLabel: '空',
80
+ charLabel: '文字',
81
+ noteText: '注: 一部のブラウザでは結合文字の描画が制限される場合があります'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Zalgoテキストとは?視覚的な破壊の仕組み', level: 2 },
85
+ { type: 'paragraph', html: 'Zalgoテキストは、Unicode標準の特定の機能である<strong>結合文字</strong>を利用したタイポグラフィの操作手法です。通常の文字とは異なり、これらのダイアクリティカルマークは水平方向のスペースを占有せず、基底文字の上に垂直に積み重なり、インターネット文化で人気の高い「デジタルカオス」や「宇宙的恐怖(コズミックホラー)」の美学を生み出します。' },
86
+ { type: 'title', text: 'プロセスの解剖学', level: 3 },
87
+ { type: 'paragraph', html: '当生成器は各文字を独立して処理し、3つの異なるベクトル(<strong>上方向</strong>:上に積もるマーク、<strong>中央方向</strong>:文字を突き刺すマーク、<strong>下方向</strong>:下にぶら下がるマーク)にランダムなUnicodeコードポイントを注入します。' },
88
+ { type: 'tip', title: '破壊アルゴリズム', html: '各基底文字に対して、<code>カウント = 強度 × 30</code> が計算されます。各ベクトルにその数だけランダムな記号が追加されます。強度が1.5の場合、1文字あたり最大45個の結合文字が付与されます。' },
89
+ { type: 'title', text: 'マナーと用途', level: 3 },
90
+ { type: 'list', items: [
91
+ '<strong>SNS:</strong> InstagramやTikTokで注目を集めます。既存の慣習を打ち破りたいプロフィールの自己紹介に最適です。',
92
+ '<strong>ホラーストーリー:</strong> フィクションの物語、クリーピーパスタ、または侵害されたシステムのシミュレーションを劇的に演出します。',
93
+ '<strong>アクセシビリティ:</strong> 警告 - Zalgoテキストはスクリーンリーダーで読み上げることができません。重要なコンテンツには使用せず、あくまで装飾として使用してください。',
94
+ '<strong>SEO:</strong> 主要なキーワード(H1、メタタイトル)には決してZalgoを使用しないでください。検索エンジンがこれらの文字を正常に処理できない可能性があります。'
95
+ ]},
96
+ { type: 'title', text: '起源:Something Awfulからグリッチアートへ', level: 3 },
97
+ { type: 'paragraph', html: 'Zalgoは生成器として始まったのではなく、クラシックなコミック・ストリップ(新聞漫画)への介入として始まりました。2000年代半ば、ユーザーのShmorkyが『Nancy』や『Archie』などのキャラクターを歪ませ、シミや歪みを加えたのが始まりです。<strong>「彼が来る(He comes)」</strong>というフレーズがこれらの作品の運命を決定づけ、現実を食い尽くす存在の到来を予感させました。' },
98
+ { type: 'glossary', items: [
99
+ { term: '結合文字', definition: '基底文字の上下や中央に配置されるように設計されたUnicodeコードポイント。アラビア語、ベトナム語、ヒンディー語などで正当に使用されています。' },
100
+ { term: 'ダイアクリティカルマーク', definition: '発音や意味を変更するために基底文字に追加される記号。Zalgoではこれを視覚的に溢れさせるために悪用します。' },
101
+ { term: 'Unicodeブロック', definition: '連続したUnicodeコードポイントの範囲。Zalgo文字の多くは「結合用ダイアクリティカルマーク」ブロック(U+0300-U+036F)から来ています。' },
102
+ { term: 'グリッチアート', definition: 'デジタルメディアにおけるエラー、アーティファクト、破損を表現手法として意図的に取り入れたりシミュレートしたりする美学。' }
103
+ ]},
104
+ ],
105
+ faq,
106
+ bibliography,
107
+ howTo,
108
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
109
+ };