diff --git a/src/components/video-editor/SettingsPanel.tsx b/src/components/video-editor/SettingsPanel.tsx index 9ea6279d1..f2ea2af4e 100644 --- a/src/components/video-editor/SettingsPanel.tsx +++ b/src/components/video-editor/SettingsPanel.tsx @@ -622,6 +622,7 @@ const APP_LANGUAGE_LABELS: Record = { nl: "Nederlands", ko: "한국어", "pt-BR": "Português", + ru: "Русский", "zh-CN": "簡體中文", "zh-TW": "繁體中文", }; diff --git a/src/contexts/I18nContext.tsx b/src/contexts/I18nContext.tsx index da831a168..44b03fbbf 100644 --- a/src/contexts/I18nContext.tsx +++ b/src/contexts/I18nContext.tsx @@ -70,6 +70,13 @@ import ptBRLaunch from "@/i18n/locales/pt-BR/launch.json"; import ptBRSettings from "@/i18n/locales/pt-BR/settings.json"; import ptBRShortcuts from "@/i18n/locales/pt-BR/shortcuts.json"; import ptBRTimeline from "@/i18n/locales/pt-BR/timeline.json"; +import ruCommon from "@/i18n/locales/ru/common.json"; +import ruDialogs from "@/i18n/locales/ru/dialogs.json"; +import ruEditor from "@/i18n/locales/ru/editor.json"; +import ruLaunch from "@/i18n/locales/ru/launch.json"; +import ruSettings from "@/i18n/locales/ru/settings.json"; +import ruShortcuts from "@/i18n/locales/ru/shortcuts.json"; +import ruTimeline from "@/i18n/locales/ru/timeline.json"; import zhCNCommon from "@/i18n/locales/zh-CN/common.json"; import zhCNDialogs from "@/i18n/locales/zh-CN/dialogs.json"; import zhCNEditor from "@/i18n/locales/zh-CN/editor.json"; @@ -162,6 +169,15 @@ const messages: Record = { dialogs: ptBRDialogs, shortcuts: ptBRShortcuts, }, + ru: { + common: ruCommon, + launch: ruLaunch, + editor: ruEditor, + timeline: ruTimeline, + settings: ruSettings, + dialogs: ruDialogs, + shortcuts: ruShortcuts, + }, "zh-CN": { common: zhCNCommon, launch: zhCNLaunch, diff --git a/src/i18n/config.ts b/src/i18n/config.ts index 567d72efe..00f12d07f 100644 --- a/src/i18n/config.ts +++ b/src/i18n/config.ts @@ -9,6 +9,7 @@ export const SUPPORTED_LOCALES = [ "nl", "ko", "pt-BR", + "ru", "zh-CN", "zh-TW", ] as const; diff --git a/src/i18n/locales/ru/settings.json b/src/i18n/locales/ru/settings.json index aadb70e02..bfcb35f5d 100644 --- a/src/i18n/locales/ru/settings.json +++ b/src/i18n/locales/ru/settings.json @@ -96,29 +96,29 @@ "cursorSpringMass": "Масса (инерция)", "off": "Выкл.", "cursorClickEffects": { - "title": "Click Effects", - "advanced": "Advanced", - "advancedShow": "Show advanced click effect controls", - "advancedHide": "Hide advanced click effect controls", - "color": "Effect Color", - "size": "Effect Size", - "opacity": "Effect Opacity", - "duration": "Effect Duration", + "title": "Эффекты клика", + "advanced": "Дополнительно", + "advancedShow": "Показать дополнительные настройки эффекта клика", + "advancedHide": "Скрыть дополнительные настройки эффекта клика", + "color": "Цвет эффекта", + "size": "Размер эффекта", + "opacity": "Прозрачность эффекта", + "duration": "Длительность эффекта", "none": { - "label": "Off", - "description": "No click graphic. Only the cursor motion changes when you click." + "label": "Выкл.", + "description": "Без графики при клике — меняется только движение курсора." }, "ripple": { - "label": "Ripple", - "description": "Expanding rings radiate from each click so taps read clearly in motion." + "label": "Волны", + "description": "От каждого клика расходятся круги, поэтому нажатия хорошо читаются в движении." }, "spotlight": { - "label": "Spotlight", - "description": "A soft halo flashes around the pointer to emphasize the clicked area." + "label": "Подсветка", + "description": "Вокруг курсора вспыхивает мягкий ореол и подчёркивает место клика." }, "echo": { - "label": "Echo", - "description": "A pair of soft rings that spread outward with a cleaner pulse." + "label": "Эхо", + "description": "Пара мягких колец расходится наружу более чётким импульсом." } }, "cursorMotionBlur": "Размытие в движении", @@ -192,12 +192,12 @@ "backgroundOpacity": "Прозрачность фона", "textColor": "Цвет текста", "editor": { - "text": "Text", - "start": "Start", - "end": "End", - "split": "Split", - "merge": "Merge", - "delete": "Delete" + "text": "Текст", + "start": "Начало", + "end": "Конец", + "split": "Разделить", + "merge": "Объединить", + "delete": "Удалить" } }, "crop": {