feat(offline): PIN lock primitives + Apple-style keypad
Groundwork for offline pass-and-play (hotseat) seat/host PIN locks: - lib/pin.ts: salted SHA-256 PinLock (newSalt/hashPin/newLock/verifyPin); a social lock for a shared device (documented, not cryptography). - components/PinPad.svelte: 4-digit keypad (set/verify/change), auto-submit on the 4th digit, shake on mismatch, hardware-keyboard support. - i18n: pin.* keys (en + ru). Engine/source/UI wiring follows.
This commit is contained in:
@@ -389,4 +389,13 @@ export const ru: Record<MessageKey, string> = {
|
||||
'error.game_active': 'Доступно только после завершения игры.',
|
||||
'error.invalid_profile': 'Некоторые поля профиля некорректны.',
|
||||
'error.already_confirmed': 'Эта почта уже подтверждена.',
|
||||
|
||||
'pin.enter': 'Введите PIN',
|
||||
'pin.create': 'Придумайте PIN',
|
||||
'pin.repeat': 'Повторите PIN',
|
||||
'pin.enterCurrent': 'Введите текущий PIN',
|
||||
'pin.mismatch': 'PIN не совпадает',
|
||||
'pin.wrong': 'Неверный PIN',
|
||||
'pin.setNew': 'Задать новый PIN',
|
||||
'pin.remove': 'Удалить пароль',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user