diff --git a/src/components/dm/DiceRoller.astro b/src/components/dm/DiceRoller.astro
index 106a4fd..8448c43 100644
--- a/src/components/dm/DiceRoller.astro
+++ b/src/components/dm/DiceRoller.astro
@@ -28,7 +28,7 @@ const quickDice = [
class="grid grid-cols-4 sm:grid-cols-7 gap-2"
id="quick-dice-grid"
role="group"
- aria-label="Quick dice selectors"
+ aria-label={T.ariaQuickDice}
>
{
quickDice.map((d) => (
@@ -64,7 +64,7 @@ const quickDice = [
aria-live="polite"
>
- Result
+ {T.resultLabel}
@@ -315,9 +315,9 @@ const quickDice = [
const rolls = result.rolls.join(", ");
if (result.modifier !== 0) {
const sign = result.modifier > 0 ? "+" : "";
- detailsEl.textContent = `Rolls: ${rolls} ${sign}${result.modifier}`;
+ detailsEl.textContent = `${T.rollsLabel}: ${rolls} ${sign}${result.modifier}`;
} else {
- detailsEl.textContent = `Rolls: ${rolls}`;
+ detailsEl.textContent = `${T.rollsLabel}: ${rolls}`;
}
totalEl.className = `text-5xl font-bold ${
@@ -373,7 +373,7 @@ const quickDice = [
totalEl.textContent = "?";
totalEl.className = "text-5xl font-bold text-[var(--gold)]";
labelEl.textContent = trimmed;
- detailsEl.textContent = "Invalid notation";
+ detailsEl.textContent = T.invalidNotation;
if (critMsg) {
critMsg.className = "text-sm font-semibold mt-1 hidden";
}
diff --git a/src/components/dm/InitiativeTracker.astro b/src/components/dm/InitiativeTracker.astro
index b4e3b48..8fcb7f5 100644
--- a/src/components/dm/InitiativeTracker.astro
+++ b/src/components/dm/InitiativeTracker.astro
@@ -47,13 +47,13 @@ import { dmTranslations as T } from "@/i18n/dm-translations";
id="it-initiative"
name="initiative"
type="number"
- placeholder="Итого"
- label="Инициатива"
+ placeholder={T.initiativeTotal}
+ label={T.initiative}
class="sm:max-w-[120px]"
dataTestid="init-initiative-input"
/>
- Бросок d20 + модификатор, или введите итог вручную
+ {T.initiativeHelp}
@@ -64,14 +64,14 @@ import { dmTranslations as T } from "@/i18n/dm-translations";
- Порядок хода
+ {T.turnOrder}
{T.actionClear}
-
+
diff --git a/src/i18n/dm-translations.ts b/src/i18n/dm-translations.ts
index 8b6108e..7b06849 100644
--- a/src/i18n/dm-translations.ts
+++ b/src/i18n/dm-translations.ts
@@ -40,7 +40,7 @@ export const dmTranslations = {
// Empty states
emptyDiceHistory: "Нет истории бросков",
- emptyCombatants: "Нет combatантов",
+ emptyCombatants: "Нет участников боя",
emptySearchResults: "Ничего не найдено",
emptyNotesPlaceholder: "Начните писать заметки...",
@@ -63,6 +63,17 @@ export const dmTranslations = {
rollHistory: "История бросков",
criticalHit: "Критический успех!",
criticalFail: "Критический провал!",
+ resultLabel: "Результат",
+ rollsLabel: "Броски",
+ invalidNotation: "Неверная нотация",
+ ariaQuickDice: "Быстрый выбор кубика",
+ ariaRollHistory: "История бросков",
+
+ // Initiative
+ turnOrder: "Порядок хода",
+ initiativeTotal: "Итого",
+ initiativeHelp: "Бросок d20 + модификатор, или введите итог вручную",
+ ariaCombatants: "Участники боя",
// Auth
loginVk: "Войти через VK",