feat: move hardcoded strings to i18n

This commit is contained in:
Mikhail Kiselev
2026-02-10 14:41:20 +03:00
parent e24e4e7533
commit c42d6035fa
3 changed files with 29 additions and 7 deletions

View File

@@ -202,7 +202,7 @@
meetingActive = true
} catch (e) {
console.error('Failed to start meeting:', e)
alert('Ошибка запуска планёрки: ' + e)
alert($t('common.errorStartMeeting') + ': ' + e)
}
}

View File

@@ -66,18 +66,18 @@
<div class="help-icon">
?
<div class="help-tooltip">
<div class="tooltip-title">Hotkeys</div>
<div class="tooltip-row"><span class="key">⌘N</span> Next speaker</div>
<div class="tooltip-row"><span class="key">⌘S</span> Skip speaker</div>
<div class="tooltip-row"><span class="key">Space</span> Pause/Resume</div>
<div class="tooltip-row"><span class="key">⌘Q</span> Stop meeting</div>
<div class="tooltip-title">{$t('hotkeys.title')}</div>
<div class="tooltip-row"><span class="key">⌘N</span> {$t('hotkeys.next')}</div>
<div class="tooltip-row"><span class="key">⌘S</span> {$t('hotkeys.skip')}</div>
<div class="tooltip-row"><span class="key">Space</span> {$t('hotkeys.pauseResume')}</div>
<div class="tooltip-row"><span class="key">⌘Q</span> {$t('hotkeys.stop')}</div>
</div>
</div>
</div>
<div class="speaker-name">
{#if timerState?.currentSpeaker}
Сейчас говорит: {timerState.currentSpeaker}
{$t('timer.currentlySpeaking')}: {timerState.currentSpeaker}
{:else}
{$t('timer.noSpeaker')}
{/if}

View File

@@ -32,6 +32,7 @@ export const translations = {
// Timer page
timer: {
currentSpeaker: 'Текущий спикер',
currentlySpeaking: 'Сейчас говорит',
speakerTime: 'Время спикера',
totalTime: 'Общее время',
remaining: 'Осталось',
@@ -131,6 +132,7 @@ export const translations = {
no: 'Нет',
loading: 'Загрузка...',
error: 'Ошибка',
errorStartMeeting: 'Ошибка запуска планёрки',
},
// Time formats
@@ -139,6 +141,15 @@ export const translations = {
minutes: 'мин',
seconds: 'сек',
},
// Hotkeys
hotkeys: {
title: 'Горячие клавиши',
next: 'Следующий спикер',
skip: 'Пропустить',
pauseResume: 'Пауза/Продолжить',
stop: 'Остановить митинг',
},
},
en: {
@@ -170,6 +181,7 @@ export const translations = {
// Timer page
timer: {
currentSpeaker: 'Current Speaker',
currentlySpeaking: 'Currently speaking',
speakerTime: 'Speaker Time',
totalTime: 'Total Time',
remaining: 'Remaining',
@@ -269,6 +281,7 @@ export const translations = {
no: 'No',
loading: 'Loading...',
error: 'Error',
errorStartMeeting: 'Failed to start meeting',
},
// Time formats
@@ -277,6 +290,15 @@ export const translations = {
minutes: 'min',
seconds: 'sec',
},
// Hotkeys
hotkeys: {
title: 'Hotkeys',
next: 'Next speaker',
skip: 'Skip speaker',
pauseResume: 'Pause/Resume',
stop: 'Stop meeting',
},
},
};