@jjlmoya/utils-creative 1.6.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 (117) hide show
  1. package/package.json +63 -62
  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/schemas_fulfillment.test.ts +23 -0
  19. package/src/tests/title_quality.test.ts +55 -0
  20. package/src/tests/tool_validation.test.ts +2 -2
  21. package/src/tool/bead-pattern-generator/i18n/de.ts +115 -0
  22. package/src/tool/bead-pattern-generator/i18n/en.ts +59 -17
  23. package/src/tool/bead-pattern-generator/i18n/es.ts +59 -17
  24. package/src/tool/bead-pattern-generator/i18n/fr.ts +59 -17
  25. package/src/tool/bead-pattern-generator/i18n/id.ts +115 -0
  26. package/src/tool/bead-pattern-generator/i18n/it.ts +115 -0
  27. package/src/tool/bead-pattern-generator/i18n/ja.ts +115 -0
  28. package/src/tool/bead-pattern-generator/i18n/ko.ts +115 -0
  29. package/src/tool/bead-pattern-generator/i18n/nl.ts +115 -0
  30. package/src/tool/bead-pattern-generator/i18n/pl.ts +115 -0
  31. package/src/tool/bead-pattern-generator/i18n/pt.ts +115 -0
  32. package/src/tool/bead-pattern-generator/i18n/ru.ts +115 -0
  33. package/src/tool/bead-pattern-generator/i18n/sv.ts +115 -0
  34. package/src/tool/bead-pattern-generator/i18n/tr.ts +115 -0
  35. package/src/tool/bead-pattern-generator/i18n/zh.ts +115 -0
  36. package/src/tool/bead-pattern-generator/index.ts +12 -0
  37. package/src/tool/dice-roller/i18n/de.ts +138 -0
  38. package/src/tool/dice-roller/i18n/en.ts +74 -32
  39. package/src/tool/dice-roller/i18n/es.ts +74 -32
  40. package/src/tool/dice-roller/i18n/fr.ts +74 -32
  41. package/src/tool/dice-roller/i18n/id.ts +138 -0
  42. package/src/tool/dice-roller/i18n/it.ts +138 -0
  43. package/src/tool/dice-roller/i18n/ja.ts +138 -0
  44. package/src/tool/dice-roller/i18n/ko.ts +138 -0
  45. package/src/tool/dice-roller/i18n/nl.ts +138 -0
  46. package/src/tool/dice-roller/i18n/pl.ts +138 -0
  47. package/src/tool/dice-roller/i18n/pt.ts +138 -0
  48. package/src/tool/dice-roller/i18n/ru.ts +138 -0
  49. package/src/tool/dice-roller/i18n/sv.ts +138 -0
  50. package/src/tool/dice-roller/i18n/tr.ts +138 -0
  51. package/src/tool/dice-roller/i18n/zh.ts +138 -0
  52. package/src/tool/dice-roller/index.ts +12 -0
  53. package/src/tool/excuse-generator/i18n/de.ts +122 -0
  54. package/src/tool/excuse-generator/i18n/en.ts +60 -18
  55. package/src/tool/excuse-generator/i18n/es.ts +60 -18
  56. package/src/tool/excuse-generator/i18n/fr.ts +60 -18
  57. package/src/tool/excuse-generator/i18n/id.ts +122 -0
  58. package/src/tool/excuse-generator/i18n/it.ts +122 -0
  59. package/src/tool/excuse-generator/i18n/ja.ts +122 -0
  60. package/src/tool/excuse-generator/i18n/ko.ts +122 -0
  61. package/src/tool/excuse-generator/i18n/nl.ts +122 -0
  62. package/src/tool/excuse-generator/i18n/pl.ts +122 -0
  63. package/src/tool/excuse-generator/i18n/pt.ts +122 -0
  64. package/src/tool/excuse-generator/i18n/ru.ts +122 -0
  65. package/src/tool/excuse-generator/i18n/sv.ts +122 -0
  66. package/src/tool/excuse-generator/i18n/tr.ts +122 -0
  67. package/src/tool/excuse-generator/i18n/zh.ts +122 -0
  68. package/src/tool/excuse-generator/index.ts +12 -0
  69. package/src/tool/fortune-cookie/i18n/de.ts +127 -0
  70. package/src/tool/fortune-cookie/i18n/en.ts +60 -18
  71. package/src/tool/fortune-cookie/i18n/es.ts +60 -18
  72. package/src/tool/fortune-cookie/i18n/fr.ts +60 -18
  73. package/src/tool/fortune-cookie/i18n/id.ts +127 -0
  74. package/src/tool/fortune-cookie/i18n/it.ts +127 -0
  75. package/src/tool/fortune-cookie/i18n/ja.ts +127 -0
  76. package/src/tool/fortune-cookie/i18n/ko.ts +127 -0
  77. package/src/tool/fortune-cookie/i18n/nl.ts +127 -0
  78. package/src/tool/fortune-cookie/i18n/pl.ts +127 -0
  79. package/src/tool/fortune-cookie/i18n/pt.ts +127 -0
  80. package/src/tool/fortune-cookie/i18n/ru.ts +127 -0
  81. package/src/tool/fortune-cookie/i18n/sv.ts +127 -0
  82. package/src/tool/fortune-cookie/i18n/tr.ts +127 -0
  83. package/src/tool/fortune-cookie/i18n/zh.ts +127 -0
  84. package/src/tool/fortune-cookie/index.ts +12 -0
  85. package/src/tool/synesthesia-painter/i18n/de.ts +122 -0
  86. package/src/tool/synesthesia-painter/i18n/en.ts +74 -32
  87. package/src/tool/synesthesia-painter/i18n/es.ts +74 -32
  88. package/src/tool/synesthesia-painter/i18n/fr.ts +75 -33
  89. package/src/tool/synesthesia-painter/i18n/id.ts +122 -0
  90. package/src/tool/synesthesia-painter/i18n/it.ts +122 -0
  91. package/src/tool/synesthesia-painter/i18n/ja.ts +122 -0
  92. package/src/tool/synesthesia-painter/i18n/ko.ts +122 -0
  93. package/src/tool/synesthesia-painter/i18n/nl.ts +122 -0
  94. package/src/tool/synesthesia-painter/i18n/pl.ts +122 -0
  95. package/src/tool/synesthesia-painter/i18n/pt.ts +122 -0
  96. package/src/tool/synesthesia-painter/i18n/ru.ts +122 -0
  97. package/src/tool/synesthesia-painter/i18n/sv.ts +122 -0
  98. package/src/tool/synesthesia-painter/i18n/tr.ts +122 -0
  99. package/src/tool/synesthesia-painter/i18n/zh.ts +122 -0
  100. package/src/tool/synesthesia-painter/index.ts +12 -0
  101. package/src/tool/zalgo-generator/i18n/de.ts +113 -0
  102. package/src/tool/zalgo-generator/i18n/en.ts +58 -16
  103. package/src/tool/zalgo-generator/i18n/es.ts +58 -16
  104. package/src/tool/zalgo-generator/i18n/fr.ts +58 -16
  105. package/src/tool/zalgo-generator/i18n/id.ts +113 -0
  106. package/src/tool/zalgo-generator/i18n/it.ts +113 -0
  107. package/src/tool/zalgo-generator/i18n/ja.ts +113 -0
  108. package/src/tool/zalgo-generator/i18n/ko.ts +113 -0
  109. package/src/tool/zalgo-generator/i18n/nl.ts +113 -0
  110. package/src/tool/zalgo-generator/i18n/pl.ts +113 -0
  111. package/src/tool/zalgo-generator/i18n/pt.ts +113 -0
  112. package/src/tool/zalgo-generator/i18n/ru.ts +113 -0
  113. package/src/tool/zalgo-generator/i18n/sv.ts +113 -0
  114. package/src/tool/zalgo-generator/i18n/tr.ts +113 -0
  115. package/src/tool/zalgo-generator/i18n/zh.ts +113 -0
  116. package/src/tool/zalgo-generator/index.ts +12 -0
  117. package/src/tools.ts +14 -1
