@jjlmoya/utils-tabletop 1.4.0 → 1.6.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 (163) hide show
  1. package/package.json +5 -3
  2. package/src/entries.ts +15 -1
  3. package/src/index.ts +3 -0
  4. package/src/tests/locale_completeness.test.ts +2 -1
  5. package/src/tests/tool_validation.test.ts +2 -1
  6. package/src/tool/decision-wheel/audio.ts +78 -0
  7. package/src/tool/decision-wheel/bibliography.astro +16 -0
  8. package/src/tool/decision-wheel/bibliography.ts +8 -0
  9. package/src/tool/decision-wheel/client.ts +226 -0
  10. package/src/tool/decision-wheel/component.astro +48 -0
  11. package/src/tool/decision-wheel/components/SegmentEditor.astro +22 -0
  12. package/src/tool/decision-wheel/components/SpinHistory.astro +17 -0
  13. package/src/tool/decision-wheel/components/SpinResult.astro +13 -0
  14. package/src/tool/decision-wheel/components/WheelCanvas.astro +23 -0
  15. package/src/tool/decision-wheel/decision-wheel.css +632 -0
  16. package/src/tool/decision-wheel/drawing.ts +144 -0
  17. package/src/tool/decision-wheel/entry.ts +48 -0
  18. package/src/tool/decision-wheel/i18n/de.ts +97 -0
  19. package/src/tool/decision-wheel/i18n/en.ts +251 -0
  20. package/src/tool/decision-wheel/i18n/es.ts +93 -0
  21. package/src/tool/decision-wheel/i18n/fr.ts +93 -0
  22. package/src/tool/decision-wheel/i18n/id.ts +93 -0
  23. package/src/tool/decision-wheel/i18n/it.ts +93 -0
  24. package/src/tool/decision-wheel/i18n/ja.ts +93 -0
  25. package/src/tool/decision-wheel/i18n/ko.ts +93 -0
  26. package/src/tool/decision-wheel/i18n/nl.ts +93 -0
  27. package/src/tool/decision-wheel/i18n/pl.ts +93 -0
  28. package/src/tool/decision-wheel/i18n/pt.ts +93 -0
  29. package/src/tool/decision-wheel/i18n/ru.ts +75 -0
  30. package/src/tool/decision-wheel/i18n/sv.ts +93 -0
  31. package/src/tool/decision-wheel/i18n/tr.ts +93 -0
  32. package/src/tool/decision-wheel/i18n/zh.ts +93 -0
  33. package/src/tool/decision-wheel/index.ts +9 -0
  34. package/src/tool/decision-wheel/logic.test.ts +163 -0
  35. package/src/tool/decision-wheel/logic.ts +145 -0
  36. package/src/tool/decision-wheel/seo.astro +16 -0
  37. package/src/tool/decision-wheel/types.ts +14 -0
  38. package/src/tool/decision-wheel/ui.ts +121 -0
  39. package/src/tool/fantasy-runes-translator/bibliography.astro +16 -0
  40. package/src/tool/fantasy-runes-translator/bibliography.ts +16 -0
  41. package/src/tool/fantasy-runes-translator/client.ts +205 -0
  42. package/src/tool/fantasy-runes-translator/component.astro +95 -0
  43. package/src/tool/fantasy-runes-translator/entry.ts +56 -0
  44. package/src/tool/fantasy-runes-translator/fantasy-runes-translator.css +712 -0
  45. package/src/tool/fantasy-runes-translator/i18n/de.ts +139 -0
  46. package/src/tool/fantasy-runes-translator/i18n/en.ts +139 -0
  47. package/src/tool/fantasy-runes-translator/i18n/es.ts +139 -0
  48. package/src/tool/fantasy-runes-translator/i18n/fr.ts +139 -0
  49. package/src/tool/fantasy-runes-translator/i18n/id.ts +139 -0
  50. package/src/tool/fantasy-runes-translator/i18n/it.ts +139 -0
  51. package/src/tool/fantasy-runes-translator/i18n/ja.ts +139 -0
  52. package/src/tool/fantasy-runes-translator/i18n/ko.ts +139 -0
  53. package/src/tool/fantasy-runes-translator/i18n/nl.ts +139 -0
  54. package/src/tool/fantasy-runes-translator/i18n/pl.ts +139 -0
  55. package/src/tool/fantasy-runes-translator/i18n/pt.ts +139 -0
  56. package/src/tool/fantasy-runes-translator/i18n/ru.ts +139 -0
  57. package/src/tool/fantasy-runes-translator/i18n/sv.ts +139 -0
  58. package/src/tool/fantasy-runes-translator/i18n/tr.ts +139 -0
  59. package/src/tool/fantasy-runes-translator/i18n/zh.ts +139 -0
  60. package/src/tool/fantasy-runes-translator/index.ts +9 -0
  61. package/src/tool/fantasy-runes-translator/logic.ts +174 -0
  62. package/src/tool/fantasy-runes-translator/seo.astro +16 -0
  63. package/src/tool/fantasy-runes-translator/types.ts +26 -0
  64. package/src/tool/investigation-board/bibliography.astro +16 -0
  65. package/src/tool/investigation-board/bibliography.ts +12 -0
  66. package/src/tool/investigation-board/boardContextMenu.ts +64 -0
  67. package/src/tool/investigation-board/client.ts +223 -0
  68. package/src/tool/investigation-board/component.astro +23 -0
  69. package/src/tool/investigation-board/components/BoardCanvas.astro +39 -0
  70. package/src/tool/investigation-board/components/CardDrawer.astro +73 -0
  71. package/src/tool/investigation-board/components/ConnectionModal.astro +49 -0
  72. package/src/tool/investigation-board/components/ContextMenu.astro +26 -0
  73. package/src/tool/investigation-board/components/ControlPanel.astro +57 -0
  74. package/src/tool/investigation-board/connectionModal.ts +60 -0
  75. package/src/tool/investigation-board/dom.ts +89 -0
  76. package/src/tool/investigation-board/drawer.ts +110 -0
  77. package/src/tool/investigation-board/entry.ts +59 -0
  78. package/src/tool/investigation-board/i18n/de.ts +126 -0
  79. package/src/tool/investigation-board/i18n/en.ts +127 -0
  80. package/src/tool/investigation-board/i18n/es.ts +126 -0
  81. package/src/tool/investigation-board/i18n/fr.ts +126 -0
  82. package/src/tool/investigation-board/i18n/id.ts +126 -0
  83. package/src/tool/investigation-board/i18n/it.ts +126 -0
  84. package/src/tool/investigation-board/i18n/ja.ts +126 -0
  85. package/src/tool/investigation-board/i18n/ko.ts +126 -0
  86. package/src/tool/investigation-board/i18n/nl.ts +126 -0
  87. package/src/tool/investigation-board/i18n/pl.ts +126 -0
  88. package/src/tool/investigation-board/i18n/pt.ts +126 -0
  89. package/src/tool/investigation-board/i18n/ru.ts +126 -0
  90. package/src/tool/investigation-board/i18n/sv.ts +126 -0
  91. package/src/tool/investigation-board/i18n/tr.ts +126 -0
  92. package/src/tool/investigation-board/i18n/zh.ts +126 -0
  93. package/src/tool/investigation-board/index.ts +11 -0
  94. package/src/tool/investigation-board/interactDrag.ts +58 -0
  95. package/src/tool/investigation-board/investigation-board.css +799 -0
  96. package/src/tool/investigation-board/layout.ts +16 -0
  97. package/src/tool/investigation-board/logic.test.ts +105 -0
  98. package/src/tool/investigation-board/logic.ts +106 -0
  99. package/src/tool/investigation-board/panzoom.ts +24 -0
  100. package/src/tool/investigation-board/renderer.ts +256 -0
  101. package/src/tool/investigation-board/seo.astro +16 -0
  102. package/src/tool/investigation-board/stateManager.ts +126 -0
  103. package/src/tool/investigation-board/types.ts +26 -0
  104. package/src/tool/rpg-initiative-tracker/bibliography.astro +16 -0
  105. package/src/tool/rpg-initiative-tracker/bibliography.ts +12 -0
  106. package/src/tool/rpg-initiative-tracker/client.ts +201 -0
  107. package/src/tool/rpg-initiative-tracker/component.astro +23 -0
  108. package/src/tool/rpg-initiative-tracker/components/AddForm.astro +49 -0
  109. package/src/tool/rpg-initiative-tracker/components/CombatantList.astro +16 -0
  110. package/src/tool/rpg-initiative-tracker/components/TurnControls.astro +28 -0
  111. package/src/tool/rpg-initiative-tracker/entry.ts +50 -0
  112. package/src/tool/rpg-initiative-tracker/i18n/de.ts +266 -0
  113. package/src/tool/rpg-initiative-tracker/i18n/en.ts +263 -0
  114. package/src/tool/rpg-initiative-tracker/i18n/es.ts +264 -0
  115. package/src/tool/rpg-initiative-tracker/i18n/fr.ts +263 -0
  116. package/src/tool/rpg-initiative-tracker/i18n/id.ts +263 -0
  117. package/src/tool/rpg-initiative-tracker/i18n/it.ts +263 -0
  118. package/src/tool/rpg-initiative-tracker/i18n/ja.ts +263 -0
  119. package/src/tool/rpg-initiative-tracker/i18n/ko.ts +263 -0
  120. package/src/tool/rpg-initiative-tracker/i18n/nl.ts +263 -0
  121. package/src/tool/rpg-initiative-tracker/i18n/pl.ts +264 -0
  122. package/src/tool/rpg-initiative-tracker/i18n/pt.ts +263 -0
  123. package/src/tool/rpg-initiative-tracker/i18n/ru.ts +264 -0
  124. package/src/tool/rpg-initiative-tracker/i18n/sv.ts +263 -0
  125. package/src/tool/rpg-initiative-tracker/i18n/tr.ts +263 -0
  126. package/src/tool/rpg-initiative-tracker/i18n/zh.ts +263 -0
  127. package/src/tool/rpg-initiative-tracker/index.ts +9 -0
  128. package/src/tool/rpg-initiative-tracker/logic.test.ts +121 -0
  129. package/src/tool/rpg-initiative-tracker/logic.ts +122 -0
  130. package/src/tool/rpg-initiative-tracker/rpg-initiative-tracker.css +617 -0
  131. package/src/tool/rpg-initiative-tracker/seo.astro +16 -0
  132. package/src/tool/rpg-initiative-tracker/types.ts +15 -0
  133. package/src/tool/score-tracker/bibliography.astro +16 -0
  134. package/src/tool/score-tracker/bibliography.ts +12 -0
  135. package/src/tool/score-tracker/client.ts +248 -0
  136. package/src/tool/score-tracker/component.astro +34 -0
  137. package/src/tool/score-tracker/components/Leaderboard.astro +19 -0
  138. package/src/tool/score-tracker/components/PlayerSetup.astro +32 -0
  139. package/src/tool/score-tracker/components/RoundScoring.astro +22 -0
  140. package/src/tool/score-tracker/components/ScoreHistory.astro +25 -0
  141. package/src/tool/score-tracker/entry.ts +57 -0
  142. package/src/tool/score-tracker/i18n/de.ts +278 -0
  143. package/src/tool/score-tracker/i18n/en.ts +278 -0
  144. package/src/tool/score-tracker/i18n/es.ts +251 -0
  145. package/src/tool/score-tracker/i18n/fr.ts +278 -0
  146. package/src/tool/score-tracker/i18n/id.ts +278 -0
  147. package/src/tool/score-tracker/i18n/it.ts +278 -0
  148. package/src/tool/score-tracker/i18n/ja.ts +278 -0
  149. package/src/tool/score-tracker/i18n/ko.ts +278 -0
  150. package/src/tool/score-tracker/i18n/nl.ts +278 -0
  151. package/src/tool/score-tracker/i18n/pl.ts +278 -0
  152. package/src/tool/score-tracker/i18n/pt.ts +278 -0
  153. package/src/tool/score-tracker/i18n/ru.ts +278 -0
  154. package/src/tool/score-tracker/i18n/sv.ts +278 -0
  155. package/src/tool/score-tracker/i18n/tr.ts +278 -0
  156. package/src/tool/score-tracker/i18n/zh.ts +278 -0
  157. package/src/tool/score-tracker/index.ts +9 -0
  158. package/src/tool/score-tracker/logic.test.ts +83 -0
  159. package/src/tool/score-tracker/logic.ts +122 -0
  160. package/src/tool/score-tracker/score-tracker.css +1029 -0
  161. package/src/tool/score-tracker/seo.astro +16 -0
  162. package/src/tool/score-tracker/types.ts +17 -0
  163. package/src/tools.ts +11 -0
