@jjlmoya/utils-creative 1.7.0 → 1.8.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 (100) 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/title_quality.test.ts +3 -3
  19. package/src/tool/bead-pattern-generator/i18n/de.ts +115 -0
  20. package/src/tool/bead-pattern-generator/i18n/en.ts +1 -1
  21. package/src/tool/bead-pattern-generator/i18n/es.ts +1 -1
  22. package/src/tool/bead-pattern-generator/i18n/fr.ts +1 -1
  23. package/src/tool/bead-pattern-generator/i18n/id.ts +115 -0
  24. package/src/tool/bead-pattern-generator/i18n/it.ts +115 -0
  25. package/src/tool/bead-pattern-generator/i18n/ja.ts +115 -0
  26. package/src/tool/bead-pattern-generator/i18n/ko.ts +115 -0
  27. package/src/tool/bead-pattern-generator/i18n/nl.ts +115 -0
  28. package/src/tool/bead-pattern-generator/i18n/pl.ts +115 -0
  29. package/src/tool/bead-pattern-generator/i18n/pt.ts +115 -0
  30. package/src/tool/bead-pattern-generator/i18n/ru.ts +115 -0
  31. package/src/tool/bead-pattern-generator/i18n/sv.ts +115 -0
  32. package/src/tool/bead-pattern-generator/i18n/tr.ts +115 -0
  33. package/src/tool/bead-pattern-generator/i18n/zh.ts +115 -0
  34. package/src/tool/bead-pattern-generator/index.ts +12 -0
  35. package/src/tool/dice-roller/i18n/de.ts +138 -0
  36. package/src/tool/dice-roller/i18n/id.ts +138 -0
  37. package/src/tool/dice-roller/i18n/it.ts +138 -0
  38. package/src/tool/dice-roller/i18n/ja.ts +138 -0
  39. package/src/tool/dice-roller/i18n/ko.ts +138 -0
  40. package/src/tool/dice-roller/i18n/nl.ts +138 -0
  41. package/src/tool/dice-roller/i18n/pl.ts +138 -0
  42. package/src/tool/dice-roller/i18n/pt.ts +138 -0
  43. package/src/tool/dice-roller/i18n/ru.ts +138 -0
  44. package/src/tool/dice-roller/i18n/sv.ts +138 -0
  45. package/src/tool/dice-roller/i18n/tr.ts +138 -0
  46. package/src/tool/dice-roller/i18n/zh.ts +138 -0
  47. package/src/tool/dice-roller/index.ts +12 -0
  48. package/src/tool/excuse-generator/i18n/de.ts +122 -0
  49. package/src/tool/excuse-generator/i18n/id.ts +122 -0
  50. package/src/tool/excuse-generator/i18n/it.ts +122 -0
  51. package/src/tool/excuse-generator/i18n/ja.ts +122 -0
  52. package/src/tool/excuse-generator/i18n/ko.ts +122 -0
  53. package/src/tool/excuse-generator/i18n/nl.ts +122 -0
  54. package/src/tool/excuse-generator/i18n/pl.ts +122 -0
  55. package/src/tool/excuse-generator/i18n/pt.ts +122 -0
  56. package/src/tool/excuse-generator/i18n/ru.ts +122 -0
  57. package/src/tool/excuse-generator/i18n/sv.ts +122 -0
  58. package/src/tool/excuse-generator/i18n/tr.ts +122 -0
  59. package/src/tool/excuse-generator/i18n/zh.ts +122 -0
  60. package/src/tool/excuse-generator/index.ts +12 -0
  61. package/src/tool/fortune-cookie/i18n/de.ts +127 -0
  62. package/src/tool/fortune-cookie/i18n/id.ts +127 -0
  63. package/src/tool/fortune-cookie/i18n/it.ts +127 -0
  64. package/src/tool/fortune-cookie/i18n/ja.ts +127 -0
  65. package/src/tool/fortune-cookie/i18n/ko.ts +127 -0
  66. package/src/tool/fortune-cookie/i18n/nl.ts +127 -0
  67. package/src/tool/fortune-cookie/i18n/pl.ts +127 -0
  68. package/src/tool/fortune-cookie/i18n/pt.ts +127 -0
  69. package/src/tool/fortune-cookie/i18n/ru.ts +127 -0
  70. package/src/tool/fortune-cookie/i18n/sv.ts +127 -0
  71. package/src/tool/fortune-cookie/i18n/tr.ts +127 -0
  72. package/src/tool/fortune-cookie/i18n/zh.ts +127 -0
  73. package/src/tool/fortune-cookie/index.ts +12 -0
  74. package/src/tool/synesthesia-painter/i18n/de.ts +122 -0
  75. package/src/tool/synesthesia-painter/i18n/fr.ts +2 -2
  76. package/src/tool/synesthesia-painter/i18n/id.ts +122 -0
  77. package/src/tool/synesthesia-painter/i18n/it.ts +122 -0
  78. package/src/tool/synesthesia-painter/i18n/ja.ts +122 -0
  79. package/src/tool/synesthesia-painter/i18n/ko.ts +122 -0
  80. package/src/tool/synesthesia-painter/i18n/nl.ts +122 -0
  81. package/src/tool/synesthesia-painter/i18n/pl.ts +122 -0
  82. package/src/tool/synesthesia-painter/i18n/pt.ts +122 -0
  83. package/src/tool/synesthesia-painter/i18n/ru.ts +122 -0
  84. package/src/tool/synesthesia-painter/i18n/sv.ts +122 -0
  85. package/src/tool/synesthesia-painter/i18n/tr.ts +122 -0
  86. package/src/tool/synesthesia-painter/i18n/zh.ts +122 -0
  87. package/src/tool/synesthesia-painter/index.ts +12 -0
  88. package/src/tool/zalgo-generator/i18n/de.ts +113 -0
  89. package/src/tool/zalgo-generator/i18n/id.ts +113 -0
  90. package/src/tool/zalgo-generator/i18n/it.ts +113 -0
  91. package/src/tool/zalgo-generator/i18n/ja.ts +113 -0
  92. package/src/tool/zalgo-generator/i18n/ko.ts +113 -0
  93. package/src/tool/zalgo-generator/i18n/nl.ts +113 -0
  94. package/src/tool/zalgo-generator/i18n/pl.ts +113 -0
  95. package/src/tool/zalgo-generator/i18n/pt.ts +113 -0
  96. package/src/tool/zalgo-generator/i18n/ru.ts +113 -0
  97. package/src/tool/zalgo-generator/i18n/sv.ts +113 -0
  98. package/src/tool/zalgo-generator/i18n/tr.ts +113 -0
  99. package/src/tool/zalgo-generator/i18n/zh.ts +113 -0
  100. package/src/tool/zalgo-generator/index.ts +12 -0