@@ -0,0 +1,138 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
+ import type { DiceRollerLocaleContent } from '../index';
3
+
4
+ const slug = 'wuerfel-simulator';
5
+ const title = 'Würfel Simulator';
6
+ const description = 'Ein kompletter Würfelsimulator für Ihre RPGs und Brettspiele. Würfeln Sie d4, d6, d8, d10, d12, d20 und d100 mit Modifikatoren und Historie.';
7
+
8
+ const faq: DiceRollerLocaleContent['faq'] = [
9
+ {
10
+ question: 'Wie kann ich einen Wurf mit Vorteil (D&D) simulieren?',
11
+ answer: 'Fügen Sie zwei d20-Würfel zum Beutel hinzu, indem Sie zweimal auf die d20-Schaltfläche klicken. Achten Sie beim Würfeln auf die beiden Einzelergebnisse und behalten Sie das höhere. Die angezeigte Summe ist der Gesamtwert, aber Sie können jeden Würfel einzeln in der Ergebnisaufschlüsselung sehen.',
12
+ },
13
+ {
14
+ question: 'Was bedeuten die grünen oder roten Farben bei den Ergebnissen?',
15
+ answer: 'Grüne Ergebnisse zeigen an, dass der Würfel seinen maximal möglichen Wert gewürfelt hat (ein "Krit"). Rote Ergebnisse zeigen den Minimalwert an (eine "1", das schlechtestmögliche Ergebnis). So lassen sich kritische Erfolge und Patzer auf einen Blick erkennen.',
16
+ },
17
+ {
18
+ question: 'Kann ich mehrere Würfel desselben Typs hinzufügen?',
19
+ answer: 'Ja. Jeder Klick auf einen Würfel fügt ihn dem Beutel hinzu. Wenn Sie dreimal auf d6 klicken, zeigt der Beutel "3d6" an. Um die Anzahl zu verringern, klicken Sie auf die Schaltfläche "−", die neben jeder Würfelgruppe im Beutel erscheint.',
20
+ },
21
+ {
22
+ question: 'Sind digitale Würfel so zufällig wie physische?',
23
+ answer: 'Statistisch gesehen, ja. Moderne JavaScript-Engines verwenden Pseudozufallsalgorithmen (xorshift128+) mit einer sehr hochwertigen Gleichverteilung. Ein echter physischer Würfel kann kleine Herstellungsfehler aufweisen, die die Ergebnisse beeinflussen; der digitale Würfel hat dieses Problem nicht.',
24
+ },
25
+ {
26
+ question: 'Was ist der d100 und wie wird er verwendet?',
27
+ answer: 'Der d100 (oder d%) erzeugt eine Zahl von 1 bis 100 und wird in prozentualen Spielsystemen wie Cthulhu oder Warhammer Fantasy Roleplay verwendet. Er stellt die "direkte Wahrscheinlichkeit" dar: Wenn Ihr Fertigkeitswert in Schleichen 65 % beträgt, müssen Sie eine 65 oder weniger würfeln, um Erfolg zu haben.',
28
+ },
29
+ ];
30
+
31
+ const howTo: DiceRollerLocaleContent['howTo'] = [
32
+ { name: 'Würfelpool zusammenstellen', text: 'Klicken Sie auf die Würfelschaltflächen (d4, d6, d8...), um sie Ihrem Pool hinzuzufügen. Jeder Klick fügt einen Würfel des gewählten Typs hinzu. Sie können verschiedene Typen in demselben Wurf kombinieren.' },
33
+ { name: 'Modifikator anpassen', text: 'Verwenden Sie die Schaltflächen "+" und "−" neben dem Modifikator, um Boni oder Abzüge anzuwenden (wie den Attributsmodifikator in D&D). Der Modifikator wird automatisch zur Gesamtsumme addiert.' },
34
+ { name: 'Würfeln', text: 'Drücken Sie die Schaltfläche "Würfeln". Das rechte Feld zeigt die Gesamtsumme und die Aufschlüsselung der einzelnen Würfel, wobei Kritische Erfolge (Maximum) grün und Patzer (Minimum) rot markiert sind.' },
35
+ { name: 'Historie prüfen', text: 'Jeder Wurf wird in der Historie mit der verwendeten Würfelformel, dem Gesamtergebnis und der genauen Zeit aufgezeichnet. Sie können die Historie mit der entsprechenden Schaltfläche löschen.' },
36
+ ];
37
+
38
+ const faqSchema: WithContext<FAQPage> = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema: WithContext<HowTo> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema: WithContext<SoftwareApplication> = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
68
+ inLanguage: 'de',
69
+ };
70
+
71
+ export const content: DiceRollerLocaleContent = {
72
+ slug,
73
+ title,
74
+ description,
75
+ faqTitle: 'Häufig gestellte Fragen',
76
+ bibliographyTitle: 'Zufalls-Bibliographie',
77
+ ui: {
78
+ title: 'Würfel Simulator',
79
+ description: 'Möge das Glück mit dir sein.',
80
+ rollBtn: 'Würfeln',
81
+ totalLabel: 'Summe',
82
+ historyLabel: 'Historie',
83
+ clearHistoryBtn: 'Historie löschen',
84
+ faqTitle: 'FAQ',
85
+ bibliographyTitle: 'Referenzen',
86
+ addDiceLabel: 'Würfel zum Beutel hinzufügen',
87
+ bagLabel: 'Würfelbeutel',
88
+ emptyBagBtn: 'Leeren',
89
+ emptyBagText: 'Klicke auf die Würfel, um sie hinzuzufügen',
90
+ modifierLabel: 'Modifikator',
91
+ rollManyLabel: '$COUNT Würfel werfen',
92
+ rollOneLabel: '$COUNT Würfel werfen',
93
+ preRollText: 'Würfel hinzufügen und werfen',
94
+ emptyHistoryText: 'Wurfhistorie wird hier angezeigt'
95
+ },
96
+ seo: [
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.' },
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.' },
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.',
109
+ ]},
110
+ { type: 'stats', items: [
111
+ { value: '5000 v. Chr.', label: 'Erste Würfel (Astragali)', icon: 'mdi:history' },
112
+ { value: '1974', label: 'D&D machte das Set bekannt', icon: 'mdi:sword' },
113
+ { value: '7 Typen', label: 'Standard RPG Würfel', icon: 'mdi:dice-multiple' },
114
+ { value: '2¹²⁸', label: 'JS Zufallsperiode', icon: 'mdi:function-variant' },
115
+ ], columns: 4 },
116
+ { type: 'title', text: 'Wahrscheinlichkeiten und Verteilungskurven', level: 3 },
117
+ { type: 'paragraph', html: 'Wenn Sie einen einzelnen Würfel werfen, erhalten Sie eine <strong>diskrete Gleichverteilung</strong>: jedes Ergebnis hat genau die gleiche Wahrscheinlichkeit (1/n). Sobald Sie jedoch mehrere Würfel kombinieren, verwandelt die mathematische Magie diese flache Kurve in eine <strong>annähernde Normalverteilung</strong>. Deshalb ist 2d6 nicht gleich 1d12: Bei zwei sechsseitigen Würfeln beträgt die Wahrscheinlichkeit, eine 7 zu würfeln, 6/36 ≈ 16,7 %, während die Extreme (2 und 12) nur in 2,8 % der Fälle auftreten.' },
118
+ { type: 'tip', title: 'Vorteil und Nachteil (D&D 5e)', html: 'Die <strong>Vorteils</strong>-Mechanik besteht darin, 2d20 zu würfeln und das höhere Ergebnis zu behalten. Mathematisch erhöht dies den Durchschnitt von 10,5 auf etwa 13,8. <strong>Nachteil</strong> bewirkt das Gegenteil: Nehmen Sie den niedrigeren Wert, wodurch der Durchschnitt auf etwa 7,2 sinkt. Unser Simulator ermöglicht es Ihnen, dies zu simulieren, indem Sie zwei d20 zum Beutel hinzufügen und die Einzelergebnisse vergleichen.' },
119
+ { type: 'title', text: 'Modifikatoren: Die Brücke zwischen Würfeln und Charakter', level: 3 },
120
+ { type: 'paragraph', html: 'In den meisten Rollenspielsystemen agiert der Würfel nicht allein: Ein <strong>Modifikator</strong>, der die Fähigkeiten des Charakters darstellt, wird addiert oder subtrahiert. In D&D 5e bedeutet ein Stärkemodifikator von +5, dass Sie 1d20 würfeln, 5 addieren und das Ergebnis gegen die Rüstungsklasse des Gegners prüfen. Unser Simulator enthält eine Modifikatorsteuerung, um diese Mechaniken originalgetreu abzubilden.' },
121
+ { type: 'tip', title: 'Standard Würfel Notation', html: 'Die <strong>XdY+Z</strong>-Notation ist der De-facto-Standard in Rollenspielen: X Würfel mit Y Flächen mit Modifikator Z. "3d6+2" bedeutet, drei sechsseitige Würfel zu werfen und 2 zur Summe zu addieren. Unser Werkzeug verwendet diese Notation in der Historie, damit Sie Ihre Würfe leicht teilen oder aufzeichnen können.' },
122
+ { type: 'glossary', items: [
123
+ { term: 'Kritischer Treffer', definition: 'Ein Wurf des maximalen Wertes auf einem Würfel (z. B. eine 20 auf einem d20). Löst in den meisten RPG-Systemen normalerweise spezielle Bonuseffekte aus.' },
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
+ { 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
+ { 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 1–100 zu erhalten, verwendet in fertigkeitsbasierten Systemen, in denen Fähigkeiten als Prozentsätze gemessen werden.' },
128
+ ]},
129
+ ],
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
+ ],
136
+ howTo,
137
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
138
+ };
@@ -1,9 +1,77 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
1
2
  import type { DiceRollerLocaleContent } from '../index';
