diff --git a/DONATIONS.txt b/DONATIONS.txt index 99b67a483..2f171e705 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -348,3 +348,5 @@ Martyn Coles Jose Sobral Heung Jin Choi Tomasz Janiak +Fabien Gagné +Joe Street diff --git a/companion/src/burndialog.cpp b/companion/src/burndialog.cpp index d5e89805f..21b151051 100644 --- a/companion/src/burndialog.cpp +++ b/companion/src/burndialog.cpp @@ -52,7 +52,7 @@ burnDialog::burnDialog(QWidget *parent, int Type, QString * fileName, bool * bac ui->BurnFlashButton->setDisabled(true); ui->FWFileName->clear(); ui->DateField->clear(); - ui->SVNField->clear(); + ui->versionField->clear(); ui->ModField->clear(); ui->FramFWInfo->hide(); ui->SplashFrame->hide(); @@ -132,7 +132,7 @@ void burnDialog::on_FlashLoadButton_clicked() ui->BurnFlashButton->setDisabled(true); ui->FWFileName->clear(); ui->DateField->clear(); - ui->SVNField->clear(); + ui->versionField->clear(); ui->ModField->clear(); ui->FramFWInfo->hide(); ui->SplashFrame->hide(); @@ -192,8 +192,8 @@ void burnDialog::checkFw(QString fileName) if (flash.isValid()) { ui->FramFWInfo->show(); ui->DateField->setText(flash.getDate() + " " + flash.getTime()); - ui->SVNField->setText(flash.getSvn()); - ui->ModField->setText(flash.getBuild()); + ui->versionField->setText(flash.getVersion().isEmpty() ? flash.getSvn() : flash.getVersion()); + ui->ModField->setText(flash.getEEprom()); ui->SplashFrame->hide(); if (flash.hasSplash()) { diff --git a/companion/src/burndialog.ui b/companion/src/burndialog.ui index e766d31f9..208bc4527 100644 --- a/companion/src/burndialog.ui +++ b/companion/src/burndialog.ui @@ -113,8 +113,15 @@ QFrame::Raised + + + + Date & Time + + + - + true @@ -135,20 +142,13 @@ - + - SVN + Version - - - - Date & Time - - - - + true @@ -360,8 +360,7 @@ BurnFlashButton FWFileName FlashLoadButton - DateField - SVNField + versionField ModField useProfileImageCB useFwImageCB diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index d2b2358eb..33f2651d8 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -791,115 +791,122 @@ QString FuncSwData::repeatToString() GeneralSettings::GeneralSettings() { memset(this, 0, sizeof(GeneralSettings)); + contrast = 25; vBatWarn = 90; - for (int i=0; i<(NUM_STICKS+C9X_NUM_POTS ); ++i) { + + for (int i=0; igetBoard())) { + potsType[0] = 1; + potsType[1] = 1; + } + templateSetup = g.profile[g.id()].channelOrder(); stickMode = g.profile[g.id()].defaultMode(); - QString t_calib=g.profile[g.id()].stickPotCalib(); - int potsnum=GetEepromInterface()->getCapability(Pots); - if (t_calib.isEmpty()) { - return; - } - else { - QString t_trainercalib=g.profile[g.id()].trainerCalib(); - int8_t t_vBatCalib=(int8_t)g.profile[g.id()].vBatCalib(); - int8_t t_currentCalib=(int8_t)g.profile[g.id()].currentCalib(); - int8_t t_PPM_Multiplier=(int8_t)g.profile[g.id()].ppmMultiplier(); - uint8_t t_stickMode=(uint8_t)g.profile[g.id()].gsStickMode(); - uint8_t t_vBatWarn=(uint8_t)g.profile[g.id()].vBatWarn(); - QString t_DisplaySet=g.profile[g.id()].display(); - QString t_BeeperSet=g.profile[g.id()].beeper(); - QString t_HapticSet=g.profile[g.id()].haptic(); - QString t_SpeakerSet=g.profile[g.id()].speaker(); - QString t_CountrySet=g.profile[g.id()].countryCode(); + QString t_calib=g.profile[g.id()].stickPotCalib(); + int potsnum=GetEepromInterface()->getCapability(Pots); + if (t_calib.isEmpty()) { + return; + } + else { + QString t_trainercalib=g.profile[g.id()].trainerCalib(); + int8_t t_vBatCalib=(int8_t)g.profile[g.id()].vBatCalib(); + int8_t t_currentCalib=(int8_t)g.profile[g.id()].currentCalib(); + int8_t t_PPM_Multiplier=(int8_t)g.profile[g.id()].ppmMultiplier(); + uint8_t t_stickMode=(uint8_t)g.profile[g.id()].gsStickMode(); + uint8_t t_vBatWarn=(uint8_t)g.profile[g.id()].vBatWarn(); + QString t_DisplaySet=g.profile[g.id()].display(); + QString t_BeeperSet=g.profile[g.id()].beeper(); + QString t_HapticSet=g.profile[g.id()].haptic(); + QString t_SpeakerSet=g.profile[g.id()].speaker(); + QString t_CountrySet=g.profile[g.id()].countryCode(); - if ((t_calib.length()==(NUM_STICKS+potsnum)*12) && (t_trainercalib.length()==16)) { - QString Byte; - int16_t byte16; - bool ok; - for (int i=0; i<(NUM_STICKS+potsnum); i++) { - Byte=t_calib.mid(i*12,4); - byte16=(int16_t)Byte.toInt(&ok,16); - if (ok) - calibMid[i]=byte16; - Byte=t_calib.mid(4+i*12,4); - byte16=(int16_t)Byte.toInt(&ok,16); - if (ok) - calibSpanNeg[i]=byte16; - Byte=t_calib.mid(8+i*12,4); - byte16=(int16_t)Byte.toInt(&ok,16); - if (ok) - calibSpanPos[i]=byte16; - } - for (int i=0; i<4; i++) { - Byte=t_trainercalib.mid(i*4,4); - byte16=(int16_t)Byte.toInt(&ok,16); - if (ok) - trainer.calib[i]=byte16; - } - currentCalib=t_currentCalib; - vBatCalib=t_vBatCalib; - vBatWarn=t_vBatWarn; - PPM_Multiplier=t_PPM_Multiplier; - stickMode = t_stickMode; + if ((t_calib.length()==(NUM_STICKS+potsnum)*12) && (t_trainercalib.length()==16)) { + QString Byte; + int16_t byte16; + bool ok; + for (int i=0; i<(NUM_STICKS+potsnum); i++) { + Byte=t_calib.mid(i*12,4); + byte16=(int16_t)Byte.toInt(&ok,16); + if (ok) + calibMid[i]=byte16; + Byte=t_calib.mid(4+i*12,4); + byte16=(int16_t)Byte.toInt(&ok,16); + if (ok) + calibSpanNeg[i]=byte16; + Byte=t_calib.mid(8+i*12,4); + byte16=(int16_t)Byte.toInt(&ok,16); + if (ok) + calibSpanPos[i]=byte16; } - if ((t_DisplaySet.length()==6) && (t_BeeperSet.length()==4) && (t_HapticSet.length()==6) && (t_SpeakerSet.length()==6)) { - uint8_t byte8u; - int8_t byte8; - bool ok; - byte8=(int8_t)t_DisplaySet.mid(0,2).toInt(&ok,16); + for (int i=0; i<4; i++) { + Byte=t_trainercalib.mid(i*4,4); + byte16=(int16_t)Byte.toInt(&ok,16); if (ok) - optrexDisplay=(byte8==1 ? true : false); - byte8u=(uint8_t)t_DisplaySet.mid(2,2).toUInt(&ok,16); + trainer.calib[i]=byte16; + } + currentCalib=t_currentCalib; + vBatCalib=t_vBatCalib; + vBatWarn=t_vBatWarn; + PPM_Multiplier=t_PPM_Multiplier; + stickMode = t_stickMode; + } + if ((t_DisplaySet.length()==6) && (t_BeeperSet.length()==4) && (t_HapticSet.length()==6) && (t_SpeakerSet.length()==6)) { + uint8_t byte8u; + int8_t byte8; + bool ok; + byte8=(int8_t)t_DisplaySet.mid(0,2).toInt(&ok,16); + if (ok) + optrexDisplay=(byte8==1 ? true : false); + byte8u=(uint8_t)t_DisplaySet.mid(2,2).toUInt(&ok,16); + if (ok) + contrast=byte8u; + byte8u=(uint8_t)t_DisplaySet.mid(4,2).toUInt(&ok,16); + if (ok) + backlightBright=byte8u; + byte8=(int8_t)t_BeeperSet.mid(0,2).toUInt(&ok,16); + if (ok) + beeperMode=(BeeperMode)byte8; + byte8=(int8_t)t_BeeperSet.mid(2,2).toInt(&ok,16); + if (ok) + beeperLength=byte8; + byte8=(int8_t)t_HapticSet.mid(0,2).toUInt(&ok,16); + if (ok) + hapticMode=(BeeperMode)byte8; + byte8u=(uint8_t)t_HapticSet.mid(2,2).toUInt(&ok,16); + if (ok) + hapticStrength=byte8u; + byte8=(int8_t)t_HapticSet.mid(4,2).toInt(&ok,16); + if (ok) + hapticLength=byte8; + byte8u=(uint8_t)t_SpeakerSet.mid(0,2).toUInt(&ok,16); + if (ok) + speakerMode=byte8u; + byte8u=(uint8_t)t_SpeakerSet.mid(2,2).toUInt(&ok,16); + if (ok) + speakerPitch=byte8u; + byte8u=(uint8_t)t_SpeakerSet.mid(4,2).toUInt(&ok,16); + if (ok) + speakerVolume=byte8u; + if (t_CountrySet.length()==6) { + byte8u=(uint8_t)t_CountrySet.mid(0,2).toUInt(&ok,16); if (ok) - contrast=byte8u; - byte8u=(uint8_t)t_DisplaySet.mid(4,2).toUInt(&ok,16); + countryCode=byte8u; + byte8u=(uint8_t)t_CountrySet.mid(2,2).toUInt(&ok,16); if (ok) - backlightBright=byte8u; - byte8=(int8_t)t_BeeperSet.mid(0,2).toUInt(&ok,16); - if (ok) - beeperMode=(BeeperMode)byte8; - byte8=(int8_t)t_BeeperSet.mid(2,2).toInt(&ok,16); - if (ok) - beeperLength=byte8; - byte8=(int8_t)t_HapticSet.mid(0,2).toUInt(&ok,16); - if (ok) - hapticMode=(BeeperMode)byte8; - byte8u=(uint8_t)t_HapticSet.mid(2,2).toUInt(&ok,16); - if (ok) - hapticStrength=byte8u; - byte8=(int8_t)t_HapticSet.mid(4,2).toInt(&ok,16); - if (ok) - hapticLength=byte8; - byte8u=(uint8_t)t_SpeakerSet.mid(0,2).toUInt(&ok,16); - if (ok) - speakerMode=byte8u; - byte8u=(uint8_t)t_SpeakerSet.mid(2,2).toUInt(&ok,16); - if (ok) - speakerPitch=byte8u; - byte8u=(uint8_t)t_SpeakerSet.mid(4,2).toUInt(&ok,16); - if (ok) - speakerVolume=byte8u; - if (t_CountrySet.length()==6) { - byte8u=(uint8_t)t_CountrySet.mid(0,2).toUInt(&ok,16); - if (ok) - countryCode=byte8u; - byte8u=(uint8_t)t_CountrySet.mid(2,2).toUInt(&ok,16); - if (ok) - imperial=byte8u; - QString chars=t_CountrySet.mid(4,2); - ttsLanguage[0]=chars[0].toAscii(); - ttsLanguage[1]=chars[1].toAscii(); - } + imperial=byte8u; + QString chars=t_CountrySet.mid(4,2); + ttsLanguage[0]=chars[0].toAscii(); + ttsLanguage[1]=chars[1].toAscii(); } } - + } } RawSource GeneralSettings::getDefaultSource(unsigned int channel) diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 98804b3d1..f2d39810a 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -170,6 +170,19 @@ enum HeliSwashTypes { extern const char * switches9X[]; extern const char * switchesX9D[]; +enum ThrottleSource { + THROTTLE_SOURCE_THR, + THROTTLE_SOURCE_P1, + THROTTLE_SOURCE_P2, + THROTTLE_SOURCE_P3, + THROTTLE_SOURCE_S1 = THROTTLE_SOURCE_P1, + THROTTLE_SOURCE_S2, + THROTTLE_SOURCE_S3, + THROTTLE_SOURCE_LS, + THROTTLE_SOURCE_RS, + THROTTLE_SOURCE_FIRST_CHANNEL, +}; + enum TelemetrySource { TELEMETRY_SOURCE_TX_BATT, TELEMETRY_SOURCE_TIMER1, diff --git a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp index 25f2abf43..ed934036a 100644 --- a/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp +++ b/companion/src/firmwares/opentx/opentxTaranisSimulator.cpp @@ -23,7 +23,6 @@ #define PCBTARANIS #define CPUARM #define HELI -#define TEMPLATES #define SPLASH #define FLIGHT_MODES #define FRSKY @@ -103,7 +102,6 @@ inline int geteepromsize() { #undef SDCARD #include "radio/src/simpgmspace.cpp" #define SDCARD -#include "radio/src/templates.cpp" #include "radio/src/translations.cpp" #include "radio/src/fonts.cpp" #include "radio/src/telemetry/frsky_sport.cpp" diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index c7f0366f8..20173bfcd 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -294,6 +294,32 @@ class SourcesConversionTable: public ConversionTable { } }; +ThrottleSourceConversionTable::ThrottleSourceConversionTable(BoardEnum board, unsigned int version) +{ + int val=0; + + addConversion(THROTTLE_SOURCE_THR, val++); + + if (IS_TARANIS(board)) { + addConversion(THROTTLE_SOURCE_S1, val++); + addConversion(THROTTLE_SOURCE_S2, val++); + if (version >= 216) + addConversion(THROTTLE_SOURCE_S3, val++); + addConversion(THROTTLE_SOURCE_LS, val++); + addConversion(THROTTLE_SOURCE_RS, val++); + } + else { + addConversion(THROTTLE_SOURCE_P1, val++); + addConversion(THROTTLE_SOURCE_P2, val++); + addConversion(THROTTLE_SOURCE_P3, val++); + } + + for (int i=0; i class SwitchField: public ConversionField< SignedField > { public: @@ -2175,7 +2201,8 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne board(board), version(version), variant(variant), - protocolsConversionTable(board) + protocolsConversionTable(board), + throttleSourceConversionTable(board, version) { sprintf(name, "Model %s", modelData.name); @@ -2285,7 +2312,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, BoardEnum board, unsigne internalField.Append(new SignedField<8>(modelData.moduleData[0].ppmFrameLength)); } - internalField.Append(new UnsignedField<8>(modelData.thrTraceSrc)); + internalField.Append(new ConversionField< UnsignedField<8> >(modelData.thrTraceSrc, &throttleSourceConversionTable, "Throttle Source")); if (!afterrelease21March2013) { internalField.Append(new UnsignedField<8>(modelData.modelId)); @@ -2565,8 +2592,8 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, BoardEnum bo } if (IS_TARANIS(board) && version >= 216) { internalField.Append(new UnsignedField<8>(generalData.hw_uartMode)); - for (int i=0; i<8; i++) { - internalField.Append(new UnsignedField<1>(generalData.potsType[i])); + for (int i=0; i<4; i++) { + internalField.Append(new UnsignedField<2>(potsType[i])); } } } @@ -2585,6 +2612,11 @@ void OpenTxGeneralData::beforeExport() sum += generalData.calibSpanPos[i]; if (++count == 12) break; } + for (int i=0; i<4; i++) { + potsType[i] = generalData.potsType[i]; + if (i<2 && potsType[i] == 1) + potsType[i] = 0; + } } else { for (int i=0; i #include "hexinterface.h" #include "splash.h" @@ -20,192 +21,77 @@ int getFileType(const QString &fullFileName) { - if(QFileInfo(fullFileName).suffix().toUpper()=="HEX") return FILE_TYPE_HEX; - if(QFileInfo(fullFileName).suffix().toUpper()=="BIN") return FILE_TYPE_BIN; - if(QFileInfo(fullFileName).suffix().toUpper()=="EEPM") return FILE_TYPE_EEPM; - if(QFileInfo(fullFileName).suffix().toUpper()=="EEPE") return FILE_TYPE_EEPE; - if(QFileInfo(fullFileName).suffix().toUpper()=="XML") return FILE_TYPE_XML; - return 0; + QString suffix = QFileInfo(fullFileName).suffix().toUpper(); + if (suffix == "HEX") + return FILE_TYPE_HEX; + else if (suffix == "BIN") + return FILE_TYPE_BIN; + else if (suffix == "EEPM") + return FILE_TYPE_EEPM; + else if (suffix == "EEPE") + return FILE_TYPE_EEPE; + else if (suffix == "XML") + return FILE_TYPE_XML; + else + return 0; } -FlashInterface::FlashInterface(QString fileName) +FlashInterface::FlashInterface(QString fileName): + flash(MAX_FSIZE, 0), + flash_size(0), + isValidFlag(false) { - char * temp = (char *)malloc(MAX_FSIZE); - date = ""; - time = ""; - svn = ""; - build = ""; - isValidFlag = true; QFile file(fileName); - flash_size=0; - if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file - isValidFlag = false; - } - else { + if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { //reading HEX TEXT file QTextStream inputStream(&file); - flash_size = HexInterface(inputStream).load((uint8_t *)temp, MAX_FSIZE); + flash_size = HexInterface(inputStream).load((uint8_t *)flash.data(), MAX_FSIZE); file.close(); - inputStream.reset(); if (flash_size == 0) { - QFile file(fileName); file.open(QIODevice::ReadOnly); - char * bin_flash = (char *)malloc(MAX_FSIZE); - flash_size = file.read(bin_flash, MAX_FSIZE); - flash = QByteArray(bin_flash, flash_size); - free(bin_flash); - } - else { - flash = QByteArray(temp, flash_size); + flash_size = file.read((char *)flash.data(), MAX_FSIZE); } if (flash_size > 0) { - SeekSvn(); - SeekDate(); - SeekTime(); - SeekBuild(); + svn = seekLabel(SVN_MARK); + version = seekLabel(VERS_MARK); + date = seekLabel(DATE_MARK); + time = seekLabel(TIME_MARK); + eeprom = seekLabel(EEPR_MARK); SeekSplash(); - } - else { - isValidFlag = false; + isValidFlag = true; } } - free(temp); } -QString FlashInterface::getDate(void) +QString FlashInterface::seekString(const QString & string) { - return date; -} + QString result = ""; -QString FlashInterface::getTime(void) -{ - return time; -} - -QString FlashInterface::getSvn(void) -{ - return svn; -} - -QString FlashInterface::getBuild(void) -{ - return build; -} - -int FlashInterface::getSize() -{ - return flash_size; -} - -void FlashInterface::SeekSvn(void) -{ - int i, start = -1, end = -1; - start = flash.indexOf(QString(SVN_MARK)); + int start = flash.indexOf(string); if (start > 0) { - start += QString(SVN_MARK).length(); - for (i = start; i < (start + 20); i++) { - if (flash.at(i) == 0) { + start += string.length(); + int end = -1; + for (int i=start; i 0) { - svn = QString(flash.mid(start, (end - start))).trimmed(); - } - else { - svn = QString(""); + result = flash.mid(start, (end - start)).trimmed(); } } + + return result; } -void FlashInterface::SeekDate(void) +QString FlashInterface::seekLabel(const QString & label) { - int i, start = -1, end = -1, startsvn=0; - startsvn = flash.indexOf(QString(SVN_MARK)); - if (startsvn>0) { - start = flash.indexOf(QString(DATE_MARK),startsvn); - } else { - start = flash.indexOf(QString(DATE_MARK)); - } - if (start > 0) { - start += QString(DATE_MARK).length(); - for (i = start; i < (start + 20); i++) { - if (flash.at(i) == 0) { - end = i; - break; - } - } - if (end > 0) { - date = QString(flash.mid(start, (end - start))).trimmed(); - } - else { - date = QString(""); - } - } -} + QString result = seekString(label + "\037\033:"); + if (!result.isEmpty()) + return result; -void FlashInterface::SeekTime(void) -{ - int i, start = -1, end = -1, startsvn=0; - startsvn = flash.indexOf(QString(SVN_MARK)); - if (startsvn>0) { - start = flash.indexOf(QString(TIME_MARK),startsvn); - } else { - start = flash.indexOf(QString(TIME_MARK)); - } - if (start > 0) { - start += QString(TIME_MARK).length(); - for (i = start; i < (start + 20); i++) { - if (flash.at(i) == 0) { - end = i; - break; - } - } - if (end > 0) { - time = QString(flash.mid(start, (end - start))).trimmed(); - } - else { - time = QString(""); - } - } -} - -void FlashInterface::SeekBuild(void) -{ - int i, start = -1, end = -1; - start = flash.indexOf(QString(BLD_MARK)); - if (start > 0) { - start += QString(BLD_MARK).length(); - for (i = start; i < (start + 20); i++) { - if (flash.at(i) == 0) { - end = i; - break; - } - } - if (end > 0) { - build = QString(flash.mid(start, (end - start))).trimmed(); - } - else { - build = QString(""); - } - } - else { - start = flash.indexOf(QString(VAR_MARK)); - if (start > 0) { - start += QString(VAR_MARK).length(); - for (i = start; i < (start + 20); i++) { - if (flash.at(i) == 0) { - end = i; - break; - } - } - if (end > 0) { - build = QString(flash.mid(start, (end - start))).trimmed(); - } - else { - build = QString(""); - } - } - } + return seekString(label + ":"); } void FlashInterface::SeekSplash(void) diff --git a/companion/src/flashinterface.h b/companion/src/flashinterface.h index eb1459d85..d7f7719b7 100644 --- a/companion/src/flashinterface.h +++ b/companion/src/flashinterface.h @@ -14,6 +14,7 @@ #ifndef FLASHINTERFACE_H #define FLASHINTERFACE_H + #include #include #include @@ -32,12 +33,12 @@ #define ERSKY9X_SPS "SPS" #define ERSKY9X_SPE "SPE" #define ERSKY9X_OFFSET (7) -#define VERS_MARK "VERS:" -#define SVN_MARK "SVN:" -#define DATE_MARK "DATE:" -#define TIME_MARK "TIME:" -#define BLD_MARK "BLD:" -#define VAR_MARK "EEPR:" +#define VERS_MARK "VERS" +#define SVN_MARK "SVN" +#define DATE_MARK "DATE" +#define TIME_MARK "TIME" +#define BLD_MARK "BLD" +#define EEPR_MARK "EEPR" #define FILE_TYPE_BIN 1 #define FILE_TYPE_HEX 2 @@ -49,48 +50,46 @@ int getFileType(const QString &fullFileName); class FlashInterface { -public: - FlashInterface(QString filename); - QString getDate(); - QString getTime(); - QString getSvn(); - int getSize(); - QString getBuild(); - QImage getSplash(); - bool setSplash(const QImage & newsplash); - bool hasSplash(); - int getSplashWidth(); - uint getSplashHeight(); - uint getSplashColors(); - QImage::Format getSplashFormat(); - uint saveFlash(QString fileName); - bool isValid(); + public: + FlashInterface(QString filename); + inline QString getDate() { return date; } + inline QString getTime() { return time; } + inline QString getSvn() { return svn; } + int getSize() { return flash_size; } + inline QString getVersion() { return version; } + inline QString getEEprom() { return eeprom; } + QImage getSplash(); + bool setSplash(const QImage & newsplash); + bool hasSplash(); + int getSplashWidth(); + uint getSplashHeight(); + uint getSplashColors(); + QImage::Format getSplashFormat(); + uint saveFlash(QString fileName); + bool isValid(); -private: - QByteArray flash; - void SeekVer(); - void SeekSvn(); - void SeekDate(); - void SeekTime(); - void SeekBuild(); - void SeekSplash(); - QString filename; - QString date; - QString time; - QString svn; - QString build; - QByteArray splash; - uint splash_offset; - uint splash_type; - uint splash_size; - uint splash_width; - uint splash_height; - uint splash_colors; - QImage::Format splash_format; - uint flash_size; - -protected: - bool isValidFlag; + private: + QByteArray flash; + QString seekString(const QString & string); + QString seekLabel(const QString & label); + void SeekSplash(); + QString filename; + QString date; + QString time; + QString svn; + QString version; + QString eeprom; + QByteArray splash; + uint splash_offset; + uint splash_type; + uint splash_size; + uint splash_width; + uint splash_height; + uint splash_colors; + QImage::Format splash_format; + uint flash_size; + bool isValidFlag; }; + #endif /* FLASHINTERFACE_H */ diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp index 437441846..3938fa98a 100644 --- a/companion/src/generaledit.cpp +++ b/companion/src/generaledit.cpp @@ -369,6 +369,7 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : if (GetEepromInterface()->getCapability(MultiposPots)) { ui->pot1Type->setCurrentIndex(g_eeGeneral.potsType[0]); ui->pot2Type->setCurrentIndex(g_eeGeneral.potsType[1]); + ui->pot3Type->setCurrentIndex(g_eeGeneral.potsType[2]); } else { ui->potsTypeSeparator->hide(); @@ -376,6 +377,8 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : ui->pot1TypeLabel->hide(); ui->pot2Type->hide(); ui->pot2TypeLabel->hide(); + ui->pot3Type->hide(); + ui->pot3TypeLabel->hide(); } } @@ -396,6 +399,12 @@ void GeneralEdit::on_pot2Type_currentIndexChanged(int index) updateSettings(); } +void GeneralEdit::on_pot3Type_currentIndexChanged(int index) +{ + g_eeGeneral.potsType[2] = index; + updateSettings(); +} + void GeneralEdit::unlockSwitchEdited() { int i=0; diff --git a/companion/src/generaledit.h b/companion/src/generaledit.h index ce160dc0b..ca9911b74 100644 --- a/companion/src/generaledit.h +++ b/companion/src/generaledit.h @@ -121,6 +121,7 @@ private slots: void on_pot1Type_currentIndexChanged(int index); void on_pot2Type_currentIndexChanged(int index); + void on_pot3Type_currentIndexChanged(int index); void on_stickmodeCB_currentIndexChanged(int index); void on_channelorderCB_currentIndexChanged(int index); diff --git a/companion/src/generaledit.ui b/companion/src/generaledit.ui index 8f66dcab1..3eb53be8b 100644 --- a/companion/src/generaledit.ui +++ b/companion/src/generaledit.ui @@ -6,7 +6,7 @@ 0 0 - 795 + 804 912 @@ -1555,10 +1555,10 @@ Acceptable values are 5v..10v QLayout::SetMinimumSize - + 0 - + 0 @@ -3520,6 +3520,11 @@ p, li { white-space: pre-wrap; } 3 - Loud. 4 - Extra loud. + + + None + + Pot (normal) @@ -3556,6 +3561,11 @@ p, li { white-space: pre-wrap; } 3 - Loud. 4 - Extra loud. + + + None + + Pot (normal) @@ -3575,6 +3585,47 @@ p, li { white-space: pre-wrap; } + + + + S3 Type + + + + + + + + + + + + + Beeper volume + +0 - Quiet. No beeps at all. +1 - No Keys. Normal beeps but menu keys do not beep. +2 - Normal. +3 - Loud. +4 - Extra loud. + + + + None + + + + + Pot (normal) + + + + + Multipos Switch + + + + diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index 52871a32e..381aded98 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -63,27 +63,6 @@ void populateVoiceLangCB(QComboBox *b, QString language) } } -void populateTTraceCB(QComboBox *b, int value) -{ - const QString strings9x[] = { QObject::tr("THR"), QObject::tr("P1"), QObject::tr("P2"), QObject::tr("P3")}; - const QString stringstaranis[] = { QObject::tr("THR"), QObject::tr("S1"), QObject::tr("S2"), QObject::tr("LS"), QObject::tr("RS")}; - b->clear(); - if (IS_TARANIS(GetEepromInterface()->getBoard())) { - for (int i=0; i< 5; i++) { - b->addItem(stringstaranis[i]); - } - } else { - for (int i=0; i< 4; i++) { - b->addItem(strings9x[i]); - } - } - int channels=(IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16); - for (int i=1; i<= channels; i++) { - b->addItem(QObject::tr("CH%1").arg(i, 2, 10, QChar('0'))); - } - b->setCurrentIndex(value); -} - void populateRotEncCB(QComboBox *b, int value, int renumber) { QString strings[] = { QObject::tr("No"), QObject::tr("RotEnc A"), QObject::tr("Rot Enc B"), QObject::tr("Rot Enc C"), QObject::tr("Rot Enc D"), QObject::tr("Rot Enc E")}; diff --git a/companion/src/helpers.h b/companion/src/helpers.h index 53bff4d2f..684d3492f 100644 --- a/companion/src/helpers.h +++ b/companion/src/helpers.h @@ -27,7 +27,6 @@ void populateGvSourceCB(QComboBox *b, int value); void populateVoiceLangCB(QComboBox *b, QString language); -void populateTTraceCB(QComboBox *b, int value); void populateRotEncCB(QComboBox *b, int value, int renumber); void populateBacklightCB(QComboBox *b, const uint8_t value); diff --git a/companion/src/mainwindow.cpp b/companion/src/mainwindow.cpp index aff8ad8cc..bd13d50c3 100644 --- a/companion/src/mainwindow.cpp +++ b/companion/src/mainwindow.cpp @@ -1251,15 +1251,16 @@ bool MainWindow::convertEEPROM(QString backupFile, QString restoreFile, QString if ((svnTags.at(0) == "open9x")||(svnTags.at(0) == "opentx")) { if (revision > 1464) { - QString fwBuild = flash.getBuild(); - if (fwBuild.contains("-")) { - QStringList buildTags = fwBuild.split("-", QString::SkipEmptyParts); + QString fwEEprom = flash.getEEprom(); + if (fwEEprom.contains("-")) { + QStringList buildTags = fwEEprom.split("-", QString::SkipEmptyParts); if (buildTags.size() >= 1) version = buildTags.at(0).toInt(); if (buildTags.size() >= 2) variant = buildTags.at(1).toInt(); - } else { - version = fwBuild.toInt(); // TODO changer le nom de la variable + } + else { + version = fwEEprom.toInt(); } } else { diff --git a/companion/src/mdichild.cpp b/companion/src/mdichild.cpp index 3af585369..e6174a1c2 100644 --- a/companion/src/mdichild.cpp +++ b/companion/src/mdichild.cpp @@ -68,6 +68,7 @@ MdiChild::MdiChild(): fileChanged(false) { ui->setupUi(this); + this->setWindowIcon(CompanionIcon("open.png")); ui->SimulateTxButton->setIcon(CompanionIcon("simulate.png")); setAttribute(Qt::WA_DeleteOnClose); @@ -166,7 +167,8 @@ void MdiChild::OpenEditWindow(bool wizard=false) ret = QMessageBox::question(this, tr("Companion"), tr("Do you want to use model wizard? "), QMessageBox::Yes | QMessageBox::No); if (ret == QMessageBox::Yes) { wizard=true; - } else { + } + else { qSleep(500); ret = QMessageBox::question(this, tr("Companion"), tr("Ask this question again ? "), QMessageBox::Yes | QMessageBox::No); if (ret == QMessageBox::No) { @@ -496,7 +498,8 @@ void MdiChild::writeEeprom() // write to Tx } backupEnable=false; } - } else { + } + else { backupEnable=false; } QString stickCal=g.profile[g.id()].stickPotCalib(); @@ -632,7 +635,8 @@ void MdiChild::print(int model, QString filename) printDialog *pd = new printDialog(this, &radioData.generalSettings, &radioData.models[model], filename); pd->show(); - } else { + } + else { if(ui->modelsList->currentRow()<1) return; printDialog *pd = new printDialog(this, &radioData.generalSettings, &radioData.models[ui->modelsList->currentRow()-1]); pd->show(); @@ -671,9 +675,8 @@ bool MdiChild::loadBackup() .arg(file.errorString())); return false; } - uint8_t *eeprom = (uint8_t *)malloc(eeprom_size); - memset(eeprom, 0, eeprom_size); - long result = file.read((char*)eeprom, eeprom_size); + QByteArray eeprom(eeprom_size, 0); + long result = file.read((char*)eeprom.data(), eeprom_size); file.close(); if (result != eeprom_size) { @@ -685,7 +688,7 @@ bool MdiChild::loadBackup() return false; } - if (!LoadBackup(radioData, eeprom, eeprom_size, index)) { + if (!LoadBackup(radioData, (uint8_t *)eeprom.data(), eeprom_size, index)) { QMessageBox::critical(this, tr("Error"), tr("Invalid binary backup File %1") .arg(fileName)); @@ -693,6 +696,6 @@ bool MdiChild::loadBackup() } ui->modelsList->refreshList(); - free(eeprom); + return true; } diff --git a/companion/src/modeledit/setup.cpp b/companion/src/modeledit/setup.cpp index 6dd46c3e0..546866468 100644 --- a/companion/src/modeledit/setup.cpp +++ b/companion/src/modeledit/setup.cpp @@ -500,8 +500,10 @@ void Setup::on_trimIncrement_currentIndexChanged(int index) void Setup::on_throttleSource_currentIndexChanged(int index) { - model.thrTraceSrc = index; - emit modified(); + if (!lock) { + model.thrTraceSrc = ui->throttleSource->itemData(index).toInt(); + emit modified(); + } } void Setup::on_name_editingFinished() @@ -543,12 +545,45 @@ void Setup::on_image_currentIndexChanged(int index) } } +void Setup::populateThrottleSourceCB() +{ + const QString sources9x[] = { QObject::tr("THR"), QObject::tr("P1"), QObject::tr("P2"), QObject::tr("P3")}; + const QString sourcesTaranis[] = { QObject::tr("THR"), QObject::tr("S1"), QObject::tr("S2"), QObject::tr("S3"), QObject::tr("LS"), QObject::tr("RS")}; + + unsigned int i; + + lock = true; + + if (IS_TARANIS(GetEepromInterface()->getBoard())) { + for (i=0; i<6; i++) { + ui->throttleSource->addItem(sourcesTaranis[i], i); + } + } + else { + for (i=0; i<4; i++) { + ui->throttleSource->addItem(sources9x[i], i); + } + } + + if (model.thrTraceSrc < i) + ui->throttleSource->setCurrentIndex(model.thrTraceSrc); + + int channels = (IS_ARM(GetEepromInterface()->getBoard()) ? 32 : 16); + for (int i=0; ithrottleSource->addItem(QObject::tr("CH%1").arg(i+1, 2, 10, QChar('0')), THROTTLE_SOURCE_FIRST_CHANNEL+i); + if (model.thrTraceSrc == unsigned(THROTTLE_SOURCE_FIRST_CHANNEL+i)) + ui->throttleSource->setCurrentIndex(ui->throttleSource->count()-1); + } + + lock = false; +} + void Setup::update() { ui->name->setText(model.name); ui->throttleReverse->setChecked(model.throttleReversed); - populateTTraceCB(ui->throttleSource, model.thrTraceSrc); + populateThrottleSourceCB(); ui->throttleWarning->setChecked(!model.disableThrottleWarning); //trim inc, thro trim, thro expo, instatrim diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index b785e2750..6880c363f 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -6,6 +6,7 @@ #include #include #include +#include #include namespace Ui { @@ -104,6 +105,7 @@ class Setup : public ModelPanel void updateStartupSwitches(); void updatePotWarnings(); void updateBeepCenter(); + void populateThrottleSourceCB(); }; #endif // SETUP_H diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts index ab649090f..35140f3a6 100644 --- a/companion/src/translations/companion_pl.ts +++ b/companion/src/translations/companion_pl.ts @@ -57,22 +57,22 @@ CurveGroup - + Diff Róźnicowość - + Expo Expo - + Func Funkcja - + Curve Krzywa @@ -168,57 +168,57 @@ FS%1 - + ON Włącz - + Error Błąd - + Unable to find sound file %1! Nie mogę odnaleźć pliku dźwiękowego %1! - + &Delete &Wykasuj - + Delete Wykasuj - + &Copy &Kopiuj - + Ctrl+C Ctrl+C - + &Cut &Wytnij - + Ctrl+X Ctrl+X - + &Paste &Wklej - + Ctrl+V Ctrl+V @@ -471,27 +471,27 @@ p, li { white-space: pre-wrap; } Wszystkie - + Edit %1 Edycja %1 - + Rud SK - + Ele SW - + Thr Gaz - + Ail Lotki @@ -577,17 +577,17 @@ p, li { white-space: pre-wrap; } FlightModes - + Flight Mode %1 Faza lotu %1 - + (%1) (%1) - + (default) (bazowa) @@ -843,7 +843,8 @@ p, li { white-space: pre-wrap; } - + + Beeper volume 0 - Quiet. No beeps at all. @@ -1662,26 +1663,40 @@ To ustawienie jest używane przez szablony, określa jakie wyjście przypisane j - + + + None + Żaden + + + + + Pot (normal) Potencjometr (std) - - + + + Multipos Switch Przeł. wielopoz - + S1 Type Typ P1 - + S2 Type Typ P2 + + + S3 Type + Typ P3 + POT 1 @@ -1734,7 +1749,7 @@ To ustawienie jest używane przez szablony, określa jakie wyjście przypisane j Natężenie - + If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio. Are you sure ? @@ -1743,28 +1758,28 @@ funkcje odtwarzania i ekrany telemetrii. Ten tryb nie może być dezaktywowany. Jesteś pewien ? - - + + Warning Ostrzeżenie - + Wrong data in profile, radio calibration was not retrieved Błędne dane w profilu, kalibracja nie została odzyskana - + Wrong data in profile, hw related parameters were not retrieved Błędne dane w profilu, parametry HW nie zostały odzyskana - + Do you want to store calibration in %1 profile<br>overwriting existing calibration? Chcesz zapamiętać dane kalibracji profilu %1<br> Zastąpią one aktualne dane kalibracji? - + Calibration and HW parameters saved. Kalibracja i parametry HW zapamiętane. @@ -1841,25 +1856,25 @@ Jesteś pewien ? InputsPanel - + Move Up W górę - + Ctrl+Up Ctrl+Up - + Move Down W dół - + Ctrl+Down Ctrl+Down @@ -1894,87 +1909,87 @@ Jesteś pewien ? Za mało dostępnych wejść! - + Delete Selected Inputs? Skasować Wybrane Wejścia? - + &Add &Dodaj - + Ctrl+A Ctrl+A - + &Edit &Edycja - + Enter Enter - + &Delete &Wykasuj - + Delete Wykasuj - + &Copy &Kopiuj - + Ctrl+C Ctrl+C - + &Cut &Wytnij - + Ctrl+X Ctrl+X - + &Paste &Wklej - + Ctrl+V Ctrl+V - + Du&plicate &Zduplikuj - + Ctrl+U Ctrl+U - + Clear Inputs? Wyczyść Wejścia? - + Really clear all the inputs? Czy na pewno wyczyścić wszystkie wejścia? @@ -1982,78 +1997,78 @@ Jesteś pewien ? LogicalSwitchesPanel - + Condition Warunek - + V1 Wartość 1 - + V2 Wartość 2 - + AND I (logiczne) - + Duration Czas trwania - + Delay Opóźnienie - - + + LS%1 PL%1 - + &Delete &Wykasuj - + Delete Wykasuj - + &Copy &Kopiuj - + Ctrl+C Ctrl+C - + &Cut &Wytnij - + Ctrl+X Ctrl+X - + &Paste &Wklej - + Ctrl+V Ctrl+V @@ -2063,8 +2078,8 @@ Jesteś pewien ? - - + + File loaded Plik załadowany @@ -2123,23 +2138,23 @@ Jesteś pewien ? - - - - - - - - + + + + + + + + Error Błąd - - - + + + Error opening file %1: %2. Błąd otwarcia pliku %1: @@ -2252,7 +2267,7 @@ Chcesz pobrać teraz? - + Taranis radio not found Nie znaleziono Radia Taranis @@ -2266,15 +2281,15 @@ Chcesz pobrać teraz? - - + + Backup is impossible Backup jest niemożliwy do wykonania - - + + The backup dir set in preferences does not exist Brak ustawień ścieżki backupu @@ -2285,391 +2300,391 @@ Chcesz pobrać teraz? Ostrzeżenie - + Conversion failed Konwersja nieudana - + Restore failed Zapis nieudany - + Backup failed Backup nieudany - + Copyright - + OpenTX Companion - FW: %1 - Profile: %2 OpenTX Companion - FW: %1 - Profil: %2 - + About... O aplikacji... - + Print... Drukuj... - + Simulate... Symulacja... - + Simulate current model Symulacja aktualnego modelu - + Load Backup... Załaduj backup... - + View Log File... Obejrzyj plik logów... - + Open and view log file Otwórz i obejrzyj plik logów - + Edit Settings Edycja Ustawień - + Settings... Ustawienia... - + Download firmware and voice files Pobierz firmware i pliki dźwiękowe - + Create a new Radio Setting Profile Utwórz nowy Profil Ustawień Radia - + A monochrome black icon theme Monochromatyczny czarny wygląd ikon - + Open Models and Settings file Otwórz plik Modeli i Ustawień - + New Models+Settings Nowe Modele+Ustawienia - + Create a new Models and Settings file Utwórz nowy plik Modeli i Ustawień - + Open Models+Settings... Otwórz Modele i Ustawienia... - + Save Models+Settings... Zapisz Modele i Ustawienia... - - + + Save Models and Settings file Zapisz plik Modeli i Ustawień - + Save Models+Settings as... Zapisz Modele+Ustawienia jako... - + Cut Model Wytnij Model - + Cut current model to the clipboard Wytnij aktualny model do schowka - + Copy Model... Kopiuj Model... - + Copy current model to the clipboard Wytnij aktualny model do schowka - + Paste Model... Wklej Model... - + Paste model from clipboard Wklaj Model ze schowka - + The classic companion9x icon theme Klasyczny zestaw ikon Companion - + A monochrome white icon theme Monochromatyczny biały wygląd ikon - + A monochrome blue icon theme Monochromatyczny niebieski wygląd ikon - + Small Małe - + Use small toolbar icons Użyj małych ikon paska narzędzi - + Use normal size toolbar icons Użyj normalnych ikon paska narzędzi - + Normal Normalne - + Use big toolbar icons Użyj dużych ikon paska narzędzi - + Big Duże - + Use huge toolbar icons Użyj olbrzymich ikon paska narzędzi - + Huge Olbrzymie - + Czech Czeski - + Use Czech in menus Użyj Czeskiego w menu - + German Niemiecki - + Use German in menus Użyj Niemieckiego w menu - + English Angielski - + Use English in menus Użyj Angielskiego w menu - + Finnish Fiński - + Use Finnish in menus Użyj Fińskiego w menu - + French Francuski - + Use French in menus Użyj Francuskiego w menu - + Italian Włoski - + Use Italian in menus Użyj Włoskiego w menu - + Hebrew Hebrajski - + Use Hebrew in menus Użyj Hebrajskiego w menu - + Polish Polski - + Use Polish in menus Użyj Polskiego w menu - + Portuguese Portugalski - + Use Portuguese in menus Użyj Portualskiego w menu - + Swedish Szwedzki - + Use Swedish in menus Użyj Szwedzkiego w menu - + Russian Rosyjski - + Use Russian in menus Użyj Rosyjskiego w menu - - + + Radio Settings Profile Profil Ustawień Radia - + Show recent Models+Settings documents Pokaż ostatanie dokumenty Modeli i Ustawień - + Print current model Drukuj aktualny model - + Check OpenTX and Companion updates Sprawdź aktualizacje OpenTX i Companion - + Edit Tx Splash Image... Edytor erkanu startowego radia... - + Fuses... Bezpieczniki... - + Manuals and other Documents Podręcznik i dokumentacja - + Open the OpenTX document page in a web browser Otwórz stronę dokumentacji OpenTX w przeglądarce - + Save Tx Models and Settings to file Zapisz modele radia i ustawienia do pliku - + A tribute to those who have contributed to OpenTX and Companion Hołd dla tych, którzy przyczynili się do rozwoju OpenTX i Companion - + Contributors... Współpracownicy... - - + + Recent Models+Settings Ostatnie Modele+Ustawienia - + Set Icon Theme Ustaw wygląd ikon - + Set Icon Size Ustaw wielkość ikon @@ -2729,9 +2744,9 @@ Chcesz pobrać teraz? - - - + + + Read Models and Settings From Tx Wczytaj Modele i Ustawienia z radia @@ -2754,8 +2769,8 @@ Czy mimo wszystko zapisać? - - + + Backup Models and Settings From Tx Zbakupuj Modele i Ustawienia z radia @@ -2776,337 +2791,337 @@ Czy mimo wszystko zapisać? - + Write Models and Settings To Tx Zapisz Modele i Ustawienia do radia - - + + Write Firmware To Tx Zapisz firmware do radia - + Cannot convert Models and Settings for use with this firmware, original data will be used Nie mogę skonwertować Modeli i Ustawień na ten rodzaj firmware, zostaną użyte oryginalne dane - + Restore Models and Settings To Tx Odtwórz Modele i Ustawienia do radia - + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 Nie mogę odtworzyć Modeli i Ustawień do radia. Plik modeli i ustawień mozna znaleźć w: %1 - + Firmware write failed Zapis firmawe nie powiódł się - + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 Nie mogę zapisać Firmware do radia. Plik modeli i ustawień mozna znaleźć w: %1 - + Cannot backup existing Models and Settings from TX. Firmware write process aborted Nie mogę zbackupować Modeli i Ustawień z radia, Zapis Firmawe przerwany - + Save transmitter Models and Settings to File Zapisz Modele i Ustawienia z radia do pliku - + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. - + Read Tx Firmware to File Odczytaj firmware z radia do pliku - + OpenTX Home Page: <a href='%1'>%1</a> Strona domowa OpenTX: <a href='%1'>%1</a> - + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> Projekt Companion odłączony z oryginalnego <a href='%2'>eePe</a> - + If you've found this program useful, please support by <a href='%1'>donating</a> Jeśli uważasz, że ten program jest użyteczny, wesprzyj poprzez <a href='%1'>donację</a> - + Version %1, %3 Wersja %1, %3 - + About Companion O aplikacji Companion - + Load backup from file Załaduj backup z pliku - + Write Models and Settings to transmitter Zapisz Modele i Ustawienia do radia - + Read Models and Settings from transmitter Wczytaj Modele i Ustawienia z radia - + Write Firmware Zapisz firmware - + Exit Zakończ - + Monochrome Monochromatyczny - + MonoWhite MonoBiały - + MonoBlue MonoNiebieski - + System language Język systemu - + Use system language in menus Użyj języka systemu w menu - + Download... Pobieranie... - + Check for Updates... Sprawdź aktualizacje... - + Companion Changes... Zmiany w Companion... - + Show Companion change log Pokaż log zmian Companion - + Firmware Changes... Zmiany w Firmware... - + Show firmware change log Pokaż log zmian Firmware - + Compare Models... Porównaj modele... - + Edit the splash image of your TX Edytuj ekran startowy swojego radia - + List programmers... Lista programistów... - + Write firmware to transmitter Zapisz firmware do radia - + Add Radio Profile Dodaj profil radia - + Configure Communications... Ustaw komunikację... - + Configure software for communicating with the transmitter Ustaw oprogramowanie komunikacyjne z radiem - + Write Models and Settings from file to Tx Zapisz Modele i Ustawienia z pliku do radia - + Write Models and Settings from file to transmitter Zapisz Modele i Ustawienia z pliku do radia - + Save the Models and Settings from the transmitter to a file Zapisz Modele i Ustawienia z radia do pliku - + Read Firmware Wczytaj Firmware - + Yerico - + Yellow round honey sweet icon theme Żółty zaokrąglony miodiowy motyw ikon - + Read firmware from transmitter Wczytaj Firmware z radia - + Write Zapis - + %2 %2 - - + + Invalid Models and Settings File %1 Błędny plik %1 Modeli i Ustawień - + Invalid binary Models and Settings File %1 Błędny binarny plik %1 Modeli i Ustawień - + Compare models Porównaj modele - + Exit the application Zakończ aplikację companion9x - + List available programmers Lista dostępnych programatorów - + Show fuses dialog Pokaż okno ustawień mikro-kontrolera - + Show the application's About box O aplikacji companion9x - + Classical Klasyczny - + Set Menu Language Ustaw język menu - - + + File Plik - - + + Edit Edycja - + Settings Ustawienia - + Read/Write Odczyt/Zapis - - + + Help Pomoc - + Show a selection list of radio settings profiles Pokaż listę wyboru profili ustawiań radia - + Ready Gotowe - + Unable to find file %1! Nie mogę znaleźć pliku %1! - + Error reading file %1: %2. Błąd odczytu pliku %1: @@ -3116,193 +3131,193 @@ Czy mimo wszystko zapisać? MdiChild - + free bytes wolna pamięć[B] - + Editing model %1: Edycja modelu %1: - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + Error Błąd - - + + Unable to find file %1! Nie mogę odnaleźć pliku %1! - - - - + + + + Error opening file %1: %2. Błąd otwarcia pliku %1: %2. - - + + Invalid EEPROM File %1 Zły plik EEPROM %1 - + Invalid binary EEPROM File %1 Nieprawidłowy plik binarny EEPROM %1 - - + + Save As Zapisz jako - - - - + + + + Cannot write file %1: %2. Nie mogę zapisać pliku %1: %2. - - + + Error writing file %1: %2. Błąd zapisu pliku %1: %2. - + Do you want to use model wizard? Czy chcesz użyć konfiguratora modelu? - - - + + + Companion Companion - + Ask this question again ? Czy ponownie zapytać ? - - + + Error reading file %1: %2. Błąd odczytu pliku %1: %2. - + %1 has been modified. Do you want to save your changes? %1 został zmieniony. Zapisać? - + Backup is impossible Backup jest niemożliwy - + The backup dir set in preferences does not exist Ustawienia preferencji katalogu backupu nie istnieją - + Cannot write temporary file! Nie mogę zapisać pliku tymczasowego! - - - + + + Taranis radio not found Nie odnaleziono Radia Taranis - - - + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. Identyfikacja radia w Twoim systemie nie jest możliwa, sprawdź dysk eeprom podpięty do komputera. - - - + + + Backup EEPROM From Tx Backup EEPROM z radia - + Cannot check eeprom compatibility! Continue anyway? Nie mogę sprawdzić kompatybilności EEprom! Kontynuować ? - + Warning Ostrzeżenie - + Firmware in radio is of a different family of eeprom written, check file and preferences! Firmware w radiu jest różny od zapisanego eepromu, sprawdź plik i ustawienia! - + Firmware in flash is outdated, please upgrade! Firmware w radiu jest przestarzały. Proszę zaktualizować! - + Write EEPROM To Tx Zapis EEPROM do radia - + Open backup Models and Settings file Otwórz plik backupu Modeli i Ustawień - + Invalid binary backup File %1 nieprawidłowy binarny plik %1 @@ -3593,25 +3608,25 @@ p, li { white-space: pre-wrap; } MixesPanel - + Move Up W górę - + Ctrl+Up Ctrl+Up - + Move Down W dół - + Ctrl+Down Ctrl+Down @@ -3622,145 +3637,145 @@ p, li { white-space: pre-wrap; } - - + + X%1 X%1 - - - + + + CH%1%2 Kan %1%2 - + Weight(%1) Waga(%1) - + Switch(%1) Przełącznik(%1) - + No Trim Bez trymera - + No DR/Expo Bez DR/Expo - + Offset(%1) Wyrównanie(%1) - + Delay(u%1:d%2) Opóźnienie(u%1:d%2) - + Slow(u%1:d%2) Spowolnienie(u%1:d%2) - + Warn(%1) Ostrzeżenie(%1) - + Not enough available mixers! Za mało dostępnych mikserów! - + Delete Selected Mixes? Skasować wybrane miksery? - + &Add &Dodaj - + Ctrl+A Ctrl+A - + &Edit &Edycja - + Enter Enter - + &Delete &Wykasuj - + Delete Wykasuj - + &Copy &Kopiuj - + Ctrl+C Ctrl+C - + &Cut &Wytnij - + Ctrl+X Ctrl+X - + &Paste &Wklej - + Ctrl+V Ctrl+V - + Du&plicate &Zduplikuj - + Ctrl+U Ctrl+U - + Clear Mixes? Wyczyść miksery? - + Really clear all the mixes? Czy na pewno wyczyścić wszystkie miksery? @@ -3778,52 +3793,52 @@ p, li { white-space: pre-wrap; } Symulacja - + Setup Ustawienia - + Heli Heli - + Inputs Wejścia - + Logical Switches - Przełączniki Logiczne + Przełączniki logiczne - + Switch Assignment - Przypisanie Przełączników + Funkcje specjalne - + Channels Kanały - + Mixes Miksery - + Flight Modes Fazy lotu - + Curves Krzywe - + Telemetry Telemetria @@ -4104,830 +4119,676 @@ p, li { white-space: pre-wrap; } QObject - + Rud SK - + Ele SW - + Thr Gaz - + Ail Lotki - + - + P1 Potencjometr 1 - + - + P2 Potencjometr 2 - + - + P3 Potencjometr 3 - - + + S1 Potencjometr 1 - - + + S2 Potencjometr 2 - - + + LS Lewy suwak - - + + RS Prawy suwak - + TrmR Trymer SK - + TrmE Trymer SW - + TrmT Trymer gazu - + TrmA Trymer lotek - - - + + + REa Pokrętło :a - - - + + + REb Pokrętło :b - + Batt Bateria - + A1 Sygnał telemetrii A1 - + A2 Sygnał telemetrii A2 - + Alt Wysokość - + Rpm Obroty - + Fuel Paliwo - + T1 - - Tx - - - - - Rx - - - - + SWR SWR - - RSSI - - - - + T2 - + Speed Prędkość - + Dist Odległość - + GPS Alt Wysokość GPS - + Cell Cela - Cels - Cele + Cele - + Vfas - + Curr Natężenie - + Cnsp - + Powr Moc - + + Cells + Cele + + + AccX - + AccY - + AccZ - + HDG - + VSpd - + A1- - + A2- - + Alt- - + Alt+ - + Rpm+ - + T1+ - + T2+ - - Spd+ - - - - - Dst+ - - - - - Cur+ - - - - - ACC - - - - + Time - - Pwr+ - - - - - + + LS1 PL1 - - + + LS2 PL2 - - + + LS3 PL3 - - + + LS4 PL4 - - + + LS5 PL5 - - + + LS6 PL6 - - + + LS7 PL7 - - + + LS8 PL8 - - + + LS9 PL9 - - + + LSA PLA - - + + LSB PLB - - + + LSC PLC - - + + LSD PLD - - + + LSE PLE - - + + LSF PLF - - + + LSG PLG - - + + LSH PLH - - + + LSI PLI - - + + LSJ PLJ - - + + LSK PLK - - + + LSL PLL - - + + LSM PLM, - - + + LSN PLN - - + + LSO PLO - - + + LSP PLP - - + + LSQ PLQ - - + + LSR PLR - - + + LSS PLS - - + + LST PLT - - + + LSU PLU - - + + LSV PLV - - + + LSW PLW - Input %1 - Wejście %1 + Wejście %1 - + MAX - + S11 P11 - + S12 P12 - + S13 P13 - + S14 P14 - + S15 P15 - + S16 P16 - + S21 P21 - + S22 P22 - + S23 P23 - + S24 P24 - + S25 P25 - + S26 P26 - + CYC%1 - + PPM%1 - + CH%1%2 Kan %1%2 - + X%1 - - - - + + + + ---- - - + + THR THR - - + + ON Włącz - - - + + + OFF Wyłącz - + Diff(%1) Róźnicowość(%1) - + Expo(%1) Expo(%1) - + Function(%1) Funkcja(%1) - + Curve(%1) Krzywa(%1) - + !Curve(%1) !Krzywa(%1) - - + + Support for frsky telemetry mod Wsparcie dla telemetrii FrSky - - + + Support for jeti telemetry mod Wsparcie telemetrii JETI - - + + Support for receiving ardupilot data Wsparcie dla otrzymywania danych ardupilota - - + + Support for receiving NMEA data Wsparcie dla otrzymywania danych NMEA - + Support for telemetry easy board Wsparcie dla platformy TelemetrEZ - - + + Support for MAVLINK devices Wsparcie urządzeń MAVLINK - + Rotary Encoder use in menus navigation Użycie pokrętła do nawigacji w menu - + Possibility to enable FAI MODE at field Umożliwienie uaktywniania tryb FAI w menu - + FAI MODE always enabled Tryb FAI zawsze aktywny - - - - - - - Enable heli menu and cyclic mix support - Uaktywnione menu Heli i wsparcie dla cyklicznych mikserów - - - - - - - - - Enable TEMPLATES menu - Uaktywnienie menu szablonów - - - - - - - No splash screen - Bez loga na ekranie - - - - No flight modes - Firmware bez menu faz lotu - - - - - - - - - In model setup menus automatically set source by moving some of them - W menu ustawień modelu automatycznie wybierz źródło poprzez poruszenie nim - - - - - - - - - - - Use alternative SQT5 font - Użyj alternatywnego fontu SQT5 - - - - EEprom write progress bar - Pasek postępu wgrywania EEPROMu - - - - - No Winged Shadow How High support - Bez wsparcia - Winged Shadow How High - - - - - No vario support - Bez wsparcia wario - - - - - No GPS support - Bez wsparcia GPS - - - - - No gauges in the custom telemetry screen - Bez graficznych wskazań telemetrii - - - - Allow compensating for offset errors in FrSky FAS current sensors - Pozwolenie na kompensację błędów w czujnikach natężenia FrSky FAS - - - - OpenTX for FrSky Taranis Rev4a - OpenTX dla platformy FrSky Taranis Rev4a - - - - Use FrSky Taranis sticks in a 9X/9XR - Użyj drążków Taranisa w 9X/9XR - - - - OpenTX for FrSky Taranis - OpenTX dla platformy FrSky Taranis - - - - - Disable HELI menu and cyclic mix support - Dezaktywowane menu Heli i wsparcie dla cyklicznych mikserów - - - - - Disable TEMPLATES menu - Dezaktywowane menu szablonów - - - - - Disable Global variables - dezaktywowane zmienne globalne + + Enable heli menu and cyclic mix support + Uaktywnione menu Heli i wsparcie dla cyklicznych mikserów - - - Disable curves menus - Bez menu krzywych + + + Enable TEMPLATES menu + Uaktywnienie menu szablonów - Support for radio modified with regular speaker - Wsparcie dla modyfikacji radia zwykłym głośnikiem + No splash screen + Bez loga na ekranie @@ -4935,77 +4796,172 @@ p, li { white-space: pre-wrap; } - Used if you have modified your radio with voice mode - Używane jeśli radio jest zmodyfikowane w calu użycia komunikatów głosowych + + No flight modes + Firmware bez menu faz lotu + + + + + + + + + In model setup menus automatically set source by moving some of them + W menu ustawień modelu automatycznie wybierz źródło poprzez poruszenie nim + + + + + + + + + + + Use alternative SQT5 font + Użyj alternatywnego fontu SQT5 + + + + EEprom write progress bar + Pasek postępu wgrywania EEPROMu + + + + + No Winged Shadow How High support + Bez wsparcia - Winged Shadow How High + + + + + No vario support + Bez wsparcia wario + + + + + No GPS support + Bez wsparcia GPS + + + + + No gauges in the custom telemetry screen + Bez graficznych wskazań telemetrii + + + + Allow compensating for offset errors in FrSky FAS current sensors + Pozwolenie na kompensację błędów w czujnikach natężenia FrSky FAS + + + + OpenTX for FrSky Taranis Rev4a + OpenTX dla platformy FrSky Taranis Rev4a + + + + Use FrSky Taranis sticks in a 9X/9XR + Użyj drążków Taranisa w 9X/9XR + + + + OpenTX for FrSky Taranis + OpenTX dla platformy FrSky Taranis + + + + + Disable HELI menu and cyclic mix support + Dezaktywowane menu Heli i wsparcie dla cyklicznych mikserów + + + + + Disable TEMPLATES menu + Dezaktywowane menu szablonów + + + + + Disable Global variables + dezaktywowane zmienne globalne - Used if you have modified your radio with haptic mode - Używane jeśli radio jest zmodyfikowane do użycia wibracji - - - - - - - - - Battery graph - Grafika baterii - - - - - - - Enable the throttle trace in Statistics - Uaktywnić śledzenie gazu w statystykach - - - Support of FrSky PXX protocol - Wsparcie dla protokołu Frsky PXX + + Disable curves menus + Bez menu krzywych + + + + + + + Support for radio modified with regular speaker + Wsparcie dla modyfikacji radia zwykłym głośnikiem - - Support for DSM2 modules - wsparcie modułu DSM2 - - - - Your radio probably uses a wrong firmware, - eeprom size is 4096 but only the first 2048 are used - Twoje radio prawdopodobnie używa złego firmware, - wielkość eepromu jest 4096 ale tylko pierwsze 2048 jest używane + + Used if you have modified your radio with voice mode + Używane jeśli radio jest zmodyfikowane w calu użycia komunikatów głosowych - - - PPM center adjustment in limits - Limit dostrojenia centrowania PPM + Used if you have modified your radio with haptic mode + Używane jeśli radio jest zmodyfikowane do użycia wibracji - - - - + + + + + + + Battery graph + Grafika baterii + + + + + + + Enable the throttle trace in Statistics + Uaktywnić śledzenie gazu w statystykach + + + + Support of FrSky PXX protocol + Wsparcie dla protokołu Frsky PXX + + + + + + - - - - PPM values displayed in us - Wartości PPM wyświetlane w us (mikrosekundy) + Support for DSM2 modules + wsparcie modułu DSM2 + + + + Your radio probably uses a wrong firmware, + eeprom size is 4096 but only the first 2048 are used + Twoje radio prawdopodobnie używa złego firmware, + wielkość eepromu jest 4096 ale tylko pierwsze 2048 jest używane @@ -5014,44 +4970,66 @@ p, li { white-space: pre-wrap; } - Symetrical Limits - Limity symetryczne + PPM center adjustment in limits + Limit dostrojenia centrowania PPM - + + - Pots use in menus navigation - Użycie potencjometrów do nawigacji w menu + + + PPM values displayed in us + Wartości PPM wyświetlane w us (mikrosekundy) - - OpenTX for 9X board - OpenTX dla platformy 9X - - - - - SmartieParts 2.2 Backlight support - Wsparcie podświetlenia SmartieParts 2.2 - - - - + + - In model setup menus automatically set switch by moving some of them - W menu modelu automatyczne wybranie przełącznika w przez jego poruszenie + Symetrical Limits + Limity symetryczne + + + + + + + + Pots use in menus navigation + Użycie potencjometrów do nawigacji w menu + + + + OpenTX for 9X board + OpenTX dla platformy 9X - - + SmartieParts 2.2 Backlight support + Wsparcie podświetlenia SmartieParts 2.2 + + + + + + + + + In model setup menus automatically set switch by moving some of them + W menu modelu automatyczne wybranie przełącznika w przez jego poruszenie + + + + + + Enable resetting values by pressing up and down at the same time Szybkie nastawianie wartości (+) a (-) neguje wartość @@ -5060,105 +5038,105 @@ p, li { white-space: pre-wrap; } (UP) a (DN) ustawia 0 - - - - - - + + + + + + No graphical check boxes and sliders Brak graficznych chekboxów i sliderów - - - - - - + + + + + + Don't use bold font for highlighting active items Nie używaj podświetlenia dla wybranych aktywnych elementów, mikserów, krzywych, expo, etc - + OpenTX for M128 / 9X board OpenTX dla platformy M128 / 9X - - - - + + + + EEprom write Progress bar Pasek postępu zapisywania EEPROM - - - - - + + + + + Imperial units Imperialne jednostki w telemetrii - + Bluetooth interface Interface Bluetooth - - - - - - + + + + + + Global variables Globalne zmienne - + OpenTX for 9XR OpenTX dla platformy 9XR - + OpenTX for 9XR with M128 chip OpenTX dla platformy 9X z układem M128 - + OpenTX for Gruvin9x board / 9X ie: OpenTX dla platformy Gruvin9X / 9X - + Support for SD memory card Wsparcie karty SD - + Support for DSM2 modules using ppm instead of true serial Wsparcie modułu DSM2 przez użycie PPM zamiast prawdziwego szeregowego - + OpenTX for Sky9x board / 9X OpenTX dla platformy Sky9x / 9X - + Enable HELI menu and cyclic mix support Uaktywnij menu HELI i cyklicznych mikserów - - + + Warning Ostrzeżenie - + EEPROM saved with these warnings: EEPROM zapisany z tymi ostrzeżeniami: @@ -5225,492 +5203,580 @@ p, li { white-space: pre-wrap; } Fiński - + No Nie - + RotEnc A Pokrętło :A - + Rot Enc B Pokrętło :B - + Rot Enc C Pokrętło :C - + Rot Enc D Pokrętło :D - + Rot Enc E Pokrętło :E - + No repeat Bez powtórzeń - + %1 sec %1 s - + Safety %1 Bezpieczny %1 - + + + S3 + S3 + + + + RSSI Tx + RSSI Tx + + + + RSSI Rx + RSSI Rx + + + + Rx Batt + Bateria Rx + + + + A3 + A3 + + + + A4 + A4 + + + ASpd ASpd - + dTE dTE - + + A3- + A3- + + + + A4- + A4- + + Cel- - Cel- + Cel- - Vfs- - Vfs- + Vfs- - + Cels- + Cele- + + + + ACC + ACC + + + + [I%1] + [I%1] + + + + S31 + S31 + + + + S32 + S32 + + + + S33 + S33 + + + + S34 + S34 + + + + S35 + S35 + + + + S36 + S36 + + + RudTrim Left SK Trymer lewy - + RudTrim Right SK Trymer prawy - + EleTrim Down SW Trymer w dół - + EleTrim Up SW Trymer w górę - + ThrTrim Down Gaz Trymer w dół - + ThrTrim Up Gaz Trymer w gorę - + AilTrim Left Lotki trymer w lewo - + AilTrim Right Lotki trymer w prawo - + ABS ABS - + THs THs - + TH% TH% - + THt THt - + ??? ??? - + a>x a>x - + a<x a<x - + |a|>x |a|>x - + |a|<x |a|<x - + AND I (logiczne) - + OR Lub (logiczne) - + XOR XOR (Logiczne) - + a=b a=b - + a!=b a!=b - + a>b a>b - + a<b a<b - + a>=b a>=b - + a<=b a<=b - + d>=x d>=x - + |d|>=x |d|>=x - + + a=x + a=x + + + a~x a~x - + Timer Timer - + Sticky - + Trwałe przełączenie - + Stay Utrzymuj - + Unknown Nieznane - + STAY(%1, [%2:%3]) Utrzymuj(%1, [%2:%3]) - + STICKY(%1, %2) - + Trwałe przełączenie (%1, %2) - + TIMER(%1, %2) TIMER(%1, %2) - + Trainer Trener - + Trainer RUD Trener - SK - + Trainer ELE Trener - SW - + Trainer THR Trener - Gaz - + Trainer AIL Trener - Lotki - + Instant Trim Natychmiastowe trymowanie - + Play Sound Odtwórz dźwięk - + Play Haptic Wibruj - + Reset Zresetuj - + Set Timer %1 Ustaw Timer %1 - + Vario Wariometr - + Play Both Odtwórz oba - + Play Value Odtwórz wartość - + Start Logs Start logowania - + Volume Głośność - + Backlight Podświetlenie - + Adjust GV%1 Ustaw ZG%1 - - - - - - + + + + + + <font color=red><b>Inconsistent parameter</b></font> Niespójny parametr <font color=red><b>Niespójny parametr</b></font> - + Rotary Encoder Pokrętło - + !Flight mode %1 !Faza lotu %1 - + Flight mode %1 Faza lotu %1 - + Yellow Żółty - + Orange Pomarańczowy - + Red Czerwony - + Winged Shadow How High - + Winged Shadow How High (not supported) Winged Shadow How High (nie obsługiwane) - + FrSky Sensor Hub Hub sensora FrSky - - + + None Żaden - + Imperial Imperialne - + Metric Metryczne - + Extra Fine Bardzo dokładne - + Fine Dokładne - + Medium Średni - + Coarse Gruby - + Exponential Eksponencjalny - + Count Up Licz - + Count Down Odliczaj - + %1:%2, - + : %1 Channels, %2usec Delay :Kanały %1, opóźnienie %2usX - + Flight modes(%1) Fazy lotu(%1) - + Flight mode(%1) Faza lotu (%1) - + Rudder SK - + Elevator SW - + Throttle Gaz - + Aileron Lotki - + Play Track Odtwórz ścieżkę - + - + --- @@ -5745,75 +5811,110 @@ p, li { white-space: pre-wrap; } Szwedzki - + CH%1 Kan %1 - + Background Music Muzyka tła - + Background Music Pause Muzyka tła - pauza - + Delay %1 sec Opóźnienie %1sec - + Duration %1 sec Czas trwania %1 sec - - - - + + + + Timer1 - - - - + + + + Timer2 - - - + + Speed+ + Prędkość+ + + + + Dist+ + Dyst+ + + + + Cell- + Cela- + + + + Cells- + Cele- + + + + Vfas- + Vfat- + + + + Curr+ + Natęż+ + + + + Powr+ + Moc+ + + + + + All Wszystkie - - - + + + Telemetry Telemetria - - + + Value Wartość - - + + Decr: Zmniejsz: - - + + Incr: Zwiększ: @@ -5828,66 +5929,66 @@ p, li { white-space: pre-wrap; } - + Value Wartość - + Source Źródło - + GVAR Zmienna - + Increment Zwiększanie - + Own value Własny Wartość - + Flight mode %1 value Flight phase %1 value Wartość Fazy lotu FL%1 - + Keys Przyciski - + Sticks Drążki - + Keys + Sticks Przyciski i Drążki - + -GV%1 -ZG%1 - - + + GV%1 ZG%1 - + Simulator for this firmware is not yet available Nie jest dostępny symulator dla tego firmware @@ -5898,26 +5999,30 @@ p, li { white-space: pre-wrap; } Równoległe użycie expo i krzywych nie jest dłużej wspierane - openTx only accepts %1 points in all curves - openTx dopuszcza tylko %1 punktów dla wszystkich krzywych + openTx dopuszcza tylko %1 punktów dla wszystkich krzywych - - - - + + OpenTX only accepts %1 points in all curves + OpenTX zezwala tylko na %1 punktów we wszytkich krzywych + + + + + + OpenTX on this board doesn't accept this function OpenTX na tej platformie nie dopuszcza tej funkcji - - + + OpenTX doesn't accept this protocol OpenTX nie obsługuje tego protokołu - + OpenTX doesn't allow this number of channels OpenTX nie obsługuje tej ilości kanałów @@ -6746,7 +6851,17 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również miliAmpery (mA) - + + Low Alarm + Alarm niski + + + + Critical Alarm + Alarm krytyczny + + + Range Zasięg @@ -6797,17 +6912,27 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również TelemetryPanel - + Telemetry screen %1 Panel Telemetrii %1 - + + Low Alarm + Alarm niski + + + + Critical Alarm + Alarm krytyczny + + + Winged Shadow How High Winged Shadow How High - + Winged Shadow How High (not supported) Winged Shadow How High (Nie obsługiwane) @@ -6866,25 +6991,25 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również appPreferencesDialog - + Simulator capture folder Katalog zapisu symulatora - + Remember simulator switch values Zapamiętaj ustawienia przełączników w symulatorze - - - - + + + + Open Folder Otwórz katalog - + User Splash Screens Użyj ekranu powitalnego @@ -6894,52 +7019,62 @@ Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również Edycja Ustawień - + + General Settings + Główne ustawienia + + + + TextLabel + Etykieta + + + Application Settings Ustawienia Aplikacji - + Only show user splash images Pokaż tylko ekrany powitalne użytkownika - + Show user and companion splash images Pokaż ekrany powitalne użytkownika i Companion - + Simulator Settings Ustawienia Symulatora - + Blue Niebieskie - + Green Zielone - + Red Czerwone - + Orange Pomarańczowe - + Yellow Żółte - + Mode selection: Mode 1: @@ -6962,27 +7097,32 @@ Mode 4: - + + Radio Profile + Profil radia + + + Mode 1 (RUD ELE THR AIL) Mod 1 (SK.SW.Gaz.Lot) - + Mode 2 (RUD THR ELE AIL) Mod 2 (SK.Gaz.SW.Lot) - + Mode 3 (AIL ELE THR RUD) - + Mode 4 (AIL THR ELE RUD) Mod 4 (Lot.Gaz.SW.SK) - + Channel order This is used by the templated to determine which channel goes to what number output. @@ -6991,187 +7131,224 @@ This is used by the templated to determine which channel goes to what number out To ustawienie jest używane przez szablony, określa jakie wyjście przypisane jest do kanału. - + R E T A K W G L - + R E A T K W L G - + R T E A - + R T A E K G L W - + R A E T K L W G - + R A T E K L G W - + E R T A W K G L - + E R A T W K L G - + E T R A W G K L - + E T A R W G L K - + E A R T W L K G - + E A T R W L G K - + T R E A G K W L - + T R A E G K L W - + T E R A G W K L - + T E A R G W L K - + T A R E G L K W - + T A E R G L W K - + A R E T L K W G - + A R T E L R G W - + A E R T L W K G - + A E T R L W G K - + A T R E L G K W - + A T E R L G W K - + Default Stick Mode Bazowy mod drążków - + Splash Screen Ekran startowy - + Channel Order Kolejność kanałów - + Append version number to FW file name Dodaj numer Firmware do nazwy pliku - + SD Structure path Struktura karty SD - - Firmware Variant - Wariant Firmware + + 9X + 9X - + + 9X with m128 + 9X z m128 + + + + 9XR + 9XR + + + + 9XR with m128 + 9XR z m128 + + + + Gruvin9x Board + Płyta Gruvin9x + + + + Sky9x Board + Płyta Sky9x + + + + Taranis + Taranis + + + Firmware Variant + Wariant Firmware + + + Select Image Wybierz obrazek - Firmware File - Plik Firmware + Plik Firmware - + Offer to write FW to Tx after download Zaproponuj zapisanie FirmWare do radia po pobraniu - Radio Settings Profile - Profil Ustawień Radia + Profil Ustawień Radia - + Profile Name Nazwa profilu - + Remove Profile Usuń Profil - + + Radio Type + Typ Radia + + + Clear Image Wyczyść obrazek @@ -7180,128 +7357,148 @@ To ustawienie jest używane przez szablony, określa jakie wyjście przypisane j Firmware - + Splash Screen Library Biblioteka ekranół powitalnych - + Files to keep Pkili to zapamiętania - + Simulator BackLight Podświetlenie symularota - + Automatic Backup Folder Automatyczny Katalog Backupów - + Only capture to clipboard Przechwyć tylko do schowka - + Joystick Joystick - + Find Executable Znajdź plik wykonywalny - + Google Earth Executable Plik wykonywalny Google Earth - + Calibrate Kalibracja - + Enable Aktywowany - + Show splash screen when Companion starts Pokaz ekran startowy przy uruchamianiu Companion - + Automatic check for OpenTX firmware updates Automatycznie sprawdź aktualizacje firmware OpenTX - + Automatic check for Companion updates Automatycznie sprawdź aktualizacje Companion - + Offer to use wizard for new models Zaproponuj użycie konfiguratora dla nowych modeli - + Enable automatic backup before writing firmware Uaktywnij automatyczny backup przed zapisem firmware - + + My Radio + Moje Radio + + + Select your snapshot folder Katalog zrzutów - - + + No joysticks found Brak oysticka - + + EMPTY: No radio settings stored in profile + PUSTY:Brak ustawień radia w profilu + + + + AVAILABLE: Radio settings of unknown age + DOSTĘPNY:Nieznany wiek ustawień radia + + + + AVAILABLE: Radio settings stored %1 + DOSTĘPNY:Zapamietane ustawienai radia %1 + + + Select your library folder Wybierz katalog bibliteki - + Select your Models and Settings backup folder Wybierz folder do backupowania Modeli i Ustawień - + Select Google Earth executable Wybierz wykonywalny plik Google Earth - + Select the folder replicating your SD structure Wybierz folder do zreplikowania struktury Twojej karty SD - + Not possible to remove profile Usunięcie profilu jest niemożliwe - + The default profile can not be removed. Podstawowy profil nie moze być usunięty. - + Open Image to load Otwórz obrazek do załadowania - + Images (%1) Obrazki (%1) @@ -7319,20 +7516,20 @@ To ustawienie jest używane przez szablony, określa jakie wyjście przypisane j Pokaż szczegóły - + result result Wynik - + executable not found executable not found plik wykonywalny nie został znaleziony - + Error Błąd @@ -7342,32 +7539,32 @@ To ustawienie jest używane przez szablony, określa jakie wyjście przypisane j Nie mogę otworzyć pliku źródłowego - + Cannot write destination Nie mogę zapisać w miejscu docelowym - + Writing file: Zapisuję plik: - + ie: OpenTX for 9X board or OpenTX for 9XR board ie: OpenTX dal platformy 9X lub OpenTX lub 9XR - + ie: OpenTX for M128 / 9X board or OpenTX for 9XR board with M128 chip ie: OpenTX dla platformy M128 / 9X lub OpenTX dla platformy 9XR z chipem M128 - + ie: OpenTX for Gruvin9X board ie: OpenTX dla platformy Gruvin9X - + Your radio uses a %1 CPU!!! Please check advanced burn options to set the correct cpu type. @@ -7376,7 +7573,7 @@ Please check advanced burn options to set the correct cpu type. Sprawdź zaawansowane funkcje wypiekania by ustalić prawidłowy procesor. - + Your radio uses a %1 CPU!!! Please select an appropriate firmware type to program it. @@ -7385,7 +7582,7 @@ Please select an appropriate firmware type to program it. Proszę wybrać poprany rodzaj firmware. - + You are currently using: %1 @@ -7394,50 +7591,50 @@ Aktualnie używasz: %1 - - + + Writing Zapis - - + + Reading Czytanie - - + + Verifying Weryfikacja - + done - exit code %1 done - exit code %1 Zakończone z kodem %1 - + done with errors done with errors Zakończone z Błędami - - + + done - SUCCESSFUL done - SUCCESSFUL Zakończono sukcesem - + did not finish correctly did not finish correctly Nie zakończono poprawnie - + did not finish correctly! Do you want some help ? did not finish correctly! @@ -7446,29 +7643,29 @@ Do you want some help ? Potrzebujesz pomocy ? - + Copy did not finish correctly Nie zakończono poprawnie kopiowania - + finished correctly finished correctly Zakończono poprawnie - + Copy finished correctly Zakończono poprawnie kopiowanie - + Started Started Rozpoczęto - + FUSES: Low=%1 High=%2 Ext=%3 Bezpieczniki: Low=%1 High=%2 Ext=%3 @@ -7639,40 +7836,40 @@ m2560 dla platformy V4 Port szeregowy sam-ba - + DFU-UTIL Configuration Konfiguracja DFU-UTIL - + SAM-BA Configuration Konfiguracja SAM-BA - + AVRDUDE Configuration Konfiguracja AVRDUDE - - - + + + Select Location Wybierz położenie - - + + Companion Companion - + <b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue? <b><u>UWAGA!</u></b><br>U zresetuje bezpieczniki %1 do fabrycznych ustawień.<br>Zapis bezpieczników może uszkodzić twoje radio.<br>Zrób to tylko jeśli jesteś pewien że są złe!<br>Jesteś pewien by kontynuować? - + <b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent. <b><u>Ostrzeżenie!</u></b><br>Normalnie typ procesora jest wybierany automatycznie zgodnie z wybranym firmware.<br>Jeśli zmienisz typ procesora dla EEpromu rezultaty mogą być nieprzewidywalne. @@ -7710,37 +7907,37 @@ m2560 dla platformy V4 Zmień ustawiania parametrów HW wartościami z profilu - + Date & Time Data i Czas - + + Version + Wersja + + + Use firmware start screen Użyj ekranu startowego z firmware - + Use another start screen Użyj innego ekranu startowego - + Use profile start screen Użyj ekranu startowego z profilu - + Use library start screen Użyj ekranu startowego z biblioteki - - SVN - - - - + Variant Wariant @@ -7761,18 +7958,18 @@ m2560 dla platformy V4 Zmień logo w firmware - - + + Browse for file Przeglądaj pliki - + Allows Companion to write to older version of the firmware Pozwól Companion na zapis do starszej wersji firmware - + Backup and restore Models and Settings Zbakupuj i odtwórz Modele i Ustawienia @@ -7781,12 +7978,12 @@ m2560 dla platformy V4 Użyj Logo w ustawieniach - + Check Firmware compatibility Sprawdź kompatybilność firmware - + Current Profile Aktualny profil @@ -7796,22 +7993,22 @@ m2560 dla platformy V4 Przerwij - + Write firmware to TX Zapisz firmware do radia - + Current profile Aktualny profil - - - - - - + + + + + + Warning Ostrzeżenie @@ -7824,102 +8021,102 @@ m2560 dla platformy V4 Wypiecz mimo wszystko ! - - - - - - - - - - - - - + + + + + + + + + + + + + Error Błąd - + Unable to find file %1! Nie mogę odnaleźć pliku %1! - - - + + + Error opening file %1: %2. Błąd otwarcia pliku %1: %2. - + Write Models and Settings to TX Zapisz Modele i Ustawienia do radia - + Write Models and Settings in %1 to TX Zapisz Modele i Ustawienia w %1 do radia - + Open Firmware File Otwórz plik Firmware - + Choose file to load Models and Settings from Wybierz plik Modeli i Ustawien do wczytania - + %1 may not be a valid firmware file %1 moze nie być prawidłowym plikiem firmware - - - + + + Invalid binary Models and Settings File %1, Proceed anyway ? Nieprawidłowy plik Modeli i Ustawień : %1. Kontynuować ? - + Error reading file %1: %2. Błąd odczytu pliku %1: %2. - + The firmware file is not valid. Plik firmware jest błedny. - + There is no start screen image in the firmware file. Brak obrazka ekranu startowego w firmware. - + The profile image %1 does not contain an image. Obraz profilu %1 nie zawiera obrazka. - + Open image file to use as Tx start screen Otwórz plik obrazka by użyć go jako ekran startowy radia - + Image could not be loaded from %1 Obrazek nie moze być załadowany z %1 - + The library image could not be loaded Obrazek z biblioteki nie może być załadowany @@ -7928,7 +8125,7 @@ m2560 dla platformy V4 Otwórz plik z logo - + Images (%1) Obrazki (%1) @@ -7937,40 +8134,40 @@ m2560 dla platformy V4 Nie mogę załadować %1. - + Cannot save customized firmware Nie mogę zapisać przystosowanego firmware - + Custom image not found Własny obrazek nie odnaleziony - + No firmware selected Brak wyboru firmware - + Wrong radio calibration data in profile, Settings not patched Błędna kalibracja radia w profilu, Ustawienia nie spatchowane - + Wrong radio setting data in profile, Settings not patched Błędne ustawienia radia w profilu, Ustawienia nie spatchowane - - + + Cannot write file %1: %2. Nie mogę zapisać pliku %1: %2. - + Error writing file %1: %2. Błąd zapisu pliku %1: @@ -8475,7 +8672,7 @@ m2560 dla platformy V4 Switch Assignment - Przypisanie Przełączników + Funkcje Specjalne @@ -8544,46 +8741,46 @@ m2560 dla platformy V4 Edytor ekrany startowego radia - - + + Invert Odwróć - - + + Load FW Otwórz firmware - - + + Load Pict Otwórz obrazek - - + + Load Profile Załaduj profil - - + + Save Zapisz - - + + Open Splash Library Otwórz bibliotekę obrazków - - - - + + + + ... @@ -8669,17 +8866,17 @@ m2560 dla platformy V4 Pobierz: - + Unable to save the file %1: %2. Nie mogę zapisać pliku %1: %2. - + Companion Companion - + Download failed: %1. Pobieranie nieudane: %1. @@ -8841,57 +9038,57 @@ p, li { white-space: pre-wrap; } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CheckBox CheckBox - + Set language of voice. May be different from firmware language Ustaw język komuniaktów głosowych (). Moze być inny od języka firmware - + Processor ID ID procesora - + Options Opcje @@ -8901,32 +9098,32 @@ Moze być inny od języka firmware Język Menu - + Voice Language Język komunikatów - + Firmware Type TYp Firmware - + Download Voice Pobierz Głos - + FwInfo Informacje o Firmware - + Download FW Pobiesz Firmware - + Check for updates Sprawdź aktualizacje @@ -10363,7 +10560,7 @@ Mode 4: Switch Assignments - Przypisanie Przełączników + Funkcje Specjalne diff --git a/radio/src/bootloader/.gitignore b/radio/src/bootloader/.gitignore new file mode 100755 index 000000000..cc5bb740f --- /dev/null +++ b/radio/src/bootloader/.gitignore @@ -0,0 +1 @@ +/*.o diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index d6f95a775..49b17acd4 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -427,7 +427,12 @@ void ConvertModel_215_to_216(ModelData &model) g_model.extendedLimits = oldModel.extendedLimits; g_model.extendedTrims = oldModel.extendedTrims; g_model.throttleReversed = oldModel.throttleReversed; + +#if defined(PCBTARANIS) + g_model.beepANACenter = (oldModel.beepANACenter & 0x3f) | ((oldModel.beepANACenter & 0xc0) << 1); +#else g_model.beepANACenter = oldModel.beepANACenter; +#endif for (uint8_t i=0; i<64; i++) { MixData & mix = g_model.mixData[i]; @@ -723,6 +728,11 @@ void ConvertModel_215_to_216(ModelData &model) #endif } g_model.thrTraceSrc = oldModel.thrTraceSrc; +#if defined(PCBTARANIS) + // S3 added + if (g_model.thrTraceSrc >= THROTTLE_SOURCE_S3) + g_model.thrTraceSrc += 1; +#endif g_model.switchWarningStates = oldModel.switchWarningStates >> 1; g_model.nSwToWarn = (oldModel.switchWarningStates & 0x01) ? 0xFF : 0; for (uint8_t i=0; i<5; i++) { @@ -779,7 +789,7 @@ bool eeConvert() ALERT(STR_EEPROMWARN, msg, AU_BAD_EEPROM); // Message - MESSAGE(STR_EEPROMWARN, PSTR("EEPROM Converting"), NULL, AU_EEPROM_FORMATTING); // TODO translations + MESSAGE(STR_EEPROMWARN, STR_EEPROM_CONVERTING, NULL, AU_EEPROM_FORMATTING); // TODO translations // General Settings conversion #if defined(PCBTARANIS) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index f83806fec..eb81faad4 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -388,19 +388,19 @@ void menuGeneralSetup(uint8_t event) SLIDER_5POS(y, g_eeGeneral.varioVolume, TR_SPEAKER_VOLUME, event, attr); break; case ITEM_SETUP_VARIO_PITCH: - lcd_putsLeft(y, "\001Pitch at Zero"); + lcd_putsLeft(y, STR_PITCH_AT_ZERO); lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10), attr|LEFT); lcd_putsAtt(lcdLastPos, y, "Hz", attr); if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioPitch, -40, 40); break; case ITEM_SETUP_VARIO_RANGE: - lcd_putsLeft(y, "\001Pitch at Max"); + lcd_putsLeft(y, STR_PITCH_AT_MAX); lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_FREQUENCY_ZERO+(g_eeGeneral.varioPitch*10)+VARIO_FREQUENCY_RANGE+(g_eeGeneral.varioRange*10), attr|LEFT); lcd_putsAtt(lcdLastPos, y, "Hz", attr); if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioRange, -80, 80); break; case ITEM_SETUP_VARIO_REPEAT: - lcd_putsLeft(y, "\001Repeat at Zero"); + lcd_putsLeft(y, STR_REPEAT_AT_ZERO); lcd_outdezAtt(RADIO_SETUP_2ND_COLUMN, y, VARIO_REPEAT_ZERO+(g_eeGeneral.varioRepeat*10), attr|LEFT); lcd_putsAtt(lcdLastPos, y, "ms", attr); if (attr) CHECK_INCDEC_GENVAR(event, g_eeGeneral.varioRepeat, -30, 50); @@ -1041,7 +1041,7 @@ void menuGeneralTrainer(uint8_t event) } if (attr) { - if (event==EVT_KEY_FIRST(KEY_MENU)){ + if (event==EVT_KEY_FIRST(KEY_ENTER)){ s_editMode = -1; memcpy(g_eeGeneral.trainer.calib, g_ppmIns, sizeof(g_eeGeneral.trainer.calib)); eeDirty(EE_GENERAL); @@ -1213,10 +1213,10 @@ void menuGeneralHardware(uint8_t event) putsMixerSource(sizeof(TR_TYPE)*FW, y, MIXSRC_FIRST_POT+idx); uint8_t potType = (g_eeGeneral.potsType & mask) >> shift; if (potType == POT_TYPE_NONE && i < 2) - potType = 1; + potType = POT_TYPE_POT; potType = selectMenuItem(HW_SETTINGS_COLUMN, y, STR_TYPE, STR_POTTYPES, potType, 0, POT_TYPE_MAX, attr, event); if (potType == POT_TYPE_POT && i < 2) - potType = 0; + potType = POT_TYPE_NONE; g_eeGeneral.potsType &= ~mask; g_eeGeneral.potsType |= (potType << shift); break; diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index faec332cd..cb9cf1a4a 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -1134,7 +1134,7 @@ void menuModelSetup(uint8_t event) case ITEM_MODEL_THROTTLE_TRACE: { lcd_putsLeft(y, STR_TTRACE); - if (attr) CHECK_INCDEC_MODELVAR_ZERO(event, g_model.thrTraceSrc, NUM_POTS+NUM_CHNOUT); + if (attr) CHECK_INCDEC_MODELVAR_ZERO_CHECK(event, g_model.thrTraceSrc, NUM_POTS+NUM_CHNOUT, isThrottleSourceAvailable); uint8_t idx = g_model.thrTraceSrc + MIXSRC_Thr; if (idx > MIXSRC_Thr) idx += 1; @@ -1285,8 +1285,9 @@ void menuModelSetup(uint8_t event) case ITEM_MODEL_BEEP_CENTER: lcd_putsLeft(y, STR_BEEPCTR); - for (uint8_t i=0; i0 || p1valdiff)) { switch (m_posHorz) { case 0: @@ -2418,7 +2419,7 @@ void menuModelCurveOne(uint8_t event) CurveInfo & crv = g_model.curves[s_curveChan]; int8_t * points = curveAddress(s_curveChan); - lcd_puts(9*FW, 0, "pt\003X\006Y"); + lcd_puts(9*FW, 0, TR_PT "\003X\006Y"); lcd_filled_rect(0, 0, LCD_W, FH, SOLID, FILL_WHITE|GREY_DEFAULT); SIMPLE_SUBMENU(STR_MENUCURVE, 4 + 5+crv.points + (crv.type==CURVE_TYPE_CUSTOM ? 5+crv.points-2 : 0)); @@ -2429,7 +2430,7 @@ void menuModelCurveOne(uint8_t event) uint8_t attr = (m_posVert==1 ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0); lcd_putsLeft(3*FH+1, STR_TYPE); - lcd_putsiAtt(INDENT_WIDTH, 4*FH+1, "\010StandardCustom\0", crv.type, attr); + lcd_putsiAtt(INDENT_WIDTH, 4*FH+1, STR_CURVE_TYPES, crv.type, attr); if (attr) { uint8_t newType = checkIncDecModelZero(event, crv.type, CURVE_TYPE_LAST); if (newType != crv.type) { @@ -2445,9 +2446,9 @@ void menuModelCurveOne(uint8_t event) } attr = (m_posVert==2 ? (s_editMode>0 ? INVERS|BLINK : INVERS) : 0); - lcd_putsLeft(5*FH+1, "Count"); + lcd_putsLeft(5*FH+1, STR_COUNT); lcd_outdezAtt(INDENT_WIDTH, 6*FH+1, 5+crv.points, LEFT|attr); - lcd_putsAtt(lcdLastPos, 6*FH+1, PSTR("pts"), attr); + lcd_putsAtt(lcdLastPos, 6*FH+1, STR_PTS, attr); if (attr) { int8_t count = checkIncDecModel(event, crv.points, -3, 12); // 2pts - 17pts if (checkIncDec_Ret) { @@ -2466,7 +2467,7 @@ void menuModelCurveOne(uint8_t event) } } - lcd_putsLeft(7*FH+1, PSTR("Smooth")); + lcd_putsLeft(7*FH+1, STR_SMOOTH); menu_lcd_onoff(7*FW, 7*FH+1, crv.smooth, m_posVert==3 ? INVERS : 0); if (m_posVert==3) crv.smooth = checkIncDecModel(event, crv.smooth, 0, 1); @@ -3809,7 +3810,7 @@ void onLimitsMenu(const char *result) ld->revert = false; ld->curve = 0; } - else if (result == STR_COPY_TRIMS_TO_OFFSET) { + else if (result == STR_COPY_TRIMS_TO_OFS) { copyTrimsToOffset(ch); } } @@ -3888,7 +3889,7 @@ void menuModelLimits(uint8_t event) if (sub==k && m_posHorz < 0 && event==EVT_KEY_LONG(KEY_ENTER)) { killEvents(event); MENU_ADD_ITEM(STR_RESET); - MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFFSET); + MENU_ADD_ITEM(STR_COPY_TRIMS_TO_OFS); menuHandler = onLimitsMenu; } #else @@ -4057,7 +4058,7 @@ void menuModelCurvesAll(uint8_t event) editName(4*FW, y, g_model.curveNames[k], sizeof(g_model.curveNames[k]), 0, 0); CurveInfo & crv = g_model.curves[k]; lcd_outdezAtt(11*FW, y, 5+crv.points, LEFT); - lcd_putsAtt(lcdLastPos, y, PSTR("pts"), 0); + lcd_putsAtt(lcdLastPos, y, STR_PTS, 0); #endif } } @@ -4511,7 +4512,7 @@ void onLogicalSwitchesMenu(const char *result) *cs = clipboard.data.csw; eeDirty(EE_MODEL); } - else if (result == STR_DELETE) { + else if (result == STR_CLEAR) { memset(cs, 0, sizeof(LogicalSwitchData)); eeDirty(EE_MODEL); } @@ -4539,10 +4540,12 @@ void menuModelLogicalSwitches(uint8_t event) if (sub>=0 && horz<0 && event==EVT_KEY_LONG(KEY_ENTER) && !READ_ONLY()) { killEvents(event); LogicalSwitchData * cs = cswAddress(sub); - if (cs->func) MENU_ADD_ITEM(STR_COPY); + if (cs->func) + MENU_ADD_ITEM(STR_COPY); if (clipboard.type == CLIPBOARD_TYPE_CUSTOM_SWITCH) MENU_ADD_ITEM(STR_PASTE); - if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) MENU_ADD_ITEM(STR_DELETE); + if (cs->func || cs->v1 || cs->v2 || cs->delay || cs->duration || cs->andsw) + MENU_ADD_ITEM(STR_CLEAR); menuHandler = onLogicalSwitchesMenu; } #endif @@ -4692,7 +4695,7 @@ void menuModelLogicalSwitches(uint8_t event) // CSW delay if (cstate == LS_FAMILY_STAY) { - lcd_puts(CSW_6TH_COLUMN, y, "N/A"); + lcd_puts(CSW_6TH_COLUMN, y, STR_NA); if (attr && horz == LS_FIELD_DELAY) { REPEAT_LAST_CURSOR_MOVE(); } @@ -4870,10 +4873,9 @@ void menuModelCustomFunctions(uint8_t event) MENU_ADD_ITEM(STR_PASTE); if (!CFN_EMPTY(sd) && CFN_EMPTY(&g_model.funcSw[NUM_CFN-1])) MENU_ADD_ITEM(STR_INSERT); - if (CFN_EMPTY(sd)) - MENU_ADD_ITEM(STR_DELETE); - else + if (!CFN_EMPTY(sd)) MENU_ADD_ITEM(STR_CLEAR); + MENU_ADD_ITEM(STR_DELETE); menuHandler = onCustomFunctionsMenu; } #endif @@ -5205,7 +5207,7 @@ void menuModelCustomScriptOne(uint8_t event) uint8_t attr = (sub==i ? (s_editMode>0 ? BLINK|INVERS : INVERS) : 0); if (i == ITEM_MODEL_CUSTOMSCRIPT_FILE) { - lcd_putsLeft(y, "Script"); + lcd_putsLeft(y, STR_SCRIPT); if (ZEXIST(sd.file)) lcd_putsnAtt(SCRIPT_ONE_2ND_COLUMN_POS, y, sd.file, sizeof(sd.file), attr); else @@ -5222,11 +5224,11 @@ void menuModelCustomScriptOne(uint8_t event) } } else if (i == ITEM_MODEL_CUSTOMSCRIPT_NAME) { - lcd_putsLeft(y, "Name"); + lcd_putsLeft(y, TR_NAME); editName(SCRIPT_ONE_2ND_COLUMN_POS, y, sd.name, sizeof(sd.name), event, attr); } else if (i == ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL) { - lcd_putsLeft(y, "Inputs"); + lcd_putsLeft(y, STR_INPUTS); } else if (i <= ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL+scriptInternalData[s_currIdx].inputsCount) { int inputIdx = i-ITEM_MODEL_CUSTOMSCRIPT_PARAMS_LABEL-1; @@ -5249,7 +5251,7 @@ void menuModelCustomScriptOne(uint8_t event) if (scriptInternalData[s_currIdx].outputsCount > 0) { lcd_vline(SCRIPT_ONE_3RD_COLUMN_POS-4, FH+1, LCD_H-FH-1); - lcd_puts(SCRIPT_ONE_3RD_COLUMN_POS, FH+1, "Outputs"); + lcd_puts(SCRIPT_ONE_3RD_COLUMN_POS, FH+1, STR_OUTPUTS); for (int i=0; i= 212 const pm_char STR_MODELNAME[] PROGMEM = TR_MODELNAME; @@ -482,24 +490,31 @@ const pm_char STR_VIEW_TEXT[] PROGMEM = "View text"; const pm_char STR_CHANNELRANGE[] PROGMEM = TR_CHANNELRANGE; const pm_char STR_LOWALARM[] PROGMEM = TR_LOWALARM; const pm_char STR_CRITICALALARM[] PROGMEM = TR_CRITICALALARM; - const pm_char STR_ENABLE_POPUP[] PROGMEM = "Enable Popup"; - const pm_char STR_DISABLE_POPUP[] PROGMEM = "Disable Popup"; - const pm_char STR_CURVE_PRESET[] PROGMEM = "Preset..."; - const pm_char STR_PRESET[] PROGMEM = "Preset"; - const pm_char STR_MIRROR[] PROGMEM = "Mirror"; - const pm_char STR_CLEAR[] PROGMEM = "Clear"; - const pm_char STR_RESET[] PROGMEM = "Reset"; - const pm_char STR_COPY_TRIMS_TO_OFFSET[] = "Copy Trims To Offset"; + const pm_char STR_ENABLE_POPUP[] PROGMEM = TR_ENABLE_POPUP; + const pm_char STR_DISABLE_POPUP[] PROGMEM = TR_DISABLE_POPUP; + const pm_char STR_CURVE_PRESET[] PROGMEM = TR_CURVE_PRESET; + const pm_char STR_PRESET[] PROGMEM = TR_PRESET; + const pm_char STR_MIRROR[] PROGMEM = TR_MIRROR; + const pm_char STR_CLEAR[] PROGMEM = TR_CLEAR; + const pm_char STR_RESET[] PROGMEM = TR_RESET; + const pm_char STR_COUNT[] PROGMEM = TR_COUNT; + const pm_char STR_PT[] PROGMEM = TR_PT; + const pm_char STR_PTS[] PROGMEM = TR_PTS; + const pm_char STR_SMOOTH[] PROGMEM = TR_SMOOTH; + const pm_char STR_COPY_TRIMS_TO_OFS[] PROGMEM = TR_COPY_TRIMS_TO_OFS; const pm_char STR_TOP_BAR[] PROGMEM = TR_TOP_BAR; const pm_char STR_ALTITUDE[] PROGMEM = TR_ALTITUDE; - const pm_char STR_SCALE[] PROGMEM = "Scale"; - const pm_char STR_VIEW_CHANNELS[] PROGMEM = "View Channels"; - const pm_char STR_VIEW_NOTES[] PROGMEM = "View Notes"; + const pm_char STR_SCALE[] PROGMEM = TR_SCALE; + const pm_char STR_VIEW_CHANNELS[] PROGMEM = TR_VIEW_CHANNELS; + const pm_char STR_VIEW_NOTES[] PROGMEM = TR_VIEW_NOTES; const pm_char STR_POTWARNING[] PROGMEM = TR_POTWARNING; const pm_char STR_PREFLIGHT[] PROGMEM = TR_PREFLIGHT; const pm_char STR_CHECKLIST[] PROGMEM = TR_CHECKLIST; const pm_char STR_UART3MODE[] PROGMEM = TR_UART3MODE; const pm_char STR_THROTTLE_LABEL[] PROGMEM = TR_THROTTLE_LABEL; + const pm_char STR_SCRIPT[] PROGMEM = TR_SCRIPT; + const pm_char STR_INPUTS[] PROGMEM = TR_INPUTS; + const pm_char STR_OUTPUTS[] PROGMEM = TR_OUTPUTS; #endif #if MENUS_LOCK == 1 diff --git a/radio/src/translations.h b/radio/src/translations.h index da9098734..3d60c6a1c 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -131,54 +131,58 @@ extern const pm_char STR_OPEN9X[]; #define OFS_VTELEMUNIT (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS)) #define OFS_VALARM (OFS_VTELEMUNIT + sizeof(TR_VTELEMUNIT)) #endif - #define OFS_VALARMFN (OFS_VALARM + sizeof(TR_VALARM)) - #define OFS_VTELPROTO (OFS_VALARMFN + sizeof(TR_VALARMFN)) - #define OFS_GPSFORMAT (OFS_VTELPROTO + sizeof(TR_VTELPROTO)) - #define OFS_VOLTSRC (OFS_GPSFORMAT + sizeof(TR_GPSFORMAT)) - #define OFS_VARIOSRC (OFS_VOLTSRC + sizeof(TR_VOLTSRC)) - #define OFS_VSCREEN (OFS_VARIOSRC + sizeof(TR_VARIOSRC)) - #define OFS_VTEMPLATES (OFS_VSCREEN + sizeof(TR_VSCREEN)) + #define OFS_VALARMFN (OFS_VALARM + sizeof(TR_VALARM)) + #define OFS_VTELPROTO (OFS_VALARMFN + sizeof(TR_VALARMFN)) + #define OFS_GPSFORMAT (OFS_VTELPROTO + sizeof(TR_VTELPROTO)) + #define OFS_VOLTSRC (OFS_GPSFORMAT + sizeof(TR_GPSFORMAT)) + #define OFS_VARIOSRC (OFS_VOLTSRC + sizeof(TR_VOLTSRC)) + #define OFS_VSCREEN (OFS_VARIOSRC + sizeof(TR_VARIOSRC)) + #define OFS_VTEMPLATES (OFS_VSCREEN + sizeof(TR_VSCREEN)) #else - #define OFS_VTEMPLATES (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS)) + #define OFS_VTEMPLATES (OFS_VTELEMCHNS + sizeof(TR_VTELEMCHNS)) #endif #if defined(TEMPLATES) - #define OFS_VSWASHTYPE (OFS_VTEMPLATES + sizeof(TR_VTEMPLATES)) + #define OFS_VSWASHTYPE (OFS_VTEMPLATES + sizeof(TR_VTEMPLATES)) #else - #define OFS_VSWASHTYPE (OFS_VTEMPLATES) + #define OFS_VSWASHTYPE (OFS_VTEMPLATES) #endif #if defined(HELI) - #define OFS_VKEYS (OFS_VSWASHTYPE + sizeof(TR_VSWASHTYPE)) + #define OFS_VKEYS (OFS_VSWASHTYPE + sizeof(TR_VSWASHTYPE)) #else - #define OFS_VKEYS (OFS_VSWASHTYPE) + #define OFS_VKEYS (OFS_VSWASHTYPE) #endif -#define OFS_VSWITCHES (OFS_VKEYS + sizeof(TR_VKEYS)) -#define OFS_VSRCRAW (OFS_VSWITCHES + sizeof(TR_VSWITCHES)) -#define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW)) -#define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES)) +#define OFS_VSWITCHES (OFS_VKEYS + sizeof(TR_VKEYS)) +#define OFS_VSRCRAW (OFS_VSWITCHES + sizeof(TR_VSWITCHES)) +#define OFS_VTMRMODES (OFS_VSRCRAW + sizeof(TR_VSRCRAW)) +#define OFS_DATETIME (OFS_VTMRMODES + sizeof(TR_VTMRMODES)) #if defined(CPUM2560) || defined(CPUARM) - #define OFS_VLCD (OFS_DATETIME + sizeof(TR_DATETIME)) + #define OFS_VLCD (OFS_DATETIME + sizeof(TR_DATETIME)) #else - #define OFS_VLCD (OFS_DATETIME) + #define OFS_VLCD (OFS_DATETIME) #endif #if defined(CPUARM) - #define OFS_VUNITSSYSTEM (OFS_VLCD + sizeof(TR_VLCD)) - #define OFS_VBEEPCOUNTDOWN (OFS_VUNITSSYSTEM + sizeof(TR_VUNITSSYSTEM)) - #define OFS_COUNTRYCODES (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN)) + #define OFS_VUNITSSYSTEM (OFS_VLCD + sizeof(TR_VLCD)) + #define OFS_VBEEPCOUNTDOWN (OFS_VUNITSSYSTEM + sizeof(TR_VUNITSSYSTEM)) + #define OFS_COUNTRYCODES (OFS_VBEEPCOUNTDOWN + sizeof(TR_VBEEPCOUNTDOWN)) #else - #define OFS_COUNTRYCODES (OFS_VLCD) + #define OFS_COUNTRYCODES (OFS_VLCD) #endif #if defined(PXX) - #define OFS_VFAILSAFE (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES)) + #define OFS_VFAILSAFE (OFS_COUNTRYCODES + sizeof(TR_COUNTRYCODES)) #else - #define OFS_VFAILSAFE (OFS_COUNTRYCODES) + #define OFS_VFAILSAFE (OFS_COUNTRYCODES) #endif #if defined(PXX) - #define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE)) + #define OFS_VTRAINERMODES (OFS_VFAILSAFE + sizeof(TR_VFAILSAFE)) #else - #define OFS_VTRAINERMODES (OFS_VFAILSAFE) + #define OFS_VTRAINERMODES (OFS_VFAILSAFE) #endif #if defined(PCBTARANIS) - #define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES)) + #define OFS_TARANIS_PROTOCOLS (OFS_VTRAINERMODES + sizeof(TR_VTRAINERMODES)) + #define OFS_XJT_PROTOCOLS (OFS_TARANIS_PROTOCOLS + sizeof(TR_TARANIS_PROTOCOLS)) + #define OFS_DSM_PROTOCOLS (OFS_XJT_PROTOCOLS + sizeof(TR_XJT_PROTOCOLS)) + #define OFS_CURVE_TYPES (OFS_DSM_PROTOCOLS + sizeof(TR_DSM_PROTOCOLS)) + #define OFS_MAVLINK_BAUDS (OFS_CURVE_TYPES + sizeof(TR_CURVE_TYPES)) #else #define OFS_MAVLINK_BAUDS (OFS_VTRAINERMODES) #endif @@ -187,7 +191,7 @@ extern const pm_char STR_OPEN9X[]; #define OFS_MAVLINK_AP_MODES (OFS_MAVLINK_AC_MODES + sizeof(TR_MAVLINK_AC_MODES)) #define OFS_SPARE (OFS_MAVLINK_AP_MODES + sizeof(TR_MAVLINK_AP_MODES)) #else - #define OFS_SPARE (OFS_MAVLINK_BAUDS) + #define OFS_SPARE (OFS_MAVLINK_BAUDS) #endif #define STR_OFFON (STR_OPEN9X + OFS_OFFON) @@ -271,11 +275,15 @@ extern const pm_char STR_OPEN9X[]; #endif #if defined(PCBTARANIS) - #define STR_VTRAINERMODES (STR_OPEN9X + OFS_VTRAINERMODES) + #define STR_VTRAINERMODES (STR_OPEN9X + OFS_VTRAINERMODES) + #define STR_TARANIS_PROTOCOLS (STR_OPEN9X + OFS_TARANIS_PROTOCOLS) + #define STR_XJT_PROTOCOLS (STR_OPEN9X + OFS_XJT_PROTOCOLS) + #define STR_DSM_PROTOCOLS (STR_OPEN9X + OFS_DSM_PROTOCOLS) + #define STR_CURVE_TYPES (STR_OPEN9X + OFS_CURVE_TYPES) #endif #if defined(MAVLINK) - #define STR_MAVLINK_BAUDS (STR_OPEN9X + OFS_MAVLINK_BAUDS) + #define STR_MAVLINK_BAUDS (STR_OPEN9X + OFS_MAVLINK_BAUDS) #define STR_MAVLINK_AC_MODES (STR_OPEN9X + OFS_MAVLINK_AC_MODES) #define STR_MAVLINK_AP_MODES (STR_OPEN9X + OFS_MAVLINK_AP_MODES) #endif @@ -386,6 +394,9 @@ extern const pm_char STR_SWITCHWARNING[]; extern const pm_char STR_TIMEZONE[]; extern const pm_char STR_GPSCOORD[]; extern const pm_char STR_VARIO[]; +extern const pm_char STR_PITCH_AT_ZERO[]; +extern const pm_char STR_PITCH_AT_MAX[]; +extern const pm_char STR_REPEAT_AT_ZERO[]; extern const pm_char STR_RXCHANNELORD[]; extern const pm_char STR_SLAVE[]; extern const pm_char STR_MODESRC[]; @@ -446,8 +457,8 @@ extern const pm_char STR_MENUCURVE[]; extern const pm_char STR_MENULOGICALSWITCH[]; extern const pm_char STR_MENULOGICALSWITCHES[]; extern const pm_char STR_MENUCUSTOMFUNC[]; -extern const pm_char STR_MENUCUSTOMSCRIPTS[]; -extern const pm_char STR_MENUCUSTOMSCRIPT[]; +extern const pm_char STR_MENUCUSTOMSCRIPTS[]; +extern const pm_char STR_MENUCUSTOMSCRIPT[]; extern const pm_char STR_MENUTELEMETRY[]; extern const pm_char STR_MENUTEMPLATES[]; extern const pm_char STR_MENUSTAT[]; @@ -549,6 +560,7 @@ extern const pm_char STR_RESET_BTN[]; extern const pm_char STR_WARNING[]; extern const pm_char STR_EEPROMWARN[]; +extern const pm_char STR_EEPROM_CONVERTING[]; extern const pm_char STR_THROTTLEWARN[]; extern const pm_char STR_ALARMSWARN[]; extern const pm_char STR_SWITCHWARN[]; @@ -573,10 +585,10 @@ extern const pm_char STR_SDHC_CARD[]; extern const pm_char STR_NO_SOUNDS_ON_SD[]; extern const pm_char STR_NO_MODELS_ON_SD[]; extern const pm_char STR_NO_BITMAPS_ON_SD[]; -extern const pm_char STR_NO_SCRIPTS_ON_SD[]; +extern const pm_char STR_NO_SCRIPTS_ON_SD[]; extern const pm_char STR_PLAY_FILE[]; extern const pm_char STR_ASSIGN_BITMAP[]; -extern const pm_char STR_EXECUTE_FILE[]; +extern const pm_char STR_EXECUTE_FILE[]; extern const pm_char STR_DELETE_FILE[]; extern const pm_char STR_COPY_FILE[]; extern const pm_char STR_RENAME_FILE[]; @@ -602,8 +614,8 @@ extern const pm_char STR_OWN[]; extern const pm_char STR_ROTARY_ENCODER[]; extern const pm_char STR_DATE[]; extern const pm_char STR_CHANNELS_MONITOR[]; -extern const pm_char STR_PATH_TOO_LONG[]; -extern const pm_char STR_VIEW_TEXT[]; +extern const pm_char STR_PATH_TOO_LONG[]; +extern const pm_char STR_VIEW_TEXT[]; #if defined(VOICE) && defined(CPUARM) struct LanguagePack { @@ -658,24 +670,31 @@ extern const pm_char STR_VIEW_TEXT[]; extern const pm_char STR_CHANNELRANGE[]; extern const pm_char STR_LOWALARM[]; extern const pm_char STR_CRITICALALARM[]; - extern const pm_char STR_ENABLE_POPUP[]; - extern const pm_char STR_DISABLE_POPUP[]; - extern const pm_char STR_CURVE_PRESET[]; - extern const pm_char STR_PRESET[]; - extern const pm_char STR_MIRROR[]; - extern const pm_char STR_CLEAR[]; - extern const pm_char STR_RESET[]; - extern const pm_char STR_COPY_TRIMS_TO_OFFSET[]; + extern const pm_char STR_ENABLE_POPUP[]; + extern const pm_char STR_DISABLE_POPUP[]; + extern const pm_char STR_CURVE_PRESET[]; + extern const pm_char STR_PRESET[]; + extern const pm_char STR_MIRROR[]; + extern const pm_char STR_CLEAR[]; + extern const pm_char STR_RESET[]; +extern const pm_char STR_COUNT[]; +extern const pm_char STR_PT[]; +extern const pm_char STR_PTS[]; +extern const pm_char STR_SMOOTH[]; + extern const pm_char STR_COPY_TRIMS_TO_OFS[]; extern const pm_char STR_TOP_BAR[]; extern const pm_char STR_ALTITUDE[]; - extern const pm_char STR_SCALE[]; - extern const pm_char STR_VIEW_CHANNELS[]; - extern const pm_char STR_VIEW_NOTES[]; + extern const pm_char STR_SCALE[]; + extern const pm_char STR_VIEW_CHANNELS[]; + extern const pm_char STR_VIEW_NOTES[]; extern const pm_char STR_POTWARNING[]; extern const pm_char STR_PREFLIGHT[]; extern const pm_char STR_CHECKLIST[]; extern const pm_char STR_UART3MODE[]; extern const pm_char STR_THROTTLE_LABEL[]; + extern const pm_char STR_SCRIPT[]; + extern const pm_char STR_INPUTS[]; + extern const pm_char STR_OUTPUTS[]; #endif #if MENUS_LOCK == 1 diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 3f5d3808e..0e643bcd3 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\010") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerika\0""Japonsko""Evropa\0 ") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC "\007" #define TR_VTRIMINC "Expo\0 ""ExJemný""Jemný\0 ""Střední""Hrubý\0 " #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "Tichý\0""Zvuk\0 ""Hlas\0 " +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "SVPK123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "SVPK12LR" + #define TR_RETA123 "SVPK123LR" #else #define TR_RETA123 "SVPK123" #endif @@ -234,8 +246,10 @@ #define TR_CFN_TEST #endif +#define TR_CFN_RESERVE "[rezerva]\0 " + #if defined(CPUARM) - #define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Hlasitost\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_CFN_TEST + #define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Hlasitost\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_CFN_TEST #elif defined(PCBGRUVIN9X) #define TR_VFSWFUNC "Zámek \0 ""Trenér \0 ""Insta-Trim\0""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podsvětlení" TR_CFN_TEST #else @@ -264,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time" + +#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -307,7 +329,7 @@ #define TR_VALARMFN "<>" #define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh""Halcyon" +#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" @@ -436,18 +458,18 @@ #define TR_MIXNAME "Jméno" #define TR_INPUTNAME "Jméno" #if defined(PCBTARANIS) - #define TR_EXPONAME "Jméno" + #define TR_EXPONAME "Poznámka" #else #define TR_EXPONAME "Jméno" #endif #define TR_BITMAP "Obrázek" #define TR_TIMER "Stopky " -#define TR_ELIMITS TR("Limit+25%", "Kanál +/- 125%") -#define TR_ETRIMS TR("širšíTrim", "Široký trim") -#define TR_TRIMINC TR("KrokTrimu", "Krok trimu") -#define TR_TTRACE TR("StopaPlyn", INDENT "Stopař plynu") -#define TR_TTRIM TR("TrimPlynu", INDENT "Trim-volnoběh") -#define TR_BEEPCTR "\221\222 Středy" +#define TR_ELIMITS TR("Limit +25%", "Kanál +/- 125%") +#define TR_ETRIMS TR("širší Trim", "Široký trim") +#define TR_TRIMINC TR("Krok Trimu", "Krok trimu") +#define TR_TTRACE TR("TH stopek", INDENT "Stopa TH stopek") +#define TR_TTRIM TR("TrimPlynVol.", INDENT "Trim jen volnoběh") +#define TR_BEEPCTR "Středy \221\222" #define TR_PROTO INDENT"Protokol" #define TR_PPMFRAME "PPM frame" #define TR_MS "ms" @@ -482,7 +504,7 @@ #define TR_MIXWARNING "Varování" #define TR_OFF "VYP" #define TR_MULTPX TR("Mat.operace", "Operace") -#define TR_DELAYDOWN TR("Zpoždění Vyp", "Zdržet(-)") +#define TR_DELAYDOWN TR("Zpoždění Vyp", "Zdržet(x)") #define TR_DELAYUP TR("Zpoždění Zap", "Zdržet(\43)") #define TR_SLOWDOWN TR("Zpomalení(-)", "Zpomal(\177)") #define TR_SLOWUP TR("Zpomalení(+)", "Zpomal(\176)") @@ -582,7 +604,7 @@ #define TR_MENUHELISETUP "HELI" #if defined(PCBTARANIS) - #define TR_MENUINPUTS "FILTRY VSTUPU" + #define TR_MENUINPUTS "VSTUPY" #define TR_MENULIMITS "SERVA" #elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "DR/EXPO" @@ -597,6 +619,8 @@ #define TR_MENULOGICALSWITCH "LOG. SPÍNAč" #define TR_MENULOGICALSWITCHES "LOGICKÉ SPÍNAčE" #define TR_MENUCUSTOMFUNC "FUNKCE" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRIE" #define TR_MENUTEMPLATES "ŠABLONY" #define TR_MENUSTAT "STATISTIKA" @@ -609,6 +633,9 @@ #define TR_LONGITUDE "Zem. délka" #define TR_GPSCOORD "GPS souřadnice" #define TR_VARIO "Vario" +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "VYPÍNÁNí.." #define TR_BATT_CALIB "Kalib:Baterie" #define TR_CURRENT_CALIB " +=\006Proud" @@ -626,6 +653,7 @@ #define TR_INCOMPATIBLE "Nekompatibilní" #define TR_WARNING "KONTROLA" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "PLYNU" #define TR_ALARMSWARN "ALARMU" #define TR_SWITCHWARN "POZICE" @@ -650,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "žádný zvuk na SD" #define TR_NO_MODELS_ON_SD "žádný model na SD" #define TR_NO_BITMAPS_ON_SD "žádné obrázky na SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Přehrát" #define TR_DELETE_FILE "Odstranit" #define TR_COPY_FILE "Kopírovat" #define TR_RENAME_FILE "Přejmenovat" #define TR_ASSIGN_BITMAP "Zvolit obrázek" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED " odstraněn" #define TR_SD_INFO "Informace" #define TR_SD_FORMAT "Formát" @@ -678,6 +708,8 @@ #define TR_DATE "Datum" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "MONITOR KANÁLU" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "Vnitřní RF modul" #define TR_EXTERNALRF "Externí RF modul" #define TR_FAILSAFE "Mód Failsafe" @@ -715,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Rozsah kanálů" #define TR_LOWALARM INDENT "Nízký Alarm" #define TR_CRITICALALARM INDENT "Kritický Alarm" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_PREFLIGHT "Předletová kontrola" #define TR_CHECKLIST INDENT "Zobrazit poznámky" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Seriový port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -748,7 +795,7 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Jméno ", " Spínač ", " Trimy ", " Přechod Zap ", " Přechod Vyp " } +#define TR_PHASES_HEADERS { " Jméno ", " Spínač ", " Trim směrovky ", " Trim výškovky ", " Trim plynu ", " Trim křidélek ", " Přechod náběhu ", " Přechod konce " } #define TR_LIMITS_HEADERS { " Jméno ", " Subtrim ", " Min ", " Max ", " Směr ", " Křivka ", " Střed PPM ", " Symetrické " } #define TR_CSW_HEADERS { " Funkce ", " Hodnota 1 ", " Hodnota 2 ", " Hodnota 2 ", " AND Spínač ", " Trvání ", " Zpoždění " } @@ -803,7 +850,7 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' -#define TR_CHR_INPUT 'F' // Values between A-I will work +#define TR_CHR_INPUT 'I' // Values between A-I will work #define TR_BEEP_VOLUME "Pípání" #define TR_WAV_VOLUME "Zvuky WAV" @@ -812,5 +859,8 @@ #define TR_TOP_BAR "Horní lišta" #define TR_ALTITUDE INDENT "Výška" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Změny nejsou povoleny!" #define TR_UNLOCKED "Odemčeno" diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 31ef5569e..7372bc256 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -37,6 +37,9 @@ * \0 -ends actual string */ + + + // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" #define TR_OFFON "AUS""EIN" @@ -80,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC TR("\006","\013") #define TR_VTRIMINC TR("Expo ""ExFein""Fein ""Mittel""Grob ","Exponential""Extra Fein ""Fein ""Mittel ""Grob ") #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "Kein\0 Pieps\0Stimme" +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -95,7 +110,7 @@ #define TR_RETA123 "SHGQ123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "SHGQ12LR" + #define TR_RETA123 "SHGQ123LR" #else #define TR_RETA123 "SHGQ123" #endif @@ -280,6 +295,11 @@ #define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time" +#define LENGTH_UNIT_IMP "ft\0" +#define SPEED_UNIT_IMP "mph" +#define LENGTH_UNIT_METR "m\0 " +#define SPEED_UNIT_METR "kmh" + #if defined(CPUARM) #define LEN_VUNITSSYSTEM TR("\006", "\012") #define TR_VUNITSSYSTEM TR("Metrik""Imper.", "Metrisch\0 ""Imperial\0 ") @@ -309,7 +329,7 @@ #define TR_VALARMFN "<>" #define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "Kein\0 ""Hub\0 ""WSHHigh""Halcyon" +#define TR_VTELPROTO "Kein\0 ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" @@ -599,6 +619,8 @@ #define TR_MENULOGICALSWITCH "LOGIK SCHALTER" #define TR_MENULOGICALSWITCHES "LOGIK SCHALTER" #define TR_MENUCUSTOMFUNC "SPEZ. FUNKTIONEN" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRIE" #define TR_MENUTEMPLATES "VORLAGEN" #define TR_MENUSTAT "STAT" @@ -611,6 +633,9 @@ #define TR_LONGITUDE "Länge:" #define TR_GPSCOORD TR("Gps Koord.","GPS Koordinaten Format") #define TR_VARIO TR("Vario","----Variometer----") +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "Herunterfahren" #define TR_BATT_CALIB "Akku. Kalib." #define TR_CURRENT_CALIB "Stromkalib." @@ -628,6 +653,7 @@ #define TR_INCOMPATIBLE "Nicht kompatibel" #define TR_WARNING "WARNUNG" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "GAS" #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN "SCHALTER" @@ -652,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "Keine Töne auf SD" #define TR_NO_MODELS_ON_SD "Keine Modelle auf SD" #define TR_NO_BITMAPS_ON_SD "Keine Bitmaps auf SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Spielen" #define TR_DELETE_FILE "Löschen" #define TR_COPY_FILE "Kopieren" #define TR_RENAME_FILE "Umbenennen" #define TR_ASSIGN_BITMAP "Assign Bitmap" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED " gelöscht" #define TR_SD_INFO "Information" #define TR_SD_FORMAT "Formattieren" @@ -680,6 +708,8 @@ #define TR_DATE "Datum:" #define TR_ROTARY_ENCODER "Drehgeber" #define TR_CHANNELS_MONITOR "Kanal Monitor" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "----Internes HF Modul----------" #define TR_EXTERNALRF "----Externes HF Modul----------" #define TR_FAILSAFE "Failsafe Mode" @@ -717,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Ausgangs Kanäle" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Kritisch Alarm" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Speichern mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial Port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -814,5 +859,8 @@ #define TR_TOP_BAR "Info Zeile" #define TR_ALTITUDE INDENT "Höhe" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Veränderungen verboten!" #define TR_UNLOCKED "Entsperrt" diff --git a/radio/src/translations/en.h.txt b/radio/src/translations/en.h.txt index 8c7b85a81..bc3595f6a 100644 --- a/radio/src/translations/en.h.txt +++ b/radio/src/translations/en.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""ExFine""Fine\0 ""Medium""Coarse", "Exponential""Extra Fine\0""Fine\0 ""Medium\0 ""Coarse\0 ") #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0" +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "RETA123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "RETA12LR" + #define TR_RETA123 "RETA123LR" #else #define TR_RETA123 "RETA123" #endif @@ -503,7 +515,7 @@ #define TR_RANGE INDENT "Range" #define TR_BAR "Bar" #define TR_ALARM INDENT "Alarm" -#define TR_USRDATA "UsrData" +#define TR_USRDATA TR("UsrData","User Data") #define TR_BLADES INDENT "Blades" #define TR_SCREEN "Screen " #define TR_SOUND_LABEL "Sound" @@ -584,7 +596,7 @@ #define TR_MENUDIAG TR("SWITCHES","SWITCH TEST") #define TR_MENUANA TR("ANAS","ANALOG INPUTS") #define TR_MENUCALIBRATION "CALIBRATION" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#define TR_TRIMS2OFFSETS "\006Trims => Subtrims" #define TR_MENUMODELSEL TR("MODELSEL","MODEL SELECTION") #define TR_MENUSETUP TR("SETUP","MODEL SETUP") #define TR_MENUFLIGHTPHASE "FLIGHT MODE" @@ -606,7 +618,9 @@ #define TR_MENUCURVE "CURVE" #define TR_MENULOGICALSWITCH "LOGICAL SWITCH" #define TR_MENULOGICALSWITCHES "LOGICAL SWITCHES" -#define TR_MENUCUSTOMFUNC "CUSTOM FUNCTIONS" +#define TR_MENUCUSTOMFUNC "SWITCH ASSIGNMENT" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRY" #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" @@ -619,6 +633,9 @@ #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format") #define TR_VARIO TR("Vario", "Variometer") +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "SHUTTING DOWN" #define TR_BATT_CALIB "Battery Calib" #define TR_CURRENT_CALIB "Current Calib" @@ -636,6 +653,7 @@ #define TR_INCOMPATIBLE "Incompatible" #define TR_WARNING "WARNING" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "Converting EEPROM" #define TR_THROTTLEWARN "THROTTLE" #define TR_ALARMSWARN "ALARMS" #define TR_SWITCHWARN TR("SWITCH","CONTROL") @@ -660,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "No Sounds on SD" #define TR_NO_MODELS_ON_SD "No Models on SD" #define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Play" #define TR_DELETE_FILE "Delete" #define TR_COPY_FILE "Copy" #define TR_RENAME_FILE "Rename" #define TR_ASSIGN_BITMAP "Assign Bitmap" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED " removed" #define TR_SD_INFO "Information" #define TR_SD_FORMAT "Format" @@ -688,6 +708,8 @@ #define TR_DATE "Date" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "CHANNEL MONITOR" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE INDENT "Failsafe mode" @@ -725,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Channel Range" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trim To Subtrim" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -822,5 +859,8 @@ #define TR_TOP_BAR "Top Bar" #define TR_ALTITUDE INDENT "Altitude" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Modifications forbidden!" #define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index a54fd03f8..16f07b1fa 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japon\0 ""Europa\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo ""ExFino""Fino ""Medio ""Grueso", "Exponencial""Extra Fino ""Fino ""Medio ""Grueso ") #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voz\0" +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "RETA123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "RETA12LR" + #define TR_RETA123 "RETA123LR" #else #define TR_RETA123 "RETA123" #endif @@ -234,8 +246,10 @@ #define TR_CFN_TEST #endif +#define TR_CFN_RESERVE "[reserve]\0" + #if defined(CPUARM) - #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_CFN_TEST + #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volumen\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_CFN_TEST #elif defined(PCBGRUVIN9X) #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Inst. Trim""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Luz fondo\0" TR_CFN_TEST #else @@ -264,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Avs1""Avs2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Aviso1""Aviso2""Cheep ""Ratata""Tick ""Sirena""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Hora" + +#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Hora" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -597,6 +619,8 @@ #define TR_MENULOGICALSWITCH "AJTE.INTERUP." #define TR_MENULOGICALSWITCHES "AJTE.INTERUPTS." #define TR_MENUCUSTOMFUNC "AJTE. FUNCIONES" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "PLANTILLAS" #define TR_MENUSTAT "STATS" @@ -609,6 +633,9 @@ #define TR_LONGITUDE "Longitud" #define TR_GPSCOORD TR("GPS Coords", "GPS formato coordenadas") #define TR_VARIO TR("Vario", "Variometro") +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "APAGANDO" #define TR_BATT_CALIB "Calib.bateria" #define TR_CURRENT_CALIB "Calib. actual" @@ -626,6 +653,7 @@ #define TR_INCOMPATIBLE "Incompatible" #define TR_WARNING "AVISO" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "ACELERADOR" #define TR_ALARMSWARN "ALARMAS" #define TR_SWITCHWARN "INTERPTOR" @@ -650,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "Sin sonidos en SD" #define TR_NO_MODELS_ON_SD "Sin Modelos en SD" #define TR_NO_BITMAPS_ON_SD "Sin imagenes en SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Play" #define TR_DELETE_FILE "Borrar" #define TR_COPY_FILE "Copiar" #define TR_RENAME_FILE "Renombrar" #define TR_ASSIGN_BITMAP "Asignar Imagen" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED "Borrado" #define TR_SD_INFO "Informacion" #define TR_SD_FORMAT "Formatear" @@ -678,6 +708,8 @@ #define TR_DATE "Fecha" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "MONITOR CANALES" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "Interna RF" #define TR_EXTERNALRF "Externa RF" #define TR_FAILSAFE INDENT"Modo sgdad." @@ -715,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Gama de canales" #define TR_LOWALARM INDENT "Alarma baja" #define TR_CRITICALALARM INDENT "Alarma Critica" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Valor mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -748,7 +795,7 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Nombre ", " Interrup.", " Trims ", " Aparecer ", " Desparecer " } +#define TR_PHASES_HEADERS { " Nombre ", " Interrup.", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Aparecer ", " Desparecer " } #define TR_LIMITS_HEADERS { " Nombre ", " Compensacion", " Min ", " Max ", " Direccion ", " Curve ", " Centrado PPM ", " Simetrica " } #define TR_CSW_HEADERS { " Funcion ", " V1 ", " V2 ", " V2 ", " AND Interrup. ", " Duracion ", " Retardo " } @@ -812,5 +859,8 @@ #define TR_TOP_BAR "Top Bar" #define TR_ALTITUDE INDENT "Altitude" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Modifications forbidden!" #define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/fi.h.txt b/radio/src/translations/fi.h.txt index 53543c3bc..1a861e7c8 100644 --- a/radio/src/translations/fi.h.txt +++ b/radio/src/translations/fi.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerikk""Japani\0""Euroopp") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC TR("\006", "\013") #define TR_VTRIMINC TR("Expo\0 ""EriHie""Hieno\0""Keski\0""Karkea", "Exponential""Eri Hieno\0 ""Hieno\0 ""Keski\0 ""Karkea\0 ") #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0" +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "RETA123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "RETA12LR" + #define TR_RETA123 "RETA123LR" #else #define TR_RETA123 "RETA123" #endif @@ -234,8 +246,10 @@ #define TR_CFN_TEST #endif +#define TR_CFN_RESERVE "[reserve]\0" + #if defined(CPUARM) - #define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST + #define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST #elif defined(PCBGRUVIN9X) #define TR_VFSWFUNC "Safety\0 ""Trainer\0 ""Inst. Trim""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0" TR_CFN_TEST #else @@ -264,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time" + +#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -597,6 +619,8 @@ #define TR_MENULOGICALSWITCH "CUSTOM SWITCH" #define TR_MENULOGICALSWITCHES "CUSTOM SWITCHES" #define TR_MENUCUSTOMFUNC "CUSTOM FUNCTIONS" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRY" #define TR_MENUTEMPLATES "TEMPLATES" #define TR_MENUSTAT "STATS" @@ -609,6 +633,9 @@ #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD TR("GPS Coords", "GPS coordinate format") #define TR_VARIO TR("Vario", "Variometer") +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "SHUTTING DOWN" #define TR_BATT_CALIB "Battery Calib" #define TR_CURRENT_CALIB "Current Calib" @@ -626,6 +653,7 @@ #define TR_INCOMPATIBLE "Incompatible" #define TR_WARNING "WARNING" #define TR_EEPROMWARN "FINSKA" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "THROTTLE" #define TR_ALARMSWARN "ALARMS" #define TR_SWITCHWARN TR("SWITCH","CONTROL") @@ -650,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "No Sounds on SD" #define TR_NO_MODELS_ON_SD "No Models on SD" #define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Play" #define TR_DELETE_FILE "Delete" #define TR_COPY_FILE "Copy" #define TR_RENAME_FILE "Rename" #define TR_ASSIGN_BITMAP "Assign Bitmap" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED " removed" #define TR_SD_INFO "Information" #define TR_SD_FORMAT "Format" @@ -678,6 +708,8 @@ #define TR_DATE "Date" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "CHANNEL MONITOR" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE INDENT "Failsafe mode" @@ -715,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Channel Range" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -812,5 +859,8 @@ #define TR_TOP_BAR "Ylä palkki" #define TR_ALTITUDE INDENT "Korkeus" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Muutokset kielletty!" #define TR_UNLOCKED "Avattu" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 64c9e8225..590ecc36b 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -37,6 +37,9 @@ * \0 -ends actual string */ + + + // NON ZERO TERMINATED STRINGS #define LEN_OFFON "\003" #define TR_OFFON "OFF""ON\0" @@ -80,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\006") #define TR_COUNTRYCODES TR("US""JP""EU", "USA\0 ""Japon\0""Europe") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC TR("\006","\013") #define TR_VTRIMINC TR("Expo\0 ""ExFin\0""Fin\0 ""Moyen\0""Gros\0 ","Exponentiel""Extra Fin\0 ""Fin\0 ""Moyen\0 ""Grossier\0 ") #define LEN_VBEEPCOUNTDOWN "\007" #define TR_VBEEPCOUNTDOWN "Silence""Bips\0 ""Voix\0 " +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Libre\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -95,7 +110,7 @@ #define TR_RETA123 "DPGA123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "DPGA12LR" + #define TR_RETA123 "DPGA123LR" #else #define TR_RETA123 "DPGA123" #endif @@ -314,7 +329,7 @@ #define TR_VALARMFN "<>" #define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh""Halcyon" +#define TR_VTELPROTO "Aucun ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" @@ -581,7 +596,7 @@ #define TR_MENUDIAG TR("INTERS","TEST INTERRUPTEURS") #define TR_MENUANA TR("ANAS","ENTREES ANALOGIQUES") #define TR_MENUCALIBRATION "CALIBRATION" -#define TR_TRIMS2OFFSETS "\006Trims => Offsets" +#define TR_TRIMS2OFFSETS "\005Trims => Subtrims" #define TR_MENUMODELSEL "MODELES" #define TR_MENUSETUP TR("CONF. MODELE","CONFIGURATION") #define TR_MENUFLIGHTPHASE "PHASE DE VOL" @@ -604,6 +619,8 @@ #define TR_MENULOGICALSWITCH "INTER LOG." #define TR_MENULOGICALSWITCHES TR("INTERS LOG.","INTERS LOGIQUES") #define TR_MENUCUSTOMFUNC TR("FONCTIONS SPEC.","FONCTIONS SPECIALES") +#define TR_MENUCUSTOMSCRIPTS "SCRIPTS PERSOS" +#define TR_MENUCUSTOMSCRIPT "SCRIPT PERSO" #define TR_MENUTELEMETRY "TELEMESURE" #define TR_MENUTEMPLATES "GABARITS" #define TR_MENUSTAT TR("STATS","STATISTIQUES") @@ -616,6 +633,9 @@ #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD TR("Coordonnées","Coordonnées GPS") #define TR_VARIO TR("Vario","Variomètre") +#define TR_PITCH_AT_ZERO INDENT "Tonalité au zéro" +#define TR_PITCH_AT_MAX INDENT "Tonalité au max" +#define TR_REPEAT_AT_ZERO INDENT "Tonalité au zéro" #define TR_SHUTDOWN "ARRET EN COURS" #define TR_BATT_CALIB "Calib. Batterie" #define TR_CURRENT_CALIB "Calib. Courant" @@ -633,6 +653,7 @@ #define TR_INCOMPATIBLE "Incompatible" #define TR_WARNING "ALERTE" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "Conversion EEPROM" #define TR_THROTTLEWARN "GAZ" #define TR_ALARMSWARN "SON" #define TR_SWITCHWARN TR("INTERS","CONTROLES") @@ -657,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "Aucun son sur SD" #define TR_NO_MODELS_ON_SD "Aucun modèle SD" #define TR_NO_BITMAPS_ON_SD "Aucun Bitmap SD" +#define TR_NO_SCRIPTS_ON_SD "Aucun Script SD" #define TR_PLAY_FILE "Lire" #define TR_DELETE_FILE "Supprimer" #define TR_COPY_FILE "Copier" #define TR_RENAME_FILE "Renommer" #define TR_ASSIGN_BITMAP "Sélectionner image" +#define TR_EXECUTE_FILE "Executer" #define TR_REMOVED " supprimé" #define TR_SD_INFO "Information" #define TR_SD_FORMAT "Formater" @@ -685,6 +708,8 @@ #define TR_DATE "Date" #define TR_ROTARY_ENCODER "Enc.Rot." #define TR_CHANNELS_MONITOR "MONITEUR CANAUX" +#define TR_PATH_TOO_LONG "Chemin trop long" +#define TR_VIEW_TEXT "Voir texte" #define TR_INTERNALRF "HF interne" #define TR_EXTERNALRF "HF externe" #define TR_FAILSAFE INDENT "Type failsafe" @@ -698,7 +723,7 @@ #define TR_COPY "Copier" #define TR_MOVE "Déplacer" #define TR_PASTE "Coller" -#define TR_DELETE "Effacer" +#define TR_DELETE "Supprimer" #define TR_INSERT "Insérer" #define TR_RESET_FLIGHT TR("Réinit. vol", "Réinitialiser vol") #define TR_RESET_TIMER1 TR("Réinit. Timer1", "Réinitialiser Timer1") @@ -722,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Plage de canaux" #define TR_LOWALARM INDENT "Alarme basse" #define TR_CRITICALALARM INDENT "Alarme critique" +#define TR_ENABLE_POPUP "Activer Popup" +#define TR_DISABLE_POPUP "Désactiver Popup" +#define TR_CURVE_PRESET "Courbe standard..." +#define TR_PRESET "Pente" +#define TR_MIRROR "Miroir" +#define TR_CLEAR "Effacer" +#define TR_RESET "Réinitialiser" +#define TR_COUNT "Nb points" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Lissage" +#define TR_COPY_TRIMS_TO_OFS "Trim vers subtrim" #define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh", INDENT "Enregistrer mAh") #define TR_PREFLIGHT "Vérifications avant vol" #define TR_CHECKLIST INDENT "Afficher notes" #define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS") #define TR_UART3MODE "Port série" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Entrées" +#define TR_OUTPUTS "Sorties" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max" @@ -810,14 +850,17 @@ #define TR_CHR_LONG 'l' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' -#define TR_CHR_INPUT 'E' // Values between A-I will work +#define TR_CHR_INPUT 'E' // Values between A-I will work -#define TR_BEEP_VOLUME "Beep Volume" -#define TR_WAV_VOLUME "Wav Volume" -#define TR_VARIO_VOLUME "Vario Volume" -#define TR_BG_VOLUME "Bg Volume" +#define TR_BEEP_VOLUME "Volume bips" +#define TR_WAV_VOLUME "Volume audio" +#define TR_VARIO_VOLUME "Volume vario" +#define TR_BG_VOLUME "Volume musique" #define TR_TOP_BAR "Barre titre" #define TR_ALTITUDE INDENT "Altitude" +#define TR_SCALE "Echelle" +#define TR_VIEW_CHANNELS "Voir Voies" +#define TR_VIEW_NOTES "Voir Notes" #define TR_MODS_FORBIDDEN "Modifications désactivées!" #define TR_UNLOCKED "Déverrouillé" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 7e7a2eeaa..25c72dd05 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Exp ""ExFine""Fine ""Medio ""Ampio " #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "NienteSuoni\0Voce\0 " +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "RETA123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "RETA12LR" + #define TR_RETA123 "RETA123LR" #else #define TR_RETA123 "RETA123" #endif @@ -234,8 +246,10 @@ #define TR_CFN_TEST #endif +#define TR_CFN_RESERVE "[reserve]\0" + #if defined(CPUARM) - #define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant ""Azzera\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_CFN_TEST + #define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant ""Azzera\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_CFN_TEST #elif defined(PCBGRUVIN9X) #define TR_VFSWFUNC "Blocco\0 ""Maestro \0 ""Trim Instant ""Azzera\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Retroillum.\0 " TR_CFN_TEST #else @@ -264,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vel\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsm""Powr""AccX""AccY""AccZ""Dir\0""VelV""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Time" + +#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Carb""T1\0 ""T2\0 ""Vel\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsm""Powr""AccX""AccY""AccZ""Dir\0""VelV""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -307,7 +329,7 @@ #define TR_VALARMFN "<>" #define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh""Halcyon" +#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" @@ -597,6 +619,8 @@ #define TR_MENULOGICALSWITCH "SWITCH PERSON." #define TR_MENULOGICALSWITCHES TR("SWITCH PERSON.","SWITCH PERSONALIZZATI") #define TR_MENUCUSTOMFUNC TR("FUNZ. PERSON.","FUNZIONI PERSONALIZZATE") +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "ESEMPI GUIDA" #define TR_MENUSTAT "STATS" @@ -609,6 +633,9 @@ #define TR_LONGITUDE "Longitud." #define TR_GPSCOORD "Coord. GPS" #define TR_VARIO "Vario" +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "ARRESTO.." #define TR_BATT_CALIB "Calibra batt." #define TR_CURRENT_CALIB "Calibra corr." @@ -626,6 +653,7 @@ #define TR_INCOMPATIBLE "Incompatibile" #define TR_WARNING "AVVISO" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "MOTORE" #define TR_ALARMSWARN "ALLARMI" #define TR_SWITCHWARN "SWITCH" @@ -650,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "No Suoni su SD" #define TR_NO_MODELS_ON_SD "No Model. su SD" #define TR_NO_BITMAPS_ON_SD "no Immag. su SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Suona" #define TR_DELETE_FILE "Cancella" #define TR_COPY_FILE "Copia" #define TR_RENAME_FILE "Rinomomina" #define TR_ASSIGN_BITMAP "Assegna Immagine" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED " rimosso" #define TR_SD_INFO "Informazioni" #define TR_SD_FORMAT "Format" @@ -678,6 +708,8 @@ #define TR_DATE "Data" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "CHANNELS MONITOR" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "Modulo Interno" #define TR_EXTERNALRF "Modulo esterno" #define TR_FAILSAFE "Modo failsafe" @@ -715,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Numero Canali" #define TR_LOWALARM INDENT "Allarme Basso" #define TR_CRITICALALARM INDENT "Allarme Critico" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -748,7 +795,7 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Nome ", " Switch ", " Trims ", " Fade In ", " Fade Out " } +#define TR_PHASES_HEADERS { " Nome ", " Switch ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Fade In ", " Fade Out " } #define TR_LIMITS_HEADERS { " Nome ", " Offset ", " Min ", " Max ", " Direzione ", " Curve ", " Centro PPM ", " Simmetria " } #define TR_CSW_HEADERS { " Funzione ", " V1 ", " V2 ", " V2 ", " AND Switch ", " Durata ", " Ritardo " } @@ -812,5 +859,8 @@ #define TR_TOP_BAR "Top Bar" #define TR_ALTITUDE INDENT "Altitude" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Modifications forbidden!" #define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index eedb2d9d4..24bac79ae 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "Ameryka""Japonia""Europa\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC "\012" #define TR_VTRIMINC "Expo\0 ""B.Dokładny""Dokładny\0 ""Średni\0 ""Zgrubny\0 " #define LEN_VBEEPCOUNTDOWN "\007" #define TR_VBEEPCOUNTDOWN "Cichy\0 ""Pikanie""Dźwięki" +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "KWGL123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "KWGL12LR" + #define TR_RETA123 "KWGL123LR" #else #define TR_RETA123 "KWGL123" #endif @@ -234,8 +246,10 @@ #define TR_CFN_TEST #endif +#define TR_CFN_RESERVE "[reserve]\0 " + #if defined(CPUARM) - #define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim ""Reset ""Set \0 " TR_ADJUST_GVAR "Głośność\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl. " TR_CFN_TEST + #define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim ""Reset ""Set \0 " TR_ADJUST_GVAR "Głośność\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl. " TR_CFN_TEST #elif defined(PCBGRUVIN9X) #define TR_VFSWFUNC "Bezp.\0 ""Trener \0 ""Inst-Trim ""Reset " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Podświetl. " TR_CFN_TEST #else @@ -264,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Ost1""Ost2""Chee""Rata""Tik\0""Syre""Dzwo""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1\0""Beep2\0""Beep3\0""Ostrz1""Ostrz1""Cheep\0""Ratata""Tick\0 ""Syrena""Dzwone""SciFi\0""Robot\0""Chirp\0""Tada\0 ""Krytcz""AlmZeg") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Wys\0""Rpm\0""Pali""T1\0 ""T2\0 ""Spd\0""Dyst""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Moc\0""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0""A1-\0""A2-\0""Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Moc+""Acc\0""Time" + +#define TR_VTELEMCHNS "---\0""Bat\0""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Wys\0""Rpm\0""Pali""T1\0 ""T2\0 ""Spd\0""Dyst""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Moc\0""AccX""AccY""AccZ""Hdg\0""VSpd""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Wys-""Wys+""Rpm+""T1+\0""T2+\0""Spd+""Dst+""Cel-""Cls-""Vfs-""Cur+""Moc+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Time" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -307,7 +329,7 @@ #define TR_VALARMFN "<>" #define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh""Halcyon" +#define TR_VTELPROTO "---\0 ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" @@ -597,6 +619,8 @@ #define TR_MENULOGICALSWITCH "PRZEŁ. LOGICZNY" #define TR_MENULOGICALSWITCHES TR("PRZEŁ. LOG.", "PRZEŁ. LOGICZNE") #define TR_MENUCUSTOMFUNC "FUNKCJE SPECJALNE" +#define TR_MENUCUSTOMSCRIPTS "WŁASNE SKRYPTY" +#define TR_MENUCUSTOMSCRIPT "WŁASNY SKRYPT" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "SZABLONY" #define TR_MENUSTAT "STATYSTYKA" @@ -609,6 +633,9 @@ #define TR_LONGITUDE "Dł. geo." #define TR_GPSCOORD "Typ koordynat GPS" #define TR_VARIO "Wario" +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "Wyłączanie.." #define TR_BATT_CALIB "Kalib:Baterii" #define TR_CURRENT_CALIB " +=\006Kalibracja prądu" @@ -626,6 +653,7 @@ #define TR_INCOMPATIBLE "Niekompatybilne" #define TR_WARNING "UWAGA" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "Konwersja EEPROM" #define TR_THROTTLEWARN "GAZ" #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN "Przełącznik" @@ -650,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "brak dźwięków na SD" #define TR_NO_MODELS_ON_SD "brak modelu na SD" #define TR_NO_BITMAPS_ON_SD "brak obrazków na SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Odtwórz" #define TR_DELETE_FILE "Skasuj" #define TR_COPY_FILE "Kopiuj" #define TR_RENAME_FILE "Zmień nazwę" #define TR_ASSIGN_BITMAP "Wybierz obrazek" +#define TR_EXECUTE_FILE "Wykonaj" #define TR_REMOVED " skasowane" #define TR_SD_INFO "Informacje" #define TR_SD_FORMAT "Formatuj" @@ -678,6 +708,8 @@ #define TR_DATE "Data" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "MONITOR KANAŁÓW" +#define TR_PATH_TOO_LONG "Ścieżka za długa" +#define TR_VIEW_TEXT "Pokaż tekst" #define TR_INTERNALRF "Wewnętrzny moduł RF" #define TR_EXTERNALRF "Zewnętrzny moduł RF" #define TR_FAILSAFE "Tryb Failsafe" @@ -715,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Zakres kanału" #define TR_LOWALARM INDENT "Alarm niski" #define TR_CRITICALALARM INDENT "Alarm krytyczny" +#define TR_ENABLE_POPUP "Aktywuj Popup" +#define TR_DISABLE_POPUP "Wyłącz Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Lutro" +#define TR_CLEAR "Wyczyść" +#define TR_RESET "Resetuj" +#define TR_COUNT "Licz" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Gładka" +#define TR_COPY_TRIMS_TO_OFS "Skopiuj Trymery Do Offsetu" #define TR_PERSISTENT_MAH INDENT "Zapisz mAh" -#define TR_PREFLIGHT "Preflight Checks" -#define TR_CHECKLIST INDENT "Display Checklist" +#define TR_PREFLIGHT "Lista Startowa" +#define TR_CHECKLIST INDENT "Pokaż Listę Startową" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Port szreg." +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Maks RSSI" @@ -748,7 +795,7 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Nazwa ", " Przełącznik ", " Trymery ", " Pojawianie się ", " Zanikanie " } +#define TR_PHASES_HEADERS { " Nazwa ", " Przełącznik ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Pojawianie się ", " Zanikanie " } #define TR_LIMITS_HEADERS { " Nazwa ", " Subtrim ", " Min ", " Max ", " Kierunek ", " Krzywa ", " Środek PPM ", " Tryb subtrim " } #define TR_CSW_HEADERS { " Funkcja ", " Param. 1 ", " Param 2 ", " Param 2 ", " AND Przełącznik ", " Czas trwania ", " Opóźnienie " } @@ -799,8 +846,8 @@ #define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)" #define TR_ABOUT_PARENTS_4 "TH9X (Thomas Husterer)" -#define TR_CHR_SHORT 's' -#define TR_CHR_LONG 'l' +#define TR_CHR_SHORT 'k' +#define TR_CHR_LONG 'd' #define TR_CHR_TOGGLE 't' #define TR_CHR_HOUR 'h' #define TR_CHR_INPUT 'I' // Values between A-I will work @@ -812,5 +859,8 @@ #define TR_TOP_BAR "Górny Pasek" #define TR_ALTITUDE INDENT "Wysokość" +#define TR_SCALE "Skala" +#define TR_VIEW_CHANNELS "Pokaż Kanały" +#define TR_VIEW_NOTES "Pokaż Notki" #define TR_MODS_FORBIDDEN "Modyfikacje zabronione!" #define TR_UNLOCKED "Odblokowane" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 6505786e4..e29888576 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "OFF\0""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Expo ""ExFino""Fino ""Medio ""Largo " #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "SilentBeeps\0Voice\0" +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "LPMA123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "LPMA12LR" + #define TR_RETA123 "LPMA123LR" #else #define TR_RETA123 "LPMA123" #endif @@ -234,8 +246,10 @@ #define TR_CFN_TEST #endif +#define TR_CFN_RESERVE "[reserve]\0 " + #if defined(CPUARM) - #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_CFN_TEST + #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido""Reset\0 ""Set \0 " TR_ADJUST_GVAR "Volume\0 " TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_SOUND TR_PLAY_TRACK TR_PLAY_VALUE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_RESERVE TR_CFN_BG_MUSIC TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_CFN_TEST #elif defined(PCBGRUVIN9X) #define TR_VFSWFUNC "Seguro\0 ""Aprendiz\0 ""Ajuste Rapido""Reset\0 " TR_ADJUST_GVAR TR_SOUND TR_PLAY_TRACK TR_PLAY_BOTH TR_PLAY_VALUE TR_VVARIO TR_HAPTIC TR_SDCLOGS "Backlight\0 " TR_CFN_TEST #else @@ -264,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Avis1 ""Avis2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VVel""ASpd""dTE\0""A1-\0""A2-\0""Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+""Acc\0""Hora" + +#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Alt\0""Rpm\0""Fuel""T1\0 ""T2\0 ""Spd\0""Dist""GAlt""Cell""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VVel""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Alt-""Alt+""Rpm+""T1+\0""T2+\0""Vel+""Dst+""Cel-""Cls-""Vfs-""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Hora" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -307,7 +329,7 @@ #define TR_VALARMFN "<>" #define LEN_VTELPROTO "\007" -#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh""Halcyon" +#define TR_VTELPROTO "Nada\0 ""Hub\0 ""WSHHigh" #define LEN_VOLTSRC "\003" #define TR_VOLTSRC "---""A1\0""A2\0""FAS""Cel" @@ -597,6 +619,8 @@ #define TR_MENULOGICALSWITCH "CHAVE ESPECIAL" #define TR_MENULOGICALSWITCHES "CHAVES ESPECIAIS" #define TR_MENUCUSTOMFUNC "FUNCAO ESPECIAL" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRIA" #define TR_MENUTEMPLATES "MODELOS" #define TR_MENUSTAT "REGISTROS" @@ -609,6 +633,9 @@ #define TR_LONGITUDE "Longitude" #define TR_GPSCOORD "Gps Coords" #define TR_VARIO "Vario" +#define TR_PITCH_AT_ZERO INDENT "Pitch at Zero" +#define TR_PITCH_AT_MAX INDENT "Pitch at Max" +#define TR_REPEAT_AT_ZERO INDENT "Repeat at Zero" #define TR_SHUTDOWN "DESLIGANDOo" #define TR_BATT_CALIB "CALIBRAR BATT" #define TR_CURRENT_CALIB "Corrente Calib" @@ -626,6 +653,7 @@ #define TR_INCOMPATIBLE "Incompativel" #define TR_WARNING "AVISO" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "EEPROM Converting" #define TR_THROTTLEWARN "ACELERAD" #define TR_ALARMSWARN "ALARMES" #define TR_SWITCHWARN "CHAVES" @@ -650,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "Sem Som no SD" #define TR_NO_MODELS_ON_SD "Sem Modelo no SD" #define TR_NO_BITMAPS_ON_SD "No Bitmaps on SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Play" #define TR_DELETE_FILE "Apagar" #define TR_COPY_FILE "Copiar" #define TR_RENAME_FILE "Renomear" #define TR_ASSIGN_BITMAP "Assign Bitmap" +#define TR_EXECUTE_FILE "Execute" #define TR_REMOVED "Remover" #define TR_SD_INFO "Dados SD" #define TR_SD_FORMAT "Formatar" @@ -678,6 +708,8 @@ #define TR_DATE "Data" #define TR_ROTARY_ENCODER "R.Encs" #define TR_CHANNELS_MONITOR "CHANNELS MONITOR" +#define TR_PATH_TOO_LONG "Path too long" +#define TR_VIEW_TEXT "View text" #define TR_INTERNALRF "Internal RF" #define TR_EXTERNALRF "External RF" #define TR_FAILSAFE "Failsafe mode" @@ -715,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Channel Range" #define TR_LOWALARM INDENT "Low Alarm" #define TR_CRITICALALARM INDENT "Critical Alarm" +#define TR_ENABLE_POPUP "Enable Popup" +#define TR_DISABLE_POPUP "Disable Popup" +#define TR_CURVE_PRESET "Preset..." +#define TR_PRESET "Preset" +#define TR_MIRROR "Mirror" +#define TR_CLEAR "Clear" +#define TR_RESET "Reset" +#define TR_COUNT "Count" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Smooth" +#define TR_COPY_TRIMS_TO_OFS "Copy Trims To Offset" #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_PREFLIGHT "Preflight Checks" #define TR_CHECKLIST INDENT "Display Checklist" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -748,7 +795,7 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Name ", " Switch ", " Trims ", " Fade In ", " Fade Out " } +#define TR_PHASES_HEADERS { " Name ", " Switch ", " Rudder Trim ", " Elevator Trim ", " Throttle Trim ", " Aileron Trim ", " Fade In ", " Fade Out " } #define TR_LIMITS_HEADERS { " Name ", " Offset ", " Min ", " Max ", " Direction ", " Curve ", " PPM Center ", " Symmetrical " } #define TR_CSW_HEADERS { " Function ", " V1 ", " V2 ", " V2 ", " AND Switch ", " Duration ", " Delay " } @@ -812,5 +859,8 @@ #define TR_TOP_BAR "Top Bar" #define TR_ALTITUDE INDENT "Altitude" +#define TR_SCALE "Scale" +#define TR_VIEW_CHANNELS "View Channels" +#define TR_VIEW_NOTES "View Notes" #define TR_MODS_FORBIDDEN "Modifications forbidden!" #define TR_UNLOCKED "Unlocked" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 1e4e89177..829e22785 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -83,12 +83,24 @@ #define LEN_COUNTRYCODES TR("\002", "\007") #define TR_COUNTRYCODES TR("US""JP""EU", "Amerika""Japan\0 ""Europa\0") +#define LEN_TARANIS_PROTOCOLS "\004" +#define TR_TARANIS_PROTOCOLS "Av\0 ""PPM\0""XJT\0""DSM2" + +#define LEN_XJT_PROTOCOLS "\004" +#define TR_XJT_PROTOCOLS "---\0""D16\0""D8\0 ""LR12" + +#define LEN_DSM_PROTOCOLS "\004" +#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX" + #define LEN_VTRIMINC TR("\006","\014") #define TR_VTRIMINC TR("Expo\0 ""xFin\0 ""Fin\0 ""Medium""Grov\0 ","Exponentiell""Extra Fin\0 ""Fin\0 ""Medium\0 ""Grov\0 ") #define LEN_VBEEPCOUNTDOWN "\006" #define TR_VBEEPCOUNTDOWN "Tyst\0 Pip\0 Röst\0 " +#define LEN_CURVE_TYPES "\010" +#define TR_CURVE_TYPES "Standard""Custom\0" + #define LEN_RETA123 "\001" #if defined(PCBGRUVIN9X) @@ -98,7 +110,7 @@ #define TR_RETA123 "RHGS123ab" #endif #elif defined(PCBTARANIS) - #define TR_RETA123 "RHGS12HV" + #define TR_RETA123 "RHGS123HV" #else #define TR_RETA123 "RHGS123" #endif @@ -152,15 +164,15 @@ #if defined(PCBTARANIS) #define TR_CSWTIMER "Timer" - #define TR_CSWSTICKY "Stcky" - #define TR_CSWRANGE "Range" - #define TR_CSWSTAY "Edge\0" + #define TR_CSWSTICKY "Seg\0 " + #define TR_CSWRANGE "Vidd\0" + #define TR_CSWSTAY "Kant\0" #else #define TR_CSWTIMER "Tim\0 " - #define TR_CSWSTICKY "Glue\0" + #define TR_CSWSTICKY "Seg\0 " #if defined(CPUARM) - #define TR_CSWRANGE "Rnge\0" - #define TR_CSWSTAY "Edge\0" + #define TR_CSWRANGE "Vidd\0" + #define TR_CSWSTAY "Kant\0" #else #define TR_CSWRANGE #define TR_CSWSTAY @@ -266,14 +278,22 @@ #define TR_FUNCSOUNDS TR("Bp1\0""Bp2\0""Bp3\0""Wrn1""Wrn2""Chee""Rata""Tick""Sirn""Ring""SciF""Robt""Chrp""Tada""Crck""Alrm", "Beep1 ""Beep2 ""Beep3 ""Warn1 ""Warn2 ""Cheep ""Ratata""Tick ""Siren ""Ring ""SciFi ""Robot ""Chirp ""Tada ""Crickt""AlmClk") #define LEN_VTELEMCHNS "\004" -#if defined(PCBTARANIS) - #define TR_RSSI_0 "SWR\0" - #define TR_RSSI_1 "RSSI" + +#if defined(CPUARM) + #define TR_TELEM_RESERVE "[--]" + #define TR_SWR "SWR\0" + #define TR_RX_BATT "RxBt" + #define TR_A3_A4 "A3\0 ""A4\0 " + #define TR_A3_A4_MIN "A3-\0""A4-\0" #else - #define TR_RSSI_0 "Tx\0 " - #define TR_RSSI_1 "Rx\0 " + #define TR_TELEM_RESERVE + #define TR_SWR + #define TR_RX_BATT + #define TR_A3_A4 + #define TR_A3_A4_MIN #endif -#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_RSSI_0 TR_RSSI_1 "A1\0 ""A2\0 ""Höjd""Varv""Tank""T1\0 ""T2\0 ""Fart""Avst""GHjd""Batt""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VFrt""ASpd""dTE\0""A1-\0""A2-\0""Hjd-""Hjd+""Rpm+""T1+\0""T2+\0""Frt+""Avs+""Cur+""Pwr+""Acc\0""Tid\0" + +#define TR_VTELEMCHNS "---\0""Batt""Tmr1""Tmr2" TR_SWR "Tx\0 ""Rx\0 " TR_RX_BATT "A1\0 ""A2\0 " TR_A3_A4 "Höjd""Varv""Tank""T1\0 ""T2\0 ""Fart""Avst""GHjd""Batt""Cels""Vfas""Curr""Cnsp""Powr""AccX""AccY""AccZ""Hdg\0""VFrt""ASpd""dTE\0" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "A1-\0""A2-\0" TR_A3_A4_MIN "Hjd-""Hjd+""Rpm+""T1+\0""T2+\0""Frt+""Avs+""Cur+""Pwr+" TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE TR_TELEM_RESERVE "Acc\0""Tid\0" #define LENGTH_UNIT_IMP "ft\0" #define SPEED_UNIT_IMP "mph" @@ -401,7 +421,7 @@ #define TR_VTRAINERMODES "Lärare""Elev\0." #define LEN_VFAILSAFE "\011" -#define TR_VFAILSAFE "Håll\0 ""Special\0 ""Pulsfritt" +#define TR_VFAILSAFE "Lås Servo""Anpassat\0""Pulsfritt" #if defined(MAVLINK) #define LEN_MAVLINK_BAUDS "\006" @@ -436,9 +456,9 @@ #define TR_MODELNAME "Modellnamn" #define TR_PHASENAME "Lägesnamn " #define TR_MIXNAME "Mixnamn " -#define TR_INPUTNAME "Filternamn" +#define TR_INPUTNAME "Inputnamn" #if defined(PCBTARANIS) - #define TR_EXPONAME "Linjenamn" + #define TR_EXPONAME "Radnamn" #else #define TR_EXPONAME "Exponamn" #endif @@ -480,7 +500,7 @@ #define TR_TRIM "Trim" #define TR_DREX "DRex" #define TR_CURVE "Kurva" -#define TR_FLMODE TR("Läge","Lägen") +#define TR_FLMODE TR("Läge","Flyglägen") #define TR_MIXWARNING "Varning" #define TR_OFF "Av " #define TR_MULTPX "Multpx" @@ -514,7 +534,7 @@ #define TR_THROTTLE_LABEL "Gas" #define TR_THROTTLEREVERSE TR("Inv.Gas", INDENT "Inverterad Gas") #define TR_MINUTEBEEP INDENT"Minutpip" -#define TR_BEEPCOUNTDOWN INDENT"Räkna ned" +#define TR_BEEPCOUNTDOWN INDENT"Nedräkning" #define TR_PERSISTENT TR("Jämt på ",INDENT"Alltid På") #define TR_BACKLIGHT_LABEL "Belysning" #define TR_BLDELAY INDENT"Av efter" @@ -539,7 +559,7 @@ #define TR_TXnRX "Tx:\0Rx:" #define OFS_RX 4 #define TR_ACCEL "Acc:" -#define TR_NODATA CENTER "NO DATA" +#define TR_NODATA CENTER "DATA SAKNAS" #define TR_TOTTM1TM2THRTHP "\037\146TOT\036TM1\037\146TM2\036THR\037\146TH%" #define TR_TMR1LATMAXUS "Tmr1Lat max\037\124us" #define STR_US (STR_TMR1LATMAXUS+13) @@ -585,13 +605,13 @@ #if defined(PCBTARANIS) #define TR_MENUINPUTS "INPUT" - #define TR_MENULIMITS "GRÄNSER" + #define TR_MENULIMITS "SERVON" #elif defined(PPM_CENTER_ADJUSTABLE) || defined(PPM_LIMITS_SYMETRICAL) // The right menu titles for the gurus ... #define TR_MENUINPUTS "SPAKAR" - #define TR_MENULIMITS "GRÄNSER" + #define TR_MENULIMITS "SERVON" #else #define TR_MENUINPUTS TR("DR/EXPO","DUALRATES/EXPO") - #define TR_MENULIMITS "GRÄNSER" + #define TR_MENULIMITS "SERVON" #endif #define TR_MENUCURVES "KURVOR" @@ -599,11 +619,13 @@ #define TR_MENULOGICALSWITCH "LOGISK BRYTARE" #define TR_MENULOGICALSWITCHES "LOGISKA BRYTARE" #define TR_MENUCUSTOMFUNC "BRYTARFUNKTIONER" +#define TR_MENUCUSTOMSCRIPTS "CUSTOM SCRIPTS" +#define TR_MENUCUSTOMSCRIPT "CUSTOM SCRIPT" #define TR_MENUTELEMETRY "TELEMETRI" #define TR_MENUTEMPLATES "MALLAR" #define TR_MENUSTAT "STATISTIK" #define TR_MENUDEBUG "DEBUG" -#define TR_RXNUM "RxNum" +#define TR_RXNUM TR("RxNum", "RxInställningar") #define TR_SYNCMENU "Synk [MENU]" #define TR_LIMIT INDENT"Nivå" #define TR_MINRSSI "Min Rssi" @@ -611,6 +633,9 @@ #define TR_LONGITUDE "Längdgrad" #define TR_GPSCOORD TR("GPS-Koordinater", "GPS-koordinatsystem") #define TR_VARIO TR("Vario", "Variometer") +#define TR_PITCH_AT_ZERO INDENT "Ton vid Noll" +#define TR_PITCH_AT_MAX INDENT "Ton vid Max" +#define TR_REPEAT_AT_ZERO INDENT "Repetera vid Noll" #define TR_SHUTDOWN "STäNGER AV" #define TR_BATT_CALIB "Kalib. Batteri" #define TR_CURRENT_CALIB "Kalib. Ström" @@ -628,6 +653,7 @@ #define TR_INCOMPATIBLE "Inkompatibel" #define TR_WARNING "VARNING" #define TR_EEPROMWARN "EEPROM" +#define TR_EEPROM_CONVERTING "EEPROM Konvertering" #define TR_THROTTLEWARN "GAS" #define TR_ALARMSWARN "ALARM" #define TR_SWITCHWARN "BRYTARE" @@ -652,11 +678,13 @@ #define TR_NO_SOUNDS_ON_SD "Inga ljud i SD" #define TR_NO_MODELS_ON_SD "Ingen modell i SD" #define TR_NO_BITMAPS_ON_SD "Ikoner saknas på SD" +#define TR_NO_SCRIPTS_ON_SD "No Scripts on SD" #define TR_PLAY_FILE "Spela" #define TR_DELETE_FILE "Radera" #define TR_COPY_FILE "Kopia" #define TR_RENAME_FILE "Byt namn" #define TR_ASSIGN_BITMAP "Tilldela ikon" +#define TR_EXECUTE_FILE "Utför" #define TR_REMOVED " raderad" #define TR_SD_INFO "Information" #define TR_SD_FORMAT "Format" @@ -680,12 +708,14 @@ #define TR_DATE "Datum" #define TR_ROTARY_ENCODER "R.Enks" #define TR_CHANNELS_MONITOR "Kanalöversikt" -#define TR_INTERNALRF "Intern RF" -#define TR_EXTERNALRF "Extern RF" -#define TR_FAILSAFE "Failsafe-läge" +#define TR_PATH_TOO_LONG "För lång sökväg" +#define TR_VIEW_TEXT "Visa Text" +#define TR_INTERNALRF "Intern Radio" +#define TR_EXTERNALRF "Extern Radiomodul" +#define TR_FAILSAFE "Failsafeläge" #define TR_FAILSAFESET "FailsafeInställning" #define TR_COUNTRYCODE "Landskod" -#define TR_VOICELANG "Röst-språk" +#define TR_VOICELANG "Röstspråk" #define TR_UNITSSYSTEM "Enheter" #define TR_EDIT "Redigera" #define TR_INSERT_BEFORE "Addera Före" @@ -717,11 +747,26 @@ #define TR_CHANNELRANGE INDENT "Kanalområde" #define TR_LOWALARM INDENT "Låg-alarm" #define TR_CRITICALALARM INDENT "Kritiskt alarm" +#define TR_ENABLE_POPUP "Slå på Dialog" +#define TR_DISABLE_POPUP "Slå av Dialog" +#define TR_CURVE_PRESET "Lutning..." +#define TR_PRESET "Lutning" +#define TR_MIRROR "Spegla" +#define TR_CLEAR "Töm" +#define TR_RESET "Nollställ" +#define TR_COUNT "Antal" +#define TR_PT "pt" +#define TR_PTS "pts" +#define TR_SMOOTH "Mjuk" +#define TR_COPY_TRIMS_TO_OFS "Spara trimmar som offset" #define TR_PERSISTENT_MAH INDENT "Lagra mAh" #define TR_PREFLIGHT "Startkontroller" #define TR_CHECKLIST INDENT "Visa checklisa" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serieporten" +#define TR_SCRIPT "Script" +#define TR_INPUTS "Inputs" +#define TR_OUTPUTS "Outputs" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" @@ -750,9 +795,9 @@ #endif // Taranis column headers -#define TR_PHASES_HEADERS { " Namn ", " Brytare ", " Trimmar ", " Tona Upp ", " Tona Ned " } +#define TR_PHASES_HEADERS { " Namn ", " Brytare ", " Rodertrim ", " Höjdrodertrim ", " Gastrim ", " Skevrodertrim ", " Tona Upp ", " Tona Ned " } #define TR_LIMITS_HEADERS { " Namn ", " Offset ", " Min ", " Max ", " Riktning ", " PPM-centrum ", " Symmetriskt " } -#define TR_CSW_HEADERS { " Funktion ", " V1 ", " V2 ", " V2 ", " AND Brytare ", " Tidslängd ", " Fördröj " } +#define TR_CSW_HEADERS { " Funktion ", " V1 ", " V2 ", " V2 ", " OCH Brytare ", " Tidslängd ", " Fördröj " } // About screen #define TR_ABOUTUS "Om Oss" @@ -796,6 +841,7 @@ #define TR_ABOUT_HARDWARE_3 "" #endif + #define TR_ABOUT_PARENTS_1 "Ursprungsprojekt" #define TR_ABOUT_PARENTS_2 "ersky9x (Mike Blandford)" #define TR_ABOUT_PARENTS_3 "ER9X (Erez Raviv)" @@ -814,5 +860,8 @@ #define TR_TOP_BAR "Top Bar" #define TR_ALTITUDE INDENT "Höjd" +#define TR_SCALE "Skala" +#define TR_VIEW_CHANNELS "Visa Kanaler" +#define TR_VIEW_NOTES "Visa Noteringars" #define TR_MODS_FORBIDDEN "Modifikationer förbjudna!" #define TR_UNLOCKED "Olåst" diff --git a/radio/util/addtr.py b/radio/util/addtr.py index 2c4a45858..d62623e88 100644 --- a/radio/util/addtr.py +++ b/radio/util/addtr.py @@ -2,11 +2,7 @@ import sys, glob -string = sys.argv[1] -translation = sys.argv[2] -after = sys.argv[3] - -def addLine(filename, newline): +def addLine(filename, newline, after): print filename, newline lines = file(filename, 'r').readlines() for i, line in enumerate(lines): @@ -15,22 +11,27 @@ def addLine(filename, newline): break file(filename, 'w').writelines(lines) -def modifyTranslations(): - for filename in ['translations/en.h'] + glob.glob('translations/*.h.txt'): - newline = "#define " + string + " "*(23-len(string)) + '"' + translation + '"' - addLine(filename, newline) +def modifyTranslations(constant, translation, after): + for filename in glob.glob('translations/*.h.txt'): + newline = "#define " + constant + " "*(23-len(constant)) + '"' + translation + '"' + addLine(filename, newline, after+" ") -def modifyDeclaration(): - newline = "extern const pm_char S" + string + "[];" +def modifyDeclaration(constant, after): + newline = "extern const pm_char S" + constant + "[];" filename = "translations.h" - addLine(filename, newline) + addLine(filename, newline, after+"[];") -def modifyDefinition(): - newline = "const pm_char S" + string + "[] PROGMEM = " + string + ";" +def modifyDefinition(constant, after): + newline = "const pm_char S" + constant + "[] PROGMEM = " + constant + ";" filename = "translations.cpp" - addLine(filename, newline) + addLine(filename, newline, after+"[] ") -modifyTranslations() -modifyDeclaration() -modifyDefinition() + +after = sys.argv[-1] +for arg in sys.argv[1:-1]: + constant, translation = arg.split("=") + modifyTranslations(constant, translation, after) + modifyDeclaration(constant, after) + modifyDefinition(constant, after) + after = constant diff --git a/sound/.gitignore b/sound/.gitignore new file mode 100644 index 000000000..61c209432 --- /dev/null +++ b/sound/.gitignore @@ -0,0 +1 @@ +*.suo diff --git a/sound/OpenTXSound.sln b/sound/OpenTXSound.sln new file mode 100644 index 000000000..e31aff4ab --- /dev/null +++ b/sound/OpenTXSound.sln @@ -0,0 +1,26 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual C# Express 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXRecorder", "recorder\OpenTXRecorder.csproj", "{8143D08D-1861-42DD-A861-56B15DE42A69}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenTXspeaker", "speaker\OpenTXspeaker.csproj", "{BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8143D08D-1861-42DD-A861-56B15DE42A69}.Debug|x86.ActiveCfg = Debug|x86 + {8143D08D-1861-42DD-A861-56B15DE42A69}.Debug|x86.Build.0 = Debug|x86 + {8143D08D-1861-42DD-A861-56B15DE42A69}.Release|x86.ActiveCfg = Release|x86 + {8143D08D-1861-42DD-A861-56B15DE42A69}.Release|x86.Build.0 = Release|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Debug|x86.ActiveCfg = Debug|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Debug|x86.Build.0 = Debug|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Release|x86.ActiveCfg = Release|x86 + {BB2C7ECA-B4B9-4957-B7D9-B0C7817CA148}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/sound/recorder/.gitignore b/sound/recorder/.gitignore new file mode 100644 index 000000000..e307eca41 --- /dev/null +++ b/sound/recorder/.gitignore @@ -0,0 +1,4 @@ +/OpenTXrecorder.suo +/bin/* +/obj/* +*.csproj.user diff --git a/sound/recorder/App.xaml b/sound/recorder/App.xaml new file mode 100644 index 000000000..bc0c857b7 --- /dev/null +++ b/sound/recorder/App.xaml @@ -0,0 +1,8 @@ + + + + + diff --git a/sound/recorder/App.xaml.cs b/sound/recorder/App.xaml.cs new file mode 100644 index 000000000..43d50882a --- /dev/null +++ b/sound/recorder/App.xaml.cs @@ -0,0 +1,32 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Windows; + +namespace OpenTXrecorder +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } +} diff --git a/sound/recorder/GPLv3_Logo.png b/sound/recorder/GPLv3_Logo.png new file mode 100644 index 000000000..ba78d4c49 Binary files /dev/null and b/sound/recorder/GPLv3_Logo.png differ diff --git a/sound/recorder/MainWindow.xaml b/sound/recorder/MainWindow.xaml new file mode 100644 index 000000000..ce3423f90 --- /dev/null +++ b/sound/recorder/MainWindow.xaml @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sound/recorder/MainWindow.xaml.cs b/sound/recorder/MainWindow.xaml.cs new file mode 100644 index 000000000..8578fd9e2 --- /dev/null +++ b/sound/recorder/MainWindow.xaml.cs @@ -0,0 +1,244 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + + +using System; +using System.IO; +using System.Collections.Generic; +using System.Linq; +using System.Media; +using System.Threading; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; +using System.Windows.Navigation; +using System.Runtime.InteropServices; + +namespace OpenTXrecorder +{ + public partial class MainWindow : Window + { + [DllImport("winmm.dll", EntryPoint = "mciSendStringA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)] + private static extern int mciSendString(string lpstrCommand, string lpstrReturnString, int uReturnLength, int hwndCallback); + + SentenceTables tables = new SentenceTables(); + Languages languages = new Languages(); + Language curLang; + Sentences sentences = new Sentences(); + int added_files = 0; + bool isRecording = false; + + public MainWindow() + { + SplashScreen splash = new SplashScreen("recorder_logo.png"); + splash.Show(true); + Thread.Sleep(1500); + + InitializeComponent(); + + lvSentences.ItemsSource = sentences; + cbLanguages.ItemsSource = languages; + languages.Add("English", "en"); + languages.Add("Czech", "cz"); + languages.Add("German", "de"); + languages.Add("French", "fr"); + languages.Add("Italian", "it"); + languages.Add("Polish", "pl"); + languages.Add("Portuguese", "pt"); + languages.Add("Swedish", "se"); + languages.Add("Slovak", "sk"); + languages.Add("Spanish", "es"); + curLang = languages[0]; + cbLanguages.SelectedIndex = 0; // Note: Sets current langugage -> triggers loadlanguage() + } + + private void loadLanguage() + { + string[] system_strings; + string[] other_strings; + + try + { + system_strings = System.IO.File.ReadAllLines(@"SOUNDS\" + curLang.sName + @"\SYSTEM\system_sounds.txt"); + other_strings = System.IO.File.ReadAllLines(@"SOUNDS\" + curLang.sName + @"\other_sounds.txt"); + } + catch (IOException) + { + system_strings = tables.default_system_strings[tables.toInt(curLang.sName)]; + other_strings = tables.default_other_strings[tables.toInt(curLang.sName)]; + } + sentences.RemoveRange(0, sentences.Count); + + foreach (string str in system_strings) + sentences.Add(str, @"SOUNDS\" + curLang.sName + @"\SYSTEM\"); + + sentences.Add(@";^ System Sounds ^;", ""); + + foreach (string str in other_strings) + sentences.Add(str, @"SOUNDS\" + curLang.sName + @"\"); + + lvSentences.Items.Refresh(); // Workaround - Two way binding is better + } + + private void saveLanguage() + { + System.IO.Directory.CreateDirectory(@"SOUNDS\" + curLang.sName + @"\SYSTEM"); + StreamWriter sw = File.CreateText(@"SOUNDS\" + curLang.sName + @"\SYSTEM\system_sounds.txt"); + int i; + for (i = 0; sentences[i].fileName != ""; i++) + { + sw.WriteLine(sentences[i].toRaw()); + } + sw.Close(); + sw = File.CreateText(@"SOUNDS\" + curLang.sName + @"\other_sounds.txt"); + for (i++; i < sentences.Count; i++) + { + sw.WriteLine(sentences[i].toRaw()); + } + sw.Close(); + } + + private void cbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e) + { + curLang = (Language)e.AddedItems[0]; + loadLanguage(); + } + + private void lvSentences_MouseDoubleClick(object sender, MouseButtonEventArgs e) + { + if (this.lvSentences.SelectedItems.Count < 1) return; + + Sentence sentence = (Sentence)this.lvSentences.SelectedItem; + if (sentence.fileExists) + { + try + { + SoundPlayer player = new SoundPlayer(sentence.fullPath()); + player.Play(); + } + catch (Exception) { }; // Catch and disregard all media exceptions + } + } + + private void openTXLogo_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) + { + AboutWindow aboutWindow = new AboutWindow(); + aboutWindow.ShowDialog(); + } + + private void buttonAddItem_Click(object sender, RoutedEventArgs e) + { + added_files++; + sentences.Add(new Sentence("new_file_" + added_files.ToString() + ";New Description;New Voice Message", @"SOUNDS\" + curLang.sName + @"\")); + this.lvSentences.Items.Refresh(); + this.lvSentences.SelectedIndex = this.lvSentences.Items.Count - 1; + this.lvSentences.ScrollIntoView(this.lvSentences.SelectedItem); + } + + private void btnRecord_Click(object sender, RoutedEventArgs e) + { + if (this.lvSentences.SelectedItems.Count < 1) return; + + if (isRecording) + btnStop_Click(sender, e); + else + { + saveLanguage(); + isRecording = true; + lblRecording.Visibility = System.Windows.Visibility.Visible; + Sentence sentence = (Sentence)this.lvSentences.SelectedItem; + string path = sentence.fullPath(); + Directory.CreateDirectory(Path.GetDirectoryName(path)); // Create directory if it doesn't exist + System.IO.File.WriteAllText(path, ""); // Creates and flushes a file if it does not exist + + mciSendString("open new Type waveaudio Alias recsound", "", 0, 0); + mciSendString("record recsound", "", 0, 0); + } + } + + private void btnStop_Click(object sender, RoutedEventArgs e) + { + if (this.lvSentences.SelectedItems.Count < 1) return; + + int index = this.lvSentences.SelectedIndex; + lblRecording.Visibility = System.Windows.Visibility.Hidden; + isRecording = false; + Sentence sentence = (Sentence)this.lvSentences.SelectedItem; + mciSendString("save recsound " + sentence.fullPath(), "", 0, 0); + mciSendString("close recsound ", "", 0, 0); + + loadLanguage(); // Called to refresh the sentence data of the current langugae + this.lvSentences.SelectedIndex = index; + } + + private void btnPlay_Click(object sender, RoutedEventArgs e) + { + lblRecording.Visibility = System.Windows.Visibility.Hidden; + lvSentences_MouseDoubleClick(sender, null); + } + } + + public class Language + { + public string lName { get; set; } + public string sName { get; set; } + } + + public class Languages : List + { + public void Add(string longer, string shorter) + { + this.Add(new Language { lName = longer, sName = shorter }); + } + } + + public class Sentence + { + public string fileName { get; set; } + public string description { get; set; } + public string voiceString { get; set; } + public string path { get; set; } + public bool fileExists { get; set; } + + public Sentence(string rawString, string dirPath) + { + string[] words = rawString.Split(';'); + fileName = words[0].TrimStart(' ', '\"'); + description = words[1]; + voiceString = words[2].TrimEnd('\"', ',', ' '); + path = dirPath; + fileExists = File.Exists(fullPath()); + } + + public string fullPath() + { + return System.AppDomain.CurrentDomain.BaseDirectory + path + fileName + ".wav"; + } + + public string toRaw() + { + return "\"" + fileName + ";" + description + ";" + voiceString + "\","; + } + } + + public class Sentences : List + { + public void Add(string rawString, string dirPath) + { + this.Add(new Sentence(rawString, dirPath)); + } + } +} diff --git a/sound/recorder/OpenTXRecorder.csproj b/sound/recorder/OpenTXRecorder.csproj new file mode 100644 index 000000000..74a04e914 --- /dev/null +++ b/sound/recorder/OpenTXRecorder.csproj @@ -0,0 +1,169 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {8143D08D-1861-42DD-A861-56B15DE42A69} + WinExe + Properties + OpenTXrecorder + OpenTXrecorder + v4.0 + Client + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + false + publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 0 + 1.0.0.%2a + false + true + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + icon.ico + + + + + + + + + + + + 4.0 + + + + + + + + MSBuild:Compile + Designer + + + AboutWindow.xaml + + + App.xaml + + + + MSBuild:Compile + Designer + + + MainWindow.xaml + Code + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + + + + + False + Microsoft .NET Framework 4 Client Profile %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 Client Profile + false + + + False + .NET Framework 3.5 SP1 + false + + + False + Windows Installer 3.1 + true + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sound/recorder/Properties/AssemblyInfo.cs b/sound/recorder/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..d01499fd5 --- /dev/null +++ b/sound/recorder/Properties/AssemblyInfo.cs @@ -0,0 +1,71 @@ +/* This file is part of OpenTX Recorder. +* OpenTX Recorder is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. + +* OpenTX Recorder is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. + +* You should have received a copy of the GNU General Public License +* along with Foobar. If not, see . +* +* Copyright 2014 Kjell Kernen */ + +using System.Reflection; +using System.Resources; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenTX Recorder")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("OpenTX Team")] +[assembly: AssemblyProduct("OpenTX Recorder")] +[assembly: AssemblyCopyright("Copyright © Kjell Kernen 2014")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("0.1")] +[assembly: AssemblyFileVersion("0.1")] diff --git a/sound/recorder/Properties/Resources.Designer.cs b/sound/recorder/Properties/Resources.Designer.cs new file mode 100644 index 000000000..04f945574 --- /dev/null +++ b/sound/recorder/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenTXrecorder.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenTXrecorder.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + } +} diff --git a/speaker/Properties/Resources.resx b/sound/recorder/Properties/Resources.resx similarity index 100% rename from speaker/Properties/Resources.resx rename to sound/recorder/Properties/Resources.resx diff --git a/sound/recorder/Properties/Settings.Designer.cs b/sound/recorder/Properties/Settings.Designer.cs new file mode 100644 index 000000000..ffa4c812a --- /dev/null +++ b/sound/recorder/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.18444 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace OpenTXrecorder.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/speaker/Properties/Settings.settings b/sound/recorder/Properties/Settings.settings similarity index 100% rename from speaker/Properties/Settings.settings rename to sound/recorder/Properties/Settings.settings diff --git a/sound/recorder/aboutWindow.xaml b/sound/recorder/aboutWindow.xaml new file mode 100644 index 000000000..95e440614 --- /dev/null +++ b/sound/recorder/aboutWindow.xaml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/sound/recorder/aboutWindow.xaml.cs b/sound/recorder/aboutWindow.xaml.cs new file mode 100644 index 000000000..8e09efc76 --- /dev/null +++ b/sound/recorder/aboutWindow.xaml.cs @@ -0,0 +1,62 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; +using System.Windows.Navigation; + + +namespace OpenTXrecorder +{ + public partial class AboutWindow : Window + { + public AboutWindow() + { + InitializeComponent(); + Assembly app = Assembly.GetExecutingAssembly(); + + AssemblyTitleAttribute title = (AssemblyTitleAttribute)app.GetCustomAttributes(typeof(AssemblyTitleAttribute), false)[0]; + AssemblyProductAttribute product = (AssemblyProductAttribute)app.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]; + AssemblyCopyrightAttribute copyright = (AssemblyCopyrightAttribute)app.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; + AssemblyCompanyAttribute company = (AssemblyCompanyAttribute)app.GetCustomAttributes(typeof(AssemblyCompanyAttribute), false)[0]; + Version version = app.GetName().Version; + + this.Title = String.Format("About {0}", title.Title); + this.lblProductName.Content = product.Product; + this.lblVersion.Content = String.Format("Version {0}", version.ToString()); + this.lblCopyright.Content = copyright.Copyright.ToString(); + this.lblCompanyName.Content = company.Company; + } + + private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) + { + Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri)); + e.Handled = true; + } + } +} diff --git a/speaker/icon.ico b/sound/recorder/icon.ico similarity index 100% rename from speaker/icon.ico rename to sound/recorder/icon.ico diff --git a/sound/recorder/play.png b/sound/recorder/play.png new file mode 100644 index 000000000..15f2da559 Binary files /dev/null and b/sound/recorder/play.png differ diff --git a/sound/recorder/record.png b/sound/recorder/record.png new file mode 100644 index 000000000..7ee74f7fc Binary files /dev/null and b/sound/recorder/record.png differ diff --git a/sound/recorder/recorder_logo.png b/sound/recorder/recorder_logo.png new file mode 100644 index 000000000..5998c34d3 Binary files /dev/null and b/sound/recorder/recorder_logo.png differ diff --git a/sound/recorder/recorder_logo.xcf b/sound/recorder/recorder_logo.xcf new file mode 100644 index 000000000..5ac20d303 Binary files /dev/null and b/sound/recorder/recorder_logo.xcf differ diff --git a/sound/recorder/recorder_logo_small.png b/sound/recorder/recorder_logo_small.png new file mode 100644 index 000000000..b505a2f3c Binary files /dev/null and b/sound/recorder/recorder_logo_small.png differ diff --git a/sound/recorder/sentencetables.cs b/sound/recorder/sentencetables.cs new file mode 100644 index 000000000..46d30d921 --- /dev/null +++ b/sound/recorder/sentencetables.cs @@ -0,0 +1,2455 @@ +/* This file is part of OpenTX Recorder. + * OpenTX Recorder is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + + * OpenTX Recorder is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + + * You should have received a copy of the GNU General Public License + * along with Foobar. If not, see . + * + * Copyright 2014 Kjell Kernen */ + +using System; +using System.Collections.Generic; +using System.Configuration; +using System.Data; +using System.Linq; +using System.Windows; + +namespace OpenTXrecorder +{ + public class SentenceTables + { + private static string[] default_pl_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;;1000", + "0110;TISIACE;tisiace", + "0111;JEDNA;jedna", + "0112;JEDNO;jedno", + "0113;DWIE;dwie", + "0114;CALA;cela", + "0115;CALE;cale", + "0116;CALYCH;calych", + "0117;MINUS;minus", + + "0120;Female number;", + "0121;Female number;", + "0122;Female number;", + "0123;Female number;", + "0124;Female number;", + "0125;Female number;", + "0126;Female number;", + "0127;Female number;", + "0128;Female number;", + "0129;Female number;", + + "0160;volt 1;wolt", + "0161;volt 2;wolty", + "0162;volt 3;", + "0163;volt 4;", + "0164;amps 1;", + "0165;amps 2;", + "0166;amps 3;", + "0167;amps 4;", + "0168;mps 1;", + "0169;mps 2;", + "0170;mps 3;", + "0171;mps 4;", + "0172;spare 1;", + "0173;spare 2;", + "0174;spare 3;", + "0175;spare 4;", + "0176;kmh 1;", + "0177;kmh 2;", + "0178;kmh 3;", + "0179;kmh 4;", + "0180;meter 1;", + "0181;meter 2;", + "0182;meter 3;", + "0183;meter 4;", + "0184;degrees 1;", + "0185;degrees 2;", + "0186;degrees 3;", + "0187;degrees 4;", + "0188;percent 1;", + "0189;percent 2;", + "0190;percent 3;", + "0191;percent 4;", + "0192;milliamps 1;", + "0193;milliamps 2;", + "0194;milliamps 3;", + "0195;milliamps 4;", + "0196;mAh 1;", + "0197;mAh 2;", + "0198;mAh 3;", + "0199;mAh 4;", + "0200;watt 1;", + "0201;watt 2;", + "0202;watt 3;", + "0203;watt 4;", + "0204;db 1;", + "0205;db 2;", + "0206;db 3;", + "0207;db 4;", + "0208;feet 1;", + "0209;feet 2;", + "0210;feet 3;", + "0211;feet 4;", + "0212;knot 1;", + "0213;knot 2;", + "0214;knot 3;", + "0215;knot 4;", + "0216;hours 1;", + "0217;hours 2;", + "0218;hours 3;", + "0219;hours 4;", + "0220;minutes 1;", + "0221;minutes 2;", + "0222;minutes 3;", + "0223;minutes 4;", + "0224;secondds 1;", + "0225;secondds 2;", + "0226;secondds 3;", + "0227;secondds 4;", + "0228;rpm 1;", + "0229;rpm 2;", + "0230;rpm 3;", + "0231;rpm 4;", + "0232;g 1;", + "0233;g 2;", + "0234;g 3;", + "0235;g 4;", + "0250;Timer1;", + "0251;Timer2;", + "0252;RSSI Tx;", + "0253;RSSI Rx;", + "0254;A1;", + "0255;A2;", + "0256;Altitude;", + "0257;RPM;", + "0258;Fuel;", + "0259;T1;", + "0260;T2;", + "0261;Speed;", + "0262;Distance;", + "0263;GPS Altitude;", + "0264;LiPo Elements;", + "0265;LiPo Total;", + "0266;VFAS;", + "0267;Current;", + "0268;Consumption;", + "0269;Telemetry Power;", + "0270;Accel X;", + "0271;Accel Y;", + "0272;Accel Z;", + "0217;HDG;", + "0218;Vario;", + }; + + private static string[] default_pl_other_strings = + { + "atti;attitude;", + "batcrit;battery critical;", + "batlow;low battery;", + "camcenter;camera center;", + "camfix;camera fixed;", + "cammanual;camera manual;", + "flapsdn;flaps down;", + "flapsup;flaps up;", + "fltmode1;flight mode 1;", + "fltmode2;flight mode 2;", + "fltmode3;flight mode 3;", + "fltmode4;flight mode 4;", + "fltmode5;flight mode 5;", + "fltmode6;flight mode 6;", + "fltmode7;flight mode 7;", + "fltmode8;flight mode 8;", + "fltmode9;flight mode 9;", + "fsoff;failsafe off;", + "fson;failsafe on;", + "geardn;gear down;", + "gearup;gear upp;", + "gps;gps;", + "hirates;hi rates;", + "htoff;head tracker off;", + "hton;head tracker on;", + "ioc;ioc;", + "iocoff;ioc off;", + "lowrates;lowrates;", + "manual;manual;", + "normal;normal;", + "nrmmod;normal mode;", + "thrhold;throttle locked;", + "thrrel;throttle released;", + }; + + private static string[] default_sk_system_strings = + { + "0000;0;0", + "0001;1;jedna", + "0002;2;dva", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;1000;1000", + "0110;2000;dvetisíc;", + "0111;JEDEN;jeden", + "0112;JEDNO;jedno", + "0113;DVE;dve", + "0114;CELA;celá", + "0115;CELE;celá", + "0116;CELYCH;celýnch", + "0117;MINUS;minus", + "0118;volt 1;volt", + "0119;volt 2;volty", + "0120;volt 3;voltov", + "0121;volt 4;volta", + "0122;amps 1;ampér", + "0123;amps 2;ampére", + "0124;amps 3;ampérov", + "0125;amps 4;ampéra", + "0126;mps 1;meter za sekundu", + "0127;mps 2;metre za sekundu", + "0128;mps 3;metrov za sekundu", + "0129;mps 4;metra za sekundu", + "0130;spare 1;jednotka", + "0131;spare 2;jednotky", + "0132;spare 3;jednotiek", + "0133;spare 4;jednotky", + "0134;kmh 1;kilometer za hodinu", + "0135;kmh 2;kilometre za hodinu", + "0136;kmh 3;kilometrov za hodinu", + "0137;kmh 4;kilometra za hodinu", + "0138;meter 1;meter", + "0139;meter 2;metre", + "0140;meter 3;metrov", + "0141;meter 4;metra", + "0142;degrees 1;stupeň", + "0143;degrees 2;stupně", + "0144;degrees 3;stupňov", + "0145;degrees 4;stupňa", + "0146;percent 1;percento", + "0147;percent 2;percentá", + "0148;percent 3;percent", + "0149;percent 4;percenta", + "0150;milliamps 1;miliampér", + "0151;milliamps 2;miliampére", + "0152;milliamps 3;miliampérov", + "0153;milliamps 4;miliampéra", + "0154;mAh 1;miliampérhodina", + "0155;mAh 2;miliampérhodiny", + "0156;mAh 3;miliampérhodín", + "0157;mAh 4;miliampérhodiny", + "0158;watt 1;vat", + "0159;watt 2;vaty", + "0160;watt 3;vatov", + "0161;watt 4;vatu", + "0162;db 1;decibel", + "0163;db 2;decibely", + "0164;db 3;decibelov", + "0165;db 4;decibela", + "0166;feet 1;stopa", + "0167;feet 2;stopy", + "0168;feet 3;stuop", + "0169;feet 4;stopy", + "0170;knot 1;uzol", + "0171;knot 2;uzly", + "0172;knot 3;uzlov", + "0173;knot 4;uzla", + "0174;hours 1;hodina", + "0175;hours 2;hodiny", + "0176;hours 3;hodín", + "0177;hours 4;hodiny", + "0178;minutes 1;minůta", + "0179;minutes 2;minůty", + "0180;minutes 3;minůt", + "0181;minutes 4;minůty", + "0182;secondds 1;sekunda", + "0183;secondds 2;sekundy", + "0184;secondds 3;sekund", + "0185;secondds 4;sekundy", + "0186;rpm 1;otáčka za minůtu", + "0187;rpm 2;otáčky za minůtu", + "0188;rpm 3;otáčok za minůtu", + "0189;rpm 4;otáčky za minůtu", + "0190;g 1;gé", + "0191;g 2;gé", + "0192;g 3;gé", + "0193;g 4;gé", + "a1_org;a1 low;", + "a1_red;a1 critical;", + "a2_org;a2 low;", + "a2_red;a2 critical;", + "endtrim;maximum trim reached;", + "inactiv;inactivity alarm;", + "lowbatt;radio battery low;", + "midtrim;trim center;", + "rssi_org;rf signal low;", + "rssi_red;rf signal critical;", + "swalert;switch warning;", + "swr_red;radio antenna defective;", + "tada;Start Sound;", + "telemko;telemetry lost;", + "telemok;telemetry recover;", + "thralert;throttle warning;", + "timer10;10 seconds;", + "timer20;20 seconds;", + "timer30;30 seconds;", + "timerlt3;timer sound;" + }; + + private static string[] default_sk_other_strings = + { + "atti;attitude;", + "batcrit;battery critical;", + "batlow;low battery;", + "camcenter;camera center;", + "camfix;camera fixed;", + "cammanual;camera manual;", + "flapsdn;flaps down;", + "flapsup;flaps up;", + "fltmode1;flight mode 1;", + "fltmode2;flight mode 2;", + "fltmode3;flight mode 3;", + "fltmode4;flight mode 4;", + "fltmode5;flight mode 5;", + "fltmode6;flight mode 6;", + "fltmode7;flight mode 7;", + "fltmode8;flight mode 8;", + "fltmode9;flight mode 9;", + "fsoff;failsafe off;", + "fson;failsafe on;", + "geardn;gear down;", + "gearup;gear upp;", + "gps;gps;", + "hirates;hi rates;", + "htoff;head tracker off;", + "hton;head tracker on;", + "ioc;ioc;", + "iocoff;ioc off;", + "lowrates;lowrates;", + "manual;manual;", + "normal;normal;", + "nrmmod;normal mode;", + "thrhold;throttle locked;", + "thrrel;throttle released;" + }; + + private static string[] default_es_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;;ciento", + "0102;;doscientos", + "0103;;trescientos", + "0104;;cuatrocientos", + "0105;;quinientos", + "0106;;sescientos", + "0107;;setecientos", + "0108;;ochocientos", + "0109;;nuevecientos", + "0110;;mil", + "0111;;coma", + "0112;;un", + "0113;;una", + "0114;;y", + "0115;;meno", + "0116;;hora", + "0117;;horas", + "0118;;minuto", + "0119;;minutos", + "0120;;segundo", + "0121;;segundos", + "0122;;Voltio", + "0123;;ampério", + "0124;;metros por segundo", + "0125;;", + "0126;;kilómetro por hora", + "0127;;metros", + "0128;;grados", + "0129;;por ciento", + "0130;;miliamperios", + "0131;;miliamperios por hora", + "0132;;vatio", + "0133;;db", + "0134;;pés", + "0135;;nós", + "0136;;horas", + "0137;;minutos", + "0138;;segundos", + "0139;;RPM", + "0140;;g", + "0141;;cronómetro", + "0142;;cronómetro", + "0143;;transmisión", + "0144;;recepción", + "0145;;A1", + "0146;;A2", + "0147;;altitud", + "0148;;motor", + "0149;;combustible", + "0150;;temperatura", + "0151;;temperatura", + "0152;;velocidad", + "0153;;distancia", + "0154;;altitude", + "0155;;célula lipo", + "0156;;Total lipo", + "0157;;voltaje", + "0158;;corriente", + "0159;;consumo", + "0160;;potencia", + "0161;;aceleración X", + "0162;;aceleración Y", + "0163;;aceleración Z", + "0164;;dirección", + "0165;;variómetro", + "0166;;minimo", + "0167;;máximo", + "a1_org;;Alarma A1", + "a1_red;;A1 crítica", + "a2_org;;Alarma A2", + "a2_red;;A2 crítica", + "eebad;;eeprom corrompida", + "eeformat;;Formateo de eeprom en curso", + "endtrim;;trim al máximo", + "error;;error", + "highmah;;assorbimiento elevado", + "hightemp;;temperatura elevada", + "inactiv;;me tienes abandonada", + "lowbatt;;batería del transmisor baja", + "midpot;;potenciómetro centrado", + "midtrim;;trim centrado", + "rssi_org;;recepcion de señal baja", + "rssi_red;;recepción de señal crítica", + "swr_red;;Problemas con la antena del transmisor", + "swalert;;Los interruptores no están en la posición correcta, por favor corrijalo", + "tada;OpenTX Welcome sound;Bienvenida a OpenTX", + "telemko;;Sin telemetría", + "telemok;;Telemetría disponible", + "thralert;;El acelerador está activado, por favor, corrijalo", + "timer10;;10 segundos", + "timer20;;20 segundos", + "timer30;;30 segundos", + "timerlt3;;3 segundos" + }; + + private static string[] default_es_other_strings = + { + "attero;;aterrizaje", + "crowof;;crou, desligado", + "crowon;;crou, activo", + "engoff;;motor apagado", + "flapdn;;flaps abajo", + "flapup;;flaps arriba", + "fltmd1;;fase de vuelo 1", + "fltmd2;;fase de vuelo 2", + "fltmd3;;fase de vuelo 3", + "fltmd4;;fase de vuelo 4", + "fltmd5;;fase de vuelo 5", + "fltmd6;;fase de vuelo 6", + "fltmd7;;fase de vuelo 7", + "fltmd8;;fase de vuelo 8", + "fltmd9;;fase de vuelo 9", + "geardn;;tren abajo.", + "gearup;;tren arriba.", + "lowbat;;bateria baja", + "nrmmod;;modo de vuelo normal", + "spdmod;;modo de velocidad", + "thmmod;;modo de térmica", + "trnoff;;modo de entrenamiento deshabilitado", + "trnon;;modo de entrenamiento activado", + "tohigh;;muy alto", + "tolow;;muy bajo" + }; + + private static string[] default_pt_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;;cento", + "0102;;duzentos", + "0103;;trezentos", + "0104;;quatrocentos", + "0105;;quinhentos", + "0106;;seiscentos", + "0107;;setecentos", + "0108;;oitocentos", + "0109;;novecentos", + "0110;;mil", + "0111;;virgula", + "0112;;uma", + "0113;;duas", + "0114;;e", + "0115;;menos", + "0116;;hora", + "0117;;horas", + "0118;;minuto", + "0119;;minutos", + "0120;;segundo", + "0121;;segundos", + "0122;;Volt", + "0123;;ampére", + "0124;;metros por segundo", + "0125;;", + "0126;;quilômetros por hora", + "0127;;metros", + "0128;;graus", + "0129;;cento", + "0130;;miliamperes", + "0131;;miliamperes por hora", + "0132;;watt", + "0133;;db", + "0134;;pés", + "0135;;nós", + "0136;;horas", + "0137;;minutos", + "0138;;segundos", + "0139;;RPM", + "0140;;g", + "0141;;cronómetro", + "0142;;cronómetro", + "0143;;transmissão", + "0144;;recepção", + "0145;;A1", + "0146;;A2", + "0147;;altitude", + "0148;;motor", + "0149;;combustível", + "0150;;temperatura", + "0151;;temperatura", + "0152;;velocidade", + "0153;;distância", + "0154;;altitude", + "0155;;célula lipo", + "0156;;Total lipo", + "0157;;tensão", + "0158;;corrente", + "0159;;consumo", + "0160;;potência", + "0161;;aceleração X", + "0162;;aceleração Y", + "0163;;aceleração Z", + "0164;;Direcção", + "0165;;variómetro", + "0166;;mínimo", + "0167;;máximo", + "a1_org;;Alarme A1", + "a1_red;;A1 critica", + "a2_org;;Alarme A2", + "a2_red;;A2 critica", + "eebad;;eeprom corrompida", + "eeformat;;formatação da eeprom em curso", + "endtrim;;trim no máximo", + "error;;erro", + "highmah;;assorbimento elevato", + "hightemp;;temperatura elevata", + "inactiv;;atenção, o rádio foi esquecido ligado, por favor desligue-o", + "midtrim;;trim centrado", + "midpot;;potenciómetro centrado", + "lowbatt;;bateria do rádio fraca", + "rssi_org;;recepção de sinal muito baixa", + "rssi_red;;recepção de sinal crítica", + "swalert;;atenção, certifique-se que os interruptores estão na posição certa", + "swr_red;;Problema com a antena do transmissor", + "tada;;Bem-vindo ao OpenTX", + "thralert;;atenção,acelerador não está no mínimo", + "timer10;;10 segundos", + "timer20;;20 segundos", + "timer30;;30 segundos", + "timerlt3;;três segundo" + }; + + private static string[] default_pt_other_strings = + { + "attero;;aterragem", + "crowof;;crou, desligado", + "crowon;;crou, activo", + "engoff;;motor desligado", + "flapdn;;flaps estendidos", + "flapup;;flaps recolhidos", + "fltmd1;;fase de voo 1", + "fltmd2;;fase de voo 2", + "fltmd3;;fase de voo 3", + "fltmd4;;fase de voo 4", + "fltmd5;;fase de voo 5", + "fltmd6;;fase de vôo 6", + "fltmd7;;fase de voo 7", + "fltmd8;;fase de voo 8", + "fltmd9;;fase de voo 9", + "geardn;;trem, em baixo.", + "gearup;;trem, em cima.", + "lowbat;;bateria fraca", + "nrmmod;;modo de voo normal", + "sigcrt;;sinal crítico", + "siglow;;sinal baixo", + "spdmod;;modo de velocidade", + "thmmod;;modo de térmica", + "trnoff;;modo de treino desligado", + "trnon;;modo de treino ligado", + "tohigh;;muito alto", + "tolow;;muito baixo" + }; + + private static string[] default_cz_system_strings = + { + "0000;0;nula", + "0001;1;jedna", + "0002;2;dva", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;;sto", + "0101;;dvěsta", + "0102;;třista", + "0103;;čtyřista", + "0104;;pětset", + "0105;;šestset", + "0106;;sedmset", + "0107;;osmset", + "0108;;devětset", + "0109;;tisíc", + "0110;;tisíce", + "0111;;jeden", + "0112;;jedno", + "0113;;dvě", + "0114;;celá", + "0115;;celé", + "0116;;celých", + "0117;;mínus", + "0118;;volt", + "0119;;volty", + "0120;;voltů", + "0121;;voltu", + "0122;;ampér", + "0123;;ampéry", + "0124;;ampérů", + "0125;;ampéru", + "0126;;metr za sekundu", + "0127;;metry za sekundu", + "0128;;metrů za sekundu", + "0129;;metru za sekundu", + "0130;;jednotka", + "0131;;jednotky", + "0132;;jednotek", + "0133;;jednotky", + "0134;;kilometr za hodinu", + "0135;;kilometry za hodinu", + "0136;;kilometrů za hodinu", + "0137;;kilometru za hodinu", + "0138;;metr", + "0139;;metry", + "0140;;metrů", + "0141;;metru", + "0142;;stupeň", + "0143;;stupně", + "0144;;stupňů", + "0145;;stupně", + "0146;;procento", + "0147;;procenta", + "0148;;procento", + "0149;;procenta", + "0150;;miliampér", + "0151;;miliampéry", + "0152;;miliampérů", + "0153;;miliampéru", + "0154;;miliampérhodina", + "0155;;miliampérhodiny", + "0156;;miliampérhodin", + "0157;;miliampérhodiny", + "0158;;vat", + "0159;;vaty", + "0160;;vatů", + "0161;;vatu", + "0162;;decibel", + "0163;;decibely", + "0164;;decibelů", + "0165;;decibelu", + "0166;;stopa", + "0167;;stopy", + "0168;;stop", + "0169;;stopy", + "0170;;uzel", + "0171;;uzly", + "0172;;uzlů", + "0173;;uzlu", + "0174;;hodina", + "0175;;hodiny", + "0176;;hodin", + "0177;;hodiny", + "0178;;minuta", + "0179;;minuty", + "0180;;minut", + "0181;;minuty", + "0182;;sekunda", + "0183;;sekundy", + "0184;;sekund", + "0185;;sekundy", + "0186;;otáčka za minutu", + "0187;;otáčky za minutu", + "0188;;otáček za minutu", + "0189;;otáčky za minutu", + "0190;;gé", + "0191;;gé", + "0192;;gé", + "0193;;gé", + "a1_org;;A1,nízká", + "a1_red;;A1,kritická", + "a2_org;;A2,nízká", + "a2_red;;A2,kritická", + "eebad;;neplatná eeprom", + "endtrim;;maximum trimu", + "inactiv;;zapoměl jsi na mě!", + "lowbatt;;baterie rádia je vybitá", + "midtrim;;střed trimu", + "rssi_org;;nízký RF signál", + "rssi_red;;kritický RF signál", + "swalert;;přepínače nejsou ve výchozí poloze", + "swr_red;;problém s anténou rádia", + "tada;;Oupn najn iks", + "telemko;;telemetrie ztracena", + "telemok;;telemetrie je funkční", + "thralert;;plyn není na nule", + "timer10;;deset sekund", + "timer20;;dvacet sekund", + "timer30;;třicet sekund", + "timerlt3;;tři sekund!" + }; + + private static string[] default_cz_other_strings = + { + "bytvybita;;baterie modelu je vybitá", + "klapky0;;klapky jsou vypnuty", + "klapky1;;klapky jsou zapnuty", + "ksignal;;kritický signál!", + "motor0;;motor je vypnut", + "motor1;;motor je aktivován", + "nizko;;jsi příliš nízko", + "nsignal;;nízký signál!", + "palivo;;dochází palivo", + "podvozek0;;podvozek je zasunut", + "podvozek1;;podvozek je vysunut", + "r_norm;;normální režim aktivován", + "r_pristani;;režim přistání aktivován", + "r_rychly;;rychlý režim aktivován", + "r_start;;režim start aktivován", + "r_termik;;termický režim aktivován", + "stpovolen;;start povolen", + "trener0;;trenér je vypnutý", + "trener1;;trenér je zapnut", + "vario0;;vario je zapnuto", + "vario1;;vario je vypnuto", + "vysoko;;jsi příliš vysoko" + }; + + private static string[] default_en_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;thousand;thousand", + "0111;minus;minus", + "0112;point;point", + "0115;volt;volt", + "0116;volts;volts", + "0117;amp;ampere", + "0118;amps;ampere", + "0119;meter per second;meter per second", + "0120;meters per second;meters per second", + "0123;kmh;k-m-h", + "0124;kmh;k-m-h", + "0125;meter;meter", + "0126;meters;meters", + "0127;degree;degree", + "0128;degrees;degrees", + "0129;percent;percent", + "0130;percent;percent", + "0131;milliamp;milliamp", + "0132;milliamps;milliamps", + "0133;mah;m-a-h", + "0134;mah;m-a-h", + "0135;watt;watt", + "0136;watts;watts", + "0137;db;db", + "0138;db;db", + "0140;feet;feet", + "0141;knot;knot", + "0142;knots;knots", + "0143;hour;hour", + "0144;hours;hours", + "0145;minute;minute", + "0146;minutes;minutes", + "0147;second;second", + "0148;seconds;seconds", + "0149;rpm;r-p-m", + "0150;rpm;r-p-m", + "0151;g;gee", + "0152;g;gees", + "0160;point zero;point zero", + "0161;point one;point one", + "0162;point two;point two", + "0163;point three;point three", + "0164;point four;point four", + "0165;point five;point five", + "0166;point six;point six", + "0167;point seven;point seven", + "0168;point eight;point eight", + "0169;point nine;point nine", + "a1_org;a1 low;a1 low", + "a1_red;a1 critical;a1 critical", + "a2_org;a2 low;a2 low", + "a2_red;a2 critical;a2 critical", + "endtrim;maximum trim reached;maximum trim reached", + "inactiv;inactivity alarm;inactivity alarm", + "lowbatt;radio battery low;radio battery low", + "midtrim;trim center;center", + "rssi_org;rf signal low;rf signal low", + "rssi_red;rf signal critical;rf signal critical", + "swalert;switch warning;switch warning", + "swr_red;radio antenna defective;radio antenna defective", + "tada;Start Sound;welcome to open T-X", + "telemko;telemetry lost;telemetry lost", + "telemok;telemetry recover;telemetry recover", + "thralert;throttle warning;throttle warning", + "timer10;10 seconds;10 seconds", + "timer20;20 seconds;20 seconds", + "timer30;30 seconds;30 seconds", + "timerlt3;timer sound;3 seconds" + }; + + private static string[] default_en_other_strings = + { + "atti;attitude;attitude", + "batcrit;battery critical;battery critical", + "batlow;low battery;low battery", + "camcenter;camera center;camera center", + "camfix;camera fixed;camera fixed", + "cammanual;camera manual;camera manual", + "capacity;capacity;capacity", + "engdis;engine disabled;engine disabled", + "engoff;engine off;engine off", + "engon;engine on;engine on", + "flaps1;flaps 1;flaps 1", + "flaps2;flaps 2;flaps 2", + "flapsdn;flaps down;flaps down", + "flapsup;flaps up;flaps up", + "fltmode1;flight mode one;flight mode one", + "fltmode2;flight mode two;flight mode two", + "fltmode3;flight mode three;flight mode three", + "fltmode4;flight mode four;flight mode four", + "fltmode5;flight mode five;flight mode five", + "fltmode6;flight mode six;flight mode six", + "fltmode7;flight mode seven;flight mode seven", + "fltmode8;flight mode eight;flight mode eight", + "fsoff;failsafe off;failsafe off", + "fson;failsafe on;failsafe on", + "geardn;gear down;gear down", + "gearup;gear upp;gear upp", + "gps;gps;G-P-S", + "horn;horn sound;eeeeeeeee", + "hirates;hi rates;hi rates", + "htoff;head tracker off;head tracker off", + "hton;head tracker on;head tracker on", + "ioc;ioc;ioc", + "iocoff;ioc off;ioc off", + "lowrates;lowrates;lowrates", + "manual;manual;manual", + "normal;normal;normal", + "nrmmod;normal mode;normal mode", + "pouet;small horn;ee , ee", + "shutter;camera shutter sound;klick", + "thrhold;throttle locked;throttle locked", + "thrrel;throttle released;throttle released", + "wizz;wizzing sound;shiss" + }; + + private static string[] default_se_system_strings = + { + "0000;0;0", + "0001;1;en", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;tjugoen", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;trettioen", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;fyrtioen", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;femtioen", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;sextioen", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;sjuttioen", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;åttioen", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;nittioen", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;thousand;tusen", + "0111;minus;minus", + "0112;point;komma", + "0115;volt;volt", + "0116;volts;volt", + "0117;amp;ampere", + "0118;amps;ampere", + "0119;meter per second;meter per sekund", + "0120;meters per second;meter per sekund", + "0123;kmh;kilometer i timmen", + "0124;kmh;kilometer i timmen", + "0125;meter;meter", + "0126;meters;meter", + "0127;degree;grad", + "0128;degrees;grader", + "0129;percent;procent", + "0130;percent;procent", + "0131;milliamp;milliampere", + "0132;milliamps;milliampere", + "0133;mah;milliampere-timme", + "0134;mah;milliampere-timmar", + "0135;watt;watt", + "0136;watts;watt", + "0137;db;dessibell", + "0138;db;dessibell", + "0140;feet;fot", + "0141;knot;knop", + "0142;knots;knop", + "0143;hour;timme", + "0144;hours;timmar", + "0145;minute;minut", + "0146;minutes;minuter", + "0147;second;sekund", + "0148;seconds;sekunder", + "0149;rpm;varv i minuten", + "0150;rpm;varv i minuten", + "0151;g;g", + "0152;g;g", + "0160;point zero;komma noll", + "0161;point one;komma en", + "0162;point two;komma två", + "0163;point three;komma tre", + "0164;point four;komma fyra", + "0165;point five;komma fem", + "0166;point six;komma sex", + "0167;point seven;komma sju", + "0168;point eight;komma åtta", + "0169;point nine;komma nio", + "a1_org;a1 low;a1 låg", + "a1_red;a1 critical;a1 kritisk", + "a2_org;a2 low;a2 låg", + "a2_red;a2 critical;a2 kritisk", + "endtrim;maximum trim reached;maximum trim", + "inact;inactivity alarm;inaktivitets-larm", + "lowbat;radio battery low;Låg radiobatterispänning", + "midtrim;trim center;center", + "rssi_org;rf signal low;Svag radio-signal", + "rssi_red;rf signal critical;Kritisk radio-signal", + "swalert;switch warning;brytar-varning", + "swr_red;;radio-antennen är defekt", + "tada;;Välkommen till open Te Ex", + "telemko;;telemetri förlorad", + "telemok;;telemetri åter", + "thralert;;gas-varning", + "timer10;;10 sekunder", + "timer20;;20 sekunder", + "timer30;;30 sekunder", + "timerlt3;timer sound;3 sekunder" + }; + + private static string[] default_se_other_strings = + { + "atti;;lutning", + "batcrit;;kritisk batteri-nivå", + "batlow;;låg batteri-nivå", + "camcenter;;kamera centrerad", + "cammanual;;manuell kamera-kontroll", + "capacity;;kapacitet", + "engdis;;motor säkrad", + "engoff;;motor avslagen", + "engon;;motor på", + "flaps1;;flaps läge, ett", + "flaps2;;flaps läge två", + "flapsdn;;flaps ned", + "flapsup;;flaps upp", + "fltmode1;;flyg-läge, ett", + "fltmode2;;flyg-läge två", + "fltmode3;;flyg-läge tre", + "fltmode4;;flyg-läge fyra", + "fltmode5;;flyg-läge fem", + "fltmode6;;flyg-läge sex", + "fltmode7;;flyg-läge sju", + "fltmode8;;flyg-läge åtta", + "fsoff;;fäjlsäif avslagen", + "fson;;fäjlsäif på", + "geardn;;landningsställ ned", + "gearup;;landningsställ upp", + "gps;;GPS", + "hirates;;höga nivåer", + "htoff;;head tracker avslagen", + "hton;;head tracker på", + "horn;horn sound;eeeeeeeee", + "ioc;;i o c", + "iocoff;;i o c avslagen", + "lowrates;;låga nivåer", + "manual;;manuell", + "normal;;normal", + "nrmmod;;normalt läge", + "pouet;small horn;ee , ee", + "shutter;camera shutter sound;klick", + "thrhold;;gas säkrad", + "thrrel;;gas osäkrad", + "speed;;hastighet", + "start;;start", + "thermal;;termik", + "wizz;wizzing sound;shiss" + }; + + private static string[] default_it_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;mila;mila", + "0102;mille;mille", + "0103;virgola;virgola", + "0104;un;un", + "0105;e;e", + "0106;meno;meno", + "0107;ora;ora", + "0108;ore;ore", + "0109;minuto;minuto", + "0110;minuti;minuti", + "0111;secondo;secondo", + "0112;secondi;secondi", + "0113;;volt", + "0114;;ampere", + "0115;;metri per secondo", + "0116;;", + "0117;;chilometri/ora", + "0118;;metri", + "0119;;gradi", + "0120;;percento", + "0121;;milliampere", + "0122;;milliampere/ora", + "0123;;watt", + "0124;;db", + "0125;;piedi", + "0126;;nodi", + "0127;;ore", + "0128;;minuti", + "0129;;secondi", + "0130;;R P M", + "0131;;g", + "0132;;timer", + "0133;;timer", + "0134;;trasmissione", + "0135;;ricezione", + "0136;;A1", + "0137;;A2", + "0138;;altitudine", + "0139;;motore", + "0140;;carburante", + "0141;;temperatura", + "0142;;temperatura", + "0143;;velocità", + "0144;;distanza", + "0145;;altitudine", + "0146;;cella lipo", + "0147;;totale lipo", + "0148;;tensione", + "0149;;corrente", + "0150;;consumo", + "0151;;potenza", + "0152;;accellerazione X", + "0153;;accellerazione Y", + "0154;;accellerazione Z", + "0155;;direzione", + "0156;;variometro", + "0157;;minimo", + "0158;;massimo", + "a1_org;A1 in allarme;A1 in allarme", + "a1_red;A1 critico;A1 critico", + "a2_org;A2 in allarme;A2 in allarme", + "a2_red;A2 critico;A2 critico", + "eebad;eeprom corrotta;eeprom corrotta", + "eeformat;formattazone eeprom in corso;formattazone eeprom in corso", + "endtrim;massimo trim raggiunto;massimo trim raggiunto", + "error;errore;errore", + "highmah;assorbimento elevato;assorbimento elevato", + "hightemp;temperatura elevata;temperatura elevata", + "inactiv;radio inattiva controllare;radio inattiva controllare", + "lowbatt;batteria della radio scarica;batteria della radio scarica", + "midpot;potenziometro centrato;potenziometro centrato", + "midtrim;trim centrato;trim centrato", + "rssi_org;Segnale radio basso;Segnale radio basso", + "rssi_red;Segnale radio critico;Segnale radio critico", + "swalert;interruttori non in posizione, verificare;interruttori non in posizione, verificare", + "swr_red;Problema all'antenna della radio;Problema all'antenna della radio", + "tada;;Benvenuto", + "telemko;Telemetria assente;Telemetria assente", + "telemok;Telemetria disponibile;Telemetria disponibile", + "thralert;controllo motore non in posizione, verificare;controllo motore non in posizione, verificare", + "timer10;dieci secondi;dieci secondi", + "timer20;venti secondi;venti secondi", + "timer30;trenta secondi;trenta secondi", + "timerlt3;timer sound;3 secondi" + }; + + private static string[] default_it_other_strings = + { + "attero;;atterraggiio", + "crowof;;crow off", + "crowon;;crow on", + "engoff;;motore spento", + "flapdn;;flap estesi", + "flapup;;flap rientrati", + "fltmd1;;fase di volo 1", + "fltmd2;;fase di volo 2", + "fltmd3;;fase di volo 3", + "fltmd4;;fase di volo 4", + "fltmd5;;fase di volo 5", + "fltmd6;;fase di volo 6", + "fltmd7;;fase di volo 7", + "fltmd8;;fase di volo 8", + "fltmd9;;fase di volo 9", + "geardn;;carrello aperto", + "gearup;;carrello chiuso", + "gps;;GPS", + "lowbat;;batteria scarica", + "nrmmod;;modo volo normale", + "spdmod;;modo velocità", + "thmmod;;modo termica", + "tohigh;;troppo alto", + "tolow;;troppo basso", + "trnoff;;modalità maestro disattiva", + "trnon;;modalità maestro attiva" + }; + + private static string[] default_de_system_strings = + { + "0000;0;0", + "0001;1;ein", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;1000;tausend", + "0102;;comma;comma", + "0103;;und", + "0104;;minus", + "0105;;uhr", + "0106;;minute", + "0107;;minuten", + "0108;;sekunde", + "0109;;sekunden", + "0110;;Volt", + "0111;;Ampere", + "0112;;Meter pro sekunde", + "0113;;", + "0114;;kilometer pro stunde", + "0115;;Meter", + "0116;;Grad", + "0117;;Prozent", + "0118;;Milliampere", + "0119;;Milliampere pro stunde", + "0120;;Watt", + "0121;;db", + "0122;;Fuesse", + "0123;;Knoten", + "0124;;Uhr", + "0125;;Minuten", + "0126;;Secunden", + "0127;;R P M", + "0128;;g", + "0129;;Timer", + "0130;;Timer", + "0131;;Sendung", + "0132;;Empfang", + "0133;;A1", + "0134;;A2", + "0135;;Hoehe", + "0136;;Motor", + "0137;;Treibstoff", + "0138;;Temperatur", + "0139;;Temperatur", + "0140;;Geschwindigkeit", + "0141;;Ferne", + "0142;;Hoehe", + "0143;;Lipo-Zelle", + "0144;;Zellen gesamt", + "0145;;Spannung", + "0146;;Strom", + "0147;;Verbrauch", + "0148;;Power", + "0149;;Beschleunigung X", + "0150;;Beschleunigung Y", + "0151;;Beschleunigung Z", + "0152;;Richtung", + "0153;;Variometer", + "0154;;Minimum", + "0155;;Maximum", + "a1_org;;A1 schlecht!", + "a1_red;;A1 kritisch!", + "a2_org;;A2 schlecht!", + "a2_red;;A2 kritisch!", + "eebad;;Das EEPROM ist fehlerhaft", + "eeformat;;Das EEPROM ist immer formatiert", + "endtrim;;Maximale trimmung erreicht", + "error;;fehler", + "highmah;;Senderstrom ist zu hoch!", + "hightemp;;Sendertemperatur ist zu hoch!", + "inactiv;;Sender ist inaktiv,bitte Ueberpruefen Sie", + "lowbatt;;Senderakku niedrig", + "midtrim;;Trim zentriert", + "midpot;;Poti zentriert", + "rssi_org;;Funksignal schlecht!", + "rssi_red;;Funksignal kritisch!", + "swr_red;;Problem mit der sender Antenna", + "swalert;;Schalten fehlpositioniert, bitte pruefen", + "tada;Welcome sound;Willkommen", + "thralert;;Gaskanal nicht Null, bitte pruefen", + "timer10;;10 sekunden", + "timer20;;20 sekunden", + "timer30;;30 sekunden", + "timerlt3;;Noch drei Sekunden" }; + + private static string[] default_de_other_strings = + { + "attero;;Landung", + "crowof;;crow aus", + "crowon;;crow ein", + "engoff;;Motor aus", + "flapdn;;Klappen ausgefahren", + "flapup;;Klappen eingefahren", + "fltmd1;;Regime 1", + "fltmd2;;Regime 2", + "fltmd3;;Regime 3", + "fltmd4;;Regime 4", + "fltmd5;;Regime 5", + "fltmd6;;Regime 6", + "fltmd7;;Regime 7", + "fltmd8;;Regime 8", + "fltmd9;;Regime 9", + "geardn;;Fahrwerk ausgefahren", + "gearup;;Fahrwerk eingezogen", + "horn;horn sound;eeeeeeeee", + "lowbat;;Batterie schwach", + "nrmmod;;Normal-Modus ist aktiviert", + "pouet;small horn;ee , ee", + "shutter;camera shutter sound;klick", + "spdmod;;Schnell-Modus ist aktiviert", + "thmmod;;Thermik-Modus ist aktiviert", + "trnon;;Trainer-Modus ein", + "trnoff;;Trainer-Modus aus", + "tohigh;;zu hoch", + "tolow;;zu niedrig", + "wizz;wizzing sound;shiss" + }; + + private static string[] default_fr_system_strings = + { + "0000;0;0", + "0001;1;1", + "0002;2;2", + "0003;3;3", + "0004;4;4", + "0005;5;5", + "0006;6;6", + "0007;7;7", + "0008;8;8", + "0009;9;9", + "0010;10;10", + "0011;11;11", + "0012;12;12", + "0013;13;13", + "0014;14;14", + "0015;15;15", + "0016;16;16", + "0017;17;17", + "0018;18;18", + "0019;19;19", + "0020;20;20", + "0021;21;21", + "0022;22;22", + "0023;23;23", + "0024;24;24", + "0025;25;25", + "0026;26;26", + "0027;27;27", + "0028;28;28", + "0029;29;29", + "0030;30;30", + "0031;31;31", + "0032;32;32", + "0033;33;33", + "0034;34;34", + "0035;35;35", + "0036;36;36", + "0037;37;37", + "0038;38;38", + "0039;39;39", + "0040;40;40", + "0041;41;41", + "0042;42;42", + "0043;43;43", + "0044;44;44", + "0045;45;45", + "0046;46;46", + "0047;47;47", + "0048;48;48", + "0049;49;49", + "0050;50;50", + "0051;51;51", + "0052;52;52", + "0053;53;53", + "0054;54;54", + "0055;55;55", + "0056;56;56", + "0057;57;57", + "0058;58;58", + "0059;59;59", + "0060;60;60", + "0061;61;61", + "0062;62;62", + "0063;63;63", + "0064;64;64", + "0065;65;65", + "0066;66;66", + "0067;67;67", + "0068;68;68", + "0069;69;69", + "0070;70;70", + "0071;71;71", + "0072;72;72", + "0073;73;73", + "0074;74;74", + "0075;75;75", + "0076;76;76", + "0077;77;77", + "0078;78;78", + "0079;79;79", + "0080;80;80", + "0081;81;81", + "0082;82;82", + "0083;83;83", + "0084;84;84", + "0085;85;85", + "0086;86;86", + "0087;87;87", + "0088;88;88", + "0089;89;89", + "0090;90;90", + "0091;91;91", + "0092;92;92", + "0093;93;93", + "0094;94;94", + "0095;95;95", + "0096;96;96", + "0097;97;97", + "0098;98;98", + "0099;99;99", + "0100;100;100", + "0101;200;200", + "0102;300;300", + "0103;400;400", + "0104;500;500", + "0105;600;600", + "0106;700;700", + "0107;800;800", + "0108;900;900", + "0109;1000;Mille", + "0110;;une", + "0111;11;onze", + "0112;21;21", + "0113;31;31", + "0114;41;41", + "0115;51;51", + "0116;61;61", + "0117;71;71", + "0118;81;81", + "0119;.;virgule", + "0120;&;et", + "0121;-;moins", + "0122;<>;bip", + "0123;<>;bip", + "0124;<>;bip", + "0125;V;volts", + "0126;A;ampères", + "0127;ms;mètres par seconde", + "0128;<>;bip", + "0129;kmh;kilomètre heure", + "0130;m;mètres", + "0131;;degrés", + "0132;%;pourcent", + "0133;mA;milliampère", + "0134;mAH;milliampères heure", + "0135;W;watt", + "0136;dB;db", + "0137;;pied", + "0138;;noeud", + "0139;h;heure", + "0140;min;minute", + "0141;sec;secondes", + "0142;;taux par minute", + "0143;G;g", + "0144;<>;bip", + "0144;<>;bip", + "0146;timer;chrono", + "0147;<>;bip", + "0148;;tension", + "0149;;tension", + "0150;;émission", + "0151;;réception", + "0152;;altitude", + "0153;;moteur", + "0154;;carburant", + "0155;;temperature", + "0156;;temperature", + "0157;;vitesse", + "0158;;distance", + "0159;;attitude", + "0160;;élément lipo", + "0161;;total lipo", + "0162;;tension", + "0163;;courant", + "0164;;consomation", + "0165;;puissance", + "0166;;accelération x", + "0167;;accelération y", + "0168;;accelération z", + "0169;;orientation", + "0170;;vario", + "0171;<>;bip", + "0172;<>;bip", + "0173;<>;bip", + "0174;<>;bip", + "0175;<>;bip", + "0176;<>;bip", + "0177;<>;bip", + "0178;<>;bip", + "0179;<>;bip", + "0180;.0;virgule 0", + "0181;.1;virgule 1", + "0182;.2;virgule 2", + "0183;.3;virgule 3", + "0184;.4;virgule 4", + "0185;.5;virgule 5", + "0186;.6;virgule 6", + "0187;.7;virgule 7", + "0188;.8;virgule 8", + "0189;.9;virgule 9", + "190;<>;bip", + "a1_org;a1 low;a1 bas", + "a1_red;a1 critical;a1 critique", + "a2_org;a2 low;a2 bas", + "a2_red;a2 critical;a2 critique", + "eebad;memoire basse;niveau mémoire bas", + "endtrim;trim maximum atteint;trim maximum atteint", + "inact;inactivity alarm;alarme d'innactivité", + "lowbat;radio battery low;batterie transmetteur faible", + "midtrim;trim center;trim centré", + "rssi_org;rf signal low;signal recepteur faible", + "rssi_red;rf signal critical;signal recepteur critique", + "swalert;switch warning;interupteur mal positionné", + "swr_red;radio antenna defective;antenne emeteur defectueuse", + "tada;welcome to opentx;Bienvenue sur Open tx", + "telemko;telemetry lost;télémétrie perdue", + "telemok;telemetry recover;télémétrie retrouvée", + "thralert;throttle warning;mettre les gaz a 0", + "timer10;10 seconds;10 secondes", + "timer20;20 seconds;20 secondes", + "timer30;30 seconds;30 secondes", + "timerlt3;3 seconds;3 secondes" + }; + + private static string[] default_fr_other_strings = + { + "attero;;atterrissage", + "atti;attitude;attitude", + "batcrit;battery critical;niveau batterie critique", + "batlow;low battery;niveau batterie bas", + "camcenter;camera center;caméra centrée", + "cammanual;camera manual;caméra manuelle", + "capacity;capacity;capacité", + "engdis;engine disabled;moteur calé", + "engoff;engine off;moteur coupé", + "engon;engine on;moteur démarré", + "flaps1;flaps 1;volets 1", + "flaps2;flaps 2;volets 2", + "flapsdn;flaps down;volets sortis", + "flapsup;flaps up;volets rentrés", + "fltmode0;phase de vol 0;phase de vol 0", + "fltmode1;phase de vol 1;phase de vol 1", + "fltmode2;phase de vol 2;phase de vol 2", + "fltmode3;phase de vol 3;phase de vol 3", + "fltmode4;phase de vol 4;phase de vol 4", + "fltmode5;phase de vol 5;phase de vol 5", + "fltmode6;phase de vol 6;phase de vol 6", + "fltmode7;phase de vol 7;phase de vol 7", + "fltmode8;phase de vol 8;phase de vol 8", + "fsoff;failsafe off;failsafe coupé", + "fson;failsafe on;failsafe activé", + "geardn;gear down;train sorti", + "gearup;gear upp;train rentré", + "gps;gps;gps", + "hirates;hi rates;taux élevé", + "htoff;head tracker off;suivi tète désactivé", + "hton;head tracker on;suivi tète activé", + "ioc;ioc;i o c", + "iocoff;ioc off;i o c coupé", + "lowrates;lowrates;taux faible", + "manual;manual;manuel", + "normal;normal;normal", + "nrmmod;normal mode;mode normal", + "thrhold;throttle locked;gaz bloqués","thrrel;throttle released;gaz relachés", + "trnoff;;fin écolage", + "trnon;;écolage", + }; + + public string[][] default_system_strings = new string[10][]; + public string[][] default_other_strings = new string[10][]; + + public int toInt(string langStr) + { + if (langStr == "cz") return 1; + if (langStr == "de") return 2; + if (langStr == "es") return 3; + if (langStr == "fr") return 4; + if (langStr == "it") return 5; + if (langStr == "pl") return 6; + if (langStr == "pt") return 7; + if (langStr == "se") return 8; + if (langStr == "sk") return 9; + else return 0; //English default + } + + public SentenceTables() + { + default_other_strings[toInt("cz")] = default_cz_other_strings; + default_system_strings[toInt("cz")] = default_cz_system_strings; + + default_other_strings[toInt("de")] = default_de_other_strings; + default_system_strings[toInt("de")] = default_de_system_strings; + + default_other_strings[toInt("en")] = default_en_other_strings; + default_system_strings[toInt("en")] = default_en_system_strings; + + default_other_strings[toInt("es")] = default_es_other_strings; + default_system_strings[toInt("es")] = default_es_system_strings; + + default_other_strings[toInt("fr")] = default_fr_other_strings; + default_system_strings[toInt("fr")] = default_fr_system_strings; + + default_other_strings[toInt("it")] = default_it_other_strings; + default_system_strings[toInt("it")] = default_it_system_strings; + + default_other_strings[toInt("pl")] = default_pl_other_strings; + default_system_strings[toInt("pl")] = default_pl_system_strings; + + default_other_strings[toInt("pt")] = default_pt_other_strings; + default_system_strings[toInt("pt")] = default_pt_system_strings; + + default_other_strings[toInt("se")] = default_se_other_strings; + default_system_strings[toInt("se")] = default_se_system_strings; + + default_other_strings[toInt("sk")] = default_sk_other_strings; + default_system_strings[toInt("sk")] = default_sk_system_strings; + } + } +} diff --git a/sound/recorder/stop.png b/sound/recorder/stop.png new file mode 100644 index 000000000..d931243bd Binary files /dev/null and b/sound/recorder/stop.png differ diff --git a/sound/speaker/.gitignore b/sound/speaker/.gitignore new file mode 100644 index 000000000..ebd53ae98 --- /dev/null +++ b/sound/speaker/.gitignore @@ -0,0 +1,3 @@ +/OpenTXspeaker.suo +/bin/* +/obj/* diff --git a/speaker/App.xaml b/sound/speaker/App.xaml similarity index 100% rename from speaker/App.xaml rename to sound/speaker/App.xaml diff --git a/speaker/App.xaml.cs b/sound/speaker/App.xaml.cs similarity index 100% rename from speaker/App.xaml.cs rename to sound/speaker/App.xaml.cs diff --git a/sound/speaker/GPLv3_Logo.png b/sound/speaker/GPLv3_Logo.png new file mode 100644 index 000000000..ba78d4c49 Binary files /dev/null and b/sound/speaker/GPLv3_Logo.png differ diff --git a/speaker/MainWindow.xaml b/sound/speaker/MainWindow.xaml similarity index 72% rename from speaker/MainWindow.xaml rename to sound/speaker/MainWindow.xaml index 9ed94b625..312a13593 100644 --- a/speaker/MainWindow.xaml +++ b/sound/speaker/MainWindow.xaml @@ -2,10 +2,10 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="OpenTX Speaker" - Height="460" + Height="514" MinWidth="840" MaxWidth="840" - ResizeMode="CanResizeWithGrip" MinHeight="460" SizeToContent="Width"> + ResizeMode="CanResizeWithGrip" MinHeight="514" SizeToContent="Width" Icon="/OpenTXspeaker;component/icon.ico"> @@ -71,7 +71,7 @@ - + + + + + + + + @@ -91,7 +106,7 @@ - + + + + + + + + - - + +