@@ -0,0 +1,278 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ScoreTrackerUI } from '../entry';
4
+
5
+ const ui: ScoreTrackerUI = {
6
+ title: 'Punktezahler',
7
+ addPlayer: 'Spieler hinzufügen',
8
+ removePlayer: 'Entfernen',
9
+ renamePlayer: 'Umbenennen',
10
+ startRound: 'Runde 1 starten',
11
+ nextRound: 'Nächste Runde',
12
+ resetGame: 'Spiel zurücksetzen',
13
+ undoRound: 'Letzte Runde rückgängig',
14
+ playerLabel: 'Spieler',
15
+ scoreLabel: 'Punkte',
16
+ roundLabel: 'Runde',
17
+ totalLabel: 'Gesamt',
18
+ rankLabel: 'Rang',
19
+ leaderboardTitle: 'Rangliste',
20
+ historyTitle: 'Punkteverlauf',
21
+ noPlayersHint: 'Spieler hinzufügen, um mit der Punkteerfassung zu beginnen',
22
+ playerNamePlaceholder: 'Spielername',
23
+ confirmLabel: 'Bestätigen',
24
+ cancelLabel: 'Abbrechen',
25
+ deleteRoundConfirm: 'Die letzte Runde löschen?',
26
+ playerAdded: 'Spieler hinzugefügt',
27
+ playerRemoved: 'Spieler entfernt',
28
+ roundStarted: 'Runde gestartet',
29
+ gameReset: 'Spiel wurde zurückgesetzt',
30
+ noRoundsYet: 'Noch keine Runden aufgezeichnet',
31
+ currentRoundLabel: 'Aktuelle Runde',
32
+ scoringTitle: 'Rundenwertung',
33
+ resetAllLabel: 'Alles zurücksetzen',
34
+ confirmResetAll: 'Dies löscht alle Spieler und Punkte. Bist du sicher?',
35
+ };
36
+
37
+ export const content: ToolLocaleContent<ScoreTrackerUI> = {
38
+ slug: 'punktezahler',
39
+ title: 'Punktezahler: Multiplayer Scorekeeper und Ranglistenmanager',
40
+ description: 'Verfolge die Punktzahlen für jedes Brettspiel. Füge Spieler hinzu, erfasse Runde für Runde die Punkte und sieh zu, wie sich die Rangliste mit automatischen Platzierungen in Echtzeit aktualisiert.',
41
+ ui,
42
+ seo: [
43
+ { type: 'title', text: 'Brettspiel Punkteverwaltung: So behältst du den Überblick ohne Fehler', level: 2 },
44
+ { type: 'paragraph', html: 'Punktezählen bei Brettspielen scheint einfach, bis du fünf Runden tief im Spiel steckst und jemand merkt, dass er sich verrechnet hat. Ob du Wingspan, Terraforming Mars, Catan oder ein anderes Siegpunktspiel spielst, genaue Punkteerfassung ist der Unterschied zwischen einem fairen Spiel und einem Streit. Ein digitaler Punktezähler beseitigt Rechenfehler, zeigt Live-Platzierungen und bewahrt eine vollständige Historie jeder Runde, damit du die endgültige Abrechnung überprüfen kannst.' },
45
+ {
46
+ type: 'stats',
47
+ items: [
48
+ { value: 'Unbegrenzt', label: 'Spieler unterstützt' },
49
+ { value: 'Echtzeit', label: 'Ranglisten-Updates' },
50
+ { value: 'Unbegrenzt', label: 'Runden aufgezeichnet' },
51
+ ],
52
+ columns: 3,
53
+ },
54
+ { type: 'title', text: 'Häufige Punktefehler und wie du sie vermeidest', level: 2 },
55
+ { type: 'paragraph', html: 'Der häufigste Fehler ist das Vergessen von Endrundenboni oder das falsche Addieren einer Zahlenspalte. Wenn du Punkte digital erfasst, aktualisiert sich der Gesamtstand automatisch nach jeder Eingabe. So kannst du einen Fehler sofort bemerken, wenn eine Zahl komisch aussieht, anstatt ihn erst am Ende des Spiels zu entdecken, wenn sich niemand mehr an den richtigen Wert erinnert. Die Rundenhistorie ermöglicht es dir, jede vorherige Runde zu prüfen und Fehler zu korrigieren, ohne das gesamte Spiel neu starten zu müssen.' },
56
+ {
57
+ type: 'tip',
58
+ title: 'Schnelle Tipps zur Punkteerfassung',
59
+ html: 'Trage die Punkte sofort nach jeder Runde ein, während sich alle noch an die Ergebnisse erinnern. Verwende beschreibende Spielerbezeichnungen wie Farben oder Fraktionsnamen statt echten Namen bei Spielen mit versteckten Rollen. Wenn du mit Kindern spielst, lass sie selbst die Knöpfe drücken, damit sie am Punktesystem beteiligt bleiben.',
60
+ },
61
+ {
62
+ type: 'title',
63
+ text: 'Rundenwertung vs. Nur Gesamtpunktzahl',
64
+ level: 3,
65
+ },
66
+ {
67
+ type: 'proscons',
68
+ title: 'Pro Runde bewerten vs. nur Endpunktzahl',
69
+ items: [
70
+ {
71
+ pro: 'Du siehst, wer in welcher Phase geführt hat und wie sich das Spiel entwickelt hat.',
72
+ con: 'Erfordert Dateneingabe nach jeder Runde statt nur einmal am Ende.',
73
+ },
74
+ {
75
+ pro: 'Fehler sind leicht zu finden, da du einzelne Rundeneinträge mit deiner Erinnerung abgleichen kannst.',
76
+ con: 'Nimmt während der Spielsitzung etwas mehr Zeit in Anspruch.',
77
+ },
78
+ {
79
+ pro: 'Spieler können ihre eigenen Rundenergebnisse überprüfen, was Streitigkeiten reduziert und Vertrauen schafft.',
80
+ con: 'Funktioniert am besten, wenn eine Person das Gerät bedient oder die Spieler sich abwechseln.',
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Spiele mit ungewöhnlichen Wertungssystemen',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'comparative',
91
+ items: [
92
+ {
93
+ title: 'Siegpunktspiele',
94
+ description: 'Die meisten Eurogames vergeben Siegpunkte im Laufe des Spiels. Die Herausforderung besteht darin, mehrere VP-Quellen zu verfolgen: Ressourcen, Errungenschaften, Endspielboni. Ein digitaler Tracker lässt dich Punkte eingeben, sobald sie anfallen, und den laufenden Gesamtstand sehen.',
95
+ icon: 'mdi:chess-queen',
96
+ highlight: true,
97
+ points: [
98
+ 'Mehrere Wertungskategorien verfolgen',
99
+ 'Endspielbonus-Berechnungen',
100
+ 'Sofortige Gleichstandsauflösung',
101
+ ],
102
+ },
103
+ {
104
+ title: 'Spiele mit negativer Wertung',
105
+ description: 'Einige Spiele bestrafen Spieler mit negativen Punkten für bestimmte Aktionen. Ein digitaler Punktezähler behandelt negative Werte ganz natürlich und färbt sie rot ein, damit die Strafe sofort sichtbar ist. Dies ist besonders nützlich bei Stichspielen oder Deduktionsspielen mit Strafmechaniken.',
106
+ icon: 'mdi:minus-circle-outline',
107
+ highlight: false,
108
+ points: [
109
+ 'Automatische Negativverarbeitung',
110
+ 'Visuelle Strafanzeiger',
111
+ 'Präzise kumulierte Gesamtwerte',
112
+ ],
113
+ },
114
+ {
115
+ title: 'Kampagnenspiele',
116
+ description: 'Legacy- und Kampagnenspiele übertragen Punktestände über mehrere Sitzungen hinweg. Ohne einen Tracker musst du zwischen den Spielabenden Papiernotizen führen. Ein digitales Tool hält deine Kampagnenpunkte organisiert und lässt dich überprüfen, wie sich deine Entscheidungen auf die Gesamtwertung ausgewirkt haben.',
117
+ icon: 'mdi:book-open-variant',
118
+ highlight: false,
119
+ points: [
120
+ 'Dauerhafte Kampagnenverfolgung',
121
+ 'Sitzungsübergreifender Vergleich',
122
+ 'Aufschlüsselung Sitzung für Sitzung',
123
+ ],
124
+ },
125
+ ],
126
+ columns: 3,
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Punkteglossar',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'glossary',
135
+ items: [
136
+ {
137
+ term: 'Siegpunkte (VP)',
138
+ definition: 'Die Standardwertungseinheit in den meisten modernen Brettspielen. Spieler verdienen VP durch Aktionen, und wer die meisten VP hat, wenn das Spiel endet, gewinnt.',
139
+ },
140
+ {
141
+ term: 'Rundenwertung',
142
+ definition: 'Punkte am Ende jeder Runde erfassen, nicht erst am Ende des Spiels. Dies erstellt eine detaillierte Historie und macht die Fehlerprüfung einfach.',
143
+ },
144
+ {
145
+ term: 'Rangliste',
146
+ definition: 'Eine Live-Platzierung, die die Position jedes Spielers basierend auf der Gesamtpunktzahl anzeigt. Die Rangliste ordnet sich automatisch neu, wenn neue Punkte eingegeben werden.',
147
+ },
148
+ {
149
+ term: 'Negative Wertung',
150
+ definition: 'Ein Wertungssystem, bei dem Spieler durch Strafen oder fehlgeschlagene Aktionen Punkte verlieren können, was zu negativen Gesamtwerten führt. Ein digitaler Tracker bewältigt dies ohne manuelle Subtraktionsfehler.',
151
+ },
152
+ ],
153
+ },
154
+ {
155
+ type: 'diagnostic',
156
+ variant: 'info',
157
+ title: 'So behandelst du umstrittene Punkte',
158
+ icon: 'mdi:information-outline',
159
+ badge: 'SPIELTIPP',
160
+ html: 'Wenn ein Spieler eine Punktzahl anzweifelt, ändere sie nicht sofort. Überprüfe zuerst die Rundenhistorie, um zu bestätigen, was eingegeben wurde. Wenn der Eintrag falsch ist, korrigiere ihn mit den +/- Tasten und der Gesamtstand aktualisiert sich automatisch. Wenn der Rundeneintrag korrekt ist, der Spieler aber widerspricht, liefert die Historie einen objektiven Nachweis, den alle gemeinsam überprüfen können.',
161
+ },
162
+ ],
163
+ faq: [
164
+ {
165
+ question: 'Wie viele Spieler kann ich verfolgen?',
166
+ answer: 'Es gibt keine Begrenzung. Füge so viele Spieler hinzu, wie dein Spiel unterstützt, und benenne sie jederzeit während der Sitzung um.',
167
+ },
168
+ {
169
+ question: 'Kann ich einen Fehler rückgängig machen?',
170
+ answer: 'Ja. Verwende den Button Letzte Runde Rückgängig, um die letzte Punkterunde zu entfernen. Alle Gesamtwerte und Platzierungen werden automatisch neu berechnet.',
171
+ },
172
+ {
173
+ question: 'Speichert der Punktezähler meine Daten?',
174
+ answer: 'Der Punktezähler läuft vollständig in deinem Browser. Die Daten bleiben während der aktuellen Sitzung erhalten. Ein Neuladen der Seite setzt alle Punkte zurück.',
175
+ },
176
+ {
177
+ question: 'Wie funktioniert die Rangliste?',
178
+ answer: 'Die Rangliste sortiert die Spieler absteigend nach Gesamtpunktzahl. Die Platzierungen aktualisieren sich automatisch, wenn du Punkte eingibst oder änderst.',
179
+ },
180
+ {
181
+ question: 'Kann ich negative Punkte erfassen?',
182
+ answer: 'Ja. Die +/- Tasten ermöglichen sowohl positive als auch negative Anpassungen, sodass es sich für Spiele mit Strafpunkten oder Abzugsmechaniken eignet.',
183
+ },
184
+ ],
185
+ bibliography,
186
+ howTo: [
187
+ {
188
+ name: 'Spieler hinzufügen',
189
+ text: 'Gib Spielernamen über das Eingabefeld Spieler Hinzufügen ein. Du kannst während des Spiels jederzeit Spieler hinzufügen oder entfernen.',
190
+ },
191
+ {
192
+ name: 'Mit der Wertung beginnen',
193
+ text: 'Klicke auf Runde Starten, um eine neue Wertungsrunde zu beginnen. Verwende die +/- Tasten, um die Punktzahl jedes Spielers anzupassen.',
194
+ },
195
+ {
196
+ name: 'Platzierungen anzeigen',
197
+ text: 'Die Rangliste aktualisiert sich automatisch. Durchstöbere den Reiter Punkteverlauf, um vergangene Rundeneinträge zu überprüfen.',
198
+ },
199
+ ],
200
+ schemas: [
201
+ {
202
+ '@context': 'https://schema.org',
203
+ '@type': 'SoftwareApplication',
204
+ 'name': 'Punktezahler & Scorekeeper',
205
+ 'operatingSystem': 'All',
206
+ 'applicationCategory': 'UtilitiesApplication',
207
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.',
208
+ },
209
+ {
210
+ '@context': 'https://schema.org',
211
+ '@type': 'FAQPage',
212
+ 'mainEntity': [
213
+ {
214
+ '@type': 'Question',
215
+ 'name': 'Wie viele Spieler kann ich verfolgen?',
216
+ 'acceptedAnswer': {
217
+ '@type': 'Answer',
218
+ 'text': 'Es gibt keine Begrenzung. Füge so viele Spieler hinzu, wie dein Spiel unterstützt, und benenne sie jederzeit während der Sitzung um.',
219
+ },
220
+ },
221
+ {
222
+ '@type': 'Question',
223
+ 'name': 'Kann ich einen Fehler rückgängig machen?',
224
+ 'acceptedAnswer': {
225
+ '@type': 'Answer',
226
+ 'text': 'Ja. Verwende den Button Letzte Runde Rückgängig, um die letzte Punkterunde zu entfernen. Alle Gesamtwerte und Platzierungen werden automatisch neu berechnet.',
227
+ },
228
+ },
229
+ {
230
+ '@type': 'Question',
231
+ 'name': 'Speichert der Punktezähler meine Daten?',
232
+ 'acceptedAnswer': {
233
+ '@type': 'Answer',
234
+ 'text': 'Der Punktezähler läuft vollständig in deinem Browser. Die Daten bleiben während der aktuellen Sitzung erhalten. Ein Neuladen der Seite setzt alle Punkte zurück.',
235
+ },
236
+ },
237
+ {
238
+ '@type': 'Question',
239
+ 'name': 'Wie funktioniert die Rangliste?',
240
+ 'acceptedAnswer': {
241
+ '@type': 'Answer',
242
+ 'text': 'Die Rangliste sortiert die Spieler absteigend nach Gesamtpunktzahl. Die Platzierungen aktualisieren sich automatisch, wenn du Punkte eingibst oder änderst.',
243
+ },
244
+ },
245
+ {
246
+ '@type': 'Question',
247
+ 'name': 'Kann ich negative Punkte erfassen?',
248
+ 'acceptedAnswer': {
249
+ '@type': 'Answer',
250
+ 'text': 'Ja. Die +/- Tasten ermöglichen sowohl positive als auch negative Anpassungen, sodass es sich für Spiele mit Strafpunkten oder Abzugsmechaniken eignet.',
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ {
256
+ '@context': 'https://schema.org',
257
+ '@type': 'HowTo',
258
+ 'name': 'So verwendest du den Punktezähler',
259
+ 'step': [
260
+ {
261
+ '@type': 'HowToStep',
262
+ 'name': 'Spieler hinzufügen',
263
+ 'text': 'Gib Spielernamen über das Eingabefeld Spieler Hinzufügen ein. Du kannst während des Spiels jederzeit Spieler hinzufügen oder entfernen.',
264
+ },
265
+ {
266
+ '@type': 'HowToStep',
267
+ 'name': 'Mit der Wertung beginnen',
268
+ 'text': 'Klicke auf Runde Starten, um eine neue Wertungsrunde zu beginnen. Verwende die +/- Tasten, um die Punktzahl jedes Spielers anzupassen.',
269
+ },
270
+ {
271
+ '@type': 'HowToStep',
272
+ 'name': 'Platzierungen anzeigen',
273
+ 'text': 'Die Rangliste aktualisiert sich automatisch. Durchstöbere den Reiter Punkteverlauf, um vergangene Rundeneinträge zu überprüfen.',
274
+ },
275
+ ],
276
+ },
277
+ ],
278
+ };
@@ -0,0 +1,278 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { ScoreTrackerUI } from '../entry';
4
+
5
+ const ui: ScoreTrackerUI = {
6
+ title: 'Score Tracker',
7
+ addPlayer: 'Add Player',
8
+ removePlayer: 'Remove',
9
+ renamePlayer: 'Rename',
10
+ startRound: 'Start Round 1',
11
+ nextRound: 'Next Round',
12
+ resetGame: 'Reset Game',
13
+ undoRound: 'Undo Last Round',
14
+ playerLabel: 'Player',
15
+ scoreLabel: 'Score',
16
+ roundLabel: 'Round',
17
+ totalLabel: 'Total',
18
+ rankLabel: 'Rank',
19
+ leaderboardTitle: 'Leaderboard',
20
+ historyTitle: 'Score History',
21
+ noPlayersHint: 'Add players to start scoring',
22
+ playerNamePlaceholder: 'Player name',
23
+ confirmLabel: 'Confirm',
24
+ cancelLabel: 'Cancel',
25
+ deleteRoundConfirm: 'Delete the last round?',
26
+ playerAdded: 'Player added',
27
+ playerRemoved: 'Player removed',
28
+ roundStarted: 'Round started',
29
+ gameReset: 'Game has been reset',
30
+ noRoundsYet: 'No rounds recorded yet',
31
+ currentRoundLabel: 'Current Round',
32
+ scoringTitle: 'Round Scoring',
33
+ resetAllLabel: 'Reset All',
34
+ confirmResetAll: 'This will delete all players and scores. Are you sure?',
35
+ };
36
+
37
+ export const content: ToolLocaleContent<ScoreTrackerUI> = {
38
+ slug: 'score-tracker',
39
+ title: 'Score Tracker: Multiplayer Scorekeeper & Leaderboard Manager',
40
+ description: 'Track scores for any tabletop game. Add players, record round-by-round scores, and watch the leaderboard update in real time with automatic rankings.',
41
+ ui,
42
+ seo: [
43
+ { type: 'title', text: 'Board Game Scorekeeping: How to Track Scores Without Mistakes', level: 2 },
44
+ { type: 'paragraph', html: 'Keeping score in board games seems simple until you are five rounds into a game and realise someone miscounted. Whether you play Wingspan, Terraforming Mars, Catan, or any victory point game, accurate scorekeeping is the difference between a fair game and an argument. A digital score tracker eliminates arithmetic errors, shows live rankings, and keeps a complete history of every round so you can verify the final tally.' },
45
+ {
46
+ type: 'stats',
47
+ items: [
48
+ { value: 'Unlimited', label: 'Players Supported' },
49
+ { value: 'Real-Time', label: 'Leaderboard Updates' },
50
+ { value: 'Unlimited', label: 'Rounds Recorded' },
51
+ ],
52
+ columns: 3,
53
+ },
54
+ { type: 'title', text: 'Common Scoring Mistakes and How to Avoid Them', level: 2 },
55
+ { type: 'paragraph', html: 'The most frequent scoring error is forgetting to add end-of-round bonuses or misadding a column of numbers. When you track scores digitally, the running total updates automatically after each entry. This means you can catch a mistake the moment a number looks off, rather than discovering it at the end of the game when nobody remembers the correct value. The round history feature lets you audit any previous round and correct errors without restarting the entire game.' },
56
+ {
57
+ type: 'tip',
58
+ title: 'Quick Scorekeeping Tips',
59
+ html: 'Enter scores immediately after each round ends while everyone still remembers the results. Use descriptive player labels like colours or faction names instead of real names for games with hidden roles. When playing with children, let them press the buttons themselves to stay engaged with the scoring process.',
60
+ },
61
+ {
62
+ type: 'title',
63
+ text: 'Round Scoring vs Total Only',
64
+ level: 3,
65
+ },
66
+ {
67
+ type: 'proscons',
68
+ title: 'Per Round Scoring vs Final Score Only',
69
+ items: [
70
+ {
71
+ pro: 'You can see who led at each stage of the game and how the momentum shifted.',
72
+ con: 'Requires entering data after each round instead of once at the end.',
73
+ },
74
+ {
75
+ pro: 'Errors are easy to locate because you can check individual round entries against memory.',
76
+ con: 'Takes slightly more time during the game session.',
77
+ },
78
+ {
79
+ pro: 'Players can verify their own round scores, reducing disputes and building trust.',
80
+ con: 'Works best when one person manages the device or players take turns.',
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ type: 'title',
86
+ text: 'Games with Unusual Scoring Systems',
87
+ level: 3,
88
+ },
89
+ {
90
+ type: 'comparative',
91
+ items: [
92
+ {
93
+ title: 'Victory Point Games',
94
+ description: 'Most eurogames use victory points awarded throughout the game. The challenge is tracking multiple VP sources: resources, achievements, end-game bonuses. A digital tracker lets you enter points as they come and see the running total.',
95
+ icon: 'mdi:chess-queen',
96
+ highlight: true,
97
+ points: [
98
+ 'Track multiple scoring categories',
99
+ 'End-game bonus calculations',
100
+ 'Instant tie-breaker resolution',
101
+ ],
102
+ },
103
+ {
104
+ title: 'Games with Negative Scoring',
105
+ description: 'Some games penalise players with negative points for certain actions. A digital scorekeeper handles negative values naturally, colouring them red so the penalty is immediately visible. This is especially useful in trick-taking games or deduction games with penalty mechanics.',
106
+ icon: 'mdi:minus-circle-outline',
107
+ highlight: false,
108
+ points: [
109
+ 'Automatic negative handling',
110
+ 'Visual penalty indicators',
111
+ 'Accurate cumulative totals',
112
+ ],
113
+ },
114
+ {
115
+ title: 'Campaign Games',
116
+ description: 'Legacy and campaign games carry scores across multiple sessions. Without a tracker, you need to keep paper notes between game nights. A digital tool keeps your campaign scores organised and lets you review how your decisions affected the overall standings.',
117
+ icon: 'mdi:book-open-variant',
118
+ highlight: false,
119
+ points: [
120
+ 'Persistent campaign tracking',
121
+ 'Cross-session comparison',
122
+ 'Session-by-session breakdown',
123
+ ],
124
+ },
125
+ ],
126
+ columns: 3,
127
+ },
128
+ {
129
+ type: 'title',
130
+ text: 'Scorekeeping Glossary',
131
+ level: 3,
132
+ },
133
+ {
134
+ type: 'glossary',
135
+ items: [
136
+ {
137
+ term: 'Victory Points (VP)',
138
+ definition: 'The standard scoring unit in most modern board games. Players earn VP through actions, and whoever has the most VP when the game ends wins.',
139
+ },
140
+ {
141
+ term: 'Round Scoring',
142
+ definition: 'Recording scores at the end of each round rather than only at the end of the game. This creates a detailed history and makes error checking straightforward.',
143
+ },
144
+ {
145
+ term: 'Leaderboard',
146
+ definition: 'A live ranking that shows each players position based on total score. The leaderboard reorders automatically as new scores are entered.',
147
+ },
148
+ {
149
+ term: 'Negative Scoring',
150
+ definition: 'A scoring system where players can lose points through penalties or failed actions, resulting in negative totals. A digital tracker handles this without manual subtraction errors.',
151
+ },
152
+ ],
153
+ },
154
+ {
155
+ type: 'diagnostic',
156
+ variant: 'info',
157
+ title: 'How to Handle Disputed Scores',
158
+ icon: 'mdi:information-outline',
159
+ badge: 'GAME TIP',
160
+ html: 'When a player challenges a score, do not change it immediately. First check the round history to confirm what was entered. If the entry is wrong, use the +/- buttons to correct it and the total updates automatically. If the round entry is correct but the player disagrees, the history provides an objective record that everyone can review together.',
161
+ },
162
+ ],
163
+ faq: [
164
+ {
165
+ question: 'How many players can I track?',
166
+ answer: 'There is no limit. Add as many players as your game supports, and rename them at any time during the session.',
167
+ },
168
+ {
169
+ question: 'Can I undo a mistake?',
170
+ answer: 'Yes. Use the Undo Last Round button to remove the most recent round of scores, which will automatically recalculate all totals and rankings.',
171
+ },
172
+ {
173
+ question: 'Does the score tracker save my data?',
174
+ answer: 'The score tracker runs entirely in your browser. Data persists within the current session. Refreshing the page will reset all scores.',
175
+ },
176
+ {
177
+ question: 'How does the leaderboard work?',
178
+ answer: 'The leaderboard sorts players by total score in descending order. Rankings update automatically as you enter or modify scores in each round.',
179
+ },
180
+ {
181
+ question: 'Can I track negative scores?',
182
+ answer: 'Yes. The +/- buttons allow both positive and negative adjustments, making it suitable for games with penalty points or deduction mechanics.',
183
+ },
184
+ ],
185
+ bibliography,
186
+ howTo: [
187
+ {
188
+ name: 'Add Players',
189
+ text: 'Enter player names using the Add Player input. You can add or remove players at any time during the game.',
190
+ },
191
+ {
192
+ name: 'Start Scoring',
193
+ text: 'Click Start Round to begin a new scoring round. Use the +/- buttons to adjust each player score for that round.',
194
+ },
195
+ {
196
+ name: 'View Rankings',
197
+ text: 'The leaderboard updates automatically. Browse the Score History tab to review past round entries.',
198
+ },
199
+ ],
200
+ schemas: [
201
+ {
202
+ '@context': 'https://schema.org',
203
+ '@type': 'SoftwareApplication',
204
+ 'name': 'Score Tracker & Scorekeeper',
205
+ 'operatingSystem': 'All',
206
+ 'applicationCategory': 'UtilitiesApplication',
207
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.',
208
+ },
209
+ {
210
+ '@context': 'https://schema.org',
211
+ '@type': 'FAQPage',
212
+ 'mainEntity': [
213
+ {
214
+ '@type': 'Question',
215
+ 'name': 'How many players can I track?',
216
+ 'acceptedAnswer': {
217
+ '@type': 'Answer',
218
+ 'text': 'There is no limit. Add as many players as your game supports, and rename them at any time during the session.',
219
+ },
220
+ },
221
+ {
222
+ '@type': 'Question',
223
+ 'name': 'Can I undo a mistake?',
224
+ 'acceptedAnswer': {
225
+ '@type': 'Answer',
226
+ 'text': 'Yes. Use the Undo Last Round button to remove the most recent round of scores, which will automatically recalculate all totals and rankings.',
227
+ },
228
+ },
229
+ {
230
+ '@type': 'Question',
231
+ 'name': 'Does the score tracker save my data?',
232
+ 'acceptedAnswer': {
233
+ '@type': 'Answer',
234
+ 'text': 'The score tracker runs entirely in your browser. Data persists within the current session. Refreshing the page will reset all scores.',
235
+ },
236
+ },
237
+ {
238
+ '@type': 'Question',
239
+ 'name': 'How does the leaderboard work?',
240
+ 'acceptedAnswer': {
241
+ '@type': 'Answer',
242
+ 'text': 'The leaderboard sorts players by total score in descending order. Rankings update automatically as you enter or modify scores in each round.',
243
+ },
244
+ },
245
+ {
246
+ '@type': 'Question',
247
+ 'name': 'Can I track negative scores?',
248
+ 'acceptedAnswer': {
249
+ '@type': 'Answer',
250
+ 'text': 'Yes. The +/- buttons allow both positive and negative adjustments, making it suitable for games with penalty points or deduction mechanics.',
251
+ },
252
+ },
253
+ ],
254
+ },
255
+ {
256
+ '@context': 'https://schema.org',
257
+ '@type': 'HowTo',
258
+ 'name': 'How to Use the Score Tracker',
259
+ 'step': [
260
+ {
261
+ '@type': 'HowToStep',
262
+ 'name': 'Add Players',
263
+ 'text': 'Enter player names using the Add Player input. You can add or remove players at any time during the game.',
264
+ },
265
+ {
266
+ '@type': 'HowToStep',
267
+ 'name': 'Start Scoring',
268
+ 'text': 'Click Start Round to begin a new scoring round. Use the +/- buttons to adjust each player score for that round.',
269
+ },
270
+ {
271
+ '@type': 'HowToStep',
272
+ 'name': 'View Rankings',
273
+ 'text': 'The leaderboard updates automatically. Browse the Score History tab to review past round entries.',
274
+ },
275
+ ],
276
+ },
277
+ ],
278
+ };