2
3
 
4
+ const slug = 'dice-roller';
5
+ const title = 'Dice Roller';
6
+ const description = 'A complete dice simulator for your RPG and board games. Roll d4, d6, d8, d10, d12, d20 and d100 with modifiers and history.';
7
+
8
+ const faq: DiceRollerLocaleContent['faq'] = [
9
+ {
10
+ question: 'How can I simulate a roll with advantage (D&D)?',
11
+ answer: 'Add two d20 dice to the bag by clicking the d20 button twice. When rolling, observe the two individual results and keep the higher one. The displayed total will be the sum, but you can see each die separately in the result breakdown.',
12
+ },
13
+ {
14
+ question: 'What does the green or red color on results mean?',
15
+ answer: 'Green results indicate that die rolled its maximum possible value (a "critical"). Red results indicate the minimum value (a "1", the worst possible result). This makes it easy to spot crits and fumbles at a glance.',
16
+ },
17
+ {
18
+ question: 'Can I add multiple dice of the same type?',
19
+ answer: 'Yes. Each click on a die adds it to the bag. If you click the d6 three times, the bag will show "3d6". To reduce the count, click the "−" button that appears next to each die group in the bag.',
20
+ },
21
+ {
22
+ question: 'Are digital dice as random as physical ones?',
23
+ answer: 'Statistically, yes. Modern JavaScript engines use pseudorandom algorithms (xorshift128+) with very high quality uniform distribution. A real physical die can have small manufacturing imperfections that bias results; the digital die does not have that problem.',
24
+ },
25
+ {
26
+ question: 'What is the d100 and how is it used?',
27
+ answer: 'The d100 (or d%) generates a number from 1 to 100 and is used in percentage-based game systems, such as Call of Cthulhu or Warhammer Fantasy Roleplay. It represents "direct probability": if your Stealth skill is 65%, you need to roll 65 or less to succeed.',
28
+ },
29
+ ];
30
+
31
+ const howTo: DiceRollerLocaleContent['howTo'] = [
32
+ { name: 'Build the dice pool', text: 'Click the die buttons (d4, d6, d8...) to add them to your pool. Each click adds one die of the selected type. You can mix different types in the same roll.' },
33
+ { name: 'Adjust the modifier', text: 'Use the "+" and "−" buttons next to the modifier to apply bonuses or penalties (like the ability modifier in D&D). The modifier is automatically added to the total.' },
34
+ { name: 'Roll the dice', text: 'Press the "Roll Dice" button. The right panel shows the final total and the breakdown of each individual die, with crits (maximum) in green and fumbles (minimum) in red.' },
35
+ { name: 'Check the history', text: 'Each roll is recorded in the history with the dice expression used, the total result, and the exact time. You can clear the history with the corresponding button.' },
36
+ ];
37
+
38
+ const faqSchema: WithContext<FAQPage> = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema: WithContext<HowTo> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema: WithContext<SoftwareApplication> = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
68
+ inLanguage: 'en',
69
+ };
70
+
3
71
  export const content: DiceRollerLocaleContent = {
4
- slug: 'dice-roller',
5
- title: 'Dice Roller',
6
- description: 'A complete dice simulator for your RPG and board games. Roll d4, d6, d8, d10, d12, d20 and d100 with modifiers and history.',
72
+ slug,
73
+ title,
74
+ description,
7
75
  faqTitle: 'Frequently Asked Questions',
8
76
  bibliographyTitle: 'Chance Bibliography',
9
77
  ui: {
@@ -59,38 +127,12 @@ export const content: DiceRollerLocaleContent = {
59
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.' },
60
128
  ]},
61
129
  ],
