diff --git a/ui/src/game/Game.svelte b/ui/src/game/Game.svelte index 067127c..7484ae9 100644 --- a/ui/src/game/Game.svelte +++ b/ui/src/game/Game.svelte @@ -750,7 +750,7 @@ {#each moves as m, i (i)}
  • {view.game.seats[m.player]?.displayName ?? m.player} - {m.action === 'play' ? m.words.join(', ') : moveActionLabel(m.action)} + {m.action === 'play' ? m.words.join(', ') : `(${moveActionLabel(m.action)})`} {m.score} ({m.total})
  • {/each} @@ -997,6 +997,11 @@ flex: 1; text-align: center; } + .ha.sys { + /* A non-scoring move (pass/exchange/resign/timeout): dimmer and parenthesised so it + reads as a system action rather than a scored word. */ + color: var(--text-muted); + } .hs { font-variant-numeric: tabular-nums; font-weight: 600; diff --git a/ui/src/lib/i18n.test.ts b/ui/src/lib/i18n.test.ts index 5172699..f61068d 100644 --- a/ui/src/lib/i18n.test.ts +++ b/ui/src/lib/i18n.test.ts @@ -14,9 +14,9 @@ describe('i18n catalog', () => { }); it('localizes move-history action labels', () => { - expect(translate('ru', 'move.exchange')).toBe('Обмен'); - expect(translate('ru', 'move.pass')).toBe('Пас'); - expect(translate('en', 'move.exchange')).toBe('Exchange'); + expect(translate('ru', 'move.exchange')).toBe('обмен'); + expect(translate('ru', 'move.pass')).toBe('пас'); + expect(translate('en', 'move.exchange')).toBe('exchange'); }); it('maps error codes to keys with a generic fallback', () => { diff --git a/ui/src/lib/i18n/en.ts b/ui/src/lib/i18n/en.ts index 23e95e3..0ae7a51 100644 --- a/ui/src/lib/i18n/en.ts +++ b/ui/src/lib/i18n/en.ts @@ -88,10 +88,10 @@ export const en = { 'game.noHintOptions': 'No options with your letters.', 'game.scores': 'Scores: {n}', - 'move.pass': 'Pass', - 'move.exchange': 'Exchange', - 'move.resign': 'Resigned', - 'move.timeout': 'Timed out', + 'move.pass': 'pass', + 'move.exchange': 'exchange', + 'move.resign': 'resign', + 'move.timeout': 'timeout', 'result.victory': 'Victory', 'result.defeat': 'Defeat', diff --git a/ui/src/lib/i18n/ru.ts b/ui/src/lib/i18n/ru.ts index dd7594c..76d46b6 100644 --- a/ui/src/lib/i18n/ru.ts +++ b/ui/src/lib/i18n/ru.ts @@ -89,10 +89,10 @@ export const ru: Record = { 'game.noHintOptions': 'Нет вариантов с вашим набором.', 'game.scores': 'Очков: {n}', - 'move.pass': 'Пас', - 'move.exchange': 'Обмен', - 'move.resign': 'Сдача', - 'move.timeout': 'Тайм-аут', + 'move.pass': 'пас', + 'move.exchange': 'обмен', + 'move.resign': 'сдаюсь', + 'move.timeout': 'тайм-аут', 'result.victory': 'Победа', 'result.defeat': 'Поражение',