diff --git a/package.json b/package.json index fa9f9a7de..0eb02de41 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "esc-configurator", - "version": "0.31.0", + "version": "0.32.0", "private": false, "license": "AGPL-3.0", "dependencies": { diff --git a/src/Components/FirmwareSelector/__tests__/index.test.jsx b/src/Components/FirmwareSelector/__tests__/index.test.jsx index e1a68f1e8..f5d76dd28 100644 --- a/src/Components/FirmwareSelector/__tests__/index.test.jsx +++ b/src/Components/FirmwareSelector/__tests__/index.test.jsx @@ -314,7 +314,7 @@ describe('FirmwareSelector', () => { fireEvent.change(screen.getByRole(/combobox/i, { name: 'Version' }), { target: { - value: 'https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.94/', + value: 'https://github.com/am32-firmware/AM32/releases/download/v1.94/', name: 'Version', }, }); @@ -377,7 +377,7 @@ describe('FirmwareSelector', () => { fireEvent.change(screen.getByRole(/combobox/i, { name: 'Version' }), { target: { - value: 'https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.94/', + value: 'https://github.com/am32-firmware/AM32/releases/download/v1.94/', name: 'Version', }, }); diff --git a/src/Components/Home/index.jsx b/src/Components/Home/index.jsx index b12917cac..2eb0a8555 100644 --- a/src/Components/Home/index.jsx +++ b/src/Components/Home/index.jsx @@ -118,7 +118,7 @@ function HomeColumnCenter() {
- If you are still on 0.20.0, please downgrade to 0.19.2 - there have been issues with stall detection and motor protection which might result in broken ESCs and/or motors. + If you are still on 0.20.0, please upgrade to version 0.21.0 - there have been issues with stall detection and motor protection which might result in broken ESCs and/or motors.

@@ -151,7 +151,7 @@ function HomeColumnCenter() {
  • diff --git a/src/Components/MainContent/style.scss b/src/Components/MainContent/style.scss index 9d6514093..f711fb852 100644 --- a/src/Components/MainContent/style.scss +++ b/src/Components/MainContent/style.scss @@ -148,7 +148,7 @@ } .input-wrapper { - flex: 0 0 195px; + flex: 0 0 218px; input:not([type="checkbox"]), select { @@ -170,7 +170,7 @@ label { flex: 1; - flex: 0 0 195px; + flex: 0 0 218px; } } diff --git a/src/changelog.json b/src/changelog.json index 6e14cdbe1..9b45b2e1e 100644 --- a/src/changelog.json +++ b/src/changelog.json @@ -1,4 +1,13 @@ [ + { + "title": "0.32.0", + "items": [ + "Bugfix: Add more space to display ESC information", + "Translation: Add Russian translations", + "Translation: Fixed typo", + "Enhancement: More melodies" + ] + }, { "title": "0.31.0", "items": [ diff --git a/src/melodies.json b/src/melodies.json index 242698ca5..4abc3a50a 100644 --- a/src/melodies.json +++ b/src/melodies.json @@ -125,6 +125,15 @@ "Melody:b=180,o=5,d=8:1p,1p,1p,1p,a4,a#4,b4,c,p,c,b4,c,4p,p,d,p,d,e,f#,4g,g,16g,32g,32p,2g,a,g#,g,f" ] }, + { + "name": "Deco*27 - Vampire", + "tracks": [ + "bluejay:b=163,o=5,d=8:a5,g5,f5,g5,p,4f5,f6,p,a5,16a5,g5,16p,f5,p,f6,p,1p,1p,1p,1p,1p,1p", + "bluejay:b=163,o=5,d=8:1p,1p,1p,1p,4p,a5,d6,e6,4f6,a5,g5,p,f6,p,g6,16g6,32g6,32p,g6,f6,g6,4a6,1p,2p,p", + "bluejay:b=163,o=5,d=8:1p,1p,a5,g5,16g5,16f5,p,g5,p,f5,g5,32f5,32p,16f5,a5,16p,16g5,p,d6,16d6,32d6,32p,d6,c#6,d6,e6,1p,1p,1p,2p,4p", + "bluejay:b=163,o=5,d=8:1p,1p,1p,1p,1p,1p,4p,p,g6,16f6,32f6,32p,f6,p,4a6,g6,f6,g6,2f6" + ] + }, { "name": "Devil's Swing", "tracks": [ @@ -207,6 +216,15 @@ "FF8Laguna4:d=16,o=4,b=140:a,p,d5,p,c5,p,g,a,p,a,d5,p,c5,8p.,a,p,d5,p,c5,p,g,a,p,a,d5,p,c5,8p.,a,p,d5,p,c5,p,g,a,p,a,d5,p,c5,8p.,a,p,d5,p,c5,p,g,a,p,a,d5,p,c5,8p.,2c,8c" ] }, + { + "name": "Future - Mask off", + "tracks": [ + "mask_off:d=4,o=5,b=200:2e,8g,8b,8g,1a,8b,8a,8g,4f#,4e,8d,8b4,1e", + "mask_off:d=4,o=5,b=200:1e2,8p,1a2,8p,1d2,32p,1e2", + "mask_off:d=4,o=5,b=200:1e3,8p,1a3,8p,1d3,32p,1e3", + "mask_off:d=4,o=5,b=200:2e6,8g6,8b6,8g6,1a6,8b6,8a6,8g6,4f#6,4e6,8d6,8b,1e6" + ] + }, { "name": "Guns n Roses - Sweet Child O Mine", "tracks": [ @@ -386,6 +404,13 @@ "Kalyna:b=260,o=5,d=4:f,p,f,p,g#,g#,p,f,g,g#,g,f,2e,2c,2f,f,g,2g#,2g,1f,p,p,p" ] }, + { + "name": "Ой у лузі червона калина (Ukrainian Patriotic Song - Polyphonic)", + "tracks": [ + "kalyna:d=4,o=5,b=260: 4d6,4p, 4d6, 4p, 2f6, 4p, 4d6, 4e6, 4f6, 4e6, 4d6,4c#6, 4p, 4a5,4p, 2d6,4p, 4e6,4f6, 4p, 4e6, 4p, 4d6", + "kalyna:d=4,o=5,b=260: 4d4, 4f4,4d4, 4f4,4d4, 4f4,4d4, 4f4, 4e4, 4g4,4e4, 4g4, 4a4,4c#,4a4,4c#, 4d4, 4f4,4d4, 4f4, 4c4, 4e4,4c4, 4e4,4d4, 4f4,4d4, 4f4" + ] + }, { "name": "Owl City - Fireflies", "tracks": [ @@ -404,6 +429,12 @@ "pacman4:d=32,o=5,b=112:c#,p,c#6,p,g#,p,f,p,c#6,g#,16p,16f.,p,d,p,d6,p,a,p,f#,p,d6,a,16p,16f#.,p,c#,p,c#6,p,g#,p,f,p,c#6,g#,16p,16f.,p,e,f,f#,p,f#,g,g#,p,g#,a,a#,p,16c#6" ] }, + { + "name": "Peppa Pig - Theme", + "tracks": [ + "PeppaPig:b=300,o=5,d=4:g,p,e,c,d,p,g4,p,g4,b4,d,f,e,p,c,p" + ] + }, { "name": "Perfume - Glitter", "tracks": [ @@ -503,6 +534,15 @@ "PushIt:d=8,o=5,b=165:a,p,e,a,p,e,p,g,p,e,p,e,b,c6,b,g,a,p,e,a,p,e,p,g,p,e,p,e,b,c6,b,g,a,p,e6,d6,p,c6,p,b,p,g,p,g,b,c6,b,g,a" ] }, + { + "name": "Sea of Thieves - Maiden Voyage", + "tracks": [ + "Melody:b=125,o=5,d=4:d,8p,16d,16e,f#,8e,16e,16d,e,a,p,16g,16f#,8e,d,16f#,8p,16a,b,8a,8p,2e,e", + "Melody:b=125,o=4,d=4:p,d,8p,32d,32p,32a3,32p,8d,8p,p,16c#,16p,32a3,32p,32c#,32p,a3,2p,d,p,8e,8p,p,16a3,16p,32a3,32p,32a3,32p,8a3,8p", + "Melody:b=125,o=6,d=4:d,8p,16d,16e,f#,8e,16e,16d,e,a,p,16g,16f#,8e,d,16f#,8p,16a,b,8a,8p,2e,e", + "Melody:b=125,o=4,d=4:p,a3,8p,32a3,32p,32d,32p,a3,p,16a3,16p,32c#,32p,32a3,32p,c#,p,p,a3,p,8a3,8p,p,16c#,16p,32c#,32p,32c#,32p,8c#,8p" + ] + }, { "name": "Shaun the Sheep - Theme", "tracks": [ @@ -633,6 +673,12 @@ "ts_hof_b:b=85,o=3,d=1:8g,8d4,8g4,4d#,8a#,4d#4,8a#,8f4,8a#4,4f,8c4,4f4" ] }, + { + "name": "T-Motor Default", + "tracks": [ + "tmotor:b=130,o=5,d=8:c,16f,16e,f,e,4c" + ] + }, { "name": "Tristam - Till It's Over", "tracks": [ diff --git a/src/settings.json b/src/settings.json index 6256eb0b1..7bde8f957 100644 --- a/src/settings.json +++ b/src/settings.json @@ -29,6 +29,10 @@ "label": "Polski", "value": "pl" }, + { + "label": "Русский", + "value": "ru" + }, { "label": "Українська", "value": "uk" diff --git a/src/sources/AM32/__tests__/index.test.js b/src/sources/AM32/__tests__/index.test.js index db49e90df..e5a683959 100644 --- a/src/sources/AM32/__tests__/index.test.js +++ b/src/sources/AM32/__tests__/index.test.js @@ -115,40 +115,40 @@ describe('AM32', () => { expect(name).toEqual('NOT READY - AM32, FLASH FIRMWARE, Bootloader v8 (PB2)'); }); - it('should return valid URL for version 1.94', () => { + it('should return valid URL for version 2.08', () => { const firmwareConfig = { escKey: 'IFlight_50A', - version: '1.94', - url: 'https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.94/', + version: '2.08', + url: 'https://github.com/am32-firmware/AM32/releases/download/v2.08/', esc: { meta: {} }, }; const url = source.getFirmwareUrl(firmwareConfig); - expect(url).toEqual('https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.94/AM32_IFLIGHT_F051_1.94.hex'); + expect(url).toEqual('https://github.com/am32-firmware/AM32/releases/download/v2.08/AM32_IFLIGHT_F051_2.08.hex'); }); it('should return valid URL for version included in patterns', () => { const firmwareConfig = { escKey: 'IFlight_50A', - version: 'v1.91', - url: 'https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.91/', + version: 'v2.08', + url: 'https://github.com/am32-firmware/AM32/releases/download/v2.08/', esc: { meta: {} }, }; const url = source.getFirmwareUrl(firmwareConfig); - expect(url).toEqual('https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.91/AM32_IFLIGHT_F051_1.91.hex'); + expect(url).toEqual('https://github.com/am32-firmware/AM32/releases/download/v2.08/AM32_IFLIGHT_F051_2.08.hex'); }); it('should return valid URL for version with name detected', () => { const firmwareConfig = { escKey: 'DOES_NOT_EXIST', - version: 'v1.95', - url: 'https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.95/', + version: 'v2.08', + url: 'https://github.com/am32-firmware/AM32/releases/download/v2.08/', esc: { meta: { am32: { fileName: 'DETECTED_FILENAME' } } }, }; const url = source.getFirmwareUrl(firmwareConfig, 'DETECTED'); - expect(url).toEqual('https://github.com/AlkaMotors/AM32-MultiRotor-ESC-firmware/releases/download/v1.95/AM32_DETECTED_FILENAME_1.95.hex'); + expect(url).toEqual('https://github.com/am32-firmware/AM32/releases/download/v2.08/AM32_DETECTED_FILENAME_2.08.hex'); }); it('should return a list of valid names', () => { diff --git a/src/sources/AM32/eeprom.js b/src/sources/AM32/eeprom.js index 782c7ba28..3c5b353f1 100644 --- a/src/sources/AM32/eeprom.js +++ b/src/sources/AM32/eeprom.js @@ -1,6 +1,7 @@ const BOOT_LOADER_PINS = { PA2: 0x02, PB4: 0x14, + PA6: 0x06, }; const RESET_DELAY_MS = 5000; diff --git a/src/sources/AM32/index.js b/src/sources/AM32/index.js index dcb1b4807..4479f0d77 100644 --- a/src/sources/AM32/index.js +++ b/src/sources/AM32/index.js @@ -7,7 +7,7 @@ import Arm from '../../utils/Hardware/Arm'; import semver from 'semver'; import { fetchJsonCached } from '../../utils/Fetch'; -const GITHUB_REPO = 'AlkaMotors/AM32-MultiRotor-ESC-firmware'; +const GITHUB_REPO = 'am32-firmware/AM32'; class AM32Source extends GithubSource { minVersion = "1.94"; @@ -40,7 +40,7 @@ class AM32Source extends GithubSource { const settings = flash.settings; let revision = 'Unsupported/Unrecognized'; if(settings.MAIN_REVISION !== undefined && settings.SUB_REVISION !== undefined) { - revision = `${settings.MAIN_REVISION}.${settings.SUB_REVISION}`; + revision = `${settings.MAIN_REVISION}.${settings.SUB_REVISION > 9 ? '' : '0'}${settings.SUB_REVISION}`; } if(make === 'NOT READY') { diff --git a/src/sources/Bluejay/__tests__/index.test.js b/src/sources/Bluejay/__tests__/index.test.js index 195cd5c64..d6f8948c9 100644 --- a/src/sources/Bluejay/__tests__/index.test.js +++ b/src/sources/Bluejay/__tests__/index.test.js @@ -243,13 +243,13 @@ describe('Bluejay', () => { expect(name).toEqual('MAKE - Bluejay, 0.20.0, Dynamic PWM'); }); - it('should return a list of PWM for versions < v0.21.0', () => { + it('should return a list of PWM for versions < v0.22.0', () => { const frequencies = source.getPwm('v0.10.0'); expect(frequencies.length).toEqual(3); }); - it('should return an empty list for versions >= v0.21.0', () => { - const frequencies = source.getPwm('v0.21.0'); + it('should return an empty list for versions >= v0.22.0', () => { + const frequencies = source.getPwm('v0.22.0'); expect(frequencies.length).toEqual(0); }); diff --git a/src/sources/Bluejay/index.js b/src/sources/Bluejay/index.js index 67b8c1fb9..0220aebd5 100644 --- a/src/sources/Bluejay/index.js +++ b/src/sources/Bluejay/index.js @@ -97,9 +97,9 @@ class BluejaySource extends GithubSource { } getPwm(version) { - // Before v0.21.0 PWM was a build time option and should be selectable + // Before v0.22.0 PWM was a build time option and should be selectable // in the firmware selector. - if(semver.lt(version, '0.21.0')) { + if(semver.lt(version, '0.22.0')) { return [24, 48, 96]; } diff --git a/src/sources/Bluejay/settings.js b/src/sources/Bluejay/settings.js index c8d6f0679..883773b2f 100644 --- a/src/sources/Bluejay/settings.js +++ b/src/sources/Bluejay/settings.js @@ -429,30 +429,28 @@ COMMON['209'] = { }], }, { - name: 'THRESHOLD_48to24', + name: 'THRESHOLD_96to48', type: 'number', min: 0, max: 255, step: 1, - displayFactor: 100 / 255, - label: '48to24Threshold', + label: '96to48Threshold', visibleIf: (settings) => ('PWM_FREQUENCY' in settings) && (parseInt(settings.PWM_FREQUENCY, 10) === 0), - sanitize: (value, settings) => { - if(value > settings.THRESHOLD_96to48) { - return settings.THRESHOLD_96to48; + sanitize: (settings) => { + if(settings.THRESHOLD_96to48 > settings.THRESHOLD_48to24) { + return { THRESHOLD_96to48: settings.THRESHOLD_48to24 }; } - return value; + return {}; }, }, { - name: 'THRESHOLD_96to48', + name: 'THRESHOLD_48to24', type: 'number', min: 0, max: 255, step: 1, - displayFactor: 100 / 255, - label: '96to48Threshold', + label: '48to24Threshold', visibleIf: (settings) => ('PWM_FREQUENCY' in settings) && (parseInt(settings.PWM_FREQUENCY, 10) === 0), }, ], @@ -608,6 +606,7 @@ DEFAULTS['209'] = { // v0.22 ...DEFAULTS['208'], PWM_FREQUENCY: 24, STARTUP_MELODY_WAIT_MS: 0, + THRESHOLD_96to48: 85, THRESHOLD_48to24: 170, }; diff --git a/src/translations/en/common.json b/src/translations/en/common.json index 81e6923e3..705100603 100644 --- a/src/translations/en/common.json +++ b/src/translations/en/common.json @@ -189,7 +189,7 @@ "disabled": "Disabled", "selectionAttention": "Attention!", "selectionHint": "When flashing new (or different) ESC firmware it is best practice to adhere to the following checklist:", - "selectionLi1": "Read the relese notes to understand what changed and what you might need to adjust", + "selectionLi1": "Read the release notes to understand what changed and what you might need to adjust", "selectionLi2": "Make sure your motors spin up reliably on arm and in the correct direction", "selectionLi3": "Check motor temperatures after a short test flight and adjust tune if they are too hot", "selectionLinkText": "Show release notes on Github" diff --git a/src/translations/ru/common.json b/src/translations/ru/common.json new file mode 100644 index 000000000..458374147 --- /dev/null +++ b/src/translations/ru/common.json @@ -0,0 +1,196 @@ +{ + "port": "Порт", + "baudRate": "Скорость передачи данных", + "connect": "Подключить", + "disconnect": "Отключить", + "serialPermission": "Выбрать последовательный порт", + "showLog": "Показать журнал отладки", + "hideLog": "Скрыть журнал отладки", + "note": "Примечание: ", + "warning": "Предупреждение: ", + "notePropsOff": "Убедитесь, что пропеллеры **СНЯТЫ** перед тем, как делать что-нибудь на этой вкладке.", + "noteConnectPower": "Подключите питание к регуляторам оборотов (ESC).", + "warningRadio": "Выключите вашу радиоаппаратуру! Иначе при прошивке могут возникать проблемы, особенно в системах \"Все-в-одном\" (AIO).", + "commonParameters": "Общие параметры", + "unsupportedFirmware": "Неподдерживаемая прошивка", + "commonSettingsDisabled": "Общие настройки отключены", + "commonSettingsDisabledText": "Общие настройки отключены в параметрах, каждый регулятор оборотов следует настраивать отдельно.", + "escProgrammingByTX": "Программирование через передатчик TX", + "escLowRPMPowerProtection": "Защита от перегрузки при низких оборотах", + "escBrakeOnStop": "Тормозить при остановке", + "escStartupPower": "Стартовая мощность", + "escTemperatureProtection": "Защита от перегрева", + "escDemagCompensation": "Сдвиг фазы магнитного поля относительно ротора (Demag Compensation)", + "escMotorTiming": "Частота изменения магнитного поля (Motor Timing)", + "escBeaconDelay": "Задержка сигнала тревоги", + "escBeepStrength": "Громкость бипера при воспроизведении", + "escBeaconStrength": "Громкость сигнала тревоги", + "escStartupBeep": "Звуковой сигнал при запуске", + "escDithering": "ШИМ дизеринг (внесение шума в сигнал ШИМ для предотвращения ошибок при дискретизации)", + "escMotorDirection": "Направление вращения двигателя", + "escLedControl": "Настройка светодиода", + "escPPMMinThrottle": "PPM минимальной тяги", + "escPPMMaxThrottle": "PPM максимальной тяги", + "statusbarPortUtilization": "Загруженность порта:", + "statusbarPacketError": "Ошибки в пакетах:", + "escRampupPower": "Защита от перегрузки при нарастании мощьности", + "escMinStartupPower": "Минимальная стартовая мощность (при ускорении)", + "escMaxStartupPower": "Максимальная стартовая мощность (защита)", + "escButtonFirmwareDump": "Скачать прошивку", + "escButtonFlash": "Установить прошивку этот регулятор оборотов (ESC)", + "defaultChangelogHead": "Список изменений", + "escButtonRead": "Считать настройки", + "escButtonFlashAll": "Прошить все регуляторы оборотов", + "escButtonSaveLog": "Сохранить журнал отладки", + "escButtonClearLog": "Очистить журнал отладки", + "escButtonWrite": "Применить настройки", + "buttonCancel": "Отмена", + "escButtonSelect": "Прошить", + "escPowerRading": "Номинальная мощность", + "defaultChangelogTitle": "Список изменений", + "changelogClose": "Закрыть", + "escDampingMode": "Режим демпфирования (Damping) (Дополнительный PWM)", + "escBrakingStrength": "Максимальная сила торможения", + "escPowerRating": "Номинальная мощность регулятора (ESC)", + "homeExperimental": "Это экспериментальное веб-приложение для онлайн настройки и прошивки регулятора оборотов (ESC).", + "homeVersionInfo": "Вы всегда мажете найти последнюю стабильную версию прошивки здесь. В настоящее время поддерживается следующие прошивки:", + "homeContributionHeader": "Помощь проекту", + "homeContributionText": "Если вы хотите помочь сделать ESC конфигуратор еще лучше, вы можете это сделать несколькими способами, например:", + "homeContributionItem1": "Отвечать на вопросы других пользователей на форумах", + "homeContributionItem2": "Вносить вклад в [програмный код](https://github.com/stylesuxx/esc-configurator) — новые возможности, исправления, улучшения", + "homeContributionItem3": "Делать отчеты о выявленных [проблемах](https://github.com/stylesuxx/esc-configurator/issues/new) с подробным описанием", + "homeContributionItem4": "Тестировать приложение на вашем оборудовании", + "homeContributionItem5": "Помогать с [переводом](http://crowdin.com/project/esc-configuratorcom) интерфейса на ваш язык", + "homeDisclaimerHeader": "Отказ от ответственности", + "homeDisclaimerTextLine1": "Это веб-приложение поддерживает регуляторы оборотов (ESC) на которых работают BLHeli для Atmel, BLHeli для SiLabs и BLHeli_S.", + "homeDisclaimerTextLine2": "**BLHeli FC-подобный интерфейс** является единственным поддерживаемым в настоящее время интерфейсом.", + "homeDisclaimerTextLine3": "Если у вас возникнут какие-либо проблемы, обязательно используйте кнопку **Сохранить журнал отладки** и отправьте новую проблему через [GitHub](https://github.com/stylesuxx/esc-configurator/issues/new).", + "homeDisclaimerTextLine4": "Исходный код приложения можно скачать [здесь](https://github.com/stylesuxx/esc-configurator).", + "homeDisclaimerTextLine5": "Последние версии [драйверов CP210x](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers) можно скачать [здесь](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers).", + "homeDisclaimerTextLine6": "Последние версии [драйверов USB VCP STM](https://www.st.com/en/development-tools/stsw-stm32102.html) можно скачать [здесь](https://www.st.com/en/development-tools/stsw-stm32102.html).", + "homeWelcome": "Добро пожаловать в **ESC-Конфигуратор** — утилиту, предназначенную для упрощения обновления и настройки Ваших регуляторов оборотов (ESC).", + "betaWarningLine1": "**Этот инструмент пока еще находится на стадии BETA-версии.**", + "betaWarningLine2": "Возможно, некоторые вещи могут работать не так, как ожидалось. Если вы обнаружите какие-либо ошибки, пожалуйста, [сообщите нам о них](https://github.com/stylesuxx/esc-configurator/issues/new).", + "findHelp": "Чтобы узнать об уже известных проблемах некоторых браузеров, посетите [вики](https://github.com/stylesuxx/esc-configurator/wiki/Known-Browser-issues).", + "escButtonSelectLocally": "Установить локальную прошивку", + "cookieText": "Этот сайт или посторонние инструменты на этом сайте используют файлы cookies, необходимые для его работы и полезные для целей, указанных в политике использования файлов cookie. Принимая, вы соглашаетесь на использование cookie-файлов.", + "resetDefaults": "Восстановить настройки по умолчанию", + "forceFlashText": "Игнорировать несоответствие микроконтроллера и компоновки?", + "forceFlashHint": "(Установка неподходящей прошивки может повредить ваш регулятор, делайте это на свой страх и риск)", + "migrateFlashText": "Мигрировать настройки между разными прошивками?", + "migrateFlashHint": "(Сделайте это для попытки переноса настройки между разными прошивками, например, из BLHeli_S в Bluejay)", + "migrationNote": "Имейте в виду, что настройки не переносятся между разными прошивками, не забудьте указать направление движения моторов и другие параметры, которые вы захотите перенести. Настройки будут перенесены между разными версиями той же прошивки.", + "escDirectionReversed": "Обратное направление", + "escBidirectionalMode": "Прямое/обратное (3D режим)", + "escSelectProtocol": "Выберите протокол регулятора оборотов (ESC)", + "escSinusoidalStartup": "Синусоидальный запуск", + "escComplementaryPwm": "Дополнительный ШИМ (PWM)", + "escVariablePwmFrequency": "Переменная частота ШИМ (PWM)", + "escStuckRotorProtection": "Защита от блокировки ротора", + "escStallProtection": "Защита от застревания", + "escTimingAdvance": "Расширенный тайминг [градусы]", + "escPwmFrequency": "Частота ШИМ (PWM) [kHz]", + "escPwmFrequencyBluejay": "Частота ШИМ (PWM)", + "escForceEdtArm": "Принудительный арминг с функцией EDT (расширенная телеметрия Dshot)", + "escRcpulseFilter": "Фильтр RC pulse", + "escPwmThresholdLow": "Нижний порог ШИМ (PWM)", + "escPwmThresholdHigh": "Высокий порог ШИМ (PWM)", + "escMotorKv": "Количество оборотов двигателя на один вольт [Kv]", + "escMotorPoles": "Количество полюсов у мотора", + "escBeepVolume": "Громкость сигнала", + "escIntervalTelemetry": "Вывод телеметрии 30мс", + "escServoLowThreshold": "Нижнее пороговое значение сервопривода", + "escServoHighThreshold": "Высокое пороговое значение сервопривода", + "escServoNeutral": "Нейтральное положение сервопривода", + "escServoDeadBand": "Зона нечувствительности датчиков нейтрали сервопривода", + "escLowVoltageCutoff": "Отключение при низком напряжении", + "escLowVoltageThreshold": "Порог отключения при низком напряжении", + "escRcCarReversing": "Задний ход в стиле радиоуправляемого автомобиля", + "escHallSensors": "Датчики Хола", + "escSineModeRange": "Диапазон синусоидального режима", + "escBrakeStrength": "Сила торможения", + "am32RunningBrakeLevel": "Уровень торможения при вращении", + "am32TemperatureLimit": "Ограничение температуры", + "am32CurrentLimit": "Ограничение силы тока [A]", + "am32SineModePower": "Мощность в режиме синусоиды", + "bluejayTextLine1": "Bluejay — это прошивка, основанная на BLHeli_S и поддерживающая двунаправленный DShot. Поэтому это отличный выбор, если вы хотите использовать RPM-фильтрацию на своем оборудовании. Также этот проект направлен на причесывание и упрощение исходного кода BLHeli_S.", + "bluejayTextLine2": "Немаловажной частью проекта является **редактор мелодий**, проигрываемых при включении регуляторов оборотов.", + "bluejaySupportedHardwareLine1": "Пожалуйста, найдите время, чтобы помочь нам задокументировать оборудование, которое вы успешно прошили и на котором протестировали Bluejay, добавив его в [Вики](https://github.com/bird-sanctuary/bluejay/wiki/Tested-Hardware).", + "bluejaySupportedHardwareLine2": "Хотя Bluejay должна работать на всём железе, совместимом с BLHeli, мы хотели бы иметь список протестированного оборудования для того, чтобы люди могли быть уверены, что Bluejay будет работать правильно с их оборудованием.", + "blheli32ToAM32Line1": "Многообещающая прошивка для регуляторов оборотов на базе платформы ARM. Несмотря на то, что платформа ARM относительно новая на рынке, она вызывает большой интерес как со стороны пользователей, так и со стороны производителей. Регуляторы оборотов AM32 скоро будут доступны от разных производителей.", + "blheli32ToAM32Line2": "**AM32 можно установить на регуляторы оборотов (ESC) BLHeli_32** Но сначала вы должны установить AM32-загрузчик с помощью [STM32 Cube Programmer](https://www.st.com/en/development-tools/stm32cubeprog.html#get-software) и программатор/отладчик ST Link V2. Необходимый загрузчик можно найти в [репозитории AM32-загрузчика](https://github.com/AlkaMotors/AM32_Bootloader_F051/releases).", + "blhelisTextLine1": "Конечно же, BLHeli_S не нуждается в представлении — так как это чрезвычайно популярная прошивка, используемая практически на каждом регуляторе оборотов на базе EFM8 в нашем хобби.", + "blhelisTextLine2": "BLHeli_S — проверенная и протестированная прошивка. Она поддерживает все существующие аналоговые и цифровые протоколы.", + "whatsNextHeader": "Что еще?", + "whatsNextText": "Если вы хотите узнать, какие функции появятся в будущем, загляните в [github репозиторий](https://github.com/stylesuxx/esc-configurator). Также не стесняйтесь делать запросы на добавление новых функций, если у вас есть идеи, которые вы хотите реализовать.", + "openPortSelection": "Выбрать порт", + "versionUnsupportedLine1": "Версия {{name}} '{{version}}' (Компоновка {{layout}}) пока еще не поддерживается.", + "versionUnsupportedLine2": "Сообщите нам, создав пост о [проблеме](https://github.com/stylesuxx/esc-configurator).", + "versionUnsupportedLine3": "Устанавливайте прошивку, только если вы полностью осознаёте, что делаете.", + "useDedicatedConfigurator": "{{name}} не поддерживается, пожалуйста, используйте имеющийся конфигуратор.", + "motorControl": "Управление мотором", + "motorControlTextLine1": "Убедитесь, что регуляторы настроены так, чтобы соответствовать состоянию ползунков.", + "motorControlTextLine2": "Например: при включении режима 3D в полетном контроллере убедитесь, что регуляторы оборотов также поставлены в режим 3D, иначе моторы могут раскрутиться на полную мощность.", + "motorControlTextLine3": "Также имейте в виду, что двигатели не будут вращаться, если у вас включен двунаправленный Dshot на полетном контроллере, но регулятор оборотов (ESC) его не поддерживает. Это может произойти при установке прошивки с включенным RPM на BLHeli_S.", + "enableMotorControl": "Включить управление двигателями", + "masterSpeed": "Общая скорость", + "motorNr": "Двигатель {{index}}", + "homeDiscordHeader": "Присоединяйтесь к нашему Discord-каналу!", + "homeDiscordText": "Если у вас есть какие-либо вопросы или вам нужна быстрая помощь, присоединяйтесь к нам на нашем сервере Discord:", + "homeChinaHeader": "Для наших китайских гостей", + "homeChinaText": "Расскажите вашим друзьям за великим китайским брандмауэром, что они могут связаться с нами через местное [зеркало в Китае](https://esc-configurator.pitronic.top).", + "melodyEditorHeader": "Редактор мелодии", + "melodyEditorWrite": "Записать мелодии", + "melodyEditorSave": "Сохранить", + "melodyEditorCustom": "Сохранить мелодии", + "melodyEditorName": "Сохранить как...", + "melodyDelete": "Удалить", + "melodyEditorPlay": "Проиграть", + "melodyEditorStop": "Остановить", + "melodyEditorAccept": "Разрешить", + "melodyEditorPlayAll": "Проиграть все", + "melodyEditorStopAll": "Остановить все", + "melodyPresetsLabel": "Выбрать мелодию", + "homeAttributionHeader": "Авторы", + "homeAttributionText": "Этот проект был во многом вдохновлен [BLHeli Configurator](https://github.com/blheli-configurator/blheli-configurator). Большая часть пользовательского интерфейса была переписана с нуля, но некоторые низкоуровневые вещи, связанные с прошивкой и ее установкой были использованы в нативном виде, так что большой привет всем, кто участвовал в оригинальном BLHeli Configurator.", + "syncMelodies": "Синхронизировать мелодии", + "syncMelodiesHint": "Если включено, то эта мелодия будет использоваться на всех регуляторах.", + "allEscs": "Все регуляторы оборотов", + "escButtonOpenMelodyEditor": "Открыть редактор мелодии", + "multiOnly": "В настоящее время поддерживается только режим MULTI", + "selectFirmware": "Выберите прошивку", + "selectEsc": "Выберите регулятор оборотов", + "selectMode": "Выберите Режим", + "selectVersion": "Выберите Версию", + "selectPwmFrequency": "Выберите частоту ШИМ (PWM)", + "selectTarget": "Выберите Цель", + "battery": "Батарея:", + "settings": "Настройки", + "openMelodyEditor": "Открыть редактор мелодии", + "addToHomeScreen": "Добавить на домашний экран", + "homeInstallLine1": "ESC-Конфигуратор **также можно использовать и в автономном режиме, если установите соответствующий виджет в вашу систему**. В этом случае после установки конфигуратора файлы прошивки будут доступны в автономном режиме.", + "homeInstallLine2": "Настройки всегда могут быть изменены в автономном режиме.", + "escMissingHeader": "Регулятор отсутствует?", + "escMissingText": "Количество доступных регуляторов не совпадает с тем, что сообщает полетный контроллер. Это может быть по нескольким причинам:", + "escMissingHint": "Если результат считывания не тот, что вы ожидали, попробуйте нажать повторно **'Прочитать Настройки'**.", + "escMissing1": "Регулятор оборотов (ESC) еще не готов. К примеру, это может случится, если сейчас **воспроизводится мелодия**. Также предыдущая прошивка могла быть с ошибкой и поэтому загрузка происходит медленнее, чем обычно.", + "escMissing2": "Просто **не осталось подключенных регуляторов.**", + "escMissing3": "**Микроконтроллер регулятора оборотов неисправен.**", + "escMissing4": "Попробуйте другой USB-кабель — не экранированые должным образом кабели могут приводить к таким ошибкам.", + "escMissing5": "Убедитесь, что ваша радиоаппаратура отключена во время работы с конфигуратором. Известны случаи, когда включенный пульт вызывал электромагнитную интерференцию и таким образом негативно влиял на чтение/запись настроек.", + "mistaggedLine1": "**Предупреждение:** Кажется, что при установке прошивки на данный момент произошла ошибка!", + "mistaggedLine2": "Продолжайте только если вы знаете, что вы делаете. Есть риск перегрева регулятора оборотов, и в худшем случае это может привести к полному разрушению регулятора. Если вы хотите продолжить, советуем прошивать версию с нивысшим временем простоя (dead-time) - вам нужно будет поставить галочку в *\"Игнорировать несоответствие микроконтроллера и компоновки\"?* вверху страницы.", + "mistaggedLine3": "Если вы видите это сообщение, пожалуйста, [рассмотрите возможность добавления записи в Wiki](https://github.com/stylesuxx/esc-configurator/wiki/Wrongly-Tagged-AIO's). Это поможет нам задокументировать проблемное оборудование.", + "mistaggedLine4": "**Если вы не понимаете рисков, связанных с продолжением, не стесняйтесь, [присоединяйтесь к нам на discord](https://discord.gg/QvSS5dk23C).**", + "mistaggedTagged": "Метка", + "mistaggedDetected": "Обнаружен", + "update": "Доступно обновление! Чтобы загрузить обновление, обновите или перезапустите приложение.", + "resettingDevice": "Сбросить устройство...", + "disabled": "Отключить", + "selectionAttention": "Внимание!", + "selectionHint": "При установке новых (или других) прошивок регулятора оборотов (ESC) рекомендуется выполнить следующие действия:", + "selectionLi1": "Прочтите примечания к выпуску, чтобы понять, что изменилось и что, возможно, вам потребуется откорректировать", + "selectionLi2": "Убедитесь, что при арминге двигатели вращаются надежно и в правильном направлении", + "selectionLi3": "Проверьте температуру двигателя после небольшого полета и измените настройки, если он слишком горячий", + "selectionLinkText": "Показать примечания к выпуску на Github" +} diff --git a/src/translations/ru/groups.json b/src/translations/ru/groups.json new file mode 100644 index 000000000..a6c1a82ab --- /dev/null +++ b/src/translations/ru/groups.json @@ -0,0 +1,13 @@ +{ + "general": "", + "am32motor": "Спецификации моторов", + "am32sine": "Синусоидальные настройки", + "am32servo": "Настройки сервы", + "am32brake": "Настройки торможения", + "am32pwm": "Настройки ШИМ (PWM)", + "am32safety": "Настройки безопасности", + "bluejaySafety": "Настройки безопасности", + "bluejayBrake": "Настройки торможения", + "bluejayBeacon": "Настройки сигнала тревоги", + "bluejayExperimental": "Экспериментальные настройки" +} \ No newline at end of file diff --git a/src/translations/ru/hints.json b/src/translations/ru/hints.json new file mode 100644 index 000000000..49e36c18f --- /dev/null +++ b/src/translations/ru/hints.json @@ -0,0 +1,49 @@ +{ + "STARTUP_BEEP": "Проигрывает мелодию при включении регулятора оборотов (ESC).", + "BRAKE_ON_STOP": "Препятствует авторотации при снижении оборотов двигателя.", + "BEACON_DELAY": "Время бездействия перед включением сигнала тревоги.", + "TEMPERATURE_PROTECTION": "Температура, при которой будет отключаться регулятор оборотов.", + "BEEP_STRENGTH": "Громкость звукового сигнала при запуске. Установка высокой громкости может повредить двигатели.", + "BEACON_STRENGTH": "Громкость сигнала тревоги. Установка высокой громкости может повредить двигатели.", + "STARTUP_POWER_MIN": "Минимальнаяя мощность, применяемая при запуске двигателей. Необходимо увеличить, если двигатели не раскручиваются после арминга.", + "DITHERING": "Увеличивает эффективное разрешение ШИМ (PWM) до 2000 шагов. Рекомендуется оставлять включенным при частоте ШИМ выше 24кГц.", + "STARTUP_POWER_MAX": "Ограничивает мощность двигателей при запуске или изменении направления оборотов.", + "RPM_POWER_SLOPE": "Ограничивает увеличение мощности при ускорении вращения двигателя. Меньшие значения позволят избежать скачков мощности, а также снизят ускорение и максимально-возможную скорость.", + "MOTOR_DIRECTION": "Направление вращения двигателя может быть прямым или обратным. В двунаправленном режиме центральное положение тяги соответствует нулевому газу.", + "COMMUTATION_TIMING": "Угол опережения коммутации оботок двигателя. Больший тайминг делает регулятор оборотов менее склонным к десинхронизации и может обеспечить больше мощности за счет эффективности.", + "DEMAG_COMPENSATION": "Степень уменьшения мощности, для предотвращения остановки двигателя, вызванной продолжительной демагнетизацией после коммутации обмоток двигателя.", + "SINUSOIDAL_STARTUP": "В течение первых 10% тяги - двигатель переводится в синусоидальный режим с разомкнутым контуром (без обратной связи).", + "COMPLEMENTARY_PWM": "Обеспечивает активное торможение в свзяи с уменьшением силы тока за счет использования нижнего плеча MOSFET-транзисторов.", + "VARIABLE_PWM_FREQUENCY": "Увеличивает частоту ШИМ пропорционально оборотам двигателя от 24-48кГц во избежание колебаний тяги.", + "STUCK_ROTOR_PROTECTION": "Выключает питание двигателя и прекращает попытки перезапуска после 10 неудачных попыток запуска.", + "STALL_PROTECTION": "Автоматическое увеличение тяги при снижении оборотов меньше порогового значения, чтобы избежать остановки мотора. Не рекомендуется для мультикоптеров.", + "TIMING_ADVANCE": "Угол опережения коммутации оботок двигателя. Больший тайминг делает регулятор оборотов менее склонным к десинхронизации и может обеспечить больше мощности за счет эффективности.", + "MOTOR_KV": "Рейтинг KV мотора, заявленный изготовителем. Это значение используется для установления ограничения оборотов для защиты двигателя при низких оборотах.", + "MOTOR_POLES": "Количество полюсов двигателя. Это значение используется для корректировки синусоидальной скорости запуска.", + "STARTUP_POWER": "Регулирует мощность, отдаваемую мотору при запуске и минимальном уровне тяги.", + "PWM_FREQUENCY": "Когда переменная частота ШИМ выключена, эта опция вручную задает частоту переключения (ШИМ) на выбранный диапазон.", + "BEEP_VOLUME": "Уровень громкости звучания двигателя. Высокие значения могут повредить моторы.", + "INTERVAL_TELEMETRY": "Вывод данных телеметрии с интервалом 30 мс.", + "SERVO_LOW_THRESHOLD": "Любой сигнал ниже этой точки будет считаться нулевой тягой.", + "SERVO_HIGH_THRESHOLD": "Любой сигнал выше этой точки будет считаться максимальной тягой.", + "SERVO_NEUTRAL": "В двунаправленных режимах это позиция будет считаться нулевой тягой.", + "SERVO_DEAD_BAND": "Применяется с обеих сторон от нейтрали сервопривода. Все что в этом диапазоне – будет считаться нулевой тягой.", + "LOW_VOLTAGE_CUTOFF": "Если это опция включена, то питание двигателя будет выключаться при падении напряжения ниже порогового значения.", + "LOW_VOLTAGE_THRESHOLD": "Уровень напряжений для каждого элемента батареи для ограничения питания. Единица измерения – Вольт * 100. К примеру, чтобы отключить питание при 3.3V, введите значение 330.", + "RC_CAR_REVERSING": "Только для наземного транспорта. Переписывает пользовательские настройки и устанавливает регулятор оборотов в двунаправленный режим, двойное нажатие меняет направление на противоположное.", + "USE_HALL_SENSORS": "Для регуляторов скорости с датчиками эффекта Холла. Входные данные датчика Холла используются сенсорами двигателей.", + "SINE_MODE_RANGE": "Количество тяги в процентах для синусоидального запуска.", + "BRAKE_STRENGTH": "Сила торможения, при включенном торможении при остановке.", + "BRAKING_STRENGTH": "Максимальное значение торможения, которое применимо (требуется дополнительный цикл ШИМ).", + "POWER_RATING": "В зависимости от номинального напряжения вашей платы эта опция должно быть установлена на *1S*, если плата предназначена только для 1S батарей. На всех платах, имеющих номинальное напряжение от 2S и выше (включая 1-2S) или в случае когда для питания микроконтроллера регулятора используется DC/DC преобразователь, эта опция должна быть установлена на *2S+*.", + "PWM_THRESHOLD_LOW": "Ниже этого уровня тяги будет использоваться сигнал ШИМ с частотой 96 кГц. Между низким и высоким уровнем тяги будет использоваться сигнал ШИМ с частотой 48 кГц.", + "PWM_THRESHOLD_HIGH": "Выше этого уровня будет использована ШИМ с частотой 24кГц.", + "FORCE_EDT_ARM": "Армить только после успешношо взаимодействия полетного контролера с EDT (расширенная телеметрия Dshot). Прошивка полетного контроллера должна поддерживать данную функцию.", + "ESC_PROTOCOL": "Выберите протокол регулятора, который хотите использовать. Это сделано в целях безопасности, заранее установленный протокол регулятора помогает избежать ошибочного обнаружения сигналов тяги!", + "RCPULSE_FILTER": "Значения больше 0 включают фильтр импульсов (RC pulse). Чем больше значение, тем агрессивнее фильтрация. Использовать только для компенсации реально плохих настроек.", + "RUNNING_BRAKE_LEVEL": "Объем торможения, используемый при работе двигателя.", + "TEMPERATURE_LIMIT": "Значительное снижение максимальной мощности при достижении порога.", + "CURRENT_LIMIT": "Удерживать максимально возможные обороты при разрешенном уровне тока.", + "SINE_MODE_POWER": "Фиксированный уровень мощности будет задействован в синусоидальном режиме. ОСТОРОЖНО! Значения свыше 6 могут повредить двигатель и регулятор оборотов.", + "BIDIRECTIONAL_MODE": "Нейтральная позиция в центре – это нулевая тяга. Смещение выше центральной позиции – вращение в одном направлении, смещение ниже центральной позиции – вращение в другом направлении." +} diff --git a/src/translations/ru/log.json b/src/translations/ru/log.json new file mode 100644 index 000000000..d7deaace0 --- /dev/null +++ b/src/translations/ru/log.json @@ -0,0 +1,47 @@ +{ + "closedPort": "Порт закрыт", + "pluggedIn": "Подключено", + "unplugged": "Отключено", + "portSelected": "Порт выбран", + "portChanged": "Порт изменен", + "portOpened": "Последовательный порт открыт", + "mspApiVersion": "Получена версия API MultiWii: {{version}}", + "mspBuildInfo": "Была выпущена рабочая прошивка: {{info}}", + "mspBoardInfo": "Плата: {{identifier}}, версия: {{version}}", + "mspUid": "Получен уникальный ID устройства - 0x{{id}}", + "radioOn": "Ваша радиоаппаратура включена! Чтение и прошивка отключены. Выключите радиоаппаратуру и повторите попытку.", + "mspFcInfo": "Информация о полетном контроллере: идентификатор: {{id}} версия: {{version}}", + "portUsed": "Порт уже используется другим приложением - попробуйте переподключиться", + "fourWayFailed": "Не удалось включить четырехсторонний интерфейс - переподключить полетный контроллер", + "readEscs": "Попытка прочитать {{connected}} регулятор оборотов", + "readEscsSuccess": "Считывание регулятора оборотов закончено", + "readEscsFailed": "Сбой считывания регулятора оборотов", + "readEsc": "Считывание с {{index}}: {{name}} регулятора оборотов", + "flashingEsc": "Прошивка регулятора оборотов № {{index}}", + "flashingEscMissmatchFileNameMissing": "Ошибка при прошивке регулятора оборотов № {{index}} - Имя файла не найдено в файле прошивки, пожалуйста, проверьте версию файла прошивки!", + "flashingEscMissmatchMcuType": "Ошибка прошивки ESC {{index}} - Не соответствует типу микроконтроллера, пожалуйста, проверьте ваш файл прошивки!", + "flashingEscMissmatchFileName": "Ошибка при прошивке регулятора оборотов № {{index}} - Файл прошивки регулятора отличается от текущей прошивки регулятора!", + "flashingEscFailed": "Ошибка при прошивке регулятора оборотов № {{index}} - проверьте тип файла", + "fetchingFilesFailed": "Ошибка загрузки файлов для {{name}}", + "readEscFailed": "Не удалось прочитать регулятор оборотов № {{index}}", + "resetEscFailed": "Не удалось сбросить регулятор оборотов № {{index}}", + "resetEscFailedPowerCycle": "Не удалось сбросить регулятор оборотов № {{index}} - отключите/включите питание и повторите попытку", + "writeSettingsFailed": "Не удалось записать настройки в регуляторе оборотов № {{index}}", + "restoreSettingsFailed": "Не удалось восстановить настройки по умолчанию в регуляторе оборотов № {{index}}", + "getFileFailed": "Не удалось получить файл для прошивки.", + "layoutNotSupported": "Версия компоновки {{revision}} еще не поддерживается", + "escSettingsNoChange": "Нет изменений – обновление для регулятора оборотов № {{index}} не требуется", + "escUpdateSuccess": "Обновление регулятора оборотов № {{index}} - завершено", + "escLocked": "Регулятор оборотов № {{index}}, кажется, заблокирован ({{codeLockByte}}) - обновление может закончиться ошибкой", + "escUpdateFailed": "Обновление регулятора оборотов № {{index}} - закончилось ошибкой", + "escSettingsLayoutMismatch": "Несоответствующая компоновка, ручной выбор не активирован - действие отменено", + "escSettingsMcuMismatch": "Несоответствующий микроконтроллер, ручной выбор не активирован - действие отменено", + "escFlashedInTime": "Идет прошивка регулятора оборотов № {{index}} - {{seconds}} секунд", + "passthroughNotSupported": "Сквозная прошивка BLHELI passthrough не поддерживается", + "firmwareMismatch": "Несоответствие прошивки! Прошивка: {{flash}} против EEPROM: {{eeprom}}", + "bootloaderMismatch": "Несоответствие загрузчика! Прошивка: {{flash}} против EEPROM: {{eeprom}}", + "timingMismatch": "Прошивка промаркирована как {{tagged}}, но на самом деле {{actual}}", + "browser": "{{name}} ({{version}}) на {{os}}", + "dumpingEsc": "Выгружаем прошивку из регулятора оборотов № {{index}}", + "flashingVerificationFailed": "Верификация не прошла. Возможно, данные записаны с ошибками" +} diff --git a/src/translations/ru/settings.json b/src/translations/ru/settings.json new file mode 100644 index 000000000..945407090 --- /dev/null +++ b/src/translations/ru/settings.json @@ -0,0 +1,18 @@ +{ + "settingsHeader": "Настройки", + "closeText": "Закрыть", + "directInput": "Числовой ввод", + "directInputHint": "Использовать ввод чисел вместо ползунков.", + "printLogs": "Выводить логи", + "printLogsHint": "При включении выводить логи в консоль.", + "extendedDebug": "Расширенная информация для отладки", + "extendedDebugHint": "Дополнительно выводить считываемые/записываемые адреса и отправленную/полученную информацию.", + "disableCommon": "Отключить общую настройку ESC", + "disableCommonHint": "Каждый регулятор оборотов (ESC) будет иметь свой собственный набор настроек, вместо одного общего раздела для всех ESC.", + "enableAdvanced": "Включить расширенные настройки", + "enableAdvancedHint": "Добавляет дополнительные настройки, такие как выгрузка прошивки.", + "unstableVersions": "Показывать предварительные релизы прошивки", + "unstableVersionsHint": "Показывать предварительные релизы и нестабильные версии прошивки", + "skipCache": "Не использовать кэш", + "skipCacheHint": "Включите этот параметр, если при выборе прошивки не отображается последняя её версия." +}