62
- faq: [
63
- {
64
- question: 'How can I simulate a roll with advantage (D&D)?',
65
- answer: 'Add two d20 dice to the bag by clicking the d20 button twice. When rolling, observe the two individual results and keep the higher one. The displayed total will be the sum, but you can see each die separately in the result breakdown.',
66
- },
67
- {
68
- question: 'What does the green or red color on results mean?',
69
- answer: 'Green results indicate that die rolled its maximum possible value (a "critical"). Red results indicate the minimum value (a "1", the worst possible result). This makes it easy to spot crits and fumbles at a glance.',
70
- },
71
- {
72
- question: 'Can I add multiple dice of the same type?',
73
- answer: 'Yes. Each click on a die adds it to the bag. If you click the d6 three times, the bag will show "3d6". To reduce the count, click the "−" button that appears next to each die group in the bag.',
74
- },
75
- {
76
- question: 'Are digital dice as random as physical ones?',
77
- answer: 'Statistically, yes. Modern JavaScript engines use pseudorandom algorithms (xorshift128+) with very high quality uniform distribution. A real physical die can have small manufacturing imperfections that bias results; the digital die does not have that problem.',
78
- },
79
- {
80
- question: 'What is the d100 and how is it used?',
81
- answer: 'The d100 (or d%) generates a number from 1 to 100 and is used in percentage-based game systems, such as Call of Cthulhu or Warhammer Fantasy Roleplay. It represents "direct probability": if your Stealth skill is 65%, you need to roll 65 or less to succeed.',
82
- },
83
- ],
130
+ faq,
84
131
  bibliography: [
85
132
  { name: 'D&D Beyond – Dice mechanics rules', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
86
133
  { name: 'Roll20 – Virtual tabletop and dice systems', url: 'https://roll20.net/' },
87
134
  { name: 'Pathfinder – d20 System Reference', url: 'https://paizo.com/pathfinder' },
88
135
  ],
89
- howTo: [
90
- { name: 'Build the dice pool', text: 'Click the die buttons (d4, d6, d8...) to add them to your pool. Each click adds one die of the selected type. You can mix different types in the same roll.' },
91
- { name: 'Adjust the modifier', text: 'Use the "+" and "−" buttons next to the modifier to apply bonuses or penalties (like the ability modifier in D&D). The modifier is automatically added to the total.' },
92
- { name: 'Roll the dice', text: 'Press the "Roll Dice" button. The right panel shows the final total and the breakdown of each individual die, with crits (maximum) in green and fumbles (minimum) in red.' },
93
- { name: 'Check the history', text: 'Each roll is recorded in the history with the dice expression used, the total result, and the exact time. You can clear the history with the corresponding button.' },
94
- ],
95
- schemas: []
136
+ howTo,
137
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
96
138
  };