@@ -0,0 +1,115 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { BeadPatternGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'gerador-de-padroes-de-contas';
5
+ const title = 'Gerador de Padrões';
6
+ const description = 'Crie pixel art e esquemas de contas para Miyuki ou Hama a partir das suas fotos. Algoritmo de quantização de cores, modo visão de túnel e exportação ZIP.';
7
+
8
+ const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
+ { question: 'O que é a quantização de cores em padrões?', answer: 'É o processo de reduzir os milhares de cores de uma foto a apenas algumas que correspondem às cores reais das contas disponíveis (ex: Miyuki ou Hama). Utilizamos algoritmos inteligentes para manter a semelhança visual com a paleta mínima possível.' },
10
+ { question: 'Posso usar este padrão para ponto de cruz?', answer: 'Sim, o gerador cria um gráfico de grelha perfeitamente compatível com ponto de cruz. Basta escolher um tamanho de grelha que corresponda ao seu tecido (Aida 14, 18, etc.).' },
11
+ { question: 'Qual é a diferença entre contas Miyuki e Hama?', answer: 'As contas Miyuki Delica são contas de vidro muito pequenas e precisas para joalharia. As contas Hama são de plástico e são fundidas com um ferro de engomar. A nossa ferramenta permite ajustar a proporção para que o padrão não se distorça dependendo do material utilizado.' },
12
+ { question: 'Como funciona o algoritmo de dithering?', answer: 'O dithering cria a ilusão de mais cores ao misturar píxeis de diferentes cores em padrões espaçados. Ajuda os gradientes de cor a parecerem mais suaves, mesmo com uma paleta de contas limitada.' },
13
+ ];
14
+
15
+ const howTo: BeadPatternGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Carregue uma imagem nítida', text: 'Selecione uma foto com bom contraste e poucos detalhes pequenos para que o padrão seja mais fácil de seguir.' },
17
+ { name: 'Ajuste o tamanho da grelha', text: 'Defina quantas contas de largura e altura terá a sua peça final. Mais contas = mais detalhe, mas mais dificuldade.' },
18
+ { name: 'Otimize a paleta de cores', text: 'Reduza o número de cores até que correspondam às contas que tem disponíveis no seu kit.' },
19
+ { name: 'Exporte o esquema guia', text: 'Gere o padrão final com códigos de cores para usar como referência enquanto monta as suas contas na placa ou linha.' },
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: BeadPatternGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Perguntas Frequentes',
60
+ bibliographyTitle: 'Bibliografia Artesanal',
61
+ ui: {
62
+ title: 'Laboratório de Padrões',
63
+ subtitle: 'Engenharia de cores para as suas mãos',
64
+ description: 'De foto a esquema de contas.',
65
+ gridSizeLabel: 'Tamanho (Largura)',
66
+ colorCountLabel: 'Cores',
67
+ optionsLabel: 'Opções',
68
+ rulersLabel: 'Réguas',
69
+ symbolsTooltip: 'Padrão Surpresa',
70
+ symbolsLabel: 'Símbolos',
71
+ downloadBtn: 'Descarregar',
72
+ uploadTitle: 'Carregue a Sua Visão',
73
+ uploadSubtitle: 'e deixe a magia digital acontecer',
74
+ paletteTitle: 'ADN Cromático',
75
+ reuploadBtn: 'Alterar Imagem',
76
+ tunnelVisionTitle: 'Visão de Túnel',
77
+ tunnelVisionSubtitle: 'O seu assistente de precisão fila a fila.',
78
+ uploadLabel: 'Carregue a sua foto',
79
+ pixelateBtn: 'Gerar Padrão',
80
+ faqTitle: 'FAQ',
81
+ bibliographyTitle: 'Referências'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Alquimia Digital: Transmuta Píxeis em Arte Tangível', level: 2 },
85
+ { type: 'paragraph', html: 'Bem-vindo ao <strong>Ultimate Pattern Studio</strong>. Um <em>motor de inteligência cromática</em> desenhado para arquitetos de Pixel Art, mestres de Miyuki e visionários de ponto de cruz. A sua ponte entre o digital e o feito à mão.' },
86
+ { type: 'card', icon: 'mdi:grid', title: 'A Grelha Inteligente', html: 'O nosso algoritmo de <strong>subamostragem espacial</strong> não se limita a "encolher" a sua imagem. Analisa a estrutura visual para mapear grupos complexos de píxeis em células individuais, preservando a integridade das silhuetas e arestas como um ilustrador especialista.' },
87
+ { type: 'card', icon: 'mdi:palette', title: 'Quantização de Cores K Means', html: 'Implementamos uma variante do algoritmo <strong>K-Means Clustering</strong> que encontra matematicamente os tons "centróides" da sua imagem. Fidelidade visual surpreendente com uma paleta minimalista de 12, 24 ou 32 cores.' },
88
+ { type: 'title', text: 'Mestria em 3 Passos', level: 3 },
89
+ { type: 'card', icon: 'mdi:image-search', title: 'A Seleção Perfeita', html: 'Procure <strong>alto contraste</strong>, iluminação dramática e formas icónicas. Retratos com fundos limpos, logótipos e vector art traduzem-se maravilhosamente.' },
90
+ { type: 'card', icon: 'mdi:ruler', title: 'Calibração Dimensional', html: '<strong>Miyuki Delica:</strong> 50 contas ≈ 8cm · <strong>Hama Midi:</strong> 50 contas ≈ 25cm · <strong>Ponto de Cruz:</strong> 1 célula = 1 ponto.' },
91
+ { type: 'card', icon: 'mdi:eye-check', title: 'Execução Zen (Modo Visão de Túnel)', html: 'O nosso sistema de <strong>Visão de Túnel</strong> atua como o seu assistente pessoal, diminuindo o ruído visual e destacando cirurgicamente apenas a fila ativa. Concentração absoluta.' },
92
+ { type: 'title', text: 'Telas Infinitas', level: 3 },
93
+ { type: 'list', items: [
94
+ '<strong>Joalharia Têxtil:</strong> Padrões intrincados para teares e pulseiras geométricas.',
95
+ '<strong>Ponto de Cruz:</strong> Esquemas modernos prontos a ser bordados píxel a píxel.',
96
+ '<strong>Mosaicos:</strong> Murais de grande escala utilizando tesselas cerâmicas simplificadas.',
97
+ '<strong>Retro Gaming:</strong> Assets e sprites 8-bit autênticos em segundos.',
98
+ ]},
99
+ { type: 'stats', items: [
100
+ { value: '10–100', label: 'Intervalo de largura de contas', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2–32', label: 'Ranhuras de paleta de cores', icon: 'mdi:palette-swatch' },
102
+ { value: 'K-Means', label: 'Algoritmo de quantização', icon: 'mdi:function-variant' },
103
+ { value: 'ZIP', label: 'Formato de exportação (padrão + guia)', icon: 'mdi:zip-box' },
104
+ ], columns: 4 },
105
+ { type: 'paragraph', html: 'Numa era de ecrãs efémeros, criar algo físico é um ato revolucionário. Esta ferramenta não procura automatizar a arte, mas sim <strong>capacitar o artesão</strong>. Damos-lhe precisão computacional para que as suas mãos possam construir legados duradouros.' },
106
+ ],
107
+ faq,
108
+ bibliography: [
109
+ { name: 'Scikit-Image: Color Quantization using K-Means', url: 'https://scikit-learn.org/0.23/auto_examples/cluster/plot_color_quantization.html' },
110
+ { name: 'Miyuki Delica Beads Specification', url: 'https://www.miyuki-beads.co.jp/english/seedbeads/delica.html' },
111
+ { name: 'Visgraf Lab: Dithering Algorithms', url: 'https://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/floyd_steinberg_dithering.html' },
112
+ ],
113
+ howTo,
114
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
115
+ };
@@ -0,0 +1,115 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { BeadPatternGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'bead-pattern-generator-ru';
5
+ const title = 'Генератор схем';
6
+ const description = 'Создавайте пиксель-арт и схемы для бисероплетения (Miyuki) или термомозаики (Hama) из ваших фотографий. Алгоритм квантования цветов, режим туннельного зрения и экспорт в ZIP.';
7
+
8
+ const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
+ { question: 'Что такое квантование цветов в схемах?', answer: 'Это процесс уменьшения тысяч цветов в фотографии до нескольких, соответствующих реальным доступным цветам бисера (например, Miyuki или Hama). Мы используем интеллектуальные алгоритмы для сохранения визуального сходства при минимальной палитре.' },
10
+ { question: 'Можно ли использовать эту схему для вышивки крестом?', answer: 'Да, генератор создает сетчатую диаграмму, которая идеально подходит для вышивки крестиком. Вам просто нужно выбрать размер сетки, соответствующий вашей ткани (Aida 14, 18 и т. д.).' },
11
+ { question: 'В чем разница между бисером Miyuki и Hama?', answer: 'Бисер Miyuki Delica — это очень мелкий и точный стеклянный бисер для ювелирных изделий. Бисер Hama сделан из пластика и сплавляется утюгом. Наш инструмент позволяет настраивать соотношение сторон, чтобы схема не искажалась в зависимости от используемого материала.' },
12
+ { question: 'Как работает алгоритм дизеринга?', answer: 'Дизеринг создает иллюзию большего количества цветов путем смешивания пикселей разных цветов в разреженных паттернах. Это помогает цветовым градиентам выглядеть более плавными даже при ограниченной палитре бисера.' },
13
+ ];
14
+
15
+ const howTo: BeadPatternGeneratorLocaleContent['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: BeadPatternGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Часто задаваемые вопросы',
60
+ bibliographyTitle: 'Библиография мастера',
61
+ ui: {
62
+ title: 'Лаборатория узоров',
63
+ subtitle: 'Инженерия цвета для ваших рук',
64
+ description: 'От фото к схеме бисероплетения.',
65
+ gridSizeLabel: 'Размер (Ширина)',
66
+ colorCountLabel: 'Цвета',
67
+ optionsLabel: 'Опции',
68
+ rulersLabel: 'Линейки',
69
+ symbolsTooltip: 'Узор-сюрприз',
70
+ symbolsLabel: 'Символы',
71
+ downloadBtn: 'Скачать',
72
+ uploadTitle: 'Загрузите ваше видение',
73
+ uploadSubtitle: 'и позвольте цифровой магии случиться',
74
+ paletteTitle: 'Хроматическая ДНК',
75
+ reuploadBtn: 'Изменить фото',
76
+ tunnelVisionTitle: 'Туннельное зрение',
77
+ tunnelVisionSubtitle: 'Ваш помощник для точной сборки ряд за рядом.',
78
+ uploadLabel: 'Загрузите ваше фото',
79
+ pixelateBtn: 'Создать схему',
80
+ faqTitle: 'FAQ',
81
+ bibliographyTitle: 'Ссылки'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Цифровая алхимия: превращение пикселей в осязаемое искусство', level: 2 },
85
+ { type: 'paragraph', html: 'Добро пожаловать в <strong>Ultimate Pattern Studio</strong>. Это <em>движок хроматического интеллекта</em>, созданный для архитекторов пиксель-арта, мастеров Miyuki и визионеров вышивки крестом. Ваш мост между цифровым и рукотворным миром.' },
86
+ { type: 'card', icon: 'mdi:grid', title: 'Интеллектуальная сетка', html: 'Наш алгоритм <strong>пространственного субсамплинга</strong> не просто «сжимает» ваше изображение. Он анализирует визуальную структуру, чтобы отобразить сложные группы пикселей на отдельные ячейки, сохраняя целостность силуэтов и краев, как это сделал бы опытный иллюстратор.' },
87
+ { type: 'card', icon: 'mdi:palette', title: 'Квантование цвета методом K средних', html: 'Мы используем вариант алгоритма <strong>кластеризации K-средних</strong>, который математически находит «центроидные» тона вашего изображения. Потрясающая визуальная точность при минималистичной палитре из 12, 24 или 32 цветов.' },
88
+ { type: 'title', text: 'Мастерство в 3 шага', level: 3 },
89
+ { type: 'card', icon: 'mdi:image-search', title: 'Идеальный выбор', html: 'Ищите <strong>высокий контраст</strong>, драматическое освещение и знаковые формы. Портреты с чистым фоном, логотипы и векторная графика переводятся великолепно.' },
90
+ { type: 'card', icon: 'mdi:ruler', title: 'Размерная калибровка', html: '<strong>Miyuki Delica:</strong> 50 бисерин ≈ 8 см · <strong>Hama Midi:</strong> 50 бисерин ≈ 25 см · <strong>Вышивка крестом:</strong> 1 ячейка = 1 стежок.' },
91
+ { type: 'card', icon: 'mdi:eye-check', title: 'Дзен исполнение (режим туннельного зрения)', html: 'Наша система <strong>туннельного зрения</strong> выступает в роли вашего личного помощника, приглушая визуальный шум и хирургически выделяя только активный ряд. Абсолютная концентрация.' },
92
+ { type: 'title', text: 'Бесконечные холсты', level: 3 },
93
+ { type: 'list', items: [
94
+ '<strong>Текстильные украшения:</strong> сложные узоры для ткацких станков и геометрические браслеты.',
95
+ '<strong>Вышивка крестом:</strong> современные схемы, готовые к вышиванию пиксель за пикселем.',
96
+ '<strong>Мозаика:</strong> крупномасштабные панно с использованием упрощенной керамической плитки.',
97
+ '<strong>Ретро-гейминг:</strong> аутентичные 8-битные ассеты и спрайты за считанные секунды.',
98
+ ]},
99
+ { type: 'stats', items: [
100
+ { value: '10–100', label: 'Диапазон ширины в бисере', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2–32', label: 'Слоты цветовой палитры', icon: 'mdi:palette-swatch' },
102
+ { value: 'K-Means', label: 'Алгоритм квантования', icon: 'mdi:function-variant' },
103
+ { value: 'ZIP', label: 'Формат экспорта (схема + гид)', icon: 'mdi:zip-box' },
104
+ ], columns: 4 },
105
+ { type: 'paragraph', html: 'В эпоху ускользающих экранов создание чего-то физического — это революционный акт. Этот инструмент не стремится автоматизировать искусство, он призван <strong>расширить возможности мастера</strong>. Мы даем вам вычислительную точность, чтобы ваши руки могли создавать долговечное наследие.' },
106
+ ],
107
+ faq,
108
+ bibliography: [
109
+ { name: 'Scikit-Image: Color Quantization using K-Means', url: 'https://scikit-learn.org/0.23/auto_examples/cluster/plot_color_quantization.html' },
110
+ { name: 'Miyuki Delica Beads Specification', url: 'https://www.miyuki-beads.co.jp/english/seedbeads/delica.html' },
111
+ { name: 'Visgraf Lab: Dithering Algorithms', url: 'https://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/floyd_steinberg_dithering.html' },
112
+ ],
113
+ howTo,
114
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
115
+ };
@@ -0,0 +1,115 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { BeadPatternGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'monstergenerator-for-parlor';
5
+ const title = 'Mönstergenerator';
6
+ const description = 'Skapa pixelkonst och pärlmönster för Miyuki eller Hama från dina foton. Algoritm för färgkvantisering, tunnelvisionsläge och ZIP-export.';
7
+
8
+ const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
+ { question: 'Vad är färgkvantisering i mönster?', answer: 'Det är processen att reducera de tusentals färgerna i ett foto till bara några få som motsvarar de faktiska tillgängliga pärlfärgerna (t.ex. Miyuki eller Hama). Vi använder smarta algoritmer för att bibehålla visuell likhet med minsta möjliga palett.' },
10
+ { question: 'Kan jag använda detta mönster för korsstygn?', answer: 'Ja, generatorn skapar ett rutnätsdiagram som är perfekt kompatibelt med korsstygn. Du behöver bara välja en rutnätsstorlek som matchar din väv (Aida 14, 18, etc.).' },
11
+ { question: 'Vad är skillnaden mellan Miyuki- och Hama-pärlor?', answer: 'Miyuki Delica-pärlor är mycket små, exakta glaspärlor för smyckestillverkning. Hama-pärlor är av plast och smälts samman med ett strykjärn. Vårt verktyg låter dig justera bildförhållandet så att mönstret inte förvrängs beroende på vilket material som används.' },
12
+ { question: 'Hur fungerar dithering-algoritmen?', answer: 'Dithering skapar en illusion av fler färger genom att blanda pixlar av olika färger i glesa mönster. Det hjälper färgtoningar att se mjukare ut även med en begränsad pärlpalett.' },
13
+ ];
14
+
15
+ const howTo: BeadPatternGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Ladda upp en tydlig bild', text: 'Välj ett foto med bra kontrast och få små detaljer så att mönstret blir lättare att följa.' },
17
+ { name: 'Justera rutnätsstorleken', text: 'Definiera hur många pärlor bred och hög din färdiga bit ska vara. Fler pärlor = mer detalj men högre svårighetsgrad.' },
18
+ { name: 'Optimera färgpaletten', text: 'Minska antalet färger tills de matchar pärlorna du har tillgängliga i ditt hobbyset.' },
19
+ { name: 'Exportera guideschemat', text: 'Generera det slutliga mönstret med färgkoder att använda som referens när du monterar dina pärlor på plattan eller tråden.' },
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: BeadPatternGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Vanliga frågor',
60
+ bibliographyTitle: 'Hantverksbibliografi',
61
+ ui: {
62
+ title: 'Mönsterlaboratorium',
63
+ subtitle: 'Färgteknik för dina händer',
64
+ description: 'Från foto till pärlschema.',
65
+ gridSizeLabel: 'Storlek (Bredd)',
66
+ colorCountLabel: 'Färger',
67
+ optionsLabel: 'Alternativ',
68
+ rulersLabel: 'Linjaler',
69
+ symbolsTooltip: 'Överraskningsmönster',
70
+ symbolsLabel: 'Symboler',
71
+ downloadBtn: 'Ladda ner',
72
+ uploadTitle: 'Ladda upp din vision',
73
+ uploadSubtitle: 'och låt den digitala magin ske',
74
+ paletteTitle: 'Kromatisk DNA',
75
+ reuploadBtn: 'Byt bild',
76
+ tunnelVisionTitle: 'Tunnelvision',
77
+ tunnelVisionSubtitle: 'Din precisionsassistent rad för rad.',
78
+ uploadLabel: 'Ladda upp ditt foto',
79
+ pixelateBtn: 'Generera mönster',
80
+ faqTitle: 'FAQ',
81
+ bibliographyTitle: 'Referenser'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Digital alkemi: Förvandla pixlar till påtaglig konst', level: 2 },
85
+ { type: 'paragraph', html: 'Välkommen till <strong>Ultimate Pattern Studio</strong>. En <em>kromatisk intelligensmotor</em> designad för pixelkonst-arkitekter, Miyuki-mästare och korsstygns-visionärer. Din bro mellan det digitala och det handgjorda.' },
86
+ { type: 'card', icon: 'mdi:grid', title: 'Det intelligenta rutnätet', html: 'Vår algoritm för <strong>spatial subsampling</strong> "krymper" inte bara din bild. Den analyserar den visuella strukturen för att mappa komplexa pixelgrupper till individuella celler, vilket bevarar integriteten hos silhuetter och kanter som en expertillustratör.' },
87
+ { type: 'card', icon: 'mdi:palette', title: 'K Means färgkvantisering', html: 'Vi implementerar en variant av <strong>K-Means Clustering</strong>-algoritmen som matematiskt hittar "centroid"-tonerna i din bild. Häpnadsväckande visuell trohet med en minimalistisk palett på 12, 24 eller 32 färger.' },
88
+ { type: 'title', text: 'Mästerskap i 3 steg', level: 3 },
89
+ { type: 'card', icon: 'mdi:image-search', title: 'Det perfekta valet', html: 'Leta efter <strong>hög kontrast</strong>, dramatisk belysning och ikoniska former. Porträtt med rena bakgrunder, logotyper och vektorkonst översätts vackert.' },
90
+ { type: 'card', icon: 'mdi:ruler', title: 'Dimensionell kalibrering', html: '<strong>Miyuki Delica:</strong> 50 pärlor ≈ 8cm · <strong>Hama Midi:</strong> 50 pärlor ≈ 25cm · <strong>Korsstygn:</strong> 1 cell = 1 stygn.' },
91
+ { type: 'card', icon: 'mdi:eye-check', title: 'Zen utförande (Tunnelvisionsläge)', html: 'Vårt <strong>Tunnelvision</strong>-system fungerar som din personliga assistent, dämpar visuellt brus och framhäver kirurgiskt endast den aktiva raden. Absolut koncentration.' },
92
+ { type: 'title', text: 'Oändliga dukar', level: 3 },
93
+ { type: 'list', items: [
94
+ '<strong>Textilsmycken:</strong> Invecklade mönster för vävstolar och geometriska armband.',
95
+ '<strong>Korsstygn:</strong> Moderna scheman redo att broderas pixel för pixel.',
96
+ '<strong>Mosaiker:</strong> Storskaliga väggmålningar med förenklade keramiska tesser.',
97
+ '<strong>Retro Gaming:</strong> Autentiska 8-bitars tillgångar och sprites på några sekunder.',
98
+ ]},
99
+ { type: 'stats', items: [
100
+ { value: '10–100', label: 'Breddintervall (pärlor)', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2–32', label: 'Färgpalettplatser', icon: 'mdi:palette-swatch' },
102
+ { value: 'K-Means', label: 'Kvantiseringsalgoritm', icon: 'mdi:function-variant' },
103
+ { value: 'ZIP', label: 'Exportformat (mönster + guide)', icon: 'mdi:zip-box' },
104
+ ], columns: 4 },
105
+ { type: 'paragraph', html: 'I en tid av flyktiga skärmar är skapandet av något fysiskt en revolutionerande handling. Detta verktyg söker inte efter att automatisera konst, utan att <strong>ge genkraft åt hantverkaren</strong>. Vi ger dig beräkningsprecision så att dina händer kan bygga varaktiga arv.' },
106
+ ],
107
+ faq,
108
+ bibliography: [
109
+ { name: 'Scikit-Image: Color Quantization using K-Means', url: 'https://scikit-learn.org/0.23/auto_examples/cluster/plot_color_quantization.html' },
110
+ { name: 'Miyuki Delica Beads Specification', url: 'https://www.miyuki-beads.co.jp/english/seedbeads/delica.html' },
111
+ { name: 'Visgraf Lab: Dithering Algorithms', url: 'https://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/floyd_steinberg_dithering.html' },
112
+ ],
113
+ howTo,
114
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
115
+ };
@@ -0,0 +1,115 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { BeadPatternGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'boncuk-desen-olusturucu';
5
+ const title = 'Desen Oluşturucu';
6
+ const description = 'Fotoğraflarınızdan Miyuki veya Hama boncukları için piksel sanatı ve desen şemaları oluşturun. Renk niceleme algoritması, tünel görüşü modu ve ZIP dışa aktarma.';
7
+
8
+ const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
+ { question: 'Desenlerde renk niceleme nedir?', answer: 'Bir fotoğraftaki binlerce rengi, mevcut gerçek boncuk renklerine (örneğin Miyuki veya Hama) karşılık gelen sadece birkaç renge indirgeme işlemidir. Mümkün olan en az paletle görsel benzerliği korumak için akıllı algoritmalar kullanıyoruz.' },
10
+ { question: 'Bu deseni kanaviçe için kullanabilir miyim?', answer: 'Evet, oluşturucu kanaviçe ile mükemmel şekilde uyumlu bir ızgara şeması oluşturur. Kumaşınıza (Aida 14, 18 vb.) uygun bir ızgara boyutu seçmeniz yeterlidir.' },
11
+ { question: 'Miyuki ve Hama Boncukları arasındaki fark nedir?', answer: 'Miyuki Delica boncukları, mücevher yapımı için kullanılan çok küçük, hassas cam boncuklardır. Hama Boncukları plastiktir ve ütü ile birbirine kaynaştırılır. Aracımız, kullanılan malzemeye bağlı olarak desenin bozulmaması için en boy oranını ayarlamanıza olanak tanır.' },
12
+ { question: 'Dithering (titretme) algoritması nasıl çalışır?', answer: 'Dithering, farklı renklerdeki pikselleri aralıklı desenlerde karıştırarak daha fazla renk varmış illüzyonu yaratır. Sınırlı bir boncuk paletiyle bile renk geçişlerinin daha pürüzsüz görünmesine yardımcı olur.' },
13
+ ];
14
+
15
+ const howTo: BeadPatternGeneratorLocaleContent['howTo'] = [
16
+ { name: 'Net bir resim yükleyin', text: 'Desen takibinin daha kolay olması için iyi kontrasta sahip ve az küçük detay içeren bir fotoğraf seçin.' },
17
+ { name: 'Izgara boyutunu ayarlayın', text: 'Fiziksel çalışmanızın kaç boncuk genişliğinde ve yüksekliğinde olacağını belirleyin. Daha fazla boncuk = daha fazla detay ama daha fazla zorluk.' },
18
+ { name: 'Renk paletini optimize edin', text: 'Renk sayısını hobi setinizde bulunan boncuklarla eşleşene kadar azaltın.' },
19
+ { name: 'Kılavuz şemayı dışa aktarın', text: 'Boncuklarınızı tahtaya veya ipe dizerken referans olarak kullanmak üzere renk kodlarıyla birlikte nihai deseni oluşturun.' },
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: 'tr',
53
+ };
54
+
55
+ export const content: BeadPatternGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: 'Sıkça Sorulan Sorular',
60
+ bibliographyTitle: 'Zanaatkar Kaynakçası',
61
+ ui: {
62
+ title: 'Desen Laboratuvarı',
63
+ subtitle: 'Elleriniz için renk mühendisliği',
64
+ description: 'Fotoğraftan boncuk şemasına.',
65
+ gridSizeLabel: 'Boyut (Genişlik)',
66
+ colorCountLabel: 'Renk Sayısı',
67
+ optionsLabel: 'Seçenekler',
68
+ rulersLabel: 'Cetveller',
69
+ symbolsTooltip: 'Sürpriz Desen',
70
+ symbolsLabel: 'Semboller',
71
+ downloadBtn: 'İndir',
72
+ uploadTitle: 'Vizyonunuzu Yükleyin',
73
+ uploadSubtitle: 've dijital mucizenin gerçekleşmesine izin verin',
74
+ paletteTitle: 'Kromatik DNA',
75
+ reuploadBtn: 'Resmi Değiştir',
76
+ tunnelVisionTitle: 'Tünel Görüşü',
77
+ tunnelVisionSubtitle: 'Satır satır hassasiyet asistanınız.',
78
+ uploadLabel: 'Fotoğrafınızı yükleyin',
79
+ pixelateBtn: 'Desen Oluştur',
80
+ faqTitle: 'SSS',
81
+ bibliographyTitle: 'Referanslar'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: 'Dijital Simya: Pikselleri Somut Sanata Dönüştürün', level: 2 },
85
+ { type: 'paragraph', html: '<strong>Ultimate Pattern Studio</strong>\'ya hoş geldiniz. Piksel Sanatı mimarları, Miyuki ustaları ve kanaviçe vizyonerleri için tasarlanmış bir <em>kromatik zeka motoru</em>. Dijital ile el yapımı arasındaki köprünüz.' },
86
+ { type: 'card', icon: 'mdi:grid', title: 'Akıllı Izgara', html: '<strong>Uzamsal alt örnekleme</strong> algoritmamız görüntünüzü sadece "küçültmez". Görsel yapıyı analiz ederek karmaşık piksel gruplarını tekil hücrelere eşler, bir uzman illüstratör gibi silüetlerin ve kenarların bütünlüğünü korur.' },
87
+ { type: 'card', icon: 'mdi:palette', title: 'K Means Renk Niceleme', html: 'Görüntünüzün matematiksel olarak "merkez" tonlarını bulan <strong>K-Means Kümeleme</strong> algoritmasının bir varyantını uyguluyoruz. 12, 24 veya 32 renkten oluşan minimalist bir paletle şaşırtıcı görsel sadakat.' },
88
+ { type: 'title', text: '3 Adımda Ustalık', level: 3 },
89
+ { type: 'card', icon: 'mdi:image-search', title: 'Mükemmel Seçim', html: '<strong>Yüksek kontrast</strong>, dramatik aydınlatma ve ikonik şekiller arayın. Temiz arka planlı portreler, logolar ve vektör sanatı harika bir şekilde dönüşür.' },
90
+ { type: 'card', icon: 'mdi:ruler', title: 'Boyutsal Kalibrasyon', html: '<strong>Miyuki Delica:</strong> 50 boncuk ≈ 8cm · <strong>Hama Midi:</strong> 50 boncuk ≈ 25cm · <strong>Kanaviçe:</strong> 1 hücre = 1 ilmek.' },
91
+ { type: 'card', icon: 'mdi:eye-check', title: 'Zen Uygulaması (Tünel Görüşü Modu)', html: '<strong>Tünel Görüşü</strong> sistemimiz görsel gürültüyü azaltarak ve cerrahi olarak sadece aktif satırı vurgulayarak kişisel asistanınız olarak hareket eder. Mutlak konsantrasyon.' },
92
+ { type: 'title', text: 'Sonsuz Tuval', level: 3 },
93
+ { type: 'list', items: [
94
+ '<strong>Tekstil Takıları:</strong> Tezgahlar ve geometrik bilezikler için karmaşık desenler.',
95
+ '<strong>Kanaviçe:</strong> Piksel piksel işlenmeye hazır modern şemalar.',
96
+ '<strong>Mozaikler:</strong> Basitleştirilmiş seramik parçaları kullanılarak yapılan büyük ölçekli duvar resimleri.',
97
+ '<strong>Retro Oyunlar:</strong> Saniyeler içinde otantik 8-bit varlıklar ve sprite\'lar.',
98
+ ]},
99
+ { type: 'stats', items: [
100
+ { value: '10–100', label: 'Boncuk genişliği aralığı', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2–32', label: 'Renk paleti yuvaları', icon: 'mdi:palette-swatch' },
102
+ { value: 'K-Means', label: 'Niceleme algoritması', icon: 'mdi:function-variant' },
103
+ { value: 'ZIP', label: 'Dışa aktarma formatı (desen + kılavuz)', icon: 'mdi:zip-box' },
104
+ ], columns: 4 },
105
+ { type: 'paragraph', html: 'Uçucu ekranlar çağında, fiziksel bir şey yaratmak devrimci bir eylemdir. Bu araç sanatı otomatikleştirmeyi değil, <strong>zanaatkarı güçlendirmeyi</strong> amaçlar. Ellerinizin kalıcı miraslar inşa edebilmesi için size hesaplamalı hassasiyet sağlıyoruz.' },
106
+ ],
107
+ faq,
108
+ bibliography: [
109
+ { name: 'Scikit-Image: Color Quantization using K-Means', url: 'https://scikit-learn.org/0.23/auto_examples/cluster/plot_color_quantization.html' },
110
+ { name: 'Miyuki Delica Beads Specification', url: 'https://www.miyuki-beads.co.jp/english/seedbeads/delica.html' },
111
+ { name: 'Visgraf Lab: Dithering Algorithms', url: 'https://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/floyd_steinberg_dithering.html' },
112
+ ],
113
+ howTo,
114
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
115
+ };
@@ -0,0 +1,115 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { BeadPatternGeneratorLocaleContent } from '../index';
3
+
4
+ const slug = 'bead-pattern-generator-zh';
5
+ const title = '串珠图案生成器';
6
+ const description = '根据您的照片生成适用于 Miyuki(米珠)或 Hama(拼拼豆豆)的像素艺术和串珠方案。包含颜色量化算法、隧道视野模式及 ZIP 导出功能。';
7
+
8
+ const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
+ { question: '图案生成中的“颜色量化”是什么?', answer: '这是将照片中成千上万种颜色减少到仅有的几种的过程,这些颜色对应于实际可用的珠子颜色(如 Miyuki 或 Hama)。我们使用智能算法,在保持视觉相似度的前提下尽可能减少调色板的颜色数量。' },
10
+ { question: '我可以将这个图案用于十字绣吗?', answer: '可以。生成器产生的网格图室与十字绣完美兼容。您只需选择与您的底布(如 Aida 14、18 等)匹配的网格大小。' },
11
+ { question: 'Miyuki 米珠和 Hama 豆豆之间有什么区别?', answer: 'Miyuki Delica 米珠是用于珠宝制作的极小且精密的高品质玻璃珠。Hama 豆豆是塑料材质,通过熨斗加热融合。我们的工具允许您调整纵横比,确保图案不会因所选材质而变形。' },
12
+ { question: '抖动(Dithering)算法是如何工作的?', answer: '抖动算法通过在稀疏图案中混合不同颜色的像素来创造更多颜色的错觉。即使在珠子调色板有限的情况下,它也能帮助颜色渐变看起来更平滑。' },
13
+ ];
14
+
15
+ const howTo: BeadPatternGeneratorLocaleContent['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: 'zh',
53
+ };
54
+
55
+ export const content: BeadPatternGeneratorLocaleContent = {
56
+ slug,
57
+ title,
58
+ description,
59
+ faqTitle: '常见问题解答',
60
+ bibliographyTitle: '工匠参考文献',
61
+ ui: {
62
+ title: '图案实验室',
63
+ subtitle: '指尖上的色彩工程',
64
+ description: '从照片到串珠方案。',
65
+ gridSizeLabel: '尺寸(宽度)',
66
+ colorCountLabel: '颜色数量',
67
+ optionsLabel: '选项',
68
+ rulersLabel: '标尺',
69
+ symbolsTooltip: '惊喜图案',
70
+ symbolsLabel: '符号',
71
+ downloadBtn: '下载',
72
+ uploadTitle: '上传您的构思',
73
+ uploadSubtitle: '开启数字魔法',
74
+ paletteTitle: '色彩 DNA',
75
+ reuploadBtn: '更换图片',
76
+ tunnelVisionTitle: '隧道视野',
77
+ tunnelVisionSubtitle: '逐行辅助,助您精确组装。',
78
+ uploadLabel: '上传照片',
79
+ pixelateBtn: '生成图案',
80
+ faqTitle: '常见问题',
81
+ bibliographyTitle: '参考资料'
82
+ },
83
+ seo: [
84
+ { type: 'title', text: '数字炼金术:将像素转化为触手可及的艺术', level: 2 },
85
+ { type: 'paragraph', html: '欢迎来到<strong>终极图案工作室</strong>。这是一个专为像素艺术架构师、Miyuki 大师和十字绣远见者设计的<em>色彩智能引擎</em>。它是连接数字世界与手工艺术的桥梁。' },
86
+ { type: 'card', icon: 'mdi:grid', title: '智能网格', html: '我们的<strong>空间下采样</strong>算法不仅是单纯地“缩小”图片。它会分析视觉结构,将复杂的像素群映射到单个单元格中,像专家插画师一样保留轮廓和边缘的完整性。' },
87
+ { type: 'card', icon: 'mdi:palette', title: 'K Means 颜色量化', html: '我们采用了一种 <strong>K-Means 聚类</strong>算法的变体,通过数学计算找出图像的“主导”色调。即便在只有 12、24 或 32 色的极简调色板下,也能实现惊人的视觉忠实度。' },
88
+ { type: 'title', text: '大师三部曲', level: 3 },
89
+ { type: 'card', icon: 'mdi:image-search', title: '完美选择', html: '寻找<strong>高对比度</strong>、极具戏剧性的光影以及标志性形状。背景简单的肖像、Logo 和矢量艺术都能获得极佳的转换效果。' },
90
+ { type: 'card', icon: 'mdi:ruler', title: '尺寸校准', html: '<strong>Miyuki Delica:</strong> 50 颗珠子 ≈ 8 厘米 · <strong>Hama Midi:</strong> 50 颗珠子 ≈ 25 厘米 · <strong>十字绣:</strong> 1 个单元格 = 1 针。' },
91
+ { type: 'card', icon: 'mdi:eye-check', title: '禅式执行(隧道视野模式)', html: '我们的<strong>隧道视野</strong>系统充当您的个人助手,消除视觉干扰,精准高亮显示当前操作行。为您提供绝对的专注。' },
92
+ { type: 'title', text: '无限画布', level: 3 },
93
+ { type: 'list', items: [
94
+ '<strong>纺织珠宝:</strong> 用于织布机和几何手链的精密图案。',
95
+ '<strong>十字绣:</strong> 现代风格方案,可逐个像素进行绣制。',
96
+ '<strong>马赛克:</strong> 使用简化的陶瓷细工制作的大型壁画。',
97
+ '<strong>复古游戏:</strong> 数秒内即可生成地道的 8 位资产和精灵图。',
98
+ ]},
99
+ { type: 'stats', items: [
100
+ { value: '10–100', label: '珠子宽度范围', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2–32', label: '调色板槽位', icon: 'mdi:palette-swatch' },
102
+ { value: 'K-Means', label: '量化算法', icon: 'mdi:function-variant' },
103
+ { value: 'ZIP', label: '导出格式(图案 + 引导)', icon: 'mdi:zip-box' },
104
+ ], columns: 4 },
105
+ { type: 'paragraph', html: '在转瞬即逝的屏幕时代,亲手创造实体作品是一种革命性的行为。本工具不致力于取代艺术,而是旨在<strong>赋能工匠</strong>。我们为您提供计算精度,助您的双手打造持久的传承。' },
106
+ ],
107
+ faq,
108
+ bibliography: [
109
+ { name: 'Scikit-Image: Color Quantization using K-Means', url: 'https://scikit-learn.org/0.23/auto_examples/cluster/plot_color_quantization.html' },
110
+ { name: 'Miyuki Delica Beads Specification', url: 'https://www.miyuki-beads.co.jp/english/seedbeads/delica.html' },
111
+ { name: 'Visgraf Lab: Dithering Algorithms', url: 'https://www.visgraf.impa.br/Courses/ip00/proj/Dithering1/floyd_steinberg_dithering.html' },
112
+ ],
113
+ howTo,
114
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
115
+ };
@@ -36,6 +36,18 @@ export const beadPatternGenerator: CreativeToolEntry<BeadPatternGeneratorUI> = {
36
36
  es: () => import('./i18n/es').then((m) => m.content),
37
37
  en: () => import('./i18n/en').then((m) => m.content),
38
38
  fr: () => import('./i18n/fr').then((m) => m.content),
39
+ de: () => import('./i18n/de').then((m) => m.content),
40
+ id: () => import('./i18n/id').then((m) => m.content),
41
+ it: () => import('./i18n/it').then((m) => m.content),
42
+ ja: () => import('./i18n/ja').then((m) => m.content),
43
+ ko: () => import('./i18n/ko').then((m) => m.content),
44
+ nl: () => import('./i18n/nl').then((m) => m.content),
45
+ pl: () => import('./i18n/pl').then((m) => m.content),
46
+ pt: () => import('./i18n/pt').then((m) => m.content),
47
+ ru: () => import('./i18n/ru').then((m) => m.content),
48
+ sv: () => import('./i18n/sv').then((m) => m.content),
49
+ tr: () => import('./i18n/tr').then((m) => m.content),
50
+ zh: () => import('./i18n/zh').then((m) => m.content),
39
51
  },
40
52
  };
41
53