@jjlmoya/utils-creative 1.20.0 → 1.22.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 (148) hide show
  1. package/package.json +4 -2
  2. package/src/category/i18n/de.ts +1 -1
  3. package/src/category/i18n/ru.ts +1 -1
  4. package/src/data.ts +2 -1
  5. package/src/entries.ts +3 -1
  6. package/src/index.ts +3 -0
  7. package/src/layouts/PreviewLayout.astro +7 -2
  8. package/src/tests/diacritics_density.test.ts +118 -0
  9. package/src/tests/inverted_punctuation.test.ts +84 -0
  10. package/src/tests/locale_completeness.test.ts +2 -14
  11. package/src/tests/no_en_dash.test.ts +70 -0
  12. package/src/tests/pagespeed_best_practices.test.ts +198 -0
  13. package/src/tests/script_density.test.ts +94 -0
  14. package/src/tests/tool_validation.test.ts +2 -2
  15. package/src/tool/bead-pattern-generator/bibliography.astro +2 -12
  16. package/src/tool/bead-pattern-generator/bibliography.ts +5 -0
  17. package/src/tool/bead-pattern-generator/component.astro +2 -2
  18. package/src/tool/bead-pattern-generator/entry.ts +0 -1
  19. package/src/tool/bead-pattern-generator/i18n/de.ts +4 -8
  20. package/src/tool/bead-pattern-generator/i18n/en.ts +4 -8
  21. package/src/tool/bead-pattern-generator/i18n/es.ts +4 -8
  22. package/src/tool/bead-pattern-generator/i18n/fr.ts +5 -9
  23. package/src/tool/bead-pattern-generator/i18n/id.ts +4 -8
  24. package/src/tool/bead-pattern-generator/i18n/it.ts +4 -8
  25. package/src/tool/bead-pattern-generator/i18n/ja.ts +4 -8
  26. package/src/tool/bead-pattern-generator/i18n/ko.ts +4 -8
  27. package/src/tool/bead-pattern-generator/i18n/nl.ts +4 -8
  28. package/src/tool/bead-pattern-generator/i18n/pl.ts +4 -8
  29. package/src/tool/bead-pattern-generator/i18n/pt.ts +4 -8
  30. package/src/tool/bead-pattern-generator/i18n/ru.ts +8 -12
  31. package/src/tool/bead-pattern-generator/i18n/sv.ts +4 -8
  32. package/src/tool/bead-pattern-generator/i18n/tr.ts +4 -8
  33. package/src/tool/bead-pattern-generator/i18n/zh.ts +7 -11
  34. package/src/tool/dice-roller/bibliography.astro +3 -12
  35. package/src/tool/dice-roller/bibliography.ts +5 -0
  36. package/src/tool/dice-roller/entry.ts +0 -1
  37. package/src/tool/dice-roller/i18n/de.ts +12 -16
  38. package/src/tool/dice-roller/i18n/en.ts +12 -16
  39. package/src/tool/dice-roller/i18n/es.ts +11 -15
  40. package/src/tool/dice-roller/i18n/fr.ts +18 -22
  41. package/src/tool/dice-roller/i18n/id.ts +12 -16
  42. package/src/tool/dice-roller/i18n/it.ts +11 -15
  43. package/src/tool/dice-roller/i18n/ja.ts +9 -13
  44. package/src/tool/dice-roller/i18n/ko.ts +10 -14
  45. package/src/tool/dice-roller/i18n/nl.ts +12 -16
  46. package/src/tool/dice-roller/i18n/pl.ts +11 -15
  47. package/src/tool/dice-roller/i18n/pt.ts +12 -16
  48. package/src/tool/dice-roller/i18n/ru.ts +18 -22
  49. package/src/tool/dice-roller/i18n/sv.ts +12 -16
  50. package/src/tool/dice-roller/i18n/tr.ts +10 -14
  51. package/src/tool/dice-roller/i18n/zh.ts +16 -20
  52. package/src/tool/excuse-generator/bibliography.astro +2 -12
  53. package/src/tool/excuse-generator/bibliography.ts +3 -0
  54. package/src/tool/excuse-generator/entry.ts +0 -1
  55. package/src/tool/excuse-generator/i18n/de.ts +7 -9
  56. package/src/tool/excuse-generator/i18n/en.ts +2 -4
  57. package/src/tool/excuse-generator/i18n/es.ts +2 -4
  58. package/src/tool/excuse-generator/i18n/fr.ts +4 -6
  59. package/src/tool/excuse-generator/i18n/id.ts +2 -4
  60. package/src/tool/excuse-generator/i18n/it.ts +2 -4
  61. package/src/tool/excuse-generator/i18n/ja.ts +2 -4
  62. package/src/tool/excuse-generator/i18n/ko.ts +2 -4
  63. package/src/tool/excuse-generator/i18n/nl.ts +2 -4
  64. package/src/tool/excuse-generator/i18n/pl.ts +7 -9
  65. package/src/tool/excuse-generator/i18n/pt.ts +2 -4
  66. package/src/tool/excuse-generator/i18n/ru.ts +7 -9
  67. package/src/tool/excuse-generator/i18n/sv.ts +2 -4
  68. package/src/tool/excuse-generator/i18n/tr.ts +2 -4
  69. package/src/tool/excuse-generator/i18n/zh.ts +9 -11
  70. package/src/tool/fortune-cookie/bibliography.astro +2 -12
  71. package/src/tool/fortune-cookie/bibliography.ts +3 -0
  72. package/src/tool/fortune-cookie/component.astro +7 -10
  73. package/src/tool/fortune-cookie/entry.ts +0 -1
  74. package/src/tool/fortune-cookie/i18n/de.ts +6 -9
  75. package/src/tool/fortune-cookie/i18n/en.ts +6 -9
  76. package/src/tool/fortune-cookie/i18n/es.ts +2 -4
  77. package/src/tool/fortune-cookie/i18n/fr.ts +7 -10
  78. package/src/tool/fortune-cookie/i18n/id.ts +6 -9
  79. package/src/tool/fortune-cookie/i18n/it.ts +3 -6
  80. package/src/tool/fortune-cookie/i18n/ja.ts +2 -5
  81. package/src/tool/fortune-cookie/i18n/ko.ts +2 -5
  82. package/src/tool/fortune-cookie/i18n/nl.ts +6 -9
  83. package/src/tool/fortune-cookie/i18n/pl.ts +6 -9
  84. package/src/tool/fortune-cookie/i18n/pt.ts +6 -9
  85. package/src/tool/fortune-cookie/i18n/ru.ts +17 -20
  86. package/src/tool/fortune-cookie/i18n/sv.ts +6 -9
  87. package/src/tool/fortune-cookie/i18n/tr.ts +5 -8
  88. package/src/tool/fortune-cookie/i18n/zh.ts +7 -10
  89. package/src/tool/glitch-image-distorter/bibliography.astro +8 -0
  90. package/src/tool/glitch-image-distorter/bibliography.ts +4 -0
  91. package/src/tool/glitch-image-distorter/component.astro +393 -0
  92. package/src/tool/glitch-image-distorter/entry.ts +48 -0
  93. package/src/tool/glitch-image-distorter/glitch-image-distorter.css +233 -0
  94. package/src/tool/glitch-image-distorter/i18n/de.ts +131 -0
  95. package/src/tool/glitch-image-distorter/i18n/en.ts +131 -0
  96. package/src/tool/glitch-image-distorter/i18n/es.ts +131 -0
  97. package/src/tool/glitch-image-distorter/i18n/fr.ts +131 -0
  98. package/src/tool/glitch-image-distorter/i18n/id.ts +131 -0
  99. package/src/tool/glitch-image-distorter/i18n/it.ts +131 -0
  100. package/src/tool/glitch-image-distorter/i18n/ja.ts +131 -0
  101. package/src/tool/glitch-image-distorter/i18n/ko.ts +131 -0
  102. package/src/tool/glitch-image-distorter/i18n/nl.ts +131 -0
  103. package/src/tool/glitch-image-distorter/i18n/pl.ts +131 -0
  104. package/src/tool/glitch-image-distorter/i18n/pt.ts +131 -0
  105. package/src/tool/glitch-image-distorter/i18n/ru.ts +131 -0
  106. package/src/tool/glitch-image-distorter/i18n/sv.ts +131 -0
  107. package/src/tool/glitch-image-distorter/i18n/tr.ts +131 -0
  108. package/src/tool/glitch-image-distorter/i18n/zh.ts +131 -0
  109. package/src/tool/glitch-image-distorter/index.ts +9 -0
  110. package/src/tool/glitch-image-distorter/seo.astro +15 -0
  111. package/src/tool/synesthesia-painter/bibliography.astro +3 -12
  112. package/src/tool/synesthesia-painter/bibliography.ts +5 -0
  113. package/src/tool/synesthesia-painter/entry.ts +0 -1
  114. package/src/tool/synesthesia-painter/i18n/de.ts +14 -18
  115. package/src/tool/synesthesia-painter/i18n/en.ts +5 -9
  116. package/src/tool/synesthesia-painter/i18n/es.ts +4 -8
  117. package/src/tool/synesthesia-painter/i18n/fr.ts +10 -14
  118. package/src/tool/synesthesia-painter/i18n/id.ts +5 -9
  119. package/src/tool/synesthesia-painter/i18n/it.ts +2 -6
  120. package/src/tool/synesthesia-painter/i18n/ja.ts +4 -8
  121. package/src/tool/synesthesia-painter/i18n/ko.ts +4 -8
  122. package/src/tool/synesthesia-painter/i18n/nl.ts +4 -8
  123. package/src/tool/synesthesia-painter/i18n/pl.ts +14 -18
  124. package/src/tool/synesthesia-painter/i18n/pt.ts +5 -9
  125. package/src/tool/synesthesia-painter/i18n/ru.ts +17 -21
  126. package/src/tool/synesthesia-painter/i18n/sv.ts +5 -9
  127. package/src/tool/synesthesia-painter/i18n/tr.ts +4 -8
  128. package/src/tool/synesthesia-painter/i18n/zh.ts +15 -19
  129. package/src/tool/zalgo-generator/bibliography.astro +2 -12
  130. package/src/tool/zalgo-generator/bibliography.ts +5 -0
  131. package/src/tool/zalgo-generator/component.astro +1 -1
  132. package/src/tool/zalgo-generator/entry.ts +0 -1
  133. package/src/tool/zalgo-generator/i18n/de.ts +9 -13
  134. package/src/tool/zalgo-generator/i18n/en.ts +5 -9
  135. package/src/tool/zalgo-generator/i18n/es.ts +4 -8
  136. package/src/tool/zalgo-generator/i18n/fr.ts +9 -13
  137. package/src/tool/zalgo-generator/i18n/id.ts +5 -9
  138. package/src/tool/zalgo-generator/i18n/it.ts +4 -8
  139. package/src/tool/zalgo-generator/i18n/ja.ts +4 -8
  140. package/src/tool/zalgo-generator/i18n/ko.ts +4 -8
  141. package/src/tool/zalgo-generator/i18n/nl.ts +5 -9
  142. package/src/tool/zalgo-generator/i18n/pl.ts +9 -13
  143. package/src/tool/zalgo-generator/i18n/pt.ts +5 -9
  144. package/src/tool/zalgo-generator/i18n/ru.ts +9 -13
  145. package/src/tool/zalgo-generator/i18n/sv.ts +5 -9
  146. package/src/tool/zalgo-generator/i18n/tr.ts +5 -9
  147. package/src/tool/zalgo-generator/i18n/zh.ts +9 -13
  148. package/src/tools.ts +2 -0
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { BeadPatternGeneratorLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'generator-skhem';
@@ -8,7 +9,7 @@ const description = 'Создавайте пиксель-арт и схемы д
8
9
  const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
10
  { question: 'Что такое квантование цветов в схемах?', answer: 'Это процесс уменьшения тысяч цветов в фотографии до нескольких, соответствующих реальным доступным цветам бисера (например, Miyuki или Hama). Мы используем интеллектуальные алгоритмы для сохранения визуального сходства при минимальной палитре.' },
10
11
  { question: 'Можно ли использовать эту схему для вышивки крестом?', answer: 'Да, генератор создает сетчатую диаграмму, которая идеально подходит для вышивки крестиком. Вам просто нужно выбрать размер сетки, соответствующий вашей ткани (Aida 14, 18 и т. д.).' },
11
- { question: 'В чем разница между бисером Miyuki и Hama?', answer: 'Бисер Miyuki Delica это очень мелкий и точный стеклянный бисер для ювелирных изделий. Бисер Hama сделан из пластика и сплавляется утюгом. Наш инструмент позволяет настраивать соотношение сторон, чтобы схема не искажалась в зависимости от используемого материала.' },
12
+ { question: 'В чем разница между бисером Miyuki и Hama?', answer: 'Бисер Miyuki Delica - это очень мелкий и точный стеклянный бисер для ювелирных изделий. Бисер Hama сделан из пластика и сплавляется утюгом. Наш инструмент позволяет настраивать соотношение сторон, чтобы схема не искажалась в зависимости от используемого материала.' },
12
13
  { question: 'Как работает алгоритм дизеринга?', answer: 'Дизеринг создает иллюзию большего количества цветов путем смешивания пикселей разных цветов в разреженных паттернах. Это помогает цветовым градиентам выглядеть более плавными даже при ограниченной палитре бисера.' },
13
14
  ];