@@ -1,9 +1,77 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
1
2
  import type { DiceRollerLocaleContent } from '../index';
2
3
 
4
+ const slug = 'lanzador-dados';
5
+ const title = 'Tirador de Dados';
6
+ const description = 'Simulador de dados virtual con bolsa personalizable, modificadores y historial de tiradas para tus juegos de rol y tablero.';
7
+
8
+ const faq: DiceRollerLocaleContent['faq'] = [
9
+ {
10
+ question: '¿Cómo puedo simular una tirada con ventaja (D&D)?',
11
+ answer: 'Añade dos dados d20 a la bolsa haciendo clic dos veces en el botón d20. Al lanzar, observa los dos resultados individuales y quédate con el mayor. El total mostrado será la suma, pero puedes ver cada dado por separado en el desglose de resultados.',
12
+ },
13
+ {
14
+ question: '¿Qué significa el color verde o rojo en los resultados?',
15
+ answer: 'Los resultados en verde indican que ese dado ha sacado su valor máximo posible (un "crítico"). Los resultados en rojo indican el valor mínimo (un "1", el peor resultado posible). Esto facilita identificar críticos y pifias de un vistazo.',
16
+ },
17
+ {
18
+ question: '¿Puedo añadir varios dados del mismo tipo?',
19
+ answer: 'Sí. Cada clic en un dado lo añade a la bolsa. Si haces clic tres veces en d6, la bolsa mostrará "3d6". Para reducir la cantidad, haz clic en el botón "−" que aparece junto a cada grupo de dados en la bolsa.',
20
+ },
21
+ {
22
+ question: '¿Los dados digitales son tan aleatorios como los físicos?',
23
+ answer: 'Estadísticamente, sí. Los motores JavaScript modernos usan algoritmos pseudoaleatorios (xorshift128+) con distribución uniforme de muy alta calidad. Un dado físico real puede tener pequeñas imperfecciones de fabricación que sesguen los resultados; el dado digital no tiene ese problema.',
24
+ },
25
+ {
26
+ question: '¿Qué es el d100 y cómo se usa?',
27
+ answer: 'El d100 (o d%) genera un número del 1 al 100 y se usa en sistemas de juego basados en porcentajes, como Call of Cthulhu o Warhammer Fantasy Roleplay. Representa "probabilidad directa": si tu habilidad de Sigilo es 65%, necesitas sacar 65 o menos para tener éxito.',
28
+ },
29
+ ];
30
+
31
+ const howTo: DiceRollerLocaleContent['howTo'] = [
32
+ { name: 'Construir la bolsa de dados', text: 'Haz clic en los botones de dado (d4, d6, d8...) para añadirlos a tu bolsa. Cada clic añade un dado del tipo seleccionado. Puedes mezclar tipos distintos en la misma tirada.' },
33
+ { name: 'Ajustar el modificador', text: 'Usa los botones "+" y "−" junto al modificador para aplicar bonificaciones o penalizaciones (como el modificador de habilidad en D&D). El modificador se suma automáticamente al total.' },
34
+ { name: 'Lanzar los dados', text: 'Pulsa el botón "Lanzar dados". El panel derecho muestra el total final y el desglose de cada dado individual, con los críticos (máximo) en verde y las pifias (mínimo) en rojo.' },
35
+ { name: 'Consultar el historial', text: 'Cada tirada queda registrada en el historial con la expresión de dados usada, el resultado total y la hora exacta. Puedes limpiar el historial con el botón correspondiente.' },
36
+ ];
37
+
38
+ const faqSchema: WithContext<FAQPage> = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema: WithContext<HowTo> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema: WithContext<SoftwareApplication> = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
68
+ inLanguage: 'es',
69
+ };
70
+
3
71
  export const content: DiceRollerLocaleContent = {
4
- slug: 'tirador-dados',
5
- title: 'Tirador de Dados',
6
- description: 'Simulador de dados virtual con bolsa personalizable, modificadores y historial de tiradas para tus juegos de rol y tablero.',
72
+ slug,
73
+ title,
74
+ description,
7
75
  faqTitle: 'Preguntas Frecuentes',
8
76
  bibliographyTitle: 'Bibliografía del Azar',
9
77
  ui: {
@@ -61,38 +129,12 @@ export const content: DiceRollerLocaleContent = {
61
129
  { term: 'Tirada percentil', definition: 'Tirada usando dos d10 para producir un resultado del 1 al 100, usada en sistemas de habilidades basados en porcentajes.' },
62
130
  ]},
63
131
  ],
