@jjlmoya/utils-tabletop 1.3.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 (121) hide show
  1. package/package.json +65 -0
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/category/TabletopCategorySEO.astro +14 -0
  4. package/src/category/i18n/de.ts +27 -0
  5. package/src/category/i18n/en.ts +27 -0
  6. package/src/category/i18n/es.ts +27 -0
  7. package/src/category/i18n/fr.ts +27 -0
  8. package/src/category/i18n/id.ts +27 -0
  9. package/src/category/i18n/it.ts +27 -0
  10. package/src/category/i18n/ja.ts +27 -0
  11. package/src/category/i18n/ko.ts +27 -0
  12. package/src/category/i18n/nl.ts +27 -0
  13. package/src/category/i18n/pl.ts +27 -0
  14. package/src/category/i18n/pt.ts +27 -0
  15. package/src/category/i18n/ru.ts +27 -0
  16. package/src/category/i18n/sv.ts +27 -0
  17. package/src/category/i18n/tr.ts +27 -0
  18. package/src/category/i18n/zh.ts +27 -0
  19. package/src/category/index.ts +27 -0
  20. package/src/components/PreviewNavSidebar.astro +116 -0
  21. package/src/components/PreviewToolbar.astro +143 -0
  22. package/src/data.ts +10 -0
  23. package/src/entries.ts +10 -0
  24. package/src/env.d.ts +5 -0
  25. package/src/index.ts +21 -0
  26. package/src/layouts/PreviewLayout.astro +117 -0
  27. package/src/pages/[locale]/[slug].astro +161 -0
  28. package/src/pages/[locale].astro +251 -0
  29. package/src/pages/index.astro +4 -0
  30. package/src/tests/faq_count.test.ts +18 -0
  31. package/src/tests/i18n_coverage.test.ts +36 -0
  32. package/src/tests/locale_completeness.test.ts +29 -0
  33. package/src/tests/mocks/astro_mock.js +2 -0
  34. package/src/tests/no_en_dash.test.ts +41 -0
  35. package/src/tests/no_h1_in_components.test.ts +48 -0
  36. package/src/tests/schemas_fulfillment.test.ts +23 -0
  37. package/src/tests/seo_length.test.ts +22 -0
  38. package/src/tests/shared-test-helpers.ts +56 -0
  39. package/src/tests/slug_language_code_format.test.ts +23 -0
  40. package/src/tests/slug_uniqueness.test.ts +81 -0
  41. package/src/tests/title_quality.test.ts +55 -0
  42. package/src/tests/tool_exports.test.ts +34 -0
  43. package/src/tests/tool_validation.test.ts +16 -0
  44. package/src/tool/board-game-timer/bibliography.astro +16 -0
  45. package/src/tool/board-game-timer/bibliography.ts +12 -0
  46. package/src/tool/board-game-timer/board-game-timer.css +1615 -0
  47. package/src/tool/board-game-timer/client.ts +17 -0
  48. package/src/tool/board-game-timer/component.astro +22 -0
  49. package/src/tool/board-game-timer/components/DuelTimer.astro +75 -0
  50. package/src/tool/board-game-timer/components/MultiplayerTimer.astro +58 -0
  51. package/src/tool/board-game-timer/components/SetupPanel.astro +155 -0
  52. package/src/tool/board-game-timer/components/StatsModal.astro +52 -0
  53. package/src/tool/board-game-timer/entry.ts +76 -0
  54. package/src/tool/board-game-timer/i18n/de.ts +303 -0
  55. package/src/tool/board-game-timer/i18n/en.ts +304 -0
  56. package/src/tool/board-game-timer/i18n/es.ts +303 -0
  57. package/src/tool/board-game-timer/i18n/fr.ts +303 -0
  58. package/src/tool/board-game-timer/i18n/id.ts +303 -0
  59. package/src/tool/board-game-timer/i18n/it.ts +303 -0
  60. package/src/tool/board-game-timer/i18n/ja.ts +306 -0
  61. package/src/tool/board-game-timer/i18n/ko.ts +303 -0
  62. package/src/tool/board-game-timer/i18n/nl.ts +303 -0
  63. package/src/tool/board-game-timer/i18n/pl.ts +303 -0
  64. package/src/tool/board-game-timer/i18n/pt.ts +303 -0
  65. package/src/tool/board-game-timer/i18n/ru.ts +303 -0
  66. package/src/tool/board-game-timer/i18n/sv.ts +303 -0
  67. package/src/tool/board-game-timer/i18n/tr.ts +303 -0
  68. package/src/tool/board-game-timer/i18n/zh.ts +303 -0
  69. package/src/tool/board-game-timer/index.ts +9 -0
  70. package/src/tool/board-game-timer/logic.test.ts +282 -0
  71. package/src/tool/board-game-timer/logic.ts +6 -0
  72. package/src/tool/board-game-timer/modules/ColorHelper.ts +26 -0
  73. package/src/tool/board-game-timer/modules/DuelViewManager.ts +120 -0
  74. package/src/tool/board-game-timer/modules/FormatHelper.ts +12 -0
  75. package/src/tool/board-game-timer/modules/GameRunner.ts +136 -0
  76. package/src/tool/board-game-timer/modules/GameState.ts +48 -0
  77. package/src/tool/board-game-timer/modules/MultiplayerViewManager.ts +163 -0
  78. package/src/tool/board-game-timer/modules/SetupPanelManager.ts +209 -0
  79. package/src/tool/board-game-timer/modules/SoundManager.ts +109 -0
  80. package/src/tool/board-game-timer/modules/SpeechManager.ts +1 -0
  81. package/src/tool/board-game-timer/modules/StatsManager.ts +87 -0
  82. package/src/tool/board-game-timer/modules/StatsModalManager.ts +74 -0
  83. package/src/tool/board-game-timer/modules/TimerEngine.ts +175 -0
  84. package/src/tool/board-game-timer/modules/TimerEngineBase.ts +49 -0
  85. package/src/tool/board-game-timer/modules/TimerEngineClock.ts +127 -0
  86. package/src/tool/board-game-timer/modules/TimerStateHelper.ts +55 -0
  87. package/src/tool/board-game-timer/modules/particles.ts +108 -0
  88. package/src/tool/board-game-timer/seo.astro +16 -0
  89. package/src/tool/board-game-timer/types.ts +97 -0
  90. package/src/tool/dice-roller-simulator/bibliography.astro +16 -0
  91. package/src/tool/dice-roller-simulator/bibliography.ts +12 -0
  92. package/src/tool/dice-roller-simulator/client.ts +273 -0
  93. package/src/tool/dice-roller-simulator/component.astro +75 -0
  94. package/src/tool/dice-roller-simulator/components/DiceGrid.astro +55 -0
  95. package/src/tool/dice-roller-simulator/components/RollHistorySection.astro +26 -0
  96. package/src/tool/dice-roller-simulator/components/RollResultBanner.astro +10 -0
  97. package/src/tool/dice-roller-simulator/components/StatsPanel.astro +36 -0
  98. package/src/tool/dice-roller-simulator/dice-roller-simulator.css +1319 -0
  99. package/src/tool/dice-roller-simulator/entry.ts +39 -0
  100. package/src/tool/dice-roller-simulator/i18n/de.ts +305 -0
  101. package/src/tool/dice-roller-simulator/i18n/en.ts +305 -0
  102. package/src/tool/dice-roller-simulator/i18n/es.ts +305 -0
  103. package/src/tool/dice-roller-simulator/i18n/fr.ts +305 -0
  104. package/src/tool/dice-roller-simulator/i18n/id.ts +305 -0
  105. package/src/tool/dice-roller-simulator/i18n/it.ts +305 -0
  106. package/src/tool/dice-roller-simulator/i18n/ja.ts +305 -0
  107. package/src/tool/dice-roller-simulator/i18n/ko.ts +305 -0
  108. package/src/tool/dice-roller-simulator/i18n/nl.ts +305 -0
  109. package/src/tool/dice-roller-simulator/i18n/pl.ts +305 -0
  110. package/src/tool/dice-roller-simulator/i18n/pt.ts +305 -0
  111. package/src/tool/dice-roller-simulator/i18n/ru.ts +305 -0
  112. package/src/tool/dice-roller-simulator/i18n/sv.ts +305 -0
  113. package/src/tool/dice-roller-simulator/i18n/tr.ts +305 -0
  114. package/src/tool/dice-roller-simulator/i18n/zh.ts +305 -0
  115. package/src/tool/dice-roller-simulator/index.ts +9 -0
  116. package/src/tool/dice-roller-simulator/modules/chart.ts +32 -0
  117. package/src/tool/dice-roller-simulator/modules/history.ts +87 -0
  118. package/src/tool/dice-roller-simulator/modules/particles.ts +22 -0
  119. package/src/tool/dice-roller-simulator/seo.astro +16 -0
  120. package/src/tools.ts +9 -0
  121. package/src/types.ts +70 -0