14
15
 
@@ -57,7 +58,6 @@ export const content: BeadPatternGeneratorLocaleContent = {
57
58
  title,
58
59
  description,
59
60
  faqTitle: 'Часто задаваемые вопросы',
60
- bibliographyTitle: 'Библиография мастера',
61
61
  ui: {
62
62
  title: 'Лаборатория узоров',
63
63
  subtitle: 'Инженерия цвета для ваших рук',
@@ -83,8 +83,8 @@ export const content: BeadPatternGeneratorLocaleContent = {
83
83
  seo: [
84
84
  { type: 'title', text: 'Цифровая алхимия: превращение пикселей в осязаемое искусство', level: 2 },
85
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 цветов.' },
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
88
  { type: 'title', text: 'Мастерство в 3 шага', level: 3 },
89
89
  { type: 'card', icon: 'mdi:image-search', title: 'Идеальный выбор', html: 'Ищите <strong>высокий контраст</strong>, драматическое освещение и знаковые формы. Портреты с чистым фоном, логотипы и векторная графика переводятся великолепно.' },
90
90
  { type: 'card', icon: 'mdi:ruler', title: 'Размерная калибровка', html: '<strong>Miyuki Delica:</strong> 50 бисерин ≈ 8 см · <strong>Hama Midi:</strong> 50 бисерин ≈ 25 см · <strong>Вышивка крестом:</strong> 1 ячейка = 1 стежок.' },
@@ -97,19 +97,15 @@ export const content: BeadPatternGeneratorLocaleContent = {
97
97
  '<strong>Ретро-гейминг:</strong> аутентичные 8-битные ассеты и спрайты за считанные секунды.',
98
98
  ]},
99
99
  { type: 'stats', items: [
100
- { value: '10100', label: 'Диапазон ширины в бисере', icon: 'mdi:arrow-expand-horizontal' },
101
- { value: '232', label: 'Слоты цветовой палитры', icon: 'mdi:palette-swatch' },
100
+ { value: '10-100', label: 'Диапазон ширины в бисере', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2-32', label: 'Слоты цветовой палитры', icon: 'mdi:palette-swatch' },
102
102
  { value: 'K-Means', label: 'Алгоритм квантования', icon: 'mdi:function-variant' },
103
103
  { value: 'ZIP', label: 'Формат экспорта (схема + гид)', icon: 'mdi:zip-box' },
104
104
  ], columns: 4 },
105
- { type: 'paragraph', html: 'В эпоху ускользающих экранов создание чего-то физического это революционный акт. Этот инструмент не стремится автоматизировать искусство, он призван <strong>расширить возможности мастера</strong>. Мы даем вам вычислительную точность, чтобы ваши руки могли создавать долговечное наследие.' },
105
+ { type: 'paragraph', html: 'В эпоху ускользающих экранов создание чего-то физического - это революционный акт. Этот инструмент не стремится автоматизировать искусство, он призван <strong>расширить возможности мастера</strong>. Мы даем вам вычислительную точность, чтобы ваши руки могли создавать долговечное наследие.' },
106
106
  ],
107
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
- ],
108
+ bibliography,
113
109
  howTo,
114
110
  schemas: [faqSchema as any, howToSchema as any, appSchema],
115
111
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { BeadPatternGeneratorLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'monstergenerator-for-parlor';
@@ -57,7 +58,6 @@ export const content: BeadPatternGeneratorLocaleContent = {
57
58
  title,
58
59
  description,
59
60
  faqTitle: 'Vanliga frågor',
60
- bibliographyTitle: 'Hantverksbibliografi',
61
61
  ui: {
62
62
  title: 'Mönsterlaboratorium',
63
63
  subtitle: 'Färgteknik för dina händer',
@@ -97,19 +97,15 @@ export const content: BeadPatternGeneratorLocaleContent = {
97
97
  '<strong>Retro Gaming:</strong> Autentiska 8-bitars tillgångar och sprites på några sekunder.',
98
98
  ]},
99
99
  { type: 'stats', items: [
100
- { value: '10100', label: 'Breddintervall (pärlor)', icon: 'mdi:arrow-expand-horizontal' },
101
- { value: '232', label: 'Färgpalettplatser', icon: 'mdi:palette-swatch' },
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
102
  { value: 'K-Means', label: 'Kvantiseringsalgoritm', icon: 'mdi:function-variant' },
103
103
  { value: 'ZIP', label: 'Exportformat (mönster + guide)', icon: 'mdi:zip-box' },
104
104
  ], columns: 4 },
105
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
106
  ],
107
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
- ],
108
+ bibliography,
113
109
  howTo,
114
110
  schemas: [faqSchema as any, howToSchema as any, appSchema],
115
111
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { BeadPatternGeneratorLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'boncuk-desen-olusturucu';
@@ -57,7 +58,6 @@ export const content: BeadPatternGeneratorLocaleContent = {
57
58
  title,
58
59
  description,
59
60
  faqTitle: 'Sıkça Sorulan Sorular',
60
- bibliographyTitle: 'Zanaatkar Kaynakçası',
61
61
  ui: {
62
62
  title: 'Desen Laboratuvarı',
63
63
  subtitle: 'Elleriniz için renk mühendisliği',
@@ -97,19 +97,15 @@ export const content: BeadPatternGeneratorLocaleContent = {
97
97
  '<strong>Retro Oyunlar:</strong> Saniyeler içinde otantik 8-bit varlıklar ve sprite\'lar.',
98
98
  ]},
99
99
  { type: 'stats', items: [
100
- { value: '10100', label: 'Boncuk genişliği aralığı', icon: 'mdi:arrow-expand-horizontal' },
101
- { value: '232', label: 'Renk paleti yuvaları', icon: 'mdi:palette-swatch' },
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
102
  { value: 'K-Means', label: 'Niceleme algoritması', icon: 'mdi:function-variant' },
103
103
  { value: 'ZIP', label: 'Dışa aktarma formatı (desen + kılavuz)', icon: 'mdi:zip-box' },
104
104
  ], columns: 4 },
105
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
106
  ],
107
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
- ],
108
+ bibliography,
113
109
  howTo,
114
110
  schemas: [faqSchema as any, howToSchema as any, appSchema],
115
111
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { BeadPatternGeneratorLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'bead-pattern-generator';
@@ -6,7 +7,7 @@ const title = '串珠图案生成器';
6
7
  const description = '根据您的照片生成适用于 Miyuki(米珠)或 Hama(拼拼豆豆)的像素艺术和串珠方案。包含颜色量化算法、隧道视野模式及 ZIP 导出功能。';
7
8
 
8
9
  const faq: BeadPatternGeneratorLocaleContent['faq'] = [
9
- { question: '图案生成中的“颜色量化”是什么?', answer: '这是将照片中成千上万种颜色减少到仅有的几种的过程,这些颜色对应于实际可用的珠子颜色(如 Miyuki 或 Hama)。我们使用智能算法,在保持视觉相似度的前提下尽可能减少调色板的颜色数量。' },
10
+ { question: '图案生成中的\"颜色量化\"是什么?', answer: '这是将照片中成千上万种颜色减少到仅有的几种的过程,这些颜色对应于实际可用的珠子颜色(如 Miyuki 或 Hama)。我们使用智能算法,在保持视觉相似度的前提下尽可能减少调色板的颜色数量。' },
10
11
  { question: '我可以将这个图案用于十字绣吗?', answer: '可以。生成器产生的网格图室与十字绣完美兼容。您只需选择与您的底布(如 Aida 14、18 等)匹配的网格大小。' },
11
12
  { question: 'Miyuki 米珠和 Hama 豆豆之间有什么区别?', answer: 'Miyuki Delica 米珠是用于珠宝制作的极小且精密的高品质玻璃珠。Hama 豆豆是塑料材质,通过熨斗加热融合。我们的工具允许您调整纵横比,确保图案不会因所选材质而变形。' },
12
13
  { question: '抖动(Dithering)算法是如何工作的?', answer: '抖动算法通过在稀疏图案中混合不同颜色的像素来创造更多颜色的错觉。即使在珠子调色板有限的情况下,它也能帮助颜色渐变看起来更平滑。' },
@@ -57,7 +58,6 @@ export const content: BeadPatternGeneratorLocaleContent = {
57
58
  title,
58
59
  description,
59
60
  faqTitle: '常见问题解答',
60
- bibliographyTitle: '工匠参考文献',
61
61
  ui: {
62
62
  title: '图案实验室',
63
63
  subtitle: '指尖上的色彩工程',
@@ -83,8 +83,8 @@ export const content: BeadPatternGeneratorLocaleContent = {
83
83
  seo: [
84
84
  { type: 'title', text: '数字炼金术:将像素转化为触手可及的艺术', level: 2 },
85
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 色的极简调色板下,也能实现惊人的视觉忠实度。' },
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
88
  { type: 'title', text: '大师三部曲', level: 3 },
89
89
  { type: 'card', icon: 'mdi:image-search', title: '完美选择', html: '寻找<strong>高对比度</strong>、极具戏剧性的光影以及标志性形状。背景简单的肖像、Logo 和矢量艺术都能获得极佳的转换效果。' },
90
90
  { type: 'card', icon: 'mdi:ruler', title: '尺寸校准', html: '<strong>Miyuki Delica:</strong> 50 颗珠子 ≈ 8 厘米 · <strong>Hama Midi:</strong> 50 颗珠子 ≈ 25 厘米 · <strong>十字绣:</strong> 1 个单元格 = 1 针。' },
@@ -97,19 +97,15 @@ export const content: BeadPatternGeneratorLocaleContent = {
97
97
  '<strong>复古游戏:</strong> 数秒内即可生成地道的 8 位资产和精灵图。',
98
98
  ]},
99
99
  { type: 'stats', items: [
100
- { value: '10100', label: '珠子宽度范围', icon: 'mdi:arrow-expand-horizontal' },
101
- { value: '232', label: '调色板槽位', icon: 'mdi:palette-swatch' },
100
+ { value: '10-100', label: '珠子宽度范围', icon: 'mdi:arrow-expand-horizontal' },
101
+ { value: '2-32', label: '调色板槽位', icon: 'mdi:palette-swatch' },
102
102
  { value: 'K-Means', label: '量化算法', icon: 'mdi:function-variant' },
103
103
  { value: 'ZIP', label: '导出格式(图案 + 引导)', icon: 'mdi:zip-box' },
104
104
  ], columns: 4 },
105
105
  { type: 'paragraph', html: '在转瞬即逝的屏幕时代,亲手创造实体作品是一种革命性的行为。本工具不致力于取代艺术,而是旨在<strong>赋能工匠</strong>。我们为您提供计算精度,助您的双手打造持久的传承。' },
106
106
  ],
107
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
- ],
108
+ bibliography,
113
109
  howTo,
114
110
  schemas: [faqSchema as any, howToSchema as any, appSchema],
115
111
  };
@@ -1,17 +1,8 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { diceRoller } from './index';
4
- import type { KnownLocale } from '../../types';
3
+ import { bibliography } from './bibliography';
5
4
 
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await diceRoller.i18n[locale]?.();
12
- if (!content || !content.bibliography || content.bibliography.length === 0) return null;
13
-
14
- const { bibliography, bibliographyTitle = 'Bibliografía' } = content;
5
+ if (!bibliography || bibliography.length === 0) return null;
15
6
  ---
16
7
 
17
- <SharedBibliography title={bibliographyTitle} links={bibliography} />
8
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,5 @@
1
+ export const bibliography = [
2
+ { name: 'D&D Beyond - Dice mechanics rules', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
3
+ { name: 'Roll20 - Virtual tabletop and dice systems', url: 'https://roll20.net/' },
4
+ { name: 'Pathfinder - d20 System Reference', url: 'https://paizo.com/pathfinder' },
5
+ ];
@@ -9,7 +9,6 @@ export interface DiceRollerUI {
9
9
  historyLabel: string;
10
10
  clearHistoryBtn: string;
11
11
  faqTitle: string;
12
- bibliographyTitle: string;
13
12
  addDiceLabel: string;
14
13
  bagLabel: string;
15
14
  emptyBagBtn: string;
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DiceRollerLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'wuerfel-simulator';
@@ -73,7 +74,6 @@ export const content: DiceRollerLocaleContent = {
73
74
  title,
74
75
  description,
75
76
  faqTitle: 'Häufig gestellte Fragen',
76
- bibliographyTitle: 'Zufalls-Bibliographie',
77
77
  ui: {
78
78
  title: 'Würfel Simulator',
79
79
  description: 'Möge das Glück mit dir sein.',
@@ -95,17 +95,17 @@ export const content: DiceRollerLocaleContent = {
95
95
  },
96
96
  seo: [
97
97
  { type: 'title', text: 'Die Kunst des Zufalls: Geschichte und Mathematik der Würfel', level: 2 },
98
- { type: 'paragraph', html: 'Würfel gehören zu den ältesten Zufallsgeneratoren der Menschheit. <strong>Astragali</strong> Sprungbeine von Schafen und Ziegen wurden bereits 5000 v. Chr. in Mesopotamien und Ägypten als primitive vierseitige Würfel verwendet. Die Entwicklung vom geschnitzten Knochen bis hin zu modernen Ikosaedern aus Epoxidharz ist nicht nur ästhetischer Natur: Es ist eine Reise durch die Wahrscheinlichkeitstheorie und das Design von Spielmechaniken.' },
98
+ { type: 'paragraph', html: 'Würfel gehören zu den ältesten Zufallsgeneratoren der Menschheit. <strong>Astragali</strong> - Sprungbeine von Schafen und Ziegen - wurden bereits 5000 v. Chr. in Mesopotamien und Ägypten als primitive vierseitige Würfel verwendet. Die Entwicklung vom geschnitzten Knochen bis hin zu modernen Ikosaedern aus Epoxidharz ist nicht nur ästhetischer Natur: Es ist eine Reise durch die Wahrscheinlichkeitstheorie und das Design von Spielmechaniken.' },
99
99
  { type: 'title', text: 'Die Standard Würfelfamilie', level: 3 },
100
- { type: 'paragraph', html: 'Das am weitesten verbreitete Würfelset in Rollenspielen bekann gemacht durch <strong>Dungeons &amp; Dragons</strong> im Jahr 1974 besteht aus den fünf platonischen Körpern plus zwei zusätzlichen Formen: d4 (Tetraeder), d6 (Würfel), d8 (Oktaeder), d10 (Pentagonales Trapezoeder), d12 (Dodekaeder), d20 (Ikosaeder) und d100 (Prozentwürfel). Jedes Polyeder garantiert eine Gleichverteilung: Alle Flächen haben genau die gleiche Wahrscheinlichkeit, gewürfelt zu werden.' },
100
+ { type: 'paragraph', html: 'Das am weitesten verbreitete Würfelset in Rollenspielen - bekann gemacht durch <strong>Dungeons &amp; Dragons</strong> im Jahr 1974 - besteht aus den fünf platonischen Körpern plus zwei zusätzlichen Formen: d4 (Tetraeder), d6 (Würfel), d8 (Oktaeder), d10 (Pentagonales Trapezoeder), d12 (Dodekaeder), d20 (Ikosaeder) und d100 (Prozentwürfel). Jedes Polyeder garantiert eine Gleichverteilung: Alle Flächen haben genau die gleiche Wahrscheinlichkeit, gewürfelt zu werden.' },
101
101
  { type: 'list', items: [
102
- '<strong>d4 Tetraeder:</strong> Am gefährlichsten, wenn man barfuß darauf tritt. Vier dreieckige Flächen, 25 % Wahrscheinlichkeit pro Fläche. Häufig verwendet für Dolchschaden oder Zaubersprüche auf niedriger Stufe.',
103
- '<strong>d6 Würfel:</strong> Der universellste Würfel. In allen Brettspielen seit dem ägyptischen Senet vorhanden. Seine kubische Geometrie garantiert perfekte Gleichverteilung.',
104
- '<strong>d8 Oktaeder:</strong> Der Würfel für den Speer oder die Streitaxt. Acht gleichseitige dreieckige Flächen. 12,5 % Wahrscheinlichkeit pro Fläche.',
105
- '<strong>d10 Pentagonales Trapezoeder:</strong> Der einzige nicht-platonische Körper im Standardset. Zwei gegenüberliegende Flächen pro "Ecke". Unverzichtbar für den d100 (zwei kombinierte d10).',
106
- '<strong>d12 Dodekaeder:</strong> Der Würfel des Barbaren. Zwölf fünfeckige Flächen. In vielen Systemen unterschätzt, Protagonist beim D&D 5e Barbaren.',
107
- '<strong>d20 Ikosaeder:</strong> Der König des Rollenspiels. Zwanzig dreieckige Flächen. Protagonist des d20-Systems: entscheidet über Erfolg oder Misserfolg fast aller Aktionen.',
108
- '<strong>d100 Prozentwürfel:</strong> Zwei kombinierte d10 (Zehner + Einer). Definiert feine Wahrscheinlichkeiten in Systemen wie Cthulhu oder Warhammer Fantasy.',
102
+ '<strong>d4 - Tetraeder:</strong> Am gefährlichsten, wenn man barfuß darauf tritt. Vier dreieckige Flächen, 25 % Wahrscheinlichkeit pro Fläche. Häufig verwendet für Dolchschaden oder Zaubersprüche auf niedriger Stufe.',
103
+ '<strong>d6 - Würfel:</strong> Der universellste Würfel. In allen Brettspielen seit dem ägyptischen Senet vorhanden. Seine kubische Geometrie garantiert perfekte Gleichverteilung.',
104
+ '<strong>d8 - Oktaeder:</strong> Der Würfel für den Speer oder die Streitaxt. Acht gleichseitige dreieckige Flächen. 12,5 % Wahrscheinlichkeit pro Fläche.',
105
+ '<strong>d10 - Pentagonales Trapezoeder:</strong> Der einzige nicht-platonische Körper im Standardset. Zwei gegenüberliegende Flächen pro "Ecke". Unverzichtbar für den d100 (zwei kombinierte d10).',
106
+ '<strong>d12 - Dodekaeder:</strong> Der Würfel des Barbaren. Zwölf fünfeckige Flächen. In vielen Systemen unterschätzt, Protagonist beim D&D 5e Barbaren.',
107
+ '<strong>d20 - Ikosaeder:</strong> Der König des Rollenspiels. Zwanzig dreieckige Flächen. Protagonist des d20-Systems: entscheidet über Erfolg oder Misserfolg fast aller Aktionen.',
108
+ '<strong>d100 - Prozentwürfel:</strong> Zwei kombinierte d10 (Zehner + Einer). Definiert feine Wahrscheinlichkeiten in Systemen wie Cthulhu oder Warhammer Fantasy.',
109
109
  ]},
110
110
  { type: 'stats', items: [
111
111
  { value: '5000 v. Chr.', label: 'Erste Würfel (Astragali)', icon: 'mdi:history' },
@@ -124,15 +124,11 @@ export const content: DiceRollerLocaleContent = {
124
124
  { term: 'Patzer / Nat 1', definition: 'Das Würfeln des Minimalwerts (1) auf einem Würfel. Führt oft zu einem dramatischen Misserfolg oder einer negativen Konsequenz.' },
125
125
  { term: 'Würfelpool', definition: 'Eine Sammlung von Würfeln, die gleichzeitig geworfen werden. Der Pool in unserem Werkzeug zeigt jeden Würfeltyp gruppiert nach Anzahl an (z. B. 3d6 + 2d8).' },
126
126
  { term: 'Modifikator', definition: 'Eine feste Zahl, die zu einem Würfelergebnis addiert oder davon subtrahiert wird und die Fertigkeit, den Attributsbonus oder einen situationsbedingten Abzug eines Charakters darstellt.' },
127
- { term: 'Prozentwurf', definition: 'Ein Wurf mit zwei d10, um ein Ergebnis von 1100 zu erhalten, verwendet in fertigkeitsbasierten Systemen, in denen Fähigkeiten als Prozentsätze gemessen werden.' },
127
+ { term: 'Prozentwurf', definition: 'Ein Wurf mit zwei d10, um ein Ergebnis von 1-100 zu erhalten, verwendet in fertigkeitsbasierten Systemen, in denen Fähigkeiten als Prozentsätze gemessen werden.' },
128
128
  ]},
129
129
  ],
130
130
  faq,
131
- bibliography: [
132
- { name: 'D&D Beyond – Regeln zur Würfelmechanik', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
133
- { name: 'Roll20 – Virtueller Spieltisch und Würfelsysteme', url: 'https://roll20.net/' },
134
- { name: 'Pathfinder – d20 System Reference', url: 'https://paizo.com/pathfinder' },
135
- ],
131
+ bibliography,
136
132
  howTo,
137
133
  schemas: [faqSchema as any, howToSchema as any, appSchema],
138
134
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DiceRollerLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'dice-roller';
@@ -73,7 +74,6 @@ export const content: DiceRollerLocaleContent = {
73
74
  title,
74
75
  description,
75
76
  faqTitle: 'Frequently Asked Questions',
76
- bibliographyTitle: 'Chance Bibliography',
77
77
  ui: {
78
78
  title: 'Dice Roller',
79
79
  description: 'May luck be with you.',
@@ -95,17 +95,17 @@ export const content: DiceRollerLocaleContent = {
95
95
  },
96
96
  seo: [
97
97
  { type: 'title', text: 'The Art of Randomness: History and Mathematics of Dice', level: 2 },
98
- { type: 'paragraph', html: 'Dice are one of humanity\'s oldest randomness generators. <strong>Astragali</strong> ankle bones of sheep and goats were used as primitive four-sided dice as far back as 5000 BC in Mesopotamia and Egypt. The evolution from carved bone to modern epoxy resin icosahedra is not just aesthetic: it is a journey through probability theory and game mechanics design.' },
98
+ { type: 'paragraph', html: 'Dice are one of humanity\'s oldest randomness generators. <strong>Astragali</strong> - ankle bones of sheep and goats - were used as primitive four-sided dice as far back as 5000 BC in Mesopotamia and Egypt. The evolution from carved bone to modern epoxy resin icosahedra is not just aesthetic: it is a journey through probability theory and game mechanics design.' },
99
99
  { type: 'title', text: 'The Standard Dice Family', level: 3 },
100
- { type: 'paragraph', html: 'The most widespread set of dice in role-playing games popularized by <strong>Dungeons &amp; Dragons</strong> in 1974 consists of the five Platonic solids plus two additional shapes: d4 (tetrahedron), d6 (cube), d8 (octahedron), d10 (pentagonal trapezohedron), d12 (dodecahedron), d20 (icosahedron) and d100 (percentile die). Each polyhedron guarantees uniform distribution: all faces have exactly the same probability of landing.' },
100
+ { type: 'paragraph', html: 'The most widespread set of dice in role-playing games - popularized by <strong>Dungeons &amp; Dragons</strong> in 1974 - consists of the five Platonic solids plus two additional shapes: d4 (tetrahedron), d6 (cube), d8 (octahedron), d10 (pentagonal trapezohedron), d12 (dodecahedron), d20 (icosahedron) and d100 (percentile die). Each polyhedron guarantees uniform distribution: all faces have exactly the same probability of landing.' },
101
101
  { type: 'list', items: [
102
- '<strong>d4 Tetrahedron:</strong> The most dangerous if stepped on barefoot. Four triangular faces, 25% probability per face. Commonly used for dagger damage or low-level spells.',
103
- '<strong>d6 Cube:</strong> The most universal die. Present in all board games since the Egyptian senet. Its cubic geometry guarantees perfect equidistribution.',
104
- '<strong>d8 Octahedron:</strong> The die of the spear or battle axe. Eight equilateral triangular faces. 12.5% probability per face.',
105
- '<strong>d10 Pentagonal Trapezohedron:</strong> The only non-Platonic solid in the standard set. Two opposite faces per "vertex". Essential for the d100 (two d10 combined).',
106
- '<strong>d12 Dodecahedron:</strong> The barbarian\'s die. Twelve pentagonal faces. Underrated in many systems, protagonist in D&D 5e Barbarian.',
107
- '<strong>d20 Icosahedron:</strong> The king of RPG. Twenty triangular faces. Protagonist of the d20 system: determines success or failure of almost all actions.',
108
- '<strong>d100 Percentile:</strong> Two d10 combined (tens + units). Defines fine probabilities in systems like Call of Cthulhu or Warhammer Fantasy.',
102
+ '<strong>d4 - Tetrahedron:</strong> The most dangerous if stepped on barefoot. Four triangular faces, 25% probability per face. Commonly used for dagger damage or low-level spells.',
103
+ '<strong>d6 - Cube:</strong> The most universal die. Present in all board games since the Egyptian senet. Its cubic geometry guarantees perfect equidistribution.',
104
+ '<strong>d8 - Octahedron:</strong> The die of the spear or battle axe. Eight equilateral triangular faces. 12.5% probability per face.',
105
+ '<strong>d10 - Pentagonal Trapezohedron:</strong> The only non-Platonic solid in the standard set. Two opposite faces per "vertex". Essential for the d100 (two d10 combined).',
106
+ '<strong>d12 - Dodecahedron:</strong> The barbarian\'s die. Twelve pentagonal faces. Underrated in many systems, protagonist in D&D 5e Barbarian.',
107
+ '<strong>d20 - Icosahedron:</strong> The king of RPG. Twenty triangular faces. Protagonist of the d20 system: determines success or failure of almost all actions.',
108
+ '<strong>d100 - Percentile:</strong> Two d10 combined (tens + units). Defines fine probabilities in systems like Call of Cthulhu or Warhammer Fantasy.',
109
109
  ]},
110
110
  { type: 'stats', items: [
111
111
  { value: '5000 BC', label: 'First dice (astragali)', icon: 'mdi:history' },
@@ -124,15 +124,11 @@ export const content: DiceRollerLocaleContent = {
124
124
  { term: 'Fumble / Nat 1', definition: 'Rolling the minimum value (1) on a die. Often results in a dramatic failure or negative consequence.' },
125
125
  { term: 'Dice Pool', definition: 'A collection of dice rolled simultaneously. The pool in our tool shows each die type grouped by count (e.g., 3d6 + 2d8).' },
126
126
  { term: 'Modifier', definition: 'A fixed number added or subtracted from a roll result, representing a character\'s skill, attribute bonus, or situational penalty.' },
127
- { term: 'Percentile Roll', definition: 'A roll using two d10 to produce a result from 1100, used in skill-based systems where abilities are measured as percentages.' },
127
+ { term: 'Percentile Roll', definition: 'A roll using two d10 to produce a result from 1-100, used in skill-based systems where abilities are measured as percentages.' },
128
128
  ]},
129
129
  ],
130
130
  faq,
131
- bibliography: [
132
- { name: 'D&D Beyond – Dice mechanics rules', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
133
- { name: 'Roll20 – Virtual tabletop and dice systems', url: 'https://roll20.net/' },
134
- { name: 'Pathfinder – d20 System Reference', url: 'https://paizo.com/pathfinder' },
135
- ],
131
+ bibliography,
136
132
  howTo,
137
133
  schemas: [faqSchema as any, howToSchema as any, appSchema],
138
134
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DiceRollerLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'lanzador-dados';
@@ -73,7 +74,6 @@ export const content: DiceRollerLocaleContent = {
73
74
  title,
74
75
  description,
75
76
  faqTitle: 'Preguntas Frecuentes',
76
- bibliographyTitle: 'Bibliografía del Azar',
77
77
  ui: {
78
78
  title: 'Tirador de Dados',
79
79
  description: 'Que la suerte te acompañe.',
@@ -95,17 +95,17 @@ export const content: DiceRollerLocaleContent = {
95
95
  },
96
96
  seo: [
97
97
  { type: 'title', text: 'El arte de la aleatoriedad: historia y matemáticas de los dados', level: 2 },
98
- { type: 'paragraph', html: 'Los dados son uno de los generadores de azar más antiguos de la humanidad. Los <strong>astrágalos</strong> huesos de tobillo de ovejas y cabras se usaban ya en el 5000 a.C. como primitivos dados de cuatro caras en Mesopotamia y Egipto. Pero la evolución desde el hueso tallado hasta el icosaedro de resina epoxi moderno no es solo estética: es un viaje a través de la teoría de probabilidades y el diseño de mecanismos de juego.' },
98
+ { type: 'paragraph', html: 'Los dados son uno de los generadores de azar más antiguos de la humanidad. Los <strong>astrágalos</strong> -huesos de tobillo de ovejas y cabras- se usaban ya en el 5000 a.C. como primitivos dados de cuatro caras en Mesopotamia y Egipto. Pero la evolución desde el hueso tallado hasta el icosaedro de resina epoxi moderno no es solo estética: es un viaje a través de la teoría de probabilidades y el diseño de mecanismos de juego.' },
99
99
  { type: 'title', text: 'La familia estándar de dados', level: 3 },
100
- { type: 'paragraph', html: 'El conjunto de dados más extendido en los juegos de rol popularizado por <strong>Dungeons &amp; Dragons</strong> en 1974 está compuesto por los cinco sólidos platónicos más dos formas adicionales: d4 (tetraedro), d6 (cubo), d8 (octaedro), d10 (pentagonal trapezoedro), d12 (dodecaedro), d20 (icosaedro) y d100 (dado percentil). Cada poliedro garantiza una distribución uniforme: todas las caras tienen exactamente la misma probabilidad de caer.' },
100
+ { type: 'paragraph', html: 'El conjunto de dados más extendido en los juegos de rol -popularizado por <strong>Dungeons &amp; Dragons</strong> en 1974- está compuesto por los cinco sólidos platónicos más dos formas adicionales: d4 (tetraedro), d6 (cubo), d8 (octaedro), d10 (pentagonal trapezoedro), d12 (dodecaedro), d20 (icosaedro) y d100 (dado percentil). Cada poliedro garantiza una distribución uniforme: todas las caras tienen exactamente la misma probabilidad de caer.' },
101
101
  { type: 'list', items: [
102
- '<strong>d4 Tetraedro:</strong> El más lesivo si lo pisas descalzo. Cuatro caras triangulares, probabilidad de 25% por cara. Muy usado para daño de daga o hechizos de bajo nivel.',
103
- '<strong>d6 Cubo:</strong> El dado más universal. Presente en todos los juegos de mesa desde el senet egipcio. Su geometría cúbica garantiza perfecta equidistribución.',
104
- '<strong>d8 Octaedro:</strong> El dado de la lanza o el hacha de batalla. Ocho caras triangulares equiláteras. Probabilidad de 12,5% por cara.',
105
- '<strong>d10 Trapezoedro pentagonal:</strong> El único no platónico del set estándar. Dos caras opuestas por "vértice". Esencial para el d100 (dos d10 combinados).',
106
- '<strong>d12 Dodecaedro:</strong> El dado del bárbaro. Doce caras pentagonales. Infravalorado en muchos sistemas, protagonista en Barbarian de D&D 5e.',
107
- '<strong>d20 Icosaedro:</strong> El rey del rol. Veinte caras triangulares. Protagonista del sistema d20 de D&D: determina éxito o fracaso de casi todas las acciones.',
108
- '<strong>d100 Percentil:</strong> Dos d10 combinados (decenas + unidades). Define probabilidades finas en sistemas como Call of Cthulhu o Warhammer Fantasy.',
102
+ '<strong>d4 - Tetraedro:</strong> El más lesivo si lo pisas descalzo. Cuatro caras triangulares, probabilidad de 25% por cara. Muy usado para daño de daga o hechizos de bajo nivel.',
103
+ '<strong>d6 - Cubo:</strong> El dado más universal. Presente en todos los juegos de mesa desde el senet egipcio. Su geometría cúbica garantiza perfecta equidistribución.',
104
+ '<strong>d8 - Octaedro:</strong> El dado de la lanza o el hacha de batalla. Ocho caras triangulares equiláteras. Probabilidad de 12,5% por cara.',
105
+ '<strong>d10 - Trapezoedro pentagonal:</strong> El único no platónico del set estándar. Dos caras opuestas por "vértice". Esencial para el d100 (dos d10 combinados).',
106
+ '<strong>d12 - Dodecaedro:</strong> El dado del bárbaro. Doce caras pentagonales. Infravalorado en muchos sistemas, protagonista en Barbarian de D&D 5e.',
107
+ '<strong>d20 - Icosaedro:</strong> El rey del rol. Veinte caras triangulares. Protagonista del sistema d20 de D&D: determina éxito o fracaso de casi todas las acciones.',
108
+ '<strong>d100 - Percentil:</strong> Dos d10 combinados (decenas + unidades). Define probabilidades finas en sistemas como Call of Cthulhu o Warhammer Fantasy.',
109
109
  ]},
110
110
  { type: 'title', text: 'Probabilidades y curvas de distribución', level: 3 },
111
111
  { type: 'paragraph', html: 'Cuando lanzas un único dado, obtienes una <strong>distribución uniforme discreta</strong>: cada resultado tiene exactamente la misma probabilidad (1/n). Pero en cuanto combinas múltiples dados, la magia matemática transforma esa curva plana en una <strong>distribución normal aproximada</strong>. Por eso 2d6 no es lo mismo que 1d12: con dos dados de seis la probabilidad de obtener 7 es 6/36 ≈ 16,7%, mientras que los extremos (2 y 12) solo ocurren el 2,8% del tiempo.' },
@@ -130,11 +130,7 @@ export const content: DiceRollerLocaleContent = {
130
130
  ]},
131
131
  ],
132
132
  faq,
133
- bibliography: [
134
- { name: 'D&D Beyond – Reglas de mecánicas de dados', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
135
- { name: 'Roll20 – Virtual tabletop y sistemas de dados', url: 'https://roll20.net/' },
136
- { name: 'Pathfinder – Sistema d20 de referencia', url: 'https://paizo.com/pathfinder' },
137
- ],
133
+ bibliography,
138
134
  howTo,
139
135
  schemas: [faqSchema as any, howToSchema as any, appSchema],
140
136
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DiceRollerLocaleContent } from '../index';
3
4
 
4
5
  const slug = 'lanceur-de-des';
@@ -24,7 +25,7 @@ const faq: DiceRollerLocaleContent['faq'] = [
24
25
  },
25
26
  {
26
27
  question: 'Qu\'est-ce que le d100 et comment est-il utilisé ?',
27
- answer: 'Le d100 (ou d%) génère un nombre de 1 à 100 et est utilisé dans les systèmes de jeu basés sur les pourcentages, tels que l\'Appel de Cthulhu ou Warhammer Fantasy. Il représente une "probabilité directe" : si votre compétence en Discrétion est de 65 %, vous devez obtenir 65 ou moins pour réussir.',
28
+ answer: 'Le d100 (ou d%) génère un nombre de 1 à 100 et est utilisé dans les systèmes de jeu basés sur les pourcentages, tels que l\'Appel de Cthulhu ou Warhammer Fantasy. Il représente une "probabilité directe": si votre compétence en Discrétion est de 65 %, vous devez obtenir 65 ou moins pour réussir.',
28
29
  },
29
30
  ];
30
31
 
@@ -73,7 +74,6 @@ export const content: DiceRollerLocaleContent = {
73
74
  title,
74
75
  description,
75
76
  faqTitle: 'Questions Fréquemment Posées',
76
- bibliographyTitle: 'Bibliographie du Hasard',
77
77
  ui: {
78
78
  title: 'Lanceur de Dés',
79
79
  description: 'Que la chance soit avec vous.',
@@ -94,18 +94,18 @@ export const content: DiceRollerLocaleContent = {
94
94
  emptyHistoryText: 'L\'historique des lancers apparaîtra ici'
95
95
  },
96
96
  seo: [
97
- { type: 'title', text: 'L\'Art du Hasard : Histoire et Mathématiques des Dés', level: 2 },
98
- { type: 'paragraph', html: 'Les dés sont l\'un des plus anciens générateurs de hasard de l\'humanité. Les <strong>astragales</strong> osselets de chevilles de moutons et de chèvres étaient utilisés comme dés primitifs à quatre faces dès 5000 av. J.-C. en Mésopotamie et en Égypte. L\'évolution de l\'os sculpté aux icosaèdres modernes en résine époxy n\'est pas seulement esthétique : c\'est un voyage à travers la théorie des probabilités et la conception des mécaniques de jeu.' },
97
+ { type: 'title', text: 'L\'Art du Hasard: Histoire et Mathématiques des Dés', level: 2 },
98
+ { type: 'paragraph', html: 'Les dés sont l\'un des plus anciens générateurs de hasard de l\'humanité. Les <strong>astragales</strong> - osselets de chevilles de moutons et de chèvres - étaient utilisés comme dés primitifs à quatre faces dès 5000 av. J.-C. en Mésopotamie et en Égypte. L\'évolution de l\'os sculpté aux icosaèdres modernes en résine époxy n\'est pas seulement esthétique: c\'est un voyage à travers la théorie des probabilités et la conception des mécaniques de jeu.' },
99
99
  { type: 'title', text: 'La Famille des Dés Standards', level: 3 },
100
- { type: 'paragraph', html: 'L\'ensemble de dés le plus répandu dans les jeux de rôle popularisé par <strong>Dungeons &amp; Dragons</strong> en 1974 se compose des cinq solides de Platon plus deux formes additionnelles : d4 (tétraèdre), d6 (cube), d8 (octaèdre), d10 (trapézoèdre pentagonal), d12 (dodécaèdre), d20 (icosaèdre) et d100 (dé centile). Chaque polyèdre garantit une distribution uniforme : toutes les faces ont exactement la même probabilité de sortir.' },
100
+ { type: 'paragraph', html: 'L\'ensemble de dés le plus répandu dans les jeux de rôle - popularisé par <strong>Dungeons &amp; Dragons</strong> en 1974 - se compose des cinq solides de Platon plus deux formes additionnelles: d4 (tétraèdre), d6 (cube), d8 (octaèdre), d10 (trapézoèdre pentagonal), d12 (dodécaèdre), d20 (icosaèdre) et d100 (dé centile). Chaque polyèdre garantit une distribution uniforme: toutes les faces ont exactement la même probabilité de sortir.' },
101
101
  { type: 'list', items: [
102
- '<strong>d4 Tétraèdre :</strong> Le plus dangereux si l\'on marche dessus pieds nus. Quatre faces triangulaires, 25 % de probabilité par face. Couramment utilisé pour les dégâts de dague ou les sorts de bas niveau.',
103
- '<strong>d6 Cube :</strong> Le dé le plus universel. Présent dans tous les jeux de société depuis le senet égyptien. Sa géométrie cubique garantit une équidistribution parfaite.',
104
- '<strong>d8 Octaèdre :</strong> Le dé de la lance ou de la hache de bataille. Huit faces triangulaires équilatérales. 12,5 % de probabilité par face.',
105
- '<strong>d10 Trapézoèdre pentagonal :</strong> Le seul solide non-platonique de l\'ensemble standard. Deux faces opposées par "sommet". Essentiel pour le d100 (deux d10 combinés).',
106
- '<strong>d12 Dodécaèdre :</strong> Le dé du barbare. Douze faces pentagonales. Sous-estimé dans de nombreux systèmes, il est le protagoniste du Barbare dans D&D 5e.',
107
- '<strong>d20 Icosaèdre :</strong> Le roi du JdR. Vingt faces triangulaires. Protagoniste du système d20 : il détermine le succès ou l\'échec de presque toutes les actions.',
108
- '<strong>d100 Centile :</strong> Deux d10 combinés (dizaines + unités). Définit des probabilités fines dans des systèmes comme l\'Appel de Cthulhu ou Warhammer Fantasy.',
102
+ '<strong>d4 - Tétraèdre :</strong> Le plus dangereux si l\'on marche dessus pieds nus. Quatre faces triangulaires, 25 % de probabilité par face. Couramment utilisé pour les dégâts de dague ou les sorts de bas niveau.',
103
+ '<strong>d6 - Cube :</strong> Le dé le plus universel. Présent dans tous les jeux de société depuis le senet égyptien. Sa géométrie cubique garantit une équidistribution parfaite.',
104
+ '<strong>d8 - Octaèdre :</strong> Le dé de la lance ou de la hache de bataille. Huit faces triangulaires équilatérales. 12,5 % de probabilité par face.',
105
+ '<strong>d10 - Trapézoèdre pentagonal :</strong> Le seul solide non-platonique de l\'ensemble standard. Deux faces opposées par "sommet". Essentiel pour le d100 (deux d10 combinés).',
106
+ '<strong>d12 - Dodécaèdre :</strong> Le dé du barbare. Douze faces pentagonales. Sous-estimé dans de nombreux systèmes, il est le protagoniste du Barbare dans D&D 5e.',
107
+ '<strong>d20 - Icosaèdre :</strong> Le roi du JdR. Vingt faces triangulaires. Protagoniste du système d20: il détermine le succès ou l\'échec de presque toutes les actions.',
108
+ '<strong>d100 - Centile :</strong> Deux d10 combinés (dizaines + unités). Définit des probabilités fines dans des systèmes comme l\'Appel de Cthulhu ou Warhammer Fantasy.',
109
109
  ]},
110
110
  { type: 'stats', items: [
111
111
  { value: '5000 av. J.-C.', label: 'Premiers dés (astragales)', icon: 'mdi:history' },
@@ -114,11 +114,11 @@ export const content: DiceRollerLocaleContent = {
114
114
  { value: '2¹²⁸', label: 'Période aléatoire JS', icon: 'mdi:function-variant' },
115
115
  ], columns: 4 },
116
116
  { type: 'title', text: 'Probabilités et Courbes de Distribution', level: 3 },
117
- { type: 'paragraph', html: 'Lorsque vous lancez un seul dé, vous obtenez une <strong>distribution uniforme discrète</strong> : chaque résultat a exactement la même probabilité (1/n). Mais dès que vous combinez plusieurs dés, la magie mathématique transforme cette courbe plate en une <strong>distribution normale approximative</strong>. C\'est pourquoi 2d6 n\'est pas la même chose qu\'un 1d12 : avec deux dés à six faces, la probabilité d\'obtenir un 7 est de 6/36 ≈ 16,7 %, tandis que les extrêmes (2 et 12) ne surviennent que 2,8 % du temps.' },
118
- { type: 'tip', title: 'Avantage et Désavantage (D&D 5e)', html: 'La mécanique d\'<strong>Avantage</strong> consiste à lancer 2d20 et à garder le résultat le plus élevé. Mathématiquement, cela fait passer la moyenne de 10,5 à environ 13,8. Le <strong>Désavantage</strong> fait l\'inverse : on prend le plus bas, faisant chuter la moyenne à environ 7,2. Notre lanceur vous permet de simuler cela en ajoutant deux d20 au sac et en comparant les résultats individuels.' },
119
- { type: 'title', text: 'Modificateurs : Le Pont entre le Dé et le Personnage', level: 3 },
120
- { type: 'paragraph', html: 'Dans la plupart des systèmes de JdR, le dé n\'agit pas seul : un <strong>modificateur</strong> représentant les capacités du personnage est ajouté ou soustrait. Dans D&D 5e, un modificateur de Force de +5 signifie que vous lancez 1d20, ajoutez 5, et comparez le résultat à la Classe d\'Armure de l\'ennemi. Notre lanceur inclut un contrôle de modificateur pour refléter fidèlement ces mécaniques.' },
121
- { type: 'tip', title: 'Standard de Notation des Dés', html: 'La notation <strong>XdY+Z</strong> est le standard de facto dans les jeux de rôle : X dés de Y faces avec un modificateur Z. "3d6+2" signifie lancer trois dés à six faces et ajouter 2 au total. Notre outil utilise cette notation dans l\'historique afin que vous puissiez facilement partager ou enregistrer vos lancers.' },
117
+ { type: 'paragraph', html: 'Lorsque vous lancez un seul dé, vous obtenez une <strong>distribution uniforme discrète</strong>: chaque résultat a exactement la même probabilité (1/n). Mais dès que vous combinez plusieurs dés, la magie mathématique transforme cette courbe plate en une <strong>distribution normale approximative</strong>. C\'est pourquoi 2d6 n\'est pas la même chose qu\'un 1d12: avec deux dés à six faces, la probabilité d\'obtenir un 7 est de 6/36 ≈ 16,7 %, tandis que les extrêmes (2 et 12) ne surviennent que 2,8 % du temps.' },
118
+ { type: 'tip', title: 'Avantage et Désavantage (D&D 5e)', html: 'La mécanique d\'<strong>Avantage</strong> consiste à lancer 2d20 et à garder le résultat le plus élevé. Mathématiquement, cela fait passer la moyenne de 10,5 à environ 13,8. Le <strong>Désavantage</strong> fait l\'inverse: on prend le plus bas, faisant chuter la moyenne à environ 7,2. Notre lanceur vous permet de simuler cela en ajoutant deux d20 au sac et en comparant les résultats individuels.' },
119
+ { type: 'title', text: 'Modificateurs: Le Pont entre le Dé et le Personnage', level: 3 },
120
+ { type: 'paragraph', html: 'Dans la plupart des systèmes de JdR, le dé n\'agit pas seul: un <strong>modificateur</strong> représentant les capacités du personnage est ajouté ou soustrait. Dans D&D 5e, un modificateur de Force de +5 signifie que vous lancez 1d20, ajoutez 5, et comparez le résultat à la Classe d\'Armure de l\'ennemi. Notre lanceur inclut un contrôle de modificateur pour refléter fidèlement ces mécaniques.' },
121
+ { type: 'tip', title: 'Standard de Notation des Dés', html: 'La notation <strong>XdY+Z</strong> est le standard de facto dans les jeux de rôle: X dés de Y faces avec un modificateur Z. "3d6+2" signifie lancer trois dés à six faces et ajouter 2 au total. Notre outil utilise cette notation dans l\'historique afin que vous puissiez facilement partager ou enregistrer vos lancers.' },
122
122
  { type: 'glossary', items: [
123
123
  { term: 'Coup Critique', definition: 'Un lancer de la valeur maximale sur un dé (ex: obtenir 20 sur un d20). Déclenche généralement des effets bonus spéciaux dans la plupart des systèmes de JdR.' },
124
124
  { term: 'Échec Critique / Nat 1', definition: 'Obtenir la valeur minimale (1) sur un dé. Entraîne souvent un échec dramatique ou une conséquence négative.' },
@@ -128,11 +128,7 @@ export const content: DiceRollerLocaleContent = {
128
128
  ]},
129
129
  ],
130
130
  faq,
131
- bibliography: [
132
- { name: 'D&D Beyond – Règles des mécaniques de dés', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
133
- { name: 'Roll20 – Table de jeu virtuelle et systèmes de dés', url: 'https://roll20.net/' },
134
- { name: 'Pathfinder – Référence du système d20', url: 'https://paizo.com/pathfinder' },
135
- ],
131
+ bibliography,
136
132
  howTo,
137
133
  schemas: [faqSchema as any, howToSchema as any, appSchema],
138
134
  };
@@ -1,4 +1,5 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import { bibliography } from '../bibliography';
2
3
  import type { DiceRollerLocaleContent } from '../index';
3
4
 
4
5
  const slug: string = 'pengocok-dadu';
@@ -73,7 +74,6 @@ export const content: DiceRollerLocaleContent = {
73
74
  title,
74
75
  description,
75
76
  faqTitle: 'Pertanyaan yang Sering Diajukan',
76
- bibliographyTitle: 'Bibliografi Peluang',
77
77
  ui: {
78
78
  title: 'Pengocok Dadu',
79
79
  description: 'Semoga keberuntungan menyertai Anda.',
@@ -95,17 +95,17 @@ export const content: DiceRollerLocaleContent = {
95
95
  },
96
96
  seo: [
97
97
  { type: 'title', text: 'Seni Keacakan: Sejarah dan Matematika Dadu', level: 2 },
98
- { type: 'paragraph', html: 'Dadu adalah salah satu generator keacakan tertua umat manusia. <strong>Astragali</strong> tulang pergelangan kaki domba dan kambing digunakan sebagai dadu empat sisi primitif sejak 5000 SM di Mesopotamia dan Mesir. Evolusi dari tulang ukir menjadi ikosahedron resin epoksi modern bukan sekadar estetika: ini adalah perjalanan melalui teori probabilitas dan desain mekanik permainan.' },
98
+ { type: 'paragraph', html: 'Dadu adalah salah satu generator keacakan tertua umat manusia. <strong>Astragali</strong> - tulang pergelangan kaki domba dan kambing - digunakan sebagai dadu empat sisi primitif sejak 5000 SM di Mesopotamia dan Mesir. Evolusi dari tulang ukir menjadi ikosahedron resin epoksi modern bukan sekadar estetika: ini adalah perjalanan melalui teori probabilitas dan desain mekanik permainan.' },
99
99
  { type: 'title', text: 'Keluarga Dadu Standar', level: 3 },
100
- { type: 'paragraph', html: 'Set dadu yang paling luas dalam permainan peran dipopulerkan oleh <strong>Dungeons &amp; Dragons</strong> pada tahun 1974 terdiri dari lima bangun ruang Platonik ditambah dua bentuk tambahan: d4 (tetrahedron), d6 (kubus), d8 (oktahedron), d10 (pentagonal trapezohedron), d12 (dodekahedron), d20 (ikosahedron), dan d100 (dadu persentil). Setiap polihedron menjamin distribusi seragam: semua sisi memiliki probabilitas yang sama persis untuk muncul.' },
100
+ { type: 'paragraph', html: 'Set dadu yang paling luas dalam permainan peran - dipopulerkan oleh <strong>Dungeons &amp; Dragons</strong> pada tahun 1974 - terdiri dari lima bangun ruang Platonik ditambah dua bentuk tambahan: d4 (tetrahedron), d6 (kubus), d8 (oktahedron), d10 (pentagonal trapezohedron), d12 (dodekahedron), d20 (ikosahedron), dan d100 (dadu persentil). Setiap polihedron menjamin distribusi seragam: semua sisi memiliki probabilitas yang sama persis untuk muncul.' },
101
101
  { type: 'list', items: [
102
- '<strong>d4 Tetrahedron:</strong> Paling berbahaya jika terinjak dengan kaki telanjang. Empat sisi segitiga, probabilitas 25% per sisi. Umumnya digunakan untuk kerusakan belati atau mantra tingkat rendah.',
103
- '<strong>d6 Kubus:</strong> Dadu yang paling universal. Hadir di semua permainan papan sejak senet Mesir. Geometri kubusnya menjamin ekuidistribusi yang sempurna.',
104
- '<strong>d8 Oktahedron:</strong> Dadu untuk tombak atau kapak perang. Delapan sisi segitiga sama sisi. Probabilitas 12,5% per sisi.',
105
- '<strong>d10 Pentagonal Trapezohedron:</strong> Satu-satunya bangun ruang non-Platonik dalam set standar. Dua sisi berlawanan per "verteks". Penting untuk d100 (dua d10 digabungkan).',
106
- '<strong>d12 Dodekahedron:</strong> Dadunya kaum barbarian. Dua belas sisi pentagonal. Kurang dihargai di banyak sistem, protagonis di D&D 5e Barbarian.',
107
- '<strong>d20 Ikosahedron:</strong> Rajanya RPG. Dua puluh sisi segitiga. Protagonis dari sistem d20: menentukan keberhasilan atau kegagalan hampir semua tindakan.',
108
- '<strong>d100 Persentil:</strong> Dua d10 digabungkan (puluhan + satuan). Mendefinisikan probabilitas halus dalam sistem seperti Call of Cthulhu atau Warhammer Fantasy.',
102
+ '<strong>d4 - Tetrahedron:</strong> Paling berbahaya jika terinjak dengan kaki telanjang. Empat sisi segitiga, probabilitas 25% per sisi. Umumnya digunakan untuk kerusakan belati atau mantra tingkat rendah.',
103
+ '<strong>d6 - Kubus:</strong> Dadu yang paling universal. Hadir di semua permainan papan sejak senet Mesir. Geometri kubusnya menjamin ekuidistribusi yang sempurna.',
104
+ '<strong>d8 - Oktahedron:</strong> Dadu untuk tombak atau kapak perang. Delapan sisi segitiga sama sisi. Probabilitas 12,5% per sisi.',
105
+ '<strong>d10 - Pentagonal Trapezohedron:</strong> Satu-satunya bangun ruang non-Platonik dalam set standar. Dua sisi berlawanan per "verteks". Penting untuk d100 (dua d10 digabungkan).',
106
+ '<strong>d12 - Dodekahedron:</strong> Dadunya kaum barbarian. Dua belas sisi pentagonal. Kurang dihargai di banyak sistem, protagonis di D&D 5e Barbarian.',
107
+ '<strong>d20 - Ikosahedron:</strong> Rajanya RPG. Dua puluh sisi segitiga. Protagonis dari sistem d20: menentukan keberhasilan atau kegagalan hampir semua tindakan.',
108
+ '<strong>d100 - Persentil:</strong> Dua d10 digabungkan (puluhan + satuan). Mendefinisikan probabilitas halus dalam sistem seperti Call of Cthulhu atau Warhammer Fantasy.',
109
109
  ]},
110
110
  { type: 'stats', items: [
111
111
  { value: '5000 SM', label: 'Dadu pertama (astragali)', icon: 'mdi:history' },
@@ -124,15 +124,11 @@ export const content: DiceRollerLocaleContent = {
124
124
  { term: 'Fumble / Nat 1', definition: 'Melempar nilai minimum (1) pada dadu. Seringkali menghasilkan kegagalan dramatis atau konsekuensi negatif.' },
125
125
  { term: 'Dice Pool', definition: 'Kumpulan dadu yang dilempar secara bersamaan. Kumpulan dalam alat kami menunjukkan setiap tipe dadu yang dikelompokkan berdasarkan jumlah (misalnya, 3d6 + 2d8).' },
126
126
  { term: 'Modifier', definition: 'Angka tetap yang ditambahkan atau dikurangi dari hasil lemparan, mewakili keahlian karakter, bonus atribut, atau penalti situasional.' },
127
- { term: 'Percentile Roll', definition: 'Lemparan menggunakan dua d10 untuk menghasilkan hasil dari 1100, digunakan dalam sistem berbasis keahlian di mana kemampuan diukur sebagai persentase.' },
127
+ { term: 'Percentile Roll', definition: 'Lemparan menggunakan dua d10 untuk menghasilkan hasil dari 1-100, digunakan dalam sistem berbasis keahlian di mana kemampuan diukur sebagai persentase.' },
128
128
  ]},
129
129
  ],
130
130
  faq,
131
- bibliography: [
132
- { name: 'D&D Beyond – Aturan mekanik dadu', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
133
- { name: 'Roll20 – Meja virtual dan sistem dadu', url: 'https://roll20.net/' },
134
- { name: 'Pathfinder – Referensi Sistem d20', url: 'https://paizo.com/pathfinder' },
135
- ],
131
+ bibliography,
136
132
  howTo,
137
133
  schemas: [faqSchema as any, howToSchema as any, appSchema],
138
134
  };