64
- faq: [
65
- {
66
- question: '¿Cómo puedo simular una tirada con ventaja (D&D)?',
67
- answer: 'Añade dos dados d20 a la bolsa haciendo clic dos veces en el botón d20. Al lanzar, observa los dos resultados individuales y quédate con el mayor. El total mostrado será la suma, pero puedes ver cada dado por separado en el desglose de resultados.',
68
- },
69
- {
70
- question: '¿Qué significa el color verde o rojo en los resultados?',
71
- answer: 'Los resultados en verde indican que ese dado ha sacado su valor máximo posible (un "crítico"). Los resultados en rojo indican el valor mínimo (un "1", el peor resultado posible). Esto facilita identificar críticos y pifias de un vistazo.',
72
- },
73
- {
74
- question: '¿Puedo añadir varios dados del mismo tipo?',
75
- answer: 'Sí. Cada clic en un dado lo añade a la bolsa. Si haces clic tres veces en d6, la bolsa mostrará "3d6". Para reducir la cantidad, haz clic en el botón "−" que aparece junto a cada grupo de dados en la bolsa.',
76
- },
77
- {
78
- question: '¿Los dados digitales son tan aleatorios como los físicos?',
79
- answer: 'Estadísticamente, sí. Los motores JavaScript modernos usan algoritmos pseudoaleatorios (xorshift128+) con distribución uniforme de muy alta calidad. Un dado físico real puede tener pequeñas imperfecciones de fabricación que sesguen los resultados; el dado digital no tiene ese problema.',
80
- },
81
- {
82
- question: '¿Qué es el d100 y cómo se usa?',
83
- answer: 'El d100 (o d%) genera un número del 1 al 100 y se usa en sistemas de juego basados en porcentajes, como Call of Cthulhu o Warhammer Fantasy Roleplay. Representa "probabilidad directa": si tu habilidad de Sigilo es 65%, necesitas sacar 65 o menos para tener éxito.',
84
- },
85
- ],
132
+ faq,
86
133
  bibliography: [
87
134
  { name: 'D&D Beyond – Reglas de mecánicas de dados', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
88
135
  { name: 'Roll20 – Virtual tabletop y sistemas de dados', url: 'https://roll20.net/' },
89
136
  { name: 'Pathfinder – Sistema d20 de referencia', url: 'https://paizo.com/pathfinder' },
90
137
  ],
91
- howTo: [
92
- { name: 'Construir la bolsa de dados', text: 'Haz clic en los botones de dado (d4, d6, d8...) para añadirlos a tu bolsa. Cada clic añade un dado del tipo seleccionado. Puedes mezclar tipos distintos en la misma tirada.' },
93
- { name: 'Ajustar el modificador', text: 'Usa los botones "+" y "−" junto al modificador para aplicar bonificaciones o penalizaciones (como el modificador de habilidad en D&D). El modificador se suma automáticamente al total.' },
94
- { name: 'Lanzar los dados', text: 'Pulsa el botón "Lanzar dados". El panel derecho muestra el total final y el desglose de cada dado individual, con los críticos (máximo) en verde y las pifias (mínimo) en rojo.' },
95
- { name: 'Consultar el historial', text: 'Cada tirada queda registrada en el historial con la expresión de dados usada, el resultado total y la hora exacta. Puedes limpiar el historial con el botón correspondiente.' },
96
- ],
97
- schemas: []
138
+ howTo,
139
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
98
140
  };