@@ -0,0 +1,303 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { BoardGameTimerUI } from '../entry';
4
+
5
+ const ui: BoardGameTimerUI = {
6
+ title: 'Brettspiel Timer',
7
+ setupTitle: 'Spiel-Setup',
8
+ playerNamePlaceholder: 'Spielername',
9
+ addPlayer: 'Spieler hinzufügen',
10
+ removePlayer: 'Entfernen',
11
+ startGame: 'Spiel starten',
12
+ pauseGame: 'Pause',
13
+ resumeGame: 'Fortsetzen',
14
+ resetGame: 'Zurücksetzen',
15
+ nextTurn: 'Zug beenden',
16
+ addTime: '+30s',
17
+ removeTime: '-30s',
18
+ playerLabel: 'Spieler',
19
+ minutesLabel: 'Min',
20
+ secondsLabel: 'Sek',
21
+ expiredLabel: 'ZEIT ABGELAUFEN',
22
+ overtimeLabel: 'Überzeit',
23
+ turnIndicator: 'Dein Zug',
24
+ warningLowTime: 'Wenig Zeit',
25
+ pausedOverlay: 'Spiel pausiert',
26
+ roundLabel: 'Runde',
27
+ settingsTitle: 'Einstellungen',
28
+ baseTimeLabel: 'Basiszeit',
29
+ incrementLabel: 'Inkrement/Verzögerung',
30
+ warningTimeLabel: 'Warnung-Schwelle',
31
+ confirmLabel: 'Bestätigen',
32
+ cancelLabel: 'Abbrechen',
33
+ noPlayersHint: 'Fügen Sie mindestens 2 Spieler hinzu',
34
+ addPlayerHint: 'Spielername eingeben',
35
+ timeUpLabel: 'Zeit abgelaufen!',
36
+ presetsTitle: 'Voreinstellungen',
37
+ timeControlTitle: 'Zeitkontrolle',
38
+ modeLabel: 'Modus',
39
+ modeNormal: 'Normaler Countdown',
40
+ modeFischer: 'Fischer (Inkrement)',
41
+ modeBronstein: 'Bronstein (Verzögerung)',
42
+ modeHourglass: 'Sanduhr',
43
+ modeTurn: 'Runden-Reset',
44
+ audioTitle: 'Audio-Warnungen',
45
+ soundAlerts: 'Soundeffekte',
46
+ playersTitle: 'Spieler',
47
+ playersAdded: 'Hinzugefügte Spieler',
48
+ statsTitle: 'Spielstatistiken',
49
+ totalGameTime: 'Gesamtzeit',
50
+ totalRounds: 'Runden gesamt',
51
+ slowestPlayer: 'Langsamster Spieler',
52
+ playerPerformance: 'Spieler-Zeitanalyse',
53
+ playAgain: 'Neues Spiel',
54
+ };
55
+
56
+ export const content: ToolLocaleContent<BoardGameTimerUI> = {
57
+ slug: 'brettspiel-timer-schach-uhr',
58
+ title: 'Brettspiel Timer: Duell Schachuhr und Mehrspieler Rundenmanager',
59
+ description: 'Verfolgen Sie Züge und verwalten Sie die Zeit in Ihren Tabletop-Sitzungen mit einem professionellen Brettspiel-Timer. Unterstützt Schachuhr-Duellmodus, Mehrspieler-Layouts, Fischer-Inkrement, Bronstein-Verzögerung und detaillierte Statistiken.',
60
+ ui,
61
+ seo: [
62
+ { type: 'title', text: 'Das Tempo am Spieltisch beherrschen: Wie professionelle Zeitkontrollen das Spielerlebnis verbessern', level: 2 },
63
+ { type: 'paragraph', html: 'Zeitmanagement ist ein wesentlicher Bestandteil moderner Brettspiele. Egal, ob Sie sich in einem schnellen Partyspiel messen oder ein tiefes Strategiespiel austragen - die Regulierung der Denkzeit sorgt dafür, dass alle Teilnehmer ihren fairen Anteil am Rampenlicht erhalten. Die Verwendung professioneller Timing-Methoden wie Fischer-Inkrement, Bronstein-Verzögerung oder Sanduhr-Modus eliminiert Analyseparalyse, garantiert ein gleichmäßiges Spieltempo und fügt dem Spielfeld eine zusätzliche strategische Ebene hinzu.' },
64
+ {
65
+ type: 'stats',
66
+ items: [
67
+ { value: '2-8', label: 'Unterstützte Spieler' },
68
+ { value: '5 Modi', label: 'Zeitkonfigurationen' },
69
+ { value: '100ms', label: 'Engine-Präzision' },
70
+ ],
71
+ columns: 3,
72
+ },
73
+ { type: 'title', text: 'Fischer, Bronstein und Sanduhr: Erweiterte Zeitkontrollen erklärt', level: 2 },
74
+ { type: 'paragraph', html: 'Unser Brettspiel-Timer unterstützt mehrere Timing-Optionen, die von Turnierspielen inspiriert sind und dafür sorgen, dass Ihre Spielrunden reibungslos ablaufen:' },
75
+ {
76
+ type: 'table',
77
+ headers: ['Modus', 'Funktionsweise', 'Bestens geeignet für'],
78
+ rows: [
79
+ ['Normaler Countdown', 'Ein standardmäßiger globaler Countdown, der am Rundenende pausiert.', 'Gelegenheitsspiele mit einem gemeinsamen Denkzeitpool'],
80
+ ['Fischer (Inkrement)', 'Fügt Ihrer Uhr nach jedem Zug eine festgelegte Anzahl von Sekunden hinzu.', 'Strategische Eurogames und Wargames, bei denen schnelle Züge Zeitpuffer aufbauen'],
81
+ ['Bronstein (Verzögerung)', 'Bietet ein Verzögerungsfenster, in dem Ihr Haupttimer nicht herunterzählt.', 'Komplexe taktische Spiele, bei denen kurze Verwaltungsaktionen kostenlos sein sollten'],
82
+ ['Sanduhr', 'Ihr Timer verringert sich, während der Timer des Gegners gleichzeitig zunimmt.', 'Intensive Zwei-Spieler-Duelle und Schachpartien'],
83
+ ['Runden-Reset', 'Ein fester, frischer Countdown-Timer, der bei jeder Runde vollständig zurückgesetzt wird.', 'Schnelle Partyspiele, Quizrunden und schnelle Runden'],
84
+ ],
85
+ },
86
+ {
87
+ type: 'tip',
88
+ title: 'Die ideale Zeitkonfiguration finden',
89
+ html: 'Ein empfohlener Ausgangspunkt sind 30 bis 45 Sekunden für leichte Partyspiele, 1 bis 2 Minuten mit einer Bronstein-Verzögerung von 5 Sekunden für mittelschwere Eurogames und 30 bis 45 Minuten mit einem Fischer-Inkrement von 10 Sekunden für schwere Wargames oder strategische Kampagnen.',
90
+ },
91
+ {
92
+ type: 'title',
93
+ text: 'Visuelle Optimierung: Geteilter Bildschirm für Duelle vs. zentraler Rundenknopf für Mehrspieler',
94
+ level: 3,
95
+ },
96
+ {
97
+ type: 'paragraph',
98
+ html: 'Für direkte Duelle bietet die Anwendung ein geteiltes Schachuhr-Layout. Diese Ansicht ermöglicht es den Spielern, ihre Bildschirmhälften um 180 Grad zu drehen, sodass sie bequem von gegenüberliegenden Seiten des Tisches aus betrachtet werden können. Für Spiele mit 3 oder mehr Teilnehmern wechselt die Benutzeroberfläche in ein Mehrspieler-Raster mit aktiven Spieler-Hervorhebungen, individuellen Kartenanpassungen und einem riesigen zentralen Button zum Beenden des Zugs, der als gemeinsamer Buzzer fungiert.',
99
+ },
100
+ {
101
+ type: 'proscons',
102
+ title: 'Fischer Inkrement vs. Bronstein Verzögerung im Vergleich',
103
+ items: [
104
+ {
105
+ pro: 'Fischer-Inkremente belohnen schnelles Spielen, indem sie einen Zeitpuffer für zukünftige Runden aufbauen.',
106
+ con: 'Die Gesamtspielzeit kann länger werden, wenn Spieler ständig extrem schnelle Züge machen.',
107
+ },
108
+ {
109
+ pro: 'Die Bronstein-Verzögerung verhindert den Zeitverlust bei schnellen Verwaltungsaktionen, ohne massive Reserven anzuhäufen.',
110
+ con: 'Erfordert die Konfiguration eines Verzögerungsschwellenwerts, der zur physischen Verwaltungszeit des Spiels passt.',
111
+ },
112
+ {
113
+ pro: 'Der Sanduhr-Modus erzeugt direkte Spannung in Duellen, indem er Ihre Zeit aktiv abzieht und sie dem Gegner gutschreibt.',
114
+ con: 'Wird bei mehr als zwei Spielern mathematisch komplex und weniger strategisch.',
115
+ },
116
+ ],
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Häufige Brettspiel-Genres, die von Runden-Timern profitieren',
121
+ level: 3,
122
+ },
123
+ {
124
+ type: 'comparative',
125
+ items: [
126
+ {
127
+ title: 'Strategische Eurogames',
128
+ description: 'Worker-Placement- und Ressourcenmanagementspiele mit unterschiedlich komplexen Zügen. Fischer-Inkremente helfen Spielern, kritische Entscheidungen in der Endphase zu treffen, ohne die ersten Runden zu verlangsamen.',
129
+ icon: 'mdi:chess-knight',
130
+ highlight: true,
131
+ points: [
132
+ 'Mitigiert Analyseparalyse',
133
+ 'Unterstützung für variable Rundenkomplexität',
134
+ 'Zeit wird zur aktiven Ressource',
135
+ ],
136
+ },
137
+ {
138
+ title: 'Party und Quizspiele',
139
+ description: 'Rasante Spiele, bei denen schnelles Denken Teil des Spaßes ist. Feste Runden-Reset-Timer halten die Energie hoch und verhindern, dass ein einzelner Spieler den Spielfluss blockiert.',
140
+ icon: 'mdi:party-popper',
141
+ highlight: false,
142
+ points: [
143
+ 'Kurze, feste Countdowns',
144
+ 'Hält das Party-Tempo hoch',
145
+ 'Erzwingt sofortiges Handeln',
146
+ ],
147
+ },
148
+ {
149
+ title: 'Turnier Duellspiele',
150
+ description: 'Strikte Schachuhr-Duelle erfordern präzise, drehbare Layouts, um die sportliche Integrität und eine faire Zeitverteilung in allen Runden zu gewährleisten.',
151
+ icon: 'mdi:trophy',
152
+ highlight: false,
153
+ points: [
154
+ '180-Grad-Bildschirmdrehung',
155
+ 'Präzise Zeiterfassung in 100ms-Intervallen',
156
+ 'Sudden Death/Überzeit-Zustände',
157
+ ],
158
+ },
159
+ ],
160
+ columns: 3,
161
+ },
162
+ {
163
+ type: 'glossary',
164
+ items: [
165
+ {
166
+ term: 'Fischer-Inkrement',
167
+ definition: 'Eine Methode der Zeitkontrolle, bei der nach jedem beendeten Zug eine festgelegte Anzahl von Sekunden zur verbleibenden Zeit eines Spielers hinzugefügt wird.',
168
+ },
169
+ {
170
+ term: 'Bronstein-Verzögerung',
171
+ definition: 'Eine Methode der Zeitkontrolle, bei der der Countdown zu Beginn eines Zugs für eine festgelegte Zeit verzögert wird, sodass kein Zeitabzug erfolgt, wenn der Zug schnell beendet wird.',
172
+ },
173
+ {
174
+ term: 'Sanduhr-Modus',
175
+ definition: 'Ein dynamisches Zeitsystem, bei dem die abgezogene Zeit eines Spielers in Echtzeit direkt dem Zeitkonto des Gegners gutgeschrieben wird.',
176
+ },
177
+ {
178
+ term: 'Analyseparalyse',
179
+ definition: 'Ein Zustand des Überdenkens, in dem ein Spieler von den Möglichkeiten überfordert ist, wodurch der Spielfluss stockt und das Erlebnis anderer beeinträchtigt wird.',
180
+ },
181
+ {
182
+ term: 'Spielanalyse',
183
+ definition: 'Leistungsmetriken nach dem Spiel, die die verstrichenen Runden, die durchschnittliche Denkgeschwindigkeit, die maximale Zugdauer und das Ranking der langsamsten Züge zusammenfassen.',
184
+ },
185
+ ],
186
+ },
187
+ ],
188
+ faq: [
189
+ {
190
+ question: 'Wie funktioniert das Layout im Duellmodus?',
191
+ answer: 'Bei einem Spiel für 2 Spieler zeigt die Benutzeroberfläche eine geteilte Schachuhr. Jede Seite repräsentiert einen Spieler; das Tippen auf die eigene Hälfte beendet den Zug. Die Displays können um 180 Grad gedreht werden für Spieler, die sich gegenübersitzen.',
192
+ },
193
+ {
194
+ question: 'Was ist der Unterschied zwischen Fischer- und Bronstein-Modus?',
195
+ answer: 'Der Fischer-Modus fügt nach dem Zug zusätzliche Sekunden hinzu, sodass Spieler Zeit ansparen können. Der Bronstein-Modus bietet eine Verzögerung zu Beginn des Zugs; wird der Zug innerhalb dieser Verzögerung beendet, wird keine Zeit abgezogen.',
196
+ },
197
+ {
198
+ question: 'Verfolgt die App Spielstatistiken?',
199
+ answer: 'Ja! Nach Spielende oder Zeitablauf zeigt das Statistik-Modal die Gesamtzeit, Rundenanzahl, durchschnittliche und maximale Rundenzeit sowie ein Geschwindigkeits-Ranking der Spieler.',
200
+ },
201
+ {
202
+ question: 'Werden meine Spieler beim Aktualisieren gespeichert?',
203
+ answer: 'Ja, die Spielerkonfiguration und die ausgewählten Farben werden automatisch im lokalen Browserspeicher gespeichert und beim nächsten Besuch wieder geladen.',
204
+ },
205
+ {
206
+ question: 'Kann ich während eines laufenden Spiels Zeit hinzufügen oder abziehen?',
207
+ answer: 'Ja! Im Mehrspielermodus verfügen die Spielerkarten über Schaltflächen für +30s und -30s, um die verbleibende Zeit im laufenden Betrieb anzupassen.',
208
+ },
209
+ ],
210
+ bibliography,
211
+ howTo: [
212
+ {
213
+ name: 'Spiel-Setup konfigurieren',
214
+ text: 'Wählen Sie eine Voreinstellung (Casual, Blitz, Strategisch, Sanduhr) oder legen Sie eigene Parameter fest: Basisdauer, Inkrement/Verzögerung und Warnschwellen.',
215
+ },
216
+ {
217
+ name: 'Spieler zusammenstellen und speichern',
218
+ text: 'Geben Sie Spielernamen ein und wählen Sie Farb-IDs. Ändern Sie die Zugreihenfolge mit den Pfeiltasten; die Daten werden automatisch gesichert.',
219
+ },
220
+ {
221
+ name: 'Starten und Züge beenden',
222
+ text: 'Starten Sie das Spiel. Tippen Sie im Duellmodus auf Ihre Bildschirmhälfte, um Ihren Zug zu beenden. Klicken Sie im Mehrspielermodus auf die große Schaltfläche Zug beenden.',
223
+ },
224
+ ],
225
+ schemas: [
226
+ {
227
+ '@context': 'https://schema.org',
228
+ '@type': 'SoftwareApplication',
229
+ 'name': 'Brettspiel-Timer & Runden-Manager',
230
+ 'operatingSystem': 'All',
231
+ 'applicationCategory': 'UtilitiesApplication',
232
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.'
233
+ },
234
+ {
235
+ '@context': 'https://schema.org',
236
+ '@type': 'FAQPage',
237
+ 'mainEntity': [
238
+ {
239
+ '@type': 'Question',
240
+ 'name': 'Wie funktioniert das Layout im Duellmodus?',
241
+ 'acceptedAnswer': {
242
+ '@type': 'Answer',
243
+ 'text': 'Bei einem Spiel für 2 Spieler zeigt die Benutzeroberfläche eine geteilte Schachuhr. Jede Seite repräsentiert einen Spieler; das Tippen auf die eigene Hälfte beendet den Zug. Die Displays können um 180 Grad gedreht werden für Spieler, die sich gegenübersitzen.'
244
+ }
245
+ },
246
+ {
247
+ '@type': 'Question',
248
+ 'name': 'Was ist der Unterschied zwischen Fischer- und Bronstein-Modus?',
249
+ 'acceptedAnswer': {
250
+ '@type': 'Answer',
251
+ 'text': 'Der Fischer-Modus fügt nach dem Zug zusätzliche Sekunden hinzu, sodass Spieler Zeit ansparen können. Der Bronstein-Modus bietet eine Verzögerung zu Beginn des Zugs; wird der Zug innerhalb dieser Verzögerung beendet, wird keine Zeit abgezogen.'
252
+ }
253
+ },
254
+ {
255
+ '@type': 'Question',
256
+ 'name': 'Verfolgt die App Spielstatistiken?',
257
+ 'acceptedAnswer': {
258
+ '@type': 'Answer',
259
+ 'text': 'Ja! Nach Spielende oder Zeitablauf zeigt das Statistik-Modal die Gesamtzeit, Rundenanzahl, durchschnittliche und maximale Rundenzeit sowie ein Geschwindigkeits-Ranking der Spieler.'
260
+ }
261
+ },
262
+ {
263
+ '@type': 'Question',
264
+ 'name': 'Werden meine Spieler beim Aktualisieren gespeichert?',
265
+ 'acceptedAnswer': {
266
+ '@type': 'Answer',
267
+ 'text': 'Ja, die Spielerkonfiguration und die ausgewählten Farben werden automatisch im lokalen Browserspeicher gespeichert und beim nächsten Besuch wieder geladen.'
268
+ }
269
+ },
270
+ {
271
+ '@type': 'Question',
272
+ 'name': 'Kann ich während eines laufenden Spiels Zeit hinzufügen oder abziehen?',
273
+ 'acceptedAnswer': {
274
+ '@type': 'Answer',
275
+ 'text': 'Ja! Im Mehrspielermodus verfügen die Spielerkarten über Schaltflächen für +30s und -30s, um die verbleibende Zeit im laufenden Betrieb anzupassen.'
276
+ }
277
+ }
278
+ ]
279
+ },
280
+ {
281
+ '@context': 'https://schema.org',
282
+ '@type': 'HowTo',
283
+ 'name': 'So verwenden Sie den Brettspiel-Timer',
284
+ 'step': [
285
+ {
286
+ '@type': 'HowToStep',
287
+ 'name': 'Spiel-Setup konfigurieren',
288
+ 'text': 'Wählen Sie eine Voreinstellung (Casual, Blitz, Strategisch, Sanduhr) oder legen Sie eigene Parameter fest: Basisdauer, Inkrement/Verzögerung und Warnschwellen.'
289
+ },
290
+ {
291
+ '@type': 'HowToStep',
292
+ 'name': 'Spieler zusammenstellen und speichern',
293
+ 'text': 'Geben Sie Spielernamen ein und wählen Sie Farb-IDs. Ändern Sie die Zugreihenfolge mit den Pfeiltasten; die Daten werden automatisch gesichert.'
294
+ },
295
+ {
296
+ '@type': 'HowToStep',
297
+ 'name': 'Starten und Züge beenden',
298
+ 'text': 'Starten Sie das Spiel. Tippen Sie im Duellmodus auf Ihre Bildschirmhälfte, um Ihren Zug zu beenden. Klicken Sie im Mehrspielermodus auf die große Schaltfläche Zug beenden.'
299
+ }
300
+ ]
301
+ }
302
+ ],
303
+ };
@@ -0,0 +1,304 @@
1
+ import { bibliography } from '../bibliography';
2
+ import type { ToolLocaleContent } from '../../../types';
3
+ import type { BoardGameTimerUI } from '../entry';
4
+
5
+ const ui: BoardGameTimerUI = {
6
+ title: 'Board Game Timer',
7
+ setupTitle: 'Game Setup',
8
+ playerNamePlaceholder: 'Player name',
9
+ addPlayer: 'Add Player',
10
+ removePlayer: 'Remove',
11
+ startGame: 'Start Game',
12
+ pauseGame: 'Pause',
13
+ resumeGame: 'Resume',
14
+ resetGame: 'Reset',
15
+ nextTurn: 'End Turn',
16
+ addTime: '+30s',
17
+ removeTime: '-30s',
18
+ playerLabel: 'Player',
19
+ minutesLabel: 'min',
20
+ secondsLabel: 'sec',
21
+ expiredLabel: 'TIME UP',
22
+ overtimeLabel: 'Overtime',
23
+ turnIndicator: 'Your Turn',
24
+ warningLowTime: 'Low Time',
25
+ pausedOverlay: 'Game Paused',
26
+ roundLabel: 'Round',
27
+ settingsTitle: 'Settings',
28
+ baseTimeLabel: 'Base Time',
29
+ incrementLabel: 'Increment/Delay',
30
+ warningTimeLabel: 'Warning Threshold',
31
+ confirmLabel: 'Confirm',
32
+ cancelLabel: 'Cancel',
33
+ noPlayersHint: 'Add at least 2 players to start',
34
+ addPlayerHint: 'Enter player name',
35
+ timeUpLabel: "Time's up!",
36
+ presetsTitle: 'Presets',
37
+ timeControlTitle: 'Time Control',
38
+ modeLabel: 'Mode',
39
+ modeNormal: 'Normal Count',
40
+ modeFischer: 'Fischer (Increment)',
41
+ modeBronstein: 'Bronstein (Delay)',
42
+ modeHourglass: 'Hourglass',
43
+ modeTurn: 'Turn Reset',
44
+ audioTitle: 'Audio Alerts',
45
+ soundAlerts: 'Sound Effects',
46
+ playersTitle: 'Players',
47
+ playersAdded: 'Added Players',
48
+ statsTitle: 'Game Statistics',
49
+ totalGameTime: 'Total Time',
50
+ totalRounds: 'Total Rounds',
51
+ slowestPlayer: 'Slowest Player',
52
+ playerPerformance: 'Player Time Analysis',
53
+ playAgain: 'New Game',
54
+ };
55
+
56
+ export const content: ToolLocaleContent<BoardGameTimerUI> = {
57
+ slug: 'board-game-timer',
58
+ title: 'Board Game Timer: Duel Chess Clock & Multiplayer Turn Manager',
59
+ description: 'Track turns and manage time in your tabletop sessions with a professional board game timer. Supports Chess Clock duel mode, multiplayer layouts, Fischer increment, Bronstein delay, Hourglass, and detailed game metrics.',
60
+ ui,
61
+ seo: [
62
+ { type: 'title', text: 'Mastering Tabletop Pace: How Professional Time Controls Enhance Tabletop Gaming', level: 2 },
63
+ { type: 'paragraph', html: 'Time management is a vital component in modern tabletop gaming. Whether you are contesting a fast-paced party challenge or engaging in a deep strategic wargame, regulating thinking time ensures that all participants have a fair share of the spotlight. Utilizing professional timing methods like Fischer increment, Bronstein delay, or Hourglass modes eliminates analysis paralysis, guarantees game pace consistency, and adds an extra layer of strategic decision-making to the game board.' },
64
+ {
65
+ type: 'stats',
66
+ items: [
67
+ { value: '2-8', label: 'Supported Players' },
68
+ { value: '5 Modes', label: 'Time Configurations' },
69
+ { value: '100ms', label: 'Engine Precision' },
70
+ ],
71
+ columns: 3,
72
+ },
73
+ { type: 'title', text: 'Fischer, Bronstein, and Hourglass: Advanced Time Controls Explained', level: 2 },
74
+ { type: 'paragraph', html: 'Our professional board game timer supports multiple timing options inspired by competitive tournament play, keeping casual and heavy game sessions running smoothly:' },
75
+ {
76
+ type: 'table',
77
+ headers: ['Mode', 'How It Works', 'Best Suited For'],
78
+ rows: [
79
+ ['Normal Count', 'A standard global countdown clock that pauses on turn end.', 'Casual board games with a global thinking pool'],
80
+ ['Fischer (Increment)', 'Adds a set amount of seconds to your clock after you finish a turn.', 'Strategic euros and wargames where quick turns build a time buffer'],
81
+ ['Bronstein (Delay)', 'Provides a delay window during which your main timer does not count down.', 'Complex tactical games where short admin actions should be free'],
82
+ ['Hourglass', 'Your timer decreases while your opponent\'s timer increases.', 'Intense two-player competitive duels and chess matches'],
83
+ ['Turn Reset', 'A fixed, fresh countdown timer that resets completely on each turn.', 'Fast-paced party games, trivia challenges, and quick rounds'],
84
+ ],
85
+ },
86
+ {
87
+ type: 'tip',
88
+ title: 'Finding the Ideal Time Configuration',
89
+ html: 'A recommended starting point is allocating 30-45 seconds for light party games, 1-2 minutes with a 5-second Bronstein delay for mid-weight eurogames, and 30-45 minutes with a 10-second Fischer increment for heavy wargames or strategic tabletop campaigns.',
90
+ },
91
+ {
92
+ type: 'title',
93
+ text: 'Visual Optimization: Split-Screen Duel vs. Multiplayer Central Turn Button',
94
+ level: 3,
95
+ },
96
+ {
97
+ type: 'paragraph',
98
+ html: 'For head-to-head duels, the application automatically presents a split-screen chess clock layout. This view allows players to orient and rotate their screen halves by 180 degrees, allowing convenient viewing from opposite sides of the table. For games with 3 or more participants, the interface changes to a multiplayer grid with active player glow highlights, individual card adjustments, and a giant central End Turn action button that acts as a shared physical buzzer in the middle of the play area.',
99
+ },
100
+ {
101
+ type: 'proscons',
102
+ title: 'Comparing Fischer Increment vs. Bronstein Delay',
103
+ items: [
104
+ {
105
+ pro: 'Fischer increments reward rapid execution by accumulating a time buffer for future turns.',
106
+ con: 'Total game time can become longer if players consistently execute quick turns.',
107
+ },
108
+ {
109
+ pro: 'Bronstein delay prevents losing time on quick administrative turns without accumulating massive reserves.',
110
+ con: 'Requires configuring a delay threshold that matches the physical admin time of the game.',
111
+ },
112
+ {
113
+ pro: 'Hourglass mode creates direct tension in competitive duels by actively draining your time to feed your opponent.',
114
+ con: 'Becomes mathematically complex and less strategic in games with more than two players.',
115
+ },
116
+ ],
117
+ },
118
+ {
119
+ type: 'title',
120
+ text: 'Common Tabletop Genres That Benefit From Turn Timers',
121
+ level: 3,
122
+ },
123
+ {
124
+ type: 'comparative',
125
+ items: [
126
+ {
127
+ title: 'Strategic Eurogames',
128
+ description: 'Worker placement and resource management games where turns can vary in complexity. Fischer increments help players manage critical endgame decisions without slowing down the initial rounds.',
129
+ icon: 'mdi:chess-knight',
130
+ highlight: true,
131
+ points: [
132
+ 'Mitigates analysis paralysis',
133
+ 'Variable turn complexity support',
134
+ 'Time becomes an active resource',
135
+ ],
136
+ },
137
+ {
138
+ title: 'Party & Trivia Games',
139
+ description: 'High-energy games where quick thinking is part of the fun. Fixed turn reset clocks keep energy high and prevent a single player from halting the flow.',
140
+ icon: 'mdi:party-popper',
141
+ highlight: false,
142
+ points: [
143
+ 'Short fixed countdowns',
144
+ 'Maintains party momentum',
145
+ 'Enforces immediate actions',
146
+ ],
147
+ },
148
+ {
149
+ title: 'Tournament Duel Play',
150
+ description: 'Strict chess clock duels require precise, rotatable layouts to ensure competitive integrity and fair scheduling across multiple tournament rounds.',
151
+ icon: 'mdi:trophy',
152
+ highlight: false,
153
+ points: [
154
+ '180-degree display rotation',
155
+ 'Accurate 100ms interval tracking',
156
+ 'Sudden death/overtime states',
157
+ ],
158
+ },
159
+ ],
160
+ columns: 3,
161
+ },
162
+ {
163
+ type: 'glossary',
164
+ items: [
165
+ {
166
+ term: 'Fischer Increment',
167
+ definition: 'A time control method where a specified number of seconds is added to a player\'s remaining time after each turn is completed.',
168
+ },
169
+ {
170
+ term: 'Bronstein Delay',
171
+ definition: 'A time control method where the countdown is delayed for a set period at the start of a turn, preventing deduction if the turn is finished quickly.',
172
+ },
173
+ {
174
+ term: 'Hourglass Mode',
175
+ definition: 'A dynamic timing system where one player\'s ticking clock transfers its deducted time directly to the opponent\'s pool in real-time.',
176
+ },
177
+ {
178
+ term: 'Analysis Paralysis',
179
+ definition: 'A state of over-thinking where a player becomes overwhelmed by possibilities, stalling the game flow and impacting other players.',
180
+ },
181
+ {
182
+ term: 'Game Analytics',
183
+ definition: 'Post-game performance metrics summarizing total elapsed rounds, average thinking speed, maximum turn durations, and slowest turn rankings.',
184
+ },
185
+ ],
186
+ },
187
+ ],
188
+ faq: [
189
+ {
190
+ question: 'How does the Duel mode layout work?',
191
+ answer: 'When starting a 2-player game, the interface displays a split-screen chess clock. Each side represents a player, and tapping their half ends their turn. Displays can be rotated by 180 degrees for players sitting opposite each other.',
192
+ },
193
+ {
194
+ question: 'What is the difference between Fischer and Bronstein modes?',
195
+ answer: 'Fischer mode adds extra seconds to a player\'s pool after ending their turn, allowing them to accumulate buffer time. Bronstein mode grants a delay at the start of each turn; if the turn finishes within the delay, no time is deducted.',
196
+ },
197
+ {
198
+ question: 'Does the application track turn statistics?',
199
+ answer: 'Yes! After a game finishes or a timer expires, the stats modal displays total game duration, total round counts, average turn time, maximum turn time, and ranks players by thinking speed.',
200
+ },
201
+ {
202
+ question: 'Are my players saved when I refresh?',
203
+ answer: 'Yes, the player configuration and color selections are automatically saved in local browser storage, restoring your players list when you return to the page.',
204
+ },
205
+ {
206
+ question: 'Can I add or remove time during a live game?',
207
+ answer: 'Yes! In multiplayer mode, player cards feature dedicated +30s and -30s action buttons to quickly adjust remaining time parameters on the fly.',
208
+ },
209
+ ],
210
+ bibliography,
211
+ howTo: [
212
+ {
213
+ name: 'Configure Game Setup',
214
+ text: 'Select a preset (Casual, Blitz, Strategic, Hourglass) or choose custom parameters: base duration, increment/delay, and warning limits.',
215
+ },
216
+ {
217
+ name: 'Assemble and Persist Players',
218
+ text: 'Input player names and select color identifiers. Reorder turn sequence using the arrow controls; details are saved automatically.',
219
+ },
220
+ {
221
+ name: 'Launch and Pass Turns',
222
+ text: 'Start the game. In Duel mode, tap your screen half to end a turn. In Multiplayer mode, click the giant central Next Turn button.',
223
+ },
224
+ ],
225
+ schemas: [
226
+ {
227
+ '@context': 'https://schema.org',
228
+ '@type': 'SoftwareApplication',
229
+ 'name': 'Board Game Timer & Turn Manager',
230
+ 'operatingSystem': 'All',
231
+ 'applicationCategory': 'UtilitiesApplication',
232
+ 'browserRequirements': 'Requires HTML5. Requires JavaScript.'
233
+ },
234
+ {
235
+ '@context': 'https://schema.org',
236
+ '@type': 'FAQPage',
237
+ 'mainEntity': [
238
+ {
239
+ '@type': 'Question',
240
+ 'name': 'How does the Duel mode layout work?',
241
+ 'acceptedAnswer': {
242
+ '@type': 'Answer',
243
+ 'text': 'When starting a 2-player game, the interface displays a split-screen chess clock. Each side represents a player, and tapping their half ends their turn. Displays can be rotated by 180 degrees for players sitting opposite each other.'
244
+ }
245
+ },
246
+ {
247
+ '@type': 'Question',
248
+ 'name': 'What is the difference between Fischer and Bronstein modes?',
249
+ 'acceptedAnswer': {
250
+ '@type': 'Answer',
251
+ 'text': 'Fischer mode adds extra seconds to a player\'s pool after ending their turn, allowing them to accumulate buffer time. Bronstein mode grants a delay at the start of each turn; if the turn finishes within the delay, no time is deducted.'
252
+ }
253
+ },
254
+ {
255
+ '@type': 'Question',
256
+ 'name': 'Does the application track turn statistics?',
257
+ 'acceptedAnswer': {
258
+ '@type': 'Answer',
259
+ 'text': 'Yes! After a game finishes or a timer expires, the stats modal displays total game duration, total round counts, average turn time, maximum turn time, and ranks players by thinking speed.'
260
+ }
261
+ },
262
+ {
263
+ '@type': 'Question',
264
+ 'name': 'Are my players saved when I refresh?',
265
+ 'acceptedAnswer': {
266
+ '@type': 'Answer',
267
+ 'text': 'Yes, the player configuration and color selections are automatically saved in local browser storage, restoring your players list when you return to the page.'
268
+ }
269
+ },
270
+ {
271
+ '@type': 'Question',
272
+ 'name': 'Can I add or remove time during a live game?',
273
+ 'acceptedAnswer': {
274
+ '@type': 'Answer',
275
+ 'text': 'Yes! In multiplayer mode, player cards feature dedicated +30s and -30s action buttons to quickly adjust remaining time parameters on the fly.'
276
+ }
277
+ }
278
+ ]
279
+ },
280
+ {
281
+ '@context': 'https://schema.org',
282
+ '@type': 'HowTo',
283
+ 'name': 'How to Use the Board Game Timer',
284
+ 'step': [
285
+ {
286
+ '@type': 'HowToStep',
287
+ 'name': 'Configure Game Setup',
288
+ 'text': 'Select a preset (Casual, Blitz, Strategic, Hourglass) or choose custom parameters: base duration, increment/delay, and warning limits.'
289
+ },
290
+ {
291
+ '@type': 'HowToStep',
292
+ 'name': 'Assemble and Persist Players',
293
+ 'text': 'Input player names and select color identifiers. Reorder turn sequence using the arrow controls; details are saved automatically.'
294
+ },
295
+ {
296
+ '@type': 'HowToStep',
297
+ 'name': 'Launch and Pass Turns',
298
+ 'text': 'Start the game. In Duel mode, tap your screen half to end a turn. In Multiplayer mode, click the giant central Next Turn button.'
299
+ }
300
+ ]
301
+ }
302
+ ],
303
+ };
304
+