@@ -1,9 +1,77 @@
1
+ import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
1
2
  import type { DiceRollerLocaleContent } from '../index';
2
3
 
4
+ const slug = 'lanceur-de-des';
5
+ const title = 'Lanceur de Dés';
6
+ const description = 'Un simulateur de dés complet pour vos JdR et jeux de société. Lancez des d4, d6, d8, d10, d12, d20 et d100 avec modificateurs et historique.';
7
+
8
+ const faq: DiceRollerLocaleContent['faq'] = [
9
+ {
10
+ question: 'Comment simuler un lancer avec avantage (D&D) ?',
11
+ answer: 'Ajoutez deux dés d20 à votre réserve en cliquant deux fois sur le bouton d20. Lors du lancer, observez les deux résultats individuels et gardez le plus élevé. Le total affiché sera la somme, mais vous pouvez voir chaque dé séparément dans le détail du résultat.',
12
+ },
13
+ {
14
+ question: 'Que signifient les couleurs verte ou rouge sur les résultats ?',
15
+ answer: 'Les résultats en vert indiquent que le dé a obtenu sa valeur maximale possible (un "critique"). Les résultats en rouge indiquent la valeur minimale (un "1", le pire résultat possible). Cela permet de repérer les critiques et les échecs d\'un coup d\'œil.',
16
+ },
17
+ {
18
+ question: 'Puis-je ajouter plusieurs dés du même type ?',
19
+ answer: 'Oui. Chaque clic sur un dé l\'ajoute à votre réserve. Si vous cliquez trois fois sur le d6, la réserve affichera "3d6". Pour réduire le nombre, cliquez sur le bouton "−" qui apparaît à côté de chaque groupe de dés.',
20
+ },
21
+ {
22
+ question: 'Les dés numériques sont-ils aussi aléatoires que les physiques ?',
23
+ answer: 'Statistiquement, oui. Les moteurs JavaScript modernes utilisent des algorithmes pseudo-aléatoires (xorshift128+) avec une distribution uniforme de très haute qualité. Un vrai dé physique peut présenter de petites imperfections de fabrication qui biaisent les résultats ; le dé numérique n\'a pas ce problème.',
24
+ },
25
+ {
26
+ 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
+ },
29
+ ];
30
+
31
+ const howTo: DiceRollerLocaleContent['howTo'] = [
32
+ { name: 'Composer la réserve de dés', text: 'Cliquez sur les boutons des dés (d4, d6, d8...) pour les ajouter à votre réserve. Chaque clic ajoute un dé du type sélectionné. Vous pouvez mélanger différents types dans le même lancer.' },
33
+ { name: 'Ajuster le modificateur', text: 'Utilisez les boutons "+" et "−" à côté du modificateur pour appliquer des bonus ou des pénalités (comme le modificateur de caractéristique dans D&D). Le modificateur est automatiquement ajouté au total.' },
34
+ { name: 'Lancer les dés', text: 'Appuyez sur le bouton "Lancer les dés". Le panneau de droite affiche le total final et le détail de chaque dé individuel, avec les critiques (maximum) en vert et les échecs (minimum) en rouge.' },
35
+ { name: 'Consulter l\'historique', text: 'Chaque lancer est enregistré dans l\'historique avec l\'expression de dés utilisée, le résultat total et l\'heure exacte. Vous pouvez effacer l\'historique avec le bouton correspondant.' },
36
+ ];
37
+
38
+ const faqSchema: WithContext<FAQPage> = {
39
+ '@context': 'https://schema.org',
40
+ '@type': 'FAQPage',
41
+ mainEntity: faq.map((item) => ({
42
+ '@type': 'Question',
43
+ name: item.question,
44
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
45
+ })),
46
+ };
47
+
48
+ const howToSchema: WithContext<HowTo> = {
49
+ '@context': 'https://schema.org',
50
+ '@type': 'HowTo',
51
+ name: title,
52
+ description,
53
+ step: howTo.map((step) => ({
54
+ '@type': 'HowToStep',
55
+ name: step.name,
56
+ text: step.text,
57
+ })),
58
+ };
59
+
60
+ const appSchema: WithContext<SoftwareApplication> = {
61
+ '@context': 'https://schema.org',
62
+ '@type': 'SoftwareApplication',
63
+ name: title,
64
+ description,
65
+ applicationCategory: 'UtilitiesApplication',
66
+ operatingSystem: 'Web',
67
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
68
+ inLanguage: 'fr',
69
+ };
70
+
3
71
  export const content: DiceRollerLocaleContent = {
4
- slug: 'lanceur-de-des',
5
- title: 'Lanceur de Dés',
6
- description: 'Un simulateur de dés complet pour vos JdR et jeux de société. Lancez des d4, d6, d8, d10, d12, d20 et d100 avec modificateurs et historique.',
72
+ slug,
73
+ title,
74
+ description,
7
75
  faqTitle: 'Questions Fréquemment Posées',
8
76
  bibliographyTitle: 'Bibliographie du Hasard',
9
77
  ui: {
@@ -59,38 +127,12 @@ export const content: DiceRollerLocaleContent = {
59
127
  { term: 'Lancer Centile', definition: 'Un lancer utilisant deux d10 pour produire un résultat de 1 à 100, utilisé dans les systèmes basés sur les compétences où les capacités sont mesurées en pourcentages.' },
60
128
  ]},
61
129
  ],
62
- faq: [
63
- {
64
- question: 'Comment simuler un lancer avec avantage (D&D) ?',
65
- answer: 'Ajoutez deux dés d20 à votre réserve en cliquant deux fois sur le bouton d20. Lors du lancer, observez les deux résultats individuels et gardez le plus élevé. Le total affiché sera la somme, mais vous pouvez voir chaque dé séparément dans le détail du résultat.',
66
- },
67
- {
68
- question: 'Que signifient les couleurs verte ou rouge sur les résultats ?',
69
- answer: 'Les résultats en vert indiquent que le dé a obtenu sa valeur maximale possible (un "critique"). Les résultats en rouge indiquent la valeur minimale (un "1", le pire résultat possible). Cela permet de repérer les critiques et les échecs d\'un coup d\'œil.',
70
- },
71
- {
72
- question: 'Puis-je ajouter plusieurs dés du même type ?',
73
- answer: 'Oui. Chaque clic sur un dé l\'ajoute à votre réserve. Si vous cliquez trois fois sur le d6, la réserve affichera "3d6". Pour réduire le nombre, cliquez sur le bouton "−" qui apparaît à côté de chaque groupe de dés.',
74
- },
75
- {
76
- question: 'Les dés numériques sont-ils aussi aléatoires que les physiques ?',
77
- answer: 'Statistiquement, oui. Les moteurs JavaScript modernes utilisent des algorithmes pseudo-aléatoires (xorshift128+) avec une distribution uniforme de très haute qualité. Un vrai dé physique peut présenter de petites imperfections de fabrication qui biaisent les résultats ; le dé numérique n\'a pas ce problème.',
78
- },
79
- {
80
- question: 'Qu\'est-ce que le d100 et comment est-il utilisé ?',
81
- 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.',
82
- },
83
- ],
130
+ faq,
84
131
  bibliography: [
85
132
  { name: 'D&D Beyond – Règles des mécaniques de dés', url: 'https://www.dndbeyond.com/sources/basic-rules/using-ability-scores' },
86
133
  { name: 'Roll20 – Table de jeu virtuelle et systèmes de dés', url: 'https://roll20.net/' },
87
134
  { name: 'Pathfinder – Référence du système d20', url: 'https://paizo.com/pathfinder' },
88
135
  ],
89
- howTo: [
90
- { name: 'Composer la réserve de dés', text: 'Cliquez sur les boutons des dés (d4, d6, d8...) pour les ajouter à votre réserve. Chaque clic ajoute un dé du type sélectionné. Vous pouvez mélanger différents types dans le même lancer.' },
91
- { name: 'Ajuster le modificateur', text: 'Utilisez les boutons "+" et "−" à côté du modificateur pour appliquer des bonus ou des pénalités (comme le modificateur de caractéristique dans D&D). Le modificateur est automatiquement ajouté au total.' },
92
- { name: 'Lancer les dés', text: 'Appuyez sur le bouton "Lancer les dés". Le panneau de droite affiche le total final et le détail de chaque dé individuel, avec les critiques (maximum) en vert et les échecs (minimum) en rouge.' },
93
- { name: 'Consulter l\'historique', text: 'Chaque lancer est enregistré dans l\'historique avec l\'expression de dés utilisée, le résultat total et l\'heure exacte. Vous pouvez effacer l\'historique avec le bouton correspondant.' },
94
- ],
95
- schemas: []
136
+ howTo,
137
+ schemas: [faqSchema as any, howToSchema as any, appSchema],
96